//-------------------------
// 🌍 Global
//-------------------------

/// If true, includes font face mixins in `_css--font-face.scss` depending on the `css--plex` feature flag
/// @access public
/// @type Bool
/// @group feature-flags
$css--font-face: true !default;

/// If true, includes the `css-helpers()` mixin
/// @access public
/// @type Bool
/// @group feature-flags
$css--helpers: true !default;

/// If true, includes the `css-body()` mixin
/// @access public
/// @type Bool
/// @group feature-flags
$css--body: true !default;

/// If true, the `layer()` mixin sets `box-shadow` values
/// @access public
/// @type Bool
/// @group feature-flags
$css--use-layer: true !default;

/// If true, include reset CSS
/// @access public
/// @type Bool
/// @group feature-flags
$css--reset: true !default;

/// Used with `css--font-face` feature flag, if true, uses Plex font families instead of Helvetica
/// @access public
/// @type Bool
/// @group feature-flags
$css--plex: true !default;

/// This feature flag was used during development of the v10 experimental grid.
/// TODO: remove in next major release. Synced in `feature-flags` as an adapter in the interim
/// @deprecated (For v10) v10 always uses `@carbon/grid`
/// @access public
/// @type Bool
/// @group feature-flags
$css--use-experimental-grid: false !default;

/// This feature flag was used during development of the v10 experimental grid.
/// TODO: remove in next major release. Synced in `feature-flags` as an adapter in the interim.
/// @access public
/// @type Bool
/// @group feature-flags
/// @deprecated (For v10) v10 always uses `@carbon/grid`
$css--use-experimental-grid-fallback: false !default;

/// Set the theme to Gray 10
@import 'vendor/@carbon/themes/scss/themes';
$carbon--theme: $carbon--theme--g10;
// Use the gray 10 theme
@include carbon--theme();

@import 'globals/feature-flags';
@import 'globals/vars';
@import 'globals/colors';
@import 'globals/theme';
@import 'globals/mixins';
@import 'globals/layout';
@import 'globals/spacing';
@import 'globals/typography';
@import 'globals/import-once';
@import 'globals/css--reset';
@import 'globals/css--font-face';
@import 'globals/css--helpers';
@import 'globals/css--body';
@import 'globals/grid';
@import 'globals/charts';

//-------------------------
// ⚠️ Manage deprecations
//-------------------------

/// We flag this variable as true if someone uses the globals/scss/styles.scss
/// entry-point. This allows us to collect all the messages and display them at
/// the end of the file instead of bringing it up per-component.
///
/// If a consumer instead gets the components by importing the partial directly,
/// this variable _will not_ be set to true, so the deprecation message will be
/// displayed after the @import.
/// @access private
/// @type Bool
/// @group global-deprecate
$deprecations--entry: true;

/// Collect all deprecation reasons into this list throughout the import cycle.
/// @access private
/// @type Map
/// @group global-deprecate
$deprecations--reasons: ();

/// This message will be prepended to any deprecation notice.
/// @access private
/// @type String
/// @group global-deprecate
$deprecations--message: 'Deprecated code was found, this code will be removed before the next release of Carbon.';

//-------------------------
// 🍕 Carbon Components
//-------------------------

@import 'components/Checkbox/checkbox';
@import 'components/CopyButton/copy-button';
@import 'components/FileUploader/file-uploader';
@import 'components/ComboBox/combo-box';
@import 'components/NumberInput/number-input';
@import 'components/RadioButton/radio-button';
@import 'components/Search/search';
@import 'components/Select/select';
@import 'components/TextInput/text-input';
@import 'components/TextArea/text-area';
@import 'components/Toggle/toggle';
@import 'components/Form/form';
@import 'components/Link/link';
@import 'components/ListBox/list-box';
@import 'components/DataTable/data-table';
@import 'components/StructuredList/structured-list';
@import 'components/CodeSnippet/code-snippet';
@import 'components/OverflowMenu/overflow-menu';
@import 'components/ContentSwitcher/content-switcher';
@import 'components/DatePicker/date-picker';
@import 'components/Dropdown/dropdown';
@import 'components/Loading/loading';
@import 'components/Modal/modal';
@import 'components/MultiSelect/multi-select';
@import 'components/Notification/inline-notification';
@import 'components/Notification/toast-notification';
@import 'components/Tooltip/tooltip';
@import 'components/Tabs/tabs';
@import 'components/Tag/tag';
@import 'components/Pagination/pagination';
@import 'components/Accordion/accordion';
@import 'components/Breadcrumb/breadcrumb';
@import 'components/Toolbar/toolbar';
@import 'components/TimePicker/time-picker';
@import 'components/Slider/slider';
@import 'components/Tile/tile';
@import 'components/Skeleton/skeleton';
@import 'components/InlineLoading/inline-loading';
@import 'components/PaginationNav/pagination-nav';
@import 'components/UIShell/ui-shell';
@import 'components/List/carbon-list';
//-------------------------------------
// 🔬 Experimental
//-------------------------------------
@import 'components/ColorDropdown/color-dropdown';
@import 'components/FlyoutMenu/flyout-menu';
@import 'components/HotspotEditorModal/HotspotEditorTooltipTab/hotspot-editor-tooltip-tab';
@import 'components/HotspotEditorModal/hotspot-editor-modal';
@import 'components/HotspotEditorModal/DynamicHotspotSourcePicker/dynamic-hotspot-source-picker';
@import 'components/SimpleIconDropdown/simple-icon-dropdown';
@import 'components/RuleBuilder/rule-builder';

