/**
 * Copyright IBM Corp. 2016, 2021
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */

@use '@carbon/styles/scss/config' as *;
@use 'tokens';
@forward 'tokens';

// Carbon component theming
@use 'components/accordion';
@use 'components/button';
@use 'components/checkbox';
@use 'components/code-snippet';
@use 'components/combo-box';
@use 'components/content-switcher';
@use 'components/copy-button';
@use 'components/date-picker';
@use 'components/data-table';
@use 'components/dropdown';
@use 'components/file-uploader';
@use 'components/inline-loading';
@use 'components/inline-notifications';
@use 'components/list-box';
@use 'components/loading';
@use 'components/modal';
@use 'components/multi-select';
@use 'components/number-input';
@use 'components/overflow-menu';
@use 'components/progressive-indicator';
@use 'components/tabs';
@use 'components/tag';
@use 'components/text-area';
@use 'components/text-input';
@use 'components/tile';
@use 'components/time-picker';
@use 'components/tooltip';
@use 'components/search';
@use 'components/select';
@use 'components/structured-list';
@use 'components/toast-notifications';
@use 'components/ui-shell';

//-------------------------
// Expressive Theme
//-------------------------

// This includes an overall expressive theme throughout the carbon design
// system. In addition to the global changes in typography sizes, this also
// addresses per-component container and icon spacing to account for the size
// adjustments.

@include exports('carbon-expressive') {
  @include carbon-expressive-tokens;
  @include carbon-expressive-component-tokens;

  // Component mixins
  @include accordion-expressive;
  @include button-expressive;
  @include checkbox-expressive;
  @include code-snippet-expressive;
  @include combo-box-expressive;
  @include content-switcher-expressive;
  @include copy-button-expressive;
  @include date-picker-expressive;
  @include data-table-expressive;
  @include dropdown-expressive;
  @include file-uploader-expressive;
  @include inline-loading-expressive;
  @include inline-notifications-expressive;
  @include list-box-expressive;
  @include loading-expressive;
  @include modal-expressive;
  @include multi-select-expressive;
  @include number-input-expressive;
  @include overflow-menu-expressive;
  @include progressive-indicator-expressive;
  @include tabs-expressive;
  @include tag-expressive;
  @include text-area-expressive;
  @include text-input-expressive;
  @include tile-expressive;
  @include time-picker-expressive;
  @include tooltip-expressive;
  @include search-expressive;
  @include select-expressive;
  @include structured-list-expressive;
  @include toast-notifications-expressive;
  @include ui-shell-expressive;
}
