@vanduo-oss/framework 1.4.0 → 1.4.2

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 (89) hide show
  1. package/README.md +11 -9
  2. package/css/components/affix.css +11 -11
  3. package/css/components/alerts.css +55 -55
  4. package/css/components/avatar.css +62 -62
  5. package/css/components/badges.css +25 -25
  6. package/css/components/breadcrumbs.css +31 -31
  7. package/css/components/bubble.css +40 -40
  8. package/css/components/button-group.css +2 -2
  9. package/css/components/buttons.css +33 -33
  10. package/css/components/cards.css +76 -76
  11. package/css/components/chips.css +27 -27
  12. package/css/components/code-snippet.css +132 -132
  13. package/css/components/collapsible.css +60 -60
  14. package/css/components/collections.css +58 -58
  15. package/css/components/datepicker.css +55 -53
  16. package/css/components/doc-search.css +63 -63
  17. package/css/components/doc-tabs.css +1 -1
  18. package/css/components/draggable.css +69 -69
  19. package/css/components/dropdown.css +48 -48
  20. package/css/components/fab.css +60 -60
  21. package/css/components/flow.css +55 -55
  22. package/css/components/footer.css +52 -52
  23. package/css/components/forms.css +373 -373
  24. package/css/components/image-box.css +39 -39
  25. package/css/components/modals.css +53 -49
  26. package/css/components/music-player.css +150 -150
  27. package/css/components/navbar.css +71 -71
  28. package/css/components/pagination.css +50 -50
  29. package/css/components/preloader.css +18 -18
  30. package/css/components/progress.css +16 -16
  31. package/css/components/rating.css +18 -18
  32. package/css/components/ripple.css +10 -10
  33. package/css/components/sidenav.css +67 -67
  34. package/css/components/skeleton.css +13 -13
  35. package/css/components/spinner.css +30 -30
  36. package/css/components/spotlight.css +27 -27
  37. package/css/components/stepper.css +36 -36
  38. package/css/components/suggest.css +35 -35
  39. package/css/components/tabs.css +46 -46
  40. package/css/components/theme-customizer.css +73 -73
  41. package/css/components/timeline.css +43 -43
  42. package/css/components/timepicker.css +32 -30
  43. package/css/components/toast.css +27 -27
  44. package/css/components/tooltips.css +77 -77
  45. package/css/components/transfer.css +35 -35
  46. package/css/components/tree.css +25 -25
  47. package/css/components/waypoint.css +12 -12
  48. package/css/core/colors.css +610 -610
  49. package/css/core/grid.css +127 -127
  50. package/css/core/helpers.css +338 -338
  51. package/css/core/tokens.css +69 -81
  52. package/css/core/typography.css +91 -91
  53. package/css/effects/morph.css +17 -17
  54. package/css/effects/parallax.css +6 -6
  55. package/css/utilities/color-utilities.css +273 -273
  56. package/css/utilities/media.css +2 -2
  57. package/css/utilities/shadow.css +75 -75
  58. package/css/utilities/table.css +40 -40
  59. package/css/utilities/transitions.css +38 -38
  60. package/css/vanduo.css +1 -2
  61. package/dist/build-info.json +3 -3
  62. package/dist/vanduo.cjs.js +104 -29
  63. package/dist/vanduo.cjs.js.map +2 -2
  64. package/dist/vanduo.cjs.min.js +5 -5
  65. package/dist/vanduo.cjs.min.js.map +3 -3
  66. package/dist/vanduo.css +4042 -4133
  67. package/dist/vanduo.css.map +1 -1
  68. package/dist/vanduo.esm.js +104 -29
  69. package/dist/vanduo.esm.js.map +2 -2
  70. package/dist/vanduo.esm.min.js +5 -5
  71. package/dist/vanduo.esm.min.js.map +3 -3
  72. package/dist/vanduo.js +104 -29
  73. package/dist/vanduo.js.map +2 -2
  74. package/dist/vanduo.min.css +2 -2
  75. package/dist/vanduo.min.css.map +1 -1
  76. package/dist/vanduo.min.js +5 -5
  77. package/dist/vanduo.min.js.map +3 -3
  78. package/js/components/affix.js +2 -2
  79. package/js/components/datepicker.js +51 -4
  80. package/js/components/image-box.js +2 -2
  81. package/js/components/morph.js +1 -1
  82. package/js/components/music-player.js +11 -11
  83. package/js/components/navbar.js +1 -1
  84. package/js/components/preloader.js +1 -1
  85. package/js/components/theme-customizer.js +4 -4
  86. package/js/components/timepicker.js +48 -6
  87. package/js/components/vd-hex.js +8 -10
  88. package/package.json +1 -1
  89. package/css/core/vd-aliases.css +0 -108