//-------------------------------------
// 🙈 Hidden (Not exposed on website)
//-------------------------------------

// Cycle through all the deprecation reasons, if any exist, that have been
// accumulated through the @import process.
@if (length($deprecations--reasons) > 0) {
  $deprecations--message: '';
  @each $reason in $deprecations--reasons {
    $deprecations--message: '#{$deprecations--message} REASON: #{$reason}';
  }

  @warn $deprecations--message;
}

//-------------------------------------
// carbon-addons-iot-react components
//-------------------------------------
@import 'components/AddCard/add-card';
@import 'components/BarChartCard/bar-chart-card';
@import 'components/Button/button';
@import 'components/Card/card';
@import 'components/CardEditor/card-editor';
@import 'components/CardEditor/CardEditForm/card-edit-form';
@import 'components/ComposedModal/composed-modal';
@import 'components/ComposedStructuredList/composed-structured-list';
@import 'components/CardCodeEditor/card-code-editor';
@import 'components/Dashboard/dashboard';
@import 'components/Dashboard/dashboard-grid';
@import 'components/DashboardEditor/dashboard-editor';
@import 'components/DateTimePicker/date-time-picker';
@import 'components/DateTimePicker/date-time-pickerv2';
@import 'components/EmptyState/emptystate';
@import 'components/FileDrop/file-drop';
@import 'components/FilterTags/filter-tags';
@import 'components/GaugeCard/gauge-card';
@import 'components/Header/header';
@import 'components/HotspotEditorModal/HotspotTextStyleTab/hotspot-text-style-tab';
@import 'components/IconDropdown/icon-dropdown';
@import 'components/IconSwitch/icon-switch';
@import 'components/ImageCard/image-card';
@import 'components/ImageCard/image-uploader';
@import 'components/ImageCard/hotspot';
@import 'components/ImageCard/hotspot-content';
@import 'components/ImageGalleryModal/image-gallery-modal';
@import 'components/ImageGalleryModal/image-tile';
@import 'components/ListCard/listCard';
@import 'components/List/list';
@import 'components/ListBuilder/list-builder';
@import 'components/TearSheet/tear-sheet-wrapper';
@import 'components/TearSheet/tear-sheet';
@import 'components/List/ListItem/list-item';
@import 'components/List/ListHeader/list-header';
@import 'components/MapCard/map-card';
@import 'components/List/HierarchyList/hierarchy-list';
@import 'components/MenuButton/menu-button';
@import 'components/PageTitleBar/page-title-bar';
@import 'components/PageWizard/page-wizard';
@import 'components/PieChartCard/pie-chart-card';
@import 'components/ProgressIndicator/progress-indicator';
@import 'components/RuleBuilder/rulebuilder';
@import 'components/SelectUsersModal/select-users-modal';
@import 'components/SideNav/side-nav';
@import 'components/SidePanel/side-panel';
@import 'components/SimplePagination/simple-pagination';
@import 'components/SuiteHeader/suite-header';
@import 'components/Table/TableToolbar/table-toolbar';
@import 'components/Table/pagination';
@import 'components/Table/TableBody/RowActionsCell/row-actions-cell';
@import 'components/Table/table';
@import 'components/TableMultiline/table.scss';
@import 'components/Table/TableViewDropdown/table-view-dropdown';
@import 'components/Table/TableSaveViewModal/table-save-view-modal';
@import 'components/Table/TableManageViewsModal/table-manage-views-modal';
@import 'components/Table/TableManageViewsModal/table-manage-views-list';
@import 'components/TableCard/threshold-icon';
@import 'components/TableCard/table-card';
@import 'components/TileCatalogNew/tile-catalog';
@import 'components/TileCatalog/tile-catalog';
@import 'components/TileCatalog/tile-group';
@import 'components/TileCatalog/catalog-content';
@import 'components/TileGallery/tile-gallery';
@import 'components/TimePickerSpinner/time-picker-spinner';
@import 'components/TimeSeriesCard/time-series-card';
@import 'components/ValueCard/value-card';
@import 'components/ValueCard/attribute';
@import 'components/ValueCard/unit-renderer';
@import 'components/ValueCard/value-renderer';
@import 'components/WizardInline/wizard-inline';
@import 'components/WizardModal/wizard-modal';
@import 'components/ComboChartCard/combo-chart-card';
