@agorapulse/ui-theme 20.1.19 → 20.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/agorapulse-ui-theme-20.1.21.tgz +0 -0
  2. package/assets/desktop_variables.css +10 -0
  3. package/assets/mobile_variables.css +10 -0
  4. package/assets/style/_tooltip.scss +6 -1
  5. package/assets/style/css-ui/_accordion.scss +54 -0
  6. package/assets/style/css-ui/_action-dropdown.scss +163 -0
  7. package/assets/style/css-ui/_avatar-group.scss +61 -0
  8. package/assets/style/css-ui/_avatar.scss +183 -0
  9. package/assets/style/css-ui/{badge.css → _badge.scss} +10 -12
  10. package/assets/style/css-ui/_button.scss +258 -0
  11. package/assets/style/css-ui/_card.scss +17 -0
  12. package/assets/style/css-ui/_checkbox.scss +164 -0
  13. package/assets/style/css-ui/_counter.scss +76 -0
  14. package/assets/style/css-ui/_datepicker.scss +307 -0
  15. package/assets/style/css-ui/_dialog.scss +74 -0
  16. package/assets/style/css-ui/_dot-stepper.scss +68 -0
  17. package/assets/style/{_helpers.scss → css-ui/_helpers.scss} +14 -13
  18. package/assets/style/css-ui/_icon-button.scss +162 -0
  19. package/assets/style/css-ui/_infobox.scss +154 -0
  20. package/assets/style/css-ui/_input.scss +129 -0
  21. package/assets/style/css-ui/_label.scss +95 -0
  22. package/assets/style/css-ui/_link.scss +86 -0
  23. package/assets/style/css-ui/_list-panel.scss +73 -0
  24. package/assets/style/css-ui/_loader.scss +173 -0
  25. package/assets/style/css-ui/_mixins.scss +50 -0
  26. package/assets/style/css-ui/_pagination.scss +177 -0
  27. package/assets/style/css-ui/_radio-card.scss +200 -0
  28. package/assets/style/css-ui/_radio.scss +107 -0
  29. package/assets/style/css-ui/{select.css → _select.scss} +290 -298
  30. package/assets/style/css-ui/_selection-dropdown.scss +183 -0
  31. package/assets/style/css-ui/_snackbar.scss +161 -0
  32. package/assets/style/css-ui/_split-button.scss +74 -0
  33. package/assets/style/css-ui/_status.scss +71 -0
  34. package/assets/style/css-ui/_stepper.scss +113 -0
  35. package/assets/style/css-ui/_table.scss +325 -0
  36. package/assets/style/css-ui/_tabs.scss +182 -0
  37. package/assets/style/css-ui/_tag.scss +169 -0
  38. package/assets/style/css-ui/_textarea.scss +121 -0
  39. package/assets/style/css-ui/_toggle.scss +132 -0
  40. package/assets/style/css-ui/_tooltip.scss +122 -0
  41. package/assets/style/{_mat-typography.scss → css-ui/_typography.scss} +34 -26
  42. package/assets/style/css-ui/font-face.css +43 -0
  43. package/assets/style/css-ui/index.css +4907 -27
  44. package/assets/style/css-ui/index.css.map +1 -0
  45. package/assets/style/css-ui/index.scss +39 -0
  46. package/assets/style/theme.scss +9 -2
  47. package/package.json +17 -2
  48. package/src/tokens/system/icon.json +33 -0
  49. package/agorapulse-ui-theme-20.1.19.tgz +0 -0
  50. package/assets/style/css-ui/action-dropdown.css +0 -172
  51. package/assets/style/css-ui/avatar.css +0 -199
  52. package/assets/style/css-ui/button.css +0 -446
  53. package/assets/style/css-ui/checkbox.css +0 -170
  54. package/assets/style/css-ui/counter.css +0 -73
  55. package/assets/style/css-ui/datepicker.css +0 -294
  56. package/assets/style/css-ui/dot-stepper.css +0 -67
  57. package/assets/style/css-ui/infobox.css +0 -163
  58. package/assets/style/css-ui/input.css +0 -119
  59. package/assets/style/css-ui/label.css +0 -67
  60. package/assets/style/css-ui/link.css +0 -92
  61. package/assets/style/css-ui/loader.css +0 -247
  62. package/assets/style/css-ui/pagination.css +0 -161
  63. package/assets/style/css-ui/radio.css +0 -109
  64. package/assets/style/css-ui/snackbar.css +0 -166
  65. package/assets/style/css-ui/status.css +0 -87
  66. package/assets/style/css-ui/stepper.css +0 -123
  67. package/assets/style/css-ui/table.css +0 -305
  68. package/assets/style/css-ui/tabs.css +0 -188
  69. package/assets/style/css-ui/tag.css +0 -171
  70. package/assets/style/css-ui/textarea.css +0 -158
  71. package/assets/style/css-ui/toggle.css +0 -161
  72. package/assets/style/css-ui/tooltip.css +0 -228
