@getmicdrop/svelte-components 5.21.0 → 5.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/dist/calendar/AboutShow/AboutShow.spec.js +10 -10
  2. package/dist/calendar/AboutShow/AboutShow.svelte +191 -191
  3. package/dist/calendar/Calendar/MiniMonthCalendar.spec.js +9 -8
  4. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +800 -803
  5. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
  6. package/dist/calendar/FAQs/FAQs.spec.js +6 -6
  7. package/dist/calendar/FAQs/FAQs.svelte +88 -88
  8. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +136 -140
  9. package/dist/calendar/OrderSummary/OrderSummary.svelte +461 -461
  10. package/dist/calendar/PublicCard/PublicCard.spec.js +3 -3
  11. package/dist/calendar/PublicCard/PublicCard.svelte +164 -164
  12. package/dist/calendar/ShowCard/ShowCard.spec.js +8 -8
  13. package/dist/calendar/ShowCard/ShowCard.svelte +180 -180
  14. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.js +4 -4
  15. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +80 -80
  16. package/dist/calendar/index.js +15 -15
  17. package/dist/components/Heading.spec.js +89 -89
  18. package/dist/components/Heading.svelte +66 -66
  19. package/dist/components/Layout/AppShell.svelte +104 -104
  20. package/dist/components/Layout/ContentSection.svelte +80 -80
  21. package/dist/components/Layout/Grid.svelte +101 -101
  22. package/dist/components/Layout/Heading.svelte +81 -81
  23. package/dist/components/Layout/PageContainer.svelte +69 -69
  24. package/dist/components/Layout/Responsive.svelte +75 -75
  25. package/dist/components/Layout/Section.spec.js +4 -4
  26. package/dist/components/Layout/Section.svelte +80 -80
  27. package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
  28. package/dist/components/Layout/ShowOnMobile.svelte +37 -37
  29. package/dist/components/Layout/Sidebar.svelte +108 -108
  30. package/dist/components/Layout/Stack.spec.js +1 -1
  31. package/dist/components/Layout/Stack.svelte +52 -52
  32. package/dist/components/Layout/Text.svelte +87 -87
  33. package/dist/components/Layout/TwoColumn.svelte +108 -108
  34. package/dist/components/Layout/__tests__/AppShell.test.js +5 -5
  35. package/dist/components/Layout/__tests__/ContentSection.test.js +1 -1
  36. package/dist/components/Layout/__tests__/Heading.test.js +3 -3
  37. package/dist/components/Layout/__tests__/PageContainer.test.js +4 -4
  38. package/dist/components/Layout/__tests__/Text.test.js +9 -9
  39. package/dist/components/Text.spec.js +89 -89
  40. package/dist/components/Text.svelte +64 -64
  41. package/dist/config.js +160 -160
  42. package/dist/config.spec.js +29 -29
  43. package/dist/constants/formOptions.js +48 -48
  44. package/dist/constants/validation.js +91 -91
  45. package/dist/constants/validation.spec.js +64 -64
  46. package/dist/datetime/README.md +323 -323
  47. package/dist/datetime/__tests__/format.test.js +1 -1
  48. package/dist/datetime/__tests__/parse.test.js +1 -1
  49. package/dist/datetime/__tests__/timezone.test.js +1 -1
  50. package/dist/datetime/parse.js +1 -1
  51. package/dist/forms/createFormStore.svelte.js +1 -0
  52. package/dist/forms/createFormStore.svelte.spec.js +1 -0
  53. package/dist/index.js +85 -85
  54. package/dist/index.spec.js +369 -369
  55. package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -59
  56. package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
  57. package/dist/patterns/chat/ChatBubble.spec.js +91 -91
  58. package/dist/patterns/chat/ChatBubble.svelte +103 -103
  59. package/dist/patterns/chat/ChatContainer.spec.js +30 -30
  60. package/dist/patterns/chat/ChatContainer.svelte +46 -46
  61. package/dist/patterns/chat/ChatDateDivider.spec.js +30 -30
  62. package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
  63. package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -46
  64. package/dist/patterns/chat/ChatInvitationBubble.svelte +46 -46
  65. package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -32
  66. package/dist/patterns/chat/ChatInvitationNotice.svelte +36 -36
  67. package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -58
  68. package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
  69. package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -65
  70. package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
  71. package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -79
  72. package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
  73. package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -81
  74. package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
  75. package/dist/patterns/chat/ChatTextBubble.spec.js +35 -35
  76. package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
  77. package/dist/patterns/chat/index.js +22 -22
  78. package/dist/patterns/data/DataGrid.svelte +45 -45
  79. package/dist/patterns/data/DataList.spec.js +5 -5
  80. package/dist/patterns/data/DataList.svelte +24 -24
  81. package/dist/patterns/data/DataTable.spec.js +18 -18
  82. package/dist/patterns/data/DataTable.svelte +45 -45
  83. package/dist/patterns/data/index.js +4 -4
  84. package/dist/patterns/forms/FormActions.spec.js +95 -95
  85. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  86. package/dist/patterns/forms/FormActions.svelte +46 -46
  87. package/dist/patterns/forms/FormGrid.svelte +33 -33
  88. package/dist/patterns/forms/FormSection.spec.js +4 -4
  89. package/dist/patterns/forms/FormSection.svelte +33 -33
  90. package/dist/patterns/forms/FormValidationSummary.spec.js +2 -2
  91. package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
  92. package/dist/patterns/forms/FormValidationSummary.svelte +82 -82
  93. package/dist/patterns/forms/index.js +5 -5
  94. package/dist/patterns/index.js +21 -21
  95. package/dist/patterns/layout/Sidebar.svelte +39 -39
  96. package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -34
  97. package/dist/patterns/layout/Stack.svelte +61 -61
  98. package/dist/patterns/layout/index.js +29 -29
  99. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  100. package/dist/patterns/navigation/BottomNav.svelte +82 -82
  101. package/dist/patterns/navigation/Header.spec.js +9 -9
  102. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  103. package/dist/patterns/navigation/Header.svelte +261 -263
  104. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  105. package/dist/patterns/navigation/index.js +3 -3
  106. package/dist/patterns/page/PageHeader.svelte +49 -49
  107. package/dist/patterns/page/PageLayout.spec.js +5 -5
  108. package/dist/patterns/page/PageLayout.svelte +40 -40
  109. package/dist/patterns/page/PageLoader.spec.js +57 -57
  110. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  111. package/dist/patterns/page/PageLoader.svelte +62 -62
  112. package/dist/patterns/page/SectionHeader.spec.js +8 -8
  113. package/dist/patterns/page/SectionHeader.svelte +51 -51
  114. package/dist/patterns/page/index.js +5 -5
  115. package/dist/presets/badges.js +112 -112
  116. package/dist/presets/buttons.js +76 -76
  117. package/dist/presets/buttons.spec.js +4 -4
  118. package/dist/presets/index.js +9 -9
  119. package/dist/primitives/Accordion/Accordion.spec.js +5 -5
  120. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  121. package/dist/primitives/Accordion/Accordion.svelte +62 -62
  122. package/dist/primitives/Accordion/AccordionItem.spec.js +19 -28
  123. package/dist/primitives/Accordion/AccordionItem.svelte +103 -103
  124. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
  125. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -28
  126. package/dist/primitives/Alert/Alert.spec.js +173 -173
  127. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  128. package/dist/primitives/Alert/Alert.svelte +72 -72
  129. package/dist/primitives/Avatar/Avatar.spec.js +11 -11
  130. package/dist/primitives/Avatar/Avatar.stories.svelte +95 -94
  131. package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts.map +1 -1
  132. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  133. package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
  134. package/dist/primitives/Badges/Badge.spec.js +144 -144
  135. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  136. package/dist/primitives/Badges/Badge.svelte +99 -99
  137. package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -238
  138. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  139. package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
  140. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte +20 -20
  141. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +125 -123
  142. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  143. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +107 -107
  144. package/dist/primitives/Button/Button.spec.js +225 -225
  145. package/dist/primitives/Button/Button.stories.svelte +76 -76
  146. package/dist/primitives/Button/Button.svelte +278 -278
  147. package/dist/primitives/Button/ButtonGroup.spec.js +44 -44
  148. package/dist/primitives/Button/ButtonGroup.svelte +50 -50
  149. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  150. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  151. package/dist/primitives/Button/ButtonVariantShowcase.spec.js +1 -1
  152. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  153. package/dist/primitives/Card.spec.js +49 -49
  154. package/dist/primitives/Card.stories.svelte +22 -22
  155. package/dist/primitives/Card.svelte +28 -28
  156. package/dist/primitives/CardAction/CardAction.svelte +68 -68
  157. package/dist/primitives/Checkbox/Checkbox.spec.js +16 -16
  158. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  159. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  160. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  161. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  162. package/dist/primitives/DarkModeToggle.svelte +147 -147
  163. package/dist/primitives/Drawer/Drawer.spec.js +4 -4
  164. package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
  165. package/dist/primitives/Drawer/Drawer.svelte +224 -224
  166. package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -86
  167. package/dist/primitives/Dropdown/Dropdown.spec.js +9 -9
  168. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  169. package/dist/primitives/Dropdown/Dropdown.svelte +179 -179
  170. package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -30
  171. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
  172. package/dist/primitives/Dropdown/DropdownItem.spec.js +8 -15
  173. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  174. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -43
  175. package/dist/primitives/Helper/Helper.spec.js +57 -57
  176. package/dist/primitives/Helper/Helper.svelte +33 -33
  177. package/dist/primitives/Icons/ArrowLeft.svelte +21 -21
  178. package/dist/primitives/Icons/ArrowRight.svelte +21 -21
  179. package/dist/primitives/Icons/Availability.svelte +27 -27
  180. package/dist/primitives/Icons/Back.svelte +27 -27
  181. package/dist/primitives/Icons/CheckCircle.svelte +19 -19
  182. package/dist/primitives/Icons/CheckCircleOutline.svelte +28 -28
  183. package/dist/primitives/Icons/ChevronLeft.svelte +17 -17
  184. package/dist/primitives/Icons/ChevronRight.svelte +17 -17
  185. package/dist/primitives/Icons/Copy.svelte +28 -28
  186. package/dist/primitives/Icons/Cross.svelte +18 -18
  187. package/dist/primitives/Icons/DownArrow.svelte +21 -21
  188. package/dist/primitives/Icons/ErrorCircle.svelte +19 -19
  189. package/dist/primitives/Icons/FacebookIcon.svelte +15 -15
  190. package/dist/primitives/Icons/Home.svelte +28 -28
  191. package/dist/primitives/Icons/Icon.spec.js +175 -175
  192. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  193. package/dist/primitives/Icons/Icon.svelte +79 -79
  194. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  195. package/dist/primitives/Icons/Icons.spec.js +3 -3
  196. package/dist/primitives/Icons/ImageOutline.svelte +21 -21
  197. package/dist/primitives/Icons/Info.svelte +20 -20
  198. package/dist/primitives/Icons/InstagramIcon.svelte +21 -21
  199. package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
  200. package/dist/primitives/Icons/Message.svelte +28 -28
  201. package/dist/primitives/Icons/MoonIcon.svelte +18 -18
  202. package/dist/primitives/Icons/More.svelte +34 -34
  203. package/dist/primitives/Icons/MoreHori.spec.js +67 -67
  204. package/dist/primitives/Icons/MoreHori.svelte +35 -35
  205. package/dist/primitives/Icons/Notification.svelte +27 -27
  206. package/dist/primitives/Icons/Payment.svelte +27 -27
  207. package/dist/primitives/Icons/Profile.svelte +34 -34
  208. package/dist/primitives/Icons/Reload.svelte +42 -42
  209. package/dist/primitives/Icons/Shows.svelte +34 -34
  210. package/dist/primitives/Icons/Signout.svelte +34 -34
  211. package/dist/primitives/Icons/SunIcon.svelte +21 -21
  212. package/dist/primitives/Icons/TiktokIcon.svelte +15 -15
  213. package/dist/primitives/Icons/TrashBinOutline.svelte +21 -21
  214. package/dist/primitives/Icons/TwitterIcon.svelte +15 -15
  215. package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
  216. package/dist/primitives/Icons/WarningIcon.svelte +24 -24
  217. package/dist/primitives/Input/Input.spec.js +1237 -1237
  218. package/dist/primitives/Input/Input.stories.svelte +139 -139
  219. package/dist/primitives/Input/Input.svelte +444 -444
  220. package/dist/primitives/Input/Select.spec.js +632 -632
  221. package/dist/primitives/Input/Select.stories.svelte +112 -112
  222. package/dist/primitives/Input/Select.svelte +252 -252
  223. package/dist/primitives/Input/Textarea.spec.js +8 -8
  224. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  225. package/dist/primitives/Input/Textarea.svelte +105 -105
  226. package/dist/primitives/Label/Label.spec.js +20 -21
  227. package/dist/primitives/Label/Label.svelte +37 -37
  228. package/dist/primitives/LandingButton/LandingButton.spec.js +61 -61
  229. package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
  230. package/dist/primitives/MenuItem/MenuItem.spec.js +130 -130
  231. package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
  232. package/dist/primitives/Modal/Modal.spec.js +314 -314
  233. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  234. package/dist/primitives/Modal/Modal.svelte +181 -181
  235. package/dist/primitives/NavItem/NavItem.spec.js +97 -97
  236. package/dist/primitives/NavItem/NavItem.svelte +75 -75
  237. package/dist/primitives/NumberInput/NumberInput.spec.js +17 -17
  238. package/dist/primitives/NumberInput/NumberInput.svelte +113 -113
  239. package/dist/primitives/Pagination/DotIndicator.svelte +66 -66
  240. package/dist/primitives/Pagination/Pagination.spec.js +6 -6
  241. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  242. package/dist/primitives/Pagination/Pagination.svelte +275 -275
  243. package/dist/primitives/Radio/Radio.spec.js +19 -19
  244. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  245. package/dist/primitives/Radio/Radio.svelte +67 -67
  246. package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -78
  247. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
  248. package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -61
  249. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
  250. package/dist/primitives/Skeleton/CardPlaceholder.spec.js +1 -1
  251. package/dist/primitives/Skeleton/CardPlaceholder.svelte +96 -96
  252. package/dist/primitives/Skeleton/ImagePlaceholder.spec.js +2 -2
  253. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +68 -68
  254. package/dist/primitives/Skeleton/ListPlaceholder.spec.js +2 -2
  255. package/dist/primitives/Skeleton/ListPlaceholder.svelte +85 -85
  256. package/dist/primitives/Skeleton/Skeleton.spec.js +7 -7
  257. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  258. package/dist/primitives/Skeleton/Skeleton.svelte +55 -55
  259. package/dist/primitives/Spinner/Spinner.spec.js +83 -84
  260. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  261. package/dist/primitives/Spinner/Spinner.svelte +52 -52
  262. package/dist/primitives/Tabs/TabItem.svelte +52 -52
  263. package/dist/primitives/Tabs/Tabs.spec.js +14 -14
  264. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  265. package/dist/primitives/Tabs/Tabs.svelte +137 -137
  266. package/dist/primitives/Toggle.spec.js +219 -221
  267. package/dist/primitives/Toggle.stories.svelte +92 -92
  268. package/dist/primitives/Toggle.svelte +141 -141
  269. package/dist/primitives/ToggleTestWrapper.svelte +30 -30
  270. package/dist/primitives/Tooltip/Tooltip.spec.js +126 -126
  271. package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
  272. package/dist/primitives/Typography/Typography.svelte +53 -53
  273. package/dist/primitives/ValidationError.spec.js +103 -103
  274. package/dist/primitives/ValidationError.stories.svelte +112 -112
  275. package/dist/primitives/ValidationError.svelte +29 -29
  276. package/dist/primitives/index.js +114 -114
  277. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  278. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  279. package/dist/recipes/CropImage/CropImage.svelte +241 -241
  280. package/dist/recipes/ImageUploader/ImageUploader.spec.js +1 -1
  281. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  282. package/dist/recipes/ImageUploader/ImageUploader.svelte +972 -994
  283. package/dist/recipes/SuperLogin/SuperLogin.svelte +24 -24
  284. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  285. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +75 -75
  286. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  287. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +113 -113
  288. package/dist/recipes/feedback/ErrorDisplay.svelte +67 -67
  289. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  290. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +176 -176
  291. package/dist/recipes/feedback/index.js +4 -4
  292. package/dist/recipes/fields/CheckboxField.spec.js +2 -2
  293. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  294. package/dist/recipes/fields/FormField.spec.js +4 -4
  295. package/dist/recipes/fields/FormField.svelte +58 -58
  296. package/dist/recipes/fields/RadioGroup.spec.js +1 -1
  297. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  298. package/dist/recipes/fields/SelectField.spec.js +2 -2
  299. package/dist/recipes/fields/SelectField.svelte +82 -82
  300. package/dist/recipes/fields/TextareaField.spec.js +2 -2
  301. package/dist/recipes/fields/TextareaField.svelte +101 -101
  302. package/dist/recipes/fields/ToggleField.spec.js +2 -2
  303. package/dist/recipes/fields/ToggleField.svelte +60 -60
  304. package/dist/recipes/fields/index.js +7 -7
  305. package/dist/recipes/index.js +24 -24
  306. package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
  307. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  308. package/dist/recipes/inputs/MultiSelect.svelte +291 -291
  309. package/dist/recipes/inputs/OTPInput.spec.js +251 -251
  310. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  311. package/dist/recipes/inputs/OTPInput.svelte +128 -128
  312. package/dist/recipes/inputs/PasswordInput.spec.js +2 -2
  313. package/dist/recipes/inputs/PasswordInput.svelte +130 -130
  314. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +14 -14
  315. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +142 -142
  316. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte +2 -2
  317. package/dist/recipes/inputs/PhoneInput.svelte +254 -254
  318. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +10 -10
  319. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -170
  320. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +346 -349
  321. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  322. package/dist/recipes/inputs/Search.spec.js +3 -3
  323. package/dist/recipes/inputs/Search.svelte +110 -110
  324. package/dist/recipes/inputs/index.js +8 -8
  325. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +240 -240
  326. package/dist/recipes/modals/AlertModal.spec.js +36 -36
  327. package/dist/recipes/modals/AlertModal.svelte +139 -139
  328. package/dist/recipes/modals/ConfirmationModal.spec.js +396 -396
  329. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  330. package/dist/recipes/modals/ConfirmationModal.svelte +169 -169
  331. package/dist/recipes/modals/FeedbackModal.svelte +205 -205
  332. package/dist/recipes/modals/InputModal.spec.js +17 -17
  333. package/dist/recipes/modals/InputModal.svelte +194 -194
  334. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  335. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  336. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  337. package/dist/recipes/modals/StatusModal.spec.js +7 -7
  338. package/dist/recipes/modals/StatusModal.svelte +216 -216
  339. package/dist/recipes/modals/index.js +8 -8
  340. package/dist/schemas/__tests__/order.test.js +1 -1
  341. package/dist/schemas/auth.d.ts +107 -17
  342. package/dist/schemas/auth.d.ts.map +1 -1
  343. package/dist/schemas/common.d.ts +41 -13
  344. package/dist/schemas/common.d.ts.map +1 -1
  345. package/dist/schemas/common.js +1 -1
  346. package/dist/schemas/event.d.ts +147 -41
  347. package/dist/schemas/event.d.ts.map +1 -1
  348. package/dist/schemas/event.js +1 -1
  349. package/dist/schemas/order.d.ts +208 -51
  350. package/dist/schemas/order.d.ts.map +1 -1
  351. package/dist/schemas/order.js +1 -0
  352. package/dist/schemas/performer.d.ts +199 -44
  353. package/dist/schemas/performer.d.ts.map +1 -1
  354. package/dist/schemas/performer.js +1 -1
  355. package/dist/schemas/promo.d.ts +221 -55
  356. package/dist/schemas/promo.d.ts.map +1 -1
  357. package/dist/schemas/promo.js +2 -2
  358. package/dist/schemas/ticket.d.ts +187 -61
  359. package/dist/schemas/ticket.d.ts.map +1 -1
  360. package/dist/schemas/ticket.js +1 -1
  361. package/dist/schemas/user.d.ts +114 -54
  362. package/dist/schemas/user.d.ts.map +1 -1
  363. package/dist/schemas/user.js +2 -1
  364. package/dist/schemas/venue.d.ts +238 -20
  365. package/dist/schemas/venue.d.ts.map +1 -1
  366. package/dist/services/show.service.d.ts +46 -46
  367. package/dist/stores/auth.d.ts +8 -8
  368. package/dist/stores/auth.svelte.spec.js +1 -1
  369. package/dist/stores/index.js +9 -9
  370. package/dist/stores/toaster.d.ts +3 -3
  371. package/dist/stores/toaster.js +13 -13
  372. package/dist/stores/toaster.spec.js +59 -59
  373. package/dist/stories/ButtonAuditDashboard.spec.js +12 -12
  374. package/dist/stories/ButtonAuditDashboard.svelte +55 -55
  375. package/dist/stories/ButtonAuditReview.spec.js +8 -8
  376. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  377. package/dist/stories/ButtonAuditReview.svelte +427 -427
  378. package/dist/stories/ButtonGridView.spec.js +27 -27
  379. package/dist/stories/ButtonGridView.svelte +22 -22
  380. package/dist/stories/ButtonShowcase.spec.js +4 -4
  381. package/dist/stories/ButtonShowcase.svelte +119 -119
  382. package/dist/stories/ComponentConsolidation.stories.svelte +453 -453
  383. package/dist/stories/DesignSystemAudit.stories.svelte +127 -127
  384. package/dist/stories/PatternsGallery.spec.js +3 -3
  385. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  386. package/dist/stories/PatternsGallery.svelte +399 -399
  387. package/dist/stories/PrimitivesGallery.spec.js +9 -9
  388. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  389. package/dist/stories/PrimitivesGallery.svelte +756 -756
  390. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  391. package/dist/stories/RecipesGallery.svelte +454 -454
  392. package/dist/stories/button-audit-manifest.json +11186 -11186
  393. package/dist/tailwind/preset.cjs +87 -87
  394. package/dist/telemetry.js +401 -401
  395. package/dist/telemetry.server.js +212 -212
  396. package/dist/telemetry.server.spec.js +437 -437
  397. package/dist/telemetry.spec.js +1273 -1273
  398. package/dist/tokens/__tests__/typography-base.test.js +5 -5
  399. package/dist/tokens/__tests__/typography.test.js +32 -36
  400. package/dist/tokens/__tests__/variants.test.js +63 -78
  401. package/dist/tokens/tokens.css +87 -87
  402. package/dist/tokens/typography-base.css +163 -163
  403. package/dist/tokens/typography.d.ts +29 -29
  404. package/dist/tokens/typography.js +29 -29
  405. package/dist/tokens/utilities.css +418 -430
  406. package/dist/tokens/variants.d.ts +32 -32
  407. package/dist/tokens/variants.js +32 -32
  408. package/dist/utils/__tests__/auth.test.js +431 -431
  409. package/dist/utils/apiConfig.d.ts +29 -29
  410. package/dist/utils/apiConfig.js +142 -142
  411. package/dist/utils/auth.d.ts +46 -46
  412. package/dist/utils/auth.js +195 -195
  413. package/dist/utils/greetings.js +187 -187
  414. package/dist/utils/greetings.spec.js +337 -337
  415. package/dist/utils/haptic.spec.js +1 -1
  416. package/dist/utils/imageValidation.js +121 -121
  417. package/dist/utils/imageValidation.spec.js +223 -223
  418. package/dist/utils/portal.d.ts +11 -11
  419. package/dist/utils/portal.js +25 -25
  420. package/dist/utils/portal.spec.js +143 -143
  421. package/dist/utils/transitions.js +16 -16
  422. package/dist/utils/utils/utils.d.ts +2 -2
  423. package/dist/utils/utils/utils.js +3 -3
  424. package/dist/utils/utils/utils.spec.js +698 -698
  425. package/dist/utils/utils.d.ts +41 -41
  426. package/dist/utils/utils.js +59 -59
  427. package/dist/utils/utils.spec.js +643 -643
  428. package/package.json +306 -306
