@getmicdrop/svelte-components 5.20.2 → 5.21.0

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 (333) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +191 -191
  2. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +803 -803
  3. package/dist/calendar/FAQs/FAQs.svelte +88 -88
  4. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +140 -140
  5. package/dist/calendar/OrderSummary/OrderSummary.svelte +461 -461
  6. package/dist/calendar/PublicCard/PublicCard.svelte +164 -164
  7. package/dist/calendar/ShowCard/ShowCard.svelte +180 -180
  8. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +80 -80
  9. package/dist/calendar/index.js +15 -15
  10. package/dist/components/Heading.spec.js +89 -89
  11. package/dist/components/Heading.svelte +66 -66
  12. package/dist/components/Layout/AppShell.svelte +104 -104
  13. package/dist/components/Layout/ContentSection.svelte +80 -80
  14. package/dist/components/Layout/Grid.svelte +101 -101
  15. package/dist/components/Layout/Heading.svelte +81 -81
  16. package/dist/components/Layout/PageContainer.svelte +69 -69
  17. package/dist/components/Layout/Responsive.svelte +75 -75
  18. package/dist/components/Layout/Section.svelte +80 -80
  19. package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
  20. package/dist/components/Layout/ShowOnMobile.svelte +37 -37
  21. package/dist/components/Layout/Sidebar.svelte +108 -108
  22. package/dist/components/Layout/Stack.spec.js +1 -1
  23. package/dist/components/Layout/Stack.svelte +52 -52
  24. package/dist/components/Layout/Text.svelte +87 -87
  25. package/dist/components/Layout/TwoColumn.svelte +108 -108
  26. package/dist/components/Text.spec.js +89 -89
  27. package/dist/components/Text.svelte +64 -64
  28. package/dist/config.js +160 -160
  29. package/dist/config.spec.js +29 -29
  30. package/dist/constants/formOptions.js +48 -48
  31. package/dist/constants/validation.js +91 -91
  32. package/dist/constants/validation.spec.js +64 -64
  33. package/dist/datetime/README.md +323 -323
  34. package/dist/datetime/__tests__/format.test.js +1 -1
  35. package/dist/datetime/__tests__/parse.test.js +1 -1
  36. package/dist/datetime/__tests__/timezone.test.js +1 -1
  37. package/dist/datetime/parse.js +1 -1
  38. package/dist/forms/createFormStore.svelte.js +0 -1
  39. package/dist/forms/createFormStore.svelte.spec.js +0 -1
  40. package/dist/index.js +85 -85
  41. package/dist/index.spec.js +369 -369
  42. package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -59
  43. package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
  44. package/dist/patterns/chat/ChatBubble.spec.js +91 -91
  45. package/dist/patterns/chat/ChatBubble.svelte +103 -103
  46. package/dist/patterns/chat/ChatContainer.spec.js +30 -30
  47. package/dist/patterns/chat/ChatContainer.svelte +46 -46
  48. package/dist/patterns/chat/ChatDateDivider.spec.js +30 -30
  49. package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
  50. package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -46
  51. package/dist/patterns/chat/ChatInvitationBubble.svelte +46 -46
  52. package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -32
  53. package/dist/patterns/chat/ChatInvitationNotice.svelte +36 -36
  54. package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -58
  55. package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
  56. package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -65
  57. package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
  58. package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -79
  59. package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
  60. package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -81
  61. package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
  62. package/dist/patterns/chat/ChatTextBubble.spec.js +35 -35
  63. package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
  64. package/dist/patterns/chat/index.js +22 -22
  65. package/dist/patterns/data/DataGrid.svelte +45 -45
  66. package/dist/patterns/data/DataList.svelte +24 -24
  67. package/dist/patterns/data/DataTable.svelte +45 -45
  68. package/dist/patterns/data/index.js +4 -4
  69. package/dist/patterns/forms/FormActions.spec.js +95 -95
  70. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  71. package/dist/patterns/forms/FormActions.svelte +46 -46
  72. package/dist/patterns/forms/FormGrid.svelte +33 -33
  73. package/dist/patterns/forms/FormSection.svelte +33 -33
  74. package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
  75. package/dist/patterns/forms/FormValidationSummary.svelte +82 -82
  76. package/dist/patterns/forms/index.js +5 -5
  77. package/dist/patterns/index.js +21 -21
  78. package/dist/patterns/layout/Sidebar.svelte +39 -39
  79. package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -34
  80. package/dist/patterns/layout/Stack.svelte +61 -61
  81. package/dist/patterns/layout/index.js +29 -29
  82. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  83. package/dist/patterns/navigation/BottomNav.svelte +82 -82
  84. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  85. package/dist/patterns/navigation/Header.svelte +263 -263
  86. package/dist/patterns/navigation/index.js +3 -3
  87. package/dist/patterns/page/PageHeader.svelte +49 -49
  88. package/dist/patterns/page/PageLayout.svelte +40 -40
  89. package/dist/patterns/page/PageLoader.spec.js +57 -57
  90. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  91. package/dist/patterns/page/PageLoader.svelte +62 -62
  92. package/dist/patterns/page/SectionHeader.svelte +51 -51
  93. package/dist/patterns/page/index.js +5 -5
  94. package/dist/presets/badges.js +112 -112
  95. package/dist/presets/buttons.js +76 -76
  96. package/dist/presets/index.js +9 -9
  97. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  98. package/dist/primitives/Accordion/Accordion.svelte +62 -62
  99. package/dist/primitives/Accordion/AccordionItem.svelte +103 -103
  100. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
  101. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -28
  102. package/dist/primitives/Alert/Alert.spec.js +173 -173
  103. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  104. package/dist/primitives/Alert/Alert.svelte +72 -72
  105. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  106. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  107. package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
  108. package/dist/primitives/Badges/Badge.spec.js +144 -144
  109. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  110. package/dist/primitives/Badges/Badge.svelte +99 -99
  111. package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -238
  112. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  113. package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
  114. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte +20 -20
  115. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
  116. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  117. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +107 -107
  118. package/dist/primitives/Button/Button.spec.js +225 -225
  119. package/dist/primitives/Button/Button.stories.svelte +76 -76
  120. package/dist/primitives/Button/Button.svelte +278 -278
  121. package/dist/primitives/Button/ButtonGroup.spec.js +44 -44
  122. package/dist/primitives/Button/ButtonGroup.svelte +50 -50
  123. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  124. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  125. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  126. package/dist/primitives/Card.spec.js +49 -49
  127. package/dist/primitives/Card.stories.svelte +22 -22
  128. package/dist/primitives/Card.svelte +28 -28
  129. package/dist/primitives/CardAction/CardAction.svelte +68 -68
  130. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  131. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  132. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  133. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  134. package/dist/primitives/DarkModeToggle.svelte +147 -147
  135. package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
  136. package/dist/primitives/Drawer/Drawer.svelte +224 -224
  137. package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -86
  138. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  139. package/dist/primitives/Dropdown/Dropdown.svelte +179 -179
  140. package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -30
  141. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
  142. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  143. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -43
  144. package/dist/primitives/Helper/Helper.spec.js +57 -57
  145. package/dist/primitives/Helper/Helper.svelte +33 -33
  146. package/dist/primitives/Icons/ArrowLeft.svelte +21 -21
  147. package/dist/primitives/Icons/ArrowRight.svelte +21 -21
  148. package/dist/primitives/Icons/Availability.svelte +27 -27
  149. package/dist/primitives/Icons/Back.svelte +27 -27
  150. package/dist/primitives/Icons/CheckCircle.svelte +19 -19
  151. package/dist/primitives/Icons/CheckCircleOutline.svelte +28 -28
  152. package/dist/primitives/Icons/ChevronLeft.svelte +17 -17
  153. package/dist/primitives/Icons/ChevronRight.svelte +17 -17
  154. package/dist/primitives/Icons/Copy.svelte +28 -28
  155. package/dist/primitives/Icons/Cross.svelte +18 -18
  156. package/dist/primitives/Icons/DownArrow.svelte +21 -21
  157. package/dist/primitives/Icons/ErrorCircle.svelte +19 -19
  158. package/dist/primitives/Icons/FacebookIcon.svelte +15 -15
  159. package/dist/primitives/Icons/Home.svelte +28 -28
  160. package/dist/primitives/Icons/Icon.spec.js +175 -175
  161. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  162. package/dist/primitives/Icons/Icon.svelte +79 -79
  163. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  164. package/dist/primitives/Icons/ImageOutline.svelte +21 -21
  165. package/dist/primitives/Icons/Info.svelte +20 -20
  166. package/dist/primitives/Icons/InstagramIcon.svelte +21 -21
  167. package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
  168. package/dist/primitives/Icons/Message.svelte +28 -28
  169. package/dist/primitives/Icons/MoonIcon.svelte +18 -18
  170. package/dist/primitives/Icons/More.svelte +34 -34
  171. package/dist/primitives/Icons/MoreHori.spec.js +67 -67
  172. package/dist/primitives/Icons/MoreHori.svelte +35 -35
  173. package/dist/primitives/Icons/Notification.svelte +27 -27
  174. package/dist/primitives/Icons/Payment.svelte +27 -27
  175. package/dist/primitives/Icons/Profile.svelte +34 -34
  176. package/dist/primitives/Icons/Reload.svelte +42 -42
  177. package/dist/primitives/Icons/Shows.svelte +34 -34
  178. package/dist/primitives/Icons/Signout.svelte +34 -34
  179. package/dist/primitives/Icons/SunIcon.svelte +21 -21
  180. package/dist/primitives/Icons/TiktokIcon.svelte +15 -15
  181. package/dist/primitives/Icons/TrashBinOutline.svelte +21 -21
  182. package/dist/primitives/Icons/TwitterIcon.svelte +15 -15
  183. package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
  184. package/dist/primitives/Icons/WarningIcon.svelte +24 -24
  185. package/dist/primitives/Input/Input.spec.js +1237 -1237
  186. package/dist/primitives/Input/Input.stories.svelte +139 -139
  187. package/dist/primitives/Input/Input.svelte +444 -444
  188. package/dist/primitives/Input/Select.spec.js +632 -632
  189. package/dist/primitives/Input/Select.stories.svelte +112 -112
  190. package/dist/primitives/Input/Select.svelte +252 -252
  191. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  192. package/dist/primitives/Input/Textarea.svelte +105 -105
  193. package/dist/primitives/Label/Label.svelte +37 -37
  194. package/dist/primitives/LandingButton/LandingButton.spec.js +61 -61
  195. package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
  196. package/dist/primitives/MenuItem/MenuItem.spec.js +130 -130
  197. package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
  198. package/dist/primitives/Modal/Modal.spec.js +314 -314
  199. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  200. package/dist/primitives/Modal/Modal.svelte +181 -181
  201. package/dist/primitives/NavItem/NavItem.spec.js +97 -97
  202. package/dist/primitives/NavItem/NavItem.svelte +75 -75
  203. package/dist/primitives/NumberInput/NumberInput.svelte +113 -113
  204. package/dist/primitives/Pagination/DotIndicator.svelte +66 -66
  205. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  206. package/dist/primitives/Pagination/Pagination.svelte +275 -275
  207. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  208. package/dist/primitives/Radio/Radio.svelte +67 -67
  209. package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -78
  210. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
  211. package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -61
  212. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
  213. package/dist/primitives/Skeleton/CardPlaceholder.svelte +96 -96
  214. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +68 -68
  215. package/dist/primitives/Skeleton/ListPlaceholder.svelte +85 -85
  216. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  217. package/dist/primitives/Skeleton/Skeleton.svelte +55 -55
  218. package/dist/primitives/Spinner/Spinner.spec.js +84 -84
  219. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  220. package/dist/primitives/Spinner/Spinner.svelte +52 -52
  221. package/dist/primitives/Tabs/TabItem.svelte +52 -52
  222. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  223. package/dist/primitives/Tabs/Tabs.svelte +137 -137
  224. package/dist/primitives/Toggle.spec.js +221 -221
  225. package/dist/primitives/Toggle.stories.svelte +92 -92
  226. package/dist/primitives/Toggle.svelte +141 -141
  227. package/dist/primitives/ToggleTestWrapper.svelte +30 -30
  228. package/dist/primitives/Tooltip/Tooltip.spec.js +126 -126
  229. package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
  230. package/dist/primitives/Typography/Typography.svelte +53 -53
  231. package/dist/primitives/ValidationError.spec.js +103 -103
  232. package/dist/primitives/ValidationError.stories.svelte +112 -112
  233. package/dist/primitives/ValidationError.svelte +29 -29
  234. package/dist/primitives/index.js +114 -114
  235. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  236. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  237. package/dist/recipes/CropImage/CropImage.svelte +241 -241
  238. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  239. package/dist/recipes/ImageUploader/ImageUploader.svelte +994 -994
  240. package/dist/recipes/SuperLogin/SuperLogin.svelte +1 -1
  241. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  242. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +75 -75
  243. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  244. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +113 -113
  245. package/dist/recipes/feedback/ErrorDisplay.svelte +67 -67
  246. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  247. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +176 -176
  248. package/dist/recipes/feedback/index.js +4 -4
  249. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  250. package/dist/recipes/fields/FormField.svelte +58 -58
  251. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  252. package/dist/recipes/fields/SelectField.svelte +82 -82
  253. package/dist/recipes/fields/TextareaField.svelte +101 -101
  254. package/dist/recipes/fields/ToggleField.svelte +60 -60
  255. package/dist/recipes/fields/index.js +7 -7
  256. package/dist/recipes/index.js +24 -24
  257. package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
  258. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  259. package/dist/recipes/inputs/MultiSelect.svelte +291 -291
  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 +128 -128
  263. package/dist/recipes/inputs/PasswordInput.svelte +130 -130
  264. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +142 -142
  265. package/dist/recipes/inputs/PhoneInput.svelte +254 -254
  266. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -170
  267. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +349 -349
  268. package/dist/recipes/inputs/Search.svelte +110 -110
  269. package/dist/recipes/inputs/index.js +8 -8
  270. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +240 -240
  271. package/dist/recipes/modals/AlertModal.svelte +139 -139
  272. package/dist/recipes/modals/ConfirmationModal.spec.js +396 -396
  273. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  274. package/dist/recipes/modals/ConfirmationModal.svelte +169 -169
  275. package/dist/recipes/modals/FeedbackModal.svelte +205 -205
  276. package/dist/recipes/modals/InputModal.svelte +194 -194
  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 +216 -216
  281. package/dist/recipes/modals/index.js +8 -8
  282. package/dist/schemas/common.js +1 -1
  283. package/dist/schemas/event.js +1 -1
  284. package/dist/schemas/order.js +0 -1
  285. package/dist/schemas/performer.js +1 -1
  286. package/dist/schemas/promo.js +2 -2
  287. package/dist/schemas/ticket.js +1 -1
  288. package/dist/schemas/user.js +1 -2
  289. package/dist/services/show.service.d.ts +46 -46
  290. package/dist/stores/auth.d.ts +8 -8
  291. package/dist/stores/auth.svelte.spec.js +1 -1
  292. package/dist/stores/index.js +9 -9
  293. package/dist/stores/toaster.d.ts +3 -3
  294. package/dist/stores/toaster.js +13 -13
  295. package/dist/stores/toaster.spec.js +59 -59
  296. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  297. package/dist/stories/ButtonAuditReview.svelte +427 -427
  298. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  299. package/dist/stories/PatternsGallery.svelte +399 -399
  300. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  301. package/dist/stories/PrimitivesGallery.svelte +756 -756
  302. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  303. package/dist/stories/RecipesGallery.svelte +454 -454
  304. package/dist/stories/button-audit-manifest.json +11186 -11186
  305. package/dist/tailwind/preset.cjs +87 -87
  306. package/dist/telemetry.js +401 -401
  307. package/dist/telemetry.server.js +212 -212
  308. package/dist/telemetry.server.spec.js +437 -437
  309. package/dist/telemetry.spec.js +1273 -1273
  310. package/dist/tokens/tokens.css +87 -87
  311. package/dist/tokens/typography-base.css +163 -163
  312. package/dist/tokens/utilities.css +430 -430
  313. package/dist/utils/__tests__/auth.test.js +431 -431
  314. package/dist/utils/apiConfig.d.ts +29 -29
  315. package/dist/utils/apiConfig.js +142 -142
  316. package/dist/utils/auth.d.ts +46 -46
  317. package/dist/utils/auth.js +195 -195
  318. package/dist/utils/greetings.js +187 -187
  319. package/dist/utils/greetings.spec.js +337 -337
  320. package/dist/utils/haptic.spec.js +1 -1
  321. package/dist/utils/imageValidation.js +121 -121
  322. package/dist/utils/imageValidation.spec.js +223 -223
  323. package/dist/utils/portal.d.ts +11 -11
  324. package/dist/utils/portal.js +25 -25
  325. package/dist/utils/portal.spec.js +143 -143
  326. package/dist/utils/transitions.js +16 -16
  327. package/dist/utils/utils/utils.d.ts +2 -2
  328. package/dist/utils/utils/utils.js +3 -3
  329. package/dist/utils/utils/utils.spec.js +698 -698
  330. package/dist/utils/utils.d.ts +41 -41
  331. package/dist/utils/utils.js +59 -59
  332. package/dist/utils/utils.spec.js +643 -643
  333. package/package.json +306 -306
