@volverjs/style 0.1.12-beta.2 → 0.1.12-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +5 -5
  3. package/dist/base.css +1 -1
  4. package/dist/components/vv-accordion-group.css +1 -1
  5. package/dist/components/vv-accordion.css +1 -1
  6. package/dist/components/vv-alert-group.css +1 -1
  7. package/dist/components/vv-alert.css +1 -1
  8. package/dist/components/vv-avatar-group.css +1 -1
  9. package/dist/components/vv-avatar.css +1 -1
  10. package/dist/components/vv-badge.css +1 -1
  11. package/dist/components/vv-breadcrumb.css +1 -1
  12. package/dist/components/vv-button-group.css +1 -1
  13. package/dist/components/vv-button.css +1 -1
  14. package/dist/components/vv-card.css +1 -1
  15. package/dist/components/vv-checkbox-group.css +1 -1
  16. package/dist/components/vv-checkbox.css +1 -1
  17. package/dist/components/vv-dialog.css +1 -1
  18. package/dist/components/vv-dropdown-action.css +1 -1
  19. package/dist/components/vv-dropdown-optgroup.css +1 -1
  20. package/dist/components/vv-dropdown-option.css +1 -1
  21. package/dist/components/vv-dropdown.css +1 -1
  22. package/dist/components/vv-input-file.css +1 -0
  23. package/dist/components/vv-input-text.css +1 -1
  24. package/dist/components/vv-nav.css +1 -1
  25. package/dist/components/vv-progress.css +1 -1
  26. package/dist/components/vv-radio-group.css +1 -1
  27. package/dist/components/vv-radio.css +1 -1
  28. package/dist/components/vv-select.css +1 -1
  29. package/dist/components/vv-skeleton.css +1 -1
  30. package/dist/components/vv-tab.css +1 -1
  31. package/dist/components/vv-table.css +1 -1
  32. package/dist/components/vv-text.css +1 -1
  33. package/dist/components/vv-textarea.css +1 -1
  34. package/dist/components/vv-tooltip.css +1 -1
  35. package/dist/components.css +1 -1
  36. package/dist/export.css +1 -1
  37. package/dist/props/background.css +1 -1
  38. package/dist/props/colors.css +1 -1
  39. package/dist/props/filters.css +1 -1
  40. package/dist/props/input.css +1 -1
  41. package/dist/props/layout.css +1 -1
  42. package/dist/props/spacing.css +1 -1
  43. package/dist/props/transitions.css +1 -1
  44. package/dist/props/typography.css +1 -1
  45. package/dist/props.css +1 -1
  46. package/dist/reset.css +1 -1
  47. package/dist/themes/dark/components.css +1 -1
  48. package/dist/themes/dark/props.css +1 -1
  49. package/dist/themes/dark/volver.css +1 -1
  50. package/dist/utilities/backgrounds.css +1 -1
  51. package/dist/utilities/colors.css +1 -1
  52. package/dist/utilities/effects.css +1 -1
  53. package/dist/utilities/filters.css +1 -1
  54. package/dist/utilities/interactivity.css +1 -1
  55. package/dist/utilities/layout.css +1 -1
  56. package/dist/utilities/sizing.css +1 -1
  57. package/dist/utilities/transforms.css +1 -1
  58. package/dist/utilities/typography.css +1 -1
  59. package/dist/utilities.css +1 -1
  60. package/dist/volver.css +1 -1
  61. package/package.json +44 -44
  62. package/src/_config.scss +10 -9
  63. package/src/_preflight.scss +35 -1
  64. package/src/components/index.scss +1 -0
  65. package/src/components/vv-button-group.scss +6 -6
  66. package/src/components/vv-button.scss +1 -12
  67. package/src/components/vv-input-file.scss +93 -0
  68. package/src/components/vv-input-text.scss +54 -11
  69. package/src/components/vv-select.scss +53 -10
  70. package/src/components/vv-textarea.scss +53 -10
  71. package/src/components/vv-tooltip.scss +1 -1
  72. package/src/export.scss +33 -59
  73. package/src/props/background.scss +1 -0
  74. package/src/props/breakpoints.scss +5 -4
  75. package/src/props/index.scss +0 -1
  76. package/src/props/spacing.scss +2 -2
  77. package/src/props/transitions.scss +19 -0
  78. package/src/props/typography.scss +3 -2
  79. package/src/settings/_background.scss +228 -0
  80. package/src/settings/_colors.scss +26 -63
  81. package/src/settings/_effects.scss +3 -21
  82. package/src/settings/_filters.scss +15 -0
  83. package/src/settings/_index.scss +1 -1
  84. package/src/settings/_input.scss +4 -3
  85. package/src/settings/_interactivity.scss +14 -0
  86. package/src/settings/_layout.scss +1 -0
  87. package/src/settings/_transitions.scss +1 -0
  88. package/src/settings/_typography.scss +9 -1
  89. package/src/settings/components/_vv-accordion-group.scss +2 -2
  90. package/src/settings/components/_vv-accordion.scss +6 -5
  91. package/src/settings/components/_vv-alert-group.scss +14 -4
  92. package/src/settings/components/_vv-alert.scss +9 -9
  93. package/src/settings/components/_vv-avatar-group.scss +1 -0
  94. package/src/settings/components/_vv-avatar.scss +54 -52
  95. package/src/settings/components/_vv-badge.scss +67 -27
  96. package/src/settings/components/_vv-breadcrumb.scss +1 -0
  97. package/src/settings/components/_vv-button.scss +11 -5
  98. package/src/settings/components/_vv-card.scss +2 -0
  99. package/src/settings/components/_vv-checkbox-group.scss +3 -0
  100. package/src/settings/components/_vv-checkbox.scss +6 -0
  101. package/src/settings/components/_vv-dialog.scss +4 -0
  102. package/src/settings/components/_vv-dropdown-option.scss +2 -2
  103. package/src/settings/components/_vv-dropdown.scss +93 -7
  104. package/src/settings/components/_vv-input-file.scss +503 -0
  105. package/src/settings/components/_vv-input-text.scss +5 -1
  106. package/src/settings/components/_vv-nav.scss +10 -9
  107. package/src/settings/components/_vv-progress.scss +2 -0
  108. package/src/settings/components/_vv-radio.scss +3 -2
  109. package/src/settings/components/_vv-select.scss +6 -1
  110. package/src/settings/components/_vv-table.scss +19 -1
  111. package/src/settings/components/_vv-text.scss +1 -0
  112. package/src/settings/components/_vv-textarea.scss +6 -1
  113. package/src/themes/dark/components/_vv-avatar.scss +22 -0
  114. package/src/themes/dark/components/_vv-badge.scss +22 -0
  115. package/src/themes/dark/components/_vv-dropdown-action.scss +22 -0
  116. package/src/themes/dark/components/_vv-dropdown-option.scss +22 -0
  117. package/src/themes/dark/components/_vv-nav.scss +22 -0
  118. package/src/themes/dark/components/index.scss +6 -1
  119. package/src/themes/dark/settings/_background.scss +2 -0
  120. package/src/themes/dark/settings/_colors.scss +10 -44
  121. package/src/themes/dark/settings/_index.scss +6 -1
  122. package/src/themes/dark/settings/components/_vv-alert.scss +1 -1
  123. package/src/themes/dark/settings/components/_vv-avatar.scss +27 -0
  124. package/src/themes/dark/settings/components/_vv-badge.scss +50 -0
  125. package/src/themes/dark/settings/components/_vv-button.scss +13 -8
  126. package/src/themes/dark/settings/components/_vv-dropdown-action.scss +3 -0
  127. package/src/themes/dark/settings/components/_vv-dropdown-option.scss +19 -0
  128. package/src/themes/dark/settings/components/_vv-nav.scss +15 -0
  129. package/src/tools/_breakpoints.scss +13 -4
  130. package/src/tools/_functions.scss +125 -38
  131. package/src/tools/_mixins.scss +97 -26
  132. package/src/utilities/backgrounds.scss +14 -4
  133. package/src/utilities/flexbox.scss +6 -1
  134. package/src/utilities/index.scss +0 -1
  135. package/src/utilities/interactivity.scss +17 -1
  136. package/src/utilities/layout.scss +9 -3
  137. package/src/utilities/sizing.scss +10 -2
  138. package/src/utilities/spacing.scss +10 -1
  139. package/src/utilities/transforms.scss +2 -2
  140. package/src/utilities/typography.scss +21 -0
  141. package/dist/props/gradient.css +0 -1
  142. package/dist/utilities/gradients.css +0 -1
  143. package/src/props/gradient.scss +0 -7
  144. package/src/settings/_gradient.scss +0 -201
  145. package/src/utilities/gradients.scss +0 -11
