@keenmate/web-multiselect 1.5.1 → 1.6.1

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.
@@ -1,612 +0,0 @@
1
- // ==============================================================================
2
- // CSS CUSTOM PROPERTIES (:host level)
3
- // ==============================================================================
4
- // This file defines all CSS custom properties at the :host level, making them:
5
- // - Inspectable in browser DevTools
6
- // - Overridable from outside Shadow DOM
7
- // - Self-documenting in compiled CSS
8
- //
9
- // All variables use SCSS variable fallbacks for reliability.
10
- // External overrides will take precedence over these defaults.
11
- //
12
- // Usage from outside Shadow DOM:
13
- // multi-select {
14
- // --ms-accent-color: #10b981;
15
- // --ms-input-border-radius: 0.5rem;
16
- // }
17
- // ==============================================================================
18
-
19
- @use 'variables' as *;
20
-
21
- :host {
22
- // ==========================================================================
23
- // BASE SIZING UNIT
24
- // ==========================================================================
25
- // All sizing values are based on this unit for consistent scaling.
26
- // Default: 10px produces standard pixel values
27
- // Pure Admin: Set to 1rem (inherits from html { font-size: 10px })
28
- // Custom: Set to any value to scale all sizes proportionally
29
- --ms-rem: 10px;
30
-
31
- // ==========================================================================
32
- // FONT FAMILY (set at :host so all shadow DOM content inherits)
33
- // ==========================================================================
34
- // Dropdown/popover are siblings of [data-multiselect], so we set font here
35
- font-family: var(--ms-font-family, var(--base-font-family, #{$ms-font-family}));
36
-
37
- // ==========================================================================
38
- // COLORS & THEME
39
- // ==========================================================================
40
-
41
- // Accent Colors
42
- --ms-accent-color: #{$ms-accent-color};
43
- --ms-accent-color-hover: #{$ms-accent-color-hover};
44
- --ms-accent-color-active: #{$ms-accent-color-active};
45
-
46
- // Text Colors
47
- --ms-text-primary: #{$ms-text-primary};
48
- --ms-text-secondary: #{$ms-text-secondary};
49
- --ms-text-on-accent: #{$ms-text-on-accent};
50
-
51
- // Background Colors
52
- --ms-primary-bg: #{$ms-primary-bg};
53
- --ms-primary-bg-hover: #{$ms-primary-bg-hover};
54
- --ms-border-color: #{$ms-border-color};
55
-
56
- // ==========================================================================
57
- // SEMANTIC VARIABLES - Component-Specific Theming
58
- // ==========================================================================
59
- // These provide an intermediate layer between base colors and components,
60
- // allowing independent customization of each component without affecting others.
61
- // Users can override these to customize specific components while keeping
62
- // the base theme intact.
63
- //
64
- // Pattern: --ms-{component}-{property}-{state}
65
- // Example: --ms-input-background, --ms-option-text-color-hover
66
- // ==========================================================================
67
-
68
- // Input Component Semantic Variables
69
- // --------------------------------------------------------------------------
70
- --ms-input-background: var(--ms-input-bg);
71
- --ms-input-color: var(--ms-text-primary);
72
- --ms-input-border-color: var(--ms-border-color);
73
- --ms-input-border-color-hover: var(--ms-text-secondary);
74
- --ms-input-border-color-focus: var(--ms-accent-color);
75
- --ms-input-placeholder-color: var(--ms-text-secondary);
76
- --ms-input-background-disabled: var(--ms-input-bg-disabled);
77
-
78
- // Toggle Icon Semantic Variables
79
- // --------------------------------------------------------------------------
80
- --ms-toggle-icon-color: var(--ms-text-secondary);
81
- --ms-toggle-icon-color-open: var(--ms-text-secondary);
82
-
83
- // Counter Badge (in Input) Semantic Variables
84
- // --------------------------------------------------------------------------
85
- --ms-counter-badge-background: var(--ms-accent-color);
86
- --ms-counter-badge-background-hover: var(--ms-accent-color-hover);
87
- --ms-counter-badge-color: var(--ms-text-on-accent);
88
-
89
- // Floating Hint Semantic Variables
90
- // --------------------------------------------------------------------------
91
- --ms-hint-background: var(--ms-hint-bg);
92
- --ms-hint-color: var(--ms-text-secondary);
93
- --ms-hint-border-color: var(--ms-border-color);
94
-
95
- // Dropdown Semantic Variables
96
- // --------------------------------------------------------------------------
97
- --ms-dropdown-background: var(--ms-dropdown-bg);
98
- --ms-dropdown-text-color: var(--ms-text-primary);
99
- --ms-dropdown-border-color: var(--ms-border-color);
100
-
101
- // Dropdown Actions Semantic Variables
102
- // --------------------------------------------------------------------------
103
- --ms-actions-background: var(--ms-dropdown-bg);
104
- --ms-actions-border-color: var(--ms-border-color);
105
-
106
- // Action Button Semantic Variables
107
- // --------------------------------------------------------------------------
108
- --ms-action-button-background: transparent;
109
- --ms-action-button-background-hover: var(--ms-primary-bg);
110
- --ms-action-button-border-color: var(--ms-border-color);
111
- --ms-action-button-border-color-hover: var(--ms-accent-color);
112
- --ms-action-button-color: var(--ms-text-primary);
113
-
114
- // Group Semantic Variables
115
- // --------------------------------------------------------------------------
116
- --ms-group-border-color: var(--ms-border-color);
117
- --ms-group-label-color: var(--ms-text-secondary);
118
-
119
- // Option Semantic Variables
120
- // --------------------------------------------------------------------------
121
- --ms-option-text-color: var(--ms-text-primary);
122
- --ms-option-background: transparent;
123
- --ms-option-background-hover: var(--ms-primary-bg);
124
- --ms-option-color-hover: inherit;
125
- --ms-option-background-focused: var(--ms-primary-bg);
126
- --ms-option-color-focused: inherit;
127
- --ms-option-outline-color-focused: var(--ms-accent-color);
128
- --ms-option-background-selected: var(--ms-option-bg-selected);
129
- --ms-option-color-selected: inherit;
130
- --ms-option-color-selected-hover: var(--ms-option-color-selected);
131
- --ms-option-background-matched: var(--ms-option-bg-matched);
132
- --ms-option-color-matched: inherit;
133
- --ms-option-border-matched-color: var(--ms-option-border-matched);
134
-
135
- // Option Content Semantic Variables
136
- // --------------------------------------------------------------------------
137
- --ms-option-title-color: var(--ms-text-primary);
138
- --ms-option-subtitle-color: var(--ms-text-secondary);
139
- --ms-option-mark-background: var(--ms-option-mark-bg);
140
- --ms-option-mark-color: inherit;
141
-
142
- // Empty/Loading State Semantic Variables
143
- // --------------------------------------------------------------------------
144
- --ms-empty-color: var(--ms-text-secondary);
145
- --ms-loading-color: var(--ms-text-secondary);
146
-
147
- // Badge Semantic Variables
148
- // --------------------------------------------------------------------------
149
- --ms-badge-background: var(--ms-badge-bg);
150
- --ms-badge-background-hover: var(--ms-badge-bg-hover);
151
- --ms-badge-background-active: var(--ms-badge-bg-active);
152
-
153
- // Badge Text Semantic Variables
154
- // --------------------------------------------------------------------------
155
- --ms-badge-text-background: var(--ms-badge-text-bg);
156
- --ms-badge-text-color: var(--ms-accent-color);
157
- --ms-badge-text-background-hover: var(--ms-badge-bg-hover);
158
- --ms-badge-text-color-hover: var(--ms-badge-text-color);
159
-
160
- // Badge Remove Button Semantic Variables
161
- // --------------------------------------------------------------------------
162
- --ms-badge-remove-background: var(--ms-accent-color);
163
- --ms-badge-remove-background-hover: var(--ms-accent-color-hover);
164
- --ms-badge-remove-color: var(--ms-text-on-accent);
165
-
166
- // Badge Counter Variant Semantic Variables
167
- // --------------------------------------------------------------------------
168
- --ms-badge-counter-border-color: var(--ms-border-color);
169
- --ms-badge-counter-text-background: var(--ms-badge-counter-text-bg);
170
- --ms-badge-counter-text-color: var(--ms-text-secondary);
171
- --ms-badge-counter-remove-background: var(--ms-badge-counter-remove-bg);
172
- --ms-badge-counter-remove-background-hover: var(--ms-badge-counter-remove-bg-hover);
173
- --ms-badge-counter-remove-color: var(--ms-badge-counter-remove-color);
174
-
175
- // Count Display Semantic Variables
176
- // --------------------------------------------------------------------------
177
- --ms-counter-wrapper-background: transparent;
178
- --ms-counter-wrapper-background-hover: var(--ms-primary-bg);
179
- --ms-counter-wrapper-border-color: var(--ms-border-color);
180
- --ms-counter-wrapper-border-color-hover: var(--ms-accent-color);
181
- --ms-count-text-color: var(--ms-text-primary);
182
- --ms-count-clear-background: transparent;
183
- --ms-count-clear-background-hover: var(--ms-accent-color);
184
- --ms-count-clear-color: var(--ms-text-secondary);
185
- --ms-count-clear-color-hover: var(--ms-accent-color);
186
-
187
- // Tooltip Semantic Variables
188
- // --------------------------------------------------------------------------
189
- --ms-tooltip-background: var(--ms-tooltip-bg);
190
- --ms-tooltip-text-color: var(--ms-tooltip-color);
191
-
192
- // Selected Popover Semantic Variables
193
- // --------------------------------------------------------------------------
194
- --ms-selected-popover-background: var(--ms-dropdown-bg);
195
- --ms-selected-popover-border-color: var(--ms-border-color);
196
- --ms-selected-popover-header-background: var(--ms-selected-popover-header-bg);
197
- --ms-selected-popover-header-color: var(--ms-text-primary);
198
- --ms-selected-popover-header-border-color: var(--ms-border-color);
199
- --ms-selected-popover-close-background: transparent;
200
- --ms-selected-popover-close-background-hover: var(--ms-accent-color);
201
- --ms-selected-popover-close-color: var(--ms-text-secondary);
202
- --ms-selected-popover-close-color-hover: var(--ms-accent-color);
203
-
204
- // ==========================================================================
205
- // INPUT COMPONENT
206
- // ==========================================================================
207
-
208
- --ms-input-padding: #{$ms-input-padding};
209
- --ms-input-padding-right: #{$ms-input-padding-right};
210
- --ms-input-height: #{$ms-input-height};
211
- --ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));
212
- --ms-input-border-style: #{$ms-input-border-style};
213
- --ms-input-border-radius: #{$ms-input-border-radius};
214
- --ms-input-bg: #{$ms-input-bg};
215
- --ms-input-text: #{$ms-input-text};
216
- --ms-input-focus-border-color: #{$ms-input-focus-border-color};
217
- --ms-input-placeholder-color: #{$ms-input-placeholder-color};
218
- --ms-input-bg-disabled: #{$ms-input-bg-disabled};
219
-
220
- // ==========================================================================
221
- // TOGGLE ICON
222
- // ==========================================================================
223
-
224
- --ms-toggle-right: #{$ms-toggle-right};
225
- --ms-toggle-color: #{$ms-toggle-color};
226
- --ms-transform-center-y: #{$ms-transform-center-y};
227
- --ms-transform-rotate-180: #{$ms-transform-rotate-180};
228
-
229
- // ==========================================================================
230
- // COUNT BADGE (in input)
231
- // ==========================================================================
232
-
233
- --ms-counter-offset: #{$ms-counter-offset};
234
- --ms-counter-padding: #{$ms-counter-padding};
235
- --ms-counter-bg: #{$ms-counter-bg};
236
- --ms-counter-color: #{$ms-counter-color};
237
- --ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));
238
- --ms-counter-font-weight: var(--base-font-weight-semibold, 600);
239
- --ms-counter-border-radius: #{$ms-counter-border-radius};
240
- --ms-counter-bg-hover: #{$ms-counter-bg-hover};
241
- --ms-transform-scale-hover: #{$ms-transform-scale-hover};
242
-
243
- // ==========================================================================
244
- // FLOATING HINT
245
- // ==========================================================================
246
-
247
- --ms-hint-padding: #{$ms-hint-padding};
248
- --ms-hint-bg: #{$ms-hint-bg};
249
- --ms-hint-border: #{$ms-hint-border};
250
- --ms-hint-border-radius: #{$ms-hint-border-radius};
251
- --ms-hint-box-shadow: #{$ms-hint-box-shadow};
252
- --ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));
253
- --ms-hint-color: #{$ms-hint-color};
254
-
255
- // ==========================================================================
256
- // DROPDOWN
257
- // ==========================================================================
258
-
259
- --ms-dropdown-bg: #{$ms-dropdown-bg};
260
- --ms-dropdown-border: #{$ms-dropdown-border};
261
- --ms-dropdown-border-radius: #{$ms-dropdown-border-radius};
262
- --ms-dropdown-box-shadow: #{$ms-dropdown-box-shadow};
263
- --ms-options-max-height: #{$ms-options-max-height};
264
- --ms-option-color: #{$ms-option-color};
265
- --ms-z-index-dropdown: #{$ms-z-index-dropdown};
266
- --ms-z-index-sticky: #{$ms-z-index-sticky};
267
-
268
- // ==========================================================================
269
- // DROPDOWN ACTIONS
270
- // ==========================================================================
271
-
272
- --ms-actions-gap: #{$ms-actions-gap};
273
- --ms-actions-padding: #{$ms-actions-padding};
274
- --ms-actions-border-bottom: #{$ms-actions-border-bottom};
275
- --ms-actions-bg: #{$ms-actions-bg};
276
-
277
- // Action Button
278
- --ms-action-btn-padding: #{$ms-action-btn-padding};
279
- --ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));
280
- --ms-action-btn-border: #{$ms-action-btn-border};
281
- --ms-action-btn-border-radius: #{$ms-action-btn-border-radius};
282
- --ms-action-btn-bg: #{$ms-action-btn-bg};
283
- --ms-action-btn-color: #{$ms-action-btn-color};
284
- --ms-action-btn-bg-hover: #{$ms-action-btn-bg-hover};
285
- --ms-action-btn-border-color-hover: #{$ms-action-btn-border-color-hover};
286
- --ms-transform-scale-active: #{$ms-transform-scale-active};
287
-
288
- // ==========================================================================
289
- // OPTIONS CONTAINER & GROUPS
290
- // ==========================================================================
291
-
292
- --ms-options-padding: #{$ms-options-padding};
293
-
294
- // Group
295
- --ms-group-border-top: #{$ms-group-border-top};
296
- --ms-group-margin-top: #{$ms-group-margin-top};
297
- --ms-group-padding-top: #{$ms-group-padding-top};
298
-
299
- // Group Label
300
- --ms-group-label-padding: #{$ms-group-label-padding};
301
- --ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));
302
- --ms-group-label-font-weight: var(--base-font-weight-semibold, 600);
303
- --ms-group-label-color: #{$ms-group-label-color};
304
- --ms-group-label-transform: #{$ms-group-label-transform};
305
- --ms-group-label-letter-spacing: #{$ms-group-label-letter-spacing};
306
-
307
- // ==========================================================================
308
- // INDIVIDUAL OPTIONS
309
- // ==========================================================================
310
-
311
- --ms-option-gap: #{$ms-option-gap};
312
- --ms-option-padding: #{$ms-option-padding};
313
- --ms-option-padding-h: #{$ms-option-padding-h};
314
- --ms-option-bg: #{$ms-option-bg};
315
- --ms-option-bg-hover: #{$ms-option-bg-hover};
316
- --ms-option-bg-focused: #{$ms-option-bg-focused};
317
- --ms-option-outline-focused: #{$ms-option-outline-focused};
318
- --ms-option-focus-outline-offset: #{$ms-option-focus-outline-offset};
319
- --ms-option-bg-matched: #{$ms-option-bg-matched};
320
- --ms-option-border-matched: #{$ms-option-border-matched};
321
- --ms-option-bg-selected: #{$ms-option-bg-selected};
322
-
323
- // Option State Combinations (background only - colors use fallback chains)
324
- --ms-option-bg-focused-hover: #{$ms-option-bg-focused-hover};
325
- --ms-option-bg-matched-hover: #{$ms-option-bg-matched-hover};
326
- --ms-option-bg-selected-focused: #{$ms-option-bg-selected-focused};
327
- --ms-option-bg-selected-matched: #{$ms-option-bg-selected-matched};
328
- --ms-option-bg-disabled-selected: #{$ms-option-bg-disabled-selected};
329
-
330
- --ms-disabled-opacity: #{$ms-disabled-opacity};
331
-
332
- // ==========================================================================
333
- // OPTION CONTENT
334
- // ==========================================================================
335
-
336
- --ms-option-content-gap: #{$ms-option-content-gap};
337
-
338
- // Option Icon
339
- --ms-option-icon-size: #{$ms-option-icon-size};
340
- --ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));
341
-
342
- // Option Title
343
- --ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));
344
- --ms-option-title-color: #{$ms-option-title-color};
345
- --ms-option-mark-bg: #{$ms-option-mark-bg};
346
- --ms-option-mark-color: #{$ms-option-mark-color};
347
- --ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);
348
-
349
- // Option Subtitle
350
- --ms-option-subtitle-margin-top: #{$ms-option-subtitle-margin-top};
351
- --ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));
352
- --ms-option-subtitle-color: #{$ms-option-subtitle-color};
353
- --ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);
354
-
355
- // Checkbox
356
- --ms-checkbox-margin-top: #{$ms-checkbox-margin-top};
357
- --ms-checkbox-margin-right: #{$ms-checkbox-margin-right};
358
- --ms-checkbox-margin-bottom: #{$ms-checkbox-margin-bottom};
359
- --ms-checkbox-margin-left: #{$ms-checkbox-margin-left};
360
- --ms-checkbox-size: #{$ms-checkbox-size};
361
- --ms-checkbox-scale: #{$ms-checkbox-scale};
362
- --ms-checkbox-align: center; // flex-start (top), center (default), flex-end (bottom)
363
-
364
- // Checkbox Styling (custom appearance)
365
- --ms-checkbox-bg: #{$ms-checkbox-bg};
366
- --ms-checkbox-border: #{$ms-checkbox-border};
367
- --ms-checkbox-border-radius: #{$ms-checkbox-border-radius};
368
- --ms-checkbox-checked-bg: #{$ms-checkbox-checked-bg};
369
- --ms-checkbox-checked-border: #{$ms-checkbox-checked-border};
370
- --ms-checkbox-checkmark-color: #{$ms-checkbox-checkmark-color};
371
- --ms-checkbox-hover-border-color: #{$ms-checkbox-hover-border-color};
372
- --ms-checkbox-disabled-bg: #{$ms-checkbox-disabled-bg};
373
- --ms-checkbox-disabled-border: #{$ms-checkbox-disabled-border};
374
-
375
- // Checkbox State Combinations
376
- --ms-checkbox-checked-bg-hover: #{$ms-checkbox-checked-bg-hover};
377
- --ms-checkbox-checked-border-color-hover: #{$ms-checkbox-checked-border-color-hover};
378
-
379
- // ==========================================================================
380
- // EMPTY & LOADING STATES
381
- // ==========================================================================
382
-
383
- // Empty State
384
- --ms-empty-padding: #{$ms-empty-padding};
385
- --ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));
386
- --ms-empty-color: #{$ms-empty-color};
387
-
388
- // Loader
389
- --ms-loader-padding: #{$ms-loader-padding};
390
- --ms-loader-gap: #{$ms-loader-gap};
391
-
392
- // Loading Text
393
- --ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));
394
- --ms-loading-text-color: #{$ms-loading-text-color};
395
-
396
- // ==========================================================================
397
- // BADGES DISPLAY
398
- // ==========================================================================
399
-
400
- --ms-badges-gap: #{$ms-badges-gap};
401
- --ms-badges-margin-bottom: #{$ms-badges-margin-bottom};
402
- --ms-badges-margin-top: #{$ms-badges-margin-top};
403
- --ms-badges-margin-left: #{$ms-badges-margin-left};
404
- --ms-badges-margin-right: #{$ms-badges-margin-right};
405
-
406
- // Individual Badge
407
- --ms-badge-gap: #{$ms-badge-gap};
408
- --ms-badge-height: #{$ms-badge-height};
409
- --ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));
410
- --ms-badge-font-weight: var(--base-font-weight-semibold, 600);
411
- --ms-badge-border-radius: #{$ms-badge-border-radius};
412
- --ms-badge-bg: #{$ms-badge-bg};
413
- --ms-badge-bg-hover: #{$ms-badge-bg-hover};
414
- --ms-badge-bg-active: #{$ms-badge-bg-active};
415
- --ms-order-first: #{$ms-order-first};
416
-
417
- // ==========================================================================
418
- // BADGE TEXT & REMOVE BUTTON
419
- // ==========================================================================
420
-
421
- // Badge Text
422
- --ms-badge-text-padding: #{$ms-badge-text-padding};
423
- --ms-badge-text-bg: #{$ms-badge-text-bg};
424
- --ms-badge-text-color: #{$ms-badge-text-color};
425
- --ms-badge-text-border: #{$ms-badge-text-border};
426
-
427
- // Badge Remove Button
428
- --ms-badge-remove-width: #{$ms-badge-remove-width};
429
- --ms-badge-remove-bg: #{$ms-badge-remove-bg};
430
- --ms-badge-remove-color: #{$ms-badge-remove-color};
431
- --ms-badge-remove-border: #{$ms-badge-remove-border};
432
- --ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));
433
- --ms-badge-remove-bg-hover: #{$ms-badge-remove-bg-hover};
434
- --ms-badge-remove-box-shadow-focus: #{$ms-badge-remove-box-shadow-focus};
435
- --ms-icon-remove: "#{$ms-icon-remove}";
436
-
437
- // Badge Indicator (for "+ X more", "3 selected", compact mode)
438
- --ms-badge-counter-bg: #{$ms-badge-counter-bg};
439
- --ms-badge-counter-border: #{$ms-badge-counter-border};
440
- --ms-badge-counter-border-radius: #{$ms-badge-counter-border-radius};
441
- --ms-badge-counter-text-color: #{$ms-badge-counter-text-color};
442
- --ms-badge-counter-text-bg: #{$ms-badge-counter-text-bg};
443
- --ms-badge-counter-remove-bg: #{$ms-badge-counter-remove-bg};
444
- --ms-badge-counter-remove-color: #{$ms-badge-counter-remove-color};
445
- --ms-badge-counter-remove-bg-hover: #{$ms-badge-counter-remove-bg-hover};
446
-
447
- // ==========================================================================
448
- // "+X MORE" BADGE
449
- // ==========================================================================
450
-
451
- --ms-more-badge-bg: #{$ms-more-badge-bg};
452
- --ms-more-badge-hover-bg: #{$ms-more-badge-hover-bg};
453
- --ms-more-badge-active-bg: #{$ms-more-badge-active-bg};
454
-
455
- // ==========================================================================
456
- // COUNT DISPLAY MODE
457
- // ==========================================================================
458
-
459
- --ms-count-display-margin-bottom: #{$ms-count-display-margin-bottom};
460
- --ms-count-display-margin-top: #{$ms-count-display-margin-top};
461
- --ms-count-display-margin-left: #{$ms-count-display-margin-left};
462
- --ms-count-display-margin-right: #{$ms-count-display-margin-right};
463
-
464
- // Count Badge Wrapper
465
- --ms-counter-wrapper-bg: #{$ms-counter-wrapper-bg};
466
- --ms-counter-wrapper-border: #{$ms-counter-wrapper-border};
467
- --ms-counter-wrapper-border-radius: #{$ms-counter-wrapper-border-radius};
468
- --ms-counter-wrapper-padding: #{$ms-counter-wrapper-padding};
469
- --ms-counter-wrapper-gap: #{$ms-counter-wrapper-gap};
470
- --ms-counter-wrapper-bg-hover: #{$ms-counter-wrapper-bg-hover};
471
- --ms-counter-wrapper-border-color-hover: #{$ms-counter-wrapper-border-color-hover};
472
-
473
- // ==========================================================================
474
- // COUNT TEXT & CLEAR BUTTON
475
- // ==========================================================================
476
-
477
- // Count Text
478
- --ms-count-text-bg: #{$ms-count-text-bg};
479
- --ms-count-text-border: #{$ms-count-text-border};
480
- --ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));
481
- --ms-count-text-color: #{$ms-count-text-color};
482
-
483
- // Count Clear Button
484
- --ms-count-clear-size: #{$ms-count-clear-size};
485
- --ms-count-clear-bg: #{$ms-count-clear-bg};
486
- --ms-count-clear-color: #{$ms-count-clear-color};
487
- --ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));
488
- --ms-count-clear-border-radius: #{$ms-count-clear-border-radius};
489
- --ms-count-clear-bg-hover: #{$ms-count-clear-bg-hover};
490
- --ms-count-clear-color-hover: #{$ms-count-clear-color-hover};
491
- --ms-icon-clear: "#{$ms-icon-clear}";
492
-
493
- // ==========================================================================
494
- // TOOLTIPS
495
- // ==========================================================================
496
-
497
- --ms-tooltip-bg: #{$ms-tooltip-bg};
498
- --ms-tooltip-color: #{$ms-tooltip-color};
499
- --ms-tooltip-padding: #{$ms-tooltip-padding};
500
- --ms-tooltip-border-radius: #{$ms-tooltip-border-radius};
501
- --ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));
502
- --ms-tooltip-max-width: #{$ms-tooltip-max-width};
503
- --ms-tooltip-shadow: #{$ms-tooltip-shadow};
504
- --ms-tooltip-z-index: #{$ms-tooltip-z-index};
505
-
506
- // ==========================================================================
507
- // SELECTED POPOVER
508
- // ==========================================================================
509
-
510
- --ms-z-index-popover: #{$ms-z-index-popover};
511
- --ms-selected-popover-width: #{$ms-selected-popover-width};
512
- --ms-selected-popover-max-height: #{$ms-selected-popover-max-height};
513
- --ms-selected-popover-bg: #{$ms-selected-popover-bg};
514
- --ms-selected-popover-border: #{$ms-selected-popover-border};
515
- --ms-selected-popover-border-radius: #{$ms-selected-popover-border-radius};
516
- --ms-selected-popover-box-shadow: #{$ms-selected-popover-box-shadow};
517
-
518
- // Popover Header
519
- --ms-selected-popover-header-padding: #{$ms-selected-popover-header-padding};
520
- --ms-selected-popover-header-bg: #{$ms-selected-popover-header-bg};
521
- --ms-selected-popover-header-border-bottom: #{$ms-selected-popover-header-border-bottom};
522
- --ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));
523
- --ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);
524
- --ms-selected-popover-header-color: #{$ms-selected-popover-header-color};
525
-
526
- // ==========================================================================
527
- // POPOVER CLOSE BUTTON
528
- // ==========================================================================
529
-
530
- --ms-popover-close-size: #{$ms-popover-close-size};
531
- --ms-selected-popover-close-bg: #{$ms-selected-popover-close-bg};
532
- --ms-selected-popover-close-color: #{$ms-selected-popover-close-color};
533
- --ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));
534
- --ms-selected-popover-close-border-radius: #{$ms-selected-popover-close-border-radius};
535
- --ms-selected-popover-close-bg-hover: #{$ms-selected-popover-close-bg-hover};
536
- --ms-selected-popover-close-color-hover: #{$ms-selected-popover-close-color-hover};
537
-
538
- // ==========================================================================
539
- // POPOVER BODY
540
- // ==========================================================================
541
-
542
- --ms-selected-popover-body-gap: #{$ms-selected-popover-body-gap};
543
- --ms-selected-popover-body-padding: #{$ms-selected-popover-body-padding};
544
- --ms-selected-popover-body-max-height: #{$ms-selected-popover-body-max-height};
545
-
546
- // ==========================================================================
547
- // TYPOGRAPHY SCALE
548
- // ==========================================================================
549
- // Typography variables follow this priority chain:
550
- // 1. --ms-* (component-specific override)
551
- // 2. --base-* (shared theme-designer value)
552
- // 3. Unitless default multiplied by --ms-rem
553
- //
554
- // Note: --ms-font-family is set directly on :host above (not as a variable)
555
- // because it needs to be applied, not just defined.
556
- //
557
- // Font sizes use unitless multipliers from theme-designer:
558
- // Theme-designer outputs: --base-font-size-sm: 1.4 (unitless)
559
- // Component computes: calc(1.4 * var(--ms-rem)) = 14px
560
-
561
- // Font Sizes (unitless multipliers × --ms-rem)
562
- --ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem)); // 10px
563
- --ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem)); // 12px
564
- --ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem)); // 14px
565
- --ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem)); // 16px
566
- --ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem)); // 18px
567
-
568
- // Font Weights
569
- --ms-font-weight-normal: var(--base-font-weight-normal, #{$ms-font-weight-normal});
570
- --ms-font-weight-medium: var(--base-font-weight-medium, #{$ms-font-weight-medium});
571
- --ms-font-weight-semibold: var(--base-font-weight-semibold, #{$ms-font-weight-semibold});
572
-
573
- // Line Heights
574
- --ms-line-height-none: #{$ms-line-height-none};
575
- --ms-line-height-tight: var(--base-line-height-tight, #{$ms-line-height-tight});
576
- --ms-line-height-normal: var(--base-line-height-normal, #{$ms-line-height-normal});
577
- --ms-line-height-relaxed: var(--base-line-height-relaxed, #{$ms-line-height-relaxed});
578
-
579
- // ==========================================================================
580
- // SPACING & SIZING
581
- // ==========================================================================
582
-
583
- --ms-spacing-xs: #{$ms-spacing-xs};
584
- --ms-spacing-sm: #{$ms-spacing-sm};
585
- --ms-spacing-md: #{$ms-spacing-md};
586
- --ms-spacing-lg: #{$ms-spacing-lg};
587
-
588
- // ==========================================================================
589
- // TRANSITIONS & EFFECTS
590
- // ==========================================================================
591
-
592
- --ms-transition-fast: #{$ms-transition-fast};
593
- --ms-transition-normal: #{$ms-transition-normal};
594
- --ms-easing-snappy: #{$ms-easing-snappy};
595
-
596
- // ==========================================================================
597
- // OPACITY VALUES
598
- // ==========================================================================
599
-
600
- --ms-placeholder-opacity: #{$ms-placeholder-opacity};
601
- --ms-disabled-input-opacity: #{$ms-disabled-input-opacity};
602
-
603
- // ==========================================================================
604
- // SCROLLBAR
605
- // ==========================================================================
606
-
607
- --ms-scrollbar-width: #{$ms-scrollbar-width};
608
- --ms-scrollbar-track-bg: #{$ms-scrollbar-track-bg};
609
- --ms-scrollbar-thumb-bg: #{$ms-scrollbar-thumb-bg};
610
- --ms-scrollbar-thumb-bg-hover: #{$ms-scrollbar-thumb-bg-hover};
611
- --ms-scrollbar-thumb-border-radius: #{$ms-scrollbar-thumb-border-radius};
612
- }
@@ -1,60 +0,0 @@
1
- // ==============================================================================
2
- // DEBUG INFO PANEL
3
- // ==============================================================================
4
- // Debug information display for development and troubleshooting
5
-
6
- @use 'variables' as *;
7
-
8
- .ms-debug-info {
9
- margin-top: $ms-spacing-xs;
10
- padding: $ms-spacing-xs;
11
- background-color: $ms-color-neutral-lightest;
12
- border: 1px solid $ms-color-neutral-light;
13
- border-radius: $ms-border-radius;
14
- font-size: $ms-font-size-xs;
15
- color: $ms-color-neutral-darkest;
16
-
17
- details {
18
- summary {
19
- cursor: pointer;
20
- font-weight: $ms-font-weight-semibold;
21
- color: $ms-color-accent-dark;
22
- user-select: none;
23
- padding: $ms-spacing-xs;
24
- border-radius: $ms-border-radius-sm;
25
-
26
- &:hover {
27
- background-color: $ms-color-neutral-lighter;
28
- }
29
-
30
- &:focus {
31
- outline: 2px solid $ms-color-accent-base;
32
- outline-offset: 2px;
33
- }
34
- }
35
- }
36
-
37
- .ms-debug-stats {
38
- display: flex;
39
- flex-direction: column;
40
- gap: $ms-spacing-xs;
41
- margin-top: $ms-spacing-xs;
42
- padding: $ms-spacing-xs;
43
- background-color: $ms-color-white;
44
- border-radius: $ms-border-radius-sm;
45
-
46
- span {
47
- display: flex;
48
- justify-content: space-between;
49
- padding: 2px 4px;
50
- font-family: monospace;
51
- font-size: $ms-font-size-2xs;
52
-
53
- &::before {
54
- content: '•';
55
- margin-right: $ms-spacing-xs;
56
- color: $ms-color-accent-base;
57
- }
58
- }
59
- }
60
- }