@@ -5,15 +5,15 @@
5
5
 
6
6
  :root {
7
7
  /* Theme Customizer Variables */
8
- --customizer-width: 320px;
9
- --customizer-padding: 1rem;
10
- --customizer-gap: 0.75rem;
11
- --customizer-swatch-size: 28px;
12
- --customizer-radius-btn-width: 48px;
13
- --customizer-bg: var(--vd-bg-primary);
14
- --customizer-border: var(--vd-border-color);
15
- --customizer-shadow: var(--shadow-lg);
16
- --customizer-z-index: 1050;
8
+ --vd-customizer-width: 320px;
9
+ --vd-customizer-padding: 1rem;
10
+ --vd-customizer-gap: 0.75rem;
11
+ --vd-customizer-swatch-size: 28px;
12
+ --vd-customizer-radius-btn-width: 48px;
13
+ --vd-customizer-bg: var(--vd-bg-primary);
14
+ --vd-customizer-border: var(--vd-border-color);
15
+ --vd-customizer-shadow: var(--vd-shadow-lg);
16
+ --vd-customizer-z-index: 1050;
17
17
  }
18
18
 
19
19
  /* ==========================================================================
@@ -25,15 +25,15 @@ body > .vd-theme-customizer-panel {
25
25
  /* top is set dynamically by JS based on actual navbar height */
26
26
  top: 55px;
27
27
  right: 0;
28
- width: var(--customizer-width);
28
+ width: var(--vd-customizer-width);
29
29
  max-height: calc(100vh - 55px);
30
30
  overflow-y: auto;
31
31
  padding: 0; /* Override .vd-navbar-fixed ~ * padding-top rule */
32
- background-color: var(--customizer-bg);
33
- border: 1px solid var(--customizer-border);
34
- border-radius: calc(var(--radius-scale, 0.25) * 1rem);
35
- box-shadow: var(--customizer-shadow);
36
- z-index: var(--customizer-z-index);
32
+ background-color: var(--vd-customizer-bg);
33
+ border: 1px solid var(--vd-customizer-border);
34
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 1rem);
35
+ box-shadow: var(--vd-customizer-shadow);
36
+ z-index: var(--vd-customizer-z-index);
37
37
  opacity: 0;
38
38
  visibility: hidden;
39
39
  transform: translateY(-10px);
@@ -54,23 +54,23 @@ body > .vd-theme-customizer-panel.is-open {
54
54
  display: flex;
55
55
  align-items: center;
56
56
  justify-content: space-between;
57
- padding: 0.5rem var(--customizer-padding) 0.75rem;
57
+ padding: 0.5rem var(--vd-customizer-padding) 0.75rem;
58
58
  border-bottom: 1px solid var(--vd-border-color);
59
59
  }
60
60
 
61
61
  .tc-title {
62
- font-size: var(--font-size-base);
63
- font-weight: var(--font-weight-semibold);
62
+ font-size: var(--vd-font-size-base);
63
+ font-weight: var(--vd-font-weight-semibold);
64
64
  color: var(--vd-text-primary);
65
65
  margin: 0;
66
66
  }
67
67
 
68
68
  .tc-body {
69
- padding: var(--customizer-padding);
69
+ padding: var(--vd-customizer-padding);
70
70
  }
71
71
 
72
72
  .tc-footer {
73
- padding: 0.75rem var(--customizer-padding) 0.5rem;
73
+ padding: 0.75rem var(--vd-customizer-padding) 0.5rem;
74
74
  border-top: 1px solid var(--vd-border-color);
75
75
  }
76
76
 
