@getmicdrop/svelte-components 5.5.5 → 5.6.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 (330) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +172 -172
  2. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
  3. package/dist/calendar/FAQs/FAQs.svelte +75 -75
  4. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
  5. package/dist/calendar/OrderSummary/OrderSummary.svelte +367 -367
  6. package/dist/calendar/PublicCard/PublicCard.svelte +134 -134
  7. package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
  8. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
  9. package/dist/components/Layout/AppShell.svelte +104 -0
  10. package/dist/components/Layout/AppShell.svelte.d.ts +26 -0
  11. package/dist/components/Layout/AppShell.svelte.d.ts.map +1 -0
  12. package/dist/components/Layout/ContentSection.svelte +80 -0
  13. package/dist/components/Layout/ContentSection.svelte.d.ts +23 -0
  14. package/dist/components/Layout/ContentSection.svelte.d.ts.map +1 -0
  15. package/dist/components/Layout/Grid.svelte +4 -4
  16. package/dist/components/Layout/Heading.svelte +81 -0
  17. package/dist/components/Layout/Heading.svelte.d.ts +24 -0
  18. package/dist/components/Layout/Heading.svelte.d.ts.map +1 -0
  19. package/dist/components/Layout/PageContainer.svelte +69 -0
  20. package/dist/components/Layout/PageContainer.svelte.d.ts +23 -0
  21. package/dist/components/Layout/PageContainer.svelte.d.ts.map +1 -0
  22. package/dist/components/Layout/Responsive.svelte +75 -0
  23. package/dist/components/Layout/Responsive.svelte.d.ts +19 -0
  24. package/dist/components/Layout/Responsive.svelte.d.ts.map +1 -0
  25. package/dist/components/Layout/Section.svelte +80 -80
  26. package/dist/components/Layout/ShowOnDesktop.svelte +37 -0
  27. package/dist/components/Layout/ShowOnDesktop.svelte.d.ts +16 -0
  28. package/dist/components/Layout/ShowOnDesktop.svelte.d.ts.map +1 -0
  29. package/dist/components/Layout/ShowOnMobile.svelte +37 -0
  30. package/dist/components/Layout/ShowOnMobile.svelte.d.ts +16 -0
  31. package/dist/components/Layout/ShowOnMobile.svelte.d.ts.map +1 -0
  32. package/dist/components/Layout/Sidebar.svelte +108 -108
  33. package/dist/components/Layout/Stack.spec.js +1 -1
  34. package/dist/components/Layout/Stack.svelte +6 -6
  35. package/dist/components/Layout/Text.svelte +87 -0
  36. package/dist/components/Layout/Text.svelte.d.ts +28 -0
  37. package/dist/components/Layout/Text.svelte.d.ts.map +1 -0
  38. package/dist/components/Layout/TwoColumn.svelte +108 -0
  39. package/dist/components/Layout/TwoColumn.svelte.d.ts +28 -0
  40. package/dist/components/Layout/TwoColumn.svelte.d.ts.map +1 -0
  41. package/dist/components/Layout/__tests__/AppShell.test.d.ts +2 -0
  42. package/dist/components/Layout/__tests__/AppShell.test.d.ts.map +1 -0
  43. package/dist/components/Layout/__tests__/AppShell.test.js +95 -0
  44. package/dist/components/Layout/__tests__/ContentSection.test.d.ts +2 -0
  45. package/dist/components/Layout/__tests__/ContentSection.test.d.ts.map +1 -0
  46. package/dist/components/Layout/__tests__/ContentSection.test.js +112 -0
  47. package/dist/components/Layout/__tests__/Heading.test.d.ts +2 -0
  48. package/dist/components/Layout/__tests__/Heading.test.d.ts.map +1 -0
  49. package/dist/components/Layout/__tests__/Heading.test.js +123 -0
  50. package/dist/components/Layout/__tests__/PageContainer.test.d.ts +2 -0
  51. package/dist/components/Layout/__tests__/PageContainer.test.d.ts.map +1 -0
  52. package/dist/components/Layout/__tests__/PageContainer.test.js +133 -0
  53. package/dist/components/Layout/__tests__/Responsive.test.d.ts +2 -0
  54. package/dist/components/Layout/__tests__/Responsive.test.d.ts.map +1 -0
  55. package/dist/components/Layout/__tests__/Responsive.test.js +123 -0
  56. package/dist/components/Layout/__tests__/ShowOnDesktop.test.d.ts +2 -0
  57. package/dist/components/Layout/__tests__/ShowOnDesktop.test.d.ts.map +1 -0
  58. package/dist/components/Layout/__tests__/ShowOnDesktop.test.js +84 -0
  59. package/dist/components/Layout/__tests__/ShowOnMobile.test.d.ts +2 -0
  60. package/dist/components/Layout/__tests__/ShowOnMobile.test.d.ts.map +1 -0
  61. package/dist/components/Layout/__tests__/ShowOnMobile.test.js +80 -0
  62. package/dist/components/Layout/__tests__/Text.test.d.ts +2 -0
  63. package/dist/components/Layout/__tests__/Text.test.d.ts.map +1 -0
  64. package/dist/components/Layout/__tests__/Text.test.js +146 -0
  65. package/dist/components/Layout/__tests__/TwoColumn.test.d.ts +2 -0
  66. package/dist/components/Layout/__tests__/TwoColumn.test.d.ts.map +1 -0
  67. package/dist/components/Layout/__tests__/TwoColumn.test.js +129 -0
  68. package/dist/constants/validation.js +91 -91
  69. package/dist/constants/validation.spec.js +64 -64
  70. package/dist/datetime/__tests__/format.test.js +1 -1
  71. package/dist/datetime/__tests__/parse.test.js +1 -1
  72. package/dist/datetime/__tests__/timezone.test.js +1 -1
  73. package/dist/datetime/parse.js +1 -1
  74. package/dist/forms/createFormStore.svelte.js +1 -0
  75. package/dist/index.d.ts +1 -0
  76. package/dist/index.js +1 -0
  77. package/dist/patterns/data/DataGrid.svelte +45 -45
  78. package/dist/patterns/data/DataList.svelte +24 -24
  79. package/dist/patterns/data/DataTable.svelte +36 -36
  80. package/dist/patterns/forms/FormActions.spec.js +95 -95
  81. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  82. package/dist/patterns/forms/FormActions.svelte +46 -46
  83. package/dist/patterns/forms/FormGrid.svelte +33 -33
  84. package/dist/patterns/forms/FormSection.svelte +32 -32
  85. package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
  86. package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
  87. package/dist/patterns/layout/Sidebar.svelte +39 -39
  88. package/dist/patterns/layout/index.d.ts +9 -0
  89. package/dist/patterns/layout/index.js +22 -0
  90. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  91. package/dist/patterns/navigation/BottomNav.svelte +74 -64
  92. package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
  93. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  94. package/dist/patterns/navigation/Header.svelte +193 -193
  95. package/dist/patterns/page/PageHeader.svelte +18 -18
  96. package/dist/patterns/page/PageLayout.svelte +40 -40
  97. package/dist/patterns/page/PageLoader.spec.js +57 -57
  98. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  99. package/dist/patterns/page/PageLoader.svelte +24 -24
  100. package/dist/patterns/page/SectionHeader.svelte +29 -29
  101. package/dist/presets/badges.js +112 -112
  102. package/dist/presets/buttons.js +76 -76
  103. package/dist/presets/index.js +9 -9
  104. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  105. package/dist/primitives/Accordion/Accordion.svelte +42 -42
  106. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  107. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
  108. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts +2 -2
  109. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts.map +1 -1
  110. package/dist/primitives/Alert/Alert.spec.js +173 -173
  111. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  112. package/dist/primitives/Alert/Alert.svelte +27 -27
  113. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  114. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  115. package/dist/primitives/Badges/Badge.spec.js +144 -144
  116. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  117. package/dist/primitives/Badges/Badge.svelte +79 -79
  118. package/dist/primitives/BottomSheet/BottomSheet.spec.js +136 -136
  119. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  120. package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
  121. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +122 -122
  122. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  123. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +89 -89
  124. package/dist/primitives/Button/Button.spec.js +223 -223
  125. package/dist/primitives/Button/Button.stories.svelte +76 -76
  126. package/dist/primitives/Button/Button.svelte +270 -270
  127. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  128. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  129. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  130. package/dist/primitives/Card.spec.js +49 -49
  131. package/dist/primitives/Card.stories.svelte +22 -22
  132. package/dist/primitives/Card.svelte +28 -28
  133. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  134. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  135. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  136. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  137. package/dist/primitives/DarkModeToggle.svelte +136 -136
  138. package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
  139. package/dist/primitives/Drawer/Drawer.svelte +120 -120
  140. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  141. package/dist/primitives/Dropdown/Dropdown.svelte +14 -14
  142. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -0
  143. package/dist/primitives/Dropdown/DropdownDivider.svelte.d.ts +7 -0
  144. package/dist/primitives/Dropdown/DropdownDivider.svelte.d.ts.map +1 -0
  145. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  146. package/dist/primitives/Helper/Helper.svelte +33 -0
  147. package/dist/primitives/Helper/Helper.svelte.d.ts +18 -0
  148. package/dist/primitives/Helper/Helper.svelte.d.ts.map +1 -0
  149. package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
  150. package/dist/primitives/Icons/ArrowRight.svelte +8 -8
  151. package/dist/primitives/Icons/Availability.svelte +14 -14
  152. package/dist/primitives/Icons/Back.svelte +14 -14
  153. package/dist/primitives/Icons/CheckCircle.svelte +6 -6
  154. package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
  155. package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
  156. package/dist/primitives/Icons/ChevronRight.svelte +4 -4
  157. package/dist/primitives/Icons/Copy.svelte +15 -15
  158. package/dist/primitives/Icons/Cross.svelte +5 -5
  159. package/dist/primitives/Icons/DownArrow.svelte +8 -8
  160. package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
  161. package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
  162. package/dist/primitives/Icons/Home.svelte +15 -15
  163. package/dist/primitives/Icons/Icon.spec.js +169 -169
  164. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  165. package/dist/primitives/Icons/Icon.svelte +52 -52
  166. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  167. package/dist/primitives/Icons/Info.svelte +7 -7
  168. package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
  169. package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
  170. package/dist/primitives/Icons/Message.svelte +15 -15
  171. package/dist/primitives/Icons/MoonIcon.svelte +5 -5
  172. package/dist/primitives/Icons/More.svelte +21 -21
  173. package/dist/primitives/Icons/MoreHori.spec.js +61 -61
  174. package/dist/primitives/Icons/MoreHori.svelte +22 -22
  175. package/dist/primitives/Icons/Notification.svelte +14 -14
  176. package/dist/primitives/Icons/Payment.svelte +14 -14
  177. package/dist/primitives/Icons/Profile.svelte +21 -21
  178. package/dist/primitives/Icons/Reload.svelte +29 -29
  179. package/dist/primitives/Icons/Shows.svelte +21 -21
  180. package/dist/primitives/Icons/Signout.svelte +21 -21
  181. package/dist/primitives/Icons/SunIcon.svelte +8 -8
  182. package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
  183. package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
  184. package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
  185. package/dist/primitives/Icons/WarningIcon.svelte +5 -5
  186. package/dist/primitives/Input/Input.spec.js +573 -573
  187. package/dist/primitives/Input/Input.stories.svelte +139 -139
  188. package/dist/primitives/Input/Input.svelte +1 -2
  189. package/dist/primitives/Input/Input.svelte.d.ts +2 -4
  190. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  191. package/dist/primitives/Input/Select.spec.js +212 -212
  192. package/dist/primitives/Input/Select.stories.svelte +112 -112
  193. package/dist/primitives/Input/Select.svelte +128 -128
  194. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  195. package/dist/primitives/Input/Textarea.svelte +35 -35
  196. package/dist/primitives/Label/Label.svelte +37 -37
  197. package/dist/primitives/Modal/Modal.spec.js +99 -99
  198. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  199. package/dist/primitives/Modal/Modal.svelte +3 -4
  200. package/dist/primitives/Modal/Modal.svelte.d.ts +6 -8
  201. package/dist/primitives/Modal/Modal.svelte.d.ts.map +1 -1
  202. package/dist/primitives/NumberInput/NumberInput.svelte +0 -1
  203. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts +0 -2
  204. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -1
  205. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  206. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  207. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  208. package/dist/primitives/Radio/Radio.svelte +67 -67
  209. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  210. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  211. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  212. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  213. package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
  214. package/dist/primitives/Spinner/Spinner.spec.js +71 -71
  215. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  216. package/dist/primitives/Spinner/Spinner.svelte +20 -20
  217. package/dist/primitives/Tabs/TabItem.svelte +49 -49
  218. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  219. package/dist/primitives/Tabs/Tabs.svelte +123 -123
  220. package/dist/primitives/Toggle.spec.js +143 -143
  221. package/dist/primitives/Toggle.stories.svelte +92 -92
  222. package/dist/primitives/Toggle.svelte +1 -2
  223. package/dist/primitives/Toggle.svelte.d.ts +2 -4
  224. package/dist/primitives/Toggle.svelte.d.ts.map +1 -1
  225. package/dist/primitives/Tooltip/Tooltip.svelte +83 -0
  226. package/dist/primitives/Tooltip/Tooltip.svelte.d.ts +15 -0
  227. package/dist/primitives/Tooltip/Tooltip.svelte.d.ts.map +1 -0
  228. package/dist/primitives/Typography/Typography.svelte +53 -53
  229. package/dist/primitives/ValidationError.spec.js +103 -103
  230. package/dist/primitives/ValidationError.stories.svelte +69 -69
  231. package/dist/primitives/ValidationError.svelte +29 -29
  232. package/dist/primitives/index.d.ts +3 -0
  233. package/dist/primitives/index.js +91 -84
  234. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  235. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  236. package/dist/recipes/CropImage/CropImage.svelte +238 -238
  237. package/dist/recipes/ImageUploader/ImageUploader.spec.js +6 -5
  238. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  239. package/dist/recipes/ImageUploader/ImageUploader.svelte +804 -804
  240. package/dist/recipes/SuperLogin/SuperLogin.spec.js +17 -17
  241. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  242. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  243. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  244. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
  245. package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
  246. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  247. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
  248. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  249. package/dist/recipes/fields/FormField.svelte +58 -58
  250. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  251. package/dist/recipes/fields/SelectField.svelte +80 -80
  252. package/dist/recipes/fields/TextareaField.svelte +97 -97
  253. package/dist/recipes/fields/ToggleField.svelte +60 -60
  254. package/dist/recipes/fields/index.js +7 -7
  255. package/dist/recipes/inputs/MultiSelect.spec.js +258 -258
  256. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  257. package/dist/recipes/inputs/MultiSelect.svelte +29 -8
  258. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +54 -21
  259. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  260. package/dist/recipes/inputs/OTPInput.spec.js +251 -251
  261. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  262. package/dist/recipes/inputs/OTPInput.svelte +29 -29
  263. package/dist/recipes/inputs/PasswordInput.svelte +22 -22
  264. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +117 -117
  265. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +9 -4
  266. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
  267. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +30 -25
  268. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +12 -1
  269. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  270. package/dist/recipes/inputs/Search.svelte +37 -37
  271. package/dist/recipes/inputs/SelectDropdown.svelte +57 -57
  272. package/dist/recipes/modals/AlertModal.svelte +130 -130
  273. package/dist/recipes/modals/ConfirmationModal.spec.js +206 -206
  274. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  275. package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
  276. package/dist/recipes/modals/InputModal.svelte +182 -182
  277. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  278. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  279. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  280. package/dist/recipes/modals/StatusModal.svelte +206 -206
  281. package/dist/services/EventService.js +75 -75
  282. package/dist/services/EventService.spec.js +217 -217
  283. package/dist/services/ShowService.spec.js +345 -345
  284. package/dist/stores/auth.js +44 -36
  285. package/dist/stores/auth.spec.js +139 -139
  286. package/dist/stores/auth.svelte.d.ts +39 -0
  287. package/dist/stores/auth.svelte.d.ts.map +1 -0
  288. package/dist/stores/auth.svelte.js +60 -0
  289. package/dist/stores/formDataStore.d.ts.map +1 -1
  290. package/dist/stores/formDataStore.js +8 -0
  291. package/dist/stores/formDataStore.svelte.d.ts +47 -0
  292. package/dist/stores/formDataStore.svelte.d.ts.map +1 -0
  293. package/dist/stores/formDataStore.svelte.js +84 -0
  294. package/dist/stores/formSave.d.ts.map +1 -1
  295. package/dist/stores/formSave.js +8 -0
  296. package/dist/stores/formSave.svelte.d.ts +33 -0
  297. package/dist/stores/formSave.svelte.d.ts.map +1 -0
  298. package/dist/stores/formSave.svelte.js +113 -0
  299. package/dist/stores/navigation.d.ts.map +1 -1
  300. package/dist/stores/navigation.js +8 -0
  301. package/dist/stores/navigation.svelte.d.ts +35 -0
  302. package/dist/stores/navigation.svelte.d.ts.map +1 -0
  303. package/dist/stores/navigation.svelte.js +69 -0
  304. package/dist/stores/toaster.js +13 -13
  305. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  306. package/dist/stories/ButtonAuditReview.svelte +427 -427
  307. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  308. package/dist/stories/PatternsGallery.svelte +206 -206
  309. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  310. package/dist/stories/PrimitivesGallery.svelte +725 -725
  311. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  312. package/dist/stories/RecipesGallery.svelte +271 -271
  313. package/dist/stories/button-audit-manifest.json +11186 -11186
  314. package/dist/tailwind/preset.cjs +82 -82
  315. package/dist/telemetry.js +405 -405
  316. package/dist/telemetry.server.spec.js +11 -8
  317. package/dist/telemetry.spec.js +1169 -1144
  318. package/dist/tokens/__tests__/typography-base.test.d.ts +2 -0
  319. package/dist/tokens/__tests__/typography-base.test.d.ts.map +1 -0
  320. package/dist/tokens/__tests__/typography-base.test.js +138 -0
  321. package/dist/tokens/tokens.css +87 -87
  322. package/dist/tokens/typography-base.css +163 -0
  323. package/dist/utils/apiConfig.spec.js +219 -219
  324. package/dist/utils/imageValidation.spec.js +62 -59
  325. package/dist/utils/logger.d.ts +19 -0
  326. package/dist/utils/logger.d.ts.map +1 -0
  327. package/dist/utils/logger.js +47 -0
  328. package/dist/utils/transitions.js +62 -62
  329. package/dist/utils/utils.js +354 -354
  330. package/package.json +21 -16
