@nuralyui/select 0.1.7 → 0.1.8

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.
package/select.style.js CHANGED
@@ -13,28 +13,51 @@ export const styles = css `
13
13
 
14
14
  /* Dropdown settings */
15
15
  --nuraly-select-local-dropdown-z-index: 9999;
16
- --nuraly-select-local-dropdown-max-height: 200px;
17
- --nuraly-select-local-dropdown-width: max-content; /* Default to auto-size to content */
16
+ --nuraly-select-local-dropdown-max-height: auto;
17
+ --nuraly-select-local-dropdown-width: max-content;
18
18
  --nuraly-select-local-placeholder-font-size: 14px;
19
19
  --nuraly-select-local-option-font-size: 14px;
20
20
 
21
- /* Sizes */
21
+ /* Search input container settings */
22
+ --nuraly-select-local-input-container-max-width: var(--nuraly-select-width);
23
+
24
+ /* Size tokens - small */
25
+ --nuraly-select-local-small-height: 24px;
26
+ --nuraly-select-local-small-font-size: 12px;
27
+ --nuraly-select-local-small-padding: 2px 8px;
28
+ --nuraly-select-local-small-icon-size: 14px;
29
+
30
+ /* Size tokens - medium */
22
31
  --nuraly-select-local-medium-height: 40px;
23
32
  --nuraly-select-local-medium-font-size: 14px;
24
33
  --nuraly-select-local-medium-padding: 8px 12px;
25
- --nuraly-select-local-small-font-size: 12px;
34
+ --nuraly-select-local-medium-icon-size: 16px;
35
+
36
+ /* Size tokens - large */
37
+ --nuraly-select-local-large-height: 48px;
38
+ --nuraly-select-local-large-font-size: 16px;
39
+ --nuraly-select-local-large-padding: 12px 16px;
40
+ --nuraly-select-local-large-icon-size: 20px;
26
41
 
27
42
  /* Animation and transitions */
28
43
  --nuraly-select-local-dropdown-animation-duration: 0.15s;
44
+ --nuraly-select-local-transition-duration: 0.2s;
29
45
 
30
46
  /* Multi-select specific */
31
47
  --nuraly-select-local-tag-border-radius: 4px;
32
48
  --nuraly-select-local-tag-padding: 2px 6px;
33
49
  --nuraly-select-local-tag-margin: 2px;
34
50
 
51
+ /* Icon sizes */
52
+ --nuraly-select-local-icon-size: 16px;
53
+ --nuraly-select-local-arrow-icon-size: 16px;
54
+
35
55
  /* Validation message */
36
56
  --nuraly-select-local-message-font-size: 12px;
37
57
  --nuraly-select-local-message-margin-top: 4px;
58
+
59
+ /* Font settings */
60
+ --nuraly-select-local-font-size: 14px;
38
61
  }
39
62
 
40
63
  :host {
@@ -53,22 +76,37 @@ export const styles = css `
53
76
  }
54
77
 