@@ -85,8 +85,8 @@ body > .vd-theme-customizer-panel.is-open {
85
85
  .tc-label {
86
86
  display: block;
87
87
  margin-bottom: 0.5rem;
88
- font-size: var(--font-size-sm);
89
- font-weight: var(--font-weight-medium);
88
+ font-size: var(--vd-font-size-sm);
89
+ font-weight: var(--vd-font-weight-medium);
90
90
  color: var(--vd-text-primary);
91
91
  }
92
92
 
@@ -101,9 +101,9 @@ body > .vd-theme-customizer-panel.is-open {
101
101
  width: 100%;
102
102
  aspect-ratio: 1;
103
103
  padding: 0;
104
- background-color: var(--swatch-color);
104
+ background-color: var(--vd-swatch-color);
105
105
  border: 2px solid transparent;
106
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
106
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
107
107
  cursor: pointer;
108
108
  transition: all 0.15s ease;
109
109
  }
@@ -138,7 +138,7 @@ body > .vd-theme-customizer-panel.is-open {
138
138
  padding: 0.5rem 0.25rem;
139
139
  background: transparent;
140
140
  border: 1px solid var(--vd-border-color);
141
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
141
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
142
142
  cursor: pointer;
143
143
  transition: all 0.15s ease;
144
144
  }
@@ -148,12 +148,12 @@ body > .vd-theme-customizer-panel.is-open {
148
148
  width: 16px;
149
149
  height: 16px;
150
150
  border-radius: 50%;
151
- background-color: var(--swatch-color);
151
+ background-color: var(--vd-swatch-color);
152
152
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
153
153
  }
154
154
 
155
155
  .tc-neutral-swatch span {
156
- font-size: var(--font-size-xs);
156
+ font-size: var(--vd-font-size-xs);
157
157
  color: var(--vd-text-primary);
158
158
  }
159
159
 
@@ -187,18 +187,18 @@ body > .vd-theme-customizer-panel.is-open {
187
187
  background: transparent;
188
188
  border: 1px solid var(--vd-border-color);
189
189
  color: var(--vd-text-primary);
190
- font-size: var(--font-size-xs);
191
- font-weight: var(--font-weight-medium);
190
+ font-size: var(--vd-font-size-xs);
191
+ font-weight: var(--vd-font-weight-medium);
192
192
  cursor: pointer;
193
193
  transition: all 0.15s ease;
194
194
  }
195
195
 
196
196
  .tc-radius-btn:first-child {
197
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--radius-scale, 0.25) * 0.5rem);
197
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem);
198
198
  }
199
199
 
200
200
  .tc-radius-btn:last-child {
201
- border-radius: 0 calc(var(--radius-scale, 0.25) * 0.5rem) calc(var(--radius-scale, 0.25) * 0.5rem) 0;
201
+ border-radius: 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem) calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0;
202
202
  }
203
203
 
204
204
  .tc-radius-btn:not(:first-child) {
@@ -229,9 +229,9 @@ body > .vd-theme-customizer-panel.is-open {
229
229
  padding: 0.5rem 0.75rem;
230
230
  background-color: var(--vd-bg-primary);
231
231
  border: 1px solid var(--vd-border-color);
232
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
232
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
233
233
  color: var(--vd-text-primary);
234
- font-size: var(--font-size-sm);
234
+ font-size: var(--vd-font-size-sm);
235
235
  cursor: pointer;
236
236
  transition: border-color 0.15s ease;
237
237
  }
@@ -262,17 +262,17 @@ body > .vd-theme-customizer-panel.is-open {
262
262
  background: transparent;
263
263
  border: 1px solid var(--vd-border-color);
264
264
  color: var(--vd-text-primary);
265
- font-size: var(--font-size-xs);
265
+ font-size: var(--vd-font-size-xs);
266
266
  cursor: pointer;
267
267
  transition: all 0.15s ease;
268
268
  }
269
269
 
270
270
  .tc-mode-btn:first-child {
271
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--radius-scale, 0.25) * 0.5rem);
271
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem);
272
272
  }
273
273
 
274
274
  .tc-mode-btn:last-child {
275
- border-radius: 0 calc(var(--radius-scale, 0.25) * 0.5rem) calc(var(--radius-scale, 0.25) * 0.5rem) 0;
275
+ border-radius: 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem) calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0;
276
276
  }
277
277
 
