@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
@@ -47,13 +47,13 @@
47
47
 
48
48
  // Section styling
49
49
  const sectionClass = (dark: boolean) =>
50
- `rounded-xl p-6 ${dark ? 'bg-gray-800 border-gray-700' : 'bg-white border-gray-200'} border`;
50
+ `rounded-xl p-6 ${dark ? 'bg-bg-secondary border-stroke-primary' : 'bg-card border-border'} border`;
51
51
 
52
52
  const headingClass = (dark: boolean) =>
53
- `text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-gray-900'}`;
53
+ `text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-text-primary'}`;
54
54
 
55
55
  const subheadingClass = (dark: boolean) =>
56
- `text-sm mb-4 ${dark ? 'text-gray-400' : 'text-gray-500'}`;
56
+ `text-sm mb-4 ${dark ? 'text-muted-foreground' : 'text-muted-foreground'}`;
57
57
 
58
58
  // Demo data
59
59
  const sampleErrors: Record<string, string | null | undefined> = {
@@ -95,16 +95,16 @@
95
95
  ];
96
96
  </script>
97
97
 
98
- <div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-gray-900' : 'bg-gray-50'}">
98
+ <div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-bg-primary' : 'bg-bg-secondary'}">
99
99
  <!-- Header -->
100
100
  <div class="flex items-center justify-between mb-8">
101
101
  <div>
102
- <h1 class="text-3xl font-bold {isDark ? 'text-white' : 'text-gray-900'}">Patterns Gallery</h1>
103
- <p class="{isDark ? 'text-gray-400' : 'text-gray-600'}">Layout & flow components (Layer 3)</p>
102
+ <h1 class="text-3xl font-bold {isDark ? 'text-white' : 'text-text-primary'}">Patterns Gallery</h1>
103
+ <p class="{isDark ? 'text-muted-foreground' : 'text-text-secondary'}">Layout & flow components (Layer 3)</p>
104
104
  </div>
105
105
  <button
106
106
  onclick={toggleDark}
107
- class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-yellow-500 text-black' : 'bg-gray-800 text-white'}"
107
+ class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-accent-warning text-text-primary' : 'bg-bg-secondary text-white'}"
108
108
  >
109
109
  {isDark ? '☀️ Light' : '🌙 Dark'}
110
110
  </button>
@@ -115,15 +115,15 @@
115
115
  <h2 class={headingClass(isDark)}>PageHeader</h2>
116
116
  <p class={subheadingClass(isDark)}>Page title with optional actions and breadcrumb</p>
117
117
 
118
- <div class="space-y-6 border rounded-lg p-4 {isDark ? 'border-gray-700' : 'border-gray-200'}">
118
+ <div class="space-y-6 border rounded-lg p-4 {isDark ? 'border-stroke-primary' : 'border-border'}">
119
119
  <PageHeader title="Page Title">
