@use '../style/config';
@use '../style/theming';
@use './calendar/calendar';
@use './table/table';
@use './zip/zip';
@use './help/help';
@use './pdf/pdf';
@use './download/download';
@use './mcp/mcp';
@use './mapbox/mapbox';

@mixin all-extension-core($theme-config) {
  $calendar-enabled: 1;
  $table-enabled: 1;
  $zip-enabled: 1;
  $help-enabled: 1;
  $mapbox-enabled: 1;

  @if ($theme-config != null) {
    $calendar-enabled: config.get-dbx-extension-calendar-enabled($theme-config);
    $table-enabled: config.get-dbx-extension-table-enabled($theme-config);
    $zip-enabled: config.get-dbx-extension-zip-enabled($theme-config);
    $help-enabled: config.get-dbx-extension-help-enabled($theme-config);
    $mapbox-enabled: config.get-dbx-extension-mapbox-enabled($theme-config);
  }

  @if ($calendar-enabled == 1) {
    @include calendar.core();
  }

  @if ($table-enabled == 1) {
    @include table.core();
  }

  @if ($zip-enabled == 1) {
    @include zip.core();
  }

  @if ($help-enabled == 1) {
    @include help.core();
  }

  @if ($mapbox-enabled == 1) {
    @include mapbox.core();
  }

  @include pdf.core();
  @include download.core();
  @include mcp.core();
}

@mixin all-extension-typography($theme-config-or-typography-config) {
}

@mixin all-extension-theme($theme-config) {
  $calendar-enabled: 1;
  $table-enabled: 1;
  $zip-enabled: 1;
  $help-enabled: 1;
  $mapbox-enabled: 1;

  @if ($theme-config != null) {
    $calendar-enabled: config.get-dbx-extension-calendar-enabled($theme-config);
    $table-enabled: config.get-dbx-extension-table-enabled($theme-config);
    $zip-enabled: config.get-dbx-extension-zip-enabled($theme-config);
    $help-enabled: config.get-dbx-extension-help-enabled($theme-config);
    $mapbox-enabled: config.get-dbx-extension-mapbox-enabled($theme-config);
  }

  @if ($calendar-enabled == 1) {
    @include calendar.theme($theme-config);
  }

  @if ($table-enabled == 1) {
    @include table.theme($theme-config);
  }

  @if ($zip-enabled == 1) {
    @include zip.theme($theme-config);
  }

  @if ($help-enabled == 1) {
    @include help.theme($theme-config);
  }

  @if ($mapbox-enabled == 1) {
    @include mapbox.theme($theme-config);
  }

  @include pdf.theme($theme-config);
  @include download.theme($theme-config);
  @include mcp.theme($theme-config);
}
