@getmicdrop/svelte-components 5.20.2 → 5.21.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 (259) hide show
  1. package/dist/calendar/AboutShow/AboutShow.spec.js +10 -10
  2. package/dist/calendar/AboutShow/AboutShow.svelte +11 -11
  3. package/dist/calendar/Calendar/MiniMonthCalendar.spec.js +9 -8
  4. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +22 -25
  5. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
  6. package/dist/calendar/FAQs/FAQs.spec.js +6 -6
  7. package/dist/calendar/FAQs/FAQs.svelte +4 -4
  8. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +8 -12
  9. package/dist/calendar/OrderSummary/OrderSummary.svelte +36 -36
  10. package/dist/calendar/PublicCard/PublicCard.spec.js +3 -3
  11. package/dist/calendar/PublicCard/PublicCard.svelte +7 -7
  12. package/dist/calendar/ShowCard/ShowCard.spec.js +8 -8
  13. package/dist/calendar/ShowCard/ShowCard.svelte +8 -8
  14. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.js +4 -4
  15. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +4 -4
  16. package/dist/components/Heading.spec.js +1 -1
  17. package/dist/components/Heading.svelte +1 -1
  18. package/dist/components/Layout/AppShell.svelte +4 -4
  19. package/dist/components/Layout/ContentSection.svelte +2 -2
  20. package/dist/components/Layout/Heading.svelte +3 -3
  21. package/dist/components/Layout/PageContainer.svelte +2 -2
  22. package/dist/components/Layout/Section.spec.js +4 -4
  23. package/dist/components/Layout/Text.svelte +7 -7
  24. package/dist/components/Layout/__tests__/AppShell.test.js +5 -5
  25. package/dist/components/Layout/__tests__/ContentSection.test.js +1 -1
  26. package/dist/components/Layout/__tests__/Heading.test.js +3 -3
  27. package/dist/components/Layout/__tests__/PageContainer.test.js +4 -4
  28. package/dist/components/Layout/__tests__/Text.test.js +9 -9
  29. package/dist/components/Text.spec.js +4 -4
  30. package/dist/components/Text.svelte +7 -7
  31. package/dist/patterns/chat/ChatActivityNotice.spec.js +1 -1
  32. package/dist/patterns/chat/ChatActivityNotice.svelte +3 -3
  33. package/dist/patterns/chat/ChatBubble.spec.js +1 -1
  34. package/dist/patterns/chat/ChatBubble.svelte +7 -7
  35. package/dist/patterns/chat/ChatContainer.spec.js +1 -1
  36. package/dist/patterns/chat/ChatContainer.svelte +3 -3
  37. package/dist/patterns/chat/ChatDateDivider.svelte +1 -1
  38. package/dist/patterns/chat/ChatInvitationBubble.spec.js +2 -2
  39. package/dist/patterns/chat/ChatInvitationBubble.svelte +1 -1
  40. package/dist/patterns/chat/ChatInvitationNotice.spec.js +2 -2
  41. package/dist/patterns/chat/ChatInvitationNotice.svelte +1 -1
  42. package/dist/patterns/chat/ChatMessageGroup.svelte +2 -2
  43. package/dist/patterns/chat/ChatSlotUpdate.svelte +2 -2
  44. package/dist/patterns/chat/ChatStatusBadge.spec.js +10 -10
  45. package/dist/patterns/chat/ChatStatusBadge.svelte +8 -8
  46. package/dist/patterns/chat/ChatStatusTransition.spec.js +9 -9
  47. package/dist/patterns/chat/ChatStatusTransition.svelte +5 -5
  48. package/dist/patterns/chat/ChatTextBubble.spec.js +4 -4
  49. package/dist/patterns/chat/ChatTextBubble.svelte +2 -2
  50. package/dist/patterns/data/DataList.spec.js +5 -5
  51. package/dist/patterns/data/DataList.svelte +1 -1
  52. package/dist/patterns/data/DataTable.spec.js +18 -18
  53. package/dist/patterns/data/DataTable.svelte +3 -3
  54. package/dist/patterns/forms/FormActions.spec.js +6 -6
  55. package/dist/patterns/forms/FormActions.stories.svelte +1 -1
  56. package/dist/patterns/forms/FormActions.svelte +1 -1
  57. package/dist/patterns/forms/FormSection.spec.js +4 -4
  58. package/dist/patterns/forms/FormSection.svelte +2 -2
  59. package/dist/patterns/forms/FormValidationSummary.spec.js +2 -2
  60. package/dist/patterns/forms/FormValidationSummary.stories.svelte +4 -4
  61. package/dist/patterns/forms/FormValidationSummary.svelte +4 -4
  62. package/dist/patterns/navigation/BottomNav.stories.svelte +23 -23
  63. package/dist/patterns/navigation/BottomNav.svelte +3 -3
  64. package/dist/patterns/navigation/Header.spec.js +9 -9
  65. package/dist/patterns/navigation/Header.svelte +13 -15
  66. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  67. package/dist/patterns/page/PageLayout.spec.js +5 -5
  68. package/dist/patterns/page/PageLayout.svelte +1 -1
  69. package/dist/patterns/page/PageLoader.stories.svelte +5 -5
  70. package/dist/patterns/page/SectionHeader.spec.js +8 -8
  71. package/dist/patterns/page/SectionHeader.svelte +2 -2
  72. package/dist/presets/buttons.js +1 -1
  73. package/dist/presets/buttons.spec.js +4 -4
  74. package/dist/primitives/Accordion/Accordion.spec.js +5 -5
  75. package/dist/primitives/Accordion/Accordion.stories.svelte +9 -9
  76. package/dist/primitives/Accordion/Accordion.svelte +2 -2
  77. package/dist/primitives/Accordion/AccordionItem.spec.js +19 -28
  78. package/dist/primitives/Accordion/AccordionItem.svelte +4 -4
  79. package/dist/primitives/Avatar/Avatar.spec.js +11 -11
  80. package/dist/primitives/Avatar/Avatar.stories.svelte +6 -5
  81. package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts.map +1 -1
  82. package/dist/primitives/Avatar/Avatar.svelte +3 -3
  83. package/dist/primitives/Badges/Badge.spec.js +10 -10
  84. package/dist/primitives/BottomSheet/BottomSheet.spec.js +5 -5
  85. package/dist/primitives/BottomSheet/BottomSheet.svelte +7 -7
  86. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +4 -2
  87. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +4 -4
  88. package/dist/primitives/Button/Button.spec.js +15 -15
  89. package/dist/primitives/Button/Button.svelte +16 -16
  90. package/dist/primitives/Button/ButtonVariantShowcase.spec.js +1 -1
  91. package/dist/primitives/Button/ButtonVariantShowcase.svelte +18 -18
  92. package/dist/primitives/Card.spec.js +1 -1
  93. package/dist/primitives/Card.stories.svelte +1 -1
  94. package/dist/primitives/Card.svelte +1 -1
  95. package/dist/primitives/CardAction/CardAction.svelte +3 -3
  96. package/dist/primitives/Checkbox/Checkbox.spec.js +16 -16
  97. package/dist/primitives/Checkbox/Checkbox.stories.svelte +3 -3
  98. package/dist/primitives/Checkbox/Checkbox.svelte +9 -9
  99. package/dist/primitives/DarkModeToggle.spec.js +11 -11
  100. package/dist/primitives/DarkModeToggle.stories.svelte +8 -8
  101. package/dist/primitives/DarkModeToggle.svelte +4 -4
  102. package/dist/primitives/Drawer/Drawer.spec.js +4 -4
  103. package/dist/primitives/Drawer/Drawer.stories.svelte +6 -6
  104. package/dist/primitives/Drawer/Drawer.svelte +11 -11
  105. package/dist/primitives/Dropdown/Dropdown.spec.js +9 -9
  106. package/dist/primitives/Dropdown/Dropdown.stories.svelte +4 -4
  107. package/dist/primitives/Dropdown/Dropdown.svelte +2 -2
  108. package/dist/primitives/Dropdown/DropdownDivider.svelte +1 -1
  109. package/dist/primitives/Dropdown/DropdownItem.spec.js +8 -15
  110. package/dist/primitives/Dropdown/DropdownItem.svelte +3 -3
  111. package/dist/primitives/Helper/Helper.spec.js +6 -6
  112. package/dist/primitives/Helper/Helper.svelte +3 -3
  113. package/dist/primitives/Icons/Icon.stories.svelte +15 -15
  114. package/dist/primitives/Icons/IconGallery.stories.svelte +26 -26
  115. package/dist/primitives/Icons/Icons.spec.js +3 -3
  116. package/dist/primitives/Input/Input.spec.js +9 -9
  117. package/dist/primitives/Input/Input.svelte +11 -11
  118. package/dist/primitives/Input/Select.spec.js +7 -7
  119. package/dist/primitives/Input/Select.stories.svelte +1 -1
  120. package/dist/primitives/Input/Select.svelte +6 -6
  121. package/dist/primitives/Input/Textarea.spec.js +8 -8
  122. package/dist/primitives/Input/Textarea.stories.svelte +1 -1
  123. package/dist/primitives/Input/Textarea.svelte +2 -2
  124. package/dist/primitives/Label/Label.spec.js +20 -21
  125. package/dist/primitives/Label/Label.svelte +4 -4
  126. package/dist/primitives/LandingButton/LandingButton.svelte +3 -3
  127. package/dist/primitives/MenuItem/MenuItem.spec.js +5 -5
  128. package/dist/primitives/MenuItem/MenuItem.svelte +4 -4
  129. package/dist/primitives/Modal/Modal.stories.svelte +8 -8
  130. package/dist/primitives/Modal/Modal.svelte +4 -4
  131. package/dist/primitives/NavItem/NavItem.spec.js +2 -2
  132. package/dist/primitives/NavItem/NavItem.svelte +3 -3
  133. package/dist/primitives/NumberInput/NumberInput.spec.js +17 -17
  134. package/dist/primitives/NumberInput/NumberInput.svelte +8 -8
  135. package/dist/primitives/Pagination/DotIndicator.svelte +6 -6
  136. package/dist/primitives/Pagination/Pagination.spec.js +6 -6
  137. package/dist/primitives/Pagination/Pagination.stories.svelte +4 -4
  138. package/dist/primitives/Pagination/Pagination.svelte +3 -3
  139. package/dist/primitives/Radio/Radio.spec.js +19 -19
  140. package/dist/primitives/Radio/Radio.stories.svelte +5 -5
  141. package/dist/primitives/Radio/Radio.svelte +8 -8
  142. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +5 -5
  143. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +2 -2
  144. package/dist/primitives/Skeleton/CardPlaceholder.spec.js +1 -1
  145. package/dist/primitives/Skeleton/CardPlaceholder.svelte +11 -11
  146. package/dist/primitives/Skeleton/ImagePlaceholder.spec.js +2 -2
  147. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +7 -7
  148. package/dist/primitives/Skeleton/ListPlaceholder.spec.js +2 -2
  149. package/dist/primitives/Skeleton/ListPlaceholder.svelte +5 -5
  150. package/dist/primitives/Skeleton/Skeleton.spec.js +7 -7
  151. package/dist/primitives/Skeleton/Skeleton.stories.svelte +4 -4
  152. package/dist/primitives/Skeleton/Skeleton.svelte +1 -1
  153. package/dist/primitives/Spinner/Spinner.spec.js +4 -5
  154. package/dist/primitives/Spinner/Spinner.stories.svelte +2 -2
  155. package/dist/primitives/Spinner/Spinner.svelte +1 -1
  156. package/dist/primitives/Tabs/Tabs.spec.js +14 -14
  157. package/dist/primitives/Tabs/Tabs.stories.svelte +6 -6
  158. package/dist/primitives/Tabs/Tabs.svelte +8 -8
  159. package/dist/primitives/Toggle.spec.js +3 -5
  160. package/dist/primitives/Toggle.stories.svelte +7 -7
  161. package/dist/primitives/Toggle.svelte +7 -7
  162. package/dist/primitives/Tooltip/Tooltip.svelte +5 -5
  163. package/dist/primitives/ValidationError.spec.js +1 -1
  164. package/dist/primitives/ValidationError.stories.svelte +8 -8
  165. package/dist/primitives/ValidationError.svelte +1 -1
  166. package/dist/recipes/CropImage/CropImage.stories.svelte +8 -8
  167. package/dist/recipes/CropImage/CropImage.svelte +7 -7
  168. package/dist/recipes/ImageUploader/ImageUploader.spec.js +1 -1
  169. package/dist/recipes/ImageUploader/ImageUploader.svelte +34 -56
  170. package/dist/recipes/SuperLogin/SuperLogin.svelte +25 -25
  171. package/dist/recipes/Toaster/Toaster.stories.svelte +10 -10
  172. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  173. package/dist/recipes/feedback/ErrorDisplay.spec.js +1 -1
  174. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +2 -2
  175. package/dist/recipes/feedback/ErrorDisplay.svelte +2 -2
  176. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +7 -7
  177. package/dist/recipes/fields/CheckboxField.spec.js +2 -2
  178. package/dist/recipes/fields/CheckboxField.svelte +2 -2
  179. package/dist/recipes/fields/FormField.spec.js +4 -4
  180. package/dist/recipes/fields/FormField.svelte +1 -1
  181. package/dist/recipes/fields/RadioGroup.spec.js +1 -1
  182. package/dist/recipes/fields/RadioGroup.svelte +2 -2
  183. package/dist/recipes/fields/SelectField.spec.js +2 -2
  184. package/dist/recipes/fields/TextareaField.spec.js +2 -2
  185. package/dist/recipes/fields/ToggleField.spec.js +2 -2
  186. package/dist/recipes/fields/ToggleField.svelte +1 -1
  187. package/dist/recipes/inputs/MultiSelect.stories.svelte +2 -2
  188. package/dist/recipes/inputs/MultiSelect.svelte +10 -10
  189. package/dist/recipes/inputs/OTPInput.stories.svelte +9 -9
  190. package/dist/recipes/inputs/OTPInput.svelte +1 -1
  191. package/dist/recipes/inputs/PasswordInput.spec.js +2 -2
  192. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +14 -14
  193. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +3 -3
  194. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte +2 -2
  195. package/dist/recipes/inputs/PhoneInput.svelte +5 -5
  196. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +10 -10
  197. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +7 -7
  198. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +11 -14
  199. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  200. package/dist/recipes/inputs/Search.spec.js +3 -3
  201. package/dist/recipes/inputs/Search.svelte +1 -1
  202. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +5 -5
  203. package/dist/recipes/modals/AlertModal.spec.js +36 -36
  204. package/dist/recipes/modals/AlertModal.svelte +8 -8
  205. package/dist/recipes/modals/ConfirmationModal.spec.js +20 -20
  206. package/dist/recipes/modals/ConfirmationModal.svelte +1 -1
  207. package/dist/recipes/modals/FeedbackModal.svelte +7 -7
  208. package/dist/recipes/modals/InputModal.spec.js +17 -17
  209. package/dist/recipes/modals/InputModal.svelte +3 -3
  210. package/dist/recipes/modals/ModalStateManager.spec.js +1 -1
  211. package/dist/recipes/modals/ModalStateManager.svelte +2 -2
  212. package/dist/recipes/modals/StatusModal.spec.js +7 -7
  213. package/dist/recipes/modals/StatusModal.svelte +10 -10
  214. package/dist/schemas/__tests__/order.test.js +1 -1
  215. package/dist/schemas/auth.d.ts +107 -17
  216. package/dist/schemas/auth.d.ts.map +1 -1
  217. package/dist/schemas/common.d.ts +41 -13
  218. package/dist/schemas/common.d.ts.map +1 -1
  219. package/dist/schemas/event.d.ts +147 -41
  220. package/dist/schemas/event.d.ts.map +1 -1
  221. package/dist/schemas/order.d.ts +208 -51
  222. package/dist/schemas/order.d.ts.map +1 -1
  223. package/dist/schemas/performer.d.ts +199 -44
  224. package/dist/schemas/performer.d.ts.map +1 -1
  225. package/dist/schemas/promo.d.ts +221 -55
  226. package/dist/schemas/promo.d.ts.map +1 -1
  227. package/dist/schemas/ticket.d.ts +187 -61
  228. package/dist/schemas/ticket.d.ts.map +1 -1
  229. package/dist/schemas/user.d.ts +114 -54
  230. package/dist/schemas/user.d.ts.map +1 -1
  231. package/dist/schemas/venue.d.ts +238 -20
  232. package/dist/schemas/venue.d.ts.map +1 -1
  233. package/dist/stories/ButtonAuditDashboard.spec.js +12 -12
  234. package/dist/stories/ButtonAuditDashboard.svelte +55 -55
  235. package/dist/stories/ButtonAuditReview.spec.js +8 -8
  236. package/dist/stories/ButtonAuditReview.svelte +87 -87
  237. package/dist/stories/ButtonGridView.spec.js +27 -27
  238. package/dist/stories/ButtonGridView.svelte +22 -22
  239. package/dist/stories/ButtonShowcase.spec.js +4 -4
  240. package/dist/stories/ButtonShowcase.svelte +119 -119
  241. package/dist/stories/ComponentConsolidation.stories.svelte +453 -453
  242. package/dist/stories/DesignSystemAudit.stories.svelte +127 -127
  243. package/dist/stories/PatternsGallery.spec.js +3 -3
  244. package/dist/stories/PatternsGallery.svelte +23 -23
  245. package/dist/stories/PrimitivesGallery.spec.js +9 -9
  246. package/dist/stories/PrimitivesGallery.svelte +68 -68
  247. package/dist/stories/RecipesGallery.svelte +26 -26
  248. package/dist/tokens/__tests__/typography-base.test.js +5 -5
  249. package/dist/tokens/__tests__/typography.test.js +32 -36
  250. package/dist/tokens/__tests__/variants.test.js +63 -78
  251. package/dist/tokens/tokens.css +15 -15
  252. package/dist/tokens/typography-base.css +16 -16
  253. package/dist/tokens/typography.d.ts +29 -29
  254. package/dist/tokens/typography.js +29 -29
  255. package/dist/tokens/utilities.css +35 -47
  256. package/dist/tokens/variants.d.ts +32 -32
  257. package/dist/tokens/variants.js +32 -32
  258. package/dist/utils/utils/utils.spec.js +2 -2
  259. package/package.json +1 -1