120
120
  {#snippet actions()}{/snippet}
121
121
  </PageHeader>
122
- <hr class="{isDark ? 'border-gray-700' : 'border-gray-200'}" />
122
+ <hr class="{isDark ? 'border-stroke-primary' : 'border-border'}" />
123
123
  <PageHeader title="With Subtitle" subtitle="This is a subtitle explaining the page">
124
124
  {#snippet actions()}{/snippet}
125
125
  </PageHeader>
126
- <hr class="{isDark ? 'border-gray-700' : 'border-gray-200'}" />
126
+ <hr class="{isDark ? 'border-stroke-primary' : 'border-border'}" />
127
127
  <PageHeader title="With Actions">
128
128
  {#snippet actions()}
129
129
  <Button size="sm">Add New</Button>
@@ -191,7 +191,7 @@
191
191
  </FormGrid>
192
192
 
193
193
  <div class="mt-6">
194
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">3 Columns</p>
194
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">3 Columns</p>
195
195
  <FormGrid cols={3}>
196
196
  <Input label="City" placeholder="New York" />
197
197
  <Input label="State" placeholder="NY" />
@@ -207,17 +207,17 @@
207
207
 
208
208
  <div class="space-y-6">
209
209
  <div>
210
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Default (right-aligned)</p>
210
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Default (right-aligned)</p>
211
211
  <FormActions submitLabel="Save Changes" cancelLabel="Cancel" />
212
212
  </div>
213
213
 
214
214
  <div>
215
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">With loading state</p>
215
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">With loading state</p>
216
216
  <FormActions submitLabel="Saving..." isSubmitting={true} />
217
217
  </div>
218
218
 
219
219
  <div>
220
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Delete confirmation</p>
220
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Delete confirmation</p>
221
221
  <FormActions submitLabel="Delete" submitVariant="red" cancelVariant="alternative" />
222
222
  </div>
223
223
  </div>
@@ -266,8 +266,8 @@
266
266
  {#snippet children(data: typeof listItems[0], _index: number)}
267
267
  <div class="flex justify-between items-center">
268
268
  <div>
269
- <p class="font-medium {isDark ? 'text-white' : 'text-gray-900'}">{data.primary}</p>
270
- <p class="text-sm {isDark ? 'text-gray-400' : 'text-gray-500'}">{data.secondary}</p>
269
+ <p class="font-medium {isDark ? 'text-white' : 'text-text-primary'}">{data.primary}</p>
270
+ <p class="text-sm {isDark ? 'text-muted-foreground' : 'text-muted-foreground'}">{data.secondary}</p>
271
271
  </div>
272
272
  <Badge variant="info">Active</Badge>
273
273
  </div>
@@ -285,7 +285,7 @@
285
285
  {#snippet children(data: typeof gridItems[0], _index: number)}
286
286
  <Card>
287
287
  <h4 class="font-medium mb-1">{data.title}</h4>
288
- <p class="text-sm text-gray-500">{data.description}</p>
288
+ <p class="text-sm text-muted-foreground">{data.description}</p>
289
289
  </Card>
290
290
  {/snippet}
291
291
  </DataGrid>
@@ -324,10 +324,10 @@
324
324
  <h2 class={headingClass(isDark)}>Sidebar</h2>
325
325
  <p class={subheadingClass(isDark)}>Sidebar + main content layout</p>
326
326
 
327
- <div class="border rounded-lg overflow-hidden {isDark ? 'border-gray-700' : 'border-gray-200'}">
327
+ <div class="border rounded-lg overflow-hidden {isDark ? 'border-stroke-primary' : 'border-border'}">
328
328
  <Sidebar>
329
329
  {#snippet sidebar()}
330
- <div class="p-4 {isDark ? 'bg-gray-900' : 'bg-gray-100'} h-48">
330
+ <div class="p-4 {isDark ? 'bg-bg-primary' : 'bg-muted'} h-48">
331
331
  <p class="font-medium mb-4">Navigation</p>
332
332
  <ul class="space-y-2 text-sm">
333
333
  <li>Dashboard</li>
@@ -350,8 +350,8 @@
350
350
  <h2 class={headingClass(isDark)}>Header</h2>
351
351
  <p class={subheadingClass(isDark)}>Top navigation bar with logo, nav links, and user menu</p>
352
352
 
353
- <div class="border rounded-lg overflow-hidden {isDark ? 'border-gray-700' : 'border-gray-200'}">
354
- <div class="flex items-center justify-between p-4 bg-white dark:bg-gray-800">
353
+ <div class="border rounded-lg overflow-hidden {isDark ? 'border-stroke-primary' : 'border-border'}">
354
+ <div class="flex items-center justify-between p-4 bg-card">
355
355
  <Header
356
356
  name="John Doe"
357
357
  email="john@example.com"
@@ -369,7 +369,7 @@
369
369
  <h2 class={headingClass(isDark)}>BottomNav</h2>
370
370
  <p class={subheadingClass(isDark)}>Mobile bottom navigation</p>
371
371
 
372
- <div class="border rounded-lg overflow-hidden max-w-sm mx-auto {isDark ? 'border-gray-700' : 'border-gray-200'} flex">
372
+ <div class="border rounded-lg overflow-hidden max-w-sm mx-auto {isDark ? 'border-stroke-primary' : 'border-border'} flex">
373
373
  <BottomNav links={bottomNavLinks} />
374
374
  </div>
375
375
  </section>
@@ -379,7 +379,7 @@
379
379
  <h2 class={headingClass(isDark)}>PageLayout</h2>
380
380
  <p class={subheadingClass(isDark)}>Complete page structure with breadcrumb, title, and content</p>
381
381
 
382
- <div class="border rounded-lg overflow-hidden {isDark ? 'border-gray-700' : 'border-gray-200'}">
382
+ <div class="border rounded-lg overflow-hidden {isDark ? 'border-stroke-primary' : 'border-border'}">
383
383
  <PageLayout
384
384
  title="PageLayout Demo"
385
385
  subtitle="Example page layout"
@@ -27,8 +27,8 @@ describe('PrimitivesGallery Component Tests', () => {
27
27
  test('Initial theme is light mode', () => {
28
28
  const { container } = setupTest();
29
29
  const mainDiv = container.querySelector('.min-h-screen');
30
- expect(mainDiv).toHaveClass('bg-gray-50');
31
- expect(mainDiv).not.toHaveClass('bg-gray-900');
30
+ expect(mainDiv).toHaveClass('bg-bg-secondary');
31
+ expect(mainDiv).not.toHaveClass('bg-bg-primary');
32
32
  });
33
33
  });
34
34
 
@@ -45,7 +45,7 @@ describe('PrimitivesGallery Component Tests', () => {
45
45
 
46
46
  // Dark mode should be active
47
47
  const mainDiv = container.querySelector('.min-h-screen');
48
- expect(mainDiv).toHaveClass('bg-gray-900');
48
+ expect(mainDiv).toHaveClass('bg-bg-primary');
49
49
  });
50
50
 
51
51
  test('Dark mode button shows correct emoji and text', async () => {
@@ -66,8 +66,8 @@ describe('PrimitivesGallery Component Tests', () => {
66
66
  await user.click(toggleButton);
67
67
 
68
68
  const mainDiv = container.querySelector('.min-h-screen');
69
- expect(mainDiv).toHaveClass('bg-gray-900');
70
- expect(mainDiv).not.toHaveClass('bg-gray-50');
69
+ expect(mainDiv).toHaveClass('bg-bg-primary');
70
+ expect(mainDiv).not.toHaveClass('bg-bg-secondary');
71
71
  });
72
72
  });
73
73
 
@@ -652,7 +652,7 @@ describe('PrimitivesGallery Component Tests', () => {
652
652
 
653
653
  // Dark mode should be active
654
654
  const mainDiv = container.querySelector('.min-h-screen');
655
- expect(mainDiv).toHaveClass('bg-gray-900');
655
+ expect(mainDiv).toHaveClass('bg-bg-primary');
656
656
  });
657
657
 
658
658
  test('Disabled elements cannot be interacted with', async () => {
@@ -723,7 +723,7 @@ describe('PrimitivesGallery Component Tests', () => {
723
723
 
724
724
  // At least one section should have dark mode background
725
725
  const darkSections = Array.from(sections).filter(section =>
726
- section.className.includes('bg-gray-800')
726
+ section.className.includes('bg-bg-secondary')
727
727
  );
728
728
  expect(darkSections.length).toBeGreaterThan(0);
729
729
  });
@@ -745,14 +745,14 @@ describe('PrimitivesGallery Component Tests', () => {
745
745
  // Enable dark mode
746
746
  await user.click(toggleButton);
747
747
  const mainDiv = container.querySelector('.min-h-screen');
748
- expect(mainDiv).toHaveClass('bg-gray-900');
748
+ expect(mainDiv).toHaveClass('bg-bg-primary');
749
749
 
750
750
  // Interact with other elements
751
751
  const input = screen.getByPlaceholderText('Enter text...');
752
752
  await user.type(input, 'test');
753
753
 
754
754
  // Dark mode should still be active
755
- expect(mainDiv).toHaveClass('bg-gray-900');
755
+ expect(mainDiv).toHaveClass('bg-bg-primary');
756
756
  });
757
757
  });
758
758
 
@@ -119,25 +119,25 @@
119
119
 
120
120
  // Section component for consistent styling
121
121
  const sectionClass = (dark: boolean) =>
122
- `rounded-xl p-6 ${dark ? 'bg-gray-800 border-gray-700' : 'bg-white border-gray-200'} border`;
122
+ `rounded-xl p-6 ${dark ? 'bg-bg-secondary border-stroke-primary' : 'bg-card border-border'} border`;
123
123
 
124
124
  const headingClass = (dark: boolean) =>
125
- `text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-gray-900'}`;
125
+ `text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-text-primary'}`;
126
126
 
127
127
  const subheadingClass = (dark: boolean) =>
128
- `text-sm mb-4 ${dark ? 'text-gray-400' : 'text-gray-500'}`;
128
+ `text-sm mb-4 ${dark ? 'text-muted-foreground' : 'text-muted-foreground'}`;
129
129
  </script>
130
130
 
131
- <div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-gray-900' : 'bg-gray-50'}">
131
+ <div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-bg-primary' : 'bg-bg-secondary'}">
132
132
  <!-- Header -->
133
133
  <div class="flex items-center justify-between mb-8">
134
134
  <div>
135
- <h1 class="text-3xl font-bold {isDark ? 'text-white' : 'text-gray-900'}">Primitives Gallery</h1>
136
- <p class="{isDark ? 'text-gray-400' : 'text-gray-600'}">All primitive components with variants and states</p>
135
+ <h1 class="text-3xl font-bold {isDark ? 'text-white' : 'text-text-primary'}">Primitives Gallery</h1>
136
+ <p class="{isDark ? 'text-muted-foreground' : 'text-text-secondary'}">All primitive components with variants and states</p>
137
137
  </div>
138
138
  <button
139
139
  onclick={toggleDark}
140
- class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-yellow-500 text-black' : 'bg-gray-800 text-white'}"
140
+ class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-accent-warning text-text-primary' : 'bg-bg-secondary text-white'}"
141
141
  >
142
142
  {isDark ? '☀️ Light' : '🌙 Dark'}
143
143
  </button>
@@ -150,7 +150,7 @@
150
150
 
151
151
  <div class="space-y-4">
152
152
  <div>
153
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Variants</p>
153
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Variants</p>
154
154
  <div class="flex flex-wrap gap-3 items-center">
155
155
  <Button variant="default">Primary</Button>
156
156
  <Button variant="alternative">Secondary</Button>
@@ -166,8 +166,8 @@
166
166
  </div>
167
167
 
168
168
  <div>
169
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">NavItem (Mobile Navigation)</p>
170
- <div class="flex gap-6 items-end bg-gray-100 dark:bg-gray-800 p-4 rounded-lg">
169
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">NavItem (Mobile Navigation)</p>
170
+ <div class="flex gap-6 items-end bg-muted p-4 rounded-lg">
171
171
  <NavItem>
172
172
  <Home class="w-5 h-5" />
173
173
  <span>Home</span>
@@ -184,31 +184,31 @@
184
184
  </div>
185
185
 
186
186
  <div>
187
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Avatar, Menu & Card Components</p>
187
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Avatar, Menu & Card Components</p>
188
188
  <div class="flex gap-6 items-start">
189
189
  <div class="flex flex-col items-center gap-2">
190
190
  <AvatarButton>
191
191
  <Avatar src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 150'%3E%3Crect width='150' height='150' fill='%238b5cf6'/%3E%3Ccircle cx='75' cy='55' r='30' fill='%23fff'/%3E%3Cellipse cx='75' cy='130' rx='45' ry='35' fill='%23fff'/%3E%3C/svg%3E" rounded size="md" />
192
192
  </AvatarButton>
193
- <span class="text-xs text-gray-500">AvatarButton</span>
193
+ <span class="text-xs text-muted-foreground">AvatarButton</span>
194
194
  </div>
195
- <div class="w-56 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg overflow-hidden">
195
+ <div class="w-56 bg-card border border-border rounded-lg shadow-lg overflow-hidden">
196
196
  <MenuItem>Settings</MenuItem>
197
197
  <MenuItem>Profile</MenuItem>
198
- <div class="h-px bg-gray-200 dark:bg-gray-700"></div>
198
+ <div class="h-px bg-bg-tertiary"></div>
199
199
  <MenuItem danger>Sign out</MenuItem>
200
200
  </div>
201
201
  <div class="w-64 space-y-2">
202
202
  <CardAction>
203
203
  <span class="flex flex-col">
204
204
  <span class="font-medium">Select this option</span>
205
- <span class="text-sm text-gray-500">Description text here</span>
205
+ <span class="text-sm text-muted-foreground">Description text here</span>
206
206
  </span>
207
207
  </CardAction>
208
208
  <CardAction>
209
209
  <span class="flex flex-col">
210
210
  <span class="font-medium">Another option</span>
211
- <span class="text-sm text-gray-500">More description</span>
211
+ <span class="text-sm text-muted-foreground">More description</span>
212
212
  </span>
213
213
  </CardAction>
214
214
  </div>
@@ -216,7 +216,7 @@
216
216
  </div>
217
217
 
218
218
  <div>
219
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Sizes</p>
219
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Sizes</p>
220
220
  <div class="flex flex-wrap gap-3 items-end">
221
221
  <Button size="xs">Extra Small</Button>
222
222
  <Button size="sm">Small</Button>
@@ -227,7 +227,7 @@
227
227
  </div>
228
228
 
229
229
  <div>
230
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">States</p>
230
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">States</p>
231
231
  <div class="flex flex-wrap gap-3 items-center">
232
232
  <Button disabled>Disabled</Button>
233
233
  <Button loading>Loading</Button>
@@ -322,7 +322,7 @@
322
322
 
323
323
  <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
324
324
  <div>
325
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-3">Checkbox</p>
325
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-3">Checkbox</p>
326
326
  <div class="space-y-3">
327
327
  <Checkbox bind:checked={checkboxChecked}>Default checkbox</Checkbox>
328
328
  <Checkbox checked={true}>Checked by default</Checkbox>
@@ -332,7 +332,7 @@
332
332
  </div>
333
333
 
334
334
  <div>
335
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-3">Radio</p>
335
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-3">Radio</p>
336
336
  <div class="space-y-3">
337
337
  <Radio name="demo" value="option1" bind:group={radioValue}>Option 1</Radio>
338
338
  <Radio name="demo" value="option2" bind:group={radioValue}>Option 2</Radio>
@@ -342,7 +342,7 @@
342
342
  </div>
343
343
 
344
344
  <div>
345
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-3">Toggle</p>
345
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-3">Toggle</p>
346
346
  <div class="space-y-3">
347
347
  <Toggle bind:checked={toggleChecked}>Default toggle</Toggle>
348
348
  <Toggle checked={true}>On by default</Toggle>
@@ -360,7 +360,7 @@
360
360
 
361
361
  <div class="space-y-4">
362
362
  <div>
363
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Colors</p>
363
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Colors</p>
364
364
  <div class="flex flex-wrap gap-3">
365
365
  <Badge variant="blue">Blue</Badge>
366
366
  <Badge variant="gray">Gray</Badge>
@@ -374,7 +374,7 @@
374
374
  </div>
375
375
 
376
376
  <div>
377
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Sizes</p>
377
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Sizes</p>
378
378
  <div class="flex flex-wrap gap-3 items-center">
379
379
  <Badge size="xs">Extra Small</Badge>
380
380
  <Badge size="sm">Small</Badge>
@@ -412,15 +412,15 @@
412
412
  <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
413
413
  <Card>
414
414
  <h3 class="text-lg font-semibold mb-2">Default Card</h3>
415
- <p class="text-gray-600">Basic card with default styling.</p>
415
+ <p class="text-text-secondary">Basic card with default styling.</p>
416
416
  </Card>
417
417
  <Card class="p-8">
418
418
  <h3 class="text-lg font-semibold mb-2">Large Padding</h3>
419
- <p class="text-gray-600">Card with larger padding.</p>
419
+ <p class="text-text-secondary">Card with larger padding.</p>
420
420
  </Card>
421
421
  <Card hover>
422
422
  <h3 class="text-lg font-semibold mb-2">Hoverable</h3>
423
- <p class="text-gray-600">Hover to see the effect.</p>
423
+ <p class="text-text-secondary">Hover to see the effect.</p>
424
424
  </Card>
425
425
  </div>
426
426
  </section>
@@ -434,15 +434,15 @@
434
434
  <Accordion>
435
435
  <AccordionItem>
436
436
  {#snippet header()}What is this component?{/snippet}
437
- <p class="text-gray-600">This is an accordion component that allows you to show and hide content sections.</p>
437
+ <p class="text-text-secondary">This is an accordion component that allows you to show and hide content sections.</p>
438
438
  </AccordionItem>
439
439
  <AccordionItem>
440
440
  {#snippet header()}How do I use it?{/snippet}
441
- <p class="text-gray-600">Wrap AccordionItem components inside an Accordion component. Each item uses a header snippet.</p>
441
+ <p class="text-text-secondary">Wrap AccordionItem components inside an Accordion component. Each item uses a header snippet.</p>
442
442
  </AccordionItem>
443
443
  <AccordionItem>
444
444
  {#snippet header()}Is it accessible?{/snippet}
445
- <p class="text-gray-600">Yes! It includes proper ARIA attributes and keyboard navigation.</p>
445
+ <p class="text-text-secondary">Yes! It includes proper ARIA attributes and keyboard navigation.</p>
446
446
  </AccordionItem>
447
447
  </Accordion>
448
448
  </div>
@@ -457,17 +457,17 @@
457
457
  <Tabs bind:activeTabValue={activeTab}>
458
458
  <TabItem title="Profile">
459
459
  <div class="p-4">
460
- <p class="text-gray-600">This is the Profile tab content.</p>
460
+ <p class="text-text-secondary">This is the Profile tab content.</p>
461
461
  </div>
462
462
  </TabItem>
463
463
  <TabItem title="Settings">
464
464
  <div class="p-4">
465
- <p class="text-gray-600">This is the Settings tab content.</p>
465
+ <p class="text-text-secondary">This is the Settings tab content.</p>
466
466
  </div>
467
467
  </TabItem>
468
468
  <TabItem title="Messages">
469
469
  <div class="p-4">
470
- <p class="text-gray-600">This is the Messages tab content.</p>
470
+ <p class="text-text-secondary">This is the Messages tab content.</p>
471
471
  </div>
472
472
  </TabItem>
473
473
  </Tabs>
@@ -483,7 +483,7 @@
483
483
  totalPages={10}
484
484
  bind:currentPage={currentPage}
485
485
  />
486
- <p class="text-sm {isDark ? 'text-gray-400' : 'text-gray-500'} mt-3">Current page: {currentPage}</p>
486
+ <p class="text-sm {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-3">Current page: {currentPage}</p>
487
487
  </section>
488
488
 
489
489
  <!-- ========== SKELETON ========== -->
@@ -493,7 +493,7 @@
493
493
 
494
494
  <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
495
495
  <div>
496
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Basic Skeleton</p>
496
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Basic Skeleton</p>
497
497
  <div class="space-y-2">
498
498
  <Skeleton class="h-4 w-full" />
499
499
  <Skeleton class="h-4 w-3/4" />
@@ -502,18 +502,18 @@
502
502
  </div>
503
503
 
504
504
  <div>
505
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Image Placeholder</p>
505
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Image Placeholder</p>
506
506
  <ImagePlaceholder />
507
507
  </div>
508
508
 
509
509
  <div>
510
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">Card Placeholder</p>
510
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">Card Placeholder</p>
511
511
  <CardPlaceholder />
512
512
  </div>
513
513
  </div>
514
514
 
515
515
  <div class="mt-6">
516
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">List Placeholder</p>
516
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mb-2">List Placeholder</p>
517
517
  <ListPlaceholder />
518
518
  </div>
519
519
  </section>
@@ -526,15 +526,15 @@
526
526
  <div class="flex flex-wrap gap-6 items-center">
527
527
  <div class="text-center">
528
528
  <Spinner size="sm" />
529
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">Small</p>
529
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">Small</p>
530
530
  </div>
531
531
  <div class="text-center">
532
532
  <Spinner size="md" />
533
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">Medium</p>
533
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">Medium</p>
534
534
  </div>
535
535
  <div class="text-center">
536
536
  <Spinner size="lg" />
537
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">Large</p>
537
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">Large</p>
538
538
  </div>
539
539
  </div>
540
540
  </section>
@@ -547,27 +547,27 @@
547
547
  <div class="flex flex-wrap gap-4 items-end">
548
548
  <div class="text-center">
549
549
  <Avatar size="xs" />
550
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">XS</p>
550
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">XS</p>
551
551
  </div>
552
552
  <div class="text-center">
553
553
  <Avatar size="sm" />
554
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">SM</p>
554
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">SM</p>
555
555
  </div>
556
556
  <div class="text-center">
557
557
  <Avatar size="md" />
558
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">MD</p>
558
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">MD</p>
559
559
  </div>
560
560
  <div class="text-center">
561
561
  <Avatar size="lg" />
562
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">LG</p>
562
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">LG</p>
563
563
  </div>
564
564
  <div class="text-center">
565
565
  <Avatar size="xl" />
566
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">XL</p>
566
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">XL</p>
567
567
  </div>
568
568
  <div class="text-center">
569
569
  <Avatar size="md" initials="JD" />
570
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-2">Initials</p>
570
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-2">Initials</p>
571
571
  </div>
572
572
  </div>
573
573
  </section>
@@ -616,61 +616,61 @@
616
616
 
617
617
  <div class="flex flex-wrap gap-6">
618
618
  <div class="text-center">
619
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
619
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
620
620
  <Home />
621
621
  </div>
622
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">Home</p>
622
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">Home</p>
623
623
  </div>
624
624
  <div class="text-center">
625
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
625
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
626
626
  <Profile />
627
627
  </div>
628
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">Profile</p>
628
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">Profile</p>
629
629
  </div>
630
630
  <div class="text-center">
631
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
631
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
632
632
  <Notification />
633
633
  </div>
634
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">Notification</p>
634
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">Notification</p>
635
635
  </div>
636
636
  <div class="text-center">
637
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
637
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
638
638
  <Message />
639
639
  </div>
640
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">Message</p>
640
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">Message</p>
641
641
  </div>
642
642
  <div class="text-center">
643
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
643
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
644
644
  <CheckCircle />
645
645
  </div>
646
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">CheckCircle</p>
646
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">CheckCircle</p>
647
647
  </div>
648
648
  <div class="text-center">
649
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
649
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
650
650
  <ErrorCircle />
651
651
  </div>
652
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">ErrorCircle</p>
652
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">ErrorCircle</p>
653
653
  </div>
654
654
  <div class="text-center">
655
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
655
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
656
656
  <Info />
657
657
  </div>
658
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">Info</p>
658
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">Info</p>
659
659
  </div>
660
660
  <div class="text-center">
661
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
661
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
662
662
  <WarningIcon />
663
663
  </div>
664
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">Warning</p>
664
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">Warning</p>
665
665
  </div>
666
666
  <div class="text-center">
667
- <div class="w-12 h-12 flex items-center justify-center bg-gray-100 rounded-lg">
667
+ <div class="w-12 h-12 flex items-center justify-center bg-muted rounded-lg">
668
668
  <Cross />
669
669
  </div>
670
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mt-1">Cross</p>
670
+ <p class="text-xs {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-1">Cross</p>
671
671
  </div>
672
672
  </div>
673
- <p class="text-sm {isDark ? 'text-gray-400' : 'text-gray-500'} mt-4">
673
+ <p class="text-sm {isDark ? 'text-muted-foreground' : 'text-muted-foreground'} mt-4">
674
674
  See <strong>IconGallery</strong> story for complete icon reference (30+ icons)
675
675
  </p>
676
676
  </section>
@@ -712,7 +712,7 @@
712
712
  <h3 class="text-lg font-semibold">Example Modal</h3>
713
713
  {/snippet}
714
714
  {#snippet body()}
715
- <p class="text-gray-600">This is the modal content. Click outside or press ESC to close.</p>
715
+ <p class="text-text-secondary">This is the modal content. Click outside or press ESC to close.</p>
716
716
  {/snippet}
717
717
  {#snippet footer()}
718
718
  <Button variant="ghost" onclick={() => showModal = false}>Cancel</Button>
@@ -724,7 +724,7 @@
724
724
  <Drawer bind:open={showDrawer} placement="right">
725
725
  <div class="p-6">
726
726
  <h3 class="text-lg font-semibold mb-4">Drawer Content</h3>
727
- <p class="text-gray-600">This drawer slides in from the right.</p>
727
+ <p class="text-text-secondary">This drawer slides in from the right.</p>
728
728
  <Button class="mt-4" onclick={() => showDrawer = false}>Close</Button>
729
729
  </div>
730
730
  </Drawer>
@@ -733,7 +733,7 @@
733
733
  <BottomSheet open={showBottomSheet} onclose={() => showBottomSheet = false}>
734
734
  <div class="p-6">
735
735
  <h3 class="text-lg font-semibold mb-4">Bottom Sheet</h3>
736
- <p class="text-gray-600">This sheet slides up from the bottom on mobile.</p>
736
+ <p class="text-text-secondary">This sheet slides up from the bottom on mobile.</p>
737
737
  <Button class="mt-4" onclick={() => showBottomSheet = false}>Close</Button>
738
738
  </div>
739
739
  </BottomSheet>