@@ -1,19 +1,19 @@
1
- <script module>
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import PatternsGallery from './PatternsGallery.svelte';
4
-
5
- const { Story } = defineMeta({
6
- title: 'Visual Galleries/Patterns',
7
- component: PatternsGallery,
8
- parameters: {
9
- layout: 'fullscreen',
10
- docs: {
11
- description: {
12
- component: 'Complete visual gallery of all pattern components (Layer 3) - Layout & flow components.',
13
- },
14
- },
15
- },
16
- });
17
- </script>
18
-
19
- <Story name="All Patterns" />
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import PatternsGallery from './PatternsGallery.svelte';
4
+
5
+ const { Story } = defineMeta({
6
+ title: 'Visual Galleries/Patterns',
7
+ component: PatternsGallery,
8
+ parameters: {
9
+ layout: 'fullscreen',
10
+ docs: {
11
+ description: {
12
+ component: 'Complete visual gallery of all pattern components (Layer 3) - Layout & flow components.',
13
+ },
14
+ },
15
+ },
16
+ });
17
+ </script>
18
+
19
+ <Story name="All Patterns" />
@@ -1,115 +1,115 @@
1
- <script lang="ts">
2
- // ============================================================================
3
- // PATTERNS VISUAL GALLERY
4
- // Displays ALL pattern components (Layer 3) - Layout & flow components
5
- // ============================================================================
6
-
7
- // Forms
8
- import FormActions from '../patterns/forms/FormActions.svelte';
9
- import FormGrid from '../patterns/forms/FormGrid.svelte';
10
- import FormSection from '../patterns/forms/FormSection.svelte';
11
- import FormValidationSummary from '../patterns/forms/FormValidationSummary.svelte';
12
-
13
- // Navigation
14
- import BottomNav from '../patterns/navigation/BottomNav.svelte';
15
- import Header from '../patterns/navigation/Header.svelte';
16
-
17
- // Page
18
- import PageHeader from '../patterns/page/PageHeader.svelte';
19
- import PageLayout from '../patterns/page/PageLayout.svelte';
20
- import PageLoader from '../patterns/page/PageLoader.svelte';
21
- import SectionHeader from '../patterns/page/SectionHeader.svelte';
22
-
23
- // Data
24
- import DataGrid from '../patterns/data/DataGrid.svelte';
25
- import DataList from '../patterns/data/DataList.svelte';
26
- import DataTable from '../patterns/data/DataTable.svelte';
27
-
1
+ <script lang="ts">
2
+ // ============================================================================
3
+ // PATTERNS VISUAL GALLERY
4
+ // Displays ALL pattern components (Layer 3) - Layout & flow components
5
+ // ============================================================================
6
+
7
+ // Forms
8
+ import FormActions from '../patterns/forms/FormActions.svelte';
9
+ import FormGrid from '../patterns/forms/FormGrid.svelte';
10
+ import FormSection from '../patterns/forms/FormSection.svelte';
11
+ import FormValidationSummary from '../patterns/forms/FormValidationSummary.svelte';
12
+
13
+ // Navigation
14
+ import BottomNav from '../patterns/navigation/BottomNav.svelte';
15
+ import Header from '../patterns/navigation/Header.svelte';
16
+
17
+ // Page
18
+ import PageHeader from '../patterns/page/PageHeader.svelte';
19
+ import PageLayout from '../patterns/page/PageLayout.svelte';
20
+ import PageLoader from '../patterns/page/PageLoader.svelte';
21
+ import SectionHeader from '../patterns/page/SectionHeader.svelte';
22
+
23
+ // Data
24
+ import DataGrid from '../patterns/data/DataGrid.svelte';
25
+ import DataList from '../patterns/data/DataList.svelte';
26
+ import DataTable from '../patterns/data/DataTable.svelte';
27
+
28
28
  // Layout (canonical components from components/Layout)
