@use '@angular/material' as mat;
@use './lib/style/all-theme' as dbx-theme;
@use './lib/style/root-variables' as dbx-variables;

@forward './lib/layout/layout';

// Structural
@forward './lib/style/core' show core;
@forward './lib/style/all-typography' show all-component-typographies;
@forward './lib/style/root-variables' show root-variables;

// Functions/Mixins
@forward './lib/style/function';

// Config
@forward './lib/style/config' show define-dbx-theme-config, get-dbx-theme-config, quick-define-dbx-config-via-banners;

// Shape Overrides
@forward './lib/style/shapes' show dbx-components-shapes;

// Disposable demo/debug classes backing @dereekb/dbx-web/style-demo (removed when the styling migration completes)
@forward './lib/style/style-demo' show dbx-style-demo-debug-classes;

// Theme bundles
@forward './lib/style/all-theme' show all-component-themes;

// Create Theme
@mixin theme($root-selector, $theme-config) {
  #{$root-selector} {
    @include mat.all-component-themes($theme-config);
    @include mat.system-level-colors($theme-config);
    @include mat.system-level-typography($theme-config);
    @include dbx-theme.all-component-themes($theme-config);
  }

  @include dbx-variables.root-variables($root-selector, $theme-config);
  @include dbx-variables.root-theme-color-variables($root-selector, $theme-config);
}