@@ -1,31 +1,45 @@
1
- /* Agorapulse Select Styles */
1
+ // Agorapulse Select Styles
2
+ @use 'mixins' as m;
2
3
 
3
- /* ============================================
4
- SELECT CONTAINER (using details/summary)
5
- ============================================ */
4
+ // ============================================
5
+ // SELECT CONTAINER (using details/summary)
6
+ // ============================================
6
7
 
7
8
  .ap-select {
8
9
  position: relative;
9
10
  display: inline-block;
10
11
  width: 100%;
11
- }
12
12
 
13
- /* Remove default details marker */
14
- .ap-select summary {
15
- list-style: none;
16
- }
13
+ // Remove default details marker
14
+ summary {
15
+ list-style: none;
17
16
 
18
- .ap-select summary::-webkit-details-marker {
19
- display: none;
20
- }
17
+ &::-webkit-details-marker {
18
+ display: none;
19
+ }
20
+
21
+ &::marker {
22
+ display: none;
23
+ }
24
+ }
21
25
 
22
- .ap-select summary::marker {
23
- display: none;
26
+ // Arrow rotation when open
27
+ &[open] {
28
+ .ap-select-trigger {
29
+ outline: none;
30
+ border-color: var(--ref-color-electric-blue-100);
31
+ }
32
+
33
+ .ap-select-arrow {
34
+ transform: rotate(180deg);
35
+ color: var(--ref-color-electric-blue-100);
36
+ }
37
+ }
24
38
  }
25
39
 
26
- /* ============================================
27
- SELECT TRIGGER / INPUT
28
- ============================================ */
40
+ // ============================================
41
+ // SELECT TRIGGER / INPUT
42
+ // ============================================
29
43
 
30
44
  .ap-select-trigger {
31
45
  display: flex;
@@ -37,50 +51,88 @@
37
51
  border: 1px solid var(--ref-color-grey-20);
38
52
  border-radius: var(--ref-border-radius-sm);
39
53
  background-color: var(--ref-color-white);
40
- font-family: var(--sys-text-style-body-font-family);
41
- font-size: var(--sys-text-style-body-size);
42
- font-weight: var(--sys-text-style-body-weight);
43
- line-height: var(--sys-text-style-body-line-height);
54
+ @include m.text-style('body');
44
55
  color: var(--ref-color-grey-100);
45
56
  cursor: pointer;
46
57
  box-sizing: border-box;
47
58
  transition: border-color 0.15s ease;
48
- }
49
-
50
- .ap-select-trigger:hover:not(.disabled) {
51
- border-color: var(--ref-color-grey-40);
52
- }
53
-
54
- .ap-select-trigger:focus {
55
- outline: none;
56
- border-color: var(--ref-color-electric-blue-100);
57
- }
58
-
59
- /* Open state using details[open] */
60
- .ap-select[open] .ap-select-trigger,
61
- .ap-select-trigger.open {
62
- outline: none;
63
- border-color: var(--ref-color-electric-blue-100);
64
- }
65
59
 
