// Ripple Design System - Utilities

// Here we define all of our utilities for output.
// Each utility can define its own list of values, or point to a design map.
// Utilities are normalised via 'utilities/normalise', and then output via 'utilities/output'.
// Utility classes have the format: {utility|property}--{value} (see 'system/mixins-utilities' for more information).

// To define a completley new set of utilities and clear the existing ones:
// $design-utilities: design-utilities-set((...));

// To add new utilities and/or override existing utilities that match:
// $design-utilities: design-utilities-add((...));

// To extend and update existing utilities:
// $design-utilities: design-utilities-apply((...));

// By default all design map references are disabled, so we turn a few back on.
// Note, as we're only turning some utilities on/off, we need to ensure we refer to the correct names.


// Ensure Utilities are defined
$design-map: () !default;


// Utility defaults
// $design-settings: design-settings-apply((
//     'utilities': (
//         // Default utility settings to apply during 'utilities/normalise'
//         enabled: true, // whether to include this utility in utility classes (quick way to exclude a set of utility classes)
//         properties: null, // REQUIRED, the map of prefix/property pairs to define (or a single property to apply the utility without a prefix, such as "display")
//         values: (), // REQUIRED, the map of label/value pairs to output for each property (or a '@group.range' design system reference, followed by an optional whitelist of references)
//         responsive: false, // whether to include the responsive variations (design-breakpoint-up mobile-first media queries); true, or a whitelist of breakpoints
//         responsiveAt: false, // whether to include the 'md-at:' style breakpoint variations (design-breakpoint-at specific media queries); true, or a whitelist of breakpoints
//         responsiveDown: false, // whether to include the 'md-down:' style breakpoint variations (design-breakpoint-down deskptop-first media queries); true, or a whitelist of breakpoints
//         states: false, // whether to include the interactive state variations; true, or a whitelist of states (active, hover, focus, disabled)
//         media: false, // whether to include the media type variation; true, or a whitelist of media types (all, print, screen, speech)
//         calculation: false, // whether to perform a multiplication calculation on the values (eg, -1)
//         important: false, // whether to set the property value(s) as !important
//         importantVariation: false, // whether to also include a '{class-name}!' version of the utility class with an !important override
//         valuePrefix: false, // whether to prefix the value part of the class (for design-maps, this is used to build the range prefix, such as 'primary.normal')
//         valueSuffix: false, // whether to add a suffix to the value (class name as a whole); eg, '-negataive' is commonly used with calculation: -1
//         defaultValue: false, // for design-maps, whether to output a default value without using the --label; eg, 'color-primary': { var(--color-primary--normal); }
//         includeRange: false, // for design-maps, whether to include the numbered design range in utility output (if false, only named references such as 'normal' are output)
//         includeXero: false, // for design-maps, whether to include 0 from the range (useful as you'll often want a '0' none option, even if the range is turned off)
//     ),
// ));


// Standard Utilities
@import 'utilities/standard';

// Design Utilities for Borders
@import 'utilities/design-borders';

// Design Utilities for Color
@import 'utilities/design-colors';

// Design Utilities for Type
@import 'utilities/design-type';

// Design Utilities for Dimensions
@import 'utilities/design-dimensions';

// Design Utilities for Margins
@import 'utilities/design-margins';

// Design Utilities for Padding
@import 'utilities/design-padding';

// Design Utilities for Gaps
@import 'utilities/design-gaps';