55
78
  :host([disabled]) .wrapper {
56
- background-color: var(--nuraly-select-disabled-background, #f9fafb);
57
- border-color: var(--nuraly-select-disabled-border-color, #d9d9d9);
58
- color: var(--nuraly-select-disabled-text-color, #8c8c8c);
79
+ background-color: var(--nuraly-select-disabled-background, var(--nuraly-color-background-disabled));
80
+ border-color: var(--nuraly-select-disabled-border-color, var(--nuraly-color-border));
81
+ color: var(--nuraly-select-disabled-text-color, var(--nuraly-color-text-disabled));
59
82
  cursor: not-allowed;
60
83
  }
61
84
 
62
85
  /* Size variants */
63
86
  :host([size='small']) .wrapper {
64
- height: var(--nuraly-select-small-height, 24px);
65
- min-height: var(--nuraly-select-small-height, 24px);
87
+ height: var(--nuraly-select-small-height, var(--nuraly-select-local-small-height));
88
+ min-height: var(--nuraly-select-small-height, var(--nuraly-select-local-small-height));
66
89
  font-size: var(--nuraly-select-small-font-size, var(--nuraly-select-local-small-font-size));
67
90
  }
68
91
 
69
92
  :host([size='small']) .select-trigger {
70
- padding: var(--nuraly-select-small-padding, 2px 8px);
71
- padding-right: calc(var(--nuraly-select-icon-size, 16px) + 20px);
93
+ padding: var(--nuraly-select-small-padding, var(--nuraly-select-local-small-padding));
94
+ padding-right: calc(var(--nuraly-select-small-icon-size, var(--nuraly-select-local-small-icon-size)) + 20px);
95
+ }
96
+
97
+ :host([size='small']) .icons-container nr-icon {
98
+ --nuraly-icon-width: var(--nuraly-select-small-icon-size, var(--nuraly-select-local-small-icon-size));
99
+ }
100
+
101
+ :host([size='small']) .option {
102
+ padding: var(--nuraly-select-small-padding, var(--nuraly-select-local-small-padding));
103
+ font-size: var(--nuraly-select-small-font-size, var(--nuraly-select-local-small-font-size));
104
+ min-height: var(--nuraly-select-small-height, var(--nuraly-select-local-small-height));
105
+ }
106
+
107
+ :host([size='small']) .option-icon,
108
+ :host([size='small']) .option nr-icon {
109
+ --nuraly-icon-width: var(--nuraly-select-small-icon-size, var(--nuraly-select-local-small-icon-size));
72
110
  }
73
111
 
74
112
  :host([size='medium']) .wrapper {
@@ -78,30 +116,60 @@ export const styles = css `
78
116
 
79
117
  :host([size='medium']) .select-trigger {
80
118
  padding: var(--nuraly-select-medium-padding, var(--nuraly-select-local-medium-padding));
81
- padding-right: calc(var(--nuraly-select-icon-size, 16px) + 20px);
119
+ padding-right: calc(var(--nuraly-select-medium-icon-size, var(--nuraly-select-local-medium-icon-size)) + 20px);
120
+ }
121
+
122
+ :host([size='medium']) .icons-container nr-icon {
123
+ --nuraly-icon-width: var(--nuraly-select-medium-icon-size, var(--nuraly-select-local-medium-icon-size));
124
+ }
125
+
126
+ :host([size='medium']) .option {
127
+ padding: var(--nuraly-select-medium-padding, var(--nuraly-select-local-medium-padding));
128
+ font-size: var(--nuraly-select-medium-font-size, var(--nuraly-select-local-medium-font-size));
129
+ min-height: var(--nuraly-select-medium-height, var(--nuraly-select-local-medium-height));
130
+ }
131
+
132
+ :host([size='medium']) .option-icon,
133
+ :host([size='medium']) .option nr-icon {
134
+ --nuraly-icon-width: var(--nuraly-select-medium-icon-size, var(--nuraly-select-local-medium-icon-size));
82
135
  }
83
136
 
84
137
  :host([size='large']) .wrapper {
85
- min-height: var(--nuraly-select-large-height, 48px);
86
- font-size: var(--nuraly-select-large-font-size, 16px);
138
+ min-height: var(--nuraly-select-large-height, var(--nuraly-select-local-large-height));
139
+ font-size: var(--nuraly-select-large-font-size, var(--nuraly-select-local-large-font-size));
87
140
  }
88
141
 
89
142
  :host([size='large']) .select-trigger {
90
- padding: var(--nuraly-select-large-padding, 12px 16px);
91
- padding-right: calc(var(--nuraly-select-icon-size, 16px) + 20px);
143
+ padding: var(--nuraly-select-large-padding, var(--nuraly-select-local-large-padding));
144
+ padding-right: calc(var(--nuraly-select-large-icon-size, var(--nuraly-select-local-large-icon-size)) + 20px);
145
+ }
146
+
147
+ :host([size='large']) .icons-container nr-icon {
148
+ --nuraly-icon-width: var(--nuraly-select-large-icon-size, var(--nuraly-select-local-large-icon-size));
149
+ }
150
+
151
+ :host([size='large']) .option {
152
+ padding: var(--nuraly-select-large-padding, var(--nuraly-select-local-large-padding));
153
+ font-size: var(--nuraly-select-large-font-size, var(--nuraly-select-local-large-font-size));
154
+ min-height: var(--nuraly-select-large-height, var(--nuraly-select-local-large-height));
155
+ }
156
+
157
+ :host([size='large']) .option-icon,
158
+ :host([size='large']) .option nr-icon {
159
+ --nuraly-icon-width: var(--nuraly-select-large-icon-size, var(--nuraly-select-local-large-icon-size));
92
160
  }
93
161
 
94
162
  /* Status variants */
95
163
  :host([status='error']) .wrapper {
96
- border-color: var(--nuraly-select-error-border-color, #ef4444);
164
+ border-color: var(--nuraly-select-error-border-color, var(--nuraly-color-danger));
97
165
  }
98
166
 
99
167
  :host([status='warning']) .wrapper {
100
- border-color: var(--nuraly-select-warning-border-color, #f59e0b);
168
+ border-color: var(--nuraly-select-warning-border-color, var(--nuraly-color-warning));
101
169
  }
102
170
 
103
171
  :host([status='success']) .wrapper {
104
- border-color: var(--nuraly-select-success-border-color, #10b981);
172
+ border-color: var(--nuraly-select-success-border-color, var(--nuraly-color-success));
105
173
  }
106
174
 
107
175
  /* Type variants */
@@ -133,11 +201,11 @@ export const styles = css `
133
201
  .wrapper {
134
202
  position: relative;
135
203
  width: var(--nuraly-select-width, fit-content);
136
- background-color: var(--nuraly-select-background-color, #ffffff);
204
+ background-color: var(--nuraly-select-background, var(--nuraly-color-background-panel));
137
205
  border: var(--nuraly-select-border-width, var(--nuraly-select-local-border-width)) solid
138
- var(--nuraly-select-border-color, #d9d9d9);
206
+ var(--nuraly-select-border-color, var(--nuraly-color-border));
139
207
  border-radius: var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius));
140
- transition: all var(--nuraly-select-transition-duration, 0.2s)
208
+ transition: all var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration))
141
209
  var(--nuraly-select-transition-timing, ease-in-out);
142
210
  cursor: pointer;
143
211
  outline: none;
@@ -151,13 +219,13 @@ export const styles = css `
151
219
  }
152
220
 
153
221
  .wrapper:hover:not(:disabled) {
154
- border-color: var(--nuraly-select-border-hover, #7c3aed);
222
+ border-color: var(--nuraly-select-border-hover, var(--nuraly-color-primary));
155
223
  }
156
224
 
157
225
  .wrapper:focus,
158
226
  .wrapper:focus-within {
159
- border-color: var(--nuraly-select-border-focus, #7c3aed);
160
- box-shadow: 0 0 0 2px var(--nuraly-select-focus-outline, rgba(124, 58, 237, 0.2));
227
+ border-color: var(--nuraly-select-border-focus, var(--nuraly-color-primary));
228
+ box-shadow: 0 0 0 2px var(--nuraly-color-primary-light);
161
229
  }
162
230
 
163
231
  /* Select container */
@@ -171,10 +239,10 @@ export const styles = css `
171
239
  display: flex;
172
240
  align-items: center;
173
241
  padding: var(--nuraly-select-padding-top, var(--nuraly-select-local-padding-top))
174
- calc(var(--nuraly-select-icon-size, 16px) + 20px)
242
+ calc(var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size)) + 20px)
175
243
  var(--nuraly-select-padding-bottom, var(--nuraly-select-local-padding-bottom))
176
244
  var(--nuraly-select-padding-left, var(--nuraly-select-local-padding-left));
177
- color: var(--nuraly-select-text-color, #262626);
245
+ color: var(--nuraly-select-color, var(--nuraly-color-text));
178
246
  font-size: inherit;
179
247
  line-height: inherit;
180
248
  word-break: break-word;
@@ -187,7 +255,7 @@ export const styles = css `
187
255
 
188
256
  .select-trigger:empty:before {
189
257
  content: attr(data-placeholder);
190
- color: var(--nuraly-select-placeholder-color, #8c8c8c);
258
+ color: var(--nuraly-select-placeholder-color, var(--nuraly-color-text-secondary));
191
259
  font-size: var(--nuraly-select-placeholder-font-size, var(--nuraly-select-local-placeholder-font-size));
192
260
  }
193
261
 
@@ -196,8 +264,8 @@ export const styles = css `
196
264
  display: inline-flex;
197
265
  align-items: center;
198
266
  gap: 4px;
199
- background-color: var(--nuraly-select-tag-background, var(--nuraly-select-local-tag-background));
200
- color: var(--nuraly-select-tag-color, var(--nuraly-select-local-tag-color));
267
+ background-color: var(--nuraly-select-tag-background, var(--nuraly-color-background-active));
268
+ color: var(--nuraly-select-tag-color, var(--nuraly-color-text));
201
269
  padding: var(--nuraly-select-tag-padding, var(--nuraly-select-local-tag-padding));
202
270
  border-radius: var(--nuraly-select-tag-border-radius, var(--nuraly-select-local-tag-border-radius));
203
271
  font-size: calc(var(--nuraly-select-font-size, var(--nuraly-select-local-font-size)) - 1px);
@@ -211,7 +279,7 @@ export const styles = css `
211
279
  }
212
280
 
213
281
  .tag-close {
214
- color: var(--nuraly-select-tag-close-color, var(--nuraly-select-local-tag-close-color));
282
+ color: var(--nuraly-select-tag-close-color, var(--nuraly-color-text-secondary));
215
283
  cursor: pointer;
216
284
  display: flex;
217
285
  align-items: center;
@@ -223,7 +291,7 @@ export const styles = css `
223
291
  }
224
292
 
225
293
  .tag-close:hover {
226
- color: var(--nuraly-select-tag-close-hover-color, var(--nuraly-select-local-tag-close-hover-color));
294
+ color: var(--nuraly-select-tag-close-hover-color, var(--nuraly-color-text));
227
295
  }
228
296
 
229
297
  /* Icons container */
@@ -240,14 +308,14 @@ export const styles = css `
240
308
 
241
309
  .icons-container nr-icon {
242
310
  --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));
243
- --nuraly-icon-color: var(--nuraly-select-icon-color, var(--nuraly-select-local-icon-color));
311
+ --nuraly-icon-color: var(--nuraly-color-select-icon, var(--nuraly-color-text-secondary));
244
312
  pointer-events: auto;
245
313
  cursor: pointer;
246
314
  transition: color var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));
247
315
  }
248
316
 
249
317
  .icons-container nr-icon:hover {
250
- --nuraly-icon-color: var(--nuraly-select-icon-hover-color, var(--nuraly-select-local-icon-hover-color));
318
+ --nuraly-icon-color: var(--nuraly-color-select-icon-hover, var(--nuraly-color-text));
251
319
  }
252
320
 
253
321
  .arrow-icon {
@@ -262,24 +330,21 @@ export const styles = css `
262
330
 
263
331
  /* Dropdown options */
264
332
  .options {
265
- /* Default positioning - will be overridden by controller when opened */
266
- position: absolute;
267
- top: 100%;
268
- margin-top: 1px;
269
- left: 0;
270
- right: 0;
271
- background-color: var(--nuraly-select-dropdown-background, #ffffff);
272
- border: var(--nuraly-select-dropdown-border-width, var(--nuraly-select-border-width, 1px)) solid
273
- var(--nuraly-select-dropdown-border-color, #d9d9d9);
274
- border-radius: var(--nuraly-select-dropdown-border-radius, var(--nuraly-select-border-radius, 6px));
333
+ /* Fixed positioning to escape overflow containers */
334
+ position: fixed;
335
+ /* top/left will be set by controller */
336
+ background-color: var(--nuraly-select-dropdown-background, var(--nuraly-color-background-panel));
337
+ border: var(--nuraly-select-dropdown-border-width, var(--nuraly-select-border-width, var(--nuraly-select-local-border-width))) solid
338
+ var(--nuraly-select-dropdown-border-color, var(--nuraly-color-border));
339
+ border-radius: var(--nuraly-select-dropdown-border-radius, var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius)));
275
340
  box-shadow: var(--nuraly-select-dropdown-shadow, 0 6px 16px 0 rgba(0, 0, 0, 0.08));
276
- z-index: var(--nuraly-select-dropdown-z-index, 9999);
277
- max-height: var(--nuraly-select-dropdown-max-height, 200px);
341
+ z-index: var(--nuraly-select-dropdown-z-index, var(--nuraly-select-local-dropdown-z-index));
342
+ max-height: var(--nuraly-select-dropdown-max-height, var(--nuraly-select-local-dropdown-max-height, auto));
278
343
  overflow-y: auto;
279
344
  overflow-x: hidden;
280
345
  display: none;
281
346
  flex-direction: column;
282
- animation: dropdown-enter var(--nuraly-select-dropdown-animation-duration, 0.15s) ease-out;
347
+ animation: dropdown-enter var(--nuraly-select-dropdown-animation-duration, var(--nuraly-select-local-dropdown-animation-duration)) ease-out;
283
348
  /* Ensure proper containment and exact wrapper width */
284
349
  box-sizing: border-box;
285
350
  /* Allow overriding width via either of these custom props */
@@ -287,24 +352,27 @@ export const styles = css `
287
352
  --nuraly-select-dropdown-width,
288
353
  var(--select-dropdown-width, var(--nuraly-select-local-dropdown-width))
289
354
  );
290
- min-width: 100%; /* Ensure dropdown is at least as wide as the wrapper */
291
355
  /* Create new stacking context to prevent layering issues */
292
356
  isolation: isolate;
293
357
  /* Ensure solid background to prevent visual bleed-through */
294
358
  backdrop-filter: none;
295
359
  -webkit-backdrop-filter: none;
296
- /* Force above other elements */
297
- transform: translateZ(0);
360
+ /* Prevent pointer events when hidden */
361
+ pointer-events: none;
362
+ }
363
+
364
+ :host([show]) .options {
365
+ pointer-events: auto;
298
366
  }
299
367
 
300
368
  .options.placement-top {
301
- top: auto;
302
- bottom: 100%;
303
- margin-bottom: 1px;
304
- margin-top: 0;
305
369
  animation: dropdown-enter-top var(--nuraly-select-dropdown-animation-duration, var(--nuraly-select-local-dropdown-animation-duration)) ease-out;
306
370
  }
307
371
 
372
+ .options.placement-bottom {
373
+ animation: dropdown-enter var(--nuraly-select-dropdown-animation-duration, var(--nuraly-select-local-dropdown-animation-duration)) ease-out;
374
+ }
375
+
308
376
  @keyframes dropdown-enter {
309
377
  from {
310
378
  opacity: 0;
@@ -332,9 +400,9 @@ export const styles = css `
332
400
  position: sticky;
333
401
  top: 0;
334
402
  z-index: 10;
335
- background-color: var(--nuraly-select-dropdown-background, #ffffff);
336
- border-bottom: var(--nuraly-select-border-width, 1px) solid
337
- var(--nuraly-select-dropdown-border-color, #d9d9d9);
403
+ background-color: var(--nuraly-select-dropdown-background, var(--nuraly-color-background-panel));
404
+ border-bottom: var(--nuraly-select-border-width, var(--nuraly-select-local-border-width)) solid
405
+ var(--nuraly-select-dropdown-border-color, var(--nuraly-color-border));
338
406
  padding: 8px;
339
407
  margin: 0;
340
408
  /* Ensure it stays above options during scroll */
@@ -348,16 +416,17 @@ export const styles = css `
348
416
  /* Search input styling */
349
417
  .search-container .search-input {
350
418
  width: 100%;
419
+ max-width: var(--nuraly-select-input-container-max-width, var(--nuraly-select-local-input-container-max-width));
351
420
  --nuraly-input-border-radius: var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius));
352
- --nuraly-input-background-color: var(--nuraly-select-background-color, var(--nuraly-select-local-background-color));
353
- --nuraly-input-border-color: var(--nuraly-select-border-color, var(--nuraly-select-local-border-color));
354
- --nuraly-input-text-color: var(--nuraly-select-text-color, var(--nuraly-select-local-text-color));
355
- --nuraly-input-placeholder-color: var(--nuraly-select-placeholder-color, var(--nuraly-select-local-placeholder-color));
421
+ --nuraly-input-background-color: var(--nuraly-select-background, var(--nuraly-color-background-panel));
422
+ --nuraly-input-border-color: var(--nuraly-select-border-color, var(--nuraly-color-border));
423
+ --nuraly-input-text-color: var(--nuraly-select-color, var(--nuraly-color-text));
424
+ --nuraly-input-placeholder-color: var(--nuraly-select-placeholder-color, var(--nuraly-color-text-secondary));
356
425
  }
357
426
 
358
427
  /* Search icon in the search input */
359
428
  .search-container .search-icon {
360
- --nuraly-icon-color: var(--nuraly-select-icon-color, var(--nuraly-select-local-icon-color));
429
+ --nuraly-icon-color: var(--nuraly-color-select-icon, var(--nuraly-color-text-secondary));
361
430
  }
362
431
 
363
432
  /* Options list container - ensure proper scroll behavior with sticky search */
@@ -373,10 +442,10 @@ export const styles = css `
373
442
  gap: 8px;
374
443
  padding: var(--nuraly-select-option-padding, 8px 12px);
375
444
  min-height: var(--nuraly-select-option-min-height, auto);
376
- color: var(--nuraly-select-option-text-color, var(--nuraly-select-text-color, #262626));
377
- font-size: var(--nuraly-select-option-font-size, 14px);
445
+ color: var(--nuraly-select-option-color, var(--nuraly-color-text));
446
+ font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));
378
447
  cursor: pointer;
379
- transition: background-color var(--nuraly-select-transition-duration, 0.2s);
448
+ transition: background-color var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));
380
449
  position: relative;
381
450
  }
382
451
 
@@ -386,17 +455,17 @@ export const styles = css `
386
455
  }
387
456
 
388
457
  .option:hover {
389
- background-color: var(--nuraly-select-option-hover-background, #f5f5f5);
458
+ background-color: var(--nuraly-select-option-hover-background, var(--nuraly-color-background-hover));
390
459
  }
391
460
 
392
461
  .option.selected {
393
- background-color: var(--nuraly-select-option-selected-background, #e0e0e0);
394
- color: var(--nuraly-select-option-selected-color, #7c3aed);
462
+ background-color: var(--nuraly-select-option-selected-background, var(--nuraly-color-primary-light));
463
+ color: var(--nuraly-select-option-selected-color, var(--nuraly-color-primary));
395
464
  }
396
465
 
397
466
  .option.focused {
398
- background-color: var(--nuraly-select-option-hover-background, #f5f5f5);
399
- outline: 2px solid var(--nuraly-select-border-focus, #7c3aed);
467
+ background-color: var(--nuraly-select-option-hover-background, var(--nuraly-color-background-hover));
468
+ outline: 2px solid var(--nuraly-select-border-focus, var(--nuraly-color-primary));
400
469
  outline-offset: -2px;
401
470
  }
402
471
 
@@ -432,7 +501,7 @@ export const styles = css `
432
501
 
433
502
  .check-icon {
434
503
  --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));
