@use "sass:map"; @use "sass:meta"; @use "sass:list"; @use "variables"; @use "functions"; @use "flexbox"; @use "display"; @use "border"; @use "text"; @use "spacing"; @use "rounded"; $utilities: functions.map-collect(variables.$utilities, display.$utilities, flexbox.$utilities, spacing.$utilities, border.$utilities, rounded.$utilities, text.$utilities); @each $key, $utility in $utilities { $values: map.get($utility, values); // If the values are a list or string, convert it into a map @if meta.type-of($values)=="string" or meta.type-of(list.nth($values, 1)) !="list" { $values: list.zip($values, $values); } $properties: map.get($utility, property); $property-class-prefix: map.get($utility, class); // Utility class maybe empty, (e.g. with position class) $property-class-prefix-hyphen: if($property-class-prefix =="", $property-class-prefix, $property-class-prefix + "-" ); @each $class-modifier, $value in $values { .#{$property-class-prefix-hyphen + $class-modifier} { @each $property in $properties { #{$property}: $value !important; } } } } $ltrutilities: functions.map-collect(spacing.$ltr); @each $key, $utility in $ltrutilities { $values: map.get($utility, values); // If the values are a list or string, convert it into a map @if meta.type-of($values)=="string" or meta.type-of(list.nth($values, 1)) !="list" { $values: list.zip($values, $values); } $properties: map.get($utility, property); $property-class-prefix: map.get($utility, class); // Utility class maybe empty, (e.g. with position class) $property-class-prefix-hyphen: if($property-class-prefix =="", $property-class-prefix, $property-class-prefix + "-" ); @each $class-modifier, $value in $values { [dir="ltr"] .#{$property-class-prefix-hyphen + $class-modifier} { @each $property in $properties { #{$property}: $value !important; } } } } $rtlutilities: functions.map-collect(spacing.$rtl); @each $key, $utility in $rtlutilities { $values: map.get($utility, values); // If the values are a list or string, convert it into a map @if meta.type-of($values)=="string" or meta.type-of(list.nth($values, 1)) !="list" { $values: list.zip($values, $values); } $properties: map.get($utility, property); $property-class-prefix: map.get($utility, class); // Utility class maybe empty, (e.g. with position class) $property-class-prefix-hyphen: if($property-class-prefix =="", $property-class-prefix, $property-class-prefix + "-" ); @each $class-modifier, $value in $values { [dir="rtl"] .#{$property-class-prefix-hyphen + $class-modifier} { @each $property in $properties { #{$property}: $value !important; } } } }