@getmicdrop/svelte-components 5.17.1 → 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 (382) 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/forms/createFormStore.svelte.js +1 -0
  39. package/dist/forms/createFormStore.svelte.spec.d.ts +2 -0
  40. package/dist/forms/createFormStore.svelte.spec.d.ts.map +1 -0
  41. package/dist/forms/createFormStore.svelte.spec.js +388 -0
  42. package/dist/index.js +57 -57
  43. package/dist/index.spec.js +369 -369
  44. package/dist/patterns/chat/ChatActivityNotice.spec.d.ts +2 -0
  45. package/dist/patterns/chat/ChatActivityNotice.spec.d.ts.map +1 -0
  46. package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -0
  47. package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
  48. package/dist/patterns/chat/ChatBubble.spec.d.ts +2 -0
  49. package/dist/patterns/chat/ChatBubble.spec.d.ts.map +1 -0
  50. package/dist/patterns/chat/ChatBubble.spec.js +91 -0
  51. package/dist/patterns/chat/ChatBubble.svelte +95 -95
  52. package/dist/patterns/chat/ChatContainer.spec.d.ts +2 -0
  53. package/dist/patterns/chat/ChatContainer.spec.d.ts.map +1 -0
  54. package/dist/patterns/chat/ChatContainer.spec.js +30 -0
  55. package/dist/patterns/chat/ChatContainer.svelte +46 -46
  56. package/dist/patterns/chat/ChatDateDivider.spec.d.ts +2 -0
  57. package/dist/patterns/chat/ChatDateDivider.spec.d.ts.map +1 -0
  58. package/dist/patterns/chat/ChatDateDivider.spec.js +30 -0
  59. package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
  60. package/dist/patterns/chat/ChatInvitationBubble.spec.d.ts +2 -0
  61. package/dist/patterns/chat/ChatInvitationBubble.spec.d.ts.map +1 -0
  62. package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -0
  63. package/dist/patterns/chat/ChatInvitationBubble.svelte +37 -37
  64. package/dist/patterns/chat/ChatInvitationNotice.spec.d.ts +2 -0
  65. package/dist/patterns/chat/ChatInvitationNotice.spec.d.ts.map +1 -0
  66. package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -0
  67. package/dist/patterns/chat/ChatInvitationNotice.svelte +27 -27
  68. package/dist/patterns/chat/ChatMessageGroup.spec.d.ts +2 -0
  69. package/dist/patterns/chat/ChatMessageGroup.spec.d.ts.map +1 -0
  70. package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -0
  71. package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
  72. package/dist/patterns/chat/ChatSlotUpdate.spec.d.ts +2 -0
  73. package/dist/patterns/chat/ChatSlotUpdate.spec.d.ts.map +1 -0
  74. package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -0
  75. package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
  76. package/dist/patterns/chat/ChatStatusBadge.spec.d.ts +2 -0
  77. package/dist/patterns/chat/ChatStatusBadge.spec.d.ts.map +1 -0
  78. package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -0
  79. package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
  80. package/dist/patterns/chat/ChatStatusTransition.spec.d.ts +2 -0
  81. package/dist/patterns/chat/ChatStatusTransition.spec.d.ts.map +1 -0
  82. package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -0
  83. package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
  84. package/dist/patterns/chat/ChatTextBubble.spec.d.ts +2 -0
  85. package/dist/patterns/chat/ChatTextBubble.spec.d.ts.map +1 -0
  86. package/dist/patterns/chat/ChatTextBubble.spec.js +35 -0
  87. package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
  88. package/dist/patterns/chat/index.js +22 -22
  89. package/dist/patterns/data/DataGrid.svelte +45 -45
  90. package/dist/patterns/data/DataList.svelte +24 -24
  91. package/dist/patterns/data/DataTable.spec.js +61 -0
  92. package/dist/patterns/data/DataTable.svelte +36 -36
  93. package/dist/patterns/forms/FormActions.spec.js +95 -95
  94. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  95. package/dist/patterns/forms/FormActions.svelte +46 -46
  96. package/dist/patterns/forms/FormGrid.spec.js +34 -0
  97. package/dist/patterns/forms/FormGrid.svelte +33 -33
  98. package/dist/patterns/forms/FormSection.svelte +32 -32
  99. package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
  100. package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
  101. package/dist/patterns/index.js +21 -21
  102. package/dist/patterns/layout/Sidebar.spec.js +240 -1
  103. package/dist/patterns/layout/Sidebar.svelte +39 -39
  104. package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -0
  105. package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts +23 -0
  106. package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts.map +1 -0
  107. package/dist/patterns/layout/index.js +29 -29
  108. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  109. package/dist/patterns/navigation/BottomNav.svelte +74 -74
  110. package/dist/patterns/navigation/Header.spec.js +123 -0
  111. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  112. package/dist/patterns/navigation/Header.svelte +251 -251
  113. package/dist/patterns/page/PageHeader.svelte +18 -18
  114. package/dist/patterns/page/PageLayout.svelte +40 -40
  115. package/dist/patterns/page/PageLoader.spec.js +57 -57
  116. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  117. package/dist/patterns/page/PageLoader.svelte +24 -24
  118. package/dist/patterns/page/SectionHeader.svelte +29 -29
  119. package/dist/presets/badges.js +112 -112
  120. package/dist/presets/buttons.js +76 -76
  121. package/dist/presets/index.js +9 -9
  122. package/dist/primitives/Accordion/Accordion.spec.js +112 -2
  123. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  124. package/dist/primitives/Accordion/Accordion.svelte +42 -42
  125. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  126. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -0
  127. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte.d.ts +7 -0
  128. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte.d.ts.map +1 -0
  129. package/dist/primitives/Alert/Alert.spec.js +173 -173
  130. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  131. package/dist/primitives/Alert/Alert.svelte +27 -27
  132. package/dist/primitives/Avatar/Avatar.spec.js +23 -0
  133. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  134. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  135. package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
  136. package/dist/primitives/Badges/Badge.spec.js +144 -144
  137. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  138. package/dist/primitives/Badges/Badge.svelte +99 -99
  139. package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -136
  140. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  141. package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
  142. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte +20 -0
  143. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte.d.ts +10 -0
  144. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte.d.ts.map +1 -0
  145. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
  146. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  147. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +99 -99
  148. package/dist/primitives/Button/Button.spec.js +225 -225
  149. package/dist/primitives/Button/Button.stories.svelte +76 -76
  150. package/dist/primitives/Button/Button.svelte +278 -278
  151. package/dist/primitives/Button/ButtonGroup.spec.d.ts +2 -0
  152. package/dist/primitives/Button/ButtonGroup.spec.d.ts.map +1 -0
  153. package/dist/primitives/Button/ButtonGroup.spec.js +44 -0
  154. package/dist/primitives/Button/ButtonGroup.svelte +50 -50
  155. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  156. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  157. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  158. package/dist/primitives/Card.spec.js +49 -49
  159. package/dist/primitives/Card.stories.svelte +22 -22
  160. package/dist/primitives/Card.svelte +28 -28
  161. package/dist/primitives/CardAction/CardAction.svelte +68 -68
  162. package/dist/primitives/Checkbox/Checkbox.spec.js +32 -0
  163. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  164. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  165. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  166. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  167. package/dist/primitives/DarkModeToggle.svelte +136 -136
  168. package/dist/primitives/Drawer/Drawer.spec.js +437 -0
  169. package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
  170. package/dist/primitives/Drawer/Drawer.svelte +224 -224
  171. package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -0
  172. package/dist/primitives/Drawer/DrawerTestWrapper.svelte.d.ts +26 -0
  173. package/dist/primitives/Drawer/DrawerTestWrapper.svelte.d.ts.map +1 -0
  174. package/dist/primitives/Dropdown/Dropdown.spec.js +116 -0
  175. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  176. package/dist/primitives/Dropdown/Dropdown.svelte +170 -170
  177. package/dist/primitives/Dropdown/DropdownDivider.spec.d.ts +2 -0
  178. package/dist/primitives/Dropdown/DropdownDivider.spec.d.ts.map +1 -0
  179. package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -0
  180. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
  181. package/dist/primitives/Dropdown/DropdownItem.spec.js +155 -1
  182. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  183. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -0
  184. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte.d.ts +17 -0
  185. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte.d.ts.map +1 -0
  186. package/dist/primitives/Helper/Helper.spec.d.ts +2 -0
  187. package/dist/primitives/Helper/Helper.spec.d.ts.map +1 -0
  188. package/dist/primitives/Helper/Helper.spec.js +57 -0
  189. package/dist/primitives/Helper/Helper.svelte +33 -33
  190. package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
  191. package/dist/primitives/Icons/ArrowRight.svelte +8 -8
  192. package/dist/primitives/Icons/Availability.svelte +14 -14
  193. package/dist/primitives/Icons/Back.svelte +14 -14
  194. package/dist/primitives/Icons/CheckCircle.svelte +6 -6
  195. package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
  196. package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
  197. package/dist/primitives/Icons/ChevronRight.svelte +4 -4
  198. package/dist/primitives/Icons/Copy.svelte +15 -15
  199. package/dist/primitives/Icons/Cross.svelte +5 -5
  200. package/dist/primitives/Icons/DownArrow.svelte +8 -8
  201. package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
  202. package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
  203. package/dist/primitives/Icons/Home.svelte +15 -15
  204. package/dist/primitives/Icons/Icon.spec.js +169 -169
  205. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  206. package/dist/primitives/Icons/Icon.svelte +52 -52
  207. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  208. package/dist/primitives/Icons/Info.svelte +7 -7
  209. package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
  210. package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
  211. package/dist/primitives/Icons/Message.svelte +15 -15
  212. package/dist/primitives/Icons/MoonIcon.svelte +5 -5
  213. package/dist/primitives/Icons/More.svelte +21 -21
  214. package/dist/primitives/Icons/MoreHori.spec.js +61 -61
  215. package/dist/primitives/Icons/MoreHori.svelte +22 -22
  216. package/dist/primitives/Icons/Notification.svelte +14 -14
  217. package/dist/primitives/Icons/Payment.svelte +14 -14
  218. package/dist/primitives/Icons/Profile.svelte +21 -21
  219. package/dist/primitives/Icons/Reload.svelte +29 -29
  220. package/dist/primitives/Icons/Shows.svelte +21 -21
  221. package/dist/primitives/Icons/Signout.svelte +21 -21
  222. package/dist/primitives/Icons/SunIcon.svelte +8 -8
  223. package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
  224. package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
  225. package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
  226. package/dist/primitives/Icons/WarningIcon.svelte +5 -5
  227. package/dist/primitives/Input/Input.spec.js +1235 -573
  228. package/dist/primitives/Input/Input.stories.svelte +139 -139
  229. package/dist/primitives/Input/Input.svelte +423 -423
  230. package/dist/primitives/Input/Select.spec.js +632 -218
  231. package/dist/primitives/Input/Select.stories.svelte +112 -112
  232. package/dist/primitives/Input/Select.svelte +252 -252
  233. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  234. package/dist/primitives/Input/Textarea.svelte +105 -105
  235. package/dist/primitives/Label/Label.spec.js +9 -0
  236. package/dist/primitives/Label/Label.svelte +37 -37
  237. package/dist/primitives/LandingButton/LandingButton.spec.d.ts +2 -0
  238. package/dist/primitives/LandingButton/LandingButton.spec.d.ts.map +1 -0
  239. package/dist/primitives/LandingButton/LandingButton.spec.js +61 -0
  240. package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
  241. package/dist/primitives/MenuItem/MenuItem.spec.d.ts +2 -0
  242. package/dist/primitives/MenuItem/MenuItem.spec.d.ts.map +1 -0
  243. package/dist/primitives/MenuItem/MenuItem.spec.js +130 -0
  244. package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
  245. package/dist/primitives/Modal/Modal.spec.js +314 -99
  246. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  247. package/dist/primitives/Modal/Modal.svelte +181 -181
  248. package/dist/primitives/NavItem/NavItem.spec.d.ts +2 -0
  249. package/dist/primitives/NavItem/NavItem.spec.d.ts.map +1 -0
  250. package/dist/primitives/NavItem/NavItem.spec.js +97 -0
  251. package/dist/primitives/NavItem/NavItem.svelte +75 -75
  252. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  253. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  254. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  255. package/dist/primitives/Radio/Radio.svelte +67 -67
  256. package/dist/primitives/SearchResultItem/SearchResultItem.spec.d.ts +2 -0
  257. package/dist/primitives/SearchResultItem/SearchResultItem.spec.d.ts.map +1 -0
  258. package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -0
  259. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
  260. package/dist/primitives/SidebarToggle/SidebarToggle.spec.d.ts +2 -0
  261. package/dist/primitives/SidebarToggle/SidebarToggle.spec.d.ts.map +1 -0
  262. package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -0
  263. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
  264. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  265. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  266. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  267. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  268. package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
  269. package/dist/primitives/Spinner/Spinner.spec.js +84 -71
  270. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  271. package/dist/primitives/Spinner/Spinner.svelte +20 -20
  272. package/dist/primitives/Tabs/TabItem.svelte +49 -49
  273. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  274. package/dist/primitives/Tabs/Tabs.svelte +137 -137
  275. package/dist/primitives/Toggle.spec.js +221 -146
  276. package/dist/primitives/Toggle.stories.svelte +92 -92
  277. package/dist/primitives/Toggle.svelte +141 -141
  278. package/dist/primitives/ToggleTestWrapper.svelte +30 -0
  279. package/dist/primitives/ToggleTestWrapper.svelte.d.ts +29 -0
  280. package/dist/primitives/ToggleTestWrapper.svelte.d.ts.map +1 -0
  281. package/dist/primitives/Tooltip/Tooltip.spec.d.ts +2 -0
  282. package/dist/primitives/Tooltip/Tooltip.spec.d.ts.map +1 -0
  283. package/dist/primitives/Tooltip/Tooltip.spec.js +126 -0
  284. package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
  285. package/dist/primitives/Typography/Typography.svelte +53 -53
  286. package/dist/primitives/ValidationError.spec.js +103 -103
  287. package/dist/primitives/ValidationError.stories.svelte +69 -69
  288. package/dist/primitives/ValidationError.svelte +29 -29
  289. package/dist/primitives/index.js +113 -113
  290. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  291. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  292. package/dist/recipes/CropImage/CropImage.svelte +241 -241
  293. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  294. package/dist/recipes/ImageUploader/ImageUploader.svelte +992 -992
  295. package/dist/recipes/SuperLogin/SuperLogin.spec.js +2 -2
  296. package/dist/recipes/SuperLogin/SuperLogin.svelte +1 -1
  297. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  298. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  299. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  300. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
  301. package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
  302. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  303. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
  304. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  305. package/dist/recipes/fields/FormField.svelte +58 -58
  306. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  307. package/dist/recipes/fields/SelectField.svelte +82 -82
  308. package/dist/recipes/fields/TextareaField.svelte +97 -97
  309. package/dist/recipes/fields/ToggleField.svelte +60 -60
  310. package/dist/recipes/fields/index.js +7 -7
  311. package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
  312. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  313. package/dist/recipes/inputs/MultiSelect.svelte +283 -283
  314. package/dist/recipes/inputs/OTPInput.spec.js +251 -251
  315. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  316. package/dist/recipes/inputs/OTPInput.svelte +117 -117
  317. package/dist/recipes/inputs/PasswordInput.svelte +22 -22
  318. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +131 -131
  319. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
  320. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +336 -336
  321. package/dist/recipes/inputs/Search.spec.js +66 -2
  322. package/dist/recipes/inputs/Search.svelte +102 -102
  323. package/dist/recipes/inputs/index.js +7 -7
  324. package/dist/recipes/modals/AlertModal.svelte +130 -130
  325. package/dist/recipes/modals/ConfirmationModal.spec.js +396 -206
  326. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  327. package/dist/recipes/modals/ConfirmationModal.svelte +162 -162
  328. package/dist/recipes/modals/InputModal.svelte +182 -182
  329. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  330. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  331. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  332. package/dist/recipes/modals/StatusModal.svelte +206 -206
  333. package/dist/services/EventService.js +79 -79
  334. package/dist/services/EventService.spec.js +217 -217
  335. package/dist/services/ShowService.js +144 -144
  336. package/dist/services/ShowService.spec.js +345 -345
  337. package/dist/stores/auth.svelte.spec.d.ts +2 -0
  338. package/dist/stores/auth.svelte.spec.d.ts.map +1 -0
  339. package/dist/stores/auth.svelte.spec.js +112 -0
  340. package/dist/stores/formDataStore.svelte.spec.d.ts +2 -0
  341. package/dist/stores/formDataStore.svelte.spec.d.ts.map +1 -0
  342. package/dist/stores/formDataStore.svelte.spec.js +150 -0
  343. package/dist/stores/formSave.svelte.spec.d.ts +2 -0
  344. package/dist/stores/formSave.svelte.spec.d.ts.map +1 -0
  345. package/dist/stores/formSave.svelte.spec.js +196 -0
  346. package/dist/stores/navigation.spec.d.ts +2 -0
  347. package/dist/stores/navigation.spec.d.ts.map +1 -0
  348. package/dist/stores/navigation.spec.js +53 -0
  349. package/dist/stores/toaster.js +13 -13
  350. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  351. package/dist/stories/ButtonAuditReview.svelte +427 -427
  352. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  353. package/dist/stories/PatternsGallery.svelte +206 -206
  354. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  355. package/dist/stories/PrimitivesGallery.svelte +756 -756
  356. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  357. package/dist/stories/RecipesGallery.svelte +454 -454
  358. package/dist/stories/button-audit-manifest.json +11186 -11186
  359. package/dist/tailwind/preset.cjs +82 -82
  360. package/dist/telemetry.js +402 -402
  361. package/dist/telemetry.server.js +212 -212
  362. package/dist/telemetry.server.spec.js +437 -437
  363. package/dist/telemetry.spec.js +1168 -1168
  364. package/dist/tokens/tokens.css +87 -87
  365. package/dist/tokens/typography-base.css +163 -163
  366. package/dist/tokens/utilities.css +353 -353
  367. package/dist/utils/apiConfig.js +117 -117
  368. package/dist/utils/apiConfig.spec.js +219 -219
  369. package/dist/utils/greetings.js +187 -187
  370. package/dist/utils/haptic.spec.d.ts +2 -0
  371. package/dist/utils/haptic.spec.d.ts.map +1 -0
  372. package/dist/utils/haptic.spec.js +153 -0
  373. package/dist/utils/imageOptimizer.spec.d.ts +2 -0
  374. package/dist/utils/imageOptimizer.spec.d.ts.map +1 -0
  375. package/dist/utils/imageOptimizer.spec.js +201 -0
  376. package/dist/utils/imageValidation.js +121 -121
  377. package/dist/utils/logger.spec.d.ts +2 -0
  378. package/dist/utils/logger.spec.d.ts.map +1 -0
  379. package/dist/utils/logger.spec.js +95 -0
  380. package/dist/utils/transitions.js +4 -4
  381. package/dist/utils/utils.js +693 -693
  382. package/package.json +292 -293