66
- .ap-select-trigger.disabled {
67
- background-color: var(--ref-color-grey-20);
68
- border-color: var(--ref-color-grey-20);
69
- color: var(--ref-color-grey-60);
70
- cursor: default;
71
- pointer-events: none;
72
- }
73
-
74
- /* Validation states */
75
- .ap-select-trigger.valid {
76
- border-color: var(--comp-input-border-success-color);
77
- }
78
-
79
- .ap-select-trigger.invalid {
80
- border-color: var(--comp-input-border-error-color);
81
- }
82
-
83
- /* Inline label within trigger */
60
+ &:hover:not(.disabled) {
61
+ border-color: var(--ref-color-grey-40);
62
+ }
63
+
64
+ &:focus {
65
+ outline: none;
66
+ border-color: var(--ref-color-electric-blue-100);
67
+ }
68
+
69
+ &.open {
70
+ outline: none;
71
+ border-color: var(--ref-color-electric-blue-100);
72
+
73
+ .ap-select-arrow {
74
+ transform: rotate(180deg);
75
+ color: var(--ref-color-electric-blue-100);
76
+ }
77
+ }
78
+
79
+ &.disabled {
80
+ background-color: var(--ref-color-grey-20);
81
+ border-color: var(--ref-color-grey-20);
82
+ color: var(--ref-color-grey-60);
83
+ cursor: default;
84
+ pointer-events: none;
85
+ }
86
+
87
+ // Validation states
88
+ &.valid {
89
+ border-color: var(--comp-input-border-success-color);
90
+ }
91
+
92
+ &.invalid {
93
+ border-color: var(--comp-input-border-error-color);
94
+ }
95
+
96
+ // Context-specific overrides for labels within select trigger
97
+ .ap-label {
98
+ height: 20px;
99
+ padding: 0 var(--ref-spacing-xxs);
100
+ font-size: var(--ref-font-size-sm);
101
+ line-height: var(--ref-font-line-height-sm);
102
+
103
+ &:has(> button) {
104
+ padding: 0 2px 0 var(--ref-spacing-xxs);
105
+ }
106
+
107
+ > button {
108
+ width: 16px;
109
+ height: 16px;
110
+ min-width: 16px;
111
+ }
112
+ }
113
+
114
+ // Context-specific overrides for tags within select trigger
115
+ .ap-tag {
116
+ height: 20px;
117
+ padding: 0 var(--ref-spacing-xxs);
118
+ font-size: var(--ref-font-size-sm);
119
+ line-height: var(--ref-font-line-height-sm);
120
+
121
+ &:has(> button) {
122
+ padding: 0 2px 0 var(--ref-spacing-xxs);
123
+ }
124
+
125
+ > button {
126
+ width: 16px;
127
+ height: 16px;
128
+ min-width: 16px;
129
+ max-width: 16px;
130
+ max-height: 16px;
131
+ }
132
+ }
133
+ }
134
+
135
+ // Inline label within trigger
84
136
  .ap-select-inline-label {
85
137
  padding-right: var(--ref-spacing-xxs);
86
138
  border-right: 1px solid var(--comp-select-inline-separator-color);
@@ -92,7 +144,7 @@
92
144
  white-space: nowrap;
93
145
  }
94
146
 
95
- /* Inline icon */
147
+ // Inline icon
96
148
  .ap-select-inline-icon {
97
149
  height: var(--comp-input-icon-size);
98
150
  width: var(--comp-input-icon-size);
@@ -102,19 +154,17 @@
102
154
  flex-shrink: 0;
103
155
  }
104
156
 
105
- /* Selected value display */
157
+ // Selected value display
106
158
  .ap-select-value {
107
159
  flex: 1;
108
- overflow: hidden;
109
- white-space: nowrap;
110
- text-overflow: ellipsis;
160
+ @include m.truncate;
111
161
  }
112
162
 
113
163
  .ap-select-placeholder {
114
164
  color: var(--ref-color-grey-60);
115
165
  }
116
166
 
117
- /* Avatar in trigger (for selected value with avatar) */
167
+ // Avatar in trigger
118
168
  .ap-select-avatar {
119
169
  width: 20px;
120
170
  height: 20px;
@@ -124,26 +174,18 @@
124
174
  flex-shrink: 0;
125
175
  }
126
176
 
