@type-dom/ui 0.3.0 → 0.4.0

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 (135) hide show
  1. package/README.md +134 -134
  2. package/dist/package.json +11 -3
  3. package/dist/src/components/data/td-progress/td-progress.class.js +5 -5
  4. package/dist/src/components/feedback/td-tooltip/td-tooltip.const.d.ts.map +1 -1
  5. package/dist/src/hooks/use-deprecated/index.js +2 -2
  6. package/dist/src/hooks/use-id/index.js +4 -4
  7. package/dist/src/hooks/use-z-index/index.js +1 -1
  8. package/dist/src/theme-chalk/affix.scss +7 -7
  9. package/dist/src/theme-chalk/alert.scss +115 -115
  10. package/dist/src/theme-chalk/anchor-link.scss +41 -41
  11. package/dist/src/theme-chalk/anchor.scss +88 -88
  12. package/dist/src/theme-chalk/aside.scss +8 -8
  13. package/dist/src/theme-chalk/autocomplete.scss +89 -89
  14. package/dist/src/theme-chalk/avatar.scss +55 -55
  15. package/dist/src/theme-chalk/backtop.scss +29 -29
  16. package/dist/src/theme-chalk/badge.scss +58 -58
  17. package/dist/src/theme-chalk/base.scss +3 -3
  18. package/dist/src/theme-chalk/breadcrumb.scss +62 -62
  19. package/dist/src/theme-chalk/button-group.scss +80 -80
  20. package/dist/src/theme-chalk/button.scss +304 -304
  21. package/dist/src/theme-chalk/calendar.scss +80 -80
  22. package/dist/src/theme-chalk/card.scss +45 -45
  23. package/dist/src/theme-chalk/carousel-item.scss +58 -58
  24. package/dist/src/theme-chalk/carousel.scss +188 -188
  25. package/dist/src/theme-chalk/cascader-panel.scss +138 -138
  26. package/dist/src/theme-chalk/cascader.scss +247 -247
  27. package/dist/src/theme-chalk/check-tag.scss +60 -60
  28. package/dist/src/theme-chalk/checkbox-button.scss +140 -140
  29. package/dist/src/theme-chalk/checkbox-group.scss +7 -7
  30. package/dist/src/theme-chalk/checkbox.scss +298 -298
  31. package/dist/src/theme-chalk/col.scss +48 -48
  32. package/dist/src/theme-chalk/collapse.scss +70 -70
  33. package/dist/src/theme-chalk/color/index.scss +20 -20
  34. package/dist/src/theme-chalk/color-picker.scss +393 -393
  35. package/dist/src/theme-chalk/common/popup.scss +47 -47
  36. package/dist/src/theme-chalk/common/transition.scss +122 -122
  37. package/dist/src/theme-chalk/common/var.scss +1655 -1655
  38. package/dist/src/theme-chalk/container.scss +14 -14
  39. package/dist/src/theme-chalk/dark/css-vars.scss +39 -39
  40. package/dist/src/theme-chalk/dark/var.scss +222 -222
  41. package/dist/src/theme-chalk/date-picker/date-picker.scss +110 -110
  42. package/dist/src/theme-chalk/date-picker/date-range-picker.scss +113 -113
  43. package/dist/src/theme-chalk/date-picker/date-table.scss +158 -158
  44. package/dist/src/theme-chalk/date-picker/month-table.scss +112 -112
  45. package/dist/src/theme-chalk/date-picker/picker-panel.scss +131 -131
  46. package/dist/src/theme-chalk/date-picker/picker.scss +212 -212
  47. package/dist/src/theme-chalk/date-picker/time-picker.scss +90 -90
  48. package/dist/src/theme-chalk/date-picker/time-range-picker.scss +33 -33
  49. package/dist/src/theme-chalk/date-picker/time-spinner.scss +111 -111
  50. package/dist/src/theme-chalk/date-picker/year-table.scss +108 -108
  51. package/dist/src/theme-chalk/date-picker.scss +9 -9
  52. package/dist/src/theme-chalk/descriptions-item.scss +73 -73
  53. package/dist/src/theme-chalk/descriptions.scss +152 -152
  54. package/dist/src/theme-chalk/dialog.scss +192 -192
  55. package/dist/src/theme-chalk/display.scss +12 -12
  56. package/dist/src/theme-chalk/divider.scss +48 -48
  57. package/dist/src/theme-chalk/drawer.scss +155 -155
  58. package/dist/src/theme-chalk/dropdown.scss +208 -208
  59. package/dist/src/theme-chalk/empty.scss +49 -49
  60. package/dist/src/theme-chalk/footer.scss +12 -12
  61. package/dist/src/theme-chalk/form.scss +244 -244
  62. package/dist/src/theme-chalk/header.scss +12 -12
  63. package/dist/src/theme-chalk/icon.scss +45 -45
  64. package/dist/src/theme-chalk/image-viewer.scss +155 -155
  65. package/dist/src/theme-chalk/image.scss +49 -49
  66. package/dist/src/theme-chalk/index.scss +111 -111
  67. package/dist/src/theme-chalk/input-number.scss +186 -186
  68. package/dist/src/theme-chalk/input-tag.scss +220 -220
  69. package/dist/src/theme-chalk/input.scss +474 -474
  70. package/dist/src/theme-chalk/link.scss +90 -90
  71. package/dist/src/theme-chalk/loading.scss +104 -104
  72. package/dist/src/theme-chalk/main.scss +14 -14
  73. package/dist/src/theme-chalk/mention.scss +92 -92
  74. package/dist/src/theme-chalk/menu.scss +339 -339
  75. package/dist/src/theme-chalk/message-box.scss +213 -213
  76. package/dist/src/theme-chalk/message.scss +98 -98
  77. package/dist/src/theme-chalk/mixins/_button.scss +165 -165
  78. package/dist/src/theme-chalk/mixins/_col.scss +33 -33
  79. package/dist/src/theme-chalk/mixins/_var.scss +67 -67
  80. package/dist/src/theme-chalk/mixins/config.scss +5 -5
  81. package/dist/src/theme-chalk/mixins/function.scss +88 -88
  82. package/dist/src/theme-chalk/mixins/mixins.scss +240 -240
  83. package/dist/src/theme-chalk/mixins/utils.scss +39 -39
  84. package/dist/src/theme-chalk/notification.scss +107 -107
  85. package/dist/src/theme-chalk/option-group.scss +33 -33
  86. package/dist/src/theme-chalk/option.scss +71 -71
  87. package/dist/src/theme-chalk/overlay.scss +17 -17
  88. package/dist/src/theme-chalk/page-header.scss +60 -60
  89. package/dist/src/theme-chalk/pagination.scss +238 -238
  90. package/dist/src/theme-chalk/popconfirm.scss +16 -16
  91. package/dist/src/theme-chalk/popover.scss +61 -61
  92. package/dist/src/theme-chalk/popper.scss +106 -106
  93. package/dist/src/theme-chalk/progress.scss +179 -179
  94. package/dist/src/theme-chalk/radio-button.scss +169 -169
  95. package/dist/src/theme-chalk/radio-group.scss +9 -9
  96. package/dist/src/theme-chalk/radio.scss +215 -215
  97. package/dist/src/theme-chalk/rate.scss +108 -108
  98. package/dist/src/theme-chalk/reset.scss +98 -98
  99. package/dist/src/theme-chalk/result.scss +57 -57
  100. package/dist/src/theme-chalk/row.scss +35 -35
  101. package/dist/src/theme-chalk/scrollbar.scss +97 -97
  102. package/dist/src/theme-chalk/segmented.scss +183 -183
  103. package/dist/src/theme-chalk/select-dropdown-v2.scss +1 -1
  104. package/dist/src/theme-chalk/select-dropdown.scss +57 -57
  105. package/dist/src/theme-chalk/select-v2.scss +4 -4
  106. package/dist/src/theme-chalk/select.scss +264 -264
  107. package/dist/src/theme-chalk/skeleton-item.scss +83 -83
  108. package/dist/src/theme-chalk/skeleton.scss +44 -44
  109. package/dist/src/theme-chalk/slider.scss +212 -212
  110. package/dist/src/theme-chalk/space.scss +20 -20
  111. package/dist/src/theme-chalk/spinner.scss +43 -43
  112. package/dist/src/theme-chalk/statistic.scss +35 -35
  113. package/dist/src/theme-chalk/step.scss +316 -316
  114. package/dist/src/theme-chalk/steps.scss +21 -21
  115. package/dist/src/theme-chalk/switch.scss +300 -300
  116. package/dist/src/theme-chalk/table-column.scss +98 -98
  117. package/dist/src/theme-chalk/table-v2.scss +236 -236
  118. package/dist/src/theme-chalk/table.scss +694 -694
  119. package/dist/src/theme-chalk/tabs.scss +660 -660
  120. package/dist/src/theme-chalk/tag.scss +181 -181
  121. package/dist/src/theme-chalk/text.scss +51 -51
  122. package/dist/src/theme-chalk/time-picker.scss +5 -5
  123. package/dist/src/theme-chalk/time-select.scss +37 -37
  124. package/dist/src/theme-chalk/timeline-item.scss +84 -84
  125. package/dist/src/theme-chalk/timeline.scss +46 -46
  126. package/dist/src/theme-chalk/tooltip-v2.scss +95 -95
  127. package/dist/src/theme-chalk/tour.scss +187 -187
  128. package/dist/src/theme-chalk/transfer.scss +203 -203
  129. package/dist/src/theme-chalk/tree-select.scss +41 -41
  130. package/dist/src/theme-chalk/tree.scss +134 -134
  131. package/dist/src/theme-chalk/upload.scss +654 -654
  132. package/dist/src/theme-chalk/var.scss +87 -87
  133. package/dist/src/theme-chalk/virtual-list.scss +40 -40
  134. package/package.json +42 -34
  135. package/dist/README.md +0 -134