@@ -93,16 +93,16 @@
93
93
  // Get variant badge color
94
94
  function getVariantColor(variant) {
95
95
  switch (variant) {
96
- case 'blue-solid': return 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200';
97
- case 'gray-outline': return 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200';
98
- case 'blue-outline': return 'bg-blue-50 text-blue-700 dark:bg-blue-900/50 dark:text-blue-300';
99
- case 'gray-text': return 'bg-gray-50 text-gray-600 dark:bg-gray-800 dark:text-gray-400';
100
- case 'red-solid': return 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200';
101
- case 'red-outline': return 'bg-red-50 text-red-700 dark:bg-red-900/50 dark:text-red-300';
102
- case 'green-solid': return 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200';
103
- case 'icon': return 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200';
104
- case 'ghost': return 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200';
105
- default: return 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200';
96
+ case 'blue-solid': return 'bg-status-info-bg text-status-info-text';
97
+ case 'gray-outline': return 'bg-muted text-text-primary';
98
+ case 'blue-outline': return 'bg-status-info-bg text-brand-primary';
99
+ case 'gray-text': return 'bg-bg-secondary text-text-secondary';
100
+ case 'red-solid': return 'bg-status-error-bg text-status-error-text';
101
+ case 'red-outline': return 'bg-status-error-bg text-status-error-text';
102
+ case 'green-solid': return 'bg-status-success-bg text-status-success-text';
103
+ case 'icon': return 'bg-status-info-bg text-brand-primary';
104
+ case 'ghost': return 'bg-status-warning-bg text-status-warning-text';
105
+ default: return 'bg-muted text-text-primary';
106
106
  }
107
107
  }