435
- --nuraly-icon-color: var(--nuraly-select-option-selected-color, var(--nuraly-select-local-option-selected-color));
504
+ --nuraly-icon-color: var(--nuraly-select-option-selected-color, var(--nuraly-color-primary));
436
505
  }
437
506
 
438
507
  .no-options {
@@ -440,7 +509,7 @@ export const styles = css `
440
509
  align-items: center;
441
510
  justify-content: center;
442
511
  padding: var(--select-no-options-padding, 24px 16px);
443
- color: var(--select-no-options-color, #8c8c8c);
512
+ color: var(--select-no-options-color, var(--nuraly-color-text-secondary));
444
513
  font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));
445
514
  cursor: default;
446
515
  user-select: none;
@@ -456,13 +525,13 @@ export const styles = css `
456
525
 
457
526
  .no-options-icon {
458
527
  --nuraly-icon-width: 24px;
459
- --nuraly-icon-color: var(--select-no-options-icon-color, #d9d9d9);
528
+ --nuraly-icon-color: var(--select-no-options-icon-color, var(--nuraly-color-border));
460
529
  opacity: 0.8;
461
530
  }
462
531
 
463
532
  .no-options-text {
464
533
  font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));
465
- color: var(--select-no-options-color, #8c8c8c);
534
+ color: var(--select-no-options-color, var(--nuraly-color-text-secondary));
466
535
  line-height: 1.4;
467
536
  }
468
537
 
@@ -471,15 +540,15 @@ export const styles = css `
471
540
  display: block;
472
541
  margin-top: var(--nuraly-select-message-margin-top, var(--nuraly-select-local-message-margin-top));
473
542
  font-size: var(--nuraly-select-message-font-size, var(--nuraly-select-local-message-font-size));
474
- color: var(--nuraly-select-error-message-color, var(--nuraly-select-local-error-message-color));
543
+ color: var(--nuraly-select-error-message-color, var(--nuraly-color-danger));
475
544
  }
476
545
 
477
546
  .validation-message.warning {
478
- color: var(--nuraly-select-warning-message-color, var(--nuraly-select-local-warning-message-color));
547
+ color: var(--nuraly-select-warning-message-color, var(--nuraly-color-warning));
479
548
  }
480
549
 
481
550
  .validation-message.success {
482
- color: var(--nuraly-select-success-message-color, var(--nuraly-select-local-success-message-color));
551
+ color: var(--nuraly-select-success-message-color, var(--nuraly-color-success));
483
552
  }
484
553
 
485
554
  /* Slotted content styles */
@@ -487,14 +556,14 @@ export const styles = css `
487
556
  display: block;
488
557
  margin-bottom: 4px;
489
558
  font-weight: 500;
490
- color: var(--nuraly-select-text-color, var(--nuraly-select-local-text-color));
559
+ color: var(--nuraly-select-color, var(--nuraly-color-text));
491
560
  }