29
29
  import Grid from '../components/Layout/Grid.svelte';
30
30
  import Stack from '../components/Layout/Stack.svelte';
31
31
  import Sidebar from '../components/Layout/Sidebar.svelte';
32
-
33
- // Primitives for demos
34
- import Button from '../primitives/Button/Button.svelte';
35
- import Input from '../primitives/Input/Input.svelte';
36
- import Card from '../primitives/Card.svelte';
37
- import Badge from '../primitives/Badges/Badge.svelte';
38
-
39
- // State
40
- let isDark = $state(false);
41
- let showPageLoader = $state(false);
42
-
43
- function toggleDark() {
44
- isDark = !isDark;
45
- document.documentElement.classList.toggle('dark', isDark);
46
- }
47
-
48
- // Section styling
49
- const sectionClass = (dark: boolean) =>
50
- `rounded-xl p-6 ${dark ? 'bg-gray-800 border-gray-700' : 'bg-white border-gray-200'} border`;
51
-
52
- const headingClass = (dark: boolean) =>
53
- `text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-gray-900'}`;
54
-
55
- const subheadingClass = (dark: boolean) =>
56
- `text-sm mb-4 ${dark ? 'text-gray-400' : 'text-gray-500'}`;
57
-
32
+
33
+ // Primitives for demos
34
+ import Button from '../primitives/Button/Button.svelte';
35
+ import Input from '../primitives/Input/Input.svelte';
36
+ import Card from '../primitives/Card.svelte';
37
+ import Badge from '../primitives/Badges/Badge.svelte';
38
+
39
+ // State
40
+ let isDark = $state(false);
41
+ let showPageLoader = $state(false);
42
+
43
+ function toggleDark() {
44
+ isDark = !isDark;
45
+ document.documentElement.classList.toggle('dark', isDark);
46
+ }
47
+
48
+ // Section styling
49
+ const sectionClass = (dark: boolean) =>
50
+ `rounded-xl p-6 ${dark ? 'bg-gray-800 border-gray-700' : 'bg-white border-gray-200'} border`;
51
+
52
+ const headingClass = (dark: boolean) =>
53
+ `text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-gray-900'}`;
54
+
55
+ const subheadingClass = (dark: boolean) =>
56
+ `text-sm mb-4 ${dark ? 'text-gray-400' : 'text-gray-500'}`;
57
+
58
58
  // Demo data