@@ -1,27 +1,27 @@
1
- <script lang="ts">
2
- /**
3
- * ChatDateDivider - Date separator for chat messages
4
- *
5
- * Displays a centered date label (Today, Yesterday, or formatted date)
6
- * to separate messages by day.
7
- */
8
- import { classNames } from '../../utils/utils.js';
9
-
10
- interface Props {
11
- /** Date label to display (e.g., "Today", "Yesterday", "Monday, Jan 15, 2024") */
12
- label: string;
13
- /** Additional CSS classes */
14
- className?: string;
15
- }
16
-
17
- let {
18
- label,
19
- className = '',
20
- }: Props = $props();
21
- </script>
22
-
23
- <div class={classNames('text-center py-2', className)}>
24
- <span class="text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 px-3 py-1 rounded-full">
25
- {label}
26
- </span>
27
- </div>
1
+ <script lang="ts">
2
+ /**
3
+ * ChatDateDivider - Date separator for chat messages
4
+ *
5
+ * Displays a centered date label (Today, Yesterday, or formatted date)
6
+ * to separate messages by day.
7
+ */
8
+ import { classNames } from '../../utils/utils.js';
9
+
10
+ interface Props {
11
+ /** Date label to display (e.g., "Today", "Yesterday", "Monday, Jan 15, 2024") */
12
+ label: string;
13
+ /** Additional CSS classes */
14
+ className?: string;
15
+ }
16
+
17
+ let {
18
+ label,
19
+ className = '',
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <div class={classNames('text-center py-2', className)}>
24
+ <span class="text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 px-3 py-1 rounded-full">
25
+ {label}
26
+ </span>
27
+ </div>
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChatInvitationBubble.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInvitationBubble.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/chat/ChatInvitationBubble.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { render, screen } from '@testing-library/svelte';
2
+ import { expect, describe, test } from 'vitest';
3
+ import ChatInvitationBubble from './ChatInvitationBubble.svelte';
4
+
5
+ describe('ChatInvitationBubble', () => {
6
+ test('renders performer name', () => {
7
+ render(ChatInvitationBubble, { props: { performerName: 'Alice' } });
8
+ expect(screen.getByText(/Invited Alice/i)).toBeInTheDocument();
9
+ });
10
+
11
+ test('has blue background', () => {
12
+ const { container } = render(ChatInvitationBubble, { props: { performerName: 'Bob' } });
13
+ expect(container.querySelector('[class*="blue"]')).toBeInTheDocument();
14
+ });
15
+
16
+ test('renders invitation icon', () => {
17
+ const { container } = render(ChatInvitationBubble, { props: { performerName: 'Test' } });
18
+ expect(container.querySelector('svg')).toBeInTheDocument();
19
+ });
20
+
21
+ test('outbound true applies rounded-br-sm', () => {
22
+ const { container } = render(ChatInvitationBubble, {
23
+ props: { performerName: 'Test', outbound: true }
24
+ });
25
+ expect(container.querySelector('.rounded-br-sm')).toBeInTheDocument();
26
+ });
27
+
28
+ test('outbound false applies rounded-bl-sm', () => {
29
+ const { container } = render(ChatInvitationBubble, {
30
+ props: { performerName: 'Test', outbound: false }
31
+ });
32
+ expect(container.querySelector('.rounded-bl-sm')).toBeInTheDocument();
33
+ });
34
+
35
+ test('default outbound is true', () => {
36
+ const { container } = render(ChatInvitationBubble, { props: { performerName: 'Test' } });
37
+ expect(container.querySelector('.rounded-br-sm')).toBeInTheDocument();
38
+ });
39
+
40
+ test('applies custom className', () => {
41
+ const { container } = render(ChatInvitationBubble, {
42
+ props: { performerName: 'Test', className: 'my-invite' }
43
+ });
44
+ expect(container.querySelector('.my-invite')).toBeInTheDocument();
45
+ });
46
+ });
@@ -1,37 +1,37 @@
1
- <script lang="ts">
2
- /**
3
- * ChatInvitationBubble - Invitation notification bubble
4
- *
5
- * Shows "Invited {performerName}" with send icon in a blue bubble.
6
- */
7
- import { classNames } from '../../utils/utils.js';
8
- import SendAltFilled from 'carbon-icons-svelte/lib/SendAltFilled.svelte';
9
-
10
- interface Props {
11
- /** Name of the performer who was invited */
12
- performerName: string;
13
- /** Whether this is outbound (right side) */
14
- outbound?: boolean;
15
- /** Additional CSS classes */
16
- className?: string;
17
- }
18
-
19
- let {
20
- performerName,
21
- outbound = true,
22
- className = '',
23
- }: Props = $props();
24
-
25
- let bubbleClasses = $derived(
26
- classNames(
27
- 'px-4 py-2.5 rounded-2xl text-sm bg-blue-600 text-white flex items-center gap-1.5',
28
- outbound ? 'rounded-br-sm' : 'rounded-bl-sm',
29
- className
30
- )
31
- );
32
- </script>
33
-
34
- <div class={bubbleClasses}>
35
- <SendAltFilled class="w-4 h-4" />
36
- Invited {performerName}
37
- </div>
1
+ <script lang="ts">
2
+ /**
3
+ * ChatInvitationBubble - Invitation notification bubble
4
+ *
5
+ * Shows "Invited {performerName}" with send icon in a blue bubble.
6
+ */
7
+ import { classNames } from '../../utils/utils.js';
8
+ import SendAltFilled from 'carbon-icons-svelte/lib/SendAltFilled.svelte';
9
+
10
+ interface Props {
11
+ /** Name of the performer who was invited */
12
+ performerName: string;
13
+ /** Whether this is outbound (right side) */
14
+ outbound?: boolean;
15
+ /** Additional CSS classes */
16
+ className?: string;
17
+ }
18
+
19
+ let {
20
+ performerName,
21
+ outbound = true,
22
+ className = '',
23
+ }: Props = $props();
24
+
25
+ let bubbleClasses = $derived(
26
+ classNames(
27
+ 'px-4 py-2.5 rounded-2xl text-sm bg-blue-600 text-white flex items-center gap-1.5',
28
+ outbound ? 'rounded-br-sm' : 'rounded-bl-sm',
29
+ className
30
+ )
31
+ );
32
+ </script>
33
+
34
+ <div class={bubbleClasses}>
35
+ <SendAltFilled class="w-4 h-4" />
36
+ Invited {performerName}
37
+ </div>
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChatInvitationNotice.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInvitationNotice.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/chat/ChatInvitationNotice.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { render, screen } from '@testing-library/svelte';
2
+ import { expect, describe, test } from 'vitest';
3
+ import ChatInvitationNotice from './ChatInvitationNotice.svelte';
4
+
5
+ describe('ChatInvitationNotice', () => {
6
+ test('renders performer name', () => {
7
+ render(ChatInvitationNotice, { props: { performerName: 'Alice' } });
8
+ expect(screen.getByText(/Invited Alice/i)).toBeInTheDocument();
9
+ });
10
+
11
+ test('has blue text color', () => {
12
+ const { container } = render(ChatInvitationNotice, { props: { performerName: 'Bob' } });
13
+ expect(container.querySelector('[class*="blue"]')).toBeInTheDocument();
14
+ });
15
+
16
+ test('renders icon', () => {
17
+ const { container } = render(ChatInvitationNotice, { props: { performerName: 'Test' } });
18
+ expect(container.querySelector('svg')).toBeInTheDocument();
19
+ });
20
+
21
+ test('has inline flex layout', () => {
22
+ const { container } = render(ChatInvitationNotice, { props: { performerName: 'Test' } });
23
+ expect(container.querySelector('.inline-flex, .flex')).toBeInTheDocument();
24
+ });
25
+
26
+ test('applies custom className', () => {
27
+ const { container } = render(ChatInvitationNotice, {
28
+ props: { performerName: 'Test', className: 'my-notice' }
29
+ });
30
+ expect(container.querySelector('.my-notice')).toBeInTheDocument();
31
+ });
32
+ });
@@ -1,27 +1,27 @@
1
- <script lang="ts">
2
- /**
3
- * ChatInvitationNotice - Inline invitation notice
4
- *
5
- * Shows "Invited {performerName}" with icon for activity notices.
6
- * Smaller/subtler than ChatInvitationBubble.
7
- */
8
- import { classNames } from '../../utils/utils.js';
9
- import SendAltFilled from 'carbon-icons-svelte/lib/SendAltFilled.svelte';
10
-
11
- interface Props {
12
- /** Name of the performer who was invited */
13
- performerName: string;
14
- /** Additional CSS classes */
15
- className?: string;
16
- }
17
-
18
- let {
19
- performerName,
20
- className = '',
21
- }: Props = $props();
22
- </script>
23
-
24
- <span class={classNames('text-xs font-medium text-blue-600 flex items-center gap-1', className)}>
25
- <SendAltFilled class="w-3 h-3" />
26
- Invited {performerName}
27
- </span>
1
+ <script lang="ts">
2
+ /**
3
+ * ChatInvitationNotice - Inline invitation notice
4
+ *
5
+ * Shows "Invited {performerName}" with icon for activity notices.
6
+ * Smaller/subtler than ChatInvitationBubble.
7
+ */
8
+ import { classNames } from '../../utils/utils.js';
9
+ import SendAltFilled from 'carbon-icons-svelte/lib/SendAltFilled.svelte';
10
+
11
+ interface Props {
12
+ /** Name of the performer who was invited */
13
+ performerName: string;
14
+ /** Additional CSS classes */
15
+ className?: string;
16
+ }
17
+
18
+ let {
19
+ performerName,
20
+ className = '',
21
+ }: Props = $props();
22
+ </script>
23
+
24
+ <span class={classNames('text-xs font-medium text-blue-600 flex items-center gap-1', className)}>
25
+ <SendAltFilled class="w-3 h-3" />
26
+ Invited {performerName}
27
+ </span>
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChatMessageGroup.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessageGroup.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/chat/ChatMessageGroup.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { render, screen } from '@testing-library/svelte';
2
+ import { expect, describe, test } from 'vitest';
3
+ import ChatMessageGroup from './ChatMessageGroup.svelte';
4
+
5
+ describe('ChatMessageGroup', () => {
6
+ test('renders with default inbound direction', () => {
7
+ const { container } = render(ChatMessageGroup);
8
+ const el = container.querySelector('.items-start');
9
+ expect(el).toBeInTheDocument();
10
+ });
11
+
12
+ test('outbound uses flex-row-reverse', () => {
13
+ const { container } = render(ChatMessageGroup, { props: { direction: 'outbound' } });
14
+ expect(container.querySelector('.flex-row-reverse')).toBeInTheDocument();
15
+ });
16
+
17
+ test('outbound uses items-end', () => {
18
+ const { container } = render(ChatMessageGroup, { props: { direction: 'outbound' } });
19
+ expect(container.querySelector('.items-end')).toBeInTheDocument();
20
+ });
21
+
22
+ test('shows sender name for inbound', () => {
23
+ render(ChatMessageGroup, { props: { direction: 'inbound', senderName: 'Bob' } });
24
+ expect(screen.getByText('Bob')).toBeInTheDocument();
25
+ });
26
+
27
+ test('hides sender name for outbound even when provided', () => {
28
+ const { container } = render(ChatMessageGroup, {
29
+ props: { direction: 'outbound', senderName: 'Bob' }
30
+ });
31
+ // senderName should not appear as standalone element for outbound
32
+ // but may appear in timestamp area
33
+ expect(container.firstElementChild).toBeInTheDocument();
34
+ });
35
+
36
+ test('shows timestamp', () => {
37
+ render(ChatMessageGroup, { props: { timestamp: '3:45 PM' } });
38
+ expect(screen.getByText(/3:45 PM/)).toBeInTheDocument();
39
+ });
40
+
41
+ test('outbound timestamp includes sender name', () => {
42
+ const { container } = render(ChatMessageGroup, {
43
+ props: { direction: 'outbound', senderName: 'Alice', timestamp: '3:45 PM' }
44
+ });
45
+ expect(container.textContent).toContain('Alice');
46
+ expect(container.textContent).toContain('3:45 PM');
47
+ });
48
+
49
+ test('hides timestamp when not provided', () => {
50
+ const { container } = render(ChatMessageGroup, { props: { direction: 'inbound' } });
51
+ expect(container.textContent.trim()).toBe('');
52
+ });
53
+
54
+ test('applies custom className', () => {
55
+ const { container } = render(ChatMessageGroup, { props: { className: 'my-group' } });
56
+ expect(container.querySelector('.my-group')).toBeInTheDocument();
57
+ });
58
+ });
@@ -1,57 +1,57 @@
1
- <script lang="ts">
2
- /**
3
- * ChatMessageGroup - Groups multiple items from the same sender
4
- *
5
- * Wraps avatar, sender name, multiple content items, and timestamp
6
- * for when a user sends multiple things at once (status change + message).
7
- */
8
- import type { Snippet } from 'svelte';
9
- import { classNames } from '../../utils/utils.js';
10
-
11
- interface Props {
12
- /** Sender name */
13
- senderName?: string;
14
- /** Timestamp to display */
15
- timestamp?: string;
16
- /** Direction - inbound (left) or outbound (right) */
17
- direction?: 'inbound' | 'outbound';
18
- /** Additional CSS classes */
19
- className?: string;
20
- /** Avatar slot */
21
- avatar?: Snippet;
22
- /** Content items (status badges, messages, etc.) */
23
- children?: Snippet;
24
- }
25
-
26
- let {
27
- senderName,
28
- timestamp,
29
- direction = 'inbound',
30
- className = '',
31
- avatar,
32
- children,
33
- }: Props = $props();
34
-
35
- let isOutbound = $derived(direction === 'outbound');
36
- </script>
37
-
38
- <div class={classNames('flex', isOutbound ? 'justify-end' : 'justify-start', className)}>
39
- <div class="flex items-end gap-2 max-w-[75%] {isOutbound ? 'flex-row-reverse' : ''}">
40
- {#if avatar && !isOutbound}
41
- {@render avatar()}
42
- {/if}
43
- <div class="flex flex-col {isOutbound ? 'items-end' : 'items-start'}">
44
- {#if senderName && !isOutbound}
45
- <span class="text-xs text-gray-500 mb-1 px-2">{senderName}</span>
46
- {/if}
47
- <div class="flex flex-col {isOutbound ? 'items-end' : 'items-start'} gap-1">
48
- {@render children?.()}
49
- </div>
50
- {#if timestamp}
51
- <span class="text-[10px] text-gray-400 mt-0.5 px-2">
52
- {#if isOutbound && senderName}{senderName} · {/if}{timestamp}
53
- </span>
54
- {/if}
55
- </div>
56
- </div>
57
- </div>
1
+ <script lang="ts">
2
+ /**
3
+ * ChatMessageGroup - Groups multiple items from the same sender
4
+ *
5
+ * Wraps avatar, sender name, multiple content items, and timestamp
6
+ * for when a user sends multiple things at once (status change + message).
7
+ */
8
+ import type { Snippet } from 'svelte';
9
+ import { classNames } from '../../utils/utils.js';
10
+
11
+ interface Props {
12
+ /** Sender name */
13
+ senderName?: string;
14
+ /** Timestamp to display */
15
+ timestamp?: string;
16
+ /** Direction - inbound (left) or outbound (right) */
17
+ direction?: 'inbound' | 'outbound';
18
+ /** Additional CSS classes */
19
+ className?: string;
20
+ /** Avatar slot */
21
+ avatar?: Snippet;
22
+ /** Content items (status badges, messages, etc.) */
23
+ children?: Snippet;
24
+ }
25
+
26
+ let {
27
+ senderName,
28
+ timestamp,
29
+ direction = 'inbound',
30
+ className = '',
31
+ avatar,
32
+ children,
33
+ }: Props = $props();
34
+
35
+ let isOutbound = $derived(direction === 'outbound');
36
+ </script>
37
+
38
+ <div class={classNames('flex', isOutbound ? 'justify-end' : 'justify-start', className)}>
39
+ <div class="flex items-end gap-2 max-w-[75%] {isOutbound ? 'flex-row-reverse' : ''}">
40
+ {#if avatar && !isOutbound}
41
+ {@render avatar()}
42
+ {/if}
43
+ <div class="flex flex-col {isOutbound ? 'items-end' : 'items-start'}">
44
+ {#if senderName && !isOutbound}
45
+ <span class="text-xs text-gray-500 mb-1 px-2">{senderName}</span>
46
+ {/if}
47
+ <div class="flex flex-col {isOutbound ? 'items-end' : 'items-start'} gap-1">
48
+ {@render children?.()}
49
+ </div>
50
+ {#if timestamp}
51
+ <span class="text-[10px] text-gray-400 mt-0.5 px-2">
52
+ {#if isOutbound && senderName}{senderName} · {/if}{timestamp}
53
+ </span>
54
+ {/if}
55
+ </div>
56
+ </div>
57
+ </div>
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChatSlotUpdate.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSlotUpdate.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/chat/ChatSlotUpdate.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ import { render } from '@testing-library/svelte';
2
+ import { expect, describe, test } from 'vitest';
3
+ import ChatSlotUpdate from './ChatSlotUpdate.svelte';
4
+
5
+ describe('ChatSlotUpdate', () => {
6
+ test('renders fromValue and toValue', () => {
7
+ const { container } = render(ChatSlotUpdate, {
8
+ props: { fromValue: '8:00 PM', toValue: '9:00 PM' }
9
+ });
10
+ expect(container.textContent).toContain('8:00 PM');
11
+ expect(container.textContent).toContain('9:00 PM');
12
+ });
13
+
14
+ test('renders arrow between values', () => {
15
+ const { container } = render(ChatSlotUpdate, {
16
+ props: { fromValue: 'Slot A', toValue: 'Slot B' }
17
+ });
18
+ expect(container.textContent).toContain('→');
19
+ });
20
+
21
+ test('bubble variant has rounded styling', () => {
22
+ const { container } = render(ChatSlotUpdate, {
23
+ props: { fromValue: 'A', toValue: 'B', variant: 'bubble' }
24
+ });
25
+ const el = container.querySelector('[class*="rounded"]');
26
+ expect(el).toBeInTheDocument();
27
+ });
28
+
29
+ test('bubble variant inbound has rounded-bl-sm', () => {
30
+ const { container } = render(ChatSlotUpdate, {
31
+ props: { fromValue: 'A', toValue: 'B', variant: 'bubble', outbound: false }
32
+ });
33
+ expect(container.querySelector('.rounded-bl-sm')).toBeInTheDocument();
34
+ });
35
+
36
+ test('bubble variant outbound has rounded-br-sm', () => {
37
+ const { container } = render(ChatSlotUpdate, {
38
+ props: { fromValue: 'A', toValue: 'B', variant: 'bubble', outbound: true }
39
+ });
40
+ expect(container.querySelector('.rounded-br-sm')).toBeInTheDocument();
41
+ });
42
+
43
+ test('inline variant has smaller styling', () => {
44
+ const { container } = render(ChatSlotUpdate, {
45
+ props: { fromValue: 'A', toValue: 'B', variant: 'inline' }
46
+ });
47
+ const el = container.querySelector('.text-xs');
48
+ expect(el).toBeInTheDocument();
49
+ });
50
+
51
+ test('default variant is bubble', () => {
52
+ const { container } = render(ChatSlotUpdate, {
53
+ props: { fromValue: 'A', toValue: 'B' }
54
+ });
55
+ const el = container.querySelector('[class*="rounded"]');
56
+ expect(el).toBeInTheDocument();
57
+ });
58
+
59
+ test('applies custom className', () => {
60
+ const { container } = render(ChatSlotUpdate, {
61
+ props: { fromValue: 'A', toValue: 'B', className: 'custom-slot' }
62
+ });
63
+ expect(container.querySelector('.custom-slot')).toBeInTheDocument();
64
+ });
65
+ });
@@ -1,46 +1,46 @@
1
- <script lang="ts">
2
- /**
3
- * ChatSlotUpdate - Slot/role change display
4
- *
5
- * Shows "{fromValue} → {toValue}" for role or slot changes.
6
- */
7
- import { classNames } from '../../utils/utils.js';
8
-
9
- interface Props {
10
- /** Original value */
11
- fromValue: string;
12
- /** New value */
13
- toValue: string;
14
- /** Style variant - bubble (in message context) or inline (in notice) */
15
- variant?: 'bubble' | 'inline';
16
- /** Whether this is outbound (right side) */
17
- outbound?: boolean;
18
- /** Additional CSS classes */
19
- className?: string;
20
- }
21
-
22
- let {
23
- fromValue,
24
- toValue,
25
- variant = 'bubble',
26
- outbound = false,
27
- className = '',
28
- }: Props = $props();
29
-
30
- let classes = $derived(
31
- variant === 'bubble'
32
- ? classNames(
33
- 'px-4 py-2.5 rounded-2xl text-sm bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400',
34
- outbound ? 'rounded-br-sm' : 'rounded-bl-sm',
35
- className
36
- )
37
- : classNames(
38
- 'text-xs font-medium text-gray-500 dark:text-gray-400',
39
- className
40
- )
41
- );
42
- </script>
43
-
44
- <span class={classes}>
45
- {fromValue} → {toValue}
46
- </span>
1
+ <script lang="ts">
2
+ /**
3
+ * ChatSlotUpdate - Slot/role change display
4
+ *
5
+ * Shows "{fromValue} → {toValue}" for role or slot changes.
6
+ */
7
+ import { classNames } from '../../utils/utils.js';
8
+
9
+ interface Props {
10
+ /** Original value */
11
+ fromValue: string;
12
+ /** New value */
13
+ toValue: string;
14
+ /** Style variant - bubble (in message context) or inline (in notice) */
15
+ variant?: 'bubble' | 'inline';
16
+ /** Whether this is outbound (right side) */
17
+ outbound?: boolean;
18
+ /** Additional CSS classes */
19
+ className?: string;
20
+ }
21
+
22
+ let {
23
+ fromValue,
24
+ toValue,
25
+ variant = 'bubble',
26
+ outbound = false,
27
+ className = '',
28
+ }: Props = $props();
29
+
30
+ let classes = $derived(
31
+ variant === 'bubble'
32
+ ? classNames(
33
+ 'px-4 py-2.5 rounded-2xl text-sm bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400',
34
+ outbound ? 'rounded-br-sm' : 'rounded-bl-sm',
35
+ className
36
+ )
37
+ : classNames(
38
+ 'text-xs font-medium text-gray-500 dark:text-gray-400',
39
+ className
40
+ )
41
+ );
42
+ </script>
43
+
44
+ <span class={classes}>
45
+ {fromValue} → {toValue}
46
+ </span>
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChatStatusBadge.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatStatusBadge.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/chat/ChatStatusBadge.spec.js"],"names":[],"mappings":""}