@resolve-components/theme 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,701 @@
1
+ // =============================================================================
2
+ // Resolve Components — Component-to-Theme Mapping
3
+ // =============================================================================
4
+ // This map connects component-level variable names to semantic theme variables.
5
+ // Components reference their own namespaced variables (e.g. button-primary-bg),
6
+ // which are mapped to generic theme variables (e.g. color-primary-default).
7
+ //
8
+ // When a new component is added, its mapping entries should be added here.
9
+ // Users can override any of these in their custom theme definition.
10
+ // =============================================================================
11
+
12
+ @use 'sass:string';
13
+ /// Master component mapping. Merged into every registered theme as the base layer.
14
+ $rc-mapping: (
15
+ // ── Button ────────────────────────────────────────────────────────────────
16
+ button-border-radius: border-radius,
17
+ button-font-family: font-family-primary,
18
+ button-font-weight: font-weight-semibold,
19
+ button-focus-outline-color: color-primary-focus,
20
+
21
+ button-filled-primary-background-color: color-primary-default,
22
+ button-filled-primary-hover-background-color: color-primary-hover,
23
+ button-filled-primary-active-background-color: color-primary-active,
24
+ button-filled-primary-text-color: color-control,
25
+
26
+ button-filled-secondary-background-color: color-basic-600,
27
+ button-filled-secondary-hover-background-color: color-basic-700,
28
+ button-filled-secondary-active-background-color: color-basic-800,
29
+ button-filled-secondary-text-color: color-control,
30
+
31
+ button-filled-danger-background-color: color-danger-default,
32
+ button-filled-danger-hover-background-color: color-danger-hover,
33
+ button-filled-danger-active-background-color: color-danger-active,
34
+ button-filled-danger-text-color: color-control,
35
+
36
+ button-filled-info-background-color: color-info-default,
37
+ button-filled-info-hover-background-color: color-info-hover,
38
+ button-filled-info-active-background-color: color-info-active,
39
+ button-filled-info-text-color: color-control,
40
+
41
+ button-filled-success-background-color: color-success-default,
42
+ button-filled-success-hover-background-color: color-success-hover,
43
+ button-filled-success-active-background-color: color-success-active,
44
+ button-filled-success-text-color: color-control,
45
+
46
+ button-filled-warning-background-color: color-warning-default,
47
+ button-filled-warning-hover-background-color: color-warning-hover,
48
+ button-filled-warning-active-background-color: color-warning-active,
49
+ button-filled-warning-text-color: color-control,
50
+
51
+ button-outline-primary-border-color: color-primary-default,
52
+ button-outline-primary-text-color: color-primary-default,
53
+ button-outline-primary-hover-background-color: color-primary-default,
54
+ button-outline-primary-hover-text-color: color-control,
55
+
56
+ button-ghost-text-color: text-basic-color,
57
+ button-ghost-hover-background-color: background-basic-color-3,
58
+
59
+ button-sm-font-size: font-size-sm,
60
+ button-sm-padding: 0.375rem 0.75rem,
61
+ button-sm-height: 2rem,
62
+
63
+ button-md-font-size: font-size-md,
64
+ button-md-padding: 0.5rem 1rem,
65
+ button-md-height: 2.5rem,
66
+
67
+ button-lg-font-size: font-size-lg,
68
+ button-lg-padding: 0.625rem 1.5rem,
69
+ button-lg-height: 3rem,
70
+
71
+ button-disabled-opacity: 0.4,
72
+
73
+ // ── Badge ─────────────────────────────────────────────────────────────────
74
+ badge-font-family: font-family-primary,
75
+ badge-font-weight: font-weight-semibold,
76
+ badge-border-radius: radius-full,
77
+
78
+ badge-default-background-color: background-basic-color-3,
79
+ badge-default-text-color: text-basic-color,
80
+
81
+ badge-primary-background-color: color-primary-default,
82
+ badge-primary-text-color: color-control,
83
+
84
+ badge-success-background-color: color-success-default,
85
+ badge-success-text-color: color-control,
86
+
87
+ badge-warning-background-color: color-warning-default,
88
+ badge-warning-text-color: color-control,
89
+
90
+ badge-danger-background-color: color-danger-default,
91
+ badge-danger-text-color: color-control,
92
+
93
+ badge-sm-font-size: font-size-xs,
94
+ badge-sm-padding: 0.125rem 0.5rem,
95
+
96
+ badge-md-font-size: font-size-sm,
97
+ badge-md-padding: 0.25rem 0.625rem,
98
+
99
+ // ── Card ──────────────────────────────────────────────────────────────────
100
+ card-background-color: background-basic-color-1,
101
+ card-text-color: text-basic-color,
102
+ card-border-color: border-basic-color,
103
+ card-border-radius: border-radius,
104
+ card-padding: spacing-lg,
105
+ card-shadow: shadow,
106
+
107
+ card-header-font-family: font-family-primary,
108
+ card-header-font-weight: font-weight-semibold,
109
+ card-header-font-size: font-size-lg,
110
+
111
+ // ── Input ─────────────────────────────────────────────────────────────────
112
+ input-background-color: background-basic-color-2,
113
+ input-border-color: border-basic-color,
114
+ input-border-radius: border-radius,
115
+ input-text-color: text-basic-color,
116
+ input-placeholder-color: text-hint-color,
117
+ input-focus-border-color: color-primary-default,
118
+ input-focus-shadow: string.unquote('0 0 0 3px rgba(0, 120, 212, 0.14)'),
119
+ input-disabled-background-color: background-basic-color-3,
120
+ input-disabled-border-color: border-basic-color,
121
+ input-disabled-text-color: text-disabled-color,
122
+ input-hover-border-color: border-basic-color-2,
123
+
124
+ input-font-family: font-family-primary,
125
+ input-font-weight: font-weight-normal,
126
+
127
+ // Sizes
128
+ input-sm-font-size: font-size-sm,
129
+ input-sm-padding: string.unquote('0.3125rem 0.625rem'),
130
+ input-sm-height: 2rem,
131
+
132
+ input-md-font-size: font-size-md,
133
+ input-md-padding: string.unquote('0.5rem 0.75rem'),
134
+ input-md-height: 2.5rem,
135
+
136
+ input-lg-font-size: font-size-lg,
137
+ input-lg-padding: string.unquote('0.625rem 1rem'),
138
+ input-lg-height: 3rem,
139
+
140
+ // Label
141
+ input-label-font-size: font-size-sm,
142
+ input-label-font-weight: font-weight-medium,
143
+ input-label-color: text-basic-color,
144
+ input-label-gap: string.unquote('0.375rem'),
145
+ // Hint / helper text
146
+ input-hint-font-size: font-size-sm,
147
+ input-hint-color: text-hint-color,
148
+ input-hint-gap: string.unquote('0.375rem'),
149
+ // Status — success
150
+ input-success-border-color: color-success-default,
151
+ input-success-focus-shadow: string.unquote('0 0 0 3px rgba(16, 124, 16, 0.14)'),
152
+ input-success-hint-color: color-success-700,
153
+ input-success-icon-color: color-success-default,
154
+
155
+ // Status — danger
156
+ input-danger-border-color: color-danger-default,
157
+ input-danger-focus-shadow: string.unquote('0 0 0 3px rgba(209, 52, 56, 0.14)'),
158
+ input-danger-hint-color: color-danger-600,
159
+ input-danger-icon-color: color-danger-default,
160
+
161
+ // Status — warning
162
+ input-warning-border-color: color-warning-600,
163
+ input-warning-focus-shadow: string.unquote('0 0 0 3px rgba(255, 185, 0, 0.16)'),
164
+ input-warning-hint-color: color-warning-700,
165
+ input-warning-icon-color: color-warning-600,
166
+
167
+ // Prefix / suffix
168
+ input-affix-color: text-hint-color,
169
+ input-affix-separator-color: border-basic-color,
170
+
171
+ // Textarea
172
+ textarea-min-height: string.unquote('6rem'),
173
+ textarea-resize: string.unquote('vertical'),
174
+ // ── Dialog ────────────────────────────────────────────────────────────────
175
+ dialog-background: background-basic-color-1,
176
+ dialog-text-color: text-basic-color,
177
+ dialog-border-radius: radius-xl,
178
+ dialog-shadow: shadow-lg,
179
+ dialog-header-padding: string.unquote('1.25rem 1.5rem 0.5rem'),
180
+ dialog-body-padding: string.unquote('1rem 1.5rem'),
181
+ dialog-actions-padding: string.unquote('0.75rem 1.5rem 1.25rem'),
182
+ dialog-title-font-size: font-size-xl,
183
+ dialog-title-font-weight: font-weight-semibold,
184
+ dialog-border-color: border-basic-color,
185
+ dialog-close-color: text-hint-color,
186
+ dialog-close-hover-color: text-basic-color,
187
+ dialog-close-hover-background: background-basic-color-3,
188
+ dialog-overlay-backdrop-color: string.unquote('rgba(0, 0, 0, 0.48)'),
189
+ // ── Icon Badge ────────────────────────────────────────────────────────────
190
+ icon-badge-font-family: font-family-primary,
191
+ icon-badge-font-size: font-size-xs,
192
+ icon-badge-font-weight: font-weight-semibold,
193
+ icon-badge-min-width: 1.125rem,
194
+ icon-badge-height: 1.125rem,
195
+ icon-badge-padding: string.unquote('0 0.3rem'),
196
+ icon-badge-border-radius: radius-full,
197
+ icon-badge-border: string.unquote('1.5px solid transparent'),
198
+ icon-badge-dot-size: 0.5rem,
199
+
200
+ icon-badge-default-background-color: background-basic-color-3,
201
+ icon-badge-default-text-color: text-basic-color,
202
+
203
+ icon-badge-primary-background-color: color-primary-default,
204
+ icon-badge-primary-text-color: color-control,
205
+
206
+ icon-badge-success-background-color: color-success-default,
207
+ icon-badge-success-text-color: color-control,
208
+
209
+ icon-badge-warning-background-color: color-warning-default,
210
+ icon-badge-warning-text-color: color-control,
211
+
212
+ icon-badge-danger-background-color: color-danger-default,
213
+ icon-badge-danger-text-color: color-control,
214
+
215
+ // ── Chip ──────────────────────────────────────────────────────────────────
216
+ chip-font-family: font-family-primary,
217
+ chip-font-weight: font-weight-medium,
218
+ chip-border-radius: radius-full,
219
+ chip-gap: 0.3125rem,
220
+
221
+ chip-default-background-color: background-basic-color-3,
222
+ chip-default-text-color: text-basic-color,
223
+ chip-default-border-color: border-basic-color,
224
+
225
+ chip-primary-background-color: color-primary-transparent-default,
226
+ chip-primary-text-color: color-primary-default,
227
+
228
+ chip-success-background-color: color-success-100,
229
+ chip-success-text-color: color-success-700,
230
+
231
+ chip-warning-background-color: color-warning-100,
232
+ chip-warning-text-color: color-warning-800,
233
+
234
+ chip-danger-background-color: color-danger-100,
235
+ chip-danger-text-color: color-danger-700,
236
+
237
+ chip-info-background-color: color-info-100,
238
+ chip-info-text-color: color-info-700,
239
+
240
+ chip-hover-background-color: background-basic-color-4,
241
+ chip-hover-border-color: border-basic-color-2,
242
+
243
+ chip-selected-background-color: color-primary-default,
244
+ chip-selected-text-color: color-control,
245
+
246
+ chip-focus-outline-color: color-primary-focus,
247
+ chip-disabled-opacity: 0.4,
248
+ chip-close-hover-background-color: background-basic-color-4,
249
+
250
+ chip-sm-font-size: font-size-xs,
251
+ chip-sm-padding: string.unquote('0.1875rem 0.5rem'),
252
+ chip-md-font-size: font-size-sm,
253
+ chip-md-padding: string.unquote('0.25rem 0.625rem'),
254
+ // ── Radio ─────────────────────────────────────────────────────────────────
255
+ radio-font-family: font-family-primary,
256
+ radio-text-color: text-basic-color,
257
+ radio-group-gap: 0.625rem,
258
+ radio-gap: 0.5rem,
259
+
260
+ radio-background: background-basic-color-1,
261
+ radio-border-color: border-basic-color-2,
262
+ radio-dot-color: color-control,
263
+
264
+ radio-hover-border-color: color-primary-default,
265
+ radio-hover-background: background-basic-color-2,
266
+
267
+ radio-checked-border-color: color-primary-default,
268
+ radio-checked-background: color-primary-default,
269
+
270
+ radio-focus-outline-color: color-primary-focus,
271
+ radio-disabled-opacity: 0.4,
272
+
273
+ radio-sm-font-size: font-size-sm,
274
+ radio-sm-size: 0.875rem,
275
+ radio-sm-dot-size: 0.375rem,
276
+
277
+ radio-md-font-size: font-size-md,
278
+ radio-md-size: 1.125rem,
279
+ radio-md-dot-size: 0.5rem,
280
+
281
+ // ── Toggle ────────────────────────────────────────────────────────────────
282
+ toggle-font-family: font-family-primary,
283
+ toggle-text-color: text-basic-color,
284
+ toggle-gap: 0.5rem,
285
+ toggle-thumb-gap: 0.13rem,
286
+
287
+ toggle-track-color: color-basic-500,
288
+ toggle-checked-track-color: color-primary-default,
289
+ toggle-hover-track-color: color-basic-600,
290
+ toggle-checked-hover-track-color: color-primary-hover,
291
+ toggle-thumb-color: color-control,
292
+ toggle-thumb-shadow: string.unquote('0 1px 3px rgba(0,0,0,0.25)'),
293
+ toggle-focus-outline-color: color-primary-focus,
294
+ toggle-disabled-opacity: 0.4,
295
+
296
+ toggle-sm-font-size: font-size-sm,
297
+ toggle-sm-track-width: 1.75rem,
298
+ toggle-sm-track-height: 1rem,
299
+ toggle-sm-track-border-radius: radius-full,
300
+ toggle-sm-thumb-size: 0.625rem,
301
+
302
+ toggle-md-font-size: font-size-md,
303
+ toggle-md-track-width: 2.25rem,
304
+ toggle-md-track-height: 1.25rem,
305
+ toggle-md-track-border-radius: radius-full,
306
+ toggle-md-thumb-size: 0.875rem,
307
+
308
+ toggle-lg-font-size: font-size-lg,
309
+ toggle-lg-track-width: 2.75rem,
310
+ toggle-lg-track-height: 1.5rem,
311
+ toggle-lg-track-border-radius: radius-full,
312
+ toggle-lg-thumb-size: 1.0625rem,
313
+
314
+ // ── Checkbox ─────────────────────────────────────────────────────────────
315
+ checkbox-font-family: font-family-primary,
316
+ checkbox-text-color: text-basic-color,
317
+ checkbox-gap: 0.5rem,
318
+ checkbox-border-color: border-basic-color-2,
319
+ checkbox-border-radius: string.unquote('4px'),
320
+ checkbox-background: background-basic-color-2,
321
+ checkbox-hover-border-color: color-primary-default,
322
+ checkbox-hover-background: background-basic-color-2,
323
+ checkbox-checked-background: color-primary-default,
324
+ checkbox-checked-border-color: color-primary-default,
325
+ checkbox-checked-icon-color: color-control,
326
+ checkbox-checked-hover-background: color-primary-hover,
327
+ checkbox-disabled-opacity: 0.4,
328
+ checkbox-focus-outline-color: color-primary-focus,
329
+ // Sizes
330
+ checkbox-sm-size: 0.875rem,
331
+ checkbox-sm-font-size: font-size-sm,
332
+ checkbox-md-size: 1.125rem,
333
+ checkbox-md-font-size: font-size-md,
334
+ checkbox-lg-size: 1.25rem,
335
+ checkbox-lg-font-size: font-size-lg,
336
+ // Status — success
337
+ checkbox-success-border-color: color-success-default,
338
+ checkbox-success-checked-background: color-success-default,
339
+ // Status — warning
340
+ checkbox-warning-border-color: color-warning-600,
341
+ checkbox-warning-checked-background: color-warning-default,
342
+ checkbox-warning-icon-color: color-basic-900,
343
+ // Status — danger
344
+ checkbox-danger-border-color: color-danger-default,
345
+ checkbox-danger-checked-background: color-danger-default,
346
+
347
+ // ── Select ───────────────────────────────────────────────────────────────
348
+ select-font-family: font-family-primary,
349
+ select-font-weight: font-weight-normal,
350
+ select-background-color: background-basic-color-2,
351
+ select-border-color: border-basic-color,
352
+ select-border-radius: border-radius,
353
+ select-text-color: text-basic-color,
354
+ select-placeholder-color: text-hint-color,
355
+ select-arrow-color: text-hint-color,
356
+ select-hover-border-color: border-basic-color-2,
357
+ select-focus-border-color: color-primary-default,
358
+ select-focus-shadow: string.unquote('0 0 0 3px rgba(0, 120, 212, 0.14)'),
359
+ select-disabled-background-color: background-basic-color-3,
360
+ select-disabled-border-color: border-basic-color,
361
+ select-disabled-text-color: text-disabled-color,
362
+
363
+ // Sizes
364
+ select-sm-font-size: font-size-sm,
365
+ select-sm-padding: string.unquote('0.3125rem 0.625rem'),
366
+ select-sm-height: 2rem,
367
+ select-md-font-size: font-size-md,
368
+ select-md-padding: string.unquote('0.5rem 0.75rem'),
369
+ select-md-height: 2.5rem,
370
+ select-lg-font-size: font-size-lg,
371
+ select-lg-padding: string.unquote('0.625rem 1rem'),
372
+ select-lg-height: 3rem,
373
+
374
+ // Status — success
375
+ select-success-border-color: color-success-default,
376
+ select-success-focus-shadow: string.unquote('0 0 0 3px rgba(16, 124, 16, 0.14)'),
377
+ // Status — warning
378
+ select-warning-border-color: color-warning-600,
379
+ select-warning-focus-shadow: string.unquote('0 0 0 3px rgba(255, 185, 0, 0.16)'),
380
+ // Status — danger
381
+ select-danger-border-color: color-danger-default,
382
+ select-danger-focus-shadow: string.unquote('0 0 0 3px rgba(209, 52, 56, 0.14)'),
383
+ // Panel
384
+ select-panel-background: background-basic-color-1,
385
+ select-panel-border-color: border-basic-color,
386
+ select-panel-border-radius: border-radius,
387
+ select-panel-shadow: shadow-lg,
388
+ select-panel-max-height: 16rem,
389
+ select-panel-padding: string.unquote('0.25rem'),
390
+ // Option
391
+ select-option-padding: string.unquote('0.5rem 0.75rem'),
392
+ select-option-font-size: font-size-md,
393
+ select-option-text-color: text-basic-color,
394
+ select-option-border-radius: border-radius,
395
+ select-option-hover-background: background-basic-color-3,
396
+ select-option-selected-background: color-primary-transparent-default,
397
+ select-option-selected-text-color: color-primary-default,
398
+ select-option-selected-font-weight: font-weight-medium,
399
+ select-option-selected-hover-background: color-primary-transparent-hover,
400
+
401
+ // ── Accordion ──────────────────────────────────────────────────────────
402
+ accordion-font-family: font-family-primary,
403
+ accordion-background: background-basic-color-1,
404
+ accordion-border-color: border-basic-color,
405
+ accordion-border-radius: border-radius,
406
+ accordion-header-background: background-basic-color-1,
407
+ accordion-header-hover-background: background-basic-color-3,
408
+ accordion-header-text-color: text-basic-color,
409
+ accordion-header-font-weight: font-weight-semibold,
410
+ accordion-header-font-size: font-size-md,
411
+ accordion-header-padding: string.unquote('0.875rem 1rem'),
412
+ accordion-content-padding: string.unquote('0 1rem 1rem'),
413
+ accordion-content-font-size: font-size-md,
414
+ accordion-content-text-color: text-basic-color,
415
+ accordion-icon-color: text-hint-color,
416
+ accordion-disabled-opacity: 0.4,
417
+ accordion-focus-outline-color: color-primary-focus,
418
+ accordion-transition-duration: transition-duration-fast,
419
+ accordion-transition-timing: transition-timing,
420
+ // Filled variant
421
+ accordion-filled-header-background: background-basic-color-2,
422
+ accordion-filled-header-hover-background: background-basic-color-3,
423
+
424
+ // ── Slider ───────────────────────────────────────────────────────────────
425
+ slider-font-family: font-family-primary,
426
+ slider-label-gap: 0.5rem,
427
+ slider-track-background: background-basic-color-4,
428
+ slider-track-border-radius: radius-full,
429
+ slider-fill-color: color-primary-default,
430
+ slider-thumb-background: color-primary-default,
431
+ slider-thumb-border-color: background-basic-color-1,
432
+ slider-thumb-border-width: 2px,
433
+ slider-thumb-shadow: shadow-sm,
434
+ slider-thumb-hover-scale: 1.15,
435
+ slider-focus-outline-color: color-primary-focus,
436
+ slider-disabled-opacity: 0.4,
437
+ // Status — success
438
+ slider-success-fill-color: color-success-default,
439
+ slider-success-thumb-background: color-success-default,
440
+ slider-success-focus-outline-color: color-success-focus,
441
+ // Status — warning
442
+ slider-warning-fill-color: color-warning-default,
443
+ slider-warning-thumb-background: color-warning-default,
444
+ slider-warning-focus-outline-color: color-warning-focus,
445
+ // Status — danger
446
+ slider-danger-fill-color: color-danger-default,
447
+ slider-danger-thumb-background: color-danger-default,
448
+ slider-danger-focus-outline-color: color-danger-focus,
449
+ slider-transition-duration: transition-duration-fast,
450
+ slider-transition-timing: transition-timing,
451
+ slider-value-font-size: font-size-sm,
452
+ slider-value-font-weight: font-weight-semibold,
453
+ slider-value-color: text-basic-color,
454
+ slider-value-active-color: color-primary-default,
455
+ slider-hint-color: text-hint-color,
456
+ slider-hint-font-size: font-size-sm,
457
+ slider-tick-size: 0.375rem,
458
+ slider-tick-color: background-basic-color-4,
459
+ slider-tick-active-color: color-primary-default,
460
+ // Sizes
461
+ slider-sm-track-height: 3px,
462
+ slider-sm-thumb-size: 0.875rem,
463
+ slider-md-track-height: 5px,
464
+ slider-md-thumb-size: 1.125rem,
465
+ slider-lg-track-height: 7px,
466
+ slider-lg-thumb-size: 1.375rem,
467
+
468
+ // ── Autocomplete ─────────────────────────────────────────────────────────
469
+ autocomplete-clear-color: text-hint-color,
470
+ autocomplete-clear-hover-color: text-basic-color,
471
+ autocomplete-clear-hover-background: background-basic-color-3,
472
+
473
+ // ── Table ────────────────────────────────────────────────────────────────
474
+ table-background: background-basic-color-1,
475
+ table-border-color: border-basic-color,
476
+ table-border-radius: border-radius,
477
+ table-header-background: background-basic-color-2,
478
+ table-header-text-color: text-hint-color,
479
+ table-text-color: text-basic-color,
480
+ table-cell-padding: string.unquote('0.75rem 1rem'),
481
+ table-row-hover-background: background-basic-color-3,
482
+ table-sort-active-color: color-primary-default,
483
+
484
+ // ── Sidenav ───────────────────────────────────────────────────────────────
485
+ sidenav-background: background-basic-color-1,
486
+ sidenav-text-color: text-basic-color,
487
+ sidenav-border-color: border-basic-color,
488
+ sidenav-shadow: shadow-lg,
489
+ sidenav-width: 280px,
490
+ sidenav-z-index: 300,
491
+ sidenav-backdrop-z-index: 200,
492
+ sidenav-backdrop-color: string.unquote('rgba(0, 0, 0, 0.38)'),
493
+ sidenav-transition-duration: transition-duration-normal,
494
+ sidenav-transition-timing: transition-timing,
495
+
496
+ // ── Navbar ────────────────────────────────────────────────────────────────
497
+ navbar-height: 3.5rem,
498
+ navbar-padding: string.unquote('0 1rem'),
499
+ navbar-gap: 0.5rem,
500
+ navbar-z-index: 100,
501
+ navbar-font-family: font-family-primary,
502
+ navbar-font-size: font-size-md,
503
+ navbar-font-weight: font-weight-normal,
504
+ navbar-brand-font-size: font-size-lg,
505
+ navbar-brand-font-weight: font-weight-semibold,
506
+ // Default variant
507
+ navbar-default-background: background-basic-color-1,
508
+ navbar-default-text-color: text-basic-color,
509
+ navbar-default-border-color: border-basic-color,
510
+ // Primary variant
511
+ navbar-primary-background: color-primary-default,
512
+ navbar-primary-text-color: color-control,
513
+ navbar-primary-shadow: shadow,
514
+ navbar-primary-btn-hover-background: string.unquote('rgba(255, 255, 255, 0.15)'),
515
+ // ── Datepicker ─────────────────────────────────────────────────────────────
516
+ datepicker-background: background-basic-color-2,
517
+ datepicker-border-color: border-basic-color,
518
+ datepicker-border-radius: border-radius,
519
+ datepicker-text-color: text-basic-color,
520
+ datepicker-placeholder-color: text-hint-color,
521
+ datepicker-icon-color: text-hint-color,
522
+ datepicker-transition-duration: transition-duration-fast,
523
+ datepicker-transition-timing: transition-timing,
524
+
525
+ // Hover / focus
526
+ datepicker-hover-border-color: border-basic-color-2,
527
+ datepicker-focus-border-color: color-primary-default,
528
+ datepicker-focus-shadow: string.unquote('0 0 0 3px rgba(0, 120, 212, 0.14)'),
529
+ // Disabled
530
+ datepicker-disabled-background: background-basic-color-3,
531
+ datepicker-disabled-border-color: border-basic-color,
532
+ datepicker-disabled-text-color: text-disabled-color,
533
+
534
+ // Sizes — padding / font / min-height
535
+ datepicker-padding-sm: string.unquote('0.3125rem 0.625rem'),
536
+ datepicker-font-size-sm: font-size-sm,
537
+ datepicker-height-sm: 2rem,
538
+ datepicker-padding-md: string.unquote('0.5rem 0.75rem'),
539
+ datepicker-font-size-md: font-size-md,
540
+ datepicker-height-md: 2.5rem,
541
+ datepicker-padding-lg: string.unquote('0.625rem 1rem'),
542
+ datepicker-font-size-lg: font-size-lg,
543
+ datepicker-height-lg: 3rem,
544
+
545
+ // Status — success
546
+ datepicker-success-border-color: color-success-default,
547
+ datepicker-success-focus-shadow: string.unquote('0 0 0 3px rgba(16, 124, 16, 0.14)'),
548
+ // Status — warning
549
+ datepicker-warning-border-color: color-warning-600,
550
+ datepicker-warning-focus-shadow: string.unquote('0 0 0 3px rgba(255, 185, 0, 0.16)'),
551
+ // Status — danger
552
+ datepicker-danger-border-color: color-danger-default,
553
+ datepicker-danger-focus-shadow: string.unquote('0 0 0 3px rgba(209, 52, 56, 0.14)'),
554
+ // Panel
555
+ datepicker-panel-background: background-basic-color-1,
556
+ datepicker-panel-border-color: border-basic-color,
557
+ datepicker-panel-border-radius: border-radius-lg,
558
+ datepicker-panel-shadow: shadow-lg,
559
+
560
+ // Day cells
561
+ datepicker-day-border-radius: border-radius-sm,
562
+ datepicker-day-hover-background: background-basic-color-2,
563
+ datepicker-day-other-color: text-disabled-color,
564
+ datepicker-day-disabled-color: text-disabled-color,
565
+ datepicker-day-today-border-color: color-primary-default,
566
+ datepicker-day-selected-background: color-primary-default,
567
+ datepicker-day-selected-color: text-primary-inverse-color,
568
+
569
+ // Weekday labels
570
+ datepicker-weekday-color: text-hint-color,
571
+
572
+ // Footer
573
+ datepicker-footer-btn-background: background-basic-color-2,
574
+ datepicker-footer-btn-hover-background: background-basic-color-3,
575
+ datepicker-footer-btn-color: text-basic-color,
576
+
577
+ // ── Tree ────────────────────────────────────────────────────────────────
578
+ tree-font-family: font-family-primary,
579
+ tree-font-size: font-size-md,
580
+ tree-text-color: text-basic-color,
581
+ tree-background: background-basic-color-1,
582
+ tree-border-color: border-basic-color,
583
+ tree-border-radius: border-radius,
584
+ tree-padding: string.unquote('0.25rem'),
585
+ tree-icon-color: text-hint-color,
586
+ tree-focus-color: color-primary-default,
587
+ tree-disabled-opacity: 0.45,
588
+ tree-transition-duration: transition-duration-fast,
589
+ tree-transition-timing: transition-timing,
590
+
591
+ // Row
592
+ tree-row-height: 2.25rem,
593
+ tree-row-border-radius: border-radius,
594
+ tree-row-hover-background: background-basic-color-2,
595
+ tree-row-selected-background: color-primary-transparent-default,
596
+ tree-row-selected-color: color-primary-default,
597
+
598
+ // ── Spinner ─────────────────────────────────────────────────────────────────
599
+ spinner-font-family: font-family-primary,
600
+ spinner-overlay-background: background-basic-color-1,
601
+ spinner-gap: string.unquote('0.5rem'),
602
+ spinner-message-font-size: font-size-sm,
603
+ spinner-message-color: text-hint-color,
604
+ spinner-sm-size: string.unquote('1rem'),
605
+ spinner-sm-border-width: string.unquote('1.5px'),
606
+ spinner-md-size: string.unquote('1.5rem'),
607
+ spinner-md-border-width: string.unquote('2px'),
608
+ spinner-lg-size: string.unquote('2.25rem'),
609
+ spinner-lg-border-width: string.unquote('3px'),
610
+ spinner-primary-color: color-primary-default,
611
+ spinner-info-color: color-info-default,
612
+ spinner-success-color: color-success-default,
613
+ spinner-warning-color: color-warning-default,
614
+ spinner-danger-color: color-danger-default,
615
+ spinner-basic-color: text-basic-color,
616
+
617
+ // ── Progress Bar ───────────────────────────────────────────────────
618
+ progress-bar-height: string.unquote('0.5rem'),
619
+ progress-bar-border-radius: border-radius,
620
+ progress-bar-background: background-basic-color-3,
621
+ progress-bar-transition-duration: transition-duration-slow,
622
+ progress-bar-label-font-family: font-family-primary,
623
+ progress-bar-label-font-size: font-size-sm,
624
+ progress-bar-label-color: text-hint-color,
625
+ progress-bar-primary-color: color-primary-default,
626
+ progress-bar-info-color: color-info-default,
627
+ progress-bar-success-color: color-success-default,
628
+ progress-bar-warning-color: color-warning-default,
629
+ progress-bar-danger-color: color-danger-default,
630
+
631
+ // ── File Upload ───────────────────────────────────────────────────
632
+ file-upload-border-color: border-basic-color,
633
+ file-upload-border-radius: border-radius-lg,
634
+ file-upload-background: background-basic-color-1,
635
+ file-upload-hover-background: background-basic-color-2,
636
+ file-upload-hover-border-color: color-primary-default,
637
+ file-upload-active-background: color-primary-transparent-default,
638
+ file-upload-active-border-color: color-primary-default,
639
+ file-upload-error-border-color: color-danger-default,
640
+ file-upload-icon-color: text-hint-color,
641
+ file-upload-text-color: text-basic-color,
642
+ file-upload-title-font-size: font-size-md,
643
+ file-upload-browse-color: color-primary-default,
644
+ file-upload-hint-font-size: font-size-sm,
645
+ file-upload-hint-color: text-hint-color,
646
+ file-upload-item-background: background-basic-color-2,
647
+ file-upload-item-border-radius: border-radius,
648
+ file-upload-item-font-size: font-size-sm,
649
+ file-upload-item-error-background: color-danger-100,
650
+
651
+ // ── Virtual Scroll ─────────────────────────────────────────────
652
+ virtual-scroll-border-color: border-basic-color,
653
+ virtual-scroll-border-radius: border-radius,
654
+ virtual-scroll-track-color: background-basic-color-3,
655
+ virtual-scroll-thumb-color: border-basic-color-2,
656
+ virtual-scroll-thumb-hover-color: text-hint-color,
657
+
658
+ // ── Tooltip ─────────────────────────────────────────────────────
659
+ tooltip-font-family: font-family-primary,
660
+ tooltip-font-size: font-size-sm,
661
+ tooltip-background: color-basic-800,
662
+ tooltip-text-color: color-basic-100,
663
+ tooltip-border-radius: border-radius,
664
+ tooltip-padding: string.unquote('0.3rem 0.625rem'),
665
+ tooltip-max-width: string.unquote('16rem'),
666
+ tooltip-shadow: shadow-md,
667
+
668
+ // ── Menu ───────────────────────────────────────────────────────────
669
+ menu-background: background-basic-color-1,
670
+ menu-border-color: border-basic-color,
671
+ menu-border-radius: border-radius-lg,
672
+ menu-shadow: shadow-lg,
673
+ menu-item-padding: string.unquote('0.5625rem 1rem'),
674
+ menu-item-font-family: font-family-primary,
675
+ menu-item-font-size: font-size-md,
676
+ menu-item-text-color: text-basic-color,
677
+ menu-item-hover-background: background-basic-color-2,
678
+ menu-item-disabled-opacity: string.unquote('0.45'),
679
+ menu-item-danger-color: color-danger-default,
680
+ menu-icon-color: text-hint-color,
681
+ menu-separator-color: border-basic-color,
682
+
683
+ // ── Infinite Scroll ────────────────────────────────────────────────────────
684
+ infinite-scroll-loader-padding: string.unquote('0.875rem 1rem'),
685
+ infinite-scroll-end-padding: string.unquote('0.875rem 1rem'),
686
+ infinite-scroll-end-font-family: font-family-primary,
687
+ infinite-scroll-end-font-size: font-size-sm,
688
+ infinite-scroll-end-color: text-hint-color,
689
+ infinite-scroll-separator-color: border-basic-color,
690
+
691
+ // ── Paginator ─────────────────────────────────────────────────────────────
692
+ paginator-background: background-basic-color-1,
693
+ paginator-border-color: border-basic-color,
694
+ paginator-padding: string.unquote('0.375rem 0.75rem'),
695
+ paginator-gap: string.unquote('0.5rem 1.5rem'),
696
+ paginator-font-family: font-family-primary,
697
+ paginator-font-size: font-size-sm,
698
+ paginator-range-color: text-hint-color,
699
+ paginator-size-label-color: text-hint-color,
700
+ paginator-ellipsis-color: text-hint-color
701
+ ) !default;