@@ -42,14 +42,14 @@ describe('PageLayout Variant', () => {
42
42
  test('default variant renders children directly', () => {
43
43
  const { container } = render(PageLayout, { props: { variant: 'default' } });
44
44
  // Should not have a Card wrapper
45
- const card = container.querySelector('.bg-white.dark\\:bg-gray-800');
45
+ const card = container.querySelector('.bg-card.dark\\:bg-bg-secondary');
46
46
  expect(card).not.toBeInTheDocument();
47
47
  });
48
48
 
49
49
  test('card variant wraps content in Card', () => {
50
50
  const { container } = render(PageLayout, { props: { variant: 'card' } });
51
51
  // Card should be rendered with white bg
52
- const cardWrapper = container.querySelector('.bg-white');
52
+ const cardWrapper = container.querySelector('.bg-card');
53
53
  expect(cardWrapper).toBeInTheDocument();
54
54
  });
55
55
  });
@@ -122,8 +122,8 @@ describe('PageLayout Combinations', () => {
122
122
  const { container } = render(PageLayout, {
123
123
  props: { variant: 'card', maxWidth: 'max-w-3xl' }
124
124
  });
125
- // Card renders with bg-white
126
- expect(container.querySelector('.bg-white')).toBeInTheDocument();
125
+ // Card renders with bg-card
126
+ expect(container.querySelector('.bg-card')).toBeInTheDocument();
127
127
  });