127
- /* Arrow icon */
177
+ // Arrow icon
128
178
  .ap-select-arrow {
129
179
  width: 16px;
130
180
  height: 16px;
131
181
  min-width: 16px;
132
182
  flex-shrink: 0;
183
+ margin-left: auto;
133
184
  color: var(--ref-color-grey-60);
134
- transition:
135
- transform 0.15s ease,
136
- color 0.15s ease;
137
- }
138
-
139
- /* Arrow rotation when open */
140
- .ap-select[open] .ap-select-arrow,
141
- .ap-select-trigger.open .ap-select-arrow {
142
- transform: rotate(180deg);
143
- color: var(--ref-color-electric-blue-100);
185
+ transition: transform 0.15s ease, color 0.15s ease;
144
186
  }
145
187
 
146
- /* Clear button */
188
+ // Clear button
147
189
  .ap-select-clear {
148
190
  display: flex;
149
191
  align-items: center;
@@ -156,15 +198,15 @@
156
198
  cursor: pointer;
157
199
  padding: 0;
158
200
  flex-shrink: 0;
159
- }
160
201
 
161
- .ap-select-clear:hover {
162
- color: var(--ref-color-grey-80);
202
+ &:hover {
203
+ color: var(--ref-color-grey-80);
204
+ }
163
205
  }
164
206
 
165
- /* ============================================
166
- DROPDOWN PANEL
167
- ============================================ */
207
+ // ============================================
208
+ // DROPDOWN PANEL
209
+ // ============================================
168
210
 
169
211
  .ap-select-dropdown {
170
212
  position: absolute;
@@ -180,15 +222,15 @@
180
222
  overflow: hidden;
181
223
  }
182
224
 
183
- /* Dropdown scrollable area */
225
+ // Dropdown scrollable area
184
226
  .ap-select-options {
185
227
  max-height: 280px;
186
228
  overflow-y: auto;
187
229
  }
188
230
 
189
- /* ============================================
190
- SEARCH BAR
191
- ============================================ */
231
+ // ============================================
232
+ // SEARCH BAR
233
+ // ============================================
192
234
 
193
235
  .ap-select-search {
194
236
  display: flex;
@@ -208,10 +250,10 @@
208
250
  font-size: var(--sys-text-style-body-size);
209
251
  color: var(--ref-color-grey-100);
210
252
  padding: var(--ref-spacing-xxs) 0;
211
- }
212
253
 
213
- .ap-select-search-input::placeholder {
214
- color: var(--ref-color-grey-60);
254
+ &::placeholder {
255
+ color: var(--ref-color-grey-60);
256
+ }
215
257
  }
216
258
 
217
259
  .ap-select-search-icon {
@@ -221,9 +263,9 @@
221
263
  flex-shrink: 0;
222
264
  }
223
265
 
224
- /* ============================================
225
- SELECT ALL CHECKBOX
226
- ============================================ */
266
+ // ============================================
267
+ // SELECT ALL CHECKBOX
268
+ // ============================================
227
269
 
228
270
  .ap-select-all {
229
271
  display: flex;
@@ -233,9 +275,9 @@
233
275
  height: var(--comp-select-one-line-height);
234
276
  }
235
277
 
236
- /* ============================================
237
- OPTION - ONE LINE
238
- ============================================ */
278
+ // ============================================
279
+ // OPTION - ONE LINE
280
+ // ============================================
239
281
 
240
282
  .ap-select-option {
241
283
  display: flex;
@@ -252,52 +294,83 @@
252
294
  cursor: pointer;
253
295
  box-sizing: border-box;
254
296
  transition: background-color 0.1s ease;
255
- }
256
-
257
- .ap-select-option:hover:not(.disabled) {
258
- background-color: var(--ref-color-electric-blue-10);
259
- }
260
-
261
- .ap-select-option:active:not(.disabled) {
262
- background-color: var(--ref-color-electric-blue-20);
263
- }
264
-
265
- /* Selected state (single select) */
266
- .ap-select-option.selected {
267
- background-color: var(--ref-color-electric-blue-10);
268
- color: var(--ref-color-electric-blue-150);
269
- font-family: var(--comp-select-one-line-selected-text-font-family);
270
- font-size: var(--comp-select-one-line-selected-text-size);
271
- font-weight: var(--comp-select-one-line-selected-text-font-weight);
272
- line-height: var(--comp-select-one-line-selected-text-line-height);
273
- }
274
-
275
- .ap-select-option.selected .ap-select-option-icon {
276
- color: var(--ref-color-electric-blue-150);
277
- }
278
297
 
