@charset 'UTF-8';

////
/// Flavor SCSS Mixins Appearance
/// @group mixins-appearance
/// @author blackmirror1980
////

/// Appearance modes supported
///
/// @access private
/// @type list
$appearance-modes: (none, button, button-arrow-down, button-arrow-next, button-arrow-previous, button-arrow-up, button-bevel, button-focus, caret, checkbox, checkbox-container, checkbox-label, checkmenuitem, dualbutton, groupbox, listbox, listitem, menuarrow, menubar, menucheckbox, menuimage, menuitem, menuitemtext, menulist, menulist-button, menulist-text, menulist-textfield, menupopup, menuradio, menuseparator, meterbar, meterchunk, progressbar, progressbar-vertical, progresschunk, progresschunk-vertical, radio, radio-container, radio-label, radiomenuitem, range, range-thumb, resizer, resizerpanel, scale-horizontal, scalethumbend, scalethumb-horizontal, scalethumbstart, scalethumbtick, scalethumb-vertical, scale-vertical, scrollbarbutton-down, scrollbarbutton-left, scrollbarbutton-right, scrollbarbutton-up, scrollbarthumb-horizontal, scrollbarthumb-vertical, scrollbartrack-horizontal, scrollbartrack-vertical, searchfield, separator, sheet, spinner, spinner-downbutton, spinner-textfield, spinner-upbutton, splitter, statusbar, statusbarpanel, tab, tabpanel, tabpanels, tab-scroll-arrow-back, tab-scroll-arrow-forward, textfield, textfield-multiline, toolbar, toolbarbutton, toolbarbutton-dropdown, toolbargripper, toolbox, tooltip, treeheader, treeheadercell, treeheadersortarrow, treeitem, treeline, treetwisty, treetwistyopen, treeview, -moz-mac-unified-toolbar, -moz-win-borderless-glass, -moz-win-browsertabbar-toolbox, -moz-win-communicationstext, -moz-win-communications-toolbox, -moz-win-exclude-glass, -moz-win-glass, -moz-win-mediatext, -moz-win-media-toolbox, -moz-window-button-box, -moz-window-button-box-maximized, -moz-window-button-close, -moz-window-button-maximize, -moz-window-button-minimize, -moz-window-button-restore, -moz-window-frame-bottom, -moz-window-frame-left, -moz-window-frame-right, -moz-window-titlebar, -moz-window-titlebar-maximized);

/// Checks if something is an appearance mode
///
/// @link https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance MDN web docs for appearance
/// @access public
/// @param {string} $a - the appearance mode
/// @return {boolean} - true if is appearance mode
@function is-appearance-mode($am) {
  @return is-defined($am) and array-contains($appearance-modes, $am);
}

/// Appearance mixin
///
/// @example scss - Usage
///   .appearance-element {
///     @include appearance(none);
///   }
///
/// @example css - Output
///   .appearance-element {
///     -webkit-appearance: none;
///     -moz-appearance: none;
///     appearance: none;
///   }
/// @access public
/// @param {appearance-mode} $a - the appearance mode
/// @param {boolean} $important [false] - if true, will render the important rule
@mixin appearance ($a, $important: false) {
  @include prefixer(appearance, $a, webkit moz spec, $important);
}