278
278
  .tc-mode-btn:not(:first-child) {
@@ -320,7 +320,7 @@ body > .vd-theme-customizer-panel.is-open {
320
320
  padding: 0;
321
321
  background: transparent;
322
322
  border: 1px solid var(--vd-border-color);
323
- border-radius: var(--btn-border-radius);
323
+ border-radius: var(--vd-btn-border-radius);
324
324
  color: var(--vd-text-primary);
325
325
  cursor: pointer;
326
326
  transition: all 0.2s ease;
@@ -356,15 +356,15 @@ body > .vd-theme-customizer-panel.is-open {
356
356
  /* top is set dynamically by JS based on actual navbar height */
357
357
  top: 55px;
358
358
  right: 0;
359
- width: var(--customizer-width);
359
+ width: var(--vd-customizer-width);
360
360
  max-height: calc(100vh - 55px);
361
361
  overflow-y: auto;
362
362
  padding: 0; /* Override .vd-navbar-fixed ~ * padding-top rule */
363
- background-color: var(--customizer-bg);
364
- border: 1px solid var(--customizer-border);
365
- border-radius: calc(var(--radius-scale, 0.25) * 1rem);
366
- box-shadow: var(--customizer-shadow);
367
- z-index: var(--customizer-z-index);
363
+ background-color: var(--vd-customizer-bg);
364
+ border: 1px solid var(--vd-customizer-border);
365
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 1rem);
366
+ box-shadow: var(--vd-customizer-shadow);
367
+ z-index: var(--vd-customizer-z-index);
368
368
  opacity: 0;
369
369
  visibility: hidden;
370
370
  transform: translateY(-10px);
@@ -378,7 +378,7 @@ body > .vd-theme-customizer-panel.is-open {
378
378
  }
379
379
 
380
380
  .vd-theme-customizer-panel-inner {
381
- padding: var(--customizer-padding);
381
+ padding: var(--vd-customizer-padding);
382
382
  }
383
383
 
384
384
  /* ==========================================================================
@@ -398,8 +398,8 @@ body > .vd-theme-customizer-panel.is-open {
398
398
  align-items: center;
399
399
  gap: 0.375rem;
400
400
  margin-bottom: 0.625rem;
401
- font-size: var(--font-size-sm);
402
- font-weight: var(--font-weight-medium);
401
+ font-size: var(--vd-font-size-sm);
402
+ font-weight: var(--vd-font-weight-medium);
403
403
  color: var(--vd-text-primary);
404
404
  }
405
405
 
@@ -438,7 +438,7 @@ body > .vd-theme-customizer-panel.is-open {
438
438
  padding: 0.375rem 0.5rem;
439
439
  background: transparent;
440
440
  border: 1px solid var(--vd-border-color);
441
- border-radius: var(--btn-border-radius);
441
+ border-radius: var(--vd-btn-border-radius);
442
442
  cursor: pointer;
443
443
  transition: all 0.15s ease;
444
444
  text-align: left;
@@ -464,12 +464,12 @@ body > .vd-theme-customizer-panel.is-open {
464
464
  width: 12px;
465
465
  height: 12px;
466
466
  border-radius: 50%;
467
- background-color: var(--swatch-color);
467
+ background-color: var(--vd-swatch-color);
468
468
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
469
469
  }
470
470
 
471
471
  .customizer-swatch-label {
472
- font-size: var(--font-size-xs);
472
+ font-size: var(--vd-font-size-xs);
473
473
  color: var(--vd-text-primary);
474
474
  white-space: nowrap;
475
475
  overflow: hidden;
@@ -514,18 +514,18 @@ body > .vd-theme-customizer-panel.is-open {
514
514
  background: transparent;
515
515
  border: 1px solid var(--vd-border-color);
516
516
  color: var(--vd-text-primary);
517
- font-size: var(--font-size-xs);
518
- font-weight: var(--font-weight-medium);
517
+ font-size: var(--vd-font-size-xs);
518
+ font-weight: var(--vd-font-weight-medium);
519
519
  cursor: pointer;
520
520
  transition: all 0.15s ease;
521
521
  }
522
522
 
523
523
  .customizer-radius-btn:first-child {
524
- border-radius: var(--btn-border-radius) 0 0 var(--btn-border-radius);
524
+ border-radius: var(--vd-btn-border-radius) 0 0 var(--vd-btn-border-radius);
525
525
  }
526
526
 
527
527
  .customizer-radius-btn:last-child {
528
- border-radius: 0 var(--btn-border-radius) var(--btn-border-radius) 0;
528
+ border-radius: 0 var(--vd-btn-border-radius) var(--vd-btn-border-radius) 0;
529
529
  }
530
530
 
531
531
  .customizer-radius-btn:not(:first-child) {
@@ -591,17 +591,17 @@ body > .vd-theme-customizer-panel.is-open {
591
591
  background: transparent;
592
592
  border: 1px solid var(--vd-border-color);
593
593
  color: var(--vd-text-primary);
594
- font-size: var(--font-size-xs);
594
+ font-size: var(--vd-font-size-xs);
595
595
  cursor: pointer;
596
596
  transition: all 0.15s ease;
597
597
  }
598
598
 
599
599
  .customizer-mode-btn:first-child {
600
- border-radius: var(--btn-border-radius) 0 0 var(--btn-border-radius);
600
+ border-radius: var(--vd-btn-border-radius) 0 0 var(--vd-btn-border-radius);
601
601
  }
602
602
 
603
603
  .customizer-mode-btn:last-child {
604
- border-radius: 0 var(--btn-border-radius) var(--btn-border-radius) 0;
604
+ border-radius: 0 var(--vd-btn-border-radius) var(--vd-btn-border-radius) 0;
605
605
  }
606
606
 
607
607
  .customizer-mode-btn:not(:first-child) {
@@ -635,8 +635,8 @@ body > .vd-theme-customizer-panel.is-open {
635
635
  ========================================================================== */
636
636
 
637
637
  [data-theme="dark"] {
638
- --customizer-bg: var(--vd-bg-primary);
639
- --customizer-border: var(--vd-border-color);
638
+ --vd-customizer-bg: var(--vd-bg-primary);
639
+ --vd-customizer-border: var(--vd-border-color);
640
640
  }
641
641
 
642
642
  [data-theme="dark"] .customizer-swatch-dot,
@@ -648,15 +648,15 @@ body > .vd-theme-customizer-panel.is-open {
648
648
  [data-theme="dark"] .customizer-mode-btn.is-active,
649
649
  [data-theme="dark"] .tc-radius-btn.is-active,
650
650
  [data-theme="dark"] .tc-mode-btn.is-active {
651
- background-color: var(--gray-2);
652
- border-color: var(--gray-2);
653
- color: var(--gray-9);
651
+ background-color: var(--vd-gray-2);
652
+ border-color: var(--vd-gray-2);
653
+ color: var(--vd-gray-9);
654
654
  }
655
655
 
656
656
  @media (prefers-color-scheme: dark) {
657
657
  :root:not([data-theme]) {
658
- --customizer-bg: var(--vd-bg-primary);
659
- --customizer-border: var(--vd-border-color);
658
+ --vd-customizer-bg: var(--vd-bg-primary);
659
+ --vd-customizer-border: var(--vd-border-color);
660
660
  }
661
661
 
662
662
  :root:not([data-theme]) .customizer-swatch-dot,
@@ -668,9 +668,9 @@ body > .vd-theme-customizer-panel.is-open {
668
668
  :root:not([data-theme]) .customizer-mode-btn.is-active,
669
669
  :root:not([data-theme]) .tc-radius-btn.is-active,
670
670
  :root:not([data-theme]) .tc-mode-btn.is-active {
671
- background-color: var(--gray-2);
672
- border-color: var(--gray-2);
673
- color: var(--gray-9);
671
+ background-color: var(--vd-gray-2);
672
+ border-color: var(--vd-gray-2);
673
+ color: var(--vd-gray-9);
674
674
  }
675
675
  }
676
676
 
@@ -689,7 +689,7 @@ body > .vd-theme-customizer-panel.is-open {
689
689
  max-width: 320px;
690
690
  max-height: none;
691
691
  border: none;
692
- border-left: 1px solid var(--customizer-border);
692
+ border-left: 1px solid var(--vd-customizer-border);
693
693
  border-radius: 0;
694
694
  transform: none;
695
695
  opacity: 1;
@@ -729,7 +729,7 @@ body > .vd-theme-customizer-panel.is-open {
729
729
  padding: 0;
730
730
  background: transparent;
731
731
  border: 1px solid var(--vd-border-color);
732
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
732
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
733
733
  color: var(--vd-text-primary);
734
734
  cursor: pointer;
735
735
  }
@@ -746,7 +746,7 @@ body > .vd-theme-customizer-panel.is-open {
746
746
  right: 0;
747
747
  bottom: 0;
748
748
  background-color: rgba(0, 0, 0, 0.5);
749
- z-index: calc(var(--customizer-z-index) - 1);
749
+ z-index: calc(var(--vd-customizer-z-index) - 1);
750
750
  opacity: 0;
751
751
  visibility: hidden;
752
752
  transition: opacity 0.3s ease, visibility 0.3s ease;
@@ -803,8 +803,8 @@ body > .vd-theme-customizer-panel.is-open {
803
803
  }
804
804
 
805
805
  .customizer-title {
806
- font-size: var(--font-size-base);
807
- font-weight: var(--font-weight-semibold);
806
+ font-size: var(--vd-font-size-base);
807
+ font-weight: var(--vd-font-weight-semibold);
808
808
  color: var(--vd-text-primary);
809
809
  margin: 0;
810
810
  }
@@ -816,9 +816,9 @@ body > .vd-theme-customizer-panel.is-open {
816
816
  padding: 0.25rem 0.5rem;
817
817
  background: transparent;
818
818
  border: 1px solid var(--vd-border-color);
819
- border-radius: var(--btn-border-radius);
819
+ border-radius: var(--vd-btn-border-radius);
820
820
  color: var(--vd-text-muted);
821
- font-size: var(--font-size-xs);
821
+ font-size: var(--vd-font-size-xs);
822
822
  cursor: pointer;
823
823
  transition: all 0.15s ease;
824
824
  }
@@ -5,32 +5,32 @@
5
5
 
6
6
  :root {
7
7
  /* Timeline Colors */
8
- --timeline-line-color: var(--vd-border-color, #dee2e6);
9
- --timeline-marker-bg: var(--vd-color-primary, #0d6efd);
10
- --timeline-marker-color: #fff;
11
- --timeline-content-bg: var(--card-bg, #fff);
12
- --timeline-content-border: var(--vd-border-color, #dee2e6);
8
+ --vd-timeline-line-color: var(--vd-border-color, #dee2e6);
9
+ --vd-timeline-marker-bg: var(--vd-color-primary, #0d6efd);
10
+ --vd-timeline-marker-color: #fff;
11
+ --vd-timeline-content-bg: var(--vd-card-bg, #fff);
12
+ --vd-timeline-content-border: var(--vd-border-color, #dee2e6);
13
13
 
14
14
  /* Timeline Dimensions (Fibonacci) */
15
- --timeline-line-width: 2px;
16
- --timeline-marker-size: 0.8125rem; /* 13px - fib */
17
- --timeline-marker-size-lg: 2.125rem; /* 34px ~ fib */
18
- --timeline-spacing: 1.3125rem; /* 21px - fib */
19
- --timeline-content-padding: 0.8125rem; /* 13px - fib */
20
- --timeline-border-radius: var(--border-radius, 0.5rem);
15
+ --vd-timeline-line-width: 2px;
16
+ --vd-timeline-marker-size: 0.8125rem; /* 13px - fib */
17
+ --vd-timeline-marker-size-lg: 2.125rem; /* 34px ~ fib */
18
+ --vd-timeline-spacing: 1.3125rem; /* 21px - fib */
19
+ --vd-timeline-content-padding: 0.8125rem; /* 13px - fib */
20
+ --vd-timeline-border-radius: var(--vd-border-radius, 0.5rem);
21
21
  }
22
22
 
23
23
  [data-theme="dark"] {
24
- --timeline-line-color: var(--vd-color-gray-600, #6c757d);
25
- --timeline-content-bg: var(--card-bg, #2d2d44);
26
- --timeline-content-border: var(--vd-border-color, #3d3d5c);
24
+ --vd-timeline-line-color: var(--vd-color-gray-600, #6c757d);
25
+ --vd-timeline-content-bg: var(--vd-card-bg, #2d2d44);
26
+ --vd-timeline-content-border: var(--vd-border-color, #3d3d5c);
27
27
  }
28
28
 
29
29
  @media (prefers-color-scheme: dark) {
30
30
  :root:not([data-theme]) {
31
- --timeline-line-color: var(--vd-color-gray-600, #6c757d);
32
- --timeline-content-bg: var(--card-bg, #2d2d44);
33
- --timeline-content-border: var(--vd-border-color, #3d3d5c);
31
+ --vd-timeline-line-color: var(--vd-color-gray-600, #6c757d);
32
+ --vd-timeline-content-bg: var(--vd-card-bg, #2d2d44);
33
+ --vd-timeline-content-border: var(--vd-border-color, #3d3d5c);
34
34
  }
35
35
  }
36
36
 
@@ -38,7 +38,7 @@
38
38
 
39
39
  .vd-timeline {
40
40
  position: relative;
41
- padding-left: calc(var(--timeline-marker-size) / 2 + var(--timeline-spacing));
41
+ padding-left: calc(var(--vd-timeline-marker-size) / 2 + var(--vd-timeline-spacing));
42
42
  list-style: none;
43
43
  margin: 0;
44
44
  }
@@ -49,16 +49,16 @@
49
49
  position: absolute;
50
50
  top: 0;
51
51
  bottom: 0;
52
- left: calc(var(--timeline-marker-size) / 2 - var(--timeline-line-width) / 2);
53
- width: var(--timeline-line-width);
54
- background: var(--timeline-line-color);
52
+ left: calc(var(--vd-timeline-marker-size) / 2 - var(--vd-timeline-line-width) / 2);
53
+ width: var(--vd-timeline-line-width);
54
+ background: var(--vd-timeline-line-color);
55
55
  }
56
56
 
57
57
  /* ========== Item ========== */
58
58
 
59
59
  .vd-timeline-item {
60
60
  position: relative;
61
- padding-bottom: var(--timeline-spacing);
61
+ padding-bottom: var(--vd-timeline-spacing);
62
62
  }
63
63
 
64
64
  .vd-timeline-item:last-child {
@@ -69,35 +69,35 @@
69
69
 
70
70
  .vd-timeline-marker {
71
71
  position: absolute;
72
- left: calc(-1 * var(--timeline-spacing) - var(--timeline-marker-size) / 2);
72
+ left: calc(-1 * var(--vd-timeline-spacing) - var(--vd-timeline-marker-size) / 2);
73
73
  top: 0.25rem;
74
- width: var(--timeline-marker-size);
75
- height: var(--timeline-marker-size);
74
+ width: var(--vd-timeline-marker-size);
75
+ height: var(--vd-timeline-marker-size);
76
76
  border-radius: 50%;
77
- background: var(--timeline-marker-bg);
78
- border: 2px solid var(--timeline-content-bg);
79
- box-shadow: 0 0 0 2px var(--timeline-marker-bg);
77
+ background: var(--vd-timeline-marker-bg);
78
+ border: 2px solid var(--vd-timeline-content-bg);
79
+ box-shadow: 0 0 0 2px var(--vd-timeline-marker-bg);
80
80
  }
81
81
 
82
82
  /* Large marker with icon/text */
83
83
  .vd-timeline-marker-lg {
84
- width: var(--timeline-marker-size-lg);
85
- height: var(--timeline-marker-size-lg);
86
- left: calc(-1 * var(--timeline-spacing) - var(--timeline-marker-size-lg) / 2);
84
+ width: var(--vd-timeline-marker-size-lg);
85
+ height: var(--vd-timeline-marker-size-lg);
86
+ left: calc(-1 * var(--vd-timeline-spacing) - var(--vd-timeline-marker-size-lg) / 2);
87
87
  display: flex;
88
88
  align-items: center;
89
89
  justify-content: center;
90
- color: var(--timeline-marker-color);
90
+ color: var(--vd-timeline-marker-color);
91
91
  font-size: 0.875rem;
92
92
  }
93
93
 
94
94
  /* ========== Content ========== */
95
95
 
96
96
  .vd-timeline-content {
97
- background: var(--timeline-content-bg);
98
- border: 1px solid var(--timeline-content-border);
99
- border-radius: var(--timeline-border-radius);
100
- padding: var(--timeline-content-padding);
97
+ background: var(--vd-timeline-content-bg);
98
+ border: 1px solid var(--vd-timeline-content-border);
99
+ border-radius: var(--vd-timeline-border-radius);
100
+ padding: var(--vd-timeline-content-padding);
101
101
  }
102
102
 
103
103
  .vd-timeline-title {
@@ -147,7 +147,7 @@
147
147
 
148
148
  .vd-timeline-alternating .vd-timeline-item {
149
149
  width: 50%;
150
- padding-right: var(--timeline-spacing);
150
+ padding-right: var(--vd-timeline-spacing);
151
151
  padding-left: 0;
152
152
  }
153
153
 
@@ -158,28 +158,28 @@
158
158
 
159
159
  .vd-timeline-alternating .vd-timeline-item:nth-child(odd) .vd-timeline-marker {
160
160
  left: auto;
161
- right: calc(-1 * var(--timeline-marker-size) / 2 - 1px);
161
+ right: calc(-1 * var(--vd-timeline-marker-size) / 2 - 1px);
162
162
  }
163
163
 
164
164
  .vd-timeline-alternating .vd-timeline-item:nth-child(even) {
165
165
  margin-left: 50%;
166
- padding-left: var(--timeline-spacing);
166
+ padding-left: var(--vd-timeline-spacing);
167
167
  padding-right: 0;
168
168
  }
169
169
 
170
170
  .vd-timeline-alternating .vd-timeline-item:nth-child(even) .vd-timeline-marker {
171
- left: calc(-1 * var(--timeline-marker-size) / 2 - 1px);
171
+ left: calc(-1 * var(--vd-timeline-marker-size) / 2 - 1px);
172
172
  }
173
173
 
174
174
  /* ========== Responsive ========== */
175
175
 
176
176
  @media (max-width: 768px) {
177
177
  .vd-timeline-alternating {
178
- padding-left: calc(var(--timeline-marker-size) / 2 + var(--timeline-spacing));
178
+ padding-left: calc(var(--vd-timeline-marker-size) / 2 + var(--vd-timeline-spacing));
179
179
  }
180
180
 
181
181
  .vd-timeline-alternating::before {
182
- left: calc(var(--timeline-marker-size) / 2 - var(--timeline-line-width) / 2);
182
+ left: calc(var(--vd-timeline-marker-size) / 2 - var(--vd-timeline-line-width) / 2);
183
183
  transform: none;
184
184
  }
185
185
 
@@ -195,7 +195,7 @@
195
195
 
196
196
  .vd-timeline-alternating .vd-timeline-item:nth-child(odd) .vd-timeline-marker,
197
197
  .vd-timeline-alternating .vd-timeline-item:nth-child(even) .vd-timeline-marker {
198
- left: calc(-1 * var(--timeline-spacing) - var(--timeline-marker-size) / 2);
198
+ left: calc(-1 * var(--vd-timeline-spacing) - var(--vd-timeline-marker-size) / 2);
199
199
  right: auto;
200
200
  }
201
201
  }
@@ -4,45 +4,47 @@
4
4
  */
5
5
 
6
6
  :root {
7
- --tp-bg: var(--card-bg, #fff);
8
- --tp-border-color: var(--vd-border-color, #dee2e6);
9
- --tp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.12);
10
- --tp-item-hover-bg: var(--vd-bg-secondary, #f8f9fa);
11
- --tp-item-selected-bg: var(--vd-color-primary, #0d6efd);
12
- --tp-item-selected-color: #fff;
13
- --tp-padding: 0.5rem;
14
- --tp-item-padding: 0.3125rem 0.8125rem; /* 5px 13px - fib */
15
- --tp-max-height: 15rem;
16
- --tp-border-radius: var(--border-radius, 0.5rem);
17
- --tp-z-index: 1055;
7
+ --vd-tp-bg: var(--vd-card-bg, #fff);
8
+ --vd-tp-border-color: var(--vd-border-color, #dee2e6);
9
+ --vd-tp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.12);
10
+ --vd-tp-item-hover-bg: var(--vd-bg-secondary, #f8f9fa);
11
+ --vd-tp-item-selected-bg: var(--vd-color-primary, #0d6efd);
12
+ --vd-tp-item-selected-color: #fff;
13
+ --vd-tp-padding: 0.5rem;
14
+ --vd-tp-item-padding: 0.3125rem 0.8125rem; /* 5px 13px - fib */
15
+ --vd-tp-max-height: 15rem;
16
+ --vd-tp-border-radius: var(--vd-border-radius, 0.5rem);
17
+ --vd-tp-z-index: 1055;
18
18
  }
19
19
 
20
20
  [data-theme="dark"] {
21
- --tp-bg: var(--card-bg, #2d2d44);
22
- --tp-border-color: var(--vd-border-color, #3d3d5c);
23
- --tp-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
24
- --tp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
21
+ --vd-tp-bg: var(--vd-card-bg, #2d2d44);
22
+ --vd-tp-border-color: var(--vd-border-color, #3d3d5c);
23
+ --vd-tp-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
24
+ --vd-tp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
25
25
  }
26
26
 
27
27
  @media (prefers-color-scheme: dark) {
28
28
  :root:not([data-theme]) {
29
- --tp-bg: var(--card-bg, #2d2d44);
30
- --tp-border-color: var(--vd-border-color, #3d3d5c);
31
- --tp-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
32
- --tp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
29
+ --vd-tp-bg: var(--vd-card-bg, #2d2d44);
30
+ --vd-tp-border-color: var(--vd-border-color, #3d3d5c);
31
+ --vd-tp-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
32
+ --vd-tp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
33
33
  }
34
34
  }
35
35
 
36
36
  /* ========== Popup ========== */
37
37
 
38
38
  .vd-timepicker-popup {
39
- position: absolute;
40
- z-index: var(--tp-z-index);
41
- background: var(--tp-bg);
42
- border: 1px solid var(--tp-border-color);
43
- border-radius: var(--tp-border-radius);
44
- box-shadow: var(--tp-shadow);
45
- max-height: var(--tp-max-height);
39
+ position: fixed;
40
+ top: 0;
41
+ left: 0;
42
+ z-index: var(--vd-tp-z-index);
43
+ background: var(--vd-tp-bg);
44
+ border: 1px solid var(--vd-tp-border-color);
45
+ border-radius: var(--vd-tp-border-radius);
46
+ box-shadow: var(--vd-tp-shadow);
47
+ max-height: var(--vd-tp-max-height);
46
48
  overflow-y: auto;
47
49
  display: none;
48
50
  min-width: 8rem;
@@ -55,7 +57,7 @@
55
57
  /* ========== Time Items ========== */
56
58
 
57
59
  .vd-timepicker-item {
58
- padding: var(--tp-item-padding);
60
+ padding: var(--vd-tp-item-padding);
59
61
  cursor: pointer;
60
62
  font-size: 0.875rem;
61
63
  text-align: center;
@@ -64,12 +66,12 @@
64
66
  }
65
67
 
66
68
  .vd-timepicker-item:hover {
67
- background: var(--tp-item-hover-bg);
69
+ background: var(--vd-tp-item-hover-bg);
68
70
  }
69
71
 
70
72
  .vd-timepicker-item.is-selected {
71
- background: var(--tp-item-selected-bg);
72
- color: var(--tp-item-selected-color);
73
+ background: var(--vd-tp-item-selected-bg);
74
+ color: var(--vd-tp-item-selected-color);
73
75
  font-weight: 600;
74
76
  }
75
77