279
- /* Marked/focused state (keyboard navigation) */
280
- .ap-select-option.marked:not(.selected) {
281
- background-color: var(--ref-color-electric-blue-10);
282
- }
283
-
284
- /* Disabled state */
285
- .ap-select-option.disabled {
286
- color: var(--ref-color-grey-40);
287
- cursor: default;
288
- position: relative;
289
- }
290
-
291
- .ap-select-option.disabled::after {
292
- content: '';
293
- position: absolute;
294
- inset: 0;
295
- background-color: var(--ref-color-white);
296
- opacity: 0.6;
297
- pointer-events: none;
298
- }
299
-
300
- /* Option icon (avatar placeholder or symbol) */
298
+ &:hover:not(.disabled) {
299
+ background-color: var(--ref-color-electric-blue-10);
300
+ }
301
+
302
+ &:active:not(.disabled) {
303
+ background-color: var(--ref-color-electric-blue-20);
304
+ }
305
+
306
+ // Selected state (single select)
307
+ &.selected {
308
+ background-color: var(--ref-color-electric-blue-10);
309
+ color: var(--ref-color-electric-blue-150);
310
+ font-family: var(--comp-select-one-line-selected-text-font-family);
311
+ font-size: var(--comp-select-one-line-selected-text-size);
312
+ font-weight: var(--comp-select-one-line-selected-text-font-weight);
313
+ line-height: var(--comp-select-one-line-selected-text-line-height);
314
+
315
+ .ap-select-option-icon {
316
+ color: var(--ref-color-electric-blue-150);
317
+ }
318
+ }
319
+
320
+ // Marked/focused state (keyboard navigation)
321
+ &.marked:not(.selected) {
322
+ background-color: var(--ref-color-electric-blue-10);
323
+ }
324
+
325
+ // Disabled state
326
+ &.disabled {
327
+ color: var(--ref-color-grey-40);
328
+ cursor: default;
329
+ position: relative;
330
+
331
+ &::after {
332
+ content: '';
333
+ position: absolute;
334
+ inset: 0;
335
+ background-color: var(--ref-color-white);
336
+ opacity: 0.6;
337
+ pointer-events: none;
338
+ }
339
+ }
340
+
341
+ // Two lines variant
342
+ &.two-lines {
343
+ flex-direction: row;
344
+ align-items: flex-start;
345
+ min-height: var(--comp-select-two-line-height);
346
+ padding: var(--comp-select-two-line-padding-vertical) var(--comp-select-one-line-padding-horizontal);
347
+
348
+ &.selected {
349
+ .ap-select-option-title {
350
+ color: var(--ref-color-electric-blue-150);
351
+ }
352
+
353
+ .ap-select-option-caption {
354
+ color: var(--ref-color-electric-blue-100);
355
+ }
356
+ }
357
+ }
358
+
359
+ // Feature locked option
360
+ &.feature-locked {
361
+ cursor: pointer;
362
+
363
+ &:hover {
364
+ background-color: var(--ref-color-purple-10);
365
+ }
366
+
367
+ &:active {
368
+ background-color: var(--ref-color-purple-20);
369
+ }
370
+ }
371
+ }
372
+
373
+ // Option icon
301
374
  .ap-select-option-icon {
302
375
  width: 16px;
303
376
  height: 16px;
@@ -306,7 +379,7 @@
306
379
  color: var(--comp-select-one-line-text-color);
307
380
  }
308
381
 
309
- /* Option avatar */
382
+ // Option avatar
310
383
  .ap-select-option-avatar {
311
384
  width: 24px;
312
385
  height: 24px;
@@ -314,21 +387,19 @@
314
387
  border-radius: 100%;
315
388
  object-fit: cover;
316
389
  flex-shrink: 0;
317
- }
318
390
 