59
59
  const sampleErrors: Record<string, string | null | undefined> = {
60
60
  email: 'Email is required',
61
61
  password: 'Password must be at least 8 characters',
62
62
  };
63
-
64
- const tableData = [
65
- { id: 1, name: 'John Doe', email: 'john@example.com', status: 'Active' },
66
- { id: 2, name: 'Jane Smith', email: 'jane@example.com', status: 'Pending' },
67
- { id: 3, name: 'Bob Wilson', email: 'bob@example.com', status: 'Inactive' },
68
- ];
69
-
70
- const tableColumns = [
71
- { key: 'name', label: 'Name' },
72
- { key: 'email', label: 'Email' },
73
- { key: 'status', label: 'Status' },
74
- ];
75
-
76
- const gridItems = [
77
- { id: 1, title: 'Item 1', description: 'Description for item 1' },
78
- { id: 2, title: 'Item 2', description: 'Description for item 2' },
79
- { id: 3, title: 'Item 3', description: 'Description for item 3' },
80
- { id: 4, title: 'Item 4', description: 'Description for item 4' },
81
- { id: 5, title: 'Item 5', description: 'Description for item 5' },
82
- { id: 6, title: 'Item 6', description: 'Description for item 6' },
83
- ];
84
-
85
- const listItems = [
86
- { id: 1, primary: 'Primary text 1', secondary: 'Secondary text' },
87
- { id: 2, primary: 'Primary text 2', secondary: 'More details here' },
88
- { id: 3, primary: 'Primary text 3', secondary: 'Additional info' },
89
- ];
90
-
63
+
64
+ const tableData = [
65
+ { id: 1, name: 'John Doe', email: 'john@example.com', status: 'Active' },
66
+ { id: 2, name: 'Jane Smith', email: 'jane@example.com', status: 'Pending' },
67
+ { id: 3, name: 'Bob Wilson', email: 'bob@example.com', status: 'Inactive' },
68
+ ];
69
+
70
+ const tableColumns = [
71
+ { key: 'name', label: 'Name' },
72
+ { key: 'email', label: 'Email' },
73
+ { key: 'status', label: 'Status' },
74
+ ];
75
+
76
+ const gridItems = [
77
+ { id: 1, title: 'Item 1', description: 'Description for item 1' },
78
+ { id: 2, title: 'Item 2', description: 'Description for item 2' },
79
+ { id: 3, title: 'Item 3', description: 'Description for item 3' },
80
+ { id: 4, title: 'Item 4', description: 'Description for item 4' },
81
+ { id: 5, title: 'Item 5', description: 'Description for item 5' },
82
+ { id: 6, title: 'Item 6', description: 'Description for item 6' },
83
+ ];
84
+
85
+ const listItems = [
86
+ { id: 1, primary: 'Primary text 1', secondary: 'Secondary text' },
87
+ { id: 2, primary: 'Primary text 2', secondary: 'More details here' },
88
+ { id: 3, primary: 'Primary text 3', secondary: 'Additional info' },
89
+ ];
90
+
91
91
  const bottomNavLinks = [
92
92
  { label: 'Home', href: '/', icon: 'home' },
93
93
  { label: 'Shows', href: '/shows', icon: 'shows' },
94
94
  { label: 'Profile', href: '/profile', icon: 'profile' },
95
95
  ];