@@ -1,88 +1,88 @@
1
- @use 'config';
2
- @use 'sass:meta';
3
- @use 'sass:string';
4
-
5
- // BEM support Func
6
- @function selectorToString($selector) {
7
- $selector: meta.inspect($selector);
8
- $selector: string.slice($selector, 2, -2);
9
- @return $selector;
10
- }
11
-
12
- @function containsModifier($selector) {
13
- $selector: selectorToString($selector);
14
-
15
- @if string.index($selector, config.$modifier-separator) {
16
- @return true;
17
- } @else {
18
- @return false;
19
- }
20
- }
21
-
22
- @function containWhenFlag($selector) {
23
- $selector: selectorToString($selector);
24
-
25
- @if string.index($selector, '.' + config.$state-prefix) {
26
- @return true;
27
- } @else {
28
- @return false;
29
- }
30
- }
31
-
32
- @function containPseudoClass($selector) {
33
- $selector: selectorToString($selector);
34
-
35
- @if string.index($selector, ':') {
36
- @return true;
37
- } @else {
38
- @return false;
39
- }
40
- }
41
-
42
- @function hitAllSpecialNestRule($selector) {
43
- @return containsModifier($selector) or containWhenFlag($selector) or
44
- containPseudoClass($selector);
45
- }
46
-
47
- // join var name
48
- // joinVarName(('button', 'text-color')) => '--el-button-text-color'
49
- @function joinVarName($list) {
50
- $name: '--' + config.$namespace;
51
- @each $item in $list {
52
- @if $item != '' {
53
- $name: $name + '-' + $item;
54
- }
55
- }
56
- @return $name;
57
- }
58
-
59
- // getCssVarName('button', 'text-color') => '--el-button-text-color'
60
- @function getCssVarName($args...) {
61
- @return joinVarName($args);
62
- }
63
-
64
- // getCssVar('button', 'text-color') => var(--el-button-text-color)
65
- @function getCssVar($args...) {
66
- @return var(#{joinVarName($args)});
67
- }
68
-
69
- // getCssVarWithDefault(('button', 'text-color'), red) => var(--el-button-text-color, red)
70
- @function getCssVarWithDefault($args, $default) {
71
- @return var(#{joinVarName($args)}, #{$default});
72
- }
73
-
74
- // bem('block', 'element', 'modifier') => 'el-block__element--modifier'
75
- @function bem($block, $element: '', $modifier: '') {
76
- $name: config.$namespace + config.$common-separator + $block;
77
-
78
- @if $element != '' {
79
- $name: $name + config.$element-separator + $element;
80
- }
81
-
82
- @if $modifier != '' {
83
- $name: $name + config.$modifier-separator + $modifier;
84
- }
85
-
86
- // @debug $name;
87
- @return $name;
88
- }
1
+ @use 'config';
2
+ @use 'sass:meta';
3
+ @use 'sass:string';
4
+
5
+ // BEM support Func
6
+ @function selectorToString($selector) {
7
+ $selector: meta.inspect($selector);
8
+ $selector: string.slice($selector, 2, -2);
9
+ @return $selector;
10
+ }
11
+
12
+ @function containsModifier($selector) {
13
+ $selector: selectorToString($selector);
14
+
15
+ @if string.index($selector, config.$modifier-separator) {
16
+ @return true;
17
+ } @else {
18
+ @return false;
19
+ }
20
+ }
21
+
22
+ @function containWhenFlag($selector) {
23
+ $selector: selectorToString($selector);
24
+
25
+ @if string.index($selector, '.' + config.$state-prefix) {
26
+ @return true;
27
+ } @else {
28
+ @return false;
29
+ }
30
+ }
31
+
32
+ @function containPseudoClass($selector) {
33
+ $selector: selectorToString($selector);
34
+
35
+ @if string.index($selector, ':') {
36
+ @return true;
37
+ } @else {
38
+ @return false;
39
+ }
40
+ }
41
+
42
+ @function hitAllSpecialNestRule($selector) {
43
+ @return containsModifier($selector) or containWhenFlag($selector) or
44
+ containPseudoClass($selector);
45
+ }
46
+
47
+ // join var name
48
+ // joinVarName(('button', 'text-color')) => '--el-button-text-color'
49
+ @function joinVarName($list) {
50
+ $name: '--' + config.$namespace;
51
+ @each $item in $list {
52
+ @if $item != '' {
53
+ $name: $name + '-' + $item;
54
+ }
55
+ }
56
+ @return $name;
57
+ }
58
+
59
+ // getCssVarName('button', 'text-color') => '--el-button-text-color'
60
+ @function getCssVarName($args...) {
61
+ @return joinVarName($args);
62
+ }
63
+
64
+ // getCssVar('button', 'text-color') => var(--el-button-text-color)
65
+ @function getCssVar($args...) {
66
+ @return var(#{joinVarName($args)});
67
+ }
68
+
69
+ // getCssVarWithDefault(('button', 'text-color'), red) => var(--el-button-text-color, red)
70
+ @function getCssVarWithDefault($args, $default) {
71
+ @return var(#{joinVarName($args)}, #{$default});
72
+ }
73
+
74
+ // bem('block', 'element', 'modifier') => 'el-block__element--modifier'
75
+ @function bem($block, $element: '', $modifier: '') {
76
+ $name: config.$namespace + config.$common-separator + $block;
77
+
78
+ @if $element != '' {
79
+ $name: $name + config.$element-separator + $element;
80
+ }
81
+
82
+ @if $modifier != '' {
83
+ $name: $name + config.$modifier-separator + $modifier;
84
+ }
85
+
86
+ // @debug $name;
87
+ @return $name;
88
+ }
@@ -1,240 +1,240 @@
1
- @use 'function' as *;
2
- @use '../common/var' as *;
3
- // forward mixins
4
- @forward 'config';
5
- @forward 'function';
6
- @forward 'var';
7
- @use 'config' as *;
8
- @use 'sass:string';
9
- @use 'sass:map';
10
-
11
- $B: null;
12
- $E: null;
13
-
14
- // Break-points
15
- @mixin res($key, $map: $breakpoints) {
16
- // loop breakpoint Map, return if present
17
- @if map.has-key($map, $key) {
18
- @media only screen and #{string.unquote(map.get($map, $key))} {
19
- @content;
20
- }
21
- } @else {
22
- @warn "Undefined points: `#{$map}`";
23
- }
24
- }
25
-
26
- // Scrollbar
27
- @mixin scroll-bar {
28
- $scrollbar-thumb-background: getCssVar('text-color', 'disabled');
29
- $scrollbar-track-background: getCssVar('fill-color', 'blank');
30
-
31
- &::-webkit-scrollbar {
32
- z-index: 11;
33
- width: 6px;
34
-
35
- &:horizontal {
36
- height: 6px;
37
- }
38
-
39
- &-thumb {
40
- border-radius: 5px;
41
- width: 6px;
42
- background: $scrollbar-thumb-background;
43
- }
44
-
45
- &-corner {
46
- background: $scrollbar-track-background;
47
- }
48
-
49
- &-track {
50
- background: $scrollbar-track-background;
51
-
52
- &-piece {
53
- background: $scrollbar-track-background;
54
- width: 6px;
55
- }
56
- }
57
- }
58
- }
59
-
60
- // BEM
61
- @mixin b($block) {
62
- $B: $namespace + $common-separator + $block !global;
63
-
64
- .#{$B} {
65
- @content;
66
- }
67
- }
68
-
69
- @mixin e($element) {
70
- $E: $element !global;
71
- $selector: &;
72
- $currentSelector: '';
73
- @each $unit in $element {
74
- $currentSelector: #{$currentSelector +
75
- '.' +
76
- $B +
77
- $element-separator +
78
- $unit +
79
- ','};
80
- }
81
-
82
- @if hitAllSpecialNestRule($selector) {
83
- @at-root {
84
- #{$selector} {
85
- #{$currentSelector} {
86
- @content;
87
- }
88
- }
89
- }
90
- } @else {
91
- @at-root {
92
- #{$currentSelector} {
93
- @content;
94
- }
95
- }
96
- }
97
- }
98
-
99
- @mixin m($modifier) {
100
- $selector: &;
101
- $currentSelector: '';
102
- @each $unit in $modifier {
103
- $currentSelector: #{$currentSelector +
104
- $selector +
105
- $modifier-separator +
106
- $unit +
107
- ','};
108
- }
109
-
110
- @at-root {
111
- #{$currentSelector} {
112
- @content;
113
- }
114
- }
115
- }
116
-
117
- @mixin configurable-m($modifier, $E-flag: false) {
118
- $selector: &;
119
- $interpolation: '';
120
-
121
- @if $E-flag {
122
- $interpolation: $element-separator + $E-flag;
123
- }
124
-
125
- @at-root {
126
- #{$selector} {
127
- .#{$B + $interpolation + $modifier-separator + $modifier} {
128
- @content;
129
- }
130
- }
131
- }
132
- }
133
-
134
- @mixin spec-selector(
135
- $specSelector: '',
136
- $element: $E,
137
- $modifier: false,
138
- $block: $B
139
- ) {
140
- $modifierCombo: '';
141
-
142
- @if $modifier {
143
- $modifierCombo: $modifier-separator + $modifier;
144
- }
145
-
146
- @at-root {
147
- #{&}#{$specSelector}.#{$block
148
- + $element-separator
149
- + $element
150
- + $modifierCombo} {
151
- @content;
152
- }
153
- }
154
- }
155
-
156
- @mixin meb($modifier: false, $element: $E, $block: $B) {
157
- $selector: &;
158
- $modifierCombo: '';
159
-
160
- @if $modifier {
161
- $modifierCombo: $modifier-separator + $modifier;
162
- }
163
-
164
- @at-root {
165
- #{$selector} {
166
- .#{$block + $element-separator + $element + $modifierCombo} {
167
- @content;
168
- }
169
- }
170
- }
171
- }
172
-
173
- @mixin when($state) {
174
- @at-root {
175
- &.#{$state-prefix + $state} {
176
- @content;
177
- }
178
- }
179
- }
180
-
181
- @mixin extend-rule($name) {
182
- @extend #{'%shared-' + $name} !optional;
183
- }
184
-
185
- @mixin share-rule($name) {
186
- $rule-name: '%shared-' + $name;
187
-
188
- @at-root #{$rule-name} {
189
- @content;
190
- }
191
- }
192
-
193
- @mixin pseudo($pseudo) {
194
- @at-root #{&}#{':#{$pseudo}'} {
195
- @content;
196
- }
197
- }
198
-
199
- @mixin picker-popper($background, $border, $box-shadow) {
200
- &.#{$namespace}-popper {
201
- background: $background;
202
- border: $border;
203
- box-shadow: $box-shadow;
204
-
205
- .#{$namespace}-popper__arrow {
206
- &::before {
207
- border: $border;
208
- }
209
- }
210
-
211
- @each $placement,
212
- $adjacency
213
- in ('top': 'left', 'bottom': 'right', 'left': 'bottom', 'right': 'top')
214
- {
215
- &[data-popper-placement^='#{$placement}'] {
216
- .#{$namespace}-popper__arrow::before {
217
- border-#{$placement}-color: transparent;
218
- border-#{$adjacency}-color: transparent;
219
- }
220
- }
221
- }
222
- }
223
- }
224
-
225
- // dark
226
- @mixin dark($block) {
227
- html.dark {
228
- @include b($block) {
229
- @content;
230
- }
231
- }
232
- }
233
-
234
- @mixin inset-input-border($color, $important: false) {
235
- @if $important == true {
236
- box-shadow: 0 0 0 1px $color inset !important;
237
- } @else {
238
- box-shadow: 0 0 0 1px $color inset;
239
- }
240
- }
1
+ @use 'function' as *;
2
+ @use '../common/var' as *;
3
+ // forward mixins
4
+ @forward 'config';
5
+ @forward 'function';
6
+ @forward 'var';
7
+ @use 'config' as *;
8
+ @use 'sass:string';
9
+ @use 'sass:map';
10
+
11
+ $B: null;
12
+ $E: null;
13
+
14
+ // Break-points
15
+ @mixin res($key, $map: $breakpoints) {
16
+ // loop breakpoint Map, return if present
17
+ @if map.has-key($map, $key) {
18
+ @media only screen and #{string.unquote(map.get($map, $key))} {
19
+ @content;
20
+ }
21
+ } @else {
22
+ @warn "Undefined points: `#{$map}`";
23
+ }
24
+ }
25
+
26
+ // Scrollbar
27
+ @mixin scroll-bar {
28
+ $scrollbar-thumb-background: getCssVar('text-color', 'disabled');
29
+ $scrollbar-track-background: getCssVar('fill-color', 'blank');
30
+
31
+ &::-webkit-scrollbar {
32
+ z-index: 11;
33
+ width: 6px;
34
+
35
+ &:horizontal {
36
+ height: 6px;
37
+ }
38
+
39
+ &-thumb {
40
+ border-radius: 5px;
41
+ width: 6px;
42
+ background: $scrollbar-thumb-background;
43
+ }
44
+
45
+ &-corner {
46
+ background: $scrollbar-track-background;
47
+ }
48
+
49
+ &-track {
50
+ background: $scrollbar-track-background;
51
+
52
+ &-piece {
53
+ background: $scrollbar-track-background;
54
+ width: 6px;
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ // BEM
61
+ @mixin b($block) {
62
+ $B: $namespace + $common-separator + $block !global;
63
+
64
+ .#{$B} {
65
+ @content;
66
+ }
67
+ }
68
+
69
+ @mixin e($element) {
70
+ $E: $element !global;
71
+ $selector: &;
72
+ $currentSelector: '';
73
+ @each $unit in $element {
74
+ $currentSelector: #{$currentSelector +
75
+ '.' +
76
+ $B +
77
+ $element-separator +
78
+ $unit +
79
+ ','};
80
+ }
81
+
82
+ @if hitAllSpecialNestRule($selector) {
83
+ @at-root {
84
+ #{$selector} {
85
+ #{$currentSelector} {
86
+ @content;
87
+ }
88
+ }
89
+ }
90
+ } @else {
91
+ @at-root {
92
+ #{$currentSelector} {
93
+ @content;
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ @mixin m($modifier) {
100
+ $selector: &;
101
+ $currentSelector: '';
102
+ @each $unit in $modifier {
103
+ $currentSelector: #{$currentSelector +
104
+ $selector +
105
+ $modifier-separator +
106
+ $unit +
107
+ ','};
108
+ }
109
+
110
+ @at-root {
111
+ #{$currentSelector} {
112
+ @content;
113
+ }
114
+ }
115
+ }
116
+
117
+ @mixin configurable-m($modifier, $E-flag: false) {
118
+ $selector: &;
119
+ $interpolation: '';
120
+
121
+ @if $E-flag {
122
+ $interpolation: $element-separator + $E-flag;
123
+ }
124
+
125
+ @at-root {
126
+ #{$selector} {
127
+ .#{$B + $interpolation + $modifier-separator + $modifier} {
128
+ @content;
129
+ }
130
+ }
131
+ }
132
+ }
133
+
134
+ @mixin spec-selector(
135
+ $specSelector: '',
136
+ $element: $E,
137
+ $modifier: false,
138
+ $block: $B
139
+ ) {
140
+ $modifierCombo: '';
141
+
142
+ @if $modifier {
143
+ $modifierCombo: $modifier-separator + $modifier;
144
+ }
145
+
146
+ @at-root {
147
+ #{&}#{$specSelector}.#{$block
148
+ + $element-separator
149
+ + $element
150
+ + $modifierCombo} {
151
+ @content;
152
+ }
153
+ }
154
+ }
155
+
156
+ @mixin meb($modifier: false, $element: $E, $block: $B) {
157
+ $selector: &;
158
+ $modifierCombo: '';
159
+
160
+ @if $modifier {
161
+ $modifierCombo: $modifier-separator + $modifier;
162
+ }
163
+
164
+ @at-root {
165
+ #{$selector} {
166
+ .#{$block + $element-separator + $element + $modifierCombo} {
167
+ @content;
168
+ }
169
+ }
170
+ }
171
+ }
172
+
173
+ @mixin when($state) {
174
+ @at-root {
175
+ &.#{$state-prefix + $state} {
176
+ @content;
177
+ }
178
+ }
179
+ }
180
+
181
+ @mixin extend-rule($name) {
182
+ @extend #{'%shared-' + $name} !optional;
183
+ }
184
+
185
+ @mixin share-rule($name) {
186
+ $rule-name: '%shared-' + $name;
187
+
188
+ @at-root #{$rule-name} {
189
+ @content;
190
+ }
191
+ }
192
+
193
+ @mixin pseudo($pseudo) {
194
+ @at-root #{&}#{':#{$pseudo}'} {
195
+ @content;
196
+ }
197
+ }
198
+
199
+ @mixin picker-popper($background, $border, $box-shadow) {
200
+ &.#{$namespace}-popper {
201
+ background: $background;
202
+ border: $border;
203
+ box-shadow: $box-shadow;
204
+
205
+ .#{$namespace}-popper__arrow {
206
+ &::before {
207
+ border: $border;
208
+ }
209
+ }
210
+
211
+ @each $placement,
212
+ $adjacency
213
+ in ('top': 'left', 'bottom': 'right', 'left': 'bottom', 'right': 'top')
214
+ {
215
+ &[data-popper-placement^='#{$placement}'] {
216
+ .#{$namespace}-popper__arrow::before {
217
+ border-#{$placement}-color: transparent;
218
+ border-#{$adjacency}-color: transparent;
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+
225
+ // dark
226
+ @mixin dark($block) {
227
+ html.dark {
228
+ @include b($block) {
229
+ @content;
230
+ }
231
+ }
232
+ }
233
+
234
+ @mixin inset-input-border($color, $important: false) {
235
+ @if $important == true {
236
+ box-shadow: 0 0 0 1px $color inset !important;
237
+ } @else {
238
+ box-shadow: 0 0 0 1px $color inset;
239
+ }
240
+ }