319
- .ap-select-option-avatar.square {
320
- border-radius: var(--ref-border-radius-xs);
391
+ &.square {
392
+ border-radius: var(--ref-border-radius-xs);
393
+ }
321
394
  }
322
395
 
323
- /* Option text */
396
+ // Option text
324
397
  .ap-select-option-text {
325
398
  flex: 1;
326
- overflow: hidden;
327
- white-space: nowrap;
328
- text-overflow: ellipsis;
399
+ @include m.truncate;
329
400
  }
330
401
 
331
- /* Option badge */
402
+ // Option badge
332
403
  .ap-select-option-badge {
333
404
  padding: 2px 6px;
334
405
  border-radius: var(--ref-border-radius-xs);
@@ -339,7 +410,7 @@
339
410
  flex-shrink: 0;
340
411
  }
341
412
 
342
- /* Checkbox for multiple select */
413
+ // Checkbox for multiple select
343
414
  .ap-select-option-checkbox {
344
415
  width: 16px;
345
416
  height: 16px;
@@ -347,7 +418,7 @@
347
418
  flex-shrink: 0;
348
419
  }
349
420
 
350
- /* Selected checkmark icon */
421
+ // Selected checkmark icon
351
422
  .ap-select-option-check {
352
423
  width: 16px;
353
424
  height: 16px;
@@ -357,16 +428,9 @@
357
428
  margin-left: auto;
358
429
  }
359
430
 
360
- /* ============================================
361
- OPTION - TWO LINES
362
- ============================================ */
363
-
364
- .ap-select-option.two-lines {
365
- flex-direction: row;
366
- align-items: flex-start;
367
- min-height: var(--comp-select-two-line-height);
368
- padding: var(--comp-select-two-line-padding-vertical) var(--comp-select-one-line-padding-horizontal);
369
- }
431
+ // ============================================
432
+ // OPTION CONTENT (TWO LINES)
433
+ // ============================================
370
434
 
371
435
  .ap-select-option-content {
372
436
  display: flex;
@@ -382,9 +446,7 @@
382
446
  font-weight: var(--comp-select-two-line-title-text-font-weight);
383
447
  line-height: var(--comp-select-two-line-title-text-line-height);
384
448
  color: var(--comp-select-two-line-title-text-color);
385
- overflow: hidden;
386
- white-space: nowrap;
387
- text-overflow: ellipsis;
449
+ @include m.truncate;
388
450
  }
389
451
 
390
452
  .ap-select-option-caption {
@@ -393,23 +455,12 @@
393
455
  font-weight: var(--comp-select-two-line-caption-text-font-weight);
394
456
  line-height: var(--comp-select-two-line-caption-text-line-height);
395
457
  color: var(--comp-select-two-line-caption-text-color);
396
- overflow: hidden;
397
- white-space: nowrap;
398
- text-overflow: ellipsis;
458
+ @include m.truncate;
399
459
  }
400
460
 
401
- /* Two-line selected state */
402
- .ap-select-option.two-lines.selected .ap-select-option-title {
403
- color: var(--ref-color-electric-blue-150);
404
- }
405
-
406
- .ap-select-option.two-lines.selected .ap-select-option-caption {
407
- color: var(--ref-color-electric-blue-100);
408
- }
409
-
410
- /* ============================================
411
- OPTION GROUP
412
- ============================================ */
461
+ // ============================================
462
+ // OPTION GROUP
463
+ // ============================================
413
464
 
414
465
  .ap-select-group {
415
466
  display: flex;
@@ -420,10 +471,10 @@
420
471
  border-top: 1px solid var(--comp-select-group-border-top-color);
421
472
  min-height: 32px;
422
473
  box-sizing: border-box;
423
- }
424
474
 
425
- .ap-select-group:first-child {
426
- border-top: none;
475
+ &:first-child {
476
+ border-top: none;
477
+ }
427
478
  }
428
479
 
429
480
  .ap-select-group-label {
@@ -434,9 +485,9 @@
434
485
  color: var(--comp-select-group-text-color);
435
486
  }
