@getmicdrop/svelte-components 5.17.0 → 5.17.3

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 (391) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +187 -187
  2. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
  3. package/dist/calendar/FAQs/FAQs.svelte +77 -77
  4. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
  5. package/dist/calendar/OrderSummary/OrderSummary.svelte +457 -457
  6. package/dist/calendar/PublicCard/PublicCard.svelte +146 -146
  7. package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
  8. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
  9. package/dist/components/Heading.spec.d.ts +2 -0
  10. package/dist/components/Heading.spec.d.ts.map +1 -0
  11. package/dist/components/Heading.spec.js +89 -0
  12. package/dist/components/Heading.svelte +60 -60
  13. package/dist/components/Layout/AppShell.svelte +104 -104
  14. package/dist/components/Layout/ContentSection.svelte +80 -80
  15. package/dist/components/Layout/Grid.svelte +4 -4
  16. package/dist/components/Layout/Heading.svelte +81 -81
  17. package/dist/components/Layout/PageContainer.svelte +69 -69
  18. package/dist/components/Layout/Responsive.svelte +75 -75
  19. package/dist/components/Layout/Section.svelte +80 -80
  20. package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
  21. package/dist/components/Layout/ShowOnMobile.svelte +37 -37
  22. package/dist/components/Layout/Sidebar.svelte +108 -108
  23. package/dist/components/Layout/Stack.spec.js +1 -1
  24. package/dist/components/Layout/Stack.svelte +6 -6
  25. package/dist/components/Layout/Text.svelte +87 -87
  26. package/dist/components/Layout/TwoColumn.svelte +108 -108
  27. package/dist/components/Layout/__tests__/AppShell.test.js +140 -0
  28. package/dist/components/Text.spec.d.ts +2 -0
  29. package/dist/components/Text.spec.d.ts.map +1 -0
  30. package/dist/components/Text.spec.js +89 -0
  31. package/dist/components/Text.svelte +53 -53
  32. package/dist/constants/validation.js +91 -91
  33. package/dist/constants/validation.spec.js +64 -64
  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/datetime/timezone.d.ts.map +1 -1
  39. package/dist/datetime/timezone.js +1 -2
  40. package/dist/forms/createFormStore.svelte.d.ts +1 -1
  41. package/dist/forms/createFormStore.svelte.d.ts.map +1 -1
  42. package/dist/forms/createFormStore.svelte.js +1 -0
  43. package/dist/forms/createFormStore.svelte.spec.d.ts +2 -0
  44. package/dist/forms/createFormStore.svelte.spec.d.ts.map +1 -0
  45. package/dist/forms/createFormStore.svelte.spec.js +388 -0
  46. package/dist/index.js +57 -57
  47. package/dist/index.spec.js +369 -369
  48. package/dist/patterns/chat/ChatActivityNotice.spec.d.ts +2 -0
  49. package/dist/patterns/chat/ChatActivityNotice.spec.d.ts.map +1 -0
  50. package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -0
  51. package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
  52. package/dist/patterns/chat/ChatBubble.spec.d.ts +2 -0
  53. package/dist/patterns/chat/ChatBubble.spec.d.ts.map +1 -0
  54. package/dist/patterns/chat/ChatBubble.spec.js +91 -0
  55. package/dist/patterns/chat/ChatBubble.svelte +95 -95
  56. package/dist/patterns/chat/ChatContainer.spec.d.ts +2 -0
  57. package/dist/patterns/chat/ChatContainer.spec.d.ts.map +1 -0
  58. package/dist/patterns/chat/ChatContainer.spec.js +30 -0
  59. package/dist/patterns/chat/ChatContainer.svelte +46 -46
  60. package/dist/patterns/chat/ChatDateDivider.spec.d.ts +2 -0
  61. package/dist/patterns/chat/ChatDateDivider.spec.d.ts.map +1 -0
  62. package/dist/patterns/chat/ChatDateDivider.spec.js +30 -0
  63. package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
  64. package/dist/patterns/chat/ChatInvitationBubble.spec.d.ts +2 -0
  65. package/dist/patterns/chat/ChatInvitationBubble.spec.d.ts.map +1 -0
  66. package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -0
  67. package/dist/patterns/chat/ChatInvitationBubble.svelte +37 -37
  68. package/dist/patterns/chat/ChatInvitationNotice.spec.d.ts +2 -0
  69. package/dist/patterns/chat/ChatInvitationNotice.spec.d.ts.map +1 -0
  70. package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -0
  71. package/dist/patterns/chat/ChatInvitationNotice.svelte +27 -27
  72. package/dist/patterns/chat/ChatMessageGroup.spec.d.ts +2 -0
  73. package/dist/patterns/chat/ChatMessageGroup.spec.d.ts.map +1 -0
  74. package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -0
  75. package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
  76. package/dist/patterns/chat/ChatSlotUpdate.spec.d.ts +2 -0
  77. package/dist/patterns/chat/ChatSlotUpdate.spec.d.ts.map +1 -0
  78. package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -0
  79. package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
  80. package/dist/patterns/chat/ChatStatusBadge.spec.d.ts +2 -0
  81. package/dist/patterns/chat/ChatStatusBadge.spec.d.ts.map +1 -0
  82. package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -0
  83. package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
  84. package/dist/patterns/chat/ChatStatusTransition.spec.d.ts +2 -0
  85. package/dist/patterns/chat/ChatStatusTransition.spec.d.ts.map +1 -0
  86. package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -0
  87. package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
  88. package/dist/patterns/chat/ChatTextBubble.spec.d.ts +2 -0
  89. package/dist/patterns/chat/ChatTextBubble.spec.d.ts.map +1 -0
  90. package/dist/patterns/chat/ChatTextBubble.spec.js +35 -0
  91. package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
  92. package/dist/patterns/chat/index.js +22 -22
  93. package/dist/patterns/data/DataGrid.svelte +45 -45
  94. package/dist/patterns/data/DataList.svelte +24 -24
  95. package/dist/patterns/data/DataTable.spec.js +61 -0
  96. package/dist/patterns/data/DataTable.svelte +36 -36
  97. package/dist/patterns/forms/FormActions.spec.js +95 -95
  98. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  99. package/dist/patterns/forms/FormActions.svelte +46 -46
  100. package/dist/patterns/forms/FormGrid.spec.js +34 -0
  101. package/dist/patterns/forms/FormGrid.svelte +33 -33
  102. package/dist/patterns/forms/FormSection.svelte +32 -32
  103. package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
  104. package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
  105. package/dist/patterns/index.js +21 -21
  106. package/dist/patterns/layout/Sidebar.spec.js +240 -1
  107. package/dist/patterns/layout/Sidebar.svelte +39 -39
  108. package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -0
  109. package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts +23 -0
  110. package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts.map +1 -0
  111. package/dist/patterns/layout/index.js +29 -29
  112. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  113. package/dist/patterns/navigation/BottomNav.svelte +74 -74
  114. package/dist/patterns/navigation/Header.spec.js +123 -0
  115. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  116. package/dist/patterns/navigation/Header.svelte +251 -251
  117. package/dist/patterns/page/PageHeader.svelte +18 -18
  118. package/dist/patterns/page/PageLayout.svelte +40 -40
  119. package/dist/patterns/page/PageLoader.spec.js +57 -57
  120. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  121. package/dist/patterns/page/PageLoader.svelte +24 -24
  122. package/dist/patterns/page/SectionHeader.svelte +29 -29
  123. package/dist/presets/badges.js +112 -112
  124. package/dist/presets/buttons.js +76 -76
  125. package/dist/presets/index.js +9 -9
  126. package/dist/primitives/Accordion/Accordion.spec.js +112 -2
  127. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  128. package/dist/primitives/Accordion/Accordion.svelte +42 -42
  129. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  130. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -0
  131. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte.d.ts +7 -0
  132. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte.d.ts.map +1 -0
  133. package/dist/primitives/Alert/Alert.spec.js +173 -173
  134. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  135. package/dist/primitives/Alert/Alert.svelte +27 -27
  136. package/dist/primitives/Avatar/Avatar.spec.js +23 -0
  137. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  138. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  139. package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
  140. package/dist/primitives/Badges/Badge.spec.js +144 -144
  141. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  142. package/dist/primitives/Badges/Badge.svelte +99 -99
  143. package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -136
  144. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  145. package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
  146. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte +20 -0
  147. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte.d.ts +10 -0
  148. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte.d.ts.map +1 -0
  149. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
  150. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  151. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +99 -99
  152. package/dist/primitives/Button/Button.spec.js +225 -225
  153. package/dist/primitives/Button/Button.stories.svelte +76 -76
  154. package/dist/primitives/Button/Button.svelte +278 -278
  155. package/dist/primitives/Button/ButtonGroup.spec.d.ts +2 -0
  156. package/dist/primitives/Button/ButtonGroup.spec.d.ts.map +1 -0
  157. package/dist/primitives/Button/ButtonGroup.spec.js +44 -0
  158. package/dist/primitives/Button/ButtonGroup.svelte +50 -50
  159. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  160. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  161. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  162. package/dist/primitives/Card.spec.js +49 -49
  163. package/dist/primitives/Card.stories.svelte +22 -22
  164. package/dist/primitives/Card.svelte +28 -28
  165. package/dist/primitives/CardAction/CardAction.svelte +68 -68
  166. package/dist/primitives/Checkbox/Checkbox.spec.js +32 -0
  167. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  168. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  169. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  170. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  171. package/dist/primitives/DarkModeToggle.svelte +136 -136
  172. package/dist/primitives/Drawer/Drawer.spec.js +437 -0
  173. package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
  174. package/dist/primitives/Drawer/Drawer.svelte +224 -224
  175. package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -0
  176. package/dist/primitives/Drawer/DrawerTestWrapper.svelte.d.ts +26 -0
  177. package/dist/primitives/Drawer/DrawerTestWrapper.svelte.d.ts.map +1 -0
  178. package/dist/primitives/Dropdown/Dropdown.spec.js +116 -0
  179. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  180. package/dist/primitives/Dropdown/Dropdown.svelte +170 -170
  181. package/dist/primitives/Dropdown/DropdownDivider.spec.d.ts +2 -0
  182. package/dist/primitives/Dropdown/DropdownDivider.spec.d.ts.map +1 -0
  183. package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -0
  184. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
  185. package/dist/primitives/Dropdown/DropdownItem.spec.js +155 -1
  186. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  187. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -0
  188. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte.d.ts +17 -0
  189. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte.d.ts.map +1 -0
  190. package/dist/primitives/Helper/Helper.spec.d.ts +2 -0
  191. package/dist/primitives/Helper/Helper.spec.d.ts.map +1 -0
  192. package/dist/primitives/Helper/Helper.spec.js +57 -0
  193. package/dist/primitives/Helper/Helper.svelte +33 -33
  194. package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
  195. package/dist/primitives/Icons/ArrowRight.svelte +8 -8
  196. package/dist/primitives/Icons/Availability.svelte +14 -14
  197. package/dist/primitives/Icons/Back.svelte +14 -14
  198. package/dist/primitives/Icons/CheckCircle.svelte +6 -6
  199. package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
  200. package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
  201. package/dist/primitives/Icons/ChevronRight.svelte +4 -4
  202. package/dist/primitives/Icons/Copy.svelte +15 -15
  203. package/dist/primitives/Icons/Cross.svelte +5 -5
  204. package/dist/primitives/Icons/DownArrow.svelte +8 -8
  205. package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
  206. package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
  207. package/dist/primitives/Icons/Home.svelte +15 -15
  208. package/dist/primitives/Icons/Icon.spec.js +169 -169
  209. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  210. package/dist/primitives/Icons/Icon.svelte +52 -52
  211. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  212. package/dist/primitives/Icons/Info.svelte +7 -7
  213. package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
  214. package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
  215. package/dist/primitives/Icons/Message.svelte +15 -15
  216. package/dist/primitives/Icons/MoonIcon.svelte +5 -5
  217. package/dist/primitives/Icons/More.svelte +21 -21
  218. package/dist/primitives/Icons/MoreHori.spec.js +61 -61
  219. package/dist/primitives/Icons/MoreHori.svelte +22 -22
  220. package/dist/primitives/Icons/Notification.svelte +14 -14
  221. package/dist/primitives/Icons/Payment.svelte +14 -14
  222. package/dist/primitives/Icons/Profile.svelte +21 -21
  223. package/dist/primitives/Icons/Reload.svelte +29 -29
  224. package/dist/primitives/Icons/Shows.svelte +21 -21
  225. package/dist/primitives/Icons/Signout.svelte +21 -21
  226. package/dist/primitives/Icons/SunIcon.svelte +8 -8
  227. package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
  228. package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
  229. package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
  230. package/dist/primitives/Icons/WarningIcon.svelte +5 -5
  231. package/dist/primitives/Input/Input.spec.js +1235 -573
  232. package/dist/primitives/Input/Input.stories.svelte +139 -139
  233. package/dist/primitives/Input/Input.svelte +423 -423
  234. package/dist/primitives/Input/Select.spec.js +632 -218
  235. package/dist/primitives/Input/Select.stories.svelte +112 -112
  236. package/dist/primitives/Input/Select.svelte +252 -252
  237. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  238. package/dist/primitives/Input/Textarea.svelte +105 -105
  239. package/dist/primitives/Label/Label.spec.js +9 -0
  240. package/dist/primitives/Label/Label.svelte +37 -37
  241. package/dist/primitives/LandingButton/LandingButton.spec.d.ts +2 -0
  242. package/dist/primitives/LandingButton/LandingButton.spec.d.ts.map +1 -0
  243. package/dist/primitives/LandingButton/LandingButton.spec.js +61 -0
  244. package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
  245. package/dist/primitives/MenuItem/MenuItem.spec.d.ts +2 -0
  246. package/dist/primitives/MenuItem/MenuItem.spec.d.ts.map +1 -0
  247. package/dist/primitives/MenuItem/MenuItem.spec.js +130 -0
  248. package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
  249. package/dist/primitives/Modal/Modal.spec.js +314 -99
  250. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  251. package/dist/primitives/Modal/Modal.svelte +181 -181
  252. package/dist/primitives/NavItem/NavItem.spec.d.ts +2 -0
  253. package/dist/primitives/NavItem/NavItem.spec.d.ts.map +1 -0
  254. package/dist/primitives/NavItem/NavItem.spec.js +97 -0
  255. package/dist/primitives/NavItem/NavItem.svelte +75 -75
  256. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  257. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  258. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  259. package/dist/primitives/Radio/Radio.svelte +67 -67
  260. package/dist/primitives/SearchResultItem/SearchResultItem.spec.d.ts +2 -0
  261. package/dist/primitives/SearchResultItem/SearchResultItem.spec.d.ts.map +1 -0
  262. package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -0
  263. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
  264. package/dist/primitives/SidebarToggle/SidebarToggle.spec.d.ts +2 -0
  265. package/dist/primitives/SidebarToggle/SidebarToggle.spec.d.ts.map +1 -0
  266. package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -0
  267. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
  268. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  269. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  270. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  271. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  272. package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
  273. package/dist/primitives/Spinner/Spinner.spec.js +84 -71
  274. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  275. package/dist/primitives/Spinner/Spinner.svelte +20 -20
  276. package/dist/primitives/Tabs/TabItem.svelte +49 -49
  277. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  278. package/dist/primitives/Tabs/Tabs.svelte +137 -137
  279. package/dist/primitives/Toggle.spec.js +221 -146
  280. package/dist/primitives/Toggle.stories.svelte +92 -92
  281. package/dist/primitives/Toggle.svelte +141 -141
  282. package/dist/primitives/ToggleTestWrapper.svelte +30 -0
  283. package/dist/primitives/ToggleTestWrapper.svelte.d.ts +29 -0
  284. package/dist/primitives/ToggleTestWrapper.svelte.d.ts.map +1 -0
  285. package/dist/primitives/Tooltip/Tooltip.spec.d.ts +2 -0
  286. package/dist/primitives/Tooltip/Tooltip.spec.d.ts.map +1 -0
  287. package/dist/primitives/Tooltip/Tooltip.spec.js +126 -0
  288. package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
  289. package/dist/primitives/Typography/Typography.svelte +53 -53
  290. package/dist/primitives/ValidationError.spec.js +103 -103
  291. package/dist/primitives/ValidationError.stories.svelte +69 -69
  292. package/dist/primitives/ValidationError.svelte +29 -29
  293. package/dist/primitives/index.js +113 -113
  294. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  295. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  296. package/dist/recipes/CropImage/CropImage.svelte +241 -241
  297. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  298. package/dist/recipes/ImageUploader/ImageUploader.svelte +992 -992
  299. package/dist/recipes/SuperLogin/SuperLogin.spec.js +21 -21
  300. package/dist/recipes/SuperLogin/SuperLogin.svelte +4 -4
  301. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  302. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  303. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  304. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
  305. package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
  306. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  307. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
  308. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  309. package/dist/recipes/fields/FormField.svelte +58 -58
  310. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  311. package/dist/recipes/fields/SelectField.svelte +82 -82
  312. package/dist/recipes/fields/TextareaField.svelte +97 -97
  313. package/dist/recipes/fields/ToggleField.svelte +60 -60
  314. package/dist/recipes/fields/index.js +7 -7
  315. package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
  316. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  317. package/dist/recipes/inputs/MultiSelect.svelte +283 -283
  318. package/dist/recipes/inputs/OTPInput.spec.js +251 -251
  319. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  320. package/dist/recipes/inputs/OTPInput.svelte +117 -117
  321. package/dist/recipes/inputs/PasswordInput.svelte +22 -22
  322. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +131 -131
  323. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +19 -19
  324. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
  325. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +336 -339
  326. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  327. package/dist/recipes/inputs/Search.spec.js +66 -2
  328. package/dist/recipes/inputs/Search.svelte +102 -102
  329. package/dist/recipes/inputs/index.js +7 -7
  330. package/dist/recipes/modals/AlertModal.svelte +130 -130
  331. package/dist/recipes/modals/ConfirmationModal.spec.js +396 -206
  332. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  333. package/dist/recipes/modals/ConfirmationModal.svelte +162 -162
  334. package/dist/recipes/modals/InputModal.svelte +182 -182
  335. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  336. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  337. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  338. package/dist/recipes/modals/StatusModal.svelte +206 -206
  339. package/dist/services/EventService.d.ts +1 -1
  340. package/dist/services/EventService.d.ts.map +1 -1
  341. package/dist/services/EventService.js +79 -75
  342. package/dist/services/EventService.spec.js +217 -217
  343. package/dist/services/ShowService.js +144 -143
  344. package/dist/services/ShowService.spec.js +345 -345
  345. package/dist/stores/auth.svelte.spec.d.ts +2 -0
  346. package/dist/stores/auth.svelte.spec.d.ts.map +1 -0
  347. package/dist/stores/auth.svelte.spec.js +112 -0
  348. package/dist/stores/formDataStore.svelte.spec.d.ts +2 -0
  349. package/dist/stores/formDataStore.svelte.spec.d.ts.map +1 -0
  350. package/dist/stores/formDataStore.svelte.spec.js +150 -0
  351. package/dist/stores/formSave.svelte.spec.d.ts +2 -0
  352. package/dist/stores/formSave.svelte.spec.d.ts.map +1 -0
  353. package/dist/stores/formSave.svelte.spec.js +196 -0
  354. package/dist/stores/navigation.spec.d.ts +2 -0
  355. package/dist/stores/navigation.spec.d.ts.map +1 -0
  356. package/dist/stores/navigation.spec.js +53 -0
  357. package/dist/stores/toaster.js +13 -13
  358. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  359. package/dist/stories/ButtonAuditReview.svelte +427 -427
  360. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  361. package/dist/stories/PatternsGallery.svelte +206 -206
  362. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  363. package/dist/stories/PrimitivesGallery.svelte +756 -756
  364. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  365. package/dist/stories/RecipesGallery.svelte +454 -454
  366. package/dist/stories/button-audit-manifest.json +11186 -11186
  367. package/dist/tailwind/preset.cjs +82 -82
  368. package/dist/telemetry.d.ts.map +1 -1
  369. package/dist/telemetry.js +402 -405
  370. package/dist/telemetry.server.js +212 -212
  371. package/dist/telemetry.server.spec.js +437 -438
  372. package/dist/telemetry.spec.js +1168 -1169
  373. package/dist/tokens/tokens.css +87 -87
  374. package/dist/tokens/typography-base.css +163 -163
  375. package/dist/tokens/utilities.css +353 -353
  376. package/dist/utils/apiConfig.js +117 -120
  377. package/dist/utils/apiConfig.spec.js +219 -219
  378. package/dist/utils/greetings.js +187 -187
  379. package/dist/utils/haptic.spec.d.ts +2 -0
  380. package/dist/utils/haptic.spec.d.ts.map +1 -0
  381. package/dist/utils/haptic.spec.js +153 -0
  382. package/dist/utils/imageOptimizer.spec.d.ts +2 -0
  383. package/dist/utils/imageOptimizer.spec.d.ts.map +1 -0
  384. package/dist/utils/imageOptimizer.spec.js +201 -0
  385. package/dist/utils/imageValidation.js +121 -121
  386. package/dist/utils/logger.spec.d.ts +2 -0
  387. package/dist/utils/logger.spec.d.ts.map +1 -0
  388. package/dist/utils/logger.spec.js +95 -0
  389. package/dist/utils/transitions.js +4 -4
  390. package/dist/utils/utils.js +693 -693
  391. package/package.json +292 -294
