/**
 * Icons styled
 *  Submodule index
 */

// Shared config
$class: 'ui-icon' !default;
$class-interactive: 'ui-interactive' !default;
$props: 'ui-icon-' !default;

// Use icons with config
@use 'styled/acorn' with ($class: $class, $props: $props);
@use 'styled/action' with ($class: $class, $props: $props);
@use 'styled/add' with ($class: $class, $props: $props);
@use 'styled/arrow' with ($class: $class, $props: $props);
@use 'styled/arrow-capped' with ($class: $class, $props: $props);
@use 'styled/arrow-double' with ($class: $class, $props: $props);
@use 'styled/arrow-simple' with ($class: $class, $props: $props);
@use 'styled/arrow-small' with ($class: $class, $props: $props);
@use 'styled/check' with ($class: $class, $props: $props);
@use 'styled/close' with ($class: $class, $props: $props);
@use 'styled/close-small' with ($class: $class, $props: $props);
@use 'styled/download' with ($class: $class, $props: $props);
@use 'styled/fastforward' with ($class: $class, $props: $props);
@use 'styled/font' with ($class: $class, $props: $props, $class-interactive: $class-interactive);
@use 'styled/fullscreen' with ($class: $class, $props: $props, $class-interactive: $class-interactive);
@use 'styled/github' with ($class: $class, $props: $props);
@use 'styled/important' with ($class: $class, $props: $props);
@use 'styled/info' with ($class: $class, $props: $props);
@use 'styled/menu' with ($class: $class, $props: $props);
@use 'styled/minimize' with ($class: $class, $props: $props, $class-interactive: $class-interactive);
@use 'styled/npm' with ($class: $class, $props: $props);
@use 'styled/pause' with ($class: $class, $props: $props);
@use 'styled/play' with ($class: $class, $props: $props);
@use 'styled/redo' with ($class: $class, $props: $props);
@use 'styled/remove' with ($class: $class, $props: $props);
@use 'styled/replay' with ($class: $class, $props: $props);
@use 'styled/save' with ($class: $class, $props: $props);
@use 'styled/settings' with ($class: $class, $props: $props);
@use 'styled/siux' with ($class: $class, $props: $props);
@use 'styled/sound' with ($class: $class, $props: $props);
@use 'styled/stats' with ($class: $class, $props: $props);
@use 'styled/stop' with ($class: $class, $props: $props);
@use 'styled/trash' with ($class: $class, $props: $props);
@use 'styled/undo' with ($class: $class, $props: $props);
@use 'styled/unknown' with ($class: $class, $props: $props);
@use 'styled/update' with ($class: $class, $props: $props);
@use 'styled/upload' with ($class: $class, $props: $props);
@use 'styled/user' with ($class: $class, $props: $props);

// Configs
@forward 'styled/acorn' as acorn-*;
@forward 'styled/action' as action-*;
@forward 'styled/add' as add-*;
@forward 'styled/arrow' as arrow-*;
@forward 'styled/arrow-capped' as arrow-capped-*;
@forward 'styled/arrow-double' as arrow-double-*;
@forward 'styled/arrow-simple' as arrow-simple-*;
@forward 'styled/arrow-small' as arrow-small-*;
@forward 'styled/check' as check-*;
@forward 'styled/close' as close-*;
@forward 'styled/close-small' as close-small-*;
@forward 'styled/download' as download-*;
@forward 'styled/fastforward' as fastforward-*;
@forward 'styled/font' as font-* hide config;
@forward 'styled/fullscreen' as fullscreen-*;
@forward 'styled/github' as github-*;
@forward 'styled/important' as important-*;
@forward 'styled/info' as info-*;
@forward 'styled/menu' as menu-*;
@forward 'styled/minimize' as minimize-*;
@forward 'styled/npm' as npm-*;
@forward 'styled/pause' as pause-*;
@forward 'styled/play' as play-*;
@forward 'styled/redo' as redo-*;
@forward 'styled/remove' as remove-*;
@forward 'styled/replay' as replay-*;
@forward 'styled/save' as save-*;
@forward 'styled/settings' as settings-*;
@forward 'styled/sound' as sound-*;
@forward 'styled/stats' as stats-*;
@forward 'styled/stop' as stop-*;
@forward 'styled/trash' as trash-*;
@forward 'styled/undo' as undo-*;
@forward 'styled/unknown' as unknown-*;
@forward 'styled/update' as update-*;
@forward 'styled/upload' as upload-*;
@forward 'styled/user' as user-*;

/**
 * Generate required custom properties
 * @public
 * @output Outputs all custom properties in given context
 */
@mixin properties() {
  @include acorn.properties;
  @include action.properties;
  @include add.properties;
  @include arrow.properties;
  @include arrow-capped.properties;
  @include arrow-double.properties;
  @include arrow-simple.properties;
  @include arrow-small.properties;
  @include check.properties;
  @include close.properties;
  @include close-small.properties;
  @include download.properties;
  @include fastforward.properties;
  @include font.properties;
  @include fullscreen.properties;
  @include github.properties;
  @include important.properties;
  @include info.properties;
  @include menu.properties;
  @include minimize.properties;
  @include npm.properties;
  @include pause.properties;
  @include play.properties;
  @include redo.properties;
  @include remove.properties;
  @include replay.properties;
  @include save.properties;
  @include settings.properties;
  @include siux.properties;
  @include sound.properties;
  @include stats.properties;
  @include stop.properties;
  @include trash.properties;
  @include undo.properties;
  @include unknown.properties;
  @include update.properties;
  @include upload.properties;
  @include user.properties;
}

/**
 * Generate icon styles
 * @public
 * @output Outputs configured icon styles in given context
 */
@mixin styles() {
  @include acorn.styles;
  @include action.styles;
  @include add.styles;
  @include arrow.styles;
  @include arrow-capped.styles;
  @include arrow-double.styles;
  @include arrow-simple.styles;
  @include arrow-small.styles;
  @include check.styles;
  @include close.styles;
  @include close-small.styles;
  @include download.styles;
  @include fastforward.styles;
  @include font.styles;
  @include fullscreen.styles;
  @include github.styles;
  @include important.styles;
  @include info.styles;
  @include menu.styles;
  @include minimize.styles;
  @include npm.styles;
  @include pause.styles;
  @include play.styles;
  @include redo.styles;
  @include remove.styles;
  @include replay.styles;
  @include save.styles;
  @include settings.styles;
  @include siux.styles;
  @include sound.styles;
  @include stats.styles;
  @include stop.styles;
  @include trash.styles;
  @include undo.styles;
  @include unknown.styles;
  @include update.styles;
  @include upload.styles;
  @include user.styles;
}