436
487
 
437
- /* ============================================
438
- DIVIDER
439
- ============================================ */
488
+ // ============================================
489
+ // DIVIDER
490
+ // ============================================
440
491
 
441
492
  .ap-select-divider {
442
493
  width: 100%;
@@ -445,9 +496,9 @@
445
496
  margin: var(--ref-spacing-xxs) 0;
446
497
  }
447
498
 
448
- /* ============================================
449
- NOT FOUND / EMPTY STATE
450
- ============================================ */
499
+ // ============================================
500
+ // NOT FOUND / EMPTY STATE
501
+ // ============================================
451
502
 
452
503
  .ap-select-not-found {
453
504
  display: flex;
@@ -459,9 +510,9 @@
459
510
  font-size: var(--sys-text-style-body-size);
460
511
  }
461
512
 
462
- /* ============================================
463
- LOADING STATE
464
- ============================================ */
513
+ // ============================================
514
+ // LOADING STATE
515
+ // ============================================
465
516
 
466
517
  .ap-select-loading {
467
518
  display: flex;
@@ -481,9 +532,9 @@
481
532
  color: var(--ref-color-grey-80);
482
533
  }
483
534
 
484
- /* ============================================
485
- FOOTER / CREATE NEW
486
- ============================================ */
535
+ // ============================================
536
+ // FOOTER / CREATE NEW
537
+ // ============================================
487
538
 
488
539
  .ap-select-footer {
489
540
  padding: 0;
@@ -507,14 +558,14 @@
507
558
  line-height: var(--ref-font-line-height-sm);
508
559
  cursor: pointer;
509
560
  text-align: left;
510
- }
511
561
 
512
- .ap-select-create:hover {
513
- color: var(--ref-color-electric-blue-100);
514
- }
562
+ &:hover {
563
+ color: var(--ref-color-electric-blue-100);
564
+ }
515
565
 
516
- .ap-select-create:active {
517
- color: var(--ref-color-electric-blue-150);
566
+ &:active {
567
+ color: var(--ref-color-electric-blue-150);
568
+ }
518
569
  }
519
570
 
520
571
  .ap-select-create-icon {
@@ -523,21 +574,9 @@
523
574
  flex-shrink: 0;
524
575
  }
525
576
 
526
- /* ============================================
527
- FEATURE LOCKED OPTION
528
- ============================================ */
529
-
530
- .ap-select-option.feature-locked {
531
- cursor: pointer;
532
- }
533
-
534
- .ap-select-option.feature-locked:hover {
535
- background-color: var(--ref-color-purple-10);
536
- }
537
-
538
- .ap-select-option.feature-locked:active {
539
- background-color: var(--ref-color-purple-20);
540
- }
577
+ // ============================================
578
+ // FEATURE LOCKED ICON
579
+ // ============================================
541
580
 
542
581
  .ap-select-locked-icon {
543
582
  width: 16px;
@@ -546,9 +585,9 @@
546
585
  flex-shrink: 0;
547
586
  }
548
587
 
549
- /* ============================================
550
- MULTIPLE SELECT - SELECTED LABELS/TAGS
551
- ============================================ */
588
+ // ============================================
589
+ // MULTIPLE SELECT - SELECTED LABELS/TAGS
590
+ // ============================================
552
591
 
553
592
  .ap-select-labels {
554
593
  display: flex;
@@ -558,59 +597,15 @@
558
597
  overflow: hidden;
559
598
  }
560
599
 