128
128
 
129
129
  test('all props together', () => {
@@ -139,7 +139,7 @@ describe('PageLayout Combinations', () => {
139
139
  }
140
140
  });
141
141
  expect(container.querySelector('nav')).toBeInTheDocument();
142
- expect(container.querySelector('.bg-white')).toBeInTheDocument();
142
+ expect(container.querySelector('.bg-card')).toBeInTheDocument();
143
143
  expect(container.querySelector('.custom-page')).toBeInTheDocument();
144
144
  });
145
145
  });
@@ -1,40 +1,40 @@
1
- <script>
2
- import Breadcrumb from '../../primitives/Breadcrumb/Breadcrumb.svelte';
3
- import Card from '../../primitives/Card.svelte';
4
- import { typography } from '../../tokens/typography';
5
-
6
- let {
7
- breadcrumb = [],
8
- title = '',
9
- subtitle = '',
10
- variant = 'default',
11
- maxWidth = 'max-w-4xl',
12
- className = '',
13
- showHeader = true,
14
- children,
15
- actions,
16
- } = $props();
17
- </script>
18
-
19
- {#if showHeader}
20
- <nav class={`pt-4 px-4 ${typography.h3}`}>
21
- <div class="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4">
22
- <Breadcrumb data={breadcrumb} {title} {subtitle} />
23
- {#if actions}
24
- <div class="flex items-center gap-3 shrink-0">
25
- {@render actions()}
26
- </div>
27
- {/if}
28
- </div>
29
- </nav>
30
- {/if}
31
-
32
- <div class="px-4 pt-4 pb-20 md:pb-6 {className}">
33
- {#if variant === 'card'}
34
- <Card className="bg-white dark:bg-gray-800 {maxWidth}">
35
- {@render children?.()}
36
- </Card>
37
- {:else}
38
- {@render children?.()}
39
- {/if}
40
- </div>
1
+ <script>
2
+ import Breadcrumb from '../../primitives/Breadcrumb/Breadcrumb.svelte';
3
+ import Card from '../../primitives/Card.svelte';
4
+ import { typography } from '../../tokens/typography';
5
+
6
+ let {
7
+ breadcrumb = [],
8
+ title = '',
9
+ subtitle = '',
10
+ variant = 'default',
11
+ maxWidth = 'max-w-4xl',
12
+ className = '',
13
+ showHeader = true,
14
+ children,
15
+ actions,
16
+ } = $props();
17
+ </script>
18
+
19
+ {#if showHeader}
20
+ <nav class={`pt-4 px-4 ${typography.h3}`}>
21
+ <div class="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4">
22
+ <Breadcrumb data={breadcrumb} {title} {subtitle} />
23
+ {#if actions}
24
+ <div class="flex items-center gap-3 shrink-0">
25
+ {@render actions()}
26
+ </div>
27
+ {/if}
28
+ </div>
29
+ </nav>
30
+ {/if}
31
+
32
+ <div class="px-4 pt-4 pb-20 md:pb-6 {className}">
33
+ {#if variant === 'card'}
34
+ <Card className="bg-card {maxWidth}">
35
+ {@render children?.()}
36
+ </Card>
37
+ {:else}
38
+ {@render children?.()}
39
+ {/if}
40
+ </div>
@@ -1,57 +1,57 @@
1
- import { render, screen } from "@testing-library/svelte";
2
- import { expect, describe, test } from "vitest";
3
- import PageLoader from "./PageLoader.svelte";
4
-
5
- describe("PageLoader Component Tests", () => {
6
- test("Shows spinner when loading", () => {
7
- render(PageLoader, { props: { isLoading: true } });
8
- // The spinner SVG has aria-hidden="true", so we query with hidden: true
9
- expect(screen.getByRole("status", { hidden: true })).toBeInTheDocument();
10
- // Or verify via the accessible loading text
11
- expect(screen.getByText("Loading...")).toBeInTheDocument();
12
- });
13
-
14
- test("Shows error alert when error is set", () => {
15
- render(PageLoader, {
16
- props: { isLoading: false, error: "Something went wrong" },
17
- });
18
- expect(screen.getByRole("alert")).toBeInTheDocument();
19
- expect(screen.getByText("Something went wrong")).toBeInTheDocument();
20
- });
21
-
22
- test("Shows custom error title", () => {
23
- render(PageLoader, {
24
- props: {
25
- isLoading: false,
26
- error: "Failed",
27
- errorTitle: "Loading Error",
28
- },
29
- });
30
- expect(screen.getByText("Loading Error")).toBeInTheDocument();
31
- });
32
-
33
- test("Does not show spinner when not loading", () => {
34
- render(PageLoader, { props: { isLoading: false } });
35
- expect(screen.queryByRole("status", { hidden: true })).not.toBeInTheDocument();
36
- });
37
-
38
- test("Does not show error when no error", () => {
39
- render(PageLoader, { props: { isLoading: false, error: null } });
40
- expect(screen.queryByRole("alert")).not.toBeInTheDocument();
41
- });
42
-
43
- test("Has custom min height class", () => {
44
- const { container } = render(PageLoader, {
45
- props: { isLoading: true, minHeight: "h-96" },
46
- });
47
- const loadingDiv = container.querySelector(".h-96");
48
- expect(loadingDiv).toBeInTheDocument();
49
- });
50
-
51
- test("Shows loading message when provided", () => {
52
- render(PageLoader, {
53
- props: { isLoading: true, loadingMessage: "Please wait..." },
54
- });
55
- expect(screen.getByText("Please wait...")).toBeInTheDocument();
56
- });
57
- });
1
+ import { render, screen } from "@testing-library/svelte";
2
+ import { expect, describe, test } from "vitest";
3
+ import PageLoader from "./PageLoader.svelte";
4
+
5
+ describe("PageLoader Component Tests", () => {
6
+ test("Shows spinner when loading", () => {
7
+ render(PageLoader, { props: { isLoading: true } });
8
+ // The spinner SVG has aria-hidden="true", so we query with hidden: true
9
+ expect(screen.getByRole("status", { hidden: true })).toBeInTheDocument();
10
+ // Or verify via the accessible loading text
11
+ expect(screen.getByText("Loading...")).toBeInTheDocument();
12
+ });
13
+
14
+ test("Shows error alert when error is set", () => {
15
+ render(PageLoader, {
16
+ props: { isLoading: false, error: "Something went wrong" },
17
+ });
18
+ expect(screen.getByRole("alert")).toBeInTheDocument();
19
+ expect(screen.getByText("Something went wrong")).toBeInTheDocument();
20
+ });
21
+
22
+ test("Shows custom error title", () => {
23
+ render(PageLoader, {
24
+ props: {
25
+ isLoading: false,
26
+ error: "Failed",
27
+ errorTitle: "Loading Error",
28
+ },
29
+ });
30
+ expect(screen.getByText("Loading Error")).toBeInTheDocument();
31
+ });
32
+
33
+ test("Does not show spinner when not loading", () => {
34
+ render(PageLoader, { props: { isLoading: false } });
35
+ expect(screen.queryByRole("status", { hidden: true })).not.toBeInTheDocument();
36
+ });
37
+
38
+ test("Does not show error when no error", () => {
39
+ render(PageLoader, { props: { isLoading: false, error: null } });
40
+ expect(screen.queryByRole("alert")).not.toBeInTheDocument();
41
+ });
42
+
43
+ test("Has custom min height class", () => {
44
+ const { container } = render(PageLoader, {
45
+ props: { isLoading: true, minHeight: "h-96" },
46
+ });
47
+ const loadingDiv = container.querySelector(".h-96");
48
+ expect(loadingDiv).toBeInTheDocument();
49
+ });
50
+
51
+ test("Shows loading message when provided", () => {
52
+ render(PageLoader, {
53
+ props: { isLoading: true, loadingMessage: "Please wait..." },
54
+ });
55
+ expect(screen.getByText("Please wait...")).toBeInTheDocument();
56
+ });
57
+ });
@@ -1,137 +1,137 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
-
4
- import PageLoader from './PageLoader.svelte';
5
-
6
- const { Story } = defineMeta({
7
- title: 'Components/PageLoader',
8
- component: PageLoader,
9
- tags: ['autodocs'],
10
- argTypes: {
11
- isLoading: { control: 'boolean' },
12
- error: { control: 'text' },
13
- loadingMessage: { control: 'text' },
14
- errorTitle: { control: 'text' },
15
- showRetry: { control: 'boolean' },
16
- },
17
- });
18
- </script>
19
-
20
- <script>
21
- let loading = $state(true);
22
- let hasError = $state(false);
23
-
24
- function simulateLoading() {
25
- loading = true;
26
- hasError = false;
27
- setTimeout(() => {
28
- loading = false;
29
- }, 2000);
30
- }
31
-
32
- function simulateError() {
33
- loading = true;
34
- hasError = false;
35
- setTimeout(() => {
36
- loading = false;
37
- hasError = true;
38
- }, 1000);
39
- }
40
- </script>
41
-
42
-
43
- <Story
44
- name="Loading State"
45
- args={{
46
- isLoading: true,
47
- error: null,
48
- }}
49
- />
50
-
51
- <Story
52
- name="Loading with Message"
53
- args={{
54
- isLoading: true,
55
- error: null,
56
- loadingMessage: 'Fetching your data...',
57
- }}
58
- />
59
-
60
- <Story
61
- name="Error State"
62
- args={{
63
- isLoading: false,
64
- error: 'Failed to load data. Please try again.',
65
- errorTitle: 'Loading Failed',
66
- }}
67
- />
68
-
69
- <Story
70
- name="Error with Retry"
71
- args={{
72
- isLoading: false,
73
- error: 'Network connection failed',
74
- errorTitle: 'Connection Error',
75
- showRetry: true,
76
- onRetry: () => alert('Retrying...'),
77
- }}
78
- />
79
-
80
- <Story
81
- name="Content Loaded"
82
- args={{
83
- isLoading: false,
84
- error: null,
85
- }}
86
- />
87
-
88
- <Story name="Interactive Loading">
89
- <div class="space-y-4">
90
- <div class="flex gap-2">
91
- <button
92
- class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
93
- onclick={simulateLoading}
94
- >
95
- Simulate Loading
96
- </button>
97
- <button
98
- class="px-4 py-2 bg-red-500 text-white rounded hover:bg-red-600"
99
- onclick={simulateError}
100
- >
101
- Simulate Error
102
- </button>
103
- </div>
104
-
105
- <PageLoader
106
- isLoading={loading}
107
- error={hasError ? 'Failed to load content' : null}
108
- loadingMessage="Please wait..."
109
- showRetry={true}
110
- onRetry={simulateLoading}
111
- >
112
- <div class="p-8 bg-green-50 rounded-lg">
113
- <h3 class="text-xl font-bold text-green-800">Success!</h3>
114
- <p class="text-green-600 mt-2">Your content has loaded successfully.</p>
115
- </div>
116
- </PageLoader>
117
- </div>
118
- </Story>
119
-
120
- <Story name="Different Heights">
121
- <div class="space-y-8">
122
- <div class="border rounded p-4">
123
- <h4 class="font-semibold mb-2">Small (h-32)</h4>
124
- <PageLoader isLoading={true} minHeight="h-32" />
125
- </div>
126
-
127
- <div class="border rounded p-4">
128
- <h4 class="font-semibold mb-2">Medium (h-64 - default)</h4>
129
- <PageLoader isLoading={true} />
130
- </div>
131
-
132
- <div class="border rounded p-4">
133
- <h4 class="font-semibold mb-2">Large (h-96)</h4>
134
- <PageLoader isLoading={true} minHeight="h-96" />
135
- </div>
136
- </div>
137
- </Story>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+
4
+ import PageLoader from './PageLoader.svelte';
5
+
6
+ const { Story } = defineMeta({
7
+ title: 'Components/PageLoader',
8
+ component: PageLoader,
9
+ tags: ['autodocs'],
10
+ argTypes: {
11
+ isLoading: { control: 'boolean' },
12
+ error: { control: 'text' },
13
+ loadingMessage: { control: 'text' },
14
+ errorTitle: { control: 'text' },
15
+ showRetry: { control: 'boolean' },
16
+ },
17
+ });
18
+ </script>
19
+
20
+ <script>
21
+ let loading = $state(true);
22
+ let hasError = $state(false);
23
+
24
+ function simulateLoading() {
25
+ loading = true;
26
+ hasError = false;
27
+ setTimeout(() => {
28
+ loading = false;
29
+ }, 2000);
30
+ }
31
+
32
+ function simulateError() {
33
+ loading = true;
34
+ hasError = false;
35
+ setTimeout(() => {
36
+ loading = false;
37
+ hasError = true;
38
+ }, 1000);
39
+ }
40
+ </script>
41
+
42
+
43
+ <Story
44
+ name="Loading State"
45
+ args={{
46
+ isLoading: true,
47
+ error: null,
48
+ }}
49
+ />
50
+
51
+ <Story
52
+ name="Loading with Message"
53
+ args={{
54
+ isLoading: true,
55
+ error: null,
56
+ loadingMessage: 'Fetching your data...',
57
+ }}
58
+ />
59
+
60
+ <Story
61
+ name="Error State"
62
+ args={{
63
+ isLoading: false,
64
+ error: 'Failed to load data. Please try again.',
65
+ errorTitle: 'Loading Failed',
66
+ }}
67
+ />
68
+
69
+ <Story
70
+ name="Error with Retry"
71
+ args={{
72
+ isLoading: false,
73
+ error: 'Network connection failed',
74
+ errorTitle: 'Connection Error',
75
+ showRetry: true,
76
+ onRetry: () => alert('Retrying...'),
77
+ }}
78
+ />
79
+
80
+ <Story
81
+ name="Content Loaded"
82
+ args={{
83
+ isLoading: false,
84
+ error: null,
85
+ }}
86
+ />
87
+
88
+ <Story name="Interactive Loading">
89
+ <div class="space-y-4">
90
+ <div class="flex gap-2">
91
+ <button
92
+ class="px-4 py-2 bg-brand-primary text-white rounded hover:bg-brand-primary"
93
+ onclick={simulateLoading}
94
+ >
95
+ Simulate Loading
96
+ </button>
97
+ <button
98
+ class="px-4 py-2 bg-accent-danger text-white rounded hover:bg-accent-danger"
99
+ onclick={simulateError}
100
+ >
101
+ Simulate Error
102
+ </button>
103
+ </div>
104
+
105
+ <PageLoader
106
+ isLoading={loading}
107
+ error={hasError ? 'Failed to load content' : null}
108
+ loadingMessage="Please wait..."
109
+ showRetry={true}
110
+ onRetry={simulateLoading}
111
+ >
112
+ <div class="p-8 bg-status-success-bg rounded-lg">
113
+ <h3 class="text-xl font-bold text-status-success-text">Success!</h3>
114
+ <p class="text-accent-success mt-2">Your content has loaded successfully.</p>
115
+ </div>
116
+ </PageLoader>
117
+ </div>
118
+ </Story>
119
+
120
+ <Story name="Different Heights">
121
+ <div class="space-y-8">
122
+ <div class="border rounded p-4">
123
+ <h4 class="font-semibold mb-2">Small (h-32)</h4>
124
+ <PageLoader isLoading={true} minHeight="h-32" />
125
+ </div>
126
+
127
+ <div class="border rounded p-4">
128
+ <h4 class="font-semibold mb-2">Medium (h-64 - default)</h4>
129
+ <PageLoader isLoading={true} />
130
+ </div>
131
+
132
+ <div class="border rounded p-4">
133
+ <h4 class="font-semibold mb-2">Large (h-96)</h4>
134
+ <PageLoader isLoading={true} minHeight="h-96" />
135
+ </div>
136
+ </div>
137
+ </Story>
@@ -1,62 +1,62 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import Spinner from "../../primitives/Spinner/Spinner.svelte";
4
- import Alert from "../../primitives/Alert/Alert.svelte";
5
- import Button from "../../primitives/Button/Button.svelte";
6
- import { typography } from '../../tokens/typography';
7
-
8
- const defaultLabels = {
9
- error: 'Error',
10
- tryAgain: 'Try again',
11
- };
12
-
13
- interface Props {
14
- isLoading?: boolean;
15
- error?: string | null;
16
- loadingMessage?: string;
17
- errorTitle?: string;
18
- showRetry?: boolean;
19
- onRetry?: () => void;
20
- minHeight?: string;
21
- children?: Snippet;
22
- labels?: Partial<typeof defaultLabels>;
23
- }
24
-
25
- let {
26
- isLoading = true,
27
- error = null,
28
- loadingMessage = "",
29
- errorTitle = undefined,
30
- showRetry = false,
31
- onRetry = () => {},
32
- minHeight = "h-64",
33
- children,
34
- labels: userLabels = {},
35
- }: Props = $props();
36
-
37
- let labels = $derived({ ...defaultLabels, ...userLabels });
38
- </script>
39
-
40
- {#if isLoading}
41
- <div class="flex items-center justify-center {minHeight}">
42
- <div class="text-center">
43
- <Spinner />
44
- {#if loadingMessage}
45
- <p class={`mt-4 ${typography.textMuted}`}>{loadingMessage}</p>
46
- {/if}
47
- </div>
48
- </div>
49
- {:else if error}
50
- <div class="p-4">
51
- <Alert type="danger" title={errorTitle ?? labels.error} message={error} />
52
- {#if showRetry}
53
- <div class="mt-4 text-center">
54
- <Button variant="link" onclick={onRetry}>
55
- {labels.tryAgain}
56
- </Button>
57
- </div>
58
- {/if}
59
- </div>
60
- {:else}
61
- {@render children?.()}
62
- {/if}
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import Spinner from "../../primitives/Spinner/Spinner.svelte";
4
+ import Alert from "../../primitives/Alert/Alert.svelte";
5
+ import Button from "../../primitives/Button/Button.svelte";
6
+ import { typography } from '../../tokens/typography';
7
+
8
+ const defaultLabels = {
9
+ error: 'Error',
10
+ tryAgain: 'Try again',
11
+ };
12
+
13
+ interface Props {
14
+ isLoading?: boolean;
15
+ error?: string | null;
16
+ loadingMessage?: string;
17
+ errorTitle?: string;
18
+ showRetry?: boolean;
19
+ onRetry?: () => void;
20
+ minHeight?: string;
21
+ children?: Snippet;
22
+ labels?: Partial<typeof defaultLabels>;
23
+ }
24
+
25
+ let {
26
+ isLoading = true,
27
+ error = null,
28
+ loadingMessage = "",
29
+ errorTitle = undefined,
30
+ showRetry = false,
31
+ onRetry = () => {},
32
+ minHeight = "h-64",
33
+ children,
34
+ labels: userLabels = {},
35
+ }: Props = $props();
36
+
37
+ let labels = $derived({ ...defaultLabels, ...userLabels });
38
+ </script>
39
+
40
+ {#if isLoading}
41
+ <div class="flex items-center justify-center {minHeight}">
42
+ <div class="text-center">
43
+ <Spinner />
44
+ {#if loadingMessage}
45
+ <p class={`mt-4 ${typography.textMuted}`}>{loadingMessage}</p>
46
+ {/if}
47
+ </div>
48
+ </div>
49
+ {:else if error}
50
+ <div class="p-4">
51
+ <Alert type="danger" title={errorTitle ?? labels.error} message={error} />
52
+ {#if showRetry}
53
+ <div class="mt-4 text-center">
54
+ <Button variant="link" onclick={onRetry}>
55
+ {labels.tryAgain}
56
+ </Button>
57
+ </div>
58
+ {/if}
59
+ </div>
60
+ {:else}
61
+ {@render children?.()}
62
+ {/if}