@streamscloud/kit 0.2.1 → 0.2.3

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 (107) hide show
  1. package/dist/styles/_input.scss +98 -0
  2. package/dist/styles/_mixins.scss +2 -2
  3. package/dist/styles/reset.css +1 -1
  4. package/dist/ui/button/resources/button-base.svelte +2 -2
  5. package/dist/ui/button/resources/button-theme.svelte +18 -15
  6. package/dist/ui/color-picker/cmp.color-picker.svelte +3 -12
  7. package/dist/ui/color-picker/cmp.color-picker.svelte.d.ts +3 -9
  8. package/dist/ui/cropper/img-cropper/cmp.img-cropper-toolbar.svelte +1 -1
  9. package/dist/ui/dialog/cmp.dialog.svelte +1 -1
  10. package/dist/ui/dropdown/cmp.dropdown-item.svelte +93 -0
  11. package/dist/ui/dropdown/cmp.dropdown-item.svelte.d.ts +32 -0
  12. package/dist/ui/dropdown/cmp.dropdown-panel.svelte +29 -0
  13. package/dist/ui/dropdown/cmp.dropdown-panel.svelte.d.ts +18 -0
  14. package/dist/ui/dropdown/cmp.dropdown.svelte +72 -7
  15. package/dist/ui/dropdown/cmp.dropdown.svelte.d.ts +3 -1
  16. package/dist/ui/dropdown/index.d.ts +2 -0
  17. package/dist/ui/dropdown/index.js +2 -0
  18. package/dist/ui/dynamic-component/cmp.dynamic-component.svelte +0 -5
  19. package/dist/ui/dynamic-component/cmp.dynamic-component.svelte.d.ts +2 -8
  20. package/dist/ui/emoji-picker/cmp.emoji-panel.svelte +186 -0
  21. package/dist/ui/emoji-picker/cmp.emoji-panel.svelte.d.ts +21 -0
  22. package/dist/ui/emoji-picker/cmp.emoji-picker.svelte +35 -0
  23. package/dist/ui/emoji-picker/cmp.emoji-picker.svelte.d.ts +15 -0
  24. package/dist/ui/emoji-picker/emoji-list.d.ts +2 -0
  25. package/dist/ui/emoji-picker/emoji-list.js +1754 -0
  26. package/dist/ui/emoji-picker/emoji-picker-localization.d.ts +5 -0
  27. package/dist/ui/emoji-picker/emoji-picker-localization.js +40 -0
  28. package/dist/ui/emoji-picker/index.d.ts +2 -0
  29. package/dist/ui/emoji-picker/index.js +2 -0
  30. package/dist/ui/emoji-picker/types.d.ts +8 -0
  31. package/dist/ui/emoji-picker/types.js +1 -0
  32. package/dist/ui/form-group/cmp.form-group-label.svelte.d.ts +1 -0
  33. package/dist/ui/form-group/cmp.form-group.svelte.d.ts +1 -0
  34. package/dist/ui/icon-text/cmp.icon-text.svelte +34 -22
  35. package/dist/ui/icon-text/cmp.icon-text.svelte.d.ts +14 -13
  36. package/dist/ui/inputs/index.d.ts +6 -0
  37. package/dist/ui/inputs/index.js +5 -0
  38. package/dist/ui/inputs/input/cmp.input-validatable.svelte +57 -0
  39. package/dist/ui/inputs/input/cmp.input-validatable.svelte.d.ts +56 -0
  40. package/dist/ui/inputs/input/cmp.input.svelte +235 -0
  41. package/dist/ui/inputs/input/cmp.input.svelte.d.ts +60 -0
  42. package/dist/ui/inputs/input/index.d.ts +2 -0
  43. package/dist/ui/inputs/input/index.js +2 -0
  44. package/dist/ui/inputs/input-emoji-picker/cmp.input-emoji-picker.svelte +44 -0
  45. package/dist/ui/inputs/input-emoji-picker/cmp.input-emoji-picker.svelte.d.ts +9 -0
  46. package/dist/ui/inputs/input-emoji-picker/index.d.ts +2 -0
  47. package/dist/ui/inputs/input-emoji-picker/index.js +2 -0
  48. package/dist/ui/inputs/input-emoji-picker/input-emoji-picker-container.d.ts +2 -0
  49. package/dist/ui/inputs/input-emoji-picker/input-emoji-picker-container.js +16 -0
  50. package/dist/ui/inputs/numeral-input/cmp.numeral-input-validatable.svelte +55 -0
  51. package/dist/ui/inputs/numeral-input/cmp.numeral-input-validatable.svelte.d.ts +62 -0
  52. package/dist/ui/inputs/numeral-input/cmp.numeral-input.svelte +248 -0
  53. package/dist/ui/inputs/numeral-input/cmp.numeral-input.svelte.d.ts +66 -0
  54. package/dist/ui/inputs/numeral-input/index.d.ts +2 -0
  55. package/dist/ui/inputs/numeral-input/index.js +2 -0
  56. package/dist/ui/inputs/pin-input/cmp.pin-input.svelte +58 -0
  57. package/dist/ui/inputs/pin-input/cmp.pin-input.svelte.d.ts +23 -0
  58. package/dist/ui/inputs/pin-input/index.d.ts +1 -0
  59. package/dist/ui/inputs/pin-input/index.js +1 -0
  60. package/dist/ui/inputs/pin-input/pin-input-generator.d.ts +27 -0
  61. package/dist/ui/inputs/pin-input/pin-input-generator.js +114 -0
  62. package/dist/ui/inputs/rich-text-input/cmp.rich-text-input.svelte +55 -0
  63. package/dist/ui/inputs/rich-text-input/cmp.rich-text-input.svelte.d.ts +43 -0
  64. package/dist/ui/inputs/rich-text-input/index.d.ts +2 -0
  65. package/dist/ui/inputs/rich-text-input/index.js +1 -0
  66. package/dist/ui/inputs/rich-text-input/rich-text-input-localization.d.ts +12 -0
  67. package/dist/ui/inputs/rich-text-input/rich-text-input-localization.js +48 -0
  68. package/dist/ui/inputs/rich-text-input/tinymce-input.svelte +250 -0
  69. package/dist/ui/inputs/rich-text-input/tinymce-input.svelte.d.ts +25 -0
  70. package/dist/ui/inputs/rich-text-input/tinymce.declarations.d.ts +7 -0
  71. package/dist/ui/inputs/rich-text-input/types.d.ts +4 -0
  72. package/dist/ui/inputs/rich-text-input/types.js +1 -0
  73. package/dist/ui/inputs/rich-text-input/validated-link-button.d.ts +3 -0
  74. package/dist/ui/inputs/rich-text-input/validated-link-button.js +78 -0
  75. package/dist/ui/inputs/textarea/cmp.textarea-validatable.svelte +35 -0
  76. package/dist/ui/inputs/textarea/cmp.textarea-validatable.svelte.d.ts +53 -0
  77. package/dist/ui/inputs/textarea/cmp.textarea.svelte +247 -0
  78. package/dist/ui/inputs/textarea/cmp.textarea.svelte.d.ts +57 -0
  79. package/dist/ui/inputs/textarea/index.d.ts +2 -0
  80. package/dist/ui/inputs/textarea/index.js +2 -0
  81. package/dist/ui/media-viewer-dialog/cmp.media-viewer-dialog.svelte.d.ts +2 -0
  82. package/dist/ui/selects/_multiselect.scss +282 -0
  83. package/dist/ui/selects/_singleselect.scss +175 -0
  84. package/dist/ui/selects/cmp.multiselect.svelte +530 -0
  85. package/dist/ui/selects/cmp.multiselect.svelte.d.ts +85 -0
  86. package/dist/ui/selects/cmp.search-multiselect.svelte +532 -0
  87. package/dist/ui/selects/cmp.search-multiselect.svelte.d.ts +67 -0
  88. package/dist/ui/selects/cmp.singleselect.svelte +381 -0
  89. package/dist/ui/selects/cmp.singleselect.svelte.d.ts +78 -0
  90. package/dist/ui/selects/index.d.ts +5 -0
  91. package/dist/ui/selects/index.js +4 -0
  92. package/dist/ui/selects/select-localization.d.ts +6 -0
  93. package/dist/ui/selects/select-localization.js +27 -0
  94. package/dist/ui/selects/types.d.ts +29 -0
  95. package/dist/ui/selects/types.js +1 -0
  96. package/dist/ui/time-ago/cmp.time-ago.svelte +0 -6
  97. package/dist/ui/time-ago/cmp.time-ago.svelte.d.ts +2 -6
  98. package/dist/ui/validatable/_validatable.scss +34 -0
  99. package/dist/ui/validatable/cmp.validatable.svelte +57 -0
  100. package/dist/ui/validatable/cmp.validatable.svelte.d.ts +49 -0
  101. package/dist/ui/validatable/cmp.validation-error.svelte +52 -0
  102. package/dist/ui/validatable/cmp.validation-error.svelte.d.ts +42 -0
  103. package/dist/ui/validatable/index.d.ts +2 -0
  104. package/dist/ui/validatable/index.js +2 -0
  105. package/package.json +31 -5
  106. package/dist/ui/color-picker/cmp.input-stub.svelte +0 -98
  107. package/dist/ui/color-picker/cmp.input-stub.svelte.d.ts +0 -40
