@vanduo-oss/framework 1.3.9 → 1.4.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.
Files changed (124) hide show
  1. package/README.md +89 -42
  2. package/css/components/affix.css +12 -12
  3. package/css/components/alerts.css +70 -70
  4. package/css/components/avatar.css +78 -78
  5. package/css/components/badges.css +67 -67
  6. package/css/components/breadcrumbs.css +32 -32
  7. package/css/components/bubble.css +40 -40
  8. package/css/components/button-group.css +2 -2
  9. package/css/components/buttons.css +157 -157
  10. package/css/components/cards.css +79 -79
  11. package/css/components/chips.css +50 -50
  12. package/css/components/code-snippet.css +132 -132
  13. package/css/components/collapsible.css +67 -67
  14. package/css/components/collections.css +68 -68
  15. package/css/components/datepicker.css +54 -54
  16. package/css/components/doc-search.css +96 -103
  17. package/css/components/doc-tabs.css +11 -11
  18. package/css/components/draggable.css +77 -77
  19. package/css/components/dropdown.css +50 -50
  20. package/css/components/expanding-cards.css +1 -1
  21. package/css/components/fab.css +61 -61
  22. package/css/components/flow.css +55 -55
  23. package/css/components/footer.css +62 -62
  24. package/css/components/forms.css +437 -425
  25. package/css/components/image-box.css +50 -54
  26. package/css/components/modals.css +51 -51
  27. package/css/components/music-player.css +150 -150
  28. package/css/components/navbar.css +80 -80
  29. package/css/components/pagination.css +51 -51
  30. package/css/components/preloader.css +19 -19
  31. package/css/components/progress.css +20 -20
  32. package/css/components/rating.css +19 -19
  33. package/css/components/ripple.css +10 -10
  34. package/css/components/sidenav.css +72 -72
  35. package/css/components/skeleton.css +17 -16
  36. package/css/components/spinner.css +33 -33
  37. package/css/components/spotlight.css +33 -33
  38. package/css/components/stepper.css +39 -39
  39. package/css/components/suggest.css +37 -37
  40. package/css/components/tabs.css +60 -60
  41. package/css/components/theme-customizer.css +154 -154
  42. package/css/components/timeline.css +50 -50
  43. package/css/components/timepicker.css +29 -29
  44. package/css/components/toast.css +53 -53
  45. package/css/components/tooltips.css +78 -78
  46. package/css/components/transfer.css +37 -37
  47. package/css/components/tree.css +28 -28
  48. package/css/components/waypoint.css +12 -12
  49. package/css/core/colors.css +640 -640
  50. package/css/core/grid.css +127 -132
  51. package/css/core/helpers.css +349 -349
  52. package/css/core/tokens.css +133 -67
  53. package/css/core/typography.css +105 -103
  54. package/css/effects/morph.css +21 -21
  55. package/css/effects/parallax.css +6 -6
  56. package/css/utilities/color-utilities.css +273 -273
  57. package/css/utilities/media.css +4 -4
  58. package/css/utilities/shadow.css +75 -75
  59. package/css/utilities/table.css +64 -64
  60. package/css/utilities/transitions.css +53 -41
  61. package/css/vanduo.css +14 -35
  62. package/dist/build-info.json +3 -3
  63. package/dist/vanduo.cjs.js +947 -307
  64. package/dist/vanduo.cjs.js.map +3 -3
  65. package/dist/vanduo.cjs.min.js +7 -7
  66. package/dist/vanduo.cjs.min.js.map +3 -3
  67. package/dist/vanduo.css +9650 -9656
  68. package/dist/vanduo.css.map +1 -1
  69. package/dist/vanduo.esm.js +947 -307
  70. package/dist/vanduo.esm.js.map +3 -3
  71. package/dist/vanduo.esm.min.js +7 -7
  72. package/dist/vanduo.esm.min.js.map +3 -3
  73. package/dist/vanduo.js +947 -307
  74. package/dist/vanduo.js.map +3 -3
  75. package/dist/vanduo.min.css +2 -2
  76. package/dist/vanduo.min.css.map +1 -1
  77. package/dist/vanduo.min.js +7 -7
  78. package/dist/vanduo.min.js.map +3 -3
  79. package/js/components/affix.js +4 -4
  80. package/js/components/bubble.js +3 -3
  81. package/js/components/code-snippet.js +129 -5
  82. package/js/components/collapsible.js +2 -3
  83. package/js/components/datepicker.js +2 -2
  84. package/js/components/doc-search.js +69 -11
  85. package/js/components/draggable.js +4 -4
  86. package/js/components/dropdown.js +2 -3
  87. package/js/components/expanding-cards.js +2 -2
  88. package/js/components/flow.js +2 -2
  89. package/js/components/font-switcher.js +23 -13
  90. package/js/components/glass.js +2 -2
  91. package/js/components/grid.js +19 -8
  92. package/js/components/image-box.js +51 -12
  93. package/js/components/lazy-load.js +81 -9
  94. package/js/components/modals.js +28 -12
  95. package/js/components/morph.js +3 -3
  96. package/js/components/music-player.js +13 -13
  97. package/js/components/navbar.js +3 -3
  98. package/js/components/pagination.js +2 -3
  99. package/js/components/parallax.js +9 -10
  100. package/js/components/preloader.js +15 -6
  101. package/js/components/rating.js +2 -2
  102. package/js/components/ripple.js +2 -2
  103. package/js/components/select.js +2 -3
  104. package/js/components/sidenav.js +43 -14
  105. package/js/components/spotlight.js +2 -2
  106. package/js/components/stepper.js +2 -2
  107. package/js/components/suggest.js +9 -3
  108. package/js/components/tabs.js +2 -2
  109. package/js/components/theme-customizer.js +155 -25
  110. package/js/components/theme-switcher.js +27 -16
  111. package/js/components/timeline.js +41 -12
  112. package/js/components/timepicker.js +2 -2
  113. package/js/components/toast.js +1 -1
  114. package/js/components/tooltips.js +4 -4
  115. package/js/components/transfer.js +2 -2
  116. package/js/components/tree.js +2 -2
  117. package/js/components/validate.js +2 -2
  118. package/js/components/vd-hex.js +10 -6
  119. package/js/components/waypoint.js +2 -2
  120. package/js/utils/helpers.js +7 -4
  121. package/js/utils/lifecycle.js +158 -83
  122. package/js/vanduo.js +203 -34
  123. package/package.json +2 -1
  124. package/css/core/vd-aliases.css +0 -60