@@ -270,14 +270,14 @@ describe("SuperLogin Component - Login Functionality", () => {
270
270
  await fireEvent.submit(form);
271
271
 
272
272
  await waitFor(() => {
273
- expect(global.fetch).toHaveBeenCalledWith("/api/public/login", {
274
- method: "POST",
275
- headers: { "Content-Type": "application/json" },
276
- body: JSON.stringify({
277
- email: "test@example.com",
278
- password: "password123",
279
- }),
280
- });
273
+ expect(global.fetch).toHaveBeenCalledWith("/api/public/login", {
274
+ method: "POST",
275
+ headers: { "Content-Type": "application/json" },
276
+ body: JSON.stringify({
277
+ email: "test@example.com",
278
+ password: "password123",
279
+ }),
280
+ });
281
281
  });
282
282
 
283
283
  expect(onLoginSuccess).toHaveBeenCalledWith(
@@ -642,7 +642,7 @@ describe("SuperLogin Component - Password Reset", () => {
642
642
  await user.click(submitButton);
643
643
 
644
644
  await waitFor(() => {
645
- expect(global.fetch).toHaveBeenCalledWith("/api/public/resetPassword", {
645
+ expect(global.fetch).toHaveBeenCalledWith("/api/v2/auth/reset-password", {
646
646
  method: "POST",
647
647
  headers: { "Content-Type": "application/json" },
648
648
  body: JSON.stringify({ email: "test@example.com" }),
@@ -757,7 +757,7 @@ describe("SuperLogin Component - Login Link", () => {
757
757
  await user.click(submitButton);
758
758
 
759
759
  await waitFor(() => {
760
- expect(global.fetch).toHaveBeenCalledWith("/api/public/passwordlessLogin", {
760
+ expect(global.fetch).toHaveBeenCalledWith("/api/v2/auth/passwordless", {
761
761
  method: "POST",
762
762
  headers: { "Content-Type": "application/json" },
763
763
  body: JSON.stringify({ email: "test@example.com", destination: "dashboard" }),
@@ -817,7 +817,7 @@ describe("SuperLogin Component - Setup/First Use", () => {
817
817
 
818
818
  await waitFor(() => {
819
819
  expect(global.fetch).toHaveBeenCalledWith(
820
- "/api/public/checkIfFirstUseEligible/test%40example.com"
820
+ "/api/v2/auth/first-time/test%40example.com"
821
821
  );
822
822
  });
823
823
 
@@ -889,7 +889,7 @@ describe("SuperLogin Component - Setup/First Use", () => {
889
889
  await fireEvent.submit(form);
890
890
 
891
891
  await waitFor(() => {
892
- expect(global.fetch).toHaveBeenCalledWith("/api/public/setFirstUsePassword", {
892
+ expect(global.fetch).toHaveBeenCalledWith("/api/v2/auth/first-time", {
893
893
  method: "POST",
894
894
  headers: { "Content-Type": "application/json" },
895
895
  credentials: "include",
@@ -1312,15 +1312,15 @@ describe("SuperLogin Component - Email Normalization", () => {
1312
1312
  await fireEvent.submit(form);
1313
1313
 
1314
1314
  await waitFor(() => {
1315
- expect(global.fetch).toHaveBeenCalledWith(
1316
- "/api/public/login",
1317
- expect.objectContaining({
1318
- body: JSON.stringify({
1319
- email: "test@example.com",
1320
- password: "password123",
1321
- }),
1322
- })
1323
- );
1315
+ expect(global.fetch).toHaveBeenCalledWith(
1316
+ "/api/public/login",
1317
+ expect.objectContaining({
1318
+ body: JSON.stringify({
1319
+ email: "test@example.com",
1320
+ password: "password123",
1321
+ }),
1322
+ })
1323
+ );
1324
1324
  });
1325
1325
  });
1326
1326
 
@@ -313,7 +313,7 @@
313
313
  isLoading = true;
314
314
  try {
315
315
  const response = await fetch(
316
- `${apiBaseUrl}/api/public/checkIfFirstUseEligible/${encodeURIComponent(emailVal)}`,
316
+ `${apiBaseUrl}/api/v2/auth/first-time/${encodeURIComponent(emailVal)}`,
317
317
  );
318
318
  if (response.ok) {
319
319
  const data = await response.json();
@@ -441,7 +441,7 @@
441
441
  const passwordValue = password;
442
442
 
443
443
  try {
444
- const response = await fetch(`${apiBaseUrl}/api/public/setFirstUsePassword`, {
444
+ const response = await fetch(`${apiBaseUrl}/api/v2/auth/first-time`, {
445
445
  method: "POST",
446
446
  headers: {
447
447
  "Content-Type": "application/json",
@@ -501,7 +501,7 @@
501
501
  return false;
502
502
  }
503
503
 
504
- const apiCall = fetch(`${apiBaseUrl}/api/public/resetPassword`, {
504
+ const apiCall = fetch(`${apiBaseUrl}/api/v2/auth/reset-password`, {
505
505
  method: "POST",
506
506
  headers: { "Content-Type": "application/json" },
507
507
  body: JSON.stringify({ email: emailValue.toLowerCase() }),
@@ -545,7 +545,7 @@
545
545
  return false;
546
546
  }
547
547
 
548
- const apiCall = fetch(`${apiBaseUrl}/api/public/passwordlessLogin`, {
548
+ const apiCall = fetch(`${apiBaseUrl}/api/v2/auth/passwordless`, {
549
549
  method: "POST",
550
550
  headers: { "Content-Type": "application/json" },
551
551
  body: JSON.stringify({
@@ -1,62 +1,62 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
-
4
- import { Toaster } from "svelte-sonner";
5
- import { showToast } from "../../stores/toaster";
6
-
7
- const { Story } = defineMeta({
8
- title: "Components/Toaster",
9
- });
10
-
11
- function showSuccessToast() {
12
- showToast("Action completed successfully!", "success");
13
- }
14
-
15
- function showErrorToast() {
16
- showToast("An error occurred. Please try again.", "error");
17
- }
18
- </script>
19
-
20
- <Story name="Trigger Success Toast">
21
- <div class="p-8">
22
- <Toaster
23
- position="bottom-right"
24
- toastOptions={{
25
- class: "text-sm bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700",
26
- classes: {
27
- error: "text-red-600 dark:text-red-400",
28
- success: "text-green-600 dark:text-green-400",
29
- },
30
- }}
31
- />
32
- <button
33
- onclick={showSuccessToast}
34
- class="px-4 py-2 bg-green-600 text-white rounded-lg hover:bg-green-700"
35
- >
36
- Show Success Toast
37
- </button>
38
- <p class="mt-4 text-sm text-gray-500 dark:text-gray-400">Click the button to see a success toast notification</p>
39
- </div>
40
- </Story>
41
-
42
- <Story name="Trigger Error Toast">
43
- <div class="p-8">
44
- <Toaster
45
- position="bottom-right"
46
- toastOptions={{
47
- class: "text-sm bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700",
48
- classes: {
49
- error: "text-red-600 dark:text-red-400",
50
- success: "text-green-600 dark:text-green-400",
51
- },
52
- }}
53
- />
54
- <button
55
- onclick={showErrorToast}
56
- class="px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700"
57
- >
58
- Show Error Toast
59
- </button>
60
- <p class="mt-4 text-sm text-gray-500 dark:text-gray-400">Click the button to see an error toast notification</p>
61
- </div>
62
- </Story>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+
4
+ import { Toaster } from "svelte-sonner";
5
+ import { showToast } from "../../stores/toaster";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Components/Toaster",
9
+ });
10
+
11
+ function showSuccessToast() {
12
+ showToast("Action completed successfully!", "success");
13
+ }
14
+
15
+ function showErrorToast() {
16
+ showToast("An error occurred. Please try again.", "error");
17
+ }
18
+ </script>
19
+
20
+ <Story name="Trigger Success Toast">
21
+ <div class="p-8">
22
+ <Toaster
23
+ position="bottom-right"
24
+ toastOptions={{
25
+ class: "text-sm bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700",
26
+ classes: {
27
+ error: "text-red-600 dark:text-red-400",
28
+ success: "text-green-600 dark:text-green-400",
29
+ },
30
+ }}
31
+ />
32
+ <button
33
+ onclick={showSuccessToast}
34
+ class="px-4 py-2 bg-green-600 text-white rounded-lg hover:bg-green-700"
35
+ >
36
+ Show Success Toast
37
+ </button>
38
+ <p class="mt-4 text-sm text-gray-500 dark:text-gray-400">Click the button to see a success toast notification</p>
39
+ </div>
40
+ </Story>
41
+
42
+ <Story name="Trigger Error Toast">
43
+ <div class="p-8">
44
+ <Toaster
45
+ position="bottom-right"
46
+ toastOptions={{
47
+ class: "text-sm bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700",
48
+ classes: {
49
+ error: "text-red-600 dark:text-red-400",
50
+ success: "text-green-600 dark:text-green-400",
51
+ },
52
+ }}
53
+ />
54
+ <button
55
+ onclick={showErrorToast}
56
+ class="px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700"
57
+ >
58
+ Show Error Toast
59
+ </button>
60
+ <p class="mt-4 text-sm text-gray-500 dark:text-gray-400">Click the button to see an error toast notification</p>
61
+ </div>
62
+ </Story>
@@ -42,7 +42,7 @@
42
42
  let displayTitle = $derived(title || message || 'No results found');
43
43
  let displaySubtext = $derived(description || subtext);
44
44
  </script>
45
-
45
+
46
46
  <div class="flex flex-col items-center justify-center px-6 py-10 text-center {className}">
47
47
  {#if icon || imageSrc}
48
48
  {#if iconType === 'component' && icon}
@@ -1,69 +1,69 @@
1
- import { render, screen } from "@testing-library/svelte";
2
- import { expect, describe, test } from "vitest";
3
- import ErrorDisplay from "./ErrorDisplay.svelte";
4
-
5
- describe("ErrorDisplay Component Tests", () => {
6
- test("Shows error message when error and show are true", () => {
7
- render(ErrorDisplay, { props: { error: "Invalid input", show: true } });
8
- expect(screen.getByText("Invalid input")).toBeInTheDocument();
9
- });
10
-
11
- test("Does not show when error is empty", () => {
12
- render(ErrorDisplay, { props: { error: "", show: true } });
13
- expect(screen.queryByText("Invalid input")).not.toBeInTheDocument();
14
- });
15
-
16
- test("Does not show when show is false", () => {
17
- render(ErrorDisplay, { props: { error: "Error message", show: false } });
18
- expect(screen.queryByText("Error message")).not.toBeInTheDocument();
19
- });
20
-
21
- test("Has error text color", () => {
22
- const { container } = render(ErrorDisplay, {
23
- props: { error: "Error", show: true },
24
- });
25
- const icon = container.querySelector("svg");
26
- expect(icon).toHaveClass("text-red-600");
27
- });
28
-
29
- test("Has shake class when shake is true", () => {
30
- const { container } = render(ErrorDisplay, {
31
- props: { error: "Error", show: true, shake: true },
32
- });
33
- const wrapper = container.querySelector("div.flex");
34
- expect(wrapper).toHaveClass("animate-shake");
35
- });
36
-
37
- test("Does not have shake class when shake is false", () => {
38
- const { container } = render(ErrorDisplay, {
39
- props: { error: "Error", show: true, shake: false },
40
- });
41
- const wrapper = container.querySelector("div.flex");
42
- expect(wrapper).not.toHaveClass("animate-shake");
43
- });
44
-
45
- test("Contains icon element", () => {
46
- const { container } = render(ErrorDisplay, {
47
- props: { error: "Error", show: true },
48
- });
49
- const svg = container.querySelector("svg");
50
- expect(svg).toBeInTheDocument();
51
- });
52
-
53
- test("Has flex layout", () => {
54
- const { container } = render(ErrorDisplay, {
55
- props: { error: "Error", show: true },
56
- });
57
- const wrapper = container.querySelector("div.flex");
58
- expect(wrapper).toHaveClass("flex");
59
- expect(wrapper).toHaveClass("items-center");
60
- });
61
-
62
- test("Applies custom className", () => {
63
- const { container } = render(ErrorDisplay, {
64
- props: { error: "Error", show: true, className: "mt-2" },
65
- });
66
- const wrapper = container.querySelector("div.flex");
67
- expect(wrapper).toHaveClass("mt-2");
68
- });
69
- });
1
+ import { render, screen } from "@testing-library/svelte";
2
+ import { expect, describe, test } from "vitest";
3
+ import ErrorDisplay from "./ErrorDisplay.svelte";
4
+
5
+ describe("ErrorDisplay Component Tests", () => {
6
+ test("Shows error message when error and show are true", () => {
7
+ render(ErrorDisplay, { props: { error: "Invalid input", show: true } });
8
+ expect(screen.getByText("Invalid input")).toBeInTheDocument();
9
+ });
10
+
11
+ test("Does not show when error is empty", () => {
12
+ render(ErrorDisplay, { props: { error: "", show: true } });
13
+ expect(screen.queryByText("Invalid input")).not.toBeInTheDocument();
14
+ });
15
+
16
+ test("Does not show when show is false", () => {
17
+ render(ErrorDisplay, { props: { error: "Error message", show: false } });
18
+ expect(screen.queryByText("Error message")).not.toBeInTheDocument();
19
+ });
20
+
21
+ test("Has error text color", () => {
22
+ const { container } = render(ErrorDisplay, {
23
+ props: { error: "Error", show: true },
24
+ });
25
+ const icon = container.querySelector("svg");
26
+ expect(icon).toHaveClass("text-red-600");
27
+ });
28
+
29
+ test("Has shake class when shake is true", () => {
30
+ const { container } = render(ErrorDisplay, {
31
+ props: { error: "Error", show: true, shake: true },
32
+ });
33
+ const wrapper = container.querySelector("div.flex");
34
+ expect(wrapper).toHaveClass("animate-shake");
35
+ });
36
+
37
+ test("Does not have shake class when shake is false", () => {
38
+ const { container } = render(ErrorDisplay, {
39
+ props: { error: "Error", show: true, shake: false },
40
+ });
41
+ const wrapper = container.querySelector("div.flex");
42
+ expect(wrapper).not.toHaveClass("animate-shake");
43
+ });
44
+
45
+ test("Contains icon element", () => {
46
+ const { container } = render(ErrorDisplay, {
47
+ props: { error: "Error", show: true },
48
+ });
49
+ const svg = container.querySelector("svg");
50
+ expect(svg).toBeInTheDocument();
51
+ });
52
+
53
+ test("Has flex layout", () => {
54
+ const { container } = render(ErrorDisplay, {
55
+ props: { error: "Error", show: true },
56
+ });
57
+ const wrapper = container.querySelector("div.flex");
58
+ expect(wrapper).toHaveClass("flex");
59
+ expect(wrapper).toHaveClass("items-center");
60
+ });
61
+
62
+ test("Applies custom className", () => {
63
+ const { container } = render(ErrorDisplay, {
64
+ props: { error: "Error", show: true, className: "mt-2" },
65
+ });
66
+ const wrapper = container.querySelector("div.flex");
67
+ expect(wrapper).toHaveClass("mt-2");
68
+ });
69
+ });
@@ -1,95 +1,95 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
-
4
- import ErrorDisplay from './ErrorDisplay.svelte';
5
-
6
- const { Story } = defineMeta({
7
- title: 'Components/ErrorDisplay',
8
- component: ErrorDisplay,
9
- tags: ['autodocs'],
10
- argTypes: {
11
- error: {
12
- control: 'text',
13
- description: 'Error message to display',
14
- },
15
- show: {
16
- control: 'boolean',
17
- description: 'Controls visibility',
18
- },
19
- shake: {
20
- control: 'boolean',
21
- description: 'Enable shake animation',
22
- },
23
- icon: {
24
- control: 'text',
25
- description: 'Icon name from Icon component',
26
- },
27
- iconSize: {
28
- control: 'text',
29
- description: 'Size of the icon',
30
- },
31
- },
32
- });
33
- </script>
34
-
35
- <script>
36
- let showShakeDemo = $state(false);
37
- function triggerShake() {
38
- showShakeDemo = false;
39
- setTimeout(() => {
40
- showShakeDemo = true;
41
- }, 10);
42
- }
43
- </script>
44
-
45
-
46
- <Story
47
- name="Default"
48
- args={{
49
- error: 'This is an error message',
50
- show: true,
51
- shake: false,
52
- }}
53
- />
54
-
55
- <Story
56
- name="With Shake Animation"
57
- args={{
58
- error: 'Invalid input detected',
59
- show: true,
60
- shake: true,
61
- }}
62
- />
63
-
64
- <Story name="Interactive Shake">
65
- <div class="space-y-4">
66
- <button
67
- class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-primary"
68
- onclick={triggerShake}
69
- >
70
- Trigger Error Shake
71
- </button>
72
- <ErrorDisplay
73
- error="Form validation failed"
74
- show={showShakeDemo}
75
- shake={showShakeDemo}
76
- />
77
- </div>
78
- </Story>
79
-
80
- <Story
81
- name="Different Icons"
82
- >
83
- <div class="space-y-4">
84
- <ErrorDisplay error="Error with default icon" />
85
- <ErrorDisplay error="Warning message" icon="Warning" />
86
- <ErrorDisplay error="Info message" icon="Info" />
87
- </div>
88
- </Story>
89
-
90
- <Story
91
- name="In Form Context"
92
- >
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+
4
+ import ErrorDisplay from './ErrorDisplay.svelte';
5
+
6
+ const { Story } = defineMeta({
7
+ title: 'Components/ErrorDisplay',
8
+ component: ErrorDisplay,
9
+ tags: ['autodocs'],
10
+ argTypes: {
11
+ error: {
12
+ control: 'text',
13
+ description: 'Error message to display',
14
+ },
15
+ show: {
16
+ control: 'boolean',
17
+ description: 'Controls visibility',
18
+ },
19
+ shake: {
20
+ control: 'boolean',
21
+ description: 'Enable shake animation',
22
+ },
23
+ icon: {
24
+ control: 'text',
25
+ description: 'Icon name from Icon component',
26
+ },
27
+ iconSize: {
28
+ control: 'text',
29
+ description: 'Size of the icon',
30
+ },
31
+ },
32
+ });
33
+ </script>
34
+
35
+ <script>
36
+ let showShakeDemo = $state(false);
37
+ function triggerShake() {
38
+ showShakeDemo = false;
39
+ setTimeout(() => {
40
+ showShakeDemo = true;
41
+ }, 10);
42
+ }
43
+ </script>
44
+
45
+
46
+ <Story
47
+ name="Default"
48
+ args={{
49
+ error: 'This is an error message',
50
+ show: true,
51
+ shake: false,
52
+ }}
53
+ />
54
+
55
+ <Story
56
+ name="With Shake Animation"
57
+ args={{
58
+ error: 'Invalid input detected',
59
+ show: true,
60
+ shake: true,
61
+ }}
62
+ />
63
+
64
+ <Story name="Interactive Shake">
65
+ <div class="space-y-4">
66
+ <button
67
+ class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-primary"
68
+ onclick={triggerShake}
69
+ >
70
+ Trigger Error Shake
71
+ </button>
72
+ <ErrorDisplay
73
+ error="Form validation failed"
74
+ show={showShakeDemo}
75
+ shake={showShakeDemo}
76
+ />
77
+ </div>
78
+ </Story>
79
+
80
+ <Story
81
+ name="Different Icons"
82
+ >
83
+ <div class="space-y-4">
84
+ <ErrorDisplay error="Error with default icon" />
85
+ <ErrorDisplay error="Warning message" icon="Warning" />
86
+ <ErrorDisplay error="Info message" icon="Info" />
87
+ </div>
88
+ </Story>
89
+
90
+ <Story
91
+ name="In Form Context"
92
+ >
93
93
  <div class="max-w-md">
94
94
  <label for="error-display-email" class="block text-sm font-medium mb-1">Email</label>
95
95
  <input
@@ -102,12 +102,12 @@
102
102
  <ErrorDisplay error="Please enter a valid email address" shake={true} />
103
103
  </div>
104
104
  </div>
105
- </Story>
106
-
107
- <Story
108
- name="Hidden State"
109
- args={{
110
- error: 'This error is hidden',
111
- show: false,
112
- }}
113
- />
105
+ </Story>
106
+
107
+ <Story
108
+ name="Hidden State"
109
+ args={{
110
+ error: 'This error is hidden',
111
+ show: false,
112
+ }}
113
+ />
@@ -41,7 +41,7 @@
41
41
  // Support both naming conventions
42
42
  let displayMessage = $derived(error || message);
43
43
  </script>
44
-
44
+
45
45
  {#if (displayMessage || title) && show}
46
46
  <div
47
47
  class="flex flex-col items-center justify-center px-6 py-10 text-center {shake ? 'animate-shake' : ''} {className}"