108
108
 
@@ -159,14 +159,14 @@
159
159
  .sort((a, b) => b.buttonCount - a.buttonCount);
160
160
  </script>
161
161
 
162
- <div class="min-h-screen bg-gray-50 dark:bg-gray-900 transition-colors">
162
+ <div class="min-h-screen bg-bg-secondary transition-colors">
163
163
  <!-- Sticky Header -->
164
- <div class="sticky top-0 z-50 bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 shadow">
164
+ <div class="sticky top-0 z-50 bg-card border-b border-border shadow">
165
165
  <div class="max-w-7xl mx-auto px-4 py-4">
166
166
  <div class="flex flex-wrap items-center justify-between gap-4">
167
167
  <div>
168
- <h1 class="text-2xl font-bold text-gray-900 dark:text-white">Button Audit Dashboard</h1>
169
- <p class="text-sm text-gray-500 dark:text-gray-400">
168
+ <h1 class="text-2xl font-bold text-text-primary">Button Audit Dashboard</h1>
169
+ <p class="text-sm text-muted-foreground">
170
170
  {filteredStats.shown} of {filteredStats.total} buttons from micdrop-frontend
171
171
  <span class="text-xs ml-2">Generated: {new Date(manifest.generated).toLocaleString()}</span>
172
172
  </p>