@@ -1,112 +1,112 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
-
4
- import ValidationError from './ValidationError.svelte';
5
-
6
- const { Story } = defineMeta({
7
- title: 'Components/ValidationError',
8
- component: ValidationError,
9
- tags: ['autodocs'],
10
- argTypes: {
11
- error: { control: 'text' },
12
- show: { control: 'boolean' },
13
- id: { control: 'text' },
14
- },
15
- });
16
-
17
- </script>
18
-
19
- <script>
20
- </script>
21
-
22
-
23
- <Story
24
- name="Default"
25
- args={{
26
- error: 'This field is required',
27
- show: true,
28
- }}
29
- />
30
-
31
- <Story
32
- name="Email Validation"
33
- args={{
34
- error: 'Please enter a valid email address',
35
- show: true,
36
- }}
37
- />
38
-
39
- <Story
40
- name="Password Validation"
41
- args={{
42
- error: 'Password must be at least 8 characters',
43
- show: true,
44
- }}
45
- />
46
-
47
- <Story name="With Input Field">
48
- <div class="max-w-md">
49
- <label for="email-field" class="block text-sm font-medium mb-1">Email Address</label>
50
- <input
51
- id="email-field"
52
- type="email"
53
- class="w-full px-3 py-2 border border-red-300 rounded"
54
- value="invalid-email"
55
- />
56
- <ValidationError error="Please enter a valid email address" show={true} />
57
- </div>
58
- </Story>
59
-
60
- <Story name="Multiple Validation Errors">
61
- <div class="max-w-md space-y-4">
62
- <div>
63
- <label for="username-field" class="block text-sm font-medium mb-1">Username</label>
64
- <input id="username-field" type="text" class="w-full px-3 py-2 border border-red-300 rounded" />
65
- <ValidationError error="Username is required" show={true} />
66
- </div>
67
-
68
- <div>
69
- <label for="multi-email" class="block text-sm font-medium mb-1">Email</label>
70
- <input id="multi-email" type="email" class="w-full px-3 py-2 border border-red-300 rounded" />
71
- <ValidationError error="Invalid email format" show={true} />
72
- </div>
73
-
74
- <div>
75
- <label for="password-field" class="block text-sm font-medium mb-1">Password</label>
76
- <input id="password-field" type="password" class="w-full px-3 py-2 border border-red-300 rounded" />
77
- <ValidationError error="Password must contain at least one number" show={true} />
78
- </div>
79
- </div>
80
- </Story>
81
-
82
- <Story name="Hidden State">
83
- <div class="max-w-md">
84
- <label for="hidden-email" class="block text-sm font-medium mb-1">Email</label>
85
- <input id="hidden-email" type="email" class="w-full px-3 py-2 border border-gray-300 rounded" />
86
- <ValidationError error="This error is hidden" show={false} />
87
- <p class="text-sm text-gray-500 dark:text-gray-400 mt-2">Validation error is hidden until field is touched</p>
88
- </div>
89
- </Story>
90
-
91
- <Story name="Accessible with aria-describedby">
92
- <div class="max-w-md">
93
- <label for="accessible-email" class="block text-sm font-medium mb-1">Email Address</label>
94
- <input
95
- id="accessible-email"
96
- type="email"
97
- aria-describedby="email-error"
98
- aria-invalid="true"
99
- class="w-full px-3 py-2 border border-red-300 rounded focus:ring-red-500 focus:border-red-500"
100
- value="invalid-email"
101
- />
102
- <ValidationError
103
- id="email-error"
104
- error="Please enter a valid email address"
105
- show={true}
106
- />
107
- <p class="text-sm text-gray-500 mt-4">
108
- This example shows proper accessibility: the input references the error via aria-describedby,
109
- and the error has aria-live="assertive" for screen reader announcements.
110
- </p>
111
- </div>
112
- </Story>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+
4
+ import ValidationError from './ValidationError.svelte';
5
+
6
+ const { Story } = defineMeta({
7
+ title: 'Components/ValidationError',
8
+ component: ValidationError,
9
+ tags: ['autodocs'],
10
+ argTypes: {
11
+ error: { control: 'text' },
12
+ show: { control: 'boolean' },
13
+ id: { control: 'text' },
14
+ },
15
+ });
16
+
17
+ </script>
18
+
19
+ <script>
20
+ </script>
21
+
22
+
23
+ <Story
24
+ name="Default"
25
+ args={{
26
+ error: 'This field is required',
27
+ show: true,
28
+ }}
29
+ />
30
+
31
+ <Story
32
+ name="Email Validation"
33
+ args={{
34
+ error: 'Please enter a valid email address',
35
+ show: true,
36
+ }}
37
+ />
38
+
39
+ <Story
40
+ name="Password Validation"
41
+ args={{
42
+ error: 'Password must be at least 8 characters',
43
+ show: true,
44
+ }}
45
+ />
46
+
47
+ <Story name="With Input Field">
48
+ <div class="max-w-md">
49
+ <label for="email-field" class="block text-sm font-medium mb-1">Email Address</label>
50
+ <input
51
+ id="email-field"
52
+ type="email"
53
+ class="w-full px-3 py-2 border border-red-300 rounded"
54
+ value="invalid-email"
55
+ />
56
+ <ValidationError error="Please enter a valid email address" show={true} />
57
+ </div>
58
+ </Story>
59
+
60
+ <Story name="Multiple Validation Errors">
61
+ <div class="max-w-md space-y-4">
62
+ <div>
63
+ <label for="username-field" class="block text-sm font-medium mb-1">Username</label>
64
+ <input id="username-field" type="text" class="w-full px-3 py-2 border border-red-300 rounded" />
65
+ <ValidationError error="Username is required" show={true} />
66
+ </div>
67
+
68
+ <div>
69
+ <label for="multi-email" class="block text-sm font-medium mb-1">Email</label>
70
+ <input id="multi-email" type="email" class="w-full px-3 py-2 border border-red-300 rounded" />
71
+ <ValidationError error="Invalid email format" show={true} />
72
+ </div>
73
+
74
+ <div>
75
+ <label for="password-field" class="block text-sm font-medium mb-1">Password</label>
76
+ <input id="password-field" type="password" class="w-full px-3 py-2 border border-red-300 rounded" />
77
+ <ValidationError error="Password must contain at least one number" show={true} />
78
+ </div>
79
+ </div>
80
+ </Story>
81
+
82
+ <Story name="Hidden State">
83
+ <div class="max-w-md">
84
+ <label for="hidden-email" class="block text-sm font-medium mb-1">Email</label>
85
+ <input id="hidden-email" type="email" class="w-full px-3 py-2 border border-gray-300 rounded" />
86
+ <ValidationError error="This error is hidden" show={false} />
87
+ <p class="text-sm text-gray-500 dark:text-gray-400 mt-2">Validation error is hidden until field is touched</p>
88
+ </div>
89
+ </Story>
90
+
91
+ <Story name="Accessible with aria-describedby">
92
+ <div class="max-w-md">
93
+ <label for="accessible-email" class="block text-sm font-medium mb-1">Email Address</label>
94
+ <input
95
+ id="accessible-email"
96
+ type="email"
97
+ aria-describedby="email-error"
98
+ aria-invalid="true"
99
+ class="w-full px-3 py-2 border border-red-300 rounded focus:ring-red-500 focus:border-red-500"
100
+ value="invalid-email"
101
+ />
102
+ <ValidationError
103
+ id="email-error"
104
+ error="Please enter a valid email address"
105
+ show={true}
106
+ />
107
+ <p class="text-sm text-gray-500 mt-4">
108
+ This example shows proper accessibility: the input references the error via aria-describedby,
109
+ and the error has aria-live="assertive" for screen reader announcements.
110
+ </p>
111
+ </div>
112
+ </Story>
@@ -1,29 +1,29 @@
1
- <script lang="ts">
2
- import { safeSlide } from "../utils/transitions.js";
3
- import { cubicOut } from "svelte/easing";
4
- import WarningIcon from "./Icons/WarningIcon.svelte";
5
-
6
- interface Props {
7
- /** Error message to display */
8
- error?: string;
9
- /** Whether to show the error */
10
- show?: boolean;
11
- /** Optional ID for aria-describedby linking from input fields */
12
- id?: string;
13
- }
14
-
15
- let { error = '', show = true, id }: Props = $props();
16
- </script>
17
-
18
- {#if error && show}
19
- <div
20
- transition:safeSlide={{ duration: 300, easing: cubicOut }}
21
- class="flex items-start gap-1.5 text-red-600 dark:text-red-500 mt-2"
22
- role="alert"
23
- aria-live="assertive"
24
- {id}
25
- >
26
- <WarningIcon class="shrink-0 mt-[1px]" />
27
- <p class="text-sm leading-tight m-0">{error}</p>
28
- </div>
29
- {/if}
1
+ <script lang="ts">
2
+ import { safeSlide } from "../utils/transitions.js";
3
+ import { cubicOut } from "svelte/easing";
4
+ import WarningIcon from "./Icons/WarningIcon.svelte";
5
+
6
+ interface Props {
7
+ /** Error message to display */
8
+ error?: string;
9
+ /** Whether to show the error */
10
+ show?: boolean;
11
+ /** Optional ID for aria-describedby linking from input fields */
12
+ id?: string;
13
+ }
14
+
15
+ let { error = '', show = true, id }: Props = $props();
16
+ </script>
17
+
18
+ {#if error && show}
19
+ <div
20
+ transition:safeSlide={{ duration: 300, easing: cubicOut }}
21
+ class="flex items-start gap-1.5 text-red-600 dark:text-red-500 mt-2"
22
+ role="alert"
23
+ aria-live="assertive"
24
+ {id}
25
+ >
26
+ <WarningIcon class="shrink-0 mt-[1px]" />
27
+ <p class="text-sm leading-tight m-0">{error}</p>
28
+ </div>
29
+ {/if}
@@ -1,114 +1,114 @@
1
- // =============================================================================
2
- // PRIMITIVES - Pure visual components (Layer 1)
3
- // =============================================================================
4
-
5
- // Accordion
6
- export { default as Accordion } from './Accordion/Accordion.svelte';
7
- export { default as AccordionItem } from './Accordion/AccordionItem.svelte';
8
-
9
- // Alert
10
- export { default as Alert } from './Alert/Alert.svelte';
11
-
12
- // Avatar
13
- export { default as Avatar } from './Avatar/Avatar.svelte';
14
-
15
- // Badge
16
- export { default as Badge } from './Badges/Badge.svelte';
17
-
18
- // BottomSheet
19
- export { default as BottomSheet } from './BottomSheet/BottomSheet.svelte';
20
-
21
- // Breadcrumb
22
- export { default as Breadcrumb } from './Breadcrumb/Breadcrumb.svelte';
23
-
24
- // Button
25
- export { default as Button } from './Button/Button.svelte';
26
- export { default as ButtonGroup } from './Button/ButtonGroup.svelte';
27
- export { default as ButtonSaveDemo } from './Button/ButtonSaveDemo.svelte';
28
-
29
- // Card
30
- export { default as Card } from './Card.svelte';
31
-
32
- // Checkbox
33
- export { default as Checkbox } from './Checkbox/Checkbox.svelte';
34
-
35
- // DarkModeToggle
36
- export { default as DarkModeToggle } from './DarkModeToggle.svelte';
37
-
38
- // Drawer
39
- export { default as Drawer } from './Drawer/Drawer.svelte';
40
-
41
- // Dropdown
42
- export { default as Dropdown } from './Dropdown/Dropdown.svelte';
43
- export { default as DropdownItem } from './Dropdown/DropdownItem.svelte';
44
- export { default as DropdownDivider } from './Dropdown/DropdownDivider.svelte';
45
-
46
- // Helper
47
- export { default as Helper } from './Helper/Helper.svelte';
48
-
49
- // Icons - re-export from Icons/index.js
50
- export * from './Icons/index.js';
51
-
52
- // Input (primitives only - Select, Textarea are here; recipes are in recipes/inputs)
53
- export { default as Input } from './Input/Input.svelte';
54
- export { default as Select } from './Input/Select.svelte';
55
- export { default as Textarea } from './Input/Textarea.svelte';
56
-
57
- // Label
58
- export { default as Label } from './Label/Label.svelte';
59
-
60
- // NumberInput
61
- export { default as NumberInput } from './NumberInput/NumberInput.svelte';
62
-
63
- // Modal (base only - composite modals are in recipes/modals)
64
- export { default as Modal } from './Modal/Modal.svelte';
65
-
66
- // Pagination
67
- export { default as Pagination } from './Pagination/Pagination.svelte';
68
- export { default as DotIndicator } from './Pagination/DotIndicator.svelte';
69
-
70
- // Radio
71
- export { default as Radio } from './Radio/Radio.svelte';
72
-
73
- // Skeleton - re-export from Skeleton/index.js
74
- export * from './Skeleton/index.js';
75
-
76
- // Spinner
77
- export { default as Spinner } from './Spinner/Spinner.svelte';
78
-
79
- // Tabs
80
- export { default as Tabs } from './Tabs/Tabs.svelte';
81
- export { default as TabItem } from './Tabs/TabItem.svelte';
82
-
83
- // Toggle
84
- export { default as Toggle } from './Toggle.svelte';
85
-
86
- // Tooltip
87
- export { default as Tooltip } from './Tooltip/Tooltip.svelte';
88
-
89
- // Typography
90
- export { default as Typography } from './Typography/Typography.svelte';
91
-
92
- // ValidationError
93
- export { default as ValidationError } from './ValidationError.svelte';
94
-
95
- // MenuItem
96
- export { default as MenuItem } from './MenuItem/MenuItem.svelte';
97
-
98
- // AvatarButton
99
- export { default as AvatarButton } from './AvatarButton/AvatarButton.svelte';
100
-
101
- // NavItem
102
- export { default as NavItem } from './NavItem/NavItem.svelte';
103
-
104
- // CardAction
105
- export { default as CardAction } from './CardAction/CardAction.svelte';
106
-
107
- // SearchResultItem
108
- export { default as SearchResultItem } from './SearchResultItem/SearchResultItem.svelte';
109
-
110
- // LandingButton
111
- export { default as LandingButton } from './LandingButton/LandingButton.svelte';
112
-
113
- // SidebarToggle
114
- export { default as SidebarToggle } from './SidebarToggle/SidebarToggle.svelte';
1
+ // =============================================================================
2
+ // PRIMITIVES - Pure visual components (Layer 1)
3
+ // =============================================================================
4
+
5
+ // Accordion
6
+ export { default as Accordion } from './Accordion/Accordion.svelte';
7
+ export { default as AccordionItem } from './Accordion/AccordionItem.svelte';
8
+
9
+ // Alert
10
+ export { default as Alert } from './Alert/Alert.svelte';
11
+
12
+ // Avatar
13
+ export { default as Avatar } from './Avatar/Avatar.svelte';
14
+
15
+ // Badge
16
+ export { default as Badge } from './Badges/Badge.svelte';
17
+
18
+ // BottomSheet
19
+ export { default as BottomSheet } from './BottomSheet/BottomSheet.svelte';
20
+
21
+ // Breadcrumb
22
+ export { default as Breadcrumb } from './Breadcrumb/Breadcrumb.svelte';
23
+
24
+ // Button
25
+ export { default as Button } from './Button/Button.svelte';
26
+ export { default as ButtonGroup } from './Button/ButtonGroup.svelte';
27
+ export { default as ButtonSaveDemo } from './Button/ButtonSaveDemo.svelte';
28
+
29
+ // Card
30
+ export { default as Card } from './Card.svelte';
31
+
32
+ // Checkbox
33
+ export { default as Checkbox } from './Checkbox/Checkbox.svelte';
34
+
35
+ // DarkModeToggle
36
+ export { default as DarkModeToggle } from './DarkModeToggle.svelte';
37
+
38
+ // Drawer
39
+ export { default as Drawer } from './Drawer/Drawer.svelte';
40
+
41
+ // Dropdown
42
+ export { default as Dropdown } from './Dropdown/Dropdown.svelte';
43
+ export { default as DropdownItem } from './Dropdown/DropdownItem.svelte';
44
+ export { default as DropdownDivider } from './Dropdown/DropdownDivider.svelte';
45
+
46
+ // Helper
47
+ export { default as Helper } from './Helper/Helper.svelte';
48
+
49
+ // Icons - re-export from Icons/index.js
50
+ export * from './Icons/index.js';
51
+
52
+ // Input (primitives only - Select, Textarea are here; recipes are in recipes/inputs)
53
+ export { default as Input } from './Input/Input.svelte';
54
+ export { default as Select } from './Input/Select.svelte';
55
+ export { default as Textarea } from './Input/Textarea.svelte';
56
+
57
+ // Label
58
+ export { default as Label } from './Label/Label.svelte';
59
+
60
+ // NumberInput
61
+ export { default as NumberInput } from './NumberInput/NumberInput.svelte';
62
+
63
+ // Modal (base only - composite modals are in recipes/modals)
64
+ export { default as Modal } from './Modal/Modal.svelte';
65
+
66
+ // Pagination
67
+ export { default as Pagination } from './Pagination/Pagination.svelte';
68
+ export { default as DotIndicator } from './Pagination/DotIndicator.svelte';
69
+
70
+ // Radio
71
+ export { default as Radio } from './Radio/Radio.svelte';
72
+
73
+ // Skeleton - re-export from Skeleton/index.js
74
+ export * from './Skeleton/index.js';
75
+
76
+ // Spinner
77
+ export { default as Spinner } from './Spinner/Spinner.svelte';
78
+
79
+ // Tabs
80
+ export { default as Tabs } from './Tabs/Tabs.svelte';
81
+ export { default as TabItem } from './Tabs/TabItem.svelte';
82
+
83
+ // Toggle
84
+ export { default as Toggle } from './Toggle.svelte';
85
+
86
+ // Tooltip
87
+ export { default as Tooltip } from './Tooltip/Tooltip.svelte';
88
+
89
+ // Typography
90
+ export { default as Typography } from './Typography/Typography.svelte';
91
+
92
+ // ValidationError
93
+ export { default as ValidationError } from './ValidationError.svelte';
94
+
95
+ // MenuItem
96
+ export { default as MenuItem } from './MenuItem/MenuItem.svelte';
97
+
98
+ // AvatarButton
99
+ export { default as AvatarButton } from './AvatarButton/AvatarButton.svelte';
100
+
101
+ // NavItem
102
+ export { default as NavItem } from './NavItem/NavItem.svelte';
103
+
104
+ // CardAction
105
+ export { default as CardAction } from './CardAction/CardAction.svelte';
106
+
107
+ // SearchResultItem
108
+ export { default as SearchResultItem } from './SearchResultItem/SearchResultItem.svelte';
109
+
110
+ // LandingButton
111
+ export { default as LandingButton } from './LandingButton/LandingButton.svelte';
112
+
113
+ // SidebarToggle
114
+ export { default as SidebarToggle } from './SidebarToggle/SidebarToggle.svelte';