96
- </script>
97
-
98
- <div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-gray-900' : 'bg-gray-50'}">
99
- <!-- Header -->
100
- <div class="flex items-center justify-between mb-8">
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>
104
- </div>
105
- <button
106
- onclick={toggleDark}
107
- class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-yellow-500 text-black' : 'bg-gray-800 text-white'}"
108
- >
109
- {isDark ? '☀️ Light' : '🌙 Dark'}
110
- </button>
111
- </div>
112
-
96
+ </script>
97
+
98
+ <div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-gray-900' : 'bg-gray-50'}">
99
+ <!-- Header -->
100
+ <div class="flex items-center justify-between mb-8">
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>
104
+ </div>
105
+ <button
106
+ onclick={toggleDark}
107
+ class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-yellow-500 text-black' : 'bg-gray-800 text-white'}"
108
+ >
109
+ {isDark ? '☀️ Light' : '🌙 Dark'}
110
+ </button>
111
+ </div>
112
+
113
113
  <!-- ========== PAGE PATTERNS ========== -->
114
114
  <section class={sectionClass(isDark)}>
115
115
  <h2 class={headingClass(isDark)}>PageHeader</h2>
@@ -131,75 +131,75 @@
131
131
  </PageHeader>
132
132
  </div>
133
133
  </section>
