// ====================================
// NextGen Framework Display Utilities
// ====================================

// Import required modules
@use 'sass:map';
@use 'sass:color';
@use '../index' as *;  // This imports all variables, functions, and mixins at once

.d-none {
  display: none !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-block {
  display: block !important;
}

.d-table {
  display: table !important;
}

.d-table-row {
  display: table-row !important;
}

.d-table-cell {
  display: table-cell !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

.d-grid {
  display: grid !important;
}

.d-inline-grid {
  display: inline-grid !important;
}

// Responsive display utilities
@each $breakpoint in map.keys($breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: if($breakpoint == 'xs', '', '-#{$breakpoint}');
    
    .d#{$infix}-none {
      display: none !important;
    }
    
    .d#{$infix}-inline {
      display: inline !important;
    }
    
    .d#{$infix}-inline-block {
      display: inline-block !important;
    }
    
    .d#{$infix}-block {
      display: block !important;
    }
    
    .d#{$infix}-table {
      display: table !important;
    }
    
    .d#{$infix}-table-row {
      display: table-row !important;
    }
    
    .d#{$infix}-table-cell {
      display: table-cell !important;
    }
    
    .d#{$infix}-flex {
      display: flex !important;
    }
    
    .d#{$infix}-inline-flex {
      display: inline-flex !important;
    }
    
    .d#{$infix}-grid {
      display: grid !important;
    }
    
    .d#{$infix}-inline-grid {
      display: inline-grid !important;
    }
  }
}

// Visibility
// ------------------------------------
.visible {
  visibility: visible !important;
}

.invisible {
  visibility: hidden !important;
}