@@ -4,21 +4,21 @@
4
4
  */
5
5
 
6
6
  :root {
7
- --spinner-size: 2rem;
8
- --spinner-border-width: 3px;
9
- --spinner-color: var(--color-primary);
10
- --spinner-speed: 0.65s;
7
+ --vd-spinner-size: 2rem;
8
+ --vd-spinner-border-width: 3px;
9
+ --vd-spinner-color: var(--vd-color-primary);
10
+ --vd-spinner-speed: 0.65s;
11
11
  }
12
12
 
13
13
  /* Border Spinner */
14
14
  .vd-spinner {
15
15
  display: inline-block;
16
- width: var(--spinner-size);
17
- height: var(--spinner-size);
18
- border: var(--spinner-border-width) solid var(--border-color, #e9ecef);
19
- border-top-color: var(--spinner-color);
16
+ width: var(--vd-spinner-size);
17
+ height: var(--vd-spinner-size);
18
+ border: var(--vd-spinner-border-width) solid var(--vd-border-color, #e9ecef);
19
+ border-top-color: var(--vd-spinner-color);
20
20
  border-radius: 50%;
21
- animation: spinner-rotate var(--spinner-speed) linear infinite;
21
+ animation: spinner-rotate var(--vd-spinner-speed) linear infinite;
22
22
  }
23
23
 
24
24
  @keyframes spinner-rotate {
@@ -40,7 +40,7 @@
40
40
  width: 8px;
41
41
  height: 8px;
42
42
  border-radius: 50%;
43
- background-color: var(--spinner-color);
43
+ background-color: var(--vd-spinner-color);
44
44
  animation: spinner-dots-bounce 1.4s ease-in-out infinite both;
45
45
  }
46
46
 
@@ -60,9 +60,9 @@
60
60
  /* Growing Spinner */
61
61
  .vd-spinner-grow {
62
62
  display: inline-block;
63
- width: var(--spinner-size);
64
- height: var(--spinner-size);
65
- background-color: var(--spinner-color);
63
+ width: var(--vd-spinner-size);
64
+ height: var(--vd-spinner-size);
65
+ background-color: var(--vd-spinner-color);
66
66
  border-radius: 50%;
67
67
  opacity: 0;
68
68
  animation: spinner-grow 0.75s linear infinite;
@@ -74,25 +74,25 @@
74
74
  }
75
75
 
76
76
  /* Size Variants */
77
- .vd-spinner-xs { --spinner-size: 1rem; --spinner-border-width: 2px; }
78
- .vd-spinner-sm { --spinner-size: 1.5rem; --spinner-border-width: 2px; }
79
- .vd-spinner-lg { --spinner-size: 3rem; --spinner-border-width: 4px; }
80
- .vd-spinner-xl { --spinner-size: 4rem; --spinner-border-width: 5px; }
77
+ .vd-spinner-xs { --vd-spinner-size: 1rem; --vd-spinner-border-width: 2px; }
78
+ .vd-spinner-sm { --vd-spinner-size: 1.5rem; --vd-spinner-border-width: 2px; }
79
+ .vd-spinner-lg { --vd-spinner-size: 3rem; --vd-spinner-border-width: 4px; }
80
+ .vd-spinner-xl { --vd-spinner-size: 4rem; --vd-spinner-border-width: 5px; }
81
81
 
82
82
  /* Color Variants */
83
- .vd-spinner-success { --spinner-color: var(--color-success); }
84
- .vd-spinner-warning { --spinner-color: var(--color-warning); }
85
- .vd-spinner-error { --spinner-color: var(--color-error); }
86
- .vd-spinner-info { --spinner-color: var(--color-info); }
87
- .vd-spinner-light { --spinner-color: #fff; }
88
- .vd-spinner-dark { --spinner-color: var(--text-primary); }
83
+ .vd-spinner-success { --vd-spinner-color: var(--vd-color-success); }
84
+ .vd-spinner-warning { --vd-spinner-color: var(--vd-color-warning); }
85
+ .vd-spinner-error { --vd-spinner-color: var(--vd-color-error); }
86
+ .vd-spinner-info { --vd-spinner-color: var(--vd-color-info); }
87
+ .vd-spinner-light { --vd-spinner-color: #fff; }
88
+ .vd-spinner-dark { --vd-spinner-color: var(--vd-text-primary); }
89
89
 
90
90
  /* Centering Helper */
91
91
  .vd-spinner-center {
92
92
  display: flex;
93
93
  justify-content: center;
94
94
  align-items: center;
95
- padding: var(--spacing-5, 1rem);
95
+ padding: var(--vd-spacing-5, 1rem);
96
96
  }
97
97
 
98
98
  /* Quad-Spinner Loader — signature Vanduo 2x2 grid loader */
@@ -114,12 +114,12 @@
114
114
  }
115
115
 
116
116
  .vd-dynamic-loader-grid .vd-spinner {
117
- --spinner-size: 1.125rem;
118
- --spinner-border-width: 2px;
119
- --spinner-speed: 0.9s;
117
+ --vd-spinner-size: 1.125rem;
118
+ --vd-spinner-border-width: 2px;
119
+ --vd-spinner-speed: 0.9s;
120
120
 
121
- border-color: var(--border-color, #d9d9d9);
122
- border-top-color: var(--spinner-color);
121
+ border-color: var(--vd-border-color, #d9d9d9);
122
+ border-top-color: var(--vd-spinner-color);
123
123
  }
124
124
 
125
125
  .vd-dynamic-loader-grid .vd-spinner:nth-child(1) {
@@ -139,8 +139,8 @@
139
139
  }
140
140
 
141
141
  .vd-dynamic-loader-text {
142
- color: var(--text-muted);
143
- font-size: var(--font-size-sm, 0.8125rem);
142
+ color: var(--vd-text-muted);
143
+ font-size: var(--vd-font-size-sm, 0.8125rem);
144
144
  }
145
145
 
146
146
  /* Quad-Spinner overlaying a skeleton card */
@@ -149,8 +149,8 @@
149
149
  min-height: 300px;
150
150
  padding: 2rem;
151
151
  overflow: hidden;
152
- border-radius: var(--btn-border-radius, 0.5rem);
153
- border: 1px solid var(--border-color);
152
+ border-radius: var(--vd-btn-border-radius, 0.5rem);
153
+ border: 1px solid var(--vd-border-color);
154
154
  }
155
155
 
156
156
  .vd-dynamic-loader-card > .vd-dynamic-loader {
@@ -4,28 +4,28 @@
4
4
  */
5
5
 
6
6
  :root {
7
- --spotlight-overlay-bg: rgba(0, 0, 0, 0.5);
8
- --spotlight-tooltip-bg: var(--card-bg, #fff);
9
- --spotlight-tooltip-color: var(--text-primary, #212529);
10
- --spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.15);
11
- --spotlight-tooltip-padding: 1.3125rem; /* 21px - fib */
12
- --spotlight-tooltip-radius: var(--card-border-radius, var(--btn-border-radius-lg, 0.5rem));
13
- --spotlight-tooltip-max-width: 21rem; /* 336px - fib×16 */
14
- --spotlight-highlight-padding: 0.5rem; /* 8px - fib */
7
+ --vd-spotlight-overlay-bg: rgba(0, 0, 0, 0.5);
8
+ --vd-spotlight-tooltip-bg: var(--vd-card-bg, #fff);
9
+ --vd-spotlight-tooltip-color: var(--vd-text-primary, #212529);
10
+ --vd-spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.15);
11
+ --vd-spotlight-tooltip-padding: 1.3125rem; /* 21px - fib */
12
+ --vd-spotlight-tooltip-radius: var(--vd-card-border-radius, var(--vd-btn-border-radius-lg, 0.5rem));
13
+ --vd-spotlight-tooltip-max-width: 21rem; /* 336px - fib×16 */
14
+ --vd-spotlight-highlight-padding: 0.5rem; /* 8px - fib */
15
15
  /* Match card/modal surfaces so the cutout reads like other rounded UI (not the smaller base button token). */
16
- --spotlight-target-radius: var(--card-border-radius, var(--btn-border-radius-lg, var(--btn-border-radius, 0.25rem)));
17
- --spotlight-z-index: 1080;
16
+ --vd-spotlight-target-radius: var(--vd-card-border-radius, var(--vd-btn-border-radius-lg, var(--vd-btn-border-radius, 0.25rem)));
17
+ --vd-spotlight-z-index: 1080;
18
18
  }
19
19
 
20
20
  [data-theme="dark"] {
21
- --spotlight-tooltip-bg: var(--card-bg, #2d2d44);
22
- --spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
21
+ --vd-spotlight-tooltip-bg: var(--vd-card-bg, #2d2d44);
22
+ --vd-spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
23
23
  }
24
24
 
25
25
  @media (prefers-color-scheme: dark) {
26
26
  :root:not([data-theme]) {
27
- --spotlight-tooltip-bg: var(--card-bg, #2d2d44);
28
- --spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
27
+ --vd-spotlight-tooltip-bg: var(--vd-card-bg, #2d2d44);
28
+ --vd-spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
29
29
  }
30
30
  }
31
31
 
@@ -37,7 +37,7 @@
37
37
  left: 0;
38
38
  width: 100vw;
39
39
  height: 100vh;
40
- z-index: var(--spotlight-z-index);
40
+ z-index: var(--vd-spotlight-z-index);
41
41
  pointer-events: auto;
42
42
  transition: opacity 0.3s ease;
43
43
  }
@@ -46,13 +46,13 @@
46
46
 
47
47
  .vd-spotlight-tooltip {
48
48
  position: absolute;
49
- z-index: calc(var(--spotlight-z-index) + 2);
50
- background: var(--spotlight-tooltip-bg);
51
- color: var(--spotlight-tooltip-color);
52
- padding: var(--spotlight-tooltip-padding);
53
- border-radius: var(--spotlight-tooltip-radius);
54
- box-shadow: var(--spotlight-tooltip-shadow);
55
- max-width: var(--spotlight-tooltip-max-width);
49
+ z-index: calc(var(--vd-spotlight-z-index) + 2);
50
+ background: var(--vd-spotlight-tooltip-bg);
51
+ color: var(--vd-spotlight-tooltip-color);
52
+ padding: var(--vd-spotlight-tooltip-padding);
53
+ border-radius: var(--vd-spotlight-tooltip-radius);
54
+ box-shadow: var(--vd-spotlight-tooltip-shadow);
55
+ max-width: var(--vd-spotlight-tooltip-max-width);
56
56
  }
57
57
 
58
58
  .vd-spotlight-title {
@@ -78,7 +78,7 @@
78
78
 
79
79
  .vd-spotlight-counter {
80
80
  font-size: 0.75rem;
81
- color: var(--text-muted, #6c757d);
81
+ color: var(--vd-text-muted, #6c757d);
82
82
  }
83
83
 
84
84
  .vd-spotlight-actions {
@@ -88,8 +88,8 @@
88
88
 
89
89
  .vd-spotlight-btn {
90
90
  padding: 0.3125rem 0.8125rem; /* 5px 13px - fib */
91
- border: 1px solid var(--border-color, #dee2e6);
92
- border-radius: var(--btn-border-radius-sm, 0.25rem);
91
+ border: 1px solid var(--vd-border-color, #dee2e6);
92
+ border-radius: var(--vd-btn-border-radius-sm, 0.25rem);
93
93
  background: transparent;
94
94
  cursor: pointer;
95
95
  font-size: 0.8125rem;
@@ -97,28 +97,28 @@
97
97
  }
98
98
 
99
99
  .vd-spotlight-btn:hover {
100
- background: var(--bg-secondary, #f8f9fa);
100
+ background: var(--vd-bg-secondary, #f8f9fa);
101
101
  }
102
102
 
103
103
  .vd-spotlight-btn-primary {
104
- background: var(--color-primary, #0d6efd);
104
+ background: var(--vd-color-primary, #0d6efd);
105
105
  color: #fff;
106
- border-color: var(--color-primary, #0d6efd);
106
+ border-color: var(--vd-color-primary, #0d6efd);
107
107
  }
108
108
 
109
109
  .vd-spotlight-btn-primary:hover {
110
- background: var(--color-primary-dark, #0b5ed7);
110
+ background: var(--vd-color-primary-dark, #0b5ed7);
111
111
  }
112
112
 
113
113
  /* ========== Highlighted Target ========== */
114
114
 
115
115
  .vd-spotlight-target {
116
116
  position: relative;
117
- z-index: calc(var(--spotlight-z-index) + 1);
117
+ z-index: calc(var(--vd-spotlight-z-index) + 1);
118
118
  isolation: isolate;
119
119
  overflow: visible;
120
120
  /* box-shadow cutout follows border-radius; !important wins over consumer utilities (e.g. docs demos) */
121
- border-radius: var(--spotlight-target-radius) !important;
122
- box-shadow: 0 0 0 var(--spotlight-highlight-padding) rgba(13, 110, 253, 0.25),
123
- 0 0 0 9999px var(--spotlight-overlay-bg);
121
+ border-radius: var(--vd-spotlight-target-radius) !important;
122
+ box-shadow: 0 0 0 var(--vd-spotlight-highlight-padding) rgba(13, 110, 253, 0.25),
123
+ 0 0 0 9999px var(--vd-spotlight-overlay-bg);
124
124
  }
@@ -5,29 +5,29 @@
5
5
 
6
6
  :root {
7
7
  /* Stepper Colors */
8
- --stepper-active-color: var(--color-primary, #0d6efd);
9
- --stepper-completed-color: var(--color-success, #198754);
10
- --stepper-error-color: var(--color-danger, #dc3545);
11
- --stepper-pending-color: var(--color-gray-400, #ced4da);
12
- --stepper-text-color: var(--text-primary, #212529);
13
- --stepper-line-color: var(--border-color, #dee2e6);
8
+ --vd-stepper-active-color: var(--vd-color-primary, #0d6efd);
9
+ --vd-stepper-completed-color: var(--vd-color-success, #198754);
10
+ --vd-stepper-error-color: var(--vd-color-danger, #dc3545);
11
+ --vd-stepper-pending-color: var(--vd-color-gray-400, #ced4da);
12
+ --vd-stepper-text-color: var(--vd-text-primary, #212529);
13
+ --vd-stepper-line-color: var(--vd-border-color, #dee2e6);
14
14
 
15
15
  /* Stepper Dimensions (Fibonacci) */
16
- --stepper-circle-size: 2.125rem; /* 34px ~ fib */
17
- --stepper-line-width: 2px;
18
- --stepper-gap: 0.5rem; /* 8px - fib */
19
- --stepper-connector-gap: 0.8125rem; /* 13px - fib */
16
+ --vd-stepper-circle-size: 2.125rem; /* 34px ~ fib */
17
+ --vd-stepper-line-width: 2px;
18
+ --vd-stepper-gap: 0.5rem; /* 8px - fib */
19
+ --vd-stepper-connector-gap: 0.8125rem; /* 13px - fib */
20
20
  }
21
21
 
22
22
  [data-theme="dark"] {
23
- --stepper-pending-color: var(--color-gray-600, #6c757d);
24
- --stepper-line-color: var(--color-gray-600, #6c757d);
23
+ --vd-stepper-pending-color: var(--vd-color-gray-600, #6c757d);
24
+ --vd-stepper-line-color: var(--vd-color-gray-600, #6c757d);
25
25
  }
26
26
 
27
27
  @media (prefers-color-scheme: dark) {
28
28
  :root:not([data-theme]) {
29
- --stepper-pending-color: var(--color-gray-600, #6c757d);
30
- --stepper-line-color: var(--color-gray-600, #6c757d);
29
+ --vd-stepper-pending-color: var(--vd-color-gray-600, #6c757d);
30
+ --vd-stepper-line-color: var(--vd-color-gray-600, #6c757d);
31
31
  }
32
32
  }
33
33
 
@@ -53,11 +53,11 @@
53
53
  .vd-stepper-item:not(:last-child)::after {
54
54
  content: '';
55
55
  position: absolute;
56
- top: calc(var(--stepper-circle-size) / 2);
57
- left: calc(50% + var(--stepper-circle-size) / 2 + var(--stepper-connector-gap));
58
- right: calc(-50% + var(--stepper-circle-size) / 2 + var(--stepper-connector-gap));
59
- height: var(--stepper-line-width);
60
- background: var(--stepper-line-color);
56
+ top: calc(var(--vd-stepper-circle-size) / 2);
57
+ left: calc(50% + var(--vd-stepper-circle-size) / 2 + var(--vd-stepper-connector-gap));
58
+ right: calc(-50% + var(--vd-stepper-circle-size) / 2 + var(--vd-stepper-connector-gap));
59
+ height: var(--vd-stepper-line-width);
60
+ background: var(--vd-stepper-line-color);
61
61
  z-index: 0;
62
62
  }
63
63
 
@@ -66,11 +66,11 @@
66
66
  display: flex;
67
67
  align-items: center;
68
68
  justify-content: center;
69
- width: var(--stepper-circle-size);
70
- height: var(--stepper-circle-size);
69
+ width: var(--vd-stepper-circle-size);
70
+ height: var(--vd-stepper-circle-size);
71
71
  border-radius: 50%;
72
- border: var(--stepper-line-width) solid var(--stepper-pending-color);
73
- background: var(--bg-primary, #fff);
72
+ border: var(--vd-stepper-line-width) solid var(--vd-stepper-pending-color);
73
+ background: var(--vd-bg-primary, #fff);
74
74
  font-weight: 600;
75
75
  font-size: 0.875rem;
76
76
  z-index: 1;
@@ -79,53 +79,53 @@
79
79
  }
80
80
 
81
81
  .vd-stepper-label {
82
- margin-top: var(--stepper-gap);
82
+ margin-top: var(--vd-stepper-gap);
83
83
  font-size: 0.8125rem;
84
84
  font-weight: 500;
85
- color: var(--text-muted, #6c757d);
85
+ color: var(--vd-text-muted, #6c757d);
86
86
  }
87
87
 
88
88
  .vd-stepper-description {
89
89
  font-size: 0.75rem;
90
- color: var(--text-muted, #6c757d);
90
+ color: var(--vd-text-muted, #6c757d);
91
91
  margin-top: 0.125rem;
92
92
  }
93
93
 
94
94
  /* ========== States ========== */
95
95
 
96
96
  .vd-stepper-item.is-active .vd-stepper-circle {
97
- border-color: var(--stepper-active-color);
98
- background: var(--stepper-active-color);
97
+ border-color: var(--vd-stepper-active-color);
98
+ background: var(--vd-stepper-active-color);
99
99
  color: #fff;
100
100
  }
101
101
 
102
102
  .vd-stepper-item.is-active .vd-stepper-label {
103
- color: var(--stepper-active-color);
103
+ color: var(--vd-stepper-active-color);
104
104
  font-weight: 600;
105
105
  }
106
106
 
107
107
  .vd-stepper-item.is-completed .vd-stepper-circle {
108
- border-color: var(--stepper-completed-color);
109
- background: var(--stepper-completed-color);
108
+ border-color: var(--vd-stepper-completed-color);
109
+ background: var(--vd-stepper-completed-color);
110
110
  color: #fff;
111
111
  }
112
112
 
113
113
  .vd-stepper-item.is-completed::after {
114
- background: var(--stepper-completed-color);
114
+ background: var(--vd-stepper-completed-color);
115
115
  }
116
116
 
117
117
  .vd-stepper-item.is-completed .vd-stepper-label {
118
- color: var(--stepper-text-color);
118
+ color: var(--vd-stepper-text-color);
119
119
  }
120
120
 
121
121
  .vd-stepper-item.is-error .vd-stepper-circle {
122
- border-color: var(--stepper-error-color);
123
- background: var(--stepper-error-color);
122
+ border-color: var(--vd-stepper-error-color);
123
+ background: var(--vd-stepper-error-color);
124
124
  color: #fff;
125
125
  }
126
126
 
127
127
  .vd-stepper-item.is-error .vd-stepper-label {
128
- color: var(--stepper-error-color);
128
+ color: var(--vd-stepper-error-color);
129
129
  }
130
130
 
131
131
  /* ========== Vertical ========== */
@@ -144,11 +144,11 @@
144
144
  }
145
145
 
146
146
  .vd-stepper-vertical .vd-stepper-item:not(:last-child)::after {
147
- top: calc(var(--stepper-circle-size) + var(--stepper-connector-gap));
148
- left: calc(var(--stepper-circle-size) / 2);
147
+ top: calc(var(--vd-stepper-circle-size) + var(--vd-stepper-connector-gap));
148
+ left: calc(var(--vd-stepper-circle-size) / 2);
149
149
  right: auto;
150
150
  bottom: 0;
151
- width: var(--stepper-line-width);
151
+ width: var(--vd-stepper-line-width);
152
152
  height: auto;
153
153
  }
154
154
 
@@ -6,37 +6,37 @@
6
6
 
7
7
  :root {
8
8
  /* Suggest Colors */
9
- --suggest-bg: var(--card-bg, #fff);
10
- --suggest-border-color: var(--border-color, #dee2e6);
11
- --suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.1); /* 4px 13px - fib */
12
- --suggest-item-hover-bg: var(--bg-secondary, #f8f9fa);
13
- --suggest-item-active-bg: var(--color-primary, #0d6efd);
14
- --suggest-item-active-color: #fff;
15
- --suggest-highlight-color: var(--color-primary, #0d6efd);
9
+ --vd-suggest-bg: var(--vd-card-bg, #fff);
10
+ --vd-suggest-border-color: var(--vd-border-color, #dee2e6);
11
+ --vd-suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.1); /* 4px 13px - fib */
12
+ --vd-suggest-item-hover-bg: var(--vd-bg-secondary, #f8f9fa);
13
+ --vd-suggest-item-active-bg: var(--vd-color-primary, #0d6efd);
14
+ --vd-suggest-item-active-color: #fff;
15
+ --vd-suggest-highlight-color: var(--vd-color-primary, #0d6efd);
16
16
 
17
17
  /* Suggest Spacing (Fibonacci) */
18
- --suggest-padding: 0.3125rem 0; /* 5px - fib */
19
- --suggest-item-padding: 0.5rem 0.8125rem; /* 8px 13px - fib */
20
- --suggest-max-height: 15rem;
21
- --suggest-border-radius: var(--border-radius, 0.5rem);
18
+ --vd-suggest-padding: 0.3125rem 0; /* 5px - fib */
19
+ --vd-suggest-item-padding: 0.5rem 0.8125rem; /* 8px 13px - fib */
20
+ --vd-suggest-max-height: 15rem;
21
+ --vd-suggest-border-radius: var(--vd-border-radius, 0.5rem);
22
22
 
23
23
  /* Suggest Z-index */
24
- --suggest-z-index: 1050;
24
+ --vd-suggest-z-index: 1050;
25
25
  }
26
26
 
27
27
  [data-theme="dark"] {
28
- --suggest-bg: var(--card-bg, #2d2d44);
29
- --suggest-border-color: var(--border-color, #3d3d5c);
30
- --suggest-item-hover-bg: var(--bg-primary, #1a1a2e);
31
- --suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
28
+ --vd-suggest-bg: var(--vd-card-bg, #2d2d44);
29
+ --vd-suggest-border-color: var(--vd-border-color, #3d3d5c);
30
+ --vd-suggest-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
31
+ --vd-suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
32
32
  }
33
33
 
34
34
  @media (prefers-color-scheme: dark) {
35
35
  :root:not([data-theme]) {
36
- --suggest-bg: var(--card-bg, #2d2d44);
37
- --suggest-border-color: var(--border-color, #3d3d5c);
38
- --suggest-item-hover-bg: var(--bg-primary, #1a1a2e);
39
- --suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
36
+ --vd-suggest-bg: var(--vd-card-bg, #2d2d44);
37
+ --vd-suggest-border-color: var(--vd-border-color, #3d3d5c);
38
+ --vd-suggest-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
39
+ --vd-suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
40
40
  }
41
41
  }
42
42
 
@@ -56,15 +56,15 @@
56
56
  top: 100%;
57
57
  left: 0;
58
58
  right: 0;
59
- z-index: var(--suggest-z-index);
59
+ z-index: var(--vd-suggest-z-index);
60
60
  margin-top: 2px;
61
- padding: var(--suggest-padding);
62
- max-height: var(--suggest-max-height);
61
+ padding: var(--vd-suggest-padding);
62
+ max-height: var(--vd-suggest-max-height);
63
63
  overflow-y: auto;
64
- background: var(--suggest-bg);
65
- border: 1px solid var(--suggest-border-color);
66
- border-radius: var(--suggest-border-radius);
67
- box-shadow: var(--suggest-shadow);
64
+ background: var(--vd-suggest-bg);
65
+ border: 1px solid var(--vd-suggest-border-color);
66
+ border-radius: var(--vd-suggest-border-radius);
67
+ box-shadow: var(--vd-suggest-shadow);
68
68
  list-style: none;
69
69
  display: none;
70
70
  }
@@ -76,26 +76,26 @@
76
76
  /* ========== Items ========== */
77
77
 
78
78
  .vd-suggest-item {
79
- padding: var(--suggest-item-padding);
79
+ padding: var(--vd-suggest-item-padding);
80
80
  cursor: pointer;
81
81
  transition: background 0.15s ease;
82
- font-size: var(--font-size-base, 1rem);
82
+ font-size: var(--vd-font-size-base, 1rem);
83
83
  }
84
84
 
85
85
  .vd-suggest-item:hover,
86
86
  .vd-suggest-item.is-highlighted {
87
- background: var(--suggest-item-hover-bg);
87
+ background: var(--vd-suggest-item-hover-bg);
88
88
  }
89
89
 
90
90
  .vd-suggest-item.is-active {
91
- background: var(--suggest-item-active-bg);
92
- color: var(--suggest-item-active-color);
91
+ background: var(--vd-suggest-item-active-bg);
92
+ color: var(--vd-suggest-item-active-color);
93
93
  }
94
94
 
95
95
  /* Match highlight */
96
96
  .vd-suggest-match {
97
97
  font-weight: 600;
98
- color: var(--suggest-highlight-color);
98
+ color: var(--vd-suggest-highlight-color);
99
99
  }
100
100
 
101
101
  .vd-suggest-item.is-active .vd-suggest-match {
@@ -105,15 +105,15 @@
105
105
  /* ========== No Results ========== */
106
106
 
107
107
  .vd-suggest-empty {
108
- padding: var(--suggest-item-padding);
109
- color: var(--text-muted, #6c757d);
108
+ padding: var(--vd-suggest-item-padding);
109
+ color: var(--vd-text-muted, #6c757d);
110
110
  font-style: italic;
111
111
  }
112
112
 
113
113
  /* ========== Loading ========== */
114
114
 
115
115
  .vd-suggest-loading {
116
- padding: var(--suggest-item-padding);
116
+ padding: var(--vd-suggest-item-padding);
117
117
  text-align: center;
118
- color: var(--text-muted, #6c757d);
118
+ color: var(--vd-text-muted, #6c757d);
119
119
  }