134
-
135
- <!-- ========== SECTION HEADER ========== -->
136
- <section class={sectionClass(isDark)}>
137
- <h2 class={headingClass(isDark)}>SectionHeader</h2>
138
- <p class={subheadingClass(isDark)}>Section dividers with optional description</p>
139
-
140
- <div class="space-y-6">
141
- <SectionHeader title="Basic Section" />
142
- <SectionHeader title="With Description" description="Additional context about this section" />
134
+
135
+ <!-- ========== SECTION HEADER ========== -->
136
+ <section class={sectionClass(isDark)}>
137
+ <h2 class={headingClass(isDark)}>SectionHeader</h2>
138
+ <p class={subheadingClass(isDark)}>Section dividers with optional description</p>
139
+
140
+ <div class="space-y-6">
141
+ <SectionHeader title="Basic Section" />
142
+ <SectionHeader title="With Description" description="Additional context about this section" />
143
143
  <SectionHeader title="With Action">
144
144
  {#snippet actions()}
145
145
  <Button variant="link" size="sm">View All</Button>
146
146
  {/snippet}
147
147
  </SectionHeader>
148
- </div>
149
- </section>
150
-
151
- <!-- ========== PAGE LOADER ========== -->
152
- <section class={sectionClass(isDark)}>
153
- <h2 class={headingClass(isDark)}>PageLoader</h2>
154
- <p class={subheadingClass(isDark)}>Full-page loading indicator</p>
155
-
156
- <Button onclick={() => {
157
- showPageLoader = true;
158
- setTimeout(() => showPageLoader = false, 2000);
159
- }}>
160
- Show PageLoader (2s)
161
- </Button>
162
- </section>
163
-
164
- {#if showPageLoader}
165
- <PageLoader />
166
- {/if}
167
-
168
- <!-- ========== FORM PATTERNS ========== -->
169
- <section class={sectionClass(isDark)}>
170
- <h2 class={headingClass(isDark)}>FormSection</h2>
171
- <p class={subheadingClass(isDark)}>Grouped form fields with title and description</p>
172
-
173
- <FormSection title="Personal Information" description="Enter your personal details">
174
- <div class="space-y-4">
175
- <Input label="Full Name" placeholder="John Doe" />
176
- <Input label="Email" type="email" placeholder="john@example.com" />
177
- </div>
178
- </FormSection>
179
- </section>
180
-
181
- <!-- ========== FORM GRID ========== -->
182
- <section class={sectionClass(isDark)}>
183
- <h2 class={headingClass(isDark)}>FormGrid</h2>
184
- <p class={subheadingClass(isDark)}>Responsive grid layout for form fields</p>
185
-
186
- <FormGrid cols={2}>
187
- <Input label="First Name" placeholder="John" />
188
- <Input label="Last Name" placeholder="Doe" />
189
- <Input label="Email" type="email" placeholder="john@example.com" />
190
- <Input label="Phone" type="tel" placeholder="(555) 123-4567" />
191
- </FormGrid>
192
-
193
- <div class="mt-6">
194
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">3 Columns</p>
195
- <FormGrid cols={3}>
196
- <Input label="City" placeholder="New York" />
197
- <Input label="State" placeholder="NY" />
198
- <Input label="Zip" placeholder="10001" />
199
- </FormGrid>
200
- </div>
201
- </section>
202
-
148
+ </div>
149
+ </section>
150
+
151
+ <!-- ========== PAGE LOADER ========== -->
152
+ <section class={sectionClass(isDark)}>
153
+ <h2 class={headingClass(isDark)}>PageLoader</h2>
154
+ <p class={subheadingClass(isDark)}>Full-page loading indicator</p>
155
+
156
+ <Button onclick={() => {
157
+ showPageLoader = true;
158
+ setTimeout(() => showPageLoader = false, 2000);
159
+ }}>
160
+ Show PageLoader (2s)
161
+ </Button>
162
+ </section>
163
+
164
+ {#if showPageLoader}
165
+ <PageLoader />
166
+ {/if}
167
+
168
+ <!-- ========== FORM PATTERNS ========== -->
169
+ <section class={sectionClass(isDark)}>
170
+ <h2 class={headingClass(isDark)}>FormSection</h2>
171
+ <p class={subheadingClass(isDark)}>Grouped form fields with title and description</p>
172
+
173
+ <FormSection title="Personal Information" description="Enter your personal details">
174
+ <div class="space-y-4">
175
+ <Input label="Full Name" placeholder="John Doe" />
176
+ <Input label="Email" type="email" placeholder="john@example.com" />
177
+ </div>
178
+ </FormSection>
179
+ </section>
180
+
181
+ <!-- ========== FORM GRID ========== -->
182
+ <section class={sectionClass(isDark)}>
183
+ <h2 class={headingClass(isDark)}>FormGrid</h2>
184
+ <p class={subheadingClass(isDark)}>Responsive grid layout for form fields</p>
185
+
186
+ <FormGrid cols={2}>
187
+ <Input label="First Name" placeholder="John" />
188
+ <Input label="Last Name" placeholder="Doe" />
189
+ <Input label="Email" type="email" placeholder="john@example.com" />
190
+ <Input label="Phone" type="tel" placeholder="(555) 123-4567" />
191
+ </FormGrid>
192
+
193
+ <div class="mt-6">
194
+ <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">3 Columns</p>
195
+ <FormGrid cols={3}>
196
+ <Input label="City" placeholder="New York" />
197
+ <Input label="State" placeholder="NY" />
198
+ <Input label="Zip" placeholder="10001" />
199
+ </FormGrid>
200
+ </div>
201
+ </section>
202
+
203
203
  <!-- ========== FORM ACTIONS ========== -->
204
204
  <section class={sectionClass(isDark)}>
205
205
  <h2 class={headingClass(isDark)}>FormActions</h2>
@@ -222,15 +222,15 @@
222
222
  </div>
223
223
  </div>
224
224
  </section>
225
-
226
- <!-- ========== FORM VALIDATION SUMMARY ========== -->
227
- <section class={sectionClass(isDark)}>
228
- <h2 class={headingClass(isDark)}>FormValidationSummary</h2>
229
- <p class={subheadingClass(isDark)}>Summary of form validation errors</p>
230
-
231
- <FormValidationSummary errors={sampleErrors} />
232
- </section>
233
-
225
+
226
+ <!-- ========== FORM VALIDATION SUMMARY ========== -->
227
+ <section class={sectionClass(isDark)}>
228
+ <h2 class={headingClass(isDark)}>FormValidationSummary</h2>
229
+ <p class={subheadingClass(isDark)}>Summary of form validation errors</p>
230
+
231
+ <FormValidationSummary errors={sampleErrors} />
232
+ </section>
233
+
234
234
  <!-- ========== DATA TABLE ========== -->
235
235
  <section class={sectionClass(isDark)}>
236
236
  <h2 class={headingClass(isDark)}>DataTable</h2>
@@ -255,7 +255,7 @@
255
255
  {/snippet}
256
256
  </DataTable>
257
257
  </section>
258
-
258
+
259
259
  <!-- ========== DATA LIST ========== -->
260
260
  <section class={sectionClass(isDark)}>
261
261
  <h2 class={headingClass(isDark)}>DataList</h2>
@@ -275,7 +275,7 @@
275
275
  </DataList>
276
276
  </div>
277
277
  </section>
278
-
278
+
279
279
  <!-- ========== DATA GRID ========== -->
280
280
  <section class={sectionClass(isDark)}>
281
281
  <h2 class={headingClass(isDark)}>DataGrid</h2>
@@ -290,35 +290,35 @@
290
290
  {/snippet}
291
291
  </DataGrid>
292
292
  </section>
293
-
294
- <!-- ========== LAYOUT: STACK ========== -->
295
- <section class={sectionClass(isDark)}>
296
- <h2 class={headingClass(isDark)}>Stack</h2>
297
- <p class={subheadingClass(isDark)}>Vertical spacing utility</p>
298
-
299
- <div class="max-w-sm">
300
- <Stack gap="md">
301
- <Card>Stack Item 1</Card>
302
- <Card>Stack Item 2</Card>
303
- <Card>Stack Item 3</Card>
304
- </Stack>
305
- </div>
306
- </section>
307
-
308
- <!-- ========== LAYOUT: GRID ========== -->
309
- <section class={sectionClass(isDark)}>
310
- <h2 class={headingClass(isDark)}>Grid</h2>
311
- <p class={subheadingClass(isDark)}>Responsive grid layout utility</p>
312
-
313
- <Grid cols="4" gap="md">
314
- {#each [1, 2, 3, 4, 5, 6, 7, 8] as i}
315
- <Card class="text-center py-4">
316
- <span class="text-2xl font-bold">{i}</span>
317
- </Card>
318
- {/each}
319
- </Grid>
320
- </section>
321
-
293
+
294
+ <!-- ========== LAYOUT: STACK ========== -->
295
+ <section class={sectionClass(isDark)}>
296
+ <h2 class={headingClass(isDark)}>Stack</h2>
297
+ <p class={subheadingClass(isDark)}>Vertical spacing utility</p>
298
+
299
+ <div class="max-w-sm">
300
+ <Stack gap="md">
301
+ <Card>Stack Item 1</Card>
302
+ <Card>Stack Item 2</Card>
303
+ <Card>Stack Item 3</Card>
304
+ </Stack>
305
+ </div>
306
+ </section>
307
+
308
+ <!-- ========== LAYOUT: GRID ========== -->
309
+ <section class={sectionClass(isDark)}>
310
+ <h2 class={headingClass(isDark)}>Grid</h2>
311
+ <p class={subheadingClass(isDark)}>Responsive grid layout utility</p>
312
+
313
+ <Grid cols="4" gap="md">
314
+ {#each [1, 2, 3, 4, 5, 6, 7, 8] as i}
315
+ <Card class="text-center py-4">
316
+ <span class="text-2xl font-bold">{i}</span>
317
+ </Card>
318
+ {/each}
319
+ </Grid>
320
+ </section>
321
+
322
322
  <!-- ========== LAYOUT: SIDEBAR ========== -->
323
323
  <section class={sectionClass(isDark)}>
324
324
  <h2 class={headingClass(isDark)}>Sidebar</h2>
@@ -344,7 +344,7 @@
344
344
  </Sidebar>
345
345
  </div>
346
346
  </section>
347
-
347
+
348
348
  <!-- ========== NAVIGATION: HEADER ========== -->
349
349
  <section class={sectionClass(isDark)}>
350
350
  <h2 class={headingClass(isDark)}>Header</h2>
@@ -363,7 +363,7 @@
363
363
  </div>
364
364
  </div>
365
365
  </section>
366
-
366
+
367
367
  <!-- ========== NAVIGATION: BOTTOM NAV ========== -->
368
368
  <section class={sectionClass(isDark)}>
369
369
  <h2 class={headingClass(isDark)}>BottomNav</h2>
@@ -373,7 +373,7 @@
373
373
  <BottomNav links={bottomNavLinks} />
374
374
  </div>
375
375
  </section>
376
-
376
+
377
377
  <!-- ========== PAGE LAYOUT ========== -->
378
378
  <section class={sectionClass(isDark)}>
379
379
  <h2 class={headingClass(isDark)}>PageLayout</h2>
@@ -396,4 +396,4 @@
396
396
  </PageLayout>
397
397
  </div>
398
398
  </section>
399
- </div>
399
+ </div>
@@ -1,19 +1,19 @@
1
- <script module>
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import PrimitivesGallery from './PrimitivesGallery.svelte';
4
-
5
- const { Story } = defineMeta({
6
- title: 'Visual Galleries/Primitives',
7
- component: PrimitivesGallery,
8
- parameters: {
9
- layout: 'fullscreen',
10
- docs: {
11
- description: {
12
- component: 'Complete visual gallery of all primitive components (Layer 1) with variants and states.',
13
- },
14
- },
15
- },
16
- });
17
- </script>
18
-
19
- <Story name="All Primitives" />
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import PrimitivesGallery from './PrimitivesGallery.svelte';
4
+
5
+ const { Story } = defineMeta({
6
+ title: 'Visual Galleries/Primitives',
7
+ component: PrimitivesGallery,
8
+ parameters: {
9
+ layout: 'fullscreen',
10
+ docs: {
11
+ description: {
12
+ component: 'Complete visual gallery of all primitive components (Layer 1) with variants and states.',
13
+ },
14
+ },
15
+ },
16
+ });
17
+ </script>
18
+
19
+ <Story name="All Primitives" />