492
561
 
493
562
  ::slotted([slot='helper-text']) {
494
563
  display: block;
495
564
  margin-top: var(--nuraly-select-message-margin-top, var(--nuraly-select-local-message-margin-top));
496
565
  font-size: var(--nuraly-select-message-font-size, var(--nuraly-select-local-message-font-size));
497
- color: var(--nuraly-select-placeholder-color, var(--nuraly-select-local-placeholder-color));
566
+ color: var(--nuraly-select-placeholder-color, var(--nuraly-color-text-secondary));
498
567
  }
499
568
 
500
569
  /* Accessibility improvements */
@@ -1 +1 @@
1
- {"version":3,"file":"select.style.js","sourceRoot":"","sources":["../../../src/components/select/select.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAygBxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n :host {\n /* Layout and sizing */\n --nuraly-select-local-min-height: 40px;\n --nuraly-select-local-padding-top: 8px;\n --nuraly-select-local-padding-bottom: 8px;\n --nuraly-select-local-padding-left: 12px;\n --nuraly-select-local-padding-right: 12px;\n --nuraly-select-local-wrapper-margin: 0;\n --nuraly-select-local-border-radius: 6px;\n --nuraly-select-local-border-width: 1px;\n \n /* Dropdown settings */\n --nuraly-select-local-dropdown-z-index: 9999;\n --nuraly-select-local-dropdown-max-height: 200px;\n --nuraly-select-local-dropdown-width: max-content; /* Default to auto-size to content */\n --nuraly-select-local-placeholder-font-size: 14px;\n --nuraly-select-local-option-font-size: 14px;\n \n /* Sizes */\n --nuraly-select-local-medium-height: 40px;\n --nuraly-select-local-medium-font-size: 14px;\n --nuraly-select-local-medium-padding: 8px 12px;\n --nuraly-select-local-small-font-size: 12px;\n \n /* Animation and transitions */\n --nuraly-select-local-dropdown-animation-duration: 0.15s;\n \n /* Multi-select specific */\n --nuraly-select-local-tag-border-radius: 4px;\n --nuraly-select-local-tag-padding: 2px 6px;\n --nuraly-select-local-tag-margin: 2px;\n \n /* Validation message */\n --nuraly-select-local-message-font-size: 12px;\n --nuraly-select-local-message-margin-top: 4px;\n }\n\n :host {\n width: fit-content;\n display: block;\n font-family: var(--nuraly-select-font-family, Inter, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif);\n font-size: var(--nuraly-select-font-size, 14px);\n line-height: var(--nuraly-select-line-height, 1.5);\n margin: var(--nuraly-select-margin, var(--nuraly-select-local-wrapper-margin));\n }\n\n /* Host attribute selectors for configuration */\n :host([disabled]) {\n opacity: var(--nuraly-select-disabled-opacity, 0.5);\n pointer-events: none;\n }\n\n :host([disabled]) .wrapper {\n background-color: var(--nuraly-select-disabled-background, #f9fafb);\n border-color: var(--nuraly-select-disabled-border-color, #d9d9d9);\n color: var(--nuraly-select-disabled-text-color, #8c8c8c);\n cursor: not-allowed;\n }\n\n /* Size variants */\n :host([size='small']) .wrapper {\n height: var(--nuraly-select-small-height, 24px);\n min-height: var(--nuraly-select-small-height, 24px);\n font-size: var(--nuraly-select-small-font-size, var(--nuraly-select-local-small-font-size));\n }\n\n :host([size='small']) .select-trigger {\n padding: var(--nuraly-select-small-padding, 2px 8px);\n padding-right: calc(var(--nuraly-select-icon-size, 16px) + 20px);\n }\n\n :host([size='medium']) .wrapper {\n min-height: var(--nuraly-select-medium-height, var(--nuraly-select-local-medium-height));\n font-size: var(--nuraly-select-medium-font-size, var(--nuraly-select-local-medium-font-size));\n }\n\n :host([size='medium']) .select-trigger {\n padding: var(--nuraly-select-medium-padding, var(--nuraly-select-local-medium-padding));\n padding-right: calc(var(--nuraly-select-icon-size, 16px) + 20px);\n }\n\n :host([size='large']) .wrapper {\n min-height: var(--nuraly-select-large-height, 48px);\n font-size: var(--nuraly-select-large-font-size, 16px);\n }\n\n :host([size='large']) .select-trigger {\n padding: var(--nuraly-select-large-padding, 12px 16px);\n padding-right: calc(var(--nuraly-select-icon-size, 16px) + 20px);\n }\n\n /* Status variants */\n :host([status='error']) .wrapper {\n border-color: var(--nuraly-select-error-border-color, #ef4444);\n }\n\n :host([status='warning']) .wrapper {\n border-color: var(--nuraly-select-warning-border-color, #f59e0b);\n }\n\n :host([status='success']) .wrapper {\n border-color: var(--nuraly-select-success-border-color, #10b981);\n }\n\n /* Type variants */\n :host([type='inline']) {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n :host([type='inline']) .wrapper {\n flex: 1;\n }\n\n /* Block (full width) */\n :host([block]) {\n width: 100%;\n }\n\n :host([block]) .wrapper {\n width: 100%;\n }\n\n /* Show dropdown */\n :host([show]) .options {\n display: flex !important;\n }\n\n /* Main wrapper container */\n .wrapper {\n position: relative;\n width: var(--nuraly-select-width, fit-content);\n background-color: var(--nuraly-select-background-color, #ffffff);\n border: var(--nuraly-select-border-width, var(--nuraly-select-local-border-width)) solid \n var(--nuraly-select-border-color, #d9d9d9);\n border-radius: var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius));\n transition: all var(--nuraly-select-transition-duration, 0.2s) \n var(--nuraly-select-transition-timing, ease-in-out);\n cursor: pointer;\n outline: none;\n margin: var(--nuraly-select-wrapper-margin, 0);\n min-height: var(--nuraly-select-min-height, var(--nuraly-select-local-min-height));\n box-sizing: border-box;\n display: flex;\n align-items: center;\n /* Ensure dropdown can overflow the wrapper */\n overflow: visible;\n }\n\n .wrapper:hover:not(:disabled) {\n border-color: var(--nuraly-select-border-hover, #7c3aed);\n }\n\n .wrapper:focus,\n .wrapper:focus-within {\n border-color: var(--nuraly-select-border-focus, #7c3aed);\n box-shadow: 0 0 0 2px var(--nuraly-select-focus-outline, rgba(124, 58, 237, 0.2));\n }\n\n /* Select container */\n .select {\n display: flex;\n flex-direction: column;\n }\n\n /* Select trigger (main display area) */\n .select-trigger {\n display: flex;\n align-items: center;\n padding: var(--nuraly-select-padding-top, var(--nuraly-select-local-padding-top)) \n calc(var(--nuraly-select-icon-size, 16px) + 20px) \n var(--nuraly-select-padding-bottom, var(--nuraly-select-local-padding-bottom)) \n var(--nuraly-select-padding-left, var(--nuraly-select-local-padding-left));\n color: var(--nuraly-select-text-color, #262626);\n font-size: inherit;\n line-height: inherit;\n word-break: break-word;\n flex: 1;\n min-height: 0;\n flex-wrap: wrap;\n gap: var(--nuraly-select-tag-margin, var(--nuraly-select-local-tag-margin));\n box-sizing: border-box;\n }\n\n .select-trigger:empty:before {\n content: attr(data-placeholder);\n color: var(--nuraly-select-placeholder-color, #8c8c8c);\n font-size: var(--nuraly-select-placeholder-font-size, var(--nuraly-select-local-placeholder-font-size));\n }\n\n /* Multi-select tags */\n .tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background-color: var(--nuraly-select-tag-background, var(--nuraly-select-local-tag-background));\n color: var(--nuraly-select-tag-color, var(--nuraly-select-local-tag-color));\n padding: var(--nuraly-select-tag-padding, var(--nuraly-select-local-tag-padding));\n border-radius: var(--nuraly-select-tag-border-radius, var(--nuraly-select-local-tag-border-radius));\n font-size: calc(var(--nuraly-select-font-size, var(--nuraly-select-local-font-size)) - 1px);\n max-width: 100%;\n }\n\n .tag-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .tag-close {\n color: var(--nuraly-select-tag-close-color, var(--nuraly-select-local-tag-close-color));\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n height: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n border-radius: 50%;\n transition: color var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));\n }\n\n .tag-close:hover {\n color: var(--nuraly-select-tag-close-hover-color, var(--nuraly-select-local-tag-close-hover-color));\n }\n\n /* Icons container */\n .icons-container {\n position: absolute;\n top: 50%;\n right: 12px;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n pointer-events: none;\n }\n\n .icons-container nr-icon {\n --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n --nuraly-icon-color: var(--nuraly-select-icon-color, var(--nuraly-select-local-icon-color));\n pointer-events: auto;\n cursor: pointer;\n transition: color var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));\n }\n\n .icons-container nr-icon:hover {\n --nuraly-icon-color: var(--nuraly-select-icon-hover-color, var(--nuraly-select-local-icon-hover-color));\n }\n\n .arrow-icon {\n --nuraly-icon-width: var(--nuraly-select-arrow-icon-size, var(--nuraly-select-local-arrow-icon-size));\n transition: transform var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));\n pointer-events: none !important;\n }\n\n :host([show]) .arrow-icon {\n transform: rotate(180deg);\n }\n\n /* Dropdown options */\n .options {\n /* Default positioning - will be overridden by controller when opened */\n position: absolute;\n top: 100%;\n margin-top: 1px;\n left: 0;\n right: 0;\n background-color: var(--nuraly-select-dropdown-background, #ffffff);\n border: var(--nuraly-select-dropdown-border-width, var(--nuraly-select-border-width, 1px)) solid \n var(--nuraly-select-dropdown-border-color, #d9d9d9);\n border-radius: var(--nuraly-select-dropdown-border-radius, var(--nuraly-select-border-radius, 6px));\n box-shadow: var(--nuraly-select-dropdown-shadow, 0 6px 16px 0 rgba(0, 0, 0, 0.08));\n z-index: var(--nuraly-select-dropdown-z-index, 9999);\n max-height: var(--nuraly-select-dropdown-max-height, 200px);\n overflow-y: auto;\n overflow-x: hidden;\n display: none;\n flex-direction: column;\n animation: dropdown-enter var(--nuraly-select-dropdown-animation-duration, 0.15s) ease-out;\n /* Ensure proper containment and exact wrapper width */\n box-sizing: border-box;\n /* Allow overriding width via either of these custom props */\n width: var(\n --nuraly-select-dropdown-width,\n var(--select-dropdown-width, var(--nuraly-select-local-dropdown-width))\n );\n min-width: 100%; /* Ensure dropdown is at least as wide as the wrapper */\n /* Create new stacking context to prevent layering issues */\n isolation: isolate;\n /* Ensure solid background to prevent visual bleed-through */\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n /* Force above other elements */\n transform: translateZ(0);\n }\n\n .options.placement-top {\n top: auto;\n bottom: 100%;\n margin-bottom: 1px;\n margin-top: 0;\n animation: dropdown-enter-top var(--nuraly-select-dropdown-animation-duration, var(--nuraly-select-local-dropdown-animation-duration)) ease-out;\n }\n\n @keyframes dropdown-enter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n @keyframes dropdown-enter-top {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* Search container - sticky at top of dropdown */\n .search-container {\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--nuraly-select-dropdown-background, #ffffff);\n border-bottom: var(--nuraly-select-border-width, 1px) solid \n var(--nuraly-select-dropdown-border-color, #d9d9d9);\n padding: 8px;\n margin: 0;\n /* Ensure it stays above options during scroll */\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n /* Ensure proper stacking and smooth scrolling */\n will-change: transform;\n transform: translateZ(0);\n }\n\n /* Search input styling */\n .search-container .search-input {\n width: 100%;\n --nuraly-input-border-radius: var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius));\n --nuraly-input-background-color: var(--nuraly-select-background-color, var(--nuraly-select-local-background-color));\n --nuraly-input-border-color: var(--nuraly-select-border-color, var(--nuraly-select-local-border-color));\n --nuraly-input-text-color: var(--nuraly-select-text-color, var(--nuraly-select-local-text-color));\n --nuraly-input-placeholder-color: var(--nuraly-select-placeholder-color, var(--nuraly-select-local-placeholder-color));\n }\n\n /* Search icon in the search input */\n .search-container .search-icon {\n --nuraly-icon-color: var(--nuraly-select-icon-color, var(--nuraly-select-local-icon-color));\n }\n\n /* Options list container - ensure proper scroll behavior with sticky search */\n .options:has(.search-container) {\n /* Add small padding-top when search is present to ensure proper separation */\n padding-top: 0;\n }\n\n /* Option items */\n .option {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: var(--nuraly-select-option-padding, 8px 12px);\n min-height: var(--nuraly-select-option-min-height, auto);\n color: var(--nuraly-select-option-text-color, var(--nuraly-select-text-color, #262626));\n font-size: var(--nuraly-select-option-font-size, 14px);\n cursor: pointer;\n transition: background-color var(--nuraly-select-transition-duration, 0.2s);\n position: relative;\n }\n\n /* First option after search container should have no extra margin */\n .search-container + .option {\n margin-top: 0;\n }\n\n .option:hover {\n background-color: var(--nuraly-select-option-hover-background, #f5f5f5);\n }\n\n .option.selected {\n background-color: var(--nuraly-select-option-selected-background, #e0e0e0);\n color: var(--nuraly-select-option-selected-color, #7c3aed);\n }\n\n .option.focused {\n background-color: var(--nuraly-select-option-hover-background, #f5f5f5);\n outline: 2px solid var(--nuraly-select-border-focus, #7c3aed);\n outline-offset: -2px;\n }\n\n .option.disabled {\n opacity: var(--nuraly-select-disabled-opacity, var(--nuraly-select-local-disabled-opacity));\n cursor: not-allowed;\n }\n\n .option-content {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .option-icon {\n --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n --nuraly-icon-color: currentColor;\n }\n\n .option-text {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .option-description {\n font-size: calc(var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size)) - 1px);\n opacity: 0.7;\n margin-top: 2px;\n }\n\n .check-icon {\n --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n --nuraly-icon-color: var(--nuraly-select-option-selected-color, var(--nuraly-select-local-option-selected-color));\n }\n\n .no-options {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--select-no-options-padding, 24px 16px);\n color: var(--select-no-options-color, #8c8c8c);\n font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));\n cursor: default;\n user-select: none;\n }\n\n .no-options-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--select-no-options-gap, 8px);\n text-align: center;\n }\n\n .no-options-icon {\n --nuraly-icon-width: 24px;\n --nuraly-icon-color: var(--select-no-options-icon-color, #d9d9d9);\n opacity: 0.8;\n }\n\n .no-options-text {\n font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));\n color: var(--select-no-options-color, #8c8c8c);\n line-height: 1.4;\n }\n\n /* Validation message */\n .validation-message {\n display: block;\n margin-top: var(--nuraly-select-message-margin-top, var(--nuraly-select-local-message-margin-top));\n font-size: var(--nuraly-select-message-font-size, var(--nuraly-select-local-message-font-size));\n color: var(--nuraly-select-error-message-color, var(--nuraly-select-local-error-message-color));\n }\n\n .validation-message.warning {\n color: var(--nuraly-select-warning-message-color, var(--nuraly-select-local-warning-message-color));\n }\n\n .validation-message.success {\n color: var(--nuraly-select-success-message-color, var(--nuraly-select-local-success-message-color));\n }\n\n /* Slotted content styles */\n ::slotted([slot='label']) {\n display: block;\n margin-bottom: 4px;\n font-weight: 500;\n color: var(--nuraly-select-text-color, var(--nuraly-select-local-text-color));\n }\n\n ::slotted([slot='helper-text']) {\n display: block;\n margin-top: var(--nuraly-select-message-margin-top, var(--nuraly-select-local-message-margin-top));\n font-size: var(--nuraly-select-message-font-size, var(--nuraly-select-local-message-font-size));\n color: var(--nuraly-select-placeholder-color, var(--nuraly-select-local-placeholder-color));\n }\n\n /* Accessibility improvements */\n @media (prefers-reduced-motion: reduce) {\n .options,\n .wrapper,\n .tag-close,\n .arrow-icon,\n .option {\n transition: none;\n animation: none;\n }\n }\n\n /* High contrast mode support */\n @media (prefers-contrast: high) {\n .wrapper {\n border-width: 2px;\n }\n \n .wrapper:focus,\n .wrapper:focus-within {\n outline: 3px solid;\n }\n }\n`;\n"]}
1
+ {"version":3,"file":"select.style.js","sourceRoot":"","sources":["../../../../src/components/select/select.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8kBxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n :host {\n /* Layout and sizing */\n --nuraly-select-local-min-height: 40px;\n --nuraly-select-local-padding-top: 8px;\n --nuraly-select-local-padding-bottom: 8px;\n --nuraly-select-local-padding-left: 12px;\n --nuraly-select-local-padding-right: 12px;\n --nuraly-select-local-wrapper-margin: 0;\n --nuraly-select-local-border-radius: 6px;\n --nuraly-select-local-border-width: 1px;\n \n /* Dropdown settings */\n --nuraly-select-local-dropdown-z-index: 9999;\n --nuraly-select-local-dropdown-max-height: auto;\n --nuraly-select-local-dropdown-width: max-content;\n --nuraly-select-local-placeholder-font-size: 14px;\n --nuraly-select-local-option-font-size: 14px;\n \n /* Search input container settings */\n --nuraly-select-local-input-container-max-width: var(--nuraly-select-width);\n \n /* Size tokens - small */\n --nuraly-select-local-small-height: 24px;\n --nuraly-select-local-small-font-size: 12px;\n --nuraly-select-local-small-padding: 2px 8px;\n --nuraly-select-local-small-icon-size: 14px;\n \n /* Size tokens - medium */\n --nuraly-select-local-medium-height: 40px;\n --nuraly-select-local-medium-font-size: 14px;\n --nuraly-select-local-medium-padding: 8px 12px;\n --nuraly-select-local-medium-icon-size: 16px;\n \n /* Size tokens - large */\n --nuraly-select-local-large-height: 48px;\n --nuraly-select-local-large-font-size: 16px;\n --nuraly-select-local-large-padding: 12px 16px;\n --nuraly-select-local-large-icon-size: 20px;\n \n /* Animation and transitions */\n --nuraly-select-local-dropdown-animation-duration: 0.15s;\n --nuraly-select-local-transition-duration: 0.2s;\n \n /* Multi-select specific */\n --nuraly-select-local-tag-border-radius: 4px;\n --nuraly-select-local-tag-padding: 2px 6px;\n --nuraly-select-local-tag-margin: 2px;\n \n /* Icon sizes */\n --nuraly-select-local-icon-size: 16px;\n --nuraly-select-local-arrow-icon-size: 16px;\n \n /* Validation message */\n --nuraly-select-local-message-font-size: 12px;\n --nuraly-select-local-message-margin-top: 4px;\n \n /* Font settings */\n --nuraly-select-local-font-size: 14px;\n }\n\n :host {\n width: fit-content;\n display: block;\n font-family: var(--nuraly-select-font-family, Inter, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif);\n font-size: var(--nuraly-select-font-size, 14px);\n line-height: var(--nuraly-select-line-height, 1.5);\n margin: var(--nuraly-select-margin, var(--nuraly-select-local-wrapper-margin));\n }\n\n /* Host attribute selectors for configuration */\n :host([disabled]) {\n opacity: var(--nuraly-select-disabled-opacity, 0.5);\n pointer-events: none;\n }\n\n :host([disabled]) .wrapper {\n background-color: var(--nuraly-select-disabled-background, var(--nuraly-color-background-disabled));\n border-color: var(--nuraly-select-disabled-border-color, var(--nuraly-color-border));\n color: var(--nuraly-select-disabled-text-color, var(--nuraly-color-text-disabled));\n cursor: not-allowed;\n }\n\n /* Size variants */\n :host([size='small']) .wrapper {\n height: var(--nuraly-select-small-height, var(--nuraly-select-local-small-height));\n min-height: var(--nuraly-select-small-height, var(--nuraly-select-local-small-height));\n font-size: var(--nuraly-select-small-font-size, var(--nuraly-select-local-small-font-size));\n }\n\n :host([size='small']) .select-trigger {\n padding: var(--nuraly-select-small-padding, var(--nuraly-select-local-small-padding));\n padding-right: calc(var(--nuraly-select-small-icon-size, var(--nuraly-select-local-small-icon-size)) + 20px);\n }\n\n :host([size='small']) .icons-container nr-icon {\n --nuraly-icon-width: var(--nuraly-select-small-icon-size, var(--nuraly-select-local-small-icon-size));\n }\n\n :host([size='small']) .option {\n padding: var(--nuraly-select-small-padding, var(--nuraly-select-local-small-padding));\n font-size: var(--nuraly-select-small-font-size, var(--nuraly-select-local-small-font-size));\n min-height: var(--nuraly-select-small-height, var(--nuraly-select-local-small-height));\n }\n\n :host([size='small']) .option-icon,\n :host([size='small']) .option nr-icon {\n --nuraly-icon-width: var(--nuraly-select-small-icon-size, var(--nuraly-select-local-small-icon-size));\n }\n\n :host([size='medium']) .wrapper {\n min-height: var(--nuraly-select-medium-height, var(--nuraly-select-local-medium-height));\n font-size: var(--nuraly-select-medium-font-size, var(--nuraly-select-local-medium-font-size));\n }\n\n :host([size='medium']) .select-trigger {\n padding: var(--nuraly-select-medium-padding, var(--nuraly-select-local-medium-padding));\n padding-right: calc(var(--nuraly-select-medium-icon-size, var(--nuraly-select-local-medium-icon-size)) + 20px);\n }\n\n :host([size='medium']) .icons-container nr-icon {\n --nuraly-icon-width: var(--nuraly-select-medium-icon-size, var(--nuraly-select-local-medium-icon-size));\n }\n\n :host([size='medium']) .option {\n padding: var(--nuraly-select-medium-padding, var(--nuraly-select-local-medium-padding));\n font-size: var(--nuraly-select-medium-font-size, var(--nuraly-select-local-medium-font-size));\n min-height: var(--nuraly-select-medium-height, var(--nuraly-select-local-medium-height));\n }\n\n :host([size='medium']) .option-icon,\n :host([size='medium']) .option nr-icon {\n --nuraly-icon-width: var(--nuraly-select-medium-icon-size, var(--nuraly-select-local-medium-icon-size));\n }\n\n :host([size='large']) .wrapper {\n min-height: var(--nuraly-select-large-height, var(--nuraly-select-local-large-height));\n font-size: var(--nuraly-select-large-font-size, var(--nuraly-select-local-large-font-size));\n }\n\n :host([size='large']) .select-trigger {\n padding: var(--nuraly-select-large-padding, var(--nuraly-select-local-large-padding));\n padding-right: calc(var(--nuraly-select-large-icon-size, var(--nuraly-select-local-large-icon-size)) + 20px);\n }\n\n :host([size='large']) .icons-container nr-icon {\n --nuraly-icon-width: var(--nuraly-select-large-icon-size, var(--nuraly-select-local-large-icon-size));\n }\n\n :host([size='large']) .option {\n padding: var(--nuraly-select-large-padding, var(--nuraly-select-local-large-padding));\n font-size: var(--nuraly-select-large-font-size, var(--nuraly-select-local-large-font-size));\n min-height: var(--nuraly-select-large-height, var(--nuraly-select-local-large-height));\n }\n\n :host([size='large']) .option-icon,\n :host([size='large']) .option nr-icon {\n --nuraly-icon-width: var(--nuraly-select-large-icon-size, var(--nuraly-select-local-large-icon-size));\n }\n\n /* Status variants */\n :host([status='error']) .wrapper {\n border-color: var(--nuraly-select-error-border-color, var(--nuraly-color-danger));\n }\n\n :host([status='warning']) .wrapper {\n border-color: var(--nuraly-select-warning-border-color, var(--nuraly-color-warning));\n }\n\n :host([status='success']) .wrapper {\n border-color: var(--nuraly-select-success-border-color, var(--nuraly-color-success));\n }\n\n /* Type variants */\n :host([type='inline']) {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n :host([type='inline']) .wrapper {\n flex: 1;\n }\n\n /* Block (full width) */\n :host([block]) {\n width: 100%;\n }\n\n :host([block]) .wrapper {\n width: 100%;\n }\n\n /* Show dropdown */\n :host([show]) .options {\n display: flex !important;\n }\n\n /* Main wrapper container */\n .wrapper {\n position: relative;\n width: var(--nuraly-select-width, fit-content);\n background-color: var(--nuraly-select-background, var(--nuraly-color-background-panel));\n border: var(--nuraly-select-border-width, var(--nuraly-select-local-border-width)) solid \n var(--nuraly-select-border-color, var(--nuraly-color-border));\n border-radius: var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius));\n transition: all var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration)) \n var(--nuraly-select-transition-timing, ease-in-out);\n cursor: pointer;\n outline: none;\n margin: var(--nuraly-select-wrapper-margin, 0);\n min-height: var(--nuraly-select-min-height, var(--nuraly-select-local-min-height));\n box-sizing: border-box;\n display: flex;\n align-items: center;\n /* Ensure dropdown can overflow the wrapper */\n overflow: visible;\n }\n\n .wrapper:hover:not(:disabled) {\n border-color: var(--nuraly-select-border-hover, var(--nuraly-color-primary));\n }\n\n .wrapper:focus,\n .wrapper:focus-within {\n border-color: var(--nuraly-select-border-focus, var(--nuraly-color-primary));\n box-shadow: 0 0 0 2px var(--nuraly-color-primary-light);\n }\n\n /* Select container */\n .select {\n display: flex;\n flex-direction: column;\n }\n\n /* Select trigger (main display area) */\n .select-trigger {\n display: flex;\n align-items: center;\n padding: var(--nuraly-select-padding-top, var(--nuraly-select-local-padding-top)) \n calc(var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size)) + 20px) \n var(--nuraly-select-padding-bottom, var(--nuraly-select-local-padding-bottom)) \n var(--nuraly-select-padding-left, var(--nuraly-select-local-padding-left));\n color: var(--nuraly-select-color, var(--nuraly-color-text));\n font-size: inherit;\n line-height: inherit;\n word-break: break-word;\n flex: 1;\n min-height: 0;\n flex-wrap: wrap;\n gap: var(--nuraly-select-tag-margin, var(--nuraly-select-local-tag-margin));\n box-sizing: border-box;\n }\n\n .select-trigger:empty:before {\n content: attr(data-placeholder);\n color: var(--nuraly-select-placeholder-color, var(--nuraly-color-text-secondary));\n font-size: var(--nuraly-select-placeholder-font-size, var(--nuraly-select-local-placeholder-font-size));\n }\n\n /* Multi-select tags */\n .tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background-color: var(--nuraly-select-tag-background, var(--nuraly-color-background-active));\n color: var(--nuraly-select-tag-color, var(--nuraly-color-text));\n padding: var(--nuraly-select-tag-padding, var(--nuraly-select-local-tag-padding));\n border-radius: var(--nuraly-select-tag-border-radius, var(--nuraly-select-local-tag-border-radius));\n font-size: calc(var(--nuraly-select-font-size, var(--nuraly-select-local-font-size)) - 1px);\n max-width: 100%;\n }\n\n .tag-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .tag-close {\n color: var(--nuraly-select-tag-close-color, var(--nuraly-color-text-secondary));\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n height: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n border-radius: 50%;\n transition: color var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));\n }\n\n .tag-close:hover {\n color: var(--nuraly-select-tag-close-hover-color, var(--nuraly-color-text));\n }\n\n /* Icons container */\n .icons-container {\n position: absolute;\n top: 50%;\n right: 12px;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n pointer-events: none;\n }\n\n .icons-container nr-icon {\n --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n --nuraly-icon-color: var(--nuraly-color-select-icon, var(--nuraly-color-text-secondary));\n pointer-events: auto;\n cursor: pointer;\n transition: color var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));\n }\n\n .icons-container nr-icon:hover {\n --nuraly-icon-color: var(--nuraly-color-select-icon-hover, var(--nuraly-color-text));\n }\n\n .arrow-icon {\n --nuraly-icon-width: var(--nuraly-select-arrow-icon-size, var(--nuraly-select-local-arrow-icon-size));\n transition: transform var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));\n pointer-events: none !important;\n }\n\n :host([show]) .arrow-icon {\n transform: rotate(180deg);\n }\n\n /* Dropdown options */\n .options {\n /* Fixed positioning to escape overflow containers */\n position: fixed;\n /* top/left will be set by controller */\n background-color: var(--nuraly-select-dropdown-background, var(--nuraly-color-background-panel));\n border: var(--nuraly-select-dropdown-border-width, var(--nuraly-select-border-width, var(--nuraly-select-local-border-width))) solid\n var(--nuraly-select-dropdown-border-color, var(--nuraly-color-border));\n border-radius: var(--nuraly-select-dropdown-border-radius, var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius)));\n box-shadow: var(--nuraly-select-dropdown-shadow, 0 6px 16px 0 rgba(0, 0, 0, 0.08));\n z-index: var(--nuraly-select-dropdown-z-index, var(--nuraly-select-local-dropdown-z-index));\n max-height: var(--nuraly-select-dropdown-max-height, var(--nuraly-select-local-dropdown-max-height, auto));\n overflow-y: auto;\n overflow-x: hidden;\n display: none;\n flex-direction: column;\n animation: dropdown-enter var(--nuraly-select-dropdown-animation-duration, var(--nuraly-select-local-dropdown-animation-duration)) ease-out;\n /* Ensure proper containment and exact wrapper width */\n box-sizing: border-box;\n /* Allow overriding width via either of these custom props */\n width: var(\n --nuraly-select-dropdown-width,\n var(--select-dropdown-width, var(--nuraly-select-local-dropdown-width))\n );\n /* Create new stacking context to prevent layering issues */\n isolation: isolate;\n /* Ensure solid background to prevent visual bleed-through */\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n /* Prevent pointer events when hidden */\n pointer-events: none;\n }\n\n :host([show]) .options {\n pointer-events: auto;\n }\n\n .options.placement-top {\n animation: dropdown-enter-top var(--nuraly-select-dropdown-animation-duration, var(--nuraly-select-local-dropdown-animation-duration)) ease-out;\n }\n\n .options.placement-bottom {\n animation: dropdown-enter var(--nuraly-select-dropdown-animation-duration, var(--nuraly-select-local-dropdown-animation-duration)) ease-out;\n }\n\n @keyframes dropdown-enter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n @keyframes dropdown-enter-top {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* Search container - sticky at top of dropdown */\n .search-container {\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--nuraly-select-dropdown-background, var(--nuraly-color-background-panel));\n border-bottom: var(--nuraly-select-border-width, var(--nuraly-select-local-border-width)) solid \n var(--nuraly-select-dropdown-border-color, var(--nuraly-color-border));\n padding: 8px;\n margin: 0;\n /* Ensure it stays above options during scroll */\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n /* Ensure proper stacking and smooth scrolling */\n will-change: transform;\n transform: translateZ(0);\n }\n\n /* Search input styling */\n .search-container .search-input {\n width: 100%;\n max-width: var(--nuraly-select-input-container-max-width, var(--nuraly-select-local-input-container-max-width));\n --nuraly-input-border-radius: var(--nuraly-select-border-radius, var(--nuraly-select-local-border-radius));\n --nuraly-input-background-color: var(--nuraly-select-background, var(--nuraly-color-background-panel));\n --nuraly-input-border-color: var(--nuraly-select-border-color, var(--nuraly-color-border));\n --nuraly-input-text-color: var(--nuraly-select-color, var(--nuraly-color-text));\n --nuraly-input-placeholder-color: var(--nuraly-select-placeholder-color, var(--nuraly-color-text-secondary));\n }\n\n /* Search icon in the search input */\n .search-container .search-icon {\n --nuraly-icon-color: var(--nuraly-color-select-icon, var(--nuraly-color-text-secondary));\n }\n\n /* Options list container - ensure proper scroll behavior with sticky search */\n .options:has(.search-container) {\n /* Add small padding-top when search is present to ensure proper separation */\n padding-top: 0;\n }\n\n /* Option items */\n .option {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: var(--nuraly-select-option-padding, 8px 12px);\n min-height: var(--nuraly-select-option-min-height, auto);\n color: var(--nuraly-select-option-color, var(--nuraly-color-text));\n font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));\n cursor: pointer;\n transition: background-color var(--nuraly-select-transition-duration, var(--nuraly-select-local-transition-duration));\n position: relative;\n }\n\n /* First option after search container should have no extra margin */\n .search-container + .option {\n margin-top: 0;\n }\n\n .option:hover {\n background-color: var(--nuraly-select-option-hover-background, var(--nuraly-color-background-hover));\n }\n\n .option.selected {\n background-color: var(--nuraly-select-option-selected-background, var(--nuraly-color-primary-light));\n color: var(--nuraly-select-option-selected-color, var(--nuraly-color-primary));\n }\n\n .option.focused {\n background-color: var(--nuraly-select-option-hover-background, var(--nuraly-color-background-hover));\n outline: 2px solid var(--nuraly-select-border-focus, var(--nuraly-color-primary));\n outline-offset: -2px;\n }\n\n .option.disabled {\n opacity: var(--nuraly-select-disabled-opacity, var(--nuraly-select-local-disabled-opacity));\n cursor: not-allowed;\n }\n\n .option-content {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .option-icon {\n --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n --nuraly-icon-color: currentColor;\n }\n\n .option-text {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .option-description {\n font-size: calc(var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size)) - 1px);\n opacity: 0.7;\n margin-top: 2px;\n }\n\n .check-icon {\n --nuraly-icon-width: var(--nuraly-select-icon-size, var(--nuraly-select-local-icon-size));\n --nuraly-icon-color: var(--nuraly-select-option-selected-color, var(--nuraly-color-primary));\n }\n\n .no-options {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--select-no-options-padding, 24px 16px);\n color: var(--select-no-options-color, var(--nuraly-color-text-secondary));\n font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));\n cursor: default;\n user-select: none;\n }\n\n .no-options-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--select-no-options-gap, 8px);\n text-align: center;\n }\n\n .no-options-icon {\n --nuraly-icon-width: 24px;\n --nuraly-icon-color: var(--select-no-options-icon-color, var(--nuraly-color-border));\n opacity: 0.8;\n }\n\n .no-options-text {\n font-size: var(--nuraly-select-option-font-size, var(--nuraly-select-local-option-font-size));\n color: var(--select-no-options-color, var(--nuraly-color-text-secondary));\n line-height: 1.4;\n }\n\n /* Validation message */\n .validation-message {\n display: block;\n margin-top: var(--nuraly-select-message-margin-top, var(--nuraly-select-local-message-margin-top));\n font-size: var(--nuraly-select-message-font-size, var(--nuraly-select-local-message-font-size));\n color: var(--nuraly-select-error-message-color, var(--nuraly-color-danger));\n }\n\n .validation-message.warning {\n color: var(--nuraly-select-warning-message-color, var(--nuraly-color-warning));\n }\n\n .validation-message.success {\n color: var(--nuraly-select-success-message-color, var(--nuraly-color-success));\n }\n\n /* Slotted content styles */\n ::slotted([slot='label']) {\n display: block;\n margin-bottom: 4px;\n font-weight: 500;\n color: var(--nuraly-select-color, var(--nuraly-color-text));\n }\n\n ::slotted([slot='helper-text']) {\n display: block;\n margin-top: var(--nuraly-select-message-margin-top, var(--nuraly-select-local-message-margin-top));\n font-size: var(--nuraly-select-message-font-size, var(--nuraly-select-local-message-font-size));\n color: var(--nuraly-select-placeholder-color, var(--nuraly-color-text-secondary));\n }\n\n /* Accessibility improvements */\n @media (prefers-reduced-motion: reduce) {\n .options,\n .wrapper,\n .tag-close,\n .arrow-icon,\n .option {\n transition: none;\n animation: none;\n }\n }\n\n /* High contrast mode support */\n @media (prefers-contrast: high) {\n .wrapper {\n border-width: 2px;\n }\n \n .wrapper:focus,\n .wrapper:focus-within {\n outline: 3px solid;\n }\n }\n`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"select.types.js","sourceRoot":"","sources":["../../../src/components/select/select.types.ts"],"names":[],"mappings":"AAkDA;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;AACf,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACrB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AACD,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,wCAAqB,CAAA;AACvB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;AAC3B,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,gCAAW,CAAA;IACX,kCAAa,CAAA;AACf,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,wCAA0B,CAAA;IAC1B,mCAAqB,CAAA;IACrB,6BAAe,CAAA;AACjB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB","sourcesContent":["/**\n * Configuration interface for select options with comprehensive properties\n */\nexport interface SelectOption {\n /** Unique value for the option */\n value: string;\n \n /** Display text for the option */\n label: string;\n \n /** Optional icon name to display with the option */\n icon?: string;\n \n /** Whether the option is disabled and cannot be selected */\n disabled?: boolean;\n \n /** Validation state of the option */\n state?: SelectState;\n \n /** Optional message to display with the option */\n message?: string;\n \n /** HTML content to render instead of plain text label */\n htmlContent?: string;\n \n /** Custom CSS class to apply to the option */\n className?: string;\n \n /** Inline CSS styles for the option */\n style?: string;\n \n /** Tooltip text shown on hover */\n title?: string;\n \n /** Custom HTML ID for the option */\n id?: string;\n \n /** Group name for option grouping */\n group?: string;\n \n /** Additional descriptive text below the label */\n description?: string;\n \n}\n\n/**\n * Select state for validation and visual feedback\n */\nexport type SelectState = 'error' | 'warning' | 'success';\n\n/**\n * Select component type variants\n */\nexport enum SelectType {\n Default = 'default',\n Inline = 'inline',\n Button = 'button',\n Slot = 'slot',\n}\n\n/**\n * Select status/state enum\n */\nexport enum SelectStatus {\n Default = 'default',\n Warning = 'warning',\n Error = 'error',\n Success = 'success',\n}\n\n/**\n * Select component size variants\n */\nexport enum SelectSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\nexport enum OptionSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\n/**\n * Select component direction for layout\n */\nexport enum SelectDirection {\n Horizontal = 'horizontal',\n Vertical = 'vertical',\n}\n\n/**\n * Select component variant styles\n */\nexport enum SelectVariant {\n Default = 'default',\n Solid = 'solid',\n Outline = 'outline',\n Borderless = 'borderless',\n}\n\n/**\n * Dropdown placement options\n */\nexport enum DropdownPlacement {\n Bottom = 'bottom',\n Top = 'top',\n Auto = 'auto',\n}\n\n/**\n * Search mode for filterable selects\n */\nexport enum SearchMode {\n None = 'none',\n StartsWith = 'starts-with',\n Contains = 'contains',\n Fuzzy = 'fuzzy',\n}\n"]}
1
+ {"version":3,"file":"select.types.js","sourceRoot":"","sources":["../../../../src/components/select/select.types.ts"],"names":[],"mappings":"AAkDA;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;AACf,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACrB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AACD,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,wCAAqB,CAAA;AACvB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;AAC3B,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,gCAAW,CAAA;IACX,kCAAa,CAAA;AACf,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,wCAA0B,CAAA;IAC1B,mCAAqB,CAAA;IACrB,6BAAe,CAAA;AACjB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB","sourcesContent":["/**\n * Configuration interface for select options with comprehensive properties\n */\nexport interface SelectOption {\n /** Unique value for the option */\n value: string;\n \n /** Display text for the option */\n label: string;\n \n /** Optional icon name to display with the option */\n icon?: string;\n \n /** Whether the option is disabled and cannot be selected */\n disabled?: boolean;\n \n /** Validation state of the option */\n state?: SelectState;\n \n /** Optional message to display with the option */\n message?: string;\n \n /** HTML content to render instead of plain text label */\n htmlContent?: string;\n \n /** Custom CSS class to apply to the option */\n className?: string;\n \n /** Inline CSS styles for the option */\n style?: string;\n \n /** Tooltip text shown on hover */\n title?: string;\n \n /** Custom HTML ID for the option */\n id?: string;\n \n /** Group name for option grouping */\n group?: string;\n \n /** Additional descriptive text below the label */\n description?: string;\n \n}\n\n/**\n * Select state for validation and visual feedback\n */\nexport type SelectState = 'error' | 'warning' | 'success';\n\n/**\n * Select component type variants\n */\nexport enum SelectType {\n Default = 'default',\n Inline = 'inline',\n Button = 'button',\n Slot = 'slot',\n}\n\n/**\n * Select status/state enum\n */\nexport enum SelectStatus {\n Default = 'default',\n Warning = 'warning',\n Error = 'error',\n Success = 'success',\n}\n\n/**\n * Select component size variants\n */\nexport enum SelectSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\nexport enum OptionSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\n/**\n * Select component direction for layout\n */\nexport enum SelectDirection {\n Horizontal = 'horizontal',\n Vertical = 'vertical',\n}\n\n/**\n * Select component variant styles\n */\nexport enum SelectVariant {\n Default = 'default',\n Solid = 'solid',\n Outline = 'outline',\n Borderless = 'borderless',\n}\n\n/**\n * Dropdown placement options\n */\nexport enum DropdownPlacement {\n Bottom = 'bottom',\n Top = 'top',\n Auto = 'auto',\n}\n\n/**\n * Search mode for filterable selects\n */\nexport enum SearchMode {\n None = 'none',\n StartsWith = 'starts-with',\n Contains = 'contains',\n Fuzzy = 'fuzzy',\n}\n"]}