@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
@@ -1,57 +1,57 @@
1
- <script lang="ts">
2
- /**
3
- * AvatarButton Component
4
- * Clickable avatar/image trigger with opacity hover effect.
5
- *
6
- * Replaces: Button variant="avatar"
7
- */
8
- import { twMerge } from 'tailwind-merge';
9
- import type { Snippet } from 'svelte';
10
- import { buttonAvatarSizes } from '../../tokens/sizing.js';
11
-
12
- interface Props {
13
- /** Size variant */
14
- size?: 'sm' | 'md' | 'lg';
15
- /** Disabled state */
16
- disabled?: boolean;
17
- /** Content (typically an Avatar component or image) */
18
- children?: Snippet;
19
- /** Additional classes */
20
- class?: string;
21
- /** Click handler */
22
- onclick?: (e: MouseEvent) => void;
23
- [key: string]: unknown;
24
- }
25
-
26
- let {
27
- size = 'md',
28
- disabled = false,
29
- children,
30
- class: className = '',
31
- onclick,
32
- ...restProps
33
- }: Props = $props();
34
-
35
- const baseClasses = 'bg-transparent border-transparent rounded-lg focus:outline-hidden transition-all duration-150 ease-out select-none inline-flex items-center justify-center';
36
- const hoverClasses = 'hover:opacity-80';
37
- const disabledClasses = 'opacity-50 cursor-not-allowed';
38
-
39
- let sizeClass = $derived(buttonAvatarSizes[size] || buttonAvatarSizes.md);
40
-
41
- let classes = $derived(twMerge(
42
- baseClasses,
43
- sizeClass,
44
- disabled ? disabledClasses : `${hoverClasses} cursor-pointer active:scale-[0.97] active:opacity-90`,
45
- className
46
- ));
47
- </script>
48
-
49
- <button
50
- type="button"
51
- class={classes}
52
- {disabled}
53
- {onclick}
54
- {...restProps}
55
- >
56
- {#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
57
- </button>
1
+ <script lang="ts">
2
+ /**
3
+ * AvatarButton Component
4
+ * Clickable avatar/image trigger with opacity hover effect.
5
+ *
6
+ * Replaces: Button variant="avatar"
7
+ */
8
+ import { twMerge } from 'tailwind-merge';
9
+ import type { Snippet } from 'svelte';
10
+ import { buttonAvatarSizes } from '../../tokens/sizing.js';
11
+
12
+ interface Props {
13
+ /** Size variant */
14
+ size?: 'sm' | 'md' | 'lg';
15
+ /** Disabled state */
16
+ disabled?: boolean;
17
+ /** Content (typically an Avatar component or image) */
18
+ children?: Snippet;
19
+ /** Additional classes */
20
+ class?: string;
21
+ /** Click handler */
22
+ onclick?: (e: MouseEvent) => void;
23
+ [key: string]: unknown;
24
+ }
25
+
26
+ let {
27
+ size = 'md',
28
+ disabled = false,
29
+ children,
30
+ class: className = '',
31
+ onclick,
32
+ ...restProps
33
+ }: Props = $props();
34
+
35
+ const baseClasses = 'bg-transparent border-transparent rounded-lg focus:outline-hidden transition-all duration-150 ease-out select-none inline-flex items-center justify-center';
36
+ const hoverClasses = 'hover:opacity-80';
37
+ const disabledClasses = 'opacity-50 cursor-not-allowed';
38
+
39
+ let sizeClass = $derived(buttonAvatarSizes[size] || buttonAvatarSizes.md);
40
+
41
+ let classes = $derived(twMerge(
42
+ baseClasses,
43
+ sizeClass,
44
+ disabled ? disabledClasses : `${hoverClasses} cursor-pointer active:scale-[0.97] active:opacity-90`,
45
+ className
46
+ ));
47
+ </script>
48
+
49
+ <button
50
+ type="button"
51
+ class={classes}
52
+ {disabled}
53
+ {onclick}
54
+ {...restProps}
55
+ >
56
+ {#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
57
+ </button>
@@ -1,144 +1,144 @@
1
- import { render, screen } from '@testing-library/svelte';
2
- import userEvent from '@testing-library/user-event';
3
- import { describe, test, expect, vi } from 'vitest';
4
- import Badge from './Badge.svelte';
5
-
6
- describe('Badge Component Tests', () => {
7
- test('Renders with default props', () => {
8
- const { container } = render(Badge);
9
- const badge = container.querySelector('div');
10
- expect(badge).toBeInTheDocument();
11
- expect(badge).toHaveClass('inline-flex');
12
- expect(badge).toHaveClass('items-center');
13
- });
14
-
15
- test('Renders with size prop', () => {
16
- // Default md size renders with text classes
17
- const { container: mdContainer } = render(Badge, { size: 'md' });
18
- const mdBadge = mdContainer.querySelector('div');
19
- expect(mdBadge).toHaveClass('font-medium');
20
- });
21
-
22
- test('Accepts size prop without error', () => {
23
- // Test that various sizes render without errors
24
- expect(() => render(Badge, { size: 'xs' })).not.toThrow();
25
- expect(() => render(Badge, { size: 'sm' })).not.toThrow();
26
- expect(() => render(Badge, { size: 'md' })).not.toThrow();
27
- expect(() => render(Badge, { size: 'lg' })).not.toThrow();
28
- });
29
-
30
- test('Accepts large prop without error', () => {
31
- expect(() => render(Badge, { large: true })).not.toThrow();
32
- });
33
-
34
- test('Handles variant props for colors', () => {
35
- // neutral variant (default)
36
- const { container: neutralContainer } = render(Badge, { variant: 'neutral' });
37
- const neutralBadge = neutralContainer.querySelector('div');
38
- expect(neutralBadge).toHaveClass('bg-gray-100');
39
-
40
- // success variant
41
- const { container: successContainer } = render(Badge, { variant: 'success' });
42
- const successBadge = successContainer.querySelector('div');
43
- expect(successBadge).toHaveClass('bg-green-100');
44
-
45
- // warning variant
46
- const { container: warningContainer } = render(Badge, { variant: 'warning' });
47
- const warningBadge = warningContainer.querySelector('div');
48
- expect(warningBadge).toHaveClass('bg-yellow-100');
49
-
50
- // error variant
51
- const { container: errorContainer } = render(Badge, { variant: 'error' });
52
- const errorBadge = errorContainer.querySelector('div');
53
- expect(errorBadge).toHaveClass('bg-red-100');
54
-
55
- // info variant
56
- const { container: infoContainer } = render(Badge, { variant: 'info' });
57
- const infoBadge = infoContainer.querySelector('div');
58
- expect(infoBadge).toHaveClass('bg-blue-100');
59
- });
60
-
61
- test('Handles case-insensitive variants', () => {
62
- const { container: upperContainer } = render(Badge, { variant: 'SUCCESS' });
63
- const upperBadge = upperContainer.querySelector('div');
64
- expect(upperBadge).toHaveClass('bg-green-100');
65
-
66
- const { container: mixedContainer } = render(Badge, { variant: 'Warning' });
67
- const mixedBadge = mixedContainer.querySelector('div');
68
- expect(mixedBadge).toHaveClass('bg-yellow-100');
69
- });
70
-
71
- test('Falls back to neutral variant for unknown variants', () => {
72
- const { container } = render(Badge, { variant: 'unknown' });
73
- const badge = container.querySelector('div');
74
- expect(badge).toHaveClass('bg-gray-100');
75
- });
76
-
77
- test('Shows status dot when showDot is true', () => {
78
- const { container } = render(Badge, { showDot: true });
79
- const dot = container.querySelector('span.rounded-full');
80
- expect(dot).toBeInTheDocument();
81
- expect(dot).toHaveClass('w-1.5');
82
- expect(dot).toHaveClass('h-1.5');
83
- });
84
-
85
- test('Does not show status dot by default', () => {
86
- const { container } = render(Badge, { showDot: false });
87
- const dot = container.querySelector('span.rounded-full');
88
- expect(dot).not.toBeInTheDocument();
89
- });
90
-
91
- test('Renders as pill shape', () => {
92
- const { container } = render(Badge, { pill: true });
93
- const badge = container.querySelector('div');
94
- expect(badge).toHaveClass('rounded-full');
95
- expect(badge).toHaveClass('min-w-5');
96
- });
97
-
98
- test('Renders with rounded shape by default', () => {
99
- const { container } = render(Badge, { shape: 'rounded' });
100
- const badge = container.querySelector('div');
101
- expect(badge).toHaveClass('rounded');
102
- });
103
-
104
- test('Renders with pill shape option', () => {
105
- const { container } = render(Badge, { shape: 'pill' });
106
- const badge = container.querySelector('div');
107
- expect(badge).toHaveClass('rounded-full');
108
- });
109
-
110
- test('Applies custom className', () => {
111
- const { container } = render(Badge, { className: 'custom-class' });
112
- const badge = container.querySelector('div');
113
- expect(badge).toHaveClass('custom-class');
114
- });
115
-
116
- test('Applies custom text color', () => {
117
- const { container } = render(Badge, { textColor: '#ff0000' });
118
- const badge = container.querySelector('div');
119
- // Browser may convert hex to rgb
120
- expect(badge.style.color).toBeTruthy();
121
- });
122
-
123
- test('Applies custom background color', () => {
124
- const { container } = render(Badge, { bgColor: '#00ff00' });
125
- const badge = container.querySelector('div');
126
- // Browser may convert hex to rgb
127
- expect(badge.style.backgroundColor).toBeTruthy();
128
- });
129
-
130
- test('Dispatches click event', async () => {
131
- const user = userEvent.setup();
132
- const onClickMock = vi.fn();
133
- const { container } = render(Badge, { onclick: onClickMock });
134
- const badge = container.querySelector('div');
135
- await user.click(badge);
136
- expect(onClickMock).toHaveBeenCalledOnce();
137
- });
138
-
139
- test('Gap class is present for icon spacing', () => {
140
- const { container } = render(Badge);
141
- const badge = container.querySelector('div');
142
- expect(badge).toHaveClass('gap-1.5');
143
- });
144
- });
1
+ import { render, screen } from '@testing-library/svelte';
2
+ import userEvent from '@testing-library/user-event';
3
+ import { describe, test, expect, vi } from 'vitest';
4
+ import Badge from './Badge.svelte';
5
+
6
+ describe('Badge Component Tests', () => {
7
+ test('Renders with default props', () => {
8
+ const { container } = render(Badge);
9
+ const badge = container.querySelector('div');
10
+ expect(badge).toBeInTheDocument();
11
+ expect(badge).toHaveClass('inline-flex');
12
+ expect(badge).toHaveClass('items-center');
13
+ });
14
+
15
+ test('Renders with size prop', () => {
16
+ // Default md size renders with text classes
17
+ const { container: mdContainer } = render(Badge, { size: 'md' });
18
+ const mdBadge = mdContainer.querySelector('div');
19
+ expect(mdBadge).toHaveClass('font-medium');
20
+ });
21
+
22
+ test('Accepts size prop without error', () => {
23
+ // Test that various sizes render without errors
24
+ expect(() => render(Badge, { size: 'xs' })).not.toThrow();
25
+ expect(() => render(Badge, { size: 'sm' })).not.toThrow();
26
+ expect(() => render(Badge, { size: 'md' })).not.toThrow();
27
+ expect(() => render(Badge, { size: 'lg' })).not.toThrow();
28
+ });
29
+
30
+ test('Accepts large prop without error', () => {
31
+ expect(() => render(Badge, { large: true })).not.toThrow();
32
+ });
33
+
34
+ test('Handles variant props for colors', () => {
35
+ // neutral variant (default)
36
+ const { container: neutralContainer } = render(Badge, { variant: 'neutral' });
37
+ const neutralBadge = neutralContainer.querySelector('div');
38
+ expect(neutralBadge).toHaveClass('bg-gray-100');
39
+
40
+ // success variant
41
+ const { container: successContainer } = render(Badge, { variant: 'success' });
42
+ const successBadge = successContainer.querySelector('div');
43
+ expect(successBadge).toHaveClass('bg-green-100');
44
+
45
+ // warning variant
46
+ const { container: warningContainer } = render(Badge, { variant: 'warning' });
47
+ const warningBadge = warningContainer.querySelector('div');
48
+ expect(warningBadge).toHaveClass('bg-yellow-100');
49
+
50
+ // error variant
51
+ const { container: errorContainer } = render(Badge, { variant: 'error' });
52
+ const errorBadge = errorContainer.querySelector('div');
53
+ expect(errorBadge).toHaveClass('bg-red-100');
54
+
55
+ // info variant
56
+ const { container: infoContainer } = render(Badge, { variant: 'info' });
57
+ const infoBadge = infoContainer.querySelector('div');
58
+ expect(infoBadge).toHaveClass('bg-blue-100');
59
+ });
60
+
61
+ test('Handles case-insensitive variants', () => {
62
+ const { container: upperContainer } = render(Badge, { variant: 'SUCCESS' });
63
+ const upperBadge = upperContainer.querySelector('div');
64
+ expect(upperBadge).toHaveClass('bg-green-100');
65
+
66
+ const { container: mixedContainer } = render(Badge, { variant: 'Warning' });
67
+ const mixedBadge = mixedContainer.querySelector('div');
68
+ expect(mixedBadge).toHaveClass('bg-yellow-100');
69
+ });
70
+
71
+ test('Falls back to neutral variant for unknown variants', () => {
72
+ const { container } = render(Badge, { variant: 'unknown' });
73
+ const badge = container.querySelector('div');
74
+ expect(badge).toHaveClass('bg-gray-100');
75
+ });
76
+
77
+ test('Shows status dot when showDot is true', () => {
78
+ const { container } = render(Badge, { showDot: true });
79
+ const dot = container.querySelector('span.rounded-full');
80
+ expect(dot).toBeInTheDocument();
81
+ expect(dot).toHaveClass('w-1.5');
82
+ expect(dot).toHaveClass('h-1.5');
83
+ });
84
+
85
+ test('Does not show status dot by default', () => {
86
+ const { container } = render(Badge, { showDot: false });
87
+ const dot = container.querySelector('span.rounded-full');
88
+ expect(dot).not.toBeInTheDocument();
89
+ });
90
+
91
+ test('Renders as pill shape', () => {
92
+ const { container } = render(Badge, { pill: true });
93
+ const badge = container.querySelector('div');
94
+ expect(badge).toHaveClass('rounded-full');
95
+ expect(badge).toHaveClass('min-w-5');
96
+ });
97
+
98
+ test('Renders with rounded shape by default', () => {
99
+ const { container } = render(Badge, { shape: 'rounded' });
100
+ const badge = container.querySelector('div');
101
+ expect(badge).toHaveClass('rounded');
102
+ });
103
+
104
+ test('Renders with pill shape option', () => {
105
+ const { container } = render(Badge, { shape: 'pill' });
106
+ const badge = container.querySelector('div');
107
+ expect(badge).toHaveClass('rounded-full');
108
+ });
109
+
110
+ test('Applies custom className', () => {
111
+ const { container } = render(Badge, { className: 'custom-class' });
112
+ const badge = container.querySelector('div');
113
+ expect(badge).toHaveClass('custom-class');
114
+ });
115
+
116
+ test('Applies custom text color', () => {
117
+ const { container } = render(Badge, { textColor: '#ff0000' });
118
+ const badge = container.querySelector('div');
119
+ // Browser may convert hex to rgb
120
+ expect(badge.style.color).toBeTruthy();
121
+ });
122
+
123
+ test('Applies custom background color', () => {
124
+ const { container } = render(Badge, { bgColor: '#00ff00' });
125
+ const badge = container.querySelector('div');
126
+ // Browser may convert hex to rgb
127
+ expect(badge.style.backgroundColor).toBeTruthy();
128
+ });
129
+
130
+ test('Dispatches click event', async () => {
131
+ const user = userEvent.setup();
132
+ const onClickMock = vi.fn();
133
+ const { container } = render(Badge, { onclick: onClickMock });
134
+ const badge = container.querySelector('div');
135
+ await user.click(badge);
136
+ expect(onClickMock).toHaveBeenCalledOnce();
137
+ });
138
+
139
+ test('Gap class is present for icon spacing', () => {
140
+ const { container } = render(Badge);
141
+ const badge = container.querySelector('div');
142
+ expect(badge).toHaveClass('gap-1.5');
143
+ });
144
+ });
@@ -1,86 +1,86 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
-
4
-
5
- import Badge from "./Badge.svelte";
6
-
7
- const { Story } = defineMeta({
8
- title: "Components/Badge",
9
- component: Badge,
10
- argTypes: {
11
- size: { control: "select", options: ["small", "medium", "large"] },
12
- variant: {
13
- control: "select",
14
- options: [
15
- "host",
16
- "headliner",
17
- "feature",
18
- "special-guest",
19
- "opener",
20
- "guest",
21
- "teacher",
22
- "assistant",
23
- "success",
24
- "warning",
25
- "error",
26
- "info",
27
- "neutral",
28
- ],
29
- },
30
- className: { control: "text" },
31
- },
32
- });
33
-
34
- </script>
35
-
36
-
37
- <!-- Size Variants -->
38
- <Story name="Small Badge">
39
- <Badge size="small" variant="info">Small</Badge>
40
- </Story>
41
-
42
- <Story name="Medium Badge">
43
- <Badge size="medium" variant="info">Medium</Badge>
44
- </Story>
45
-
46
- <Story name="Large Badge">
47
- <Badge size="large" variant="info">Large</Badge>
48
- </Story>
49
-
50
- <!-- Status Variants -->
51
- <Story name="Success Status">
52
- <Badge size="large" variant="success">Feb 1, 2024</Badge>
53
- </Story>
54
-
55
- <Story name="Warning Status">
56
- <Badge size="large" variant="warning">Pending</Badge>
57
- </Story>
58
-
59
- <Story name="Error Status">
60
- <Badge size="large" variant="error">Declined</Badge>
61
- </Story>
62
-
63
- <!-- Role Variants -->
64
- <Story name="Role Variants">
65
- <div class="flex gap-2 flex-wrap">
66
- <Badge variant="host">Host</Badge>
67
- <Badge variant="headliner">Headliner</Badge>
68
- <Badge variant="feature">Feature</Badge>
69
- <Badge variant="special-guest">Special Guest</Badge>
70
- <Badge variant="opener">Opener</Badge>
71
- <Badge variant="guest">Guest</Badge>
72
- <Badge variant="teacher">Teacher</Badge>
73
- <Badge variant="assistant">Assistant</Badge>
74
- </div>
75
- </Story>
76
-
77
- <!-- All Status Variants -->
78
- <Story name="All Status Variants">
79
- <div class="flex gap-2 flex-wrap">
80
- <Badge variant="success">Success</Badge>
81
- <Badge variant="warning">Warning</Badge>
82
- <Badge variant="error">Error</Badge>
83
- <Badge variant="info">Info</Badge>
84
- <Badge variant="neutral">Neutral</Badge>
85
- </div>
86
- </Story>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+
4
+
5
+ import Badge from "./Badge.svelte";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Components/Badge",
9
+ component: Badge,
10
+ argTypes: {
11
+ size: { control: "select", options: ["small", "medium", "large"] },
12
+ variant: {
13
+ control: "select",
14
+ options: [
15
+ "host",
16
+ "headliner",
17
+ "feature",
18
+ "special-guest",
19
+ "opener",
20
+ "guest",
21
+ "teacher",
22
+ "assistant",
23
+ "success",
24
+ "warning",
25
+ "error",
26
+ "info",
27
+ "neutral",
28
+ ],
29
+ },
30
+ className: { control: "text" },
31
+ },
32
+ });
33
+
34
+ </script>
35
+
36
+
37
+ <!-- Size Variants -->
38
+ <Story name="Small Badge">
39
+ <Badge size="small" variant="info">Small</Badge>
40
+ </Story>
41
+
42
+ <Story name="Medium Badge">
43
+ <Badge size="medium" variant="info">Medium</Badge>
44
+ </Story>
45
+
46
+ <Story name="Large Badge">
47
+ <Badge size="large" variant="info">Large</Badge>
48
+ </Story>
49
+
50
+ <!-- Status Variants -->
51
+ <Story name="Success Status">
52
+ <Badge size="large" variant="success">Feb 1, 2024</Badge>
53
+ </Story>
54
+
55
+ <Story name="Warning Status">
56
+ <Badge size="large" variant="warning">Pending</Badge>
57
+ </Story>
58
+
59
+ <Story name="Error Status">
60
+ <Badge size="large" variant="error">Declined</Badge>
61
+ </Story>
62
+
63
+ <!-- Role Variants -->
64
+ <Story name="Role Variants">
65
+ <div class="flex gap-2 flex-wrap">
66
+ <Badge variant="host">Host</Badge>
67
+ <Badge variant="headliner">Headliner</Badge>
68
+ <Badge variant="feature">Feature</Badge>
69
+ <Badge variant="special-guest">Special Guest</Badge>
70
+ <Badge variant="opener">Opener</Badge>
71
+ <Badge variant="guest">Guest</Badge>
72
+ <Badge variant="teacher">Teacher</Badge>
73
+ <Badge variant="assistant">Assistant</Badge>
74
+ </div>
75
+ </Story>
76
+
77
+ <!-- All Status Variants -->
78
+ <Story name="All Status Variants">
79
+ <div class="flex gap-2 flex-wrap">
80
+ <Badge variant="success">Success</Badge>
81
+ <Badge variant="warning">Warning</Badge>
82
+ <Badge variant="error">Error</Badge>
83
+ <Badge variant="info">Info</Badge>
84
+ <Badge variant="neutral">Neutral</Badge>
85
+ </div>
86
+ </Story>