@@ -176,13 +176,13 @@
176
176
  <!-- Expand/Collapse All -->
177
177
  <button
178
178
  onclick={expandAll}
179
- class="px-3 py-1.5 text-sm rounded-lg border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300"
179
+ class="px-3 py-1.5 text-sm rounded-lg border border-stroke-primary hover:bg-muted text-text-secondary"
180
180
  >
181
181
  Expand All
182
182
  </button>
183
183
  <button
184
184
  onclick={collapseAll}
185
- class="px-3 py-1.5 text-sm rounded-lg border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300"
185
+ class="px-3 py-1.5 text-sm rounded-lg border border-stroke-primary hover:bg-muted text-text-secondary"
186
186
  >
187
187
  Collapse All
188
188
  </button>
@@ -191,8 +191,8 @@
191
191
  <button
192
192
  onclick={toggleDarkMode}
193
193
  class="px-4 py-2 rounded-lg font-medium transition-all {isDark
194
- ? 'bg-yellow-500 text-black hover:bg-yellow-400'
195
- : 'bg-gray-800 text-white hover:bg-gray-700'}"
194
+ ? 'bg-accent-warning text-text-primary hover:bg-accent-warning'
195
+ : 'bg-bg-secondary text-white hover:bg-bg-secondary'}"
196
196
  >