@@ -5,19 +5,55 @@
5
5
  @use 'sass:list';
6
6
  @use 'sass:math';
7
7
 
8
+ @function color-hue($color) {
9
+ @return color.channel($color, 'hue', $space: hsl);
10
+ }
11
+
12
+ @function color-saturation($color) {
13
+ @return color.channel($color, 'saturation', $space: hsl);
14
+ }
15
+
16
+ @function color-lightness($color) {
17
+ @return color.channel($color, 'lightness', $space: hsl);
18
+ }
19
+
20
+ @function color-alpha($color) {
21
+ @return color.channel($color, 'alpha');
22
+ }
23
+
24
+ @function color-hsla($color) {
25
+ @return hsla(
26
+ color-hue($color),
27
+ color.channel($color, 'saturation', $space: hsl),
28
+ color.channel($color, 'lightness', $space: hsl),
29
+ color.channel($color, 'alpha')
30
+ );
31
+ }
32
+
33
+ @function color-red($color) {
34
+ @return color.channel($color, 'red', $space: rgb);
35
+ }
36
+
37
+ @function color-green($color) {
38
+ @return color.channel($color, 'green', $space: rgb);
39
+ }
40
+
41
+ @function color-blue($color) {
42
+ @return color.channel($color, 'blue', $space: rgb);
43
+ }
44
+
8
45
  @function hsla-map($color, $name, $noVarExport: false) {
9
46
  @if $noVarExport {
10
47
  @return (
11
- #{$name}: hsla(color.hue($color), color.saturation($color), color.lightness($color), color.alpha($color))
48
+ #{$name}: hsla(color-hue($color), color.channel($color, 'saturation', $space:
49
+ hsl), color.channel($color, 'lightness', $space: hsl), color.channel($color, 'alpha'))
12
50
  );