561
- /* Context-specific overrides for labels within select trigger */
562
- .ap-select-trigger .ap-label {
563
- height: 20px;
564
- padding: 0 var(--ref-spacing-xxs);
565
- }
566
-
567
- .ap-select-trigger .ap-label.removable {
568
- padding: 0 2px 0 var(--ref-spacing-xxs);
569
- }
570
-
571
- .ap-select-trigger .ap-label-content {
572
- font-size: var(--ref-font-size-sm);
573
- line-height: var(--ref-font-line-height-sm);
574
- }
575
-
576
- .ap-select-trigger .ap-label-close {
577
- width: 16px;
578
- height: 16px;
579
- min-width: 16px;
580
- }
581
-
582
- /* Context-specific overrides for tags within select trigger */
583
- .ap-select-trigger .ap-tag {
584
- height: 20px;
585
- padding: 0 var(--ref-spacing-xxs);
586
- }
587
-
588
- .ap-select-trigger .ap-tag.clearable {
589
- padding: 0 2px 0 var(--ref-spacing-xxs);
590
- }
591
-
592
- .ap-select-trigger .ap-tag-text {
593
- font-size: var(--ref-font-size-sm);
594
- line-height: var(--ref-font-line-height-sm);
595
- }
596
-
597
- .ap-select-trigger .ap-tag-button {
598
- width: 16px;
599
- height: 16px;
600
- min-width: 16px;
601
- max-width: 16px;
602
- max-height: 16px;
603
- }
604
-
605
600
  .ap-select-label-count {
606
601
  font-size: var(--ref-font-size-sm);
607
602
  color: var(--ref-color-grey-80);
608
603
  white-space: nowrap;
609
604
  }
610
605
 
611
- /* ============================================
612
- NATIVE SELECT (FALLBACK)
613
- ============================================ */
606
+ // ============================================
607
+ // NATIVE SELECT (FALLBACK)
608
+ // ============================================
614
609
 
615
610
  .ap-native-select {
616
611
  width: 100%;
@@ -619,46 +614,43 @@
619
614
  border: 1px solid var(--ref-color-grey-20);
620
615
  border-radius: var(--ref-border-radius-sm);
621
616
  background-color: var(--ref-color-white);
622
- font-family: var(--sys-text-style-body-font-family);
623
- font-size: var(--sys-text-style-body-size);
624
- font-weight: var(--sys-text-style-body-weight);
625
- line-height: var(--sys-text-style-body-line-height);
617
+ @include m.text-style('body');
626
618
  color: var(--ref-color-grey-100);
627
619
  cursor: pointer;
628
620
  appearance: none;
629
621
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%235D6A82' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
630
622
  background-repeat: no-repeat;
631
623
  background-position: right var(--ref-spacing-xs) center;
632
- }
633
624
 
634
- .ap-native-select:hover:not(:disabled) {
635
- border-color: var(--ref-color-grey-40);
636
- }
637
-
638
- .ap-native-select:focus {
639
- outline: none;
640
- border-color: var(--ref-color-electric-blue-100);
641
- }
642
-
643
- .ap-native-select:disabled {
644
- background-color: var(--ref-color-grey-20);
645
- border-color: var(--ref-color-grey-20);
646
- color: var(--ref-color-grey-60);
647
- cursor: default;
648
- }
649
-
650
- .ap-native-select.valid {
651
- border-color: var(--comp-input-border-success-color);
652
- }
653
-
654
- .ap-native-select.invalid {
655
- border-color: var(--comp-input-border-error-color);
656
- }
657
-
658
- .ap-native-select option {
659
- padding: var(--ref-spacing-xxs);
660
- }
661
-
662
- .ap-native-select optgroup {
663
- font-weight: var(--comp-select-group-text-font-weight);
625
+ &:hover:not(:disabled) {
626
+ border-color: var(--ref-color-grey-40);
627
+ }
628
+
629
+ &:focus {
630
+ outline: none;
631
+ border-color: var(--ref-color-electric-blue-100);
632
+ }
633
+
634
+ &:disabled {
635
+ background-color: var(--ref-color-grey-20);
636
+ border-color: var(--ref-color-grey-20);
637
+ color: var(--ref-color-grey-60);
638
+ cursor: default;
639
+ }
640
+
641
+ &.valid {
642
+ border-color: var(--comp-input-border-success-color);
643
+ }
644
+
645
+ &.invalid {
646
+ border-color: var(--comp-input-border-error-color);
647
+ }
648
+
649
+ option {
650
+ padding: var(--ref-spacing-xxs);
651
+ }
652
+
653
+ optgroup {
654
+ font-weight: var(--comp-select-group-text-font-weight);
655
+ }
664
656
  }