@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
@@ -5,41 +5,41 @@
5
5
 
6
6
  :root {
7
7
  /* Datepicker Colors */
8
- --dp-bg: var(--card-bg, #fff);
9
- --dp-border-color: var(--border-color, #dee2e6);
10
- --dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.12); /* 4px 13px fib */
11
- --dp-header-bg: var(--color-primary, #0d6efd);
12
- --dp-header-color: #fff;
13
- --dp-day-hover-bg: var(--bg-secondary, #f8f9fa);
14
- --dp-day-selected-bg: var(--color-primary, #0d6efd);
15
- --dp-day-selected-color: #fff;
16
- --dp-day-today-color: var(--color-primary, #0d6efd);
17
- --dp-day-outside-color: var(--text-muted, #6c757d);
18
- --dp-day-disabled-color: var(--text-disabled, #adb5bd);
8
+ --vd-dp-bg: var(--vd-card-bg, #fff);
9
+ --vd-dp-border-color: var(--vd-border-color, #dee2e6);
10
+ --vd-dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.12); /* 4px 13px fib */
11
+ --vd-dp-header-bg: var(--vd-color-primary, #0d6efd);
12
+ --vd-dp-header-color: #fff;
13
+ --vd-dp-day-hover-bg: var(--vd-bg-secondary, #f8f9fa);
14
+ --vd-dp-day-selected-bg: var(--vd-color-primary, #0d6efd);
15
+ --vd-dp-day-selected-color: #fff;
16
+ --vd-dp-day-today-color: var(--vd-color-primary, #0d6efd);
17
+ --vd-dp-day-outside-color: var(--vd-text-muted, #6c757d);
18
+ --vd-dp-day-disabled-color: var(--vd-text-disabled, #adb5bd);
19
19
 
20
20
  /* Datepicker Spacing (Fibonacci) */
21
- --dp-padding: 0.5rem; /* 8px - fib */
22
- --dp-cell-size: 2.25rem; /* 36px */
23
- --dp-gap: 2px;
24
- --dp-border-radius: var(--border-radius, 0.5rem);
21
+ --vd-dp-padding: 0.5rem; /* 8px - fib */
22
+ --vd-dp-cell-size: 2.25rem; /* 36px */
23
+ --vd-dp-gap: 2px;
24
+ --vd-dp-border-radius: var(--vd-border-radius, 0.5rem);
25
25
 
26
26
  /* Datepicker Z-index */
27
- --dp-z-index: 1055;
27
+ --vd-dp-z-index: 1055;
28
28
  }
29
29
 
30
30
  [data-theme="dark"] {
31
- --dp-bg: var(--card-bg, #2d2d44);
32
- --dp-border-color: var(--border-color, #3d3d5c);
33
- --dp-day-hover-bg: var(--bg-primary, #1a1a2e);
34
- --dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
31
+ --vd-dp-bg: var(--vd-card-bg, #2d2d44);
32
+ --vd-dp-border-color: var(--vd-border-color, #3d3d5c);
33
+ --vd-dp-day-hover-bg: var(--vd-bg-primary, #1a1a2e);
34
+ --vd-dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
35
35
  }
36
36
 
37
37
  @media (prefers-color-scheme: dark) {
38
38
  :root:not([data-theme]) {
39
- --dp-bg: var(--card-bg, #2d2d44);
40
- --dp-border-color: var(--border-color, #3d3d5c);
41
- --dp-day-hover-bg: var(--bg-primary, #1a1a2e);
42
- --dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
39
+ --vd-dp-bg: var(--vd-card-bg, #2d2d44);
40
+ --vd-dp-border-color: var(--vd-border-color, #3d3d5c);
41
+ --vd-dp-day-hover-bg: var(--vd-bg-primary, #1a1a2e);
42
+ --vd-dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
43
43
  }
44
44
  }
45
45
 
@@ -47,12 +47,12 @@
47
47
 
48
48
  .vd-datepicker-popup {
49
49
  position: absolute;
50
- z-index: var(--dp-z-index);
51
- background: var(--dp-bg);
52
- border: 1px solid var(--dp-border-color);
53
- border-radius: var(--dp-border-radius);
54
- box-shadow: var(--dp-shadow);
55
- padding: var(--dp-padding);
50
+ z-index: var(--vd-dp-z-index);
51
+ background: var(--vd-dp-bg);
52
+ border: 1px solid var(--vd-dp-border-color);
53
+ border-radius: var(--vd-dp-border-radius);
54
+ box-shadow: var(--vd-dp-shadow);
55
+ padding: var(--vd-dp-padding);
56
56
  display: none;
57
57
  min-width: 17rem;
58
58
  }
@@ -73,12 +73,12 @@
73
73
 
74
74
  .vd-datepicker-title {
75
75
  font-weight: 600;
76
- font-size: var(--font-size-base, 1rem);
76
+ font-size: var(--vd-font-size-base, 1rem);
77
77
  cursor: pointer;
78
78
  }
79
79
 
80
80
  .vd-datepicker-title:hover {
81
- color: var(--dp-day-today-color);
81
+ color: var(--vd-dp-day-today-color);
82
82
  }
83
83
 
84
84
  .vd-datepicker-prev,
@@ -94,13 +94,13 @@
94
94
  background: transparent;
95
95
  cursor: pointer;
96
96
  font-size: 1rem;
97
- color: var(--text-primary, #212529);
97
+ color: var(--vd-text-primary, #212529);
98
98
  transition: background 0.15s ease;
99
99
  }
100
100
 
101
101
  .vd-datepicker-prev:hover,
102
102
  .vd-datepicker-next:hover {
103
- background: var(--dp-day-hover-bg);
103
+ background: var(--vd-dp-day-hover-bg);
104
104
  }
105
105
 
106
106
  /* ========== Calendar grid (weekday row + week rows) ========== */
@@ -108,7 +108,7 @@
108
108
  .vd-datepicker-grid {
109
109
  display: flex;
110
110
  flex-direction: column;
111
- gap: var(--dp-gap);
111
+ gap: var(--vd-dp-gap);
112
112
  }
113
113
 
114
114
  /* ========== Weekday Headers ========== */
@@ -116,11 +116,11 @@
116
116
  .vd-datepicker-weekdays {
117
117
  display: grid;
118
118
  grid-template-columns: repeat(7, 1fr);
119
- gap: var(--dp-gap);
119
+ gap: var(--vd-dp-gap);
120
120
  text-align: center;
121
121
  font-size: 0.75rem;
122
122
  font-weight: 600;
123
- color: var(--text-muted, #6c757d);
123
+ color: var(--vd-text-muted, #6c757d);
124
124
  padding-bottom: 0.25rem;
125
125
  }
126
126
 
@@ -130,15 +130,15 @@
130
130
  .vd-datepicker-row {
131
131
  display: grid;
132
132
  grid-template-columns: repeat(7, 1fr);
133
- gap: var(--dp-gap);
133
+ gap: var(--vd-dp-gap);
134
134
  }
135
135
 
136
136
  .vd-datepicker-day {
137
137
  display: flex;
138
138
  align-items: center;
139
139
  justify-content: center;
140
- width: var(--dp-cell-size);
141
- height: var(--dp-cell-size);
140
+ width: var(--vd-dp-cell-size);
141
+ height: var(--vd-dp-cell-size);
142
142
  border: none;
143
143
  border-radius: 50%;
144
144
  background: transparent;
@@ -149,26 +149,26 @@
149
149
  }
150
150
 
151
151
  .vd-datepicker-day:hover {
152
- background: var(--dp-day-hover-bg);
152
+ background: var(--vd-dp-day-hover-bg);
153
153
  }
154
154
 
155
155
  .vd-datepicker-day.is-today {
156
- color: var(--dp-day-today-color);
156
+ color: var(--vd-dp-day-today-color);
157
157
  font-weight: 700;
158
158
  }
159
159
 
160
160
  .vd-datepicker-day.is-selected {
161
- background: var(--dp-day-selected-bg);
162
- color: var(--dp-day-selected-color);
161
+ background: var(--vd-dp-day-selected-bg);
162
+ color: var(--vd-dp-day-selected-color);
163
163
  font-weight: 600;
164
164
  }
165
165
 
166
166
  .vd-datepicker-day.is-outside {
167
- color: var(--dp-day-outside-color);
167
+ color: var(--vd-dp-day-outside-color);
168
168
  }
169
169
 
170
170
  .vd-datepicker-day.is-disabled {
171
- color: var(--dp-day-disabled-color);
171
+ color: var(--vd-dp-day-disabled-color);
172
172
  cursor: not-allowed;
173
173
  pointer-events: none;
174
174
  }
@@ -177,14 +177,14 @@
177
177
 
178
178
  .vd-datepicker-day.is-range-start {
179
179
  border-radius: 50% 0 0 50%;
180
- background: var(--dp-day-selected-bg);
181
- color: var(--dp-day-selected-color);
180
+ background: var(--vd-dp-day-selected-bg);
181
+ color: var(--vd-dp-day-selected-color);
182
182
  }
183
183
 
184
184
  .vd-datepicker-day.is-range-end {
185
185
  border-radius: 0 50% 50% 0;
186
- background: var(--dp-day-selected-bg);
187
- color: var(--dp-day-selected-color);
186
+ background: var(--vd-dp-day-selected-bg);
187
+ color: var(--vd-dp-day-selected-color);
188
188
  }
189
189
 
190
190
  .vd-datepicker-day.is-in-range {
@@ -206,7 +206,7 @@
206
206
  .vd-datepicker-year-btn {
207
207
  padding: 0.5rem;
208
208
  border: none;
209
- border-radius: var(--dp-border-radius);
209
+ border-radius: var(--vd-dp-border-radius);
210
210
  background: transparent;
211
211
  cursor: pointer;
212
212
  text-align: center;
@@ -215,11 +215,11 @@
215
215
 
216
216
  .vd-datepicker-month-btn:hover,
217
217
  .vd-datepicker-year-btn:hover {
218
- background: var(--dp-day-hover-bg);
218
+ background: var(--vd-dp-day-hover-bg);
219
219
  }
220
220
 
221
221
  .vd-datepicker-month-btn.is-selected,
222
222
  .vd-datepicker-year-btn.is-selected {
223
- background: var(--dp-day-selected-bg);
224
- color: var(--dp-day-selected-color);
223
+ background: var(--vd-dp-day-selected-bg);
224
+ color: var(--vd-dp-day-selected-color);
225
225
  }
@@ -5,46 +5,46 @@
5
5
 
6
6
  :root {
7
7
  /* Search Input */
8
- --doc-search-input-bg: var(--input-bg);
9
- --doc-search-input-border: var(--input-border-color);
10
- --doc-search-input-focus-border: var(--color-primary);
11
- --doc-search-input-radius: var(--input-border-radius);
12
- --doc-search-input-padding-y: 0.5rem;
13
- --doc-search-input-padding-x: 0.75rem;
14
- --doc-search-input-padding-left: 30px;
8
+ --vd-doc-search-input-bg: var(--vd-input-bg);
9
+ --vd-doc-search-input-border: var(--vd-input-border-color);
10
+ --vd-doc-search-input-focus-border: var(--vd-color-primary);
11
+ --vd-doc-search-input-radius: var(--vd-input-border-radius);
12
+ --vd-doc-search-input-padding-y: 0.5rem;
13
+ --vd-doc-search-input-padding-x: 0.75rem;
14
+ --vd-doc-search-input-padding-left: 30px;
15
15
 
16
16
  /* Search Results */
17
- --doc-search-results-bg: var(--card-bg, var(--bg-primary));
18
- --doc-search-results-border: var(--border-color);
19
- --doc-search-results-shadow: var(--shadow-lg);
20
- --doc-search-results-max-height: 400px;
21
- --doc-search-results-radius: var(--input-border-radius);
17
+ --vd-doc-search-results-bg: var(--vd-card-bg, var(--vd-bg-primary));
18
+ --vd-doc-search-results-border: var(--vd-border-color);
19
+ --vd-doc-search-results-shadow: var(--vd-shadow-lg);
20
+ --vd-doc-search-results-max-height: 400px;
21
+ --vd-doc-search-results-radius: var(--vd-input-border-radius);
22
22
 
23
23
  /* Result Items */
24
- --doc-search-result-padding: 0.75rem 1rem;
25
- --doc-search-result-hover-bg: var(--color-primary-alpha-10, rgba(34, 184, 207, 0.1));
26
- --doc-search-result-active-bg: var(--color-primary-alpha-20, rgba(34, 184, 207, 0.2));
24
+ --vd-doc-search-result-padding: 0.75rem 1rem;
25
+ --vd-doc-search-result-hover-bg: var(--vd-color-primary-alpha-10, rgba(34, 184, 207, 0.1));
26
+ --vd-doc-search-result-active-bg: var(--vd-color-primary-alpha-20, rgba(34, 184, 207, 0.2));
27
27
 
28
28
  /* Highlight */
29
- --doc-search-highlight-bg: var(--color-warning-alpha-30, rgba(250, 176, 5, 0.3));
30
- --doc-search-highlight-color: inherit;
29
+ --vd-doc-search-highlight-bg: var(--vd-color-warning-alpha-30, rgba(250, 176, 5, 0.3));
30
+ --vd-doc-search-highlight-color: inherit;
31
31
 
32
32
  /* Shortcut Badge */
33
- --doc-search-shortcut-bg: var(--bg-secondary);
34
- --doc-search-shortcut-border: var(--border-color);
35
- --doc-search-shortcut-color: var(--text-muted);
33
+ --vd-doc-search-shortcut-bg: var(--vd-bg-secondary);
34
+ --vd-doc-search-shortcut-border: var(--vd-border-color);
35
+ --vd-doc-search-shortcut-color: var(--vd-text-muted);
36
36
  }
37
37
 
38
38
  /* Dark Theme Overrides */
39
39
  [data-theme="dark"] {
40
- --doc-search-results-bg: var(--bg-secondary);
41
- --doc-search-shortcut-bg: var(--bg-tertiary);
40
+ --vd-doc-search-results-bg: var(--vd-bg-secondary);
41
+ --vd-doc-search-shortcut-bg: var(--vd-bg-tertiary);
42
42
  }
43
43
 
44
44
  @media (prefers-color-scheme: dark) {
45
45
  :root:not([data-theme]) {
46
- --doc-search-results-bg: var(--bg-secondary);
47
- --doc-search-shortcut-bg: var(--bg-tertiary);
46
+ --vd-doc-search-results-bg: var(--vd-bg-secondary);
47
+ --vd-doc-search-shortcut-bg: var(--vd-bg-tertiary);
48
48
  }
49
49
  }
50
50
 
@@ -73,7 +73,7 @@
73
73
  left: 0.625rem;
74
74
  top: 50%;
75
75
  transform: translateY(-50%);
76
- color: var(--text-muted);
76
+ color: var(--vd-text-muted);
77
77
  font-size: 1.125rem;
78
78
  pointer-events: none;
79
79
  z-index: 1;
@@ -82,34 +82,34 @@
82
82
 
83
83
  .vd-doc-search-input:focus ~ .vd-doc-search-icon,
84
84
  .vd-doc-search-input-wrapper:focus-within .vd-doc-search-icon {
85
- color: var(--color-primary);
85
+ color: var(--vd-color-primary);
86
86
  }
87
87
 
88
88
  /* Search Input - input.vd-doc-search-input matches forms.css specificity so padding overrides base input[type="search"] */
89
89
  input.vd-doc-search-input {
90
90
  width: 100%;
91
- padding: var(--input-padding-y) var(--input-padding-x);
92
- padding-left: var(--doc-search-input-padding-left);
93
- font-family: var(--font-family-sans);
94
- font-size: var(--font-size-sm);
95
- line-height: var(--line-height-normal);
96
- color: var(--text-primary);
97
- background-color: var(--doc-search-input-bg);
98
- border: 1px solid var(--doc-search-input-border);
99
- border-radius: var(--doc-search-input-radius);
91
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
92
+ padding-left: var(--vd-doc-search-input-padding-left);
93
+ font-family: var(--vd-font-family-sans);
94
+ font-size: var(--vd-font-size-sm);
95
+ line-height: var(--vd-line-height-normal);
96
+ color: var(--vd-text-primary);
97
+ background-color: var(--vd-doc-search-input-bg);
98
+ border: 1px solid var(--vd-doc-search-input-border);
99
+ border-radius: var(--vd-doc-search-input-radius);
100
100
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
101
101
  appearance: none;
102
102
  }
103
103
 
104
104
  .vd-doc-search-input::placeholder {
105
- color: var(--text-muted);
105
+ color: var(--vd-text-muted);
106
106
  opacity: 1;
107
107
  }
108
108
 
109
109
  .vd-doc-search-input:focus {
110
110
  outline: none;
111
- border-color: var(--doc-search-input-focus-border);
112
- box-shadow: 0 0 0 3px var(--color-primary-alpha-20, rgba(34, 184, 207, 0.2));
111
+ border-color: var(--vd-doc-search-input-focus-border);
112
+ box-shadow: 0 0 0 3px var(--vd-color-primary-alpha-20, rgba(34, 184, 207, 0.2));
113
113
  }
114
114
 
115
115
  /* Clear the default search cancel button */
@@ -121,19 +121,19 @@ input.vd-doc-search-input {
121
121
  /* Keyboard Shortcut Badge */
122
122
  .vd-doc-search-shortcut {
123
123
  position: absolute;
124
- right: var(--doc-search-input-padding-x);
124
+ right: var(--vd-doc-search-input-padding-x);
125
125
  top: 50%;
126
126
  transform: translateY(-50%);
127
127
  display: inline-flex;
128
128
  align-items: center;
129
129
  gap: 0.125rem;
130
130
  padding: 0.125rem 0.375rem;
131
- font-family: var(--font-family-sans);
132
- font-size: var(--font-size-xs);
133
- font-weight: var(--font-weight-medium);
134
- color: var(--doc-search-shortcut-color);
135
- background-color: var(--doc-search-shortcut-bg);
136
- border: 1px solid var(--doc-search-shortcut-border);
131
+ font-family: var(--vd-font-family-sans);
132
+ font-size: var(--vd-font-size-xs);
133
+ font-weight: var(--vd-font-weight-medium);
134
+ color: var(--vd-doc-search-shortcut-color);
135
+ background-color: var(--vd-doc-search-shortcut-bg);
136
+ border: 1px solid var(--vd-doc-search-shortcut-border);
137
137
  border-radius: 4px;
138
138
  pointer-events: none;
139
139
  user-select: none;
@@ -156,13 +156,14 @@ input.vd-doc-search-input {
156
156
  z-index: 1000;
157
157
  display: none;
158
158
  margin-top: 0.5rem;
159
- background-color: var(--doc-search-results-bg);
160
- border: 1px solid var(--doc-search-results-border);
161
- border-radius: var(--doc-search-results-radius);
162
- box-shadow: var(--doc-search-results-shadow);
163
- max-height: var(--doc-search-results-max-height);
159
+ background-color: var(--vd-doc-search-results-bg);
160
+ border: 1px solid var(--vd-doc-search-results-border);
161
+ border-radius: var(--vd-doc-search-results-radius);
162
+ box-shadow: var(--vd-doc-search-results-shadow);
163
+ max-height: var(--vd-doc-search-results-max-height);
164
164
  overflow-y: auto;
165
165
  overflow-x: hidden;
166
+ animation: doc-search-fade-in 0.15s ease;
166
167
  }
167
168
 
168
169
  .vd-doc-search-results.is-open {
@@ -184,7 +185,7 @@ input.vd-doc-search-input {
184
185
  display: flex;
185
186
  align-items: flex-start;
186
187
  gap: 0.75rem;
187
- padding: var(--doc-search-result-padding);
188
+ padding: var(--vd-doc-search-result-padding);
188
189
  cursor: pointer;
189
190
  transition: background-color 0.1s ease;
190
191
  text-decoration: none;
@@ -192,12 +193,12 @@ input.vd-doc-search-input {
192
193
  }
193
194
 
194
195
  .vd-doc-search-result:hover {
195
- background-color: var(--doc-search-result-hover-bg);
196
+ background-color: var(--vd-doc-search-result-hover-bg);
196
197
  }
197
198
 
198
199
  .vd-doc-search-result.is-active,
199
200
  .vd-doc-search-result:focus {
200
- background-color: var(--doc-search-result-active-bg);
201
+ background-color: var(--vd-doc-search-result-active-bg);
201
202
  outline: none;
202
203
  }
203
204
 
@@ -209,9 +210,9 @@ input.vd-doc-search-input {
209
210
  justify-content: center;
210
211
  width: 2rem;
211
212
  height: 2rem;
212
- background-color: var(--color-primary-alpha-10, rgba(34, 184, 207, 0.1));
213
+ background-color: var(--vd-color-primary-alpha-10, rgba(34, 184, 207, 0.1));
213
214
  border-radius: 6px;
214
- color: var(--color-primary);
215
+ color: var(--vd-color-primary);
215
216
  font-size: 1rem;
216
217
  }
217
218
 
@@ -222,22 +223,22 @@ input.vd-doc-search-input {
222
223
  }
223
224
 
224
225
  .vd-doc-search-result-title {
225
- font-size: var(--font-size-sm);
226
- font-weight: var(--font-weight-medium);
227
- color: var(--text-primary);
226
+ font-size: var(--vd-font-size-sm);
227
+ font-weight: var(--vd-font-weight-medium);
228
+ color: var(--vd-text-primary);
228
229
  line-height: 1.4;
229
230
  margin-bottom: 0.125rem;
230
231
  }
231
232
 
232
233
  .vd-doc-search-result-category {
233
- font-size: var(--font-size-xs);
234
- color: var(--text-muted);
234
+ font-size: var(--vd-font-size-xs);
235
+ color: var(--vd-text-muted);
235
236
  margin-bottom: 0.25rem;
236
237
  }
237
238
 
238
239
  .vd-doc-search-result-excerpt {
239
- font-size: var(--font-size-xs);
240
- color: var(--text-secondary);
240
+ font-size: var(--vd-font-size-xs);
241
+ color: var(--vd-text-secondary);
241
242
  line-height: 1.4;
242
243
  display: -webkit-box;
243
244
  -webkit-line-clamp: 2;
@@ -248,8 +249,8 @@ input.vd-doc-search-input {
248
249
  /* Highlight matched text */
249
250
  .vd-doc-search-result mark,
250
251
  .vd-doc-search-highlight {
251
- background-color: var(--doc-search-highlight-bg);
252
- color: var(--doc-search-highlight-color);
252
+ background-color: var(--vd-doc-search-highlight-bg);
253
+ color: var(--vd-doc-search-highlight-color);
253
254
  padding: 0 0.125rem;
254
255
  border-radius: 2px;
255
256
  }
@@ -261,7 +262,7 @@ input.vd-doc-search-input {
261
262
  .vd-doc-search-empty {
262
263
  padding: 2rem 1rem;
263
264
  text-align: center;
264
- color: var(--text-muted);
265
+ color: var(--vd-text-muted);
265
266
  }
266
267
 
267
268
  .vd-doc-search-empty-icon {
@@ -271,15 +272,15 @@ input.vd-doc-search-input {
271
272
  }
272
273
 
273
274
  .vd-doc-search-empty-title {
274
- font-size: var(--font-size-sm);
275
- font-weight: var(--font-weight-medium);
276
- color: var(--text-primary);
275
+ font-size: var(--vd-font-size-sm);
276
+ font-weight: var(--vd-font-weight-medium);
277
+ color: var(--vd-text-primary);
277
278
  margin-bottom: 0.25rem;
278
279
  }
279
280
 
280
281
  .vd-doc-search-empty-text {
281
- font-size: var(--font-size-xs);
282
- color: var(--text-muted);
282
+ font-size: var(--vd-font-size-xs);
283
+ color: var(--vd-text-muted);
283
284
  }
284
285
 
285
286
  /* ============================================
@@ -289,15 +290,15 @@ input.vd-doc-search-input {
289
290
  .vd-doc-search-loading {
290
291
  padding: 1.5rem 1rem;
291
292
  text-align: center;
292
- color: var(--text-muted);
293
+ color: var(--vd-text-muted);
293
294
  }
294
295
 
295
296
  .vd-doc-search-loading-spinner {
296
297
  display: inline-block;
297
298
  width: 1.5rem;
298
299
  height: 1.5rem;
299
- border: 2px solid var(--border-color);
300
- border-top-color: var(--color-primary);
300
+ border: 2px solid var(--vd-border-color);
301
+ border-top-color: var(--vd-color-primary);
301
302
  border-radius: 50%;
302
303
  animation: doc-search-spin 0.6s linear infinite;
303
304
  }
@@ -318,9 +319,9 @@ input.vd-doc-search-input {
318
319
  justify-content: center;
319
320
  gap: 1rem;
320
321
  padding: 0.5rem 1rem;
321
- border-top: 1px solid var(--border-color);
322
- font-size: var(--font-size-xs);
323
- color: var(--text-muted);
322
+ border-top: 1px solid var(--vd-border-color);
323
+ font-size: var(--vd-font-size-xs);
324
+ color: var(--vd-text-muted);
324
325
  }
325
326
 
326
327
  .vd-doc-search-footer kbd {
@@ -330,11 +331,11 @@ input.vd-doc-search-input {
330
331
  min-width: 1.25rem;
331
332
  height: 1.25rem;
332
333
  padding: 0 0.25rem;
333
- font-family: var(--font-family-sans);
334
+ font-family: var(--vd-font-family-sans);
334
335
  font-size: 0.625rem;
335
- font-weight: var(--font-weight-medium);
336
- background-color: var(--doc-search-shortcut-bg);
337
- border: 1px solid var(--doc-search-shortcut-border);
336
+ font-weight: var(--vd-font-weight-medium);
337
+ background-color: var(--vd-doc-search-shortcut-bg);
338
+ border: 1px solid var(--vd-doc-search-shortcut-border);
338
339
  border-radius: 3px;
339
340
  }
340
341
 
@@ -349,33 +350,33 @@ input.vd-doc-search-input {
349
350
  ============================================ */
350
351
 
351
352
  .vd-doc-search-result[data-category="getting-started"] .vd-doc-search-result-icon {
352
- background-color: var(--color-success-alpha-10, rgba(64, 192, 87, 0.1));
353
- color: var(--color-success);
353
+ background-color: var(--vd-color-success-alpha-10, rgba(64, 192, 87, 0.1));
354
+ color: var(--vd-color-success);
354
355
  }
355
356
 
356
357
  .vd-doc-search-result[data-category="core"] .vd-doc-search-result-icon {
357
- background-color: var(--color-info-alpha-10, rgba(34, 139, 230, 0.1));
358
- color: var(--color-info);
358
+ background-color: var(--vd-color-info-alpha-10, rgba(34, 139, 230, 0.1));
359
+ color: var(--vd-color-info);
359
360
  }
360
361
 
361
362
  .vd-doc-search-result[data-category="components"] .vd-doc-search-result-icon {
362
- background-color: var(--color-primary-alpha-10, rgba(34, 184, 207, 0.1));
363
- color: var(--color-primary);
363
+ background-color: var(--vd-color-primary-alpha-10, rgba(34, 184, 207, 0.1));
364
+ color: var(--vd-color-primary);
364
365
  }
365
366
 
366
367
  .vd-doc-search-result[data-category="interactive"] .vd-doc-search-result-icon {
367
- background-color: var(--color-warning-alpha-10, rgba(250, 176, 5, 0.1));
368
- color: var(--color-warning);
368
+ background-color: var(--vd-color-warning-alpha-10, rgba(250, 176, 5, 0.1));
369
+ color: var(--vd-color-warning);
369
370
  }
370
371
 
371
372
  .vd-doc-search-result[data-category="data-display"] .vd-doc-search-result-icon {
372
- background-color: var(--color-secondary-alpha-10, rgba(32, 201, 151, 0.1));
373
- color: var(--color-secondary);
373
+ background-color: var(--vd-color-secondary-alpha-10, rgba(32, 201, 151, 0.1));
374
+ color: var(--vd-color-secondary);
374
375
  }
375
376
 
376
377
  .vd-doc-search-result[data-category="feedback"] .vd-doc-search-result-icon {
377
- background-color: var(--color-error-alpha-10, rgba(250, 82, 82, 0.1));
378
- color: var(--color-error);
378
+ background-color: var(--vd-color-error-alpha-10, rgba(250, 82, 82, 0.1));
379
+ color: var(--vd-color-error);
379
380
  }
380
381
 
381
382
  /* ============================================
@@ -387,7 +388,7 @@ input.vd-doc-search-input {
387
388
  position: sticky;
388
389
  top: 70px;
389
390
  z-index: 2;
390
- background: var(--bg-primary);
391
+ background: var(--vd-bg-primary);
391
392
  padding-top: 0.5rem;
392
393
  padding-bottom: 0.5rem;
393
394
  }
@@ -414,7 +415,7 @@ input.vd-doc-search-input {
414
415
  }
415
416
 
416
417
  input.vd-doc-search-input {
417
- padding-right: var(--doc-search-input-padding-x);
418
+ padding-right: var(--vd-doc-search-input-padding-x);
418
419
  min-height: 44px;
419
420
  }
420
421
 
@@ -427,20 +428,12 @@ input.vd-doc-search-input {
427
428
  position: sticky;
428
429
  top: 70px;
429
430
  z-index: 2;
430
- background: var(--bg-primary);
431
+ background: var(--vd-bg-primary);
431
432
  padding-top: 0.5rem;
432
433
  padding-bottom: 0.5rem;
433
434
  }
434
435
  }
435
436
 
436
- /* ============================================
437
- Animations
438
- ============================================ */
439
-
440
- .vd-doc-search-results {
441
- animation: doc-search-fade-in 0.15s ease;
442
- }
443
-
444
437
  @keyframes doc-search-fade-in {
445
438
  from {
446
439
  opacity: 0;
@@ -15,24 +15,24 @@
15
15
  align-items: center;
16
16
  gap: 0.4rem;
17
17
  padding: 0.6rem 1rem;
18
- border: 1px solid var(--border-color);
19
- border-radius: var(--btn-border-radius);
20
- background: var(--bg-secondary);
21
- color: var(--text-primary);
18
+ border: 1px solid var(--vd-border-color);
19
+ border-radius: var(--vd-btn-border-radius);
20
+ background: var(--vd-bg-secondary);
21
+ color: var(--vd-text-primary);
22
22
  text-decoration: none;
23
23
  font-weight: 500;
24
24
  transition: all 0.2s ease;
25
25
  }
26
26
 
27
27
  .doc-tab:hover {
28
- border-color: var(--color-primary);
29
- color: var(--color-primary);
30
- background: var(--color-primary-alpha-08);
28
+ border-color: var(--vd-color-primary);
29
+ color: var(--vd-color-primary);
30
+ background: var(--vd-color-primary-alpha-08);
31
31
  }
32
32
 
33
33
  .doc-tab.active {
34
- border-color: var(--color-primary);
35
- color: var(--text-on-primary);
36
- background: var(--color-primary);
37
- box-shadow: 0 0 0 1px var(--color-primary-alpha-20);
34
+ border-color: var(--vd-color-primary);
35
+ color: var(--vd-text-on-primary);
36
+ background: var(--vd-color-primary);
37
+ box-shadow: 0 0 0 1px var(--vd-color-primary-alpha-20);
38
38
  }