13
51
  } @else {
14
52
  @return (
15
- hue: color.hue($color),
16
- saturation: color.saturation($color),
17
- lightness: color.lightness($color),
18
- #{$name}: hsla(var(--color-#{$name}-hue)
19
- var(--color-#{$name}-saturation)
20
- var(--color-#{$name}-lightness) / color.alpha($color))
53
+ hue: color-hue($color),
54
+ saturation: color.channel($color, 'saturation', $space: hsl),
55
+ lightness: color.channel($color, 'lightness', $space: hsl),
56
+ #{$name}: hsla(var(--color-#{$name}-hue), var(--color-#{$name}-saturation), var(--color-#{$name}-lightness), color.channel($color, 'alpha'))
21
57
  );
22
58
  }
23
59
  }
@@ -26,32 +62,37 @@
26
62
  @if $noVarExport {
27
63
  @return (
28
64
  hsla(
29
- color.hue($color),
30
- color.saturation($color),
31
- color.lightness($color),
65
+ color-hue($color),
66
+ color.channel($color, 'saturation', $space: hsl),
67
+ color.channel($color, 'lightness', $space: hsl),
32
68
  $alpha
33
69
  )
34
70
  );
35
71
  } @else {
36
72
  @return hsla(
37
- var(--color-#{$name}-hue) var(--color-#{$name}-saturation)
38
- var(--color-#{$name}-lightness) / #{$alpha}
73
+ var(--color-#{$name}-hue),
74
+ var(--color-#{$name}-saturation),
75
+ var(--color-#{$name}-lightness),
76
+ $alpha
39
77
  );
40
78
  }
41
79
  }
42
80
 
43
81
  @function hex-to-rgb($hex) {
44
- @return red($hex), green($hex), blue($hex);
82
+ @return color.channel($hex, 'red', $space: rgb),
83
+ color.channel($hex, 'green', $space: rgb),
84
+ color.channel($hex, 'blue', $space: rgb);
45
85
  }
46
86
 
47
87
  @function color-alpha-map(
48
88
  $color,
49
89
  $name,
50
90
  $steps: 9,
51
- $scale: 10%,
91
+ $scale: 0.1,
52
92
  $noVarExport: false
53
93
  ) {
54
94
  $result: hsla-map($color, $name, $noVarExport);
95
+
55
96
  @for $index from 1 to ($steps + 1) {
56
97
  $result: map.merge(
57
98
  $result,
@@ -61,6 +102,7 @@
61
102
  )
62
103
  );
63
104
  }
105
+
64
106
  @return $result;
65
107
  }
66
108
 
@@ -73,8 +115,7 @@
73
115
  $noVarExport: false
74
116
  ) {
75
117
  $result: map.merge(
76
- map.merge(
77
- (#{$name}: $color),
118
+ map.set(
78
119
  color-lighten-map(
79
120
  $color,
80
121
  $name,
@@ -83,7 +124,9 @@
83
124
  'lighten',
84
125
  $fixed,
85
126
  $noVarExport
86
- )
127
+ ),
128
+ $name,
129
+ $color
87
130
  ),
88
131
  color-darken-map(
89
132
  $color,
@@ -95,6 +138,7 @@
95
138
  $noVarExport
96
139
  )
97
140
  );
141
+
98
142
  @return $result;
99
143
  }
100
144
 
@@ -105,27 +149,42 @@
105
149
  $scale: 10%,
106
150
  $prefix: '',
107
151
  $fixed: false,
108
- $noVarExport: false
152
+ $noVarExport: false,
153
+ $inverted: true
109
154
  ) {
110
155
  $result: hsla-map($color, $name, $noVarExport);
111
- @for $index from 1 to ($steps + 1) {
156
+
157
+ @for $counter from 1 to ($steps + 1) {
158
+ $index: $counter;
159
+
160
+ @if $inverted {
161
+ $index: $steps + 1 - $counter;
162
+ }
163
+
112
164
  $key: $index;
165
+
113
166
  @if $prefix != '' {
114
167
  $key: $prefix + '-' + $index;
115
168
  }
116
169
 
117
170
  @if $fixed {
118
171
  $increment: $scale * $index;
172
+
119
173
  @if $noVarExport {
120
- $alpha: color.lightness($color) + $increment;
174
+ $alpha: color.channel($color, 'lightness', $space: hsl) +
175
+ $increment;
121
176
  $result: map.merge(
122
177
  $result,
123
178
  (
124
179
  #{$key}:
125
180
  hsla(
126
- color.hue($color),
127
- color.saturation($color),
128
- color.lightness($color),
181
+ color-hue($color),
182
+ color.channel(
183
+ $color,
184
+ 'saturation',
185
+ $space: hsl
186
+ ),
187
+ color.channel($color, 'lightness', $space: hsl),
129
188
  $alpha
130
189
  )
131
190
  )
@@ -150,16 +209,22 @@
150
209
  $increment: math.div($scale * $index, 100);
151
210
  $increment: math.div($increment, ($increment * 0 + 1));
152
211
  $increment: $increment + 1;
212
+
153
213
  @if $noVarExport {
154
- $alpha: color.lightness($color) * $increment;
214
+ $alpha: color.channel($color, 'lightness', $space: hsl) *
215
+ $increment;
155
216
  $result: map.merge(
156
217
  $result,
157
218
  (
158
219
  #{$key}:
159
220
  hsla(
160
- color.hue($color),
161
- color.saturation($color),
162
- color.lightness($color),
221
+ color-hue($color),
222
+ color.channel(
223
+ $color,
224
+ 'saturation',
225
+ $space: hsl
226
+ ),
227
+ color.channel($color, 'lightness', $space: hsl),
163
228
  $alpha
164
229
  )
165
230
  )
@@ -182,6 +247,7 @@
182
247
  }
183
248
  }
184
249
  }
250
+
185
251
  @return $result;
186
252
  }
187
253
 
@@ -192,28 +258,42 @@
192
258
  $scale: 10%,
193
259
  $prefix: '',
194
260
  $fixed: false,
195
- $noVarExport: false
261
+ $noVarExport: false,
262
+ $inverted: false
196
263
  ) {
197
264
  $result: hsla-map($color, $name, $noVarExport);
198
265
 
199
- @for $index from 1 to ($steps + 1) {
266
+ @for $counter from 1 to ($steps + 1) {
267
+ $index: $counter;
268
+
269
+ @if $inverted {
270
+ $index: $steps + 1 - $counter;
271
+ }
272
+
200
273
  $key: $index;
274
+
201
275
  @if $prefix != '' {
202
276
  $key: $prefix + '-' + $index;
203
277
  }
204
278
 
205
279
  @if $fixed {
206
280
  $decrement: $scale * $index;
281
+
207
282
  @if $noVarExport {
208
- $alpha: color.lightness($color) - $decrement;
283
+ $alpha: color.channel($color, 'lightness', $space: hsl) -
284
+ $decrement;
209
285
  $result: map.merge(
210
286
  $result,
211
287
  (
212
288
  #{$key}:
213
289
  hsla(
214
- color.hue($color),
215
- color.saturation($color),
216
- color.lightness($color),
290
+ color-hue($color),
291
+ color.channel(
292
+ $color,
293
+ 'saturation',
294
+ $space: hsl
295
+ ),
296
+ color.channel($color, 'lightness', $space: hsl),
217
297
  $alpha
218
298
  )
219
299
  )
@@ -238,16 +318,22 @@
238
318
  $decrement: math.div($scale * $index, 100);
239
319
  $decrement: math.div($decrement, ($decrement * 0 + 1));
240
320
  $decrement: 1 - $decrement;
321
+
241
322
  @if $noVarExport {
242
- $alpha: color.lightness($color) * $decrement;
323
+ $alpha: color.channel($color, 'lightness', $space: hsl) *
324
+ $decrement;
243
325
  $result: map.merge(
244
326
  $result,
245
327
  (
246
328
  #{$key}:
247
329
  hsla(
248
- color.hue($color),
249
- color.saturation($color),
250
- color.lightness($color),
330
+ color-hue($color),
331
+ color.channel(
332
+ $color,
333
+ 'saturation',
334
+ $space: hsl
335
+ ),
336
+ color.channel($color, 'lightness', $space: hsl),
251
337
  $alpha
252
338
  )
253
339
  )
@@ -270,6 +356,7 @@
270
356
  }
271
357
  }
272
358
  }
359
+
273
360
  @return $result;
274
361
  }
275
362
 
@@ -307,7 +394,7 @@
307
394
  @function list-to-string($list, $glue: ', ') {
308
395
  $result: null;
309
396
 
310
- @for $i from 1 through length($list) {
397
+ @for $i from 1 through list.length($list) {
311
398
  $e: list.nth($list, $i);
312
399
 
313
400
  @if $result and $e {
@@ -3,6 +3,7 @@
3
3
  @use 'sass:string';
4
4
  @use 'sass:meta';
5
5
  @use 'sass:selector';
6
+ @use 'sass:math';
6
7
  @use 'functions' as *;
7
8
  @use 'breakpoints' as *;
8
9
 
@@ -11,10 +12,11 @@
11
12
  @mixin assert-ascending($map, $map-name) {
12
13
  $prev-key: null;
13
14
  $prev-num: null;
15
+
14
16
  @each $key, $num in $map {
15
- @if not $prev-num or unit($num) == '%' {
17
+ @if not $prev-num or math.unit($num) == '%' {
16
18
  // Do nothing
17
- } @else if not comparable($prev-num, $num) {
19
+ } @else if not compatible($prev-num, $num) {
18
20
  @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
19
21
  } @else if $prev-num >= $num {
20
22
  @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
@@ -30,6 +32,7 @@
30
32
  @mixin assert-starts-at-zero($map, $map-name: '$grid-breakpoints') {
31
33
  $values: map.values($map);
32
34
  $first-value: list.nth($values, 1);
35
+
33
36
  @if $first-value != 0 {
34
37
  @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
35
38
  }
@@ -39,6 +42,7 @@
39
42
  @mixin spread-map-into-props($map: (), $prefix: '', $old-key: '', $deep: true) {
40
43
  @each $key, $value in $map {
41
44
  $name: meta.inspect($key);
45
+
42
46
  @if $name == meta.inspect($old-key) {
43
47
  $name: $prefix;
44
48
  } @else if $prefix != '' and meta.inspect($prefix) != meta.inspect($key)
@@ -56,7 +60,7 @@
56
60
  string.slice(meta.inspect($key), 1, 1) !=
57
61
  '['
58
62
  {
59
- @if type-of($value) == 'map' {
63
+ @if meta.type-of($value) == 'map' {
60
64
  @if $deep {
61
65
  @include spread-map-into-props($value, $name, $key);
62
66
  }
@@ -81,17 +85,21 @@
81
85
  $prefix: '',
82
86
  $zero-specificity: false
83
87
  ) {
84
- @if (type-of($map) == 'map' or type-of($map) == 'list') and $attribute != ''
88
+ @if (meta.type-of($map) == 'map' or meta.type-of($map) == 'list') and
89
+ $attribute !=
90
+ ''
85
91
  {
86
92
  @each $breakpoint, $breakpoint-value in $bps {
87
93
  @if $breakpoint-value > 0 {
88
94
  $prefix: $breakpoint + '\\:';
89
95
  }
96
+
90
97
  @each $key, $value in $map {
91
98
  @if $name != '' and meta.inspect($key) != meta.inspect($name) {
92
99
  $key: #{$name}-#{meta.inspect($key)};
93
100
  }
94
- @if type-of($value) == 'map' and $deep {
101
+
102
+ @if meta.type-of($value) == 'map' and $deep {
95
103
  @include spread-map-into-utilities(
96
104
  $map: $value,
97
105
  $class: $class,
@@ -125,27 +133,28 @@
125
133
  $var: str-replace($var, '\\/', '-');
126
134
 
127
135
  // check if value is not a map (spacing-dynamic)
128
- @if type-of($value) != 'map' {
136
+ @if meta.type-of($value) != 'map' {
129
137
  $default: $value;
130
138
  }
131
139
 
132
140
  // check if map is a list
133
- @if type-of($map) ==
141
+ @if meta.type-of($map) ==
134
142
  'list' and
135
143
  (not $default or $default == '')
136
144
  {
137
145
  $default: $key;
138
146
  }
139
147
 
140
- @if type-of($default) == 'string' {
148
+ @if meta.type-of($default) == 'string' {
141
149
  $default: string.unquote($default);
142
150
  }
143
151
 
144
152
  %#{$prefix}#{$class-name} {
145
153
  @include media-breakpoint-up($breakpoint, $bps) {
146
- @if type-of($attribute) != 'list' {
154
+ @if meta.type-of($attribute) != 'list' {
147
155
  $attribute: ($attribute);
148
156
  }
157
+
149
158
  @each $attr in $attribute {
150
159
  @if $default {
151
160
  @if $var != '' {
@@ -159,6 +168,7 @@
159
168
  }
160
169
  }
161
170
  }
171
+
162
172
  @include wrap-with-where(
163
173
  $selector: '.' + $prefix + $class-name,
164
174
  $enabled: $zero-specificity
@@ -188,10 +198,12 @@
188
198
  @if not $original {
189
199
  $original: $map;
190
200
  }
201
+
191
202
  @if not $block {
192
203
  $block: &;
193
204
  }
194
- @if type-of(map.get($map, $key)) == 'map' {
205
+
206
+ @if meta.type-of(map.get($map, $key)) == 'map' {
195
207
  @each $item, $value in map.get($map, $key) {
196
208
  $selector: $block + '--' + $item;
197
209
 
@@ -300,13 +312,25 @@
300
312
  $block: &;
301
313
  }
302
314
 
303
- @if type-of(map.get($map, $key)) == 'map' {
315
+ @if meta.type-of(map.get($map, $key)) == 'map' {
304
316
  @each $element, $value in map.get($map, $key) {
305
317
  $selector: $block + '__' + $element;
306
318
 
319
+ // combinator
320
+ $combinator: map.get($value, '_combinator');
321
+
322
+ @if not $combinator {
323
+ $combinator: map.get($original, $key, $element, '_combinator');
324
+ }
325
+
307
326
  @if $modifier {
308
327
  $selectors: ();
328
+
309
329
  @each $item in selector.parse($modifier) {
330
+ @if $combinator {
331
+ $item: '#{$item} #{$combinator}';
332
+ }
333
+
310
334
  $selectors: list.join(
311
335
  $selectors,
312
336
  selector.nest($item, $selector)
@@ -326,6 +350,7 @@
326
350
  @if $alias {
327
351
  @if $modifier {
328
352
  $aliases: ();
353
+
329
354
  @each $item in selector.parse($modifier) {
330
355
  $aliases: list.join(
331
356
  $aliases,
@@ -414,7 +439,7 @@
414
439
  $blocks: &;
415
440
  }
416
441
 
417
- @if type-of(map.get($map, $key)) == 'map' {
442
+ @if meta.type-of(map.get($map, $key)) == 'map' {
418
443
  @each $state, $value in map.get($map, $key) {
419
444
  @if list.index(
420
445
  (
@@ -428,6 +453,7 @@
428
453
  disabled,
429
454
  checked,
430
455
  checked-within,
456
+ multiple,
431
457
  selected,
432
458
  readonly,
433
459
  empty,
@@ -514,7 +540,14 @@
514
540
  '#{$modifier}#{$alias}:not(:has(*:placeholder-shown))'
515
541
  );
516
542
  }
517
- } @else if $state == 'disabled' or $state == 'readonly' {
543
+ } @else if
544
+ $state ==
545
+ 'disabled' or
546
+ $state ==
547
+ 'readonly' or
548
+ $state ==
549
+ 'multiple'
550
+ {
518
551
  $selectors: list.join(
519
552
  $selectors,
520
553
  '#{$modifier}#{$block-item}[#{$state}]'
@@ -677,10 +710,12 @@
677
710
  @if not $original {
678
711
  $original: $map;
679
712
  }
713
+
680
714
  @if not $block {
681
715
  $block: &;
682
716
  }
683
- @if type-of(map.get($map, $key)) == 'map' {
717
+
718
+ @if meta.type-of(map.get($map, $key)) == 'map' {
684
719
  @each $breakpoint, $value in map.get($map, $key) {
685
720
  @if string.index($breakpoint, '-') {
686
721
  $operator: list.nth(string.split($breakpoint, '-'), 1);
@@ -704,6 +739,7 @@
704
739
  }
705
740
  }
706
741
  }
742
+
707
743
  @if $operator == 'down' {
708
744
  @include wrap-with-where(
709
745
  $selector: '#{$modifier}#{$block}',
@@ -721,6 +757,7 @@
721
757
  }
722
758
  }
723
759
  }
760
+
724
761
  @if map.has-key($bps, $operator) {
725
762
  @include wrap-with-where(
726
763
  $selector: '#{$modifier}#{$block}',
@@ -810,10 +847,13 @@
810
847
  xxs: 0,
811
848
  )
812
849
  ) {
813
- @if type-of($map) == 'map' and $prefix != '' {
850
+ @if meta.type-of($map) == 'map' and $prefix != '' {
814
851
  @each $key, $value in $map {
815
852
  @if not list.index($ignore, $key) {
816
- @if type-of($value) == 'map' and ($deep or $key == 'pseudo') {
853
+ @if meta.type-of($value) ==
854
+ 'map' and
855
+ ($deep or $key == 'pseudo')
856
+ {
817
857
  $original: map.get($original, $key);
818
858
 
819
859
  @if not $original {
@@ -823,9 +863,10 @@
823
863
  @if $postfix != '' {
824
864
  $key: #{$postfix}-#{$key};
825
865
  }
866
+
826
867
  @if $key == 'pseudo' {
827
868
  @each $pseudo-element, $pseudo-map in $value {
828
- @if type-of($pseudo-map) == 'map' {
869
+ @if meta.type-of($pseudo-map) == 'map' {
829
870
  @if list.index(
830
871
  (
831
872
  before,
@@ -844,6 +885,8 @@
844
885
  datetime-edit,
845
886
  datetime-edit-fields-wrapper,
846
887
  datetime-edit-day-field,
888
+ backdrop,
889
+ file-selector-button,
847
890
  -webkit-progress-bar,
848
891
  -webkit-progress-value,
849
892
  -webkit-inner-element,
@@ -851,7 +894,9 @@
851
894
  -moz-progress-value,
852
895
  -moz-inner-element,
853
896
  -webkit-details-marker,
854
- -webkit-scrollbar
897
+ -webkit-scrollbar,
898
+ -webkit-scrollbar-track,
899
+ -webkit-scrollbar-thumb
855
900
  ),
856
901
  $pseudo-element
857
902
  )
@@ -904,7 +949,7 @@
904
949
  );
905
950
  }
906
951
  } @else if
907
- type-of($value) !=
952
+ meta.type-of($value) !=
908
953
  'map' and
909
954
  (string.slice(meta.inspect($key), 1, 1) != '_')
910
955
  {
@@ -933,9 +978,15 @@
933
978
  $prop-to-replace-with: #{$prop-to-replace-with}-#{$key};
934
979
 
935
980
  @if map.get($original, $key) {
936
- #{$prop-to-replace}: var(#{$prop-to-replace-with});
981
+ & {
982
+ #{$prop-to-replace}: var(
983
+ #{$prop-to-replace-with}
984
+ );
985
+ }
937
986
  } @else {
938
- #{$key}: var(#{$prop-to-replace-with});
987
+ & {
988
+ #{$key}: var(#{$prop-to-replace-with});
989
+ }
939
990
  }
940
991
  } @else {
941
992
  @if string.slice(meta.inspect($key), 1, 1) == '[' {
@@ -946,7 +997,9 @@
946
997
  );
947
998
  }
948
999
 
949
- #{$key}: $value;
1000
+ & {
1001
+ #{$key}: $value;
1002
+ }
950
1003
  }
951
1004
  }
952
1005
  }
@@ -956,9 +1009,10 @@
956
1009
 
957
1010
  // Wrap selector with :where()
958
1011
  @mixin wrap-with-where($selector, $enabled: true) {
959
- @if type-of($selector) == 'map' or type-of($selector) == 'list' {
1012
+ @if meta.type-of($selector) == 'map' or meta.type-of($selector) == 'list' {
960
1013
  $selector: #{$selector};
961
1014
  }
1015
+
962
1016
  @if $enabled {
963
1017
  $selector: ':where(#{unquote($selector)})';
964
1018
  }
@@ -988,7 +1042,7 @@
988
1042
  $custom-transitions: false,
989
1043
  $bps: (xxs: 0)
990
1044
  ) {
991
- @if type-of($map) == 'map' and $block != '' {
1045
+ @if meta.type-of($map) == 'map' and $block != '' {
992
1046
  $selector: '.' + $block;
993
1047
 
994
1048
  // custom props
@@ -1016,6 +1070,7 @@
1016
1070
  // content
1017
1071
  @content;
1018
1072
  }
1073
+
1019
1074
  @include wrap-with-where(
1020
1075
  $selector: $selector,
1021
1076
  $enabled: $zero-specificity
@@ -1119,12 +1174,13 @@
1119
1174
  @if not $block {
1120
1175
  $block: &;
1121
1176
  }
1122
- @if type-of(map.get($map, $key)) == 'map' {
1177
+
1178
+ @if meta.type-of(map.get($map, $key)) == 'map' {
1123
1179
  @each $transition, $states in map.get($map, $key) {
1124
1180
  @each $state, $value in $states {
1125
1181
  @if $state in [ 'enter-from', 'enter-active', 'enter-to',
1126
1182
  'leave-from', 'leave-active', 'leave-to', 'active',
1127
- 'inert'] and type-of($value) == 'map'
1183
+ 'inert'] and meta.type-of($value) == 'map'
1128
1184
  {
1129
1185
  $selector: '.#{$transition}';
1130
1186
 
@@ -1178,6 +1234,21 @@
1178
1234
  $bps: $bps
1179
1235
  );
1180
1236
  }
1237
+
1238
+ // map breakpoints
1239
+ @if map.get($value, 'breakpoint') {
1240
+ @include spread-map-into-breakpoints(
1241
+ $original: $map,
1242
+ $map: $value,
1243
+ $prefix: #{$prefix}-#{$key}-#{$transition}-#{$state},
1244
+ $key: 'breakpoint',
1245
+ $block: $block,
1246
+ $modifier: $selector,
1247
+ $props: $props,
1248
+ $zero-specificity: $zero-specificity,
1249
+ $bps: $bps
1250
+ );
1251
+ }
1181
1252
  }
1182
1253
  }
1183
1254
  }