@@ -0,0 +1,282 @@
1
+ @use 'styles/colors';
2
+ @use 'styles/functions';
3
+ @use 'styles/mixins';
4
+
5
+ @mixin multiselect {
6
+ --_multiselect--root--font-size: var(--sc-kit--multiselect--root--font-size, 1rem);
7
+ --_multiselect--height: var(--sc-kit--multiselect--height, #{functions.em(32)});
8
+ --_multiselect--width: var(--sc-kit--multiselect--width, 100%);
9
+ --_multiselect--background: var(--sc-kit--multiselect--background, light-dark(#{colors.$color-white}, #{colors.$color-gray-900}));
10
+ --_multiselect--background--disabled: var(--sc-kit--multiselect--background--disabled, light-dark(#{colors.$color-neutral-50}, #{colors.$color-neutral-800}));
11
+ --_multiselect--border-color: var(--sc-kit--multiselect--border-color, light-dark(#{colors.$color-neutral-300}, #{colors.$color-neutral-600}));
12
+ --_multiselect--border-radius: var(--sc-kit--multiselect--border-radius, #{functions.em(4)});
13
+ --_multiselect--text--font-size: var(--sc-kit--multiselect--text--font-size, #{functions.em(14)});
14
+ --_multiselect--text--color: var(--sc-kit--multiselect--text--color, light-dark(#{colors.$color-gray-800}, #{colors.$color-white}));
15
+ --_multiselect--placeholder--color: var(--sc-kit--multiselect--placeholder--color, var(--_multiselect--border-color));
16
+ --_multiselect--icon--color: var(--sc-kit--multiselect--icon--color, var(--_multiselect--border-color));
17
+ --_multiselect--padding-inline: var(--sc-kit--multiselect--padding-inline, #{functions.em(8)});
18
+ --_multiselect--padding-block: var(--sc-kit--multiselect--padding-block, #{functions.em(4)});
19
+
20
+ --_multiselect--options--max-height: var(--sc-kit--multiselect--options--max-height, #{functions.em(320)});
21
+ --_multiselect--item--hover--background: var(
22
+ --sc-kit--multiselect--item--hover--background,
23
+ light-dark(#{colors.$color-gray-100}, #{colors.$color-gray-800})
24
+ );
25
+ --_multiselect--item--active--background: var(
26
+ --sc-kit--multiselect--item--active--background,
27
+ light-dark(#{colors.$color-neutral-50}, #{colors.$color-neutral-700})
28
+ );
29
+
30
+ --_multiselect--tag--color: var(--sc-kit--multiselect--tag--color, var(--_multiselect--text--color));
31
+ --_multiselect--tag--background: var(--sc-kit--multiselect--tag--background, var(--_multiselect--background));
32
+ --_multiselect--tag--border-color: var(--sc-kit--multiselect--tag--border-color, var(--_multiselect--border-color));
33
+ --_multiselect--tag--border-radius: var(--sc-kit--multiselect--tag--border-radius, var(--_multiselect--border-radius));
34
+ --_multiselect--tag--font-size: var(--sc-kit--multiselect--tag--font-size, calc(var(--_multiselect--text--font-size) * 0.9));
35
+ --_multiselect--tag--padding-inline: var(--sc-kit--multiselect--tag--padding-inline, var(--_multiselect--padding-inline));
36
+ --_multiselect--tag--padding-block: var(--sc-kit--multiselect--tag--padding-block, var(--_multiselect--padding-block));
37
+
38
+ --_multiselect--chevron--pointer-events: var(--sc-kit--multiselect--chevron--pointer-events, none);
39
+
40
+ --_multiselect--group-header--color: var(--sc-kit--multiselect--group-header--color, var(--_multiselect--placeholder--color));
41
+ --_multiselect--group-header--font-weight: var(--sc-kit--multiselect--group-header--font-weight, 500);
42
+ --_multiselect--group-item--padding-left: var(--sc-kit--multiselect--group-item--padding-left, #{functions.em(16)});
43
+
44
+ --_multiselect--inline--tag--background: var(
45
+ --sc-kit--multiselect--inline--tag--background,
46
+ light-dark(#{colors.$color-neutral-100}, #{colors.$color-neutral-700})
47
+ );
48
+
49
+ // svelte-select CSS variable mappings
50
+ --background: var(--_multiselect--background);
51
+ --border: 1px solid var(--_multiselect--border-color);
52
+ --border-focused: var(--border);
53
+ --border-hover: var(--border);
54
+ --border-radius: var(--_multiselect--border-radius);
55
+ --border-radius-focused: var(--border-radius);
56
+ --box-sizing: border-box;
57
+ --chevron-background: transparent;
58
+ --chevron-border: transparent;
59
+ --chevron-color: transparent;
60
+ --chevron-height: auto;
61
+ --chevron-pointer-events: var(--_multiselect--chevron--pointer-events);
62
+ --chevron-width: auto;
63
+ --disabled-background: var(--_multiselect--background--disabled);
64
+ --disabled-border-color: var(--_multiselect--border-color);
65
+ --disabled-color: var(--_multiselect--text--color);
66
+ --disabled-placeholder-color: var(--placeholder-color);
67
+ --disabled-placeholder-opacity: var(--placeholder-opacity);
68
+ --font-size: var(--_multiselect--text--font-size);
69
+ --height: var(--_multiselect--height);
70
+ --icons-color: var(--_multiselect--icon--color);
71
+ --indicators-bottom: auto;
72
+ --indicators-position: static;
73
+ --indicators-right: auto;
74
+ --indicators-top: auto;
75
+ --input--color: var(--_multiselect--text--color);
76
+ --input-left: 0;
77
+ --input-letter-spacing: 1;
78
+ --input-margin: 0;
79
+ --input-padding: 0 var(--_multiselect--padding-inline) 0 0;
80
+ --item-active-background: var(--_multiselect--item--active--background);
81
+ --item-color: var(--_multiselect--text--color);
82
+ --item-first-border-radius: 0;
83
+ --item-height: auto;
84
+ --item-hover-bg: var(--_multiselect--item--hover--background);
85
+ --item-hover-color: var(--_multiselect--text--color);
86
+ --item-is-active-bg: var(--_multiselect--item--active--background);
87
+ --item-is-active-color: var(--_multiselect--text--color);
88
+ --item-is-not-selectable-color: var(--_multiselect--group-header--color);
89
+ --item-line-height: 1;
90
+ --item-padding: var(--_multiselect--padding-block) var(--_multiselect--padding-inline);
91
+ --item-transition: auto;
92
+ --list-background: var(--background);
93
+ --list-border: var(--border);
94
+ --list-border-radius: var(--border-radius);
95
+ --list-max-height: var(--_multiselect--options--max-height);
96
+ --list-position: absolute;
97
+ --list-shadow: none;
98
+ --list-z-index: 2;
99
+ --loading--margin: 0;
100
+ --loading-color: var(--icons-color);
101
+ --loading-height: max-content;
102
+ --loading-width: max-content;
103
+ --margin: 0;
104
+ --max-height: var(--height);
105
+ --multi-item-active-outline: none;
106
+ --multi-item-bg: transparent;
107
+ --multi-item-border-radius: 0;
108
+ --multi-item-clear-icon-color: transparent;
109
+ --multi-item-color: transparent;
110
+ --multi-item-gap: 0;
111
+ --multi-item-height: 0;
112
+ --multi-item-margin: 0;
113
+ --multi-item-outline: none;
114
+ --multi-item-padding: 0;
115
+ --multi-max-width: 0;
116
+ --multi-select-input-margin: 0;
117
+ --multi-select-input-padding: 0;
118
+ --multi-select-padding: var(--_multiselect--padding-block) var(--_multiselect--padding-inline) var(--_multiselect--padding-block) 0;
119
+ --padding: 0;
120
+ --placeholder-color: var(--_multiselect--placeholder--color);
121
+ --placeholder-opacity: 0.8;
122
+ --selected-item-color: auto;
123
+ --selected-item-overflow: auto;
124
+ --selected-item-padding: auto;
125
+ --spinner-color: var(--icons-color);
126
+ --spinner-height: var(--_multiselect--text--font-size);
127
+ --spinner-width: var(--_multiselect--text--font-size);
128
+ --value-container-overflow: hidden;
129
+ --value-container-padding: 0 var(--_multiselect--padding-inline) 0 0;
130
+ --width: var(--_multiselect--width);
131
+ --group-title-color: var(--_multiselect--group-header--color);
132
+ --group-title-font-weight: var(--_multiselect--group-header--font-weight);
133
+ --group-title-font-size: var(--_multiselect--text--font-size);
134
+ --group-title-padding: var(--_multiselect--padding-block) var(--_multiselect--padding-inline);
135
+ --group-item-padding-left: var(--_multiselect--group-item--padding-left);
136
+
137
+ font-size: var(--_multiselect--root--font-size);
138
+ width: var(--_multiselect--width);
139
+ position: relative;
140
+
141
+ &__icon {
142
+ --sc-kit--icon--color: var(--_multiselect--icon--color);
143
+ --sc-kit--icon--size: 1.25em;
144
+ display: flex;
145
+ align-items: center;
146
+
147
+ &--prepend {
148
+ padding: 0 var(--_multiselect--padding-inline);
149
+
150
+ :global &:not(:has(*)) {
151
+ padding-right: 0 !important;
152
+ }
153
+ }
154
+ }
155
+
156
+ &__option {
157
+ font-size: var(--_multiselect--text--font-size);
158
+ }
159
+
160
+ &__selection {
161
+ font-size: var(--_multiselect--tag--font-size);
162
+ @include mixins.width(100%);
163
+ @include mixins.height(100%);
164
+ display: flex;
165
+ align-items: center;
166
+ min-width: 0;
167
+ }
168
+
169
+ &__selection-text {
170
+ @include mixins.ellipsis;
171
+ }
172
+
173
+ &__no-options {
174
+ color: var(--_multiselect--placeholder--color);
175
+ padding: var(--_multiselect--padding-block) var(--_multiselect--padding-inline);
176
+ }
177
+
178
+ &--disabled {
179
+ cursor: default;
180
+ pointer-events: none;
181
+ }
182
+
183
+ &--loading {
184
+ pointer-events: none;
185
+
186
+ &::after {
187
+ content: '';
188
+ position: absolute;
189
+ top: 0;
190
+ left: 0;
191
+ width: 100%;
192
+ height: 100%;
193
+ background: light-dark(hsl(0, 0%, 97%), hsl(0, 0%, 3%));
194
+ opacity: 0.5;
195
+ }
196
+ }
197
+
198
+ :global(.value-container) {
199
+ gap: 0 !important;
200
+ }
201
+
202
+ &--inline {
203
+ --max-height: auto;
204
+ --multi-item-active-outline: none;
205
+ --multi-item-bg: var(--_multiselect--inline--tag--background);
206
+ --multi-item-border-radius: var(--_multiselect--border-radius);
207
+ --multi-item-clear-icon-color: var(--_multiselect--icon--color);
208
+ --multi-item-color: var(--_multiselect--text--color);
209
+ --multi-item-gap: var(--_multiselect--padding-inline);
210
+ --multi-item-height: calc(var(--_multiselect--height) - 2 * var(--_multiselect--padding-block));
211
+ --multi-item-margin: 0;
212
+ --multi-item-outline: 1px solid var(--_multiselect--border-color);
213
+ --multi-item-padding: var(--_multiselect--tag--padding-block) var(--_multiselect--tag--padding-inline);
214
+ --multi-max-width: #{functions.em(150)};
215
+ --multi-select-input-margin: 0;
216
+ --multi-select-input-padding: 0;
217
+ --multi-select-padding: var(--_multiselect--padding-block) var(--_multiselect--padding-inline) var(--_multiselect--padding-block) 0;
218
+
219
+ :global(.value-container) {
220
+ gap: #{functions.em(4)} !important;
221
+ }
222
+ }
223
+
224
+ &--inline-full-item {
225
+ --multi-max-width: none;
226
+ }
227
+
228
+ &--list-hidden {
229
+ --list-border: none;
230
+ }
231
+ }
232
+
233
+ @mixin multiselect-tags {
234
+ @include mixins.no-select;
235
+ display: flex;
236
+ flex-wrap: wrap;
237
+ gap: #{functions.em(4)};
238
+ margin-bottom: #{functions.em(4)};
239
+ min-width: 0;
240
+ width: 100%;
241
+
242
+ &__item {
243
+ display: flex;
244
+ gap: #{functions.em(6)};
245
+ vertical-align: middle;
246
+ border: 1px solid var(--_multiselect--tag--border-color);
247
+ font-size: var(--_multiselect--tag--font-size);
248
+ padding: var(--_multiselect--tag--padding-block) var(--_multiselect--tag--padding-inline);
249
+ color: var(--_multiselect--tag--color);
250
+ background: var(--_multiselect--tag--background);
251
+ border-radius: var(--_multiselect--tag--border-radius);
252
+ max-width: 100%;
253
+ }
254
+
255
+ &__item-text {
256
+ @include mixins.ellipsis;
257
+ }
258
+
259
+ &__deselect {
260
+ --sc-kit--icon--color: var(--_multiselect--icon--color);
261
+ --sc-kit--icon--size: #{functions.rem(20)};
262
+ cursor: pointer;
263
+ display: flex;
264
+ align-items: center;
265
+ }
266
+
267
+ &__drag-handle {
268
+ --sc-kit--icon--color: var(--_multiselect--icon--color);
269
+ --sc-kit--icon--size: #{functions.rem(16)};
270
+ cursor: grab;
271
+ display: flex;
272
+ align-items: center;
273
+ font-size: 0.7em;
274
+ user-select: none;
275
+ }
276
+ }
277
+
278
+ @mixin multiselect-tags-others {
279
+ color: var(--_multiselect--placeholder--color);
280
+ font-size: var(--_multiselect--tag--font-size);
281
+ padding: var(--_multiselect--tag--padding-block) 0;
282
+ }
@@ -0,0 +1,175 @@
1
+ @use 'styles/colors';
2
+ @use 'styles/functions';
3
+ @use 'styles/mixins';
4
+
5
+ @mixin singleselect {
6
+ --_singleselect--root--font-size: var(--sc-kit--singleselect--root--font-size, 1rem);
7
+ --_singleselect--height: var(--sc-kit--singleselect--height, #{functions.em(32)});
8
+ --_singleselect--width: var(--sc-kit--singleselect--width, 100%);
9
+ --_singleselect--background: var(--sc-kit--singleselect--background, light-dark(#{colors.$color-white}, #{colors.$color-gray-900}));
10
+ --_singleselect--background--disabled: var(
11
+ --sc-kit--singleselect--background--disabled,
12
+ light-dark(#{colors.$color-neutral-50}, #{colors.$color-neutral-800})
13
+ );
14
+ --_singleselect--border-color: var(--sc-kit--singleselect--border-color, light-dark(#{colors.$color-neutral-300}, #{colors.$color-neutral-600}));
15
+ --_singleselect--border-radius: var(--sc-kit--singleselect--border-radius, #{functions.em(4)});
16
+ --_singleselect--text--font-size: var(--sc-kit--singleselect--text--font-size, #{functions.em(14)});
17
+ --_singleselect--text--color: var(--sc-kit--singleselect--text--color, light-dark(#{colors.$color-gray-800}, #{colors.$color-white}));
18
+ --_singleselect--placeholder--color: var(--sc-kit--singleselect--placeholder--color, var(--_singleselect--border-color));
19
+ --_singleselect--icon--color: var(--sc-kit--singleselect--icon--color, var(--_singleselect--border-color));
20
+ --_singleselect--padding-inline: var(--sc-kit--singleselect--padding-inline, #{functions.em(8)});
21
+ --_singleselect--padding-block: var(--sc-kit--singleselect--padding-block, #{functions.em(4)});
22
+
23
+ --_singleselect--options--max-height: var(--sc-kit--singleselect--options--max-height, #{functions.em(320)});
24
+ --_singleselect--item--hover--background: var(
25
+ --sc-kit--singleselect--item--hover--background,
26
+ light-dark(#{colors.$color-gray-100}, #{colors.$color-gray-800})
27
+ );
28
+ --_singleselect--item--active--background: var(
29
+ --sc-kit--singleselect--item--active--background,
30
+ light-dark(#{colors.$color-neutral-50}, #{colors.$color-neutral-700})
31
+ );
32
+
33
+ --_singleselect--group-header--color: var(--sc-kit--singleselect--group-header--color, var(--_singleselect--placeholder--color));
34
+ --_singleselect--group-header--font-weight: var(--sc-kit--singleselect--group-header--font-weight, 500);
35
+ --_singleselect--group-item--padding-left: var(--sc-kit--singleselect--group-item--padding-left, #{functions.em(16)});
36
+
37
+ // svelte-select CSS variable mappings
38
+ --background: var(--_singleselect--background);
39
+ --border: 1px solid var(--_singleselect--border-color);
40
+ --border-focused: var(--border);
41
+ --border-hover: var(--border);
42
+ --border-radius: var(--_singleselect--border-radius);
43
+ --border-radius-focused: var(--border-radius);
44
+ --box-sizing: border-box;
45
+ --chevron-background: transparent;
46
+ --chevron-border: transparent;
47
+ --chevron-color: transparent;
48
+ --chevron-height: auto;
49
+ --chevron-pointer-events: none;
50
+ --chevron-width: auto;
51
+ --disabled-background: var(--_singleselect--background--disabled);
52
+ --disabled-border-color: var(--_singleselect--border-color);
53
+ --disabled-color: var(--_singleselect--text--color);
54
+ --disabled-placeholder-color: var(--placeholder-color);
55
+ --disabled-placeholder-opacity: var(--placeholder-opacity);
56
+ --font-size: var(--_singleselect--text--font-size);
57
+ --height: var(--_singleselect--height);
58
+ --icons-color: var(--_singleselect--icon--color);
59
+ --indicators-bottom: auto;
60
+ --indicators-position: static;
61
+ --indicators-right: auto;
62
+ --indicators-top: auto;
63
+ --input--color: var(--_singleselect--text--color);
64
+ --input-left: 0;
65
+ --input-letter-spacing: 1;
66
+ --input-margin: 0;
67
+ --input-padding: 0 var(--_singleselect--padding-inline) 0 0;
68
+ --item-active-background: var(--_singleselect--item--active--background);
69
+ --item-color: var(--_singleselect--text--color);
70
+ --item-first-border-radius: 0;
71
+ --item-height: auto;
72
+ --item-hover-bg: var(--_singleselect--item--hover--background);
73
+ --item-hover-color: var(--_singleselect--text--color);
74
+ --item-is-active-bg: var(--_singleselect--item--active--background);
75
+ --item-is-active-color: var(--_singleselect--text--color);
76
+ --item-is-not-selectable-color: var(--_singleselect--group-header--color);
77
+ --item-line-height: 1;
78
+ --item-padding: var(--_singleselect--padding-block) var(--_singleselect--padding-inline);
79
+ --item-transition: auto;
80
+ --list-background: var(--background);
81
+ --list-border: var(--border);
82
+ --list-border-radius: var(--border-radius);
83
+ --list-max-height: var(--_singleselect--options--max-height);
84
+ --list-position: absolute;
85
+ --list-shadow: none;
86
+ --list-z-index: 2;
87
+ --loading--margin: 0;
88
+ --loading-color: var(--icons-color);
89
+ --loading-height: max-content;
90
+ --loading-width: max-content;
91
+ --margin: 0;
92
+ --max-height: var(--height);
93
+ --padding: 0 var(--_singleselect--padding-inline) 0 0;
94
+ --placeholder-color: var(--_singleselect--placeholder--color);
95
+ --placeholder-opacity: 0.8;
96
+ --selected-item-color: auto;
97
+ --selected-item-overflow: auto;
98
+ --selected-item-padding: auto;
99
+ --spinner-color: var(--icons-color);
100
+ --spinner-height: var(--_singleselect--text--font-size);
101
+ --spinner-width: var(--_singleselect--text--font-size);
102
+ --value-container-overflow: hidden;
103
+ --value-container-padding: 0;
104
+ --width: var(--_singleselect--width);
105
+ --group-title-color: var(--_singleselect--group-header--color);
106
+ --group-title-font-weight: var(--_singleselect--group-header--font-weight);
107
+ --group-title-font-size: var(--_singleselect--text--font-size);
108
+ --group-title-padding: var(--_singleselect--padding-block) var(--_singleselect--padding-inline);
109
+ --group-item-padding-left: var(--_singleselect--group-item--padding-left);
110
+
111
+ font-size: var(--_singleselect--root--font-size);
112
+ width: var(--_singleselect--width);
113
+ position: relative;
114
+
115
+ &__icon {
116
+ --sc-kit--icon--color: var(--_singleselect--icon--color);
117
+ --sc-kit--icon--size: 1.25em;
118
+ display: flex;
119
+ align-items: center;
120
+
121
+ &--prepend {
122
+ padding: 0 var(--_singleselect--padding-inline);
123
+
124
+ :global &:not(:has(*)) {
125
+ padding-right: 0 !important;
126
+ }
127
+ }
128
+ }
129
+
130
+ &__option {
131
+ font-size: var(--_singleselect--text--font-size);
132
+
133
+ &--faded {
134
+ color: var(--_singleselect--placeholder--color);
135
+ opacity: 0.5;
136
+ }
137
+ }
138
+
139
+ &__selection {
140
+ @include mixins.width(100%);
141
+ @include mixins.height(100%);
142
+ display: flex;
143
+ align-items: center;
144
+ min-width: 0;
145
+ }
146
+
147
+ &__selection-text {
148
+ @include mixins.ellipsis;
149
+ }
150
+
151
+ &__no-options {
152
+ color: var(--_singleselect--placeholder--color);
153
+ padding: var(--_singleselect--padding-block) var(--_singleselect--padding-inline);
154
+ }
155
+
156
+ &--disabled {
157
+ cursor: default;
158
+ pointer-events: none;
159
+ }
160
+
161
+ &--loading {
162
+ pointer-events: none;
163
+
164
+ &::after {
165
+ content: '';
166
+ position: absolute;
167
+ top: 0;
168
+ left: 0;
169
+ width: 100%;
170
+ height: 100%;
171
+ background: light-dark(hsl(0, 0%, 97%), hsl(0, 0%, 3%));
172
+ opacity: 0.5;
173
+ }
174
+ }
175
+ }