197
197
  {#if isDark}
198
198
  ☀️ Light
@@ -211,14 +211,14 @@
211
211
  type="text"
212
212
  bind:value={searchQuery}
213
213
  placeholder="Search button text..."
214
- class="w-full px-3 py-2 rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400"
214
+ class="w-full px-3 py-2 rounded-lg border border-stroke-primary bg-card text-text-primary placeholder-gray-400"
215
215
  />
216
216
  </div>
217
217
 
218
218
  <!-- Variant Filter -->
219
219
  <select
220
220
  bind:value={variantFilter}
221
- class="px-3 py-2 rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
221
+ class="px-3 py-2 rounded-lg border border-stroke-primary bg-card text-text-primary"
222
222
  >
223
223
  <option value="all">All Variants</option>
224
224
  {#each allVariants as variant}
@@ -229,7 +229,7 @@
229
229
  <!-- Size Filter -->
230
230
  <select
231
231
  bind:value={sizeFilter}
232
- class="px-3 py-2 rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
232
+ class="px-3 py-2 rounded-lg border border-stroke-primary bg-card text-text-primary"
233
233
  >
234
234
  <option value="all">All Sizes</option>
235
235
  {#each allSizes as size}
@@ -249,19 +249,19 @@
249
249
 
250
250
  {#if visibleButtons.length > 0}
251
251
  <!-- Category Section -->
252
- <div class="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 overflow-hidden">
252
+ <div class="bg-card rounded-xl border border-border overflow-hidden">
253
253
  <!-- Category Header -->
254
254
  <button
255
255
  onclick={() => toggleCategory(category.name)}
256
- class="w-full flex items-center justify-between px-4 py-3 hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors"
256
+ class="w-full flex items-center justify-between px-4 py-3 hover:bg-bg-secondary transition-colors"
257
257
  >
258
258
  <div class="flex items-center gap-3">
259
259
  <span class="text-xl">{expandedCategories.has(category.name) ? '▼' : '▶'}</span>
260
- <h2 class="text-lg font-semibold text-gray-900 dark:text-white">{category.name}</h2>
261
- <span class="px-2 py-0.5 text-xs font-medium rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200">
260
+ <h2 class="text-lg font-semibold text-text-primary">{category.name}</h2>
261
+ <span class="px-2 py-0.5 text-xs font-medium rounded-full bg-status-info-bg text-status-info-text">
262
262
  {visibleButtons.length} buttons
263
263
  </span>
264
- <span class="text-sm text-gray-500 dark:text-gray-400">
264
+ <span class="text-sm text-muted-foreground">
265
265
  in {category.routes.length} files
266
266
  </span>
267
267
  </div>
@@ -269,24 +269,24 @@
269
269
 
270
270
  <!-- Category Content -->
271
271
  {#if expandedCategories.has(category.name)}
272
- <div class="border-t border-gray-200 dark:border-gray-700">
272
+ <div class="border-t border-border">
273
273
  {#each category.routes as route}
274
274
  {@const routeVisibleButtons = route.buttons.filter(shouldShowButton)}
275
275
 
276
276
  {#if routeVisibleButtons.length > 0}
277
277
  <!-- File Section -->
278
- <div class="border-b border-gray-100 dark:border-gray-700/50 last:border-b-0">
278
+ <div class="border-b border-border last:border-b-0">
279
279
  <button
280
280
  onclick={() => toggleFile(route.fullPath)}
281
- class="w-full flex items-center justify-between px-6 py-2 hover:bg-gray-50 dark:hover:bg-gray-700/30 transition-colors text-left"
281
+ class="w-full flex items-center justify-between px-6 py-2 hover:bg-bg-secondary transition-colors text-left"
282
282
  >
283
283
  <div class="flex items-center gap-2 min-w-0">
284
- <span class="text-gray-400">{expandedFiles.has(route.fullPath) ? '▾' : '▸'}</span>
285
- <code class="text-sm text-gray-600 dark:text-gray-300 truncate">{route.file}</code>
284
+ <span class="text-muted-foreground">{expandedFiles.has(route.fullPath) ? '▾' : '▸'}</span>
285
+ <code class="text-sm text-text-secondary truncate">{route.file}</code>
286
286
  <a
287
287
  href={getVSCodeLink(route.fullPath, 1)}
288
288
  onclick={(e) => e.stopPropagation()}
289
- class="text-xs text-blue-500 hover:text-blue-700 dark:text-blue-400 hover:underline"
289
+ class="text-xs text-brand-primary hover:text-brand-primary hover:underline"
290
290
  title="Open in VS Code"
291
291
  >
292
292
  📂 Open
@@ -301,13 +301,13 @@
301
301
  tabindex="0"
302
302
  onclick={(e) => { e.stopPropagation(); openPreview(route.route, route.file); }}
303
303
  onkeydown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.stopPropagation(); openPreview(route.route, route.file); }}}
304
- class="px-2 py-0.5 text-xs rounded bg-green-100 text-green-700 hover:bg-green-200 dark:bg-green-900 dark:text-green-300 dark:hover:bg-green-800 cursor-pointer"
304
+ class="px-2 py-0.5 text-xs rounded bg-status-success-bg text-status-success-text hover:bg-status-success-bg/80 cursor-pointer"
305
305
  title="Preview this page"
306
306
  >
307
307
  👁️ Preview
308
308
  </span>
309
309
  {/if}
310
- <span class="text-xs text-gray-500 dark:text-gray-400">
310
+ <span class="text-xs text-muted-foreground">
311
311
  {routeVisibleButtons.length} buttons
312
312
  </span>
313
313
  </div>
@@ -315,12 +315,12 @@
315
315
 
316
316
  <!-- Buttons Grid -->
317
317
  {#if expandedFiles.has(route.fullPath)}
318
- <div class="px-6 py-4 bg-gray-50 dark:bg-gray-900/50">
318
+ <div class="px-6 py-4 bg-bg-secondary">
319
319
  <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
320
320
  {#each routeVisibleButtons as button, idx}
321
- <div class="bg-white dark:bg-gray-800 rounded-lg p-4 border border-gray-200 dark:border-gray-600 space-y-3">
321
+ <div class="bg-card rounded-lg p-4 border border-border space-y-3">
322
322
  <!-- Button Preview -->
323
- <div class="flex items-center justify-center p-4 bg-gray-100 dark:bg-gray-700 rounded-lg min-h-[60px]">
323
+ <div class="flex items-center justify-center p-4 bg-muted rounded-lg min-h-[60px]">
324
324
  <Button
325
325
  variant={button.variant}
326
326
  size={button.size}
@@ -339,32 +339,32 @@
339
339
  <span class="px-2 py-0.5 text-xs font-medium rounded {getVariantColor(button.variant)}">
340
340
  {button.variant}
341
341
  </span>
342
- <span class="px-2 py-0.5 text-xs font-medium rounded bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300">
342
+ <span class="px-2 py-0.5 text-xs font-medium rounded bg-muted text-text-secondary">
343
343
  {button.size}
344
344
  </span>
345
345
  {#if button.loading}
346
- <span class="px-2 py-0.5 text-xs font-medium rounded bg-orange-100 text-orange-700 dark:bg-orange-900 dark:text-orange-200">loading</span>
346
+ <span class="px-2 py-0.5 text-xs font-medium rounded bg-status-warning-bg text-accent-warning">loading</span>
347
347
  {/if}
348
348
  {#if button.disabled}
349
- <span class="px-2 py-0.5 text-xs font-medium rounded bg-gray-200 text-gray-600 dark:bg-gray-600 dark:text-gray-300">disabled</span>
349
+ <span class="px-2 py-0.5 text-xs font-medium rounded bg-bg-tertiary text-text-secondary">disabled</span>
350
350
  {/if}
351
351
  {#if button.danger}
352
- <span class="px-2 py-0.5 text-xs font-medium rounded bg-red-100 text-red-700 dark:bg-red-900 dark:text-red-200">danger</span>
352
+ <span class="px-2 py-0.5 text-xs font-medium rounded bg-status-error-bg text-status-error-text">danger</span>
353
353
  {/if}
354
354
  </div>
355
355
 
356
356
  <div class="flex items-center justify-between text-xs">
357
- <span class="text-gray-500 dark:text-gray-400">Line {button.line}</span>
357
+ <span class="text-muted-foreground">Line {button.line}</span>
358
358
  <a
359
359
  href={getVSCodeLink(route.fullPath, button.line)}
360
- class="text-blue-500 hover:text-blue-700 dark:text-blue-400 hover:underline"
360
+ class="text-brand-primary hover:text-brand-primary hover:underline"
361
361
  >
362
362
  Open in Code →
363
363
  </a>
364
364
  </div>
365
365
 
366
366
  {#if button.text !== '(no text)' && button.text.length > 0}
367
- <p class="text-xs text-gray-600 dark:text-gray-400 truncate" title={button.text}>
367
+ <p class="text-xs text-text-secondary truncate" title={button.text}>
368
368
  "{button.text}"
369
369
  </p>
370
370
  {/if}
@@ -386,8 +386,8 @@
386
386
 
387
387
  <!-- Footer Stats -->
388
388
  <div class="max-w-7xl mx-auto px-4 py-8">
389
- <div class="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-6">
390
- <h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">Variant Distribution</h3>
389
+ <div class="bg-card rounded-xl border border-border p-6">
390
+ <h3 class="text-lg font-semibold text-text-primary mb-4">Variant Distribution</h3>
391
391
  <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-4">
392
392
  {#each allVariants as variant}
393
393
  {@const count = Object.values(manifest.categories)
@@ -395,7 +395,7 @@
395
395
  .filter(b => b.variant === variant).length}
396
396
  <div class="flex items-center gap-2">
397
397
  <span class="px-2 py-1 text-xs font-medium rounded {getVariantColor(variant)}">{variant}</span>
398
- <span class="text-sm text-gray-600 dark:text-gray-400">{count}</span>
398
+ <span class="text-sm text-text-secondary">{count}</span>
399
399
  </div>
400
400
  {/each}
401
401
  </div>
@@ -404,26 +404,26 @@
404
404
 
405
405
  <!-- Preview Modal -->
406
406
  {#if previewModal.open}
407
- <div class="fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/50 backdrop-blur-xs">
408
- <div class="relative w-full max-w-6xl h-[85vh] bg-white dark:bg-gray-800 rounded-xl shadow-2xl overflow-hidden flex flex-col">
407
+ <div class="fixed inset-0 z-[100] flex items-center justify-center p-4 bg-overlay-bg backdrop-blur-xs">
408
+ <div class="relative w-full max-w-6xl h-[85vh] bg-card rounded-xl shadow-2xl overflow-hidden flex flex-col">
409
409
  <!-- Modal Header -->
410
- <div class="flex items-center justify-between px-4 py-3 bg-gray-100 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600">
410
+ <div class="flex items-center justify-between px-4 py-3 bg-muted border-b border-border">
411
411
  <div class="flex items-center gap-3">
412
- <span class="text-lg font-semibold text-gray-900 dark:text-white">{previewModal.title}</span>
413
- <code class="text-sm text-gray-500 dark:text-gray-400">{previewModal.file}</code>
412
+ <span class="text-lg font-semibold text-text-primary">{previewModal.title}</span>
413
+ <code class="text-sm text-muted-foreground">{previewModal.file}</code>
414
414
  </div>
415
415
  <div class="flex items-center gap-2">
416
416
  <a
417
417
  href={previewModal.url}
418
418
  target="_blank"
419
419
  rel="noopener"
420
- class="px-3 py-1.5 text-sm rounded-lg bg-blue-100 text-blue-700 hover:bg-blue-200 dark:bg-blue-900 dark:text-blue-300"
420
+ class="px-3 py-1.5 text-sm rounded-lg bg-status-info-bg text-brand-primary hover:bg-status-info-bg/80"
421
421
  >
422
422
  Open in new tab ↗
423
423
  </a>
424
424
  <button
425
425
  onclick={closePreview}
426
- class="p-2 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-500 dark:text-gray-400"
426
+ class="p-2 rounded-lg hover:bg-bg-tertiary text-muted-foreground"
427
427
  >
428
428
 
429
429
  </button>
@@ -440,7 +440,7 @@
440
440
  </div>
441
441
 
442
442
  <!-- Modal Footer -->
443
- <div class="px-4 py-2 bg-gray-50 dark:bg-gray-700/50 border-t border-gray-200 dark:border-gray-600 text-xs text-gray-500 dark:text-gray-400">
443
+ <div class="px-4 py-2 bg-bg-secondary border-t border-border text-xs text-muted-foreground">
444
444
  ⚠️ Preview requires micdrop-frontend dev server running at {FRONTEND_DEV_URL}
445
445
  </div>
446
446
  </div>
@@ -42,7 +42,7 @@ describe('ButtonAuditReview', () => {
42
42
  const { container } = render(ButtonAuditReview);
43
43
  expect(screen.getByText('Recent Fix Sessions')).toBeInTheDocument();
44
44
  // Check the green card has the count 4
45
- const greenCard = container.querySelector('.bg-green-50.border-green-400');
45
+ const greenCard = container.querySelector('.bg-status-success-bg.border-accent-success');
46
46
  expect(greenCard?.textContent).toContain('4');
47
47
  });
48
48
 
@@ -50,7 +50,7 @@ describe('ButtonAuditReview', () => {
50
50
  const { container } = render(ButtonAuditReview);
51
51
  expect(screen.getByText('Valid Variants')).toBeInTheDocument();
52
52
  // Check the blue card has the count 15
53
- const blueCards = container.querySelectorAll('.bg-blue-50.border-blue-400');
53
+ const blueCards = container.querySelectorAll('.bg-status-info-bg.border-brand-primary');
54
54
  const summaryBlueCard = blueCards[0];
55
55
  expect(summaryBlueCard?.textContent).toContain('15');
56
56
  });
@@ -127,13 +127,13 @@ describe('ButtonAuditReview', () => {
127
127
 
128
128
  it('should render "Needs Fix" badge for incorrect categories', () => {
129
129
  const { container } = render(ButtonAuditReview);
130
- const needsFixBadges = container.querySelectorAll('.bg-red-100.text-red-700');
130
+ const needsFixBadges = container.querySelectorAll('.bg-status-error-bg.text-status-error-text');
131
131
  expect(needsFixBadges.length).toBeGreaterThan(0);
132
132
  });
133
133
 
134
134
  it('should render "Correct" badge for correct categories', () => {
135
135
  const { container } = render(ButtonAuditReview);
136
- const correctBadges = container.querySelectorAll('.bg-green-100.text-green-700');
136
+ const correctBadges = container.querySelectorAll('.bg-status-success-bg.text-status-success-text');
137
137
  expect(correctBadges.length).toBeGreaterThan(0);
138
138
  });
139
139
 
@@ -309,25 +309,25 @@ describe('ButtonAuditReview', () => {
309
309
  describe('Color Coding and Visual Indicators', () => {
310
310
  it('should use yellow theme for buttons without variant section', () => {
311
311
  const { container } = render(ButtonAuditReview);
312
- const yellowSection = container.querySelector('.bg-yellow-50.border-yellow-400');
312
+ const yellowSection = container.querySelector('.bg-status-warning-bg.border-status-warning-border');
313
313
  expect(yellowSection).toBeInTheDocument();
314
314
  });
315
315
 
316
316
  it('should use orange theme for visual comparison section', () => {
317
317
  const { container } = render(ButtonAuditReview);
318
- const orangeSection = container.querySelector('.bg-orange-50.border-orange-400');
318
+ const orangeSection = container.querySelector('.bg-status-warning-bg.border-accent-warning');
319
319
  expect(orangeSection).toBeInTheDocument();
320
320
  });
321
321
 
322
322
  it('should use green theme for recent fixes section', () => {
323
323
  const { container } = render(ButtonAuditReview);
324
- const greenSection = container.querySelector('.bg-green-50.border-green-400');
324
+ const greenSection = container.querySelector('.bg-status-success-bg.border-accent-success');
325
325
  expect(greenSection).toBeInTheDocument();
326
326
  });
327
327
 
328
328
  it('should use blue theme for decision guide section', () => {
329
329
  const { container } = render(ButtonAuditReview);
330
- const blueSection = container.querySelector('.bg-blue-50.border-blue-400');
330
+ const blueSection = container.querySelector('.bg-status-info-bg.border-brand-primary');
331
331
  expect(blueSection).toBeInTheDocument();
332
332
  });
333
333
  });