@getmicdrop/svelte-components 5.5.1 → 5.5.5

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 (472) hide show
  1. package/dist/calendar/AboutShow/AboutShow.spec.d.ts +2 -0
  2. package/dist/calendar/AboutShow/AboutShow.spec.d.ts.map +1 -0
  3. package/dist/calendar/AboutShow/AboutShow.spec.js +791 -0
  4. package/dist/calendar/AboutShow/AboutShow.svelte +172 -172
  5. package/dist/calendar/Calendar/MiniMonthCalendar.spec.d.ts +2 -0
  6. package/dist/calendar/Calendar/MiniMonthCalendar.spec.d.ts.map +1 -0
  7. package/dist/calendar/Calendar/MiniMonthCalendar.spec.js +1191 -0
  8. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
  9. package/dist/calendar/FAQs/FAQs.spec.d.ts +2 -0
  10. package/dist/calendar/FAQs/FAQs.spec.d.ts.map +1 -0
  11. package/dist/calendar/FAQs/FAQs.spec.js +238 -0
  12. package/dist/calendar/FAQs/FAQs.svelte +75 -75
  13. package/dist/calendar/MonthSwitcher/MonthSwitcher.spec.d.ts +2 -0
  14. package/dist/calendar/MonthSwitcher/MonthSwitcher.spec.d.ts.map +1 -0
  15. package/dist/calendar/MonthSwitcher/MonthSwitcher.spec.js +420 -0
  16. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
  17. package/dist/calendar/OrderSummary/OrderSummary.spec.d.ts +2 -0
  18. package/dist/calendar/OrderSummary/OrderSummary.spec.d.ts.map +1 -0
  19. package/dist/calendar/OrderSummary/OrderSummary.spec.js +808 -0
  20. package/dist/calendar/OrderSummary/OrderSummary.svelte +367 -367
  21. package/dist/calendar/PublicCard/PublicCard.spec.d.ts +2 -0
  22. package/dist/calendar/PublicCard/PublicCard.spec.d.ts.map +1 -0
  23. package/dist/calendar/PublicCard/PublicCard.spec.js +301 -0
  24. package/dist/calendar/PublicCard/PublicCard.svelte +134 -134
  25. package/dist/calendar/ShowCard/ShowCard.spec.d.ts +2 -0
  26. package/dist/calendar/ShowCard/ShowCard.spec.d.ts.map +1 -0
  27. package/dist/calendar/ShowCard/ShowCard.spec.js +714 -0
  28. package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
  29. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.d.ts +2 -0
  30. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.d.ts.map +1 -0
  31. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.js +241 -0
  32. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
  33. package/dist/components/Layout/Grid.svelte +4 -4
  34. package/dist/components/Layout/Section.spec.d.ts +2 -0
  35. package/dist/components/Layout/Section.spec.d.ts.map +1 -0
  36. package/dist/components/Layout/Section.spec.js +149 -0
  37. package/dist/components/Layout/Section.svelte +80 -80
  38. package/dist/components/Layout/Sidebar.spec.d.ts +2 -0
  39. package/dist/components/Layout/Sidebar.spec.d.ts.map +1 -0
  40. package/dist/components/Layout/Sidebar.spec.js +186 -0
  41. package/dist/components/Layout/Sidebar.svelte +108 -108
  42. package/dist/components/Layout/Stack.spec.js +3 -3
  43. package/dist/components/Layout/Stack.svelte +6 -6
  44. package/dist/constants/formOptions.spec.js +9 -5
  45. package/dist/constants/validation.js +91 -91
  46. package/dist/constants/validation.spec.js +64 -64
  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 +124 -2
  50. package/dist/datetime/parse.js +1 -1
  51. package/dist/forms/createFieldTracker.spec.d.ts +2 -0
  52. package/dist/forms/createFieldTracker.spec.d.ts.map +1 -0
  53. package/dist/forms/createFieldTracker.spec.js +343 -0
  54. package/dist/forms/createFormStore.spec.d.ts +2 -0
  55. package/dist/forms/createFormStore.spec.d.ts.map +1 -0
  56. package/dist/forms/createFormStore.spec.js +689 -0
  57. package/dist/forms/createFormStore.svelte.js +0 -1
  58. package/dist/index.d.ts +5 -112
  59. package/dist/index.js +40 -225
  60. package/dist/patterns/data/DataGrid.spec.d.ts +2 -0
  61. package/dist/patterns/data/DataGrid.spec.d.ts.map +1 -0
  62. package/dist/patterns/data/DataGrid.spec.js +159 -0
  63. package/dist/patterns/data/DataGrid.svelte +45 -45
  64. package/dist/patterns/data/DataList.spec.d.ts +2 -0
  65. package/dist/patterns/data/DataList.spec.d.ts.map +1 -0
  66. package/dist/patterns/data/DataList.spec.js +158 -0
  67. package/dist/patterns/data/DataList.svelte +24 -24
  68. package/dist/patterns/data/DataTable.spec.d.ts +2 -0
  69. package/dist/patterns/data/DataTable.spec.d.ts.map +1 -0
  70. package/dist/patterns/data/DataTable.spec.js +196 -0
  71. package/dist/patterns/data/DataTable.svelte +36 -36
  72. package/dist/patterns/forms/FormActions.spec.js +95 -88
  73. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  74. package/dist/patterns/forms/FormActions.svelte +46 -46
  75. package/dist/patterns/forms/FormGrid.spec.d.ts +2 -0
  76. package/dist/patterns/forms/FormGrid.spec.d.ts.map +1 -0
  77. package/dist/patterns/forms/FormGrid.spec.js +125 -0
  78. package/dist/patterns/forms/FormGrid.svelte +33 -33
  79. package/dist/patterns/forms/FormSection.spec.d.ts +2 -0
  80. package/dist/patterns/forms/FormSection.spec.d.ts.map +1 -0
  81. package/dist/patterns/forms/FormSection.spec.js +153 -0
  82. package/dist/patterns/forms/FormSection.svelte +32 -32
  83. package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
  84. package/dist/patterns/forms/FormValidationSummary.svelte +33 -33
  85. package/dist/patterns/layout/Sidebar.spec.d.ts +2 -0
  86. package/dist/patterns/layout/Sidebar.spec.d.ts.map +1 -0
  87. package/dist/patterns/layout/Sidebar.spec.js +159 -0
  88. package/dist/patterns/layout/Sidebar.svelte +39 -39
  89. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  90. package/dist/patterns/navigation/BottomNav.svelte +20 -20
  91. package/dist/patterns/navigation/Header.spec.js +33 -24
  92. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  93. package/dist/patterns/navigation/Header.svelte +193 -193
  94. package/dist/patterns/page/PageHeader.spec.d.ts +2 -0
  95. package/dist/patterns/page/PageHeader.spec.d.ts.map +1 -0
  96. package/dist/patterns/page/PageHeader.spec.js +167 -0
  97. package/dist/patterns/page/PageHeader.svelte +18 -18
  98. package/dist/patterns/page/PageLayout.spec.d.ts +2 -0
  99. package/dist/patterns/page/PageLayout.spec.d.ts.map +1 -0
  100. package/dist/patterns/page/PageLayout.spec.js +145 -0
  101. package/dist/patterns/page/PageLayout.svelte +40 -40
  102. package/dist/patterns/page/PageLoader.spec.js +57 -54
  103. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  104. package/dist/patterns/page/PageLoader.svelte +24 -24
  105. package/dist/patterns/page/SectionHeader.spec.d.ts +2 -0
  106. package/dist/patterns/page/SectionHeader.spec.d.ts.map +1 -0
  107. package/dist/patterns/page/SectionHeader.spec.js +197 -0
  108. package/dist/patterns/page/SectionHeader.svelte +29 -29
  109. package/dist/presets/badges.js +112 -112
  110. package/dist/presets/badges.spec.d.ts +2 -0
  111. package/dist/presets/badges.spec.d.ts.map +1 -0
  112. package/dist/presets/badges.spec.js +172 -0
  113. package/dist/presets/buttons.js +76 -76
  114. package/dist/presets/buttons.spec.d.ts +2 -0
  115. package/dist/presets/buttons.spec.d.ts.map +1 -0
  116. package/dist/presets/buttons.spec.js +135 -0
  117. package/dist/presets/index.js +9 -9
  118. package/dist/primitives/Accordion/Accordion.spec.d.ts +2 -0
  119. package/dist/primitives/Accordion/Accordion.spec.d.ts.map +1 -0
  120. package/dist/primitives/Accordion/Accordion.spec.js +83 -0
  121. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  122. package/dist/primitives/Accordion/Accordion.svelte +42 -42
  123. package/dist/primitives/Accordion/AccordionItem.spec.d.ts +2 -0
  124. package/dist/primitives/Accordion/AccordionItem.spec.d.ts.map +1 -0
  125. package/dist/primitives/Accordion/AccordionItem.spec.js +661 -0
  126. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  127. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -0
  128. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts +35 -0
  129. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts.map +1 -0
  130. package/dist/primitives/Alert/Alert.spec.js +173 -170
  131. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  132. package/dist/primitives/Alert/Alert.svelte +27 -27
  133. package/dist/primitives/Avatar/Avatar.spec.d.ts +2 -0
  134. package/dist/primitives/Avatar/Avatar.spec.d.ts.map +1 -0
  135. package/dist/primitives/Avatar/Avatar.spec.js +211 -0
  136. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  137. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  138. package/dist/primitives/Badges/Badge.spec.js +144 -103
  139. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  140. package/dist/primitives/Badges/Badge.svelte +79 -79
  141. package/dist/primitives/BottomSheet/BottomSheet.spec.js +136 -127
  142. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  143. package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
  144. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte +13 -0
  145. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte.d.ts +7 -0
  146. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte.d.ts.map +1 -0
  147. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +122 -120
  148. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  149. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +89 -89
  150. package/dist/primitives/Button/Button.spec.js +223 -211
  151. package/dist/primitives/Button/Button.stories.svelte +76 -76
  152. package/dist/primitives/Button/Button.svelte +270 -270
  153. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -48
  154. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  155. package/dist/primitives/Button/ButtonVariantShowcase.spec.d.ts +2 -0
  156. package/dist/primitives/Button/ButtonVariantShowcase.spec.d.ts.map +1 -0
  157. package/dist/primitives/Button/ButtonVariantShowcase.spec.js +202 -0
  158. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  159. package/dist/primitives/Card.spec.js +49 -49
  160. package/dist/primitives/Card.stories.svelte +22 -22
  161. package/dist/primitives/Card.svelte +28 -28
  162. package/dist/primitives/Checkbox/Checkbox.spec.d.ts +2 -0
  163. package/dist/primitives/Checkbox/Checkbox.spec.d.ts.map +1 -0
  164. package/dist/primitives/Checkbox/Checkbox.spec.js +252 -0
  165. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  166. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  167. package/dist/primitives/DarkModeToggle.spec.js +390 -357
  168. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  169. package/dist/primitives/DarkModeToggle.svelte +136 -136
  170. package/dist/primitives/Drawer/Drawer.spec.d.ts +2 -0
  171. package/dist/primitives/Drawer/Drawer.spec.d.ts.map +1 -0
  172. package/dist/primitives/Drawer/Drawer.spec.js +212 -0
  173. package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
  174. package/dist/primitives/Drawer/Drawer.svelte +120 -120
  175. package/dist/primitives/Dropdown/Dropdown.spec.d.ts +2 -0
  176. package/dist/primitives/Dropdown/Dropdown.spec.d.ts.map +1 -0
  177. package/dist/primitives/Dropdown/Dropdown.spec.js +366 -0
  178. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  179. package/dist/primitives/Dropdown/Dropdown.svelte +14 -14
  180. package/dist/primitives/Dropdown/DropdownItem.spec.d.ts +2 -0
  181. package/dist/primitives/Dropdown/DropdownItem.spec.d.ts.map +1 -0
  182. package/dist/primitives/Dropdown/DropdownItem.spec.js +182 -0
  183. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  184. package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
  185. package/dist/primitives/Icons/ArrowRight.svelte +8 -8
  186. package/dist/primitives/Icons/Availability.svelte +14 -14
  187. package/dist/primitives/Icons/Back.svelte +14 -14
  188. package/dist/primitives/Icons/CheckCircle.svelte +6 -6
  189. package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
  190. package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
  191. package/dist/primitives/Icons/ChevronRight.svelte +4 -4
  192. package/dist/primitives/Icons/Copy.svelte +15 -15
  193. package/dist/primitives/Icons/Cross.svelte +5 -5
  194. package/dist/primitives/Icons/DownArrow.svelte +8 -8
  195. package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
  196. package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
  197. package/dist/primitives/Icons/Home.svelte +15 -15
  198. package/dist/primitives/Icons/Icon.spec.js +169 -169
  199. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  200. package/dist/primitives/Icons/Icon.svelte +52 -52
  201. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  202. package/dist/primitives/Icons/Info.svelte +7 -7
  203. package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
  204. package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
  205. package/dist/primitives/Icons/Message.svelte +15 -15
  206. package/dist/primitives/Icons/MoonIcon.svelte +5 -5
  207. package/dist/primitives/Icons/More.svelte +21 -21
  208. package/dist/primitives/Icons/MoreHori.spec.js +61 -61
  209. package/dist/primitives/Icons/MoreHori.svelte +22 -22
  210. package/dist/primitives/Icons/Notification.svelte +14 -14
  211. package/dist/primitives/Icons/Payment.svelte +14 -14
  212. package/dist/primitives/Icons/Profile.svelte +21 -21
  213. package/dist/primitives/Icons/Reload.svelte +29 -29
  214. package/dist/primitives/Icons/Shows.svelte +21 -21
  215. package/dist/primitives/Icons/Signout.svelte +21 -21
  216. package/dist/primitives/Icons/SunIcon.svelte +8 -8
  217. package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
  218. package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
  219. package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
  220. package/dist/primitives/Icons/WarningIcon.svelte +5 -5
  221. package/dist/primitives/Icons/iconTestUtils.spec.d.ts +2 -0
  222. package/dist/primitives/Icons/iconTestUtils.spec.d.ts.map +1 -0
  223. package/dist/primitives/Icons/iconTestUtils.spec.js +235 -0
  224. package/dist/primitives/Input/Input.spec.js +573 -573
  225. package/dist/primitives/Input/Input.stories.svelte +139 -139
  226. package/dist/primitives/Input/Input.svelte +384 -397
  227. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  228. package/dist/primitives/Input/Select.spec.js +212 -218
  229. package/dist/primitives/Input/Select.stories.svelte +112 -112
  230. package/dist/primitives/Input/Select.svelte +128 -128
  231. package/dist/primitives/Input/Textarea.spec.d.ts +2 -0
  232. package/dist/primitives/Input/Textarea.spec.d.ts.map +1 -0
  233. package/dist/primitives/Input/Textarea.spec.js +255 -0
  234. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  235. package/dist/primitives/Input/Textarea.svelte +35 -35
  236. package/dist/primitives/Label/Label.spec.d.ts +2 -0
  237. package/dist/primitives/Label/Label.spec.d.ts.map +1 -0
  238. package/dist/primitives/Label/Label.spec.js +157 -0
  239. package/dist/primitives/Label/Label.svelte +37 -37
  240. package/dist/primitives/Modal/Modal.spec.js +99 -95
  241. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  242. package/dist/primitives/Modal/Modal.svelte +158 -158
  243. package/dist/primitives/Modal/ModalTestWrapper.svelte +65 -0
  244. package/dist/primitives/Modal/ModalTestWrapper.svelte.d.ts +23 -0
  245. package/dist/primitives/Modal/ModalTestWrapper.svelte.d.ts.map +1 -0
  246. package/dist/primitives/NumberInput/NumberInput.spec.d.ts +2 -0
  247. package/dist/primitives/NumberInput/NumberInput.spec.d.ts.map +1 -0
  248. package/dist/primitives/NumberInput/NumberInput.spec.js +235 -0
  249. package/dist/primitives/NumberInput/NumberInput.svelte +106 -106
  250. package/dist/primitives/Pagination/Pagination.spec.d.ts +2 -0
  251. package/dist/primitives/Pagination/Pagination.spec.d.ts.map +1 -0
  252. package/dist/primitives/Pagination/Pagination.spec.js +266 -0
  253. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  254. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  255. package/dist/primitives/Radio/Radio.spec.d.ts +2 -0
  256. package/dist/primitives/Radio/Radio.spec.d.ts.map +1 -0
  257. package/dist/primitives/Radio/Radio.spec.js +206 -0
  258. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  259. package/dist/primitives/Radio/Radio.svelte +67 -67
  260. package/dist/primitives/Skeleton/CardPlaceholder.spec.d.ts +2 -0
  261. package/dist/primitives/Skeleton/CardPlaceholder.spec.d.ts.map +1 -0
  262. package/dist/primitives/Skeleton/CardPlaceholder.spec.js +156 -0
  263. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  264. package/dist/primitives/Skeleton/ImagePlaceholder.spec.d.ts +2 -0
  265. package/dist/primitives/Skeleton/ImagePlaceholder.spec.d.ts.map +1 -0
  266. package/dist/primitives/Skeleton/ImagePlaceholder.spec.js +120 -0
  267. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  268. package/dist/primitives/Skeleton/ListPlaceholder.spec.d.ts +2 -0
  269. package/dist/primitives/Skeleton/ListPlaceholder.spec.d.ts.map +1 -0
  270. package/dist/primitives/Skeleton/ListPlaceholder.spec.js +220 -0
  271. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  272. package/dist/primitives/Skeleton/Skeleton.spec.d.ts +2 -0
  273. package/dist/primitives/Skeleton/Skeleton.spec.d.ts.map +1 -0
  274. package/dist/primitives/Skeleton/Skeleton.spec.js +173 -0
  275. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  276. package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
  277. package/dist/primitives/Spinner/Spinner.spec.js +71 -75
  278. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  279. package/dist/primitives/Spinner/Spinner.svelte +20 -20
  280. package/dist/primitives/Tabs/TabItem.spec.d.ts +2 -0
  281. package/dist/primitives/Tabs/TabItem.spec.d.ts.map +1 -0
  282. package/dist/primitives/Tabs/TabItem.spec.js +130 -0
  283. package/dist/primitives/Tabs/TabItem.svelte +49 -49
  284. package/dist/primitives/Tabs/Tabs.spec.d.ts +2 -0
  285. package/dist/primitives/Tabs/Tabs.spec.d.ts.map +1 -0
  286. package/dist/primitives/Tabs/Tabs.spec.js +295 -0
  287. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  288. package/dist/primitives/Tabs/Tabs.svelte +123 -123
  289. package/dist/primitives/Tabs/TabsWithItems.test.svelte +18 -0
  290. package/dist/primitives/Tabs/TabsWithItems.test.svelte.d.ts +16 -0
  291. package/dist/primitives/Tabs/TabsWithItems.test.svelte.d.ts.map +1 -0
  292. package/dist/primitives/Toggle.spec.js +143 -127
  293. package/dist/primitives/Toggle.stories.svelte +92 -92
  294. package/dist/primitives/Toggle.svelte +71 -71
  295. package/dist/primitives/Typography/Typography.spec.d.ts +2 -0
  296. package/dist/primitives/Typography/Typography.spec.d.ts.map +1 -0
  297. package/dist/primitives/Typography/Typography.spec.js +183 -0
  298. package/dist/primitives/Typography/Typography.svelte +53 -53
  299. package/dist/primitives/ValidationError.spec.js +103 -103
  300. package/dist/primitives/ValidationError.stories.svelte +69 -69
  301. package/dist/primitives/ValidationError.svelte +29 -29
  302. package/dist/primitives/index.d.ts +1 -0
  303. package/dist/primitives/index.js +3 -0
  304. package/dist/recipes/CropImage/CropImage.spec.js +208 -216
  305. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  306. package/dist/recipes/CropImage/CropImage.svelte +238 -238
  307. package/dist/recipes/ImageUploader/ImageUploader.spec.d.ts +2 -0
  308. package/dist/recipes/ImageUploader/ImageUploader.spec.d.ts.map +1 -0
  309. package/dist/recipes/ImageUploader/ImageUploader.spec.js +1351 -0
  310. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  311. package/dist/recipes/ImageUploader/ImageUploader.svelte +804 -804
  312. package/dist/recipes/SuperLogin/SuperLogin.spec.d.ts +2 -0
  313. package/dist/recipes/SuperLogin/SuperLogin.spec.d.ts.map +1 -0
  314. package/dist/recipes/SuperLogin/SuperLogin.spec.js +1436 -0
  315. package/dist/recipes/SuperLogin/SuperLogin.svelte +7 -6
  316. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  317. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  318. package/dist/recipes/feedback/EmptyState/EmptyState.spec.d.ts +2 -0
  319. package/dist/recipes/feedback/EmptyState/EmptyState.spec.d.ts.map +1 -0
  320. package/dist/recipes/feedback/EmptyState/EmptyState.spec.js +202 -0
  321. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  322. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  323. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
  324. package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
  325. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -129
  326. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
  327. package/dist/recipes/fields/CheckboxField.spec.d.ts +2 -0
  328. package/dist/recipes/fields/CheckboxField.spec.d.ts.map +1 -0
  329. package/dist/recipes/fields/CheckboxField.spec.js +135 -0
  330. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  331. package/dist/recipes/fields/FormField.spec.d.ts +2 -0
  332. package/dist/recipes/fields/FormField.spec.d.ts.map +1 -0
  333. package/dist/recipes/fields/FormField.spec.js +159 -0
  334. package/dist/recipes/fields/FormField.svelte +58 -58
  335. package/dist/recipes/fields/RadioGroup.spec.d.ts +2 -0
  336. package/dist/recipes/fields/RadioGroup.spec.d.ts.map +1 -0
  337. package/dist/recipes/fields/RadioGroup.spec.js +199 -0
  338. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  339. package/dist/recipes/fields/SelectField.spec.d.ts +2 -0
  340. package/dist/recipes/fields/SelectField.spec.d.ts.map +1 -0
  341. package/dist/recipes/fields/SelectField.spec.js +188 -0
  342. package/dist/recipes/fields/SelectField.svelte +80 -80
  343. package/dist/recipes/fields/TextareaField.spec.d.ts +2 -0
  344. package/dist/recipes/fields/TextareaField.spec.d.ts.map +1 -0
  345. package/dist/recipes/fields/TextareaField.spec.js +205 -0
  346. package/dist/recipes/fields/TextareaField.svelte +97 -97
  347. package/dist/recipes/fields/ToggleField.spec.d.ts +2 -0
  348. package/dist/recipes/fields/ToggleField.spec.d.ts.map +1 -0
  349. package/dist/recipes/fields/ToggleField.spec.js +153 -0
  350. package/dist/recipes/fields/ToggleField.svelte +60 -60
  351. package/dist/recipes/fields/index.js +7 -7
  352. package/dist/recipes/inputs/MultiSelect.spec.js +258 -257
  353. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  354. package/dist/recipes/inputs/MultiSelect.svelte +256 -249
  355. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +2 -0
  356. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  357. package/dist/recipes/inputs/OTPInput.spec.js +251 -238
  358. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  359. package/dist/recipes/inputs/OTPInput.svelte +29 -29
  360. package/dist/recipes/inputs/PasswordInput.spec.d.ts +2 -0
  361. package/dist/recipes/inputs/PasswordInput.spec.d.ts.map +1 -0
  362. package/dist/recipes/inputs/PasswordInput.spec.js +410 -0
  363. package/dist/recipes/inputs/PasswordInput.svelte +22 -22
  364. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +245 -165
  365. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +43 -43
  366. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte +71 -0
  367. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte.d.ts +9 -0
  368. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte.d.ts.map +1 -0
  369. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +1139 -193
  370. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
  371. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +326 -326
  372. package/dist/recipes/inputs/Search.spec.d.ts +2 -0
  373. package/dist/recipes/inputs/Search.spec.d.ts.map +1 -0
  374. package/dist/recipes/inputs/Search.spec.js +177 -0
  375. package/dist/recipes/inputs/Search.svelte +37 -37
  376. package/dist/recipes/inputs/SelectDropdown.spec.d.ts +2 -0
  377. package/dist/recipes/inputs/SelectDropdown.spec.d.ts.map +1 -0
  378. package/dist/recipes/inputs/SelectDropdown.spec.js +512 -0
  379. package/dist/recipes/inputs/SelectDropdown.svelte +57 -57
  380. package/dist/recipes/modals/AlertModal.spec.d.ts +2 -0
  381. package/dist/recipes/modals/AlertModal.spec.d.ts.map +1 -0
  382. package/dist/recipes/modals/AlertModal.spec.js +432 -0
  383. package/dist/recipes/modals/AlertModal.svelte +130 -130
  384. package/dist/recipes/modals/ConfirmationModal.spec.js +206 -191
  385. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  386. package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
  387. package/dist/recipes/modals/InputModal.spec.d.ts +2 -0
  388. package/dist/recipes/modals/InputModal.spec.d.ts.map +1 -0
  389. package/dist/recipes/modals/InputModal.spec.js +872 -0
  390. package/dist/recipes/modals/InputModal.svelte +182 -182
  391. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  392. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  393. package/dist/recipes/modals/ModalTestWrapper.spec.d.ts +2 -0
  394. package/dist/recipes/modals/ModalTestWrapper.spec.d.ts.map +1 -0
  395. package/dist/recipes/modals/ModalTestWrapper.spec.js +502 -0
  396. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  397. package/dist/recipes/modals/StatusModal.spec.d.ts +2 -0
  398. package/dist/recipes/modals/StatusModal.spec.d.ts.map +1 -0
  399. package/dist/recipes/modals/StatusModal.spec.js +599 -0
  400. package/dist/recipes/modals/StatusModal.svelte +206 -206
  401. package/dist/services/EventService.js +75 -75
  402. package/dist/services/EventService.spec.js +217 -217
  403. package/dist/services/ShowService.spec.js +345 -342
  404. package/dist/stores/auth.js +36 -36
  405. package/dist/stores/auth.spec.js +139 -139
  406. package/dist/stores/toaster.js +13 -13
  407. package/dist/stories/ButtonAuditDashboard.spec.d.ts +2 -0
  408. package/dist/stories/ButtonAuditDashboard.spec.d.ts.map +1 -0
  409. package/dist/stories/ButtonAuditDashboard.spec.js +913 -0
  410. package/dist/stories/ButtonAuditReview.spec.d.ts +2 -0
  411. package/dist/stories/ButtonAuditReview.spec.d.ts.map +1 -0
  412. package/dist/stories/ButtonAuditReview.spec.js +422 -0
  413. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  414. package/dist/stories/ButtonAuditReview.svelte +427 -427
  415. package/dist/stories/ButtonGridView.spec.d.ts +2 -0
  416. package/dist/stories/ButtonGridView.spec.d.ts.map +1 -0
  417. package/dist/stories/ButtonGridView.spec.js +667 -0
  418. package/dist/stories/ButtonShowcase.spec.d.ts +2 -0
  419. package/dist/stories/ButtonShowcase.spec.d.ts.map +1 -0
  420. package/dist/stories/ButtonShowcase.spec.js +499 -0
  421. package/dist/stories/PatternsGallery.spec.d.ts +2 -0
  422. package/dist/stories/PatternsGallery.spec.d.ts.map +1 -0
  423. package/dist/stories/PatternsGallery.spec.js +514 -0
  424. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  425. package/dist/stories/PatternsGallery.svelte +206 -206
  426. package/dist/stories/PrimitivesGallery.spec.d.ts +2 -0
  427. package/dist/stories/PrimitivesGallery.spec.d.ts.map +1 -0
  428. package/dist/stories/PrimitivesGallery.spec.js +813 -0
  429. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  430. package/dist/stories/PrimitivesGallery.svelte +725 -725
  431. package/dist/stories/RecipesGallery.spec.d.ts +2 -0
  432. package/dist/stories/RecipesGallery.spec.d.ts.map +1 -0
  433. package/dist/stories/RecipesGallery.spec.js +299 -0
  434. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  435. package/dist/stories/RecipesGallery.svelte +271 -271
  436. package/dist/stories/button-audit-manifest.json +11186 -11186
  437. package/dist/stripe/useStripeTheme.spec.d.ts +2 -0
  438. package/dist/stripe/useStripeTheme.spec.d.ts.map +1 -0
  439. package/dist/stripe/useStripeTheme.spec.js +793 -0
  440. package/dist/tailwind/preset.cjs +82 -82
  441. package/dist/telemetry.d.ts.map +1 -1
  442. package/dist/telemetry.js +6 -5
  443. package/dist/telemetry.spec.js +495 -12
  444. package/dist/tokens/__tests__/colors.test.d.ts +2 -0
  445. package/dist/tokens/__tests__/colors.test.d.ts.map +1 -0
  446. package/dist/tokens/__tests__/colors.test.js +152 -0
  447. package/dist/tokens/__tests__/radius.test.d.ts +2 -0
  448. package/dist/tokens/__tests__/radius.test.d.ts.map +1 -0
  449. package/dist/tokens/__tests__/radius.test.js +118 -0
  450. package/dist/tokens/__tests__/shadows.test.d.ts +2 -0
  451. package/dist/tokens/__tests__/shadows.test.d.ts.map +1 -0
  452. package/dist/tokens/__tests__/shadows.test.js +105 -0
  453. package/dist/tokens/__tests__/spacing.test.js +11 -8
  454. package/dist/tokens/__tests__/typography.test.d.ts +2 -0
  455. package/dist/tokens/__tests__/typography.test.d.ts.map +1 -0
  456. package/dist/tokens/__tests__/typography.test.js +156 -0
  457. package/dist/tokens/__tests__/z-index.test.d.ts +2 -0
  458. package/dist/tokens/__tests__/z-index.test.d.ts.map +1 -0
  459. package/dist/tokens/__tests__/z-index.test.js +121 -0
  460. package/dist/tokens/tokens.css +87 -87
  461. package/dist/utils/apiConfig.spec.js +102 -1
  462. package/dist/utils/formatters.spec.d.ts +2 -0
  463. package/dist/utils/formatters.spec.d.ts.map +1 -0
  464. package/dist/utils/formatters.spec.js +82 -0
  465. package/dist/utils/transitions.d.ts +24 -0
  466. package/dist/utils/transitions.d.ts.map +1 -0
  467. package/dist/utils/transitions.js +62 -0
  468. package/dist/utils/transitions.spec.d.ts +2 -0
  469. package/dist/utils/transitions.spec.d.ts.map +1 -0
  470. package/dist/utils/transitions.spec.js +130 -0
  471. package/dist/utils/utils.js +354 -354
  472. package/package.json +288 -283
@@ -0,0 +1,514 @@
1
+ import { render, screen, fireEvent, waitFor } from '@testing-library/svelte';
2
+ import { expect, describe, it, beforeEach, afterEach, vi } from 'vitest';
3
+ import PatternsGallery from './PatternsGallery.svelte';
4
+
5
+ // Mock SvelteKit modules
6
+ vi.mock('$app/stores', () => ({
7
+ page: {
8
+ subscribe: (fn) => {
9
+ fn({ url: { pathname: '/' } });
10
+ return () => {};
11
+ }
12
+ }
13
+ }));
14
+
15
+ vi.mock('$app/paths', () => ({
16
+ base: ''
17
+ }));
18
+
19
+ // Mock fetch for any API calls
20
+ const mockFetch = vi.fn(() =>
21
+ Promise.resolve({
22
+ ok: true,
23
+ json: () => Promise.resolve([]),
24
+ })
25
+ );
26
+
27
+ global.fetch = mockFetch;
28
+
29
+ describe('PatternsGallery', () => {
30
+ beforeEach(() => {
31
+ // Reset dark mode class before each test
32
+ document.documentElement.classList.remove('dark');
33
+ });
34
+
35
+ afterEach(() => {
36
+ // Cleanup after each test
37
+ document.documentElement.classList.remove('dark');
38
+ });
39
+
40
+ describe('Component Rendering', () => {
41
+ it('renders the main gallery container', () => {
42
+ render(PatternsGallery);
43
+ const heading = screen.getByText('Patterns Gallery');
44
+ expect(heading).toBeInTheDocument();
45
+ });
46
+
47
+ it('renders the subtitle', () => {
48
+ render(PatternsGallery);
49
+ const subtitle = screen.getByText('Layout & flow components (Layer 3)');
50
+ expect(subtitle).toBeInTheDocument();
51
+ });
52
+
53
+ it('renders dark mode toggle button', () => {
54
+ render(PatternsGallery);
55
+ const toggleButton = screen.getByRole('button', { name: /Dark/i });
56
+ expect(toggleButton).toBeInTheDocument();
57
+ });
58
+ });
59
+
60
+ describe('Dark Mode Toggle', () => {
61
+ it('starts in light mode', () => {
62
+ render(PatternsGallery);
63
+ const toggleButton = screen.getByRole('button', { name: /Dark/i });
64
+ expect(toggleButton).toHaveTextContent('🌙 Dark');
65
+ });
66
+
67
+ it('toggles to dark mode when clicked', async () => {
68
+ render(PatternsGallery);
69
+ const toggleButton = screen.getByRole('button', { name: /Dark/i });
70
+
71
+ await fireEvent.click(toggleButton);
72
+
73
+ expect(document.documentElement.classList.contains('dark')).toBe(true);
74
+ expect(toggleButton).toHaveTextContent('☀️ Light');
75
+ });
76
+
77
+ it('toggles back to light mode', async () => {
78
+ render(PatternsGallery);
79
+ const toggleButton = screen.getByRole('button', { name: /Dark/i });
80
+
81
+ // Toggle to dark
82
+ await fireEvent.click(toggleButton);
83
+ expect(document.documentElement.classList.contains('dark')).toBe(true);
84
+
85
+ // Toggle back to light
86
+ await fireEvent.click(toggleButton);
87
+ expect(document.documentElement.classList.contains('dark')).toBe(false);
88
+ expect(toggleButton).toHaveTextContent('🌙 Dark');
89
+ });
90
+ });
91
+
92
+ describe('Page Patterns Section', () => {
93
+ it('renders PageHeader section', () => {
94
+ render(PatternsGallery);
95
+ const heading = screen.getByText('PageHeader');
96
+ expect(heading).toBeInTheDocument();
97
+ });
98
+
99
+ it('renders PageHeader description', () => {
100
+ render(PatternsGallery);
101
+ const description = screen.getByText('Page title with optional actions and breadcrumb');
102
+ expect(description).toBeInTheDocument();
103
+ });
104
+
105
+ it('renders multiple PageHeader examples', () => {
106
+ render(PatternsGallery);
107
+ expect(screen.getByText('Page Title')).toBeInTheDocument();
108
+ expect(screen.getByText('With Subtitle')).toBeInTheDocument();
109
+ expect(screen.getByText('With Actions')).toBeInTheDocument();
110
+ });
111
+
112
+ it('renders SectionHeader section', () => {
113
+ render(PatternsGallery);
114
+ expect(screen.getByText('SectionHeader')).toBeInTheDocument();
115
+ expect(screen.getByText('Section dividers with optional description')).toBeInTheDocument();
116
+ });
117
+
118
+ it('renders SectionHeader examples', () => {
119
+ render(PatternsGallery);
120
+ expect(screen.getByText('Basic Section')).toBeInTheDocument();
121
+ expect(screen.getByText('With Description')).toBeInTheDocument();
122
+ expect(screen.getByText('With Action')).toBeInTheDocument();
123
+ });
124
+
125
+ it('renders PageLoader section', () => {
126
+ render(PatternsGallery);
127
+ expect(screen.getByText('PageLoader')).toBeInTheDocument();
128
+ expect(screen.getByText('Full-page loading indicator')).toBeInTheDocument();
129
+ });
130
+
131
+ it('shows PageLoader when button is clicked', async () => {
132
+ const { container } = render(PatternsGallery);
133
+ const button = screen.getByRole('button', { name: /Show PageLoader/i });
134
+
135
+ await fireEvent.click(button);
136
+
137
+ // PageLoader should be visible (contains a Spinner which has role="status")
138
+ await waitFor(() => {
139
+ const spinner = container.querySelector('[role="status"]');
140
+ expect(spinner).toBeInTheDocument();
141
+ }, { timeout: 100 });
142
+ });
143
+
144
+ it('hides PageLoader after 2 seconds', async () => {
145
+ const { container } = render(PatternsGallery);
146
+ const button = screen.getByRole('button', { name: /Show PageLoader/i });
147
+
148
+ await fireEvent.click(button);
149
+
150
+ // Wait for PageLoader to appear
151
+ await waitFor(() => {
152
+ const spinner = container.querySelector('[role="status"]');
153
+ expect(spinner).toBeInTheDocument();
154
+ }, { timeout: 100 });
155
+
156
+ // Wait for it to disappear
157
+ await waitFor(() => {
158
+ const spinner = container.querySelector('[role="status"]');
159
+ expect(spinner).not.toBeInTheDocument();
160
+ }, { timeout: 2500 });
161
+ });
162
+ });
163
+
164
+ describe('Form Patterns Section', () => {
165
+ it('renders FormSection heading', () => {
166
+ render(PatternsGallery);
167
+ expect(screen.getByText('FormSection')).toBeInTheDocument();
168
+ expect(screen.getByText('Grouped form fields with title and description')).toBeInTheDocument();
169
+ });
170
+
171
+ it('renders FormSection example', () => {
172
+ render(PatternsGallery);
173
+ expect(screen.getByText('Personal Information')).toBeInTheDocument();
174
+ expect(screen.getByText('Enter your personal details')).toBeInTheDocument();
175
+ });
176
+
177
+ it('renders FormGrid section', () => {
178
+ render(PatternsGallery);
179
+ expect(screen.getByText('FormGrid')).toBeInTheDocument();
180
+ expect(screen.getByText('Responsive grid layout for form fields')).toBeInTheDocument();
181
+ });
182
+
183
+ it('renders FormGrid with 2 columns', () => {
184
+ render(PatternsGallery);
185
+ expect(screen.getByPlaceholderText('John')).toBeInTheDocument();
186
+ expect(screen.getByPlaceholderText('Doe')).toBeInTheDocument();
187
+ });
188
+
189
+ it('renders FormGrid with 3 columns', () => {
190
+ render(PatternsGallery);
191
+ expect(screen.getByText('3 Columns')).toBeInTheDocument();
192
+ expect(screen.getByPlaceholderText('New York')).toBeInTheDocument();
193
+ expect(screen.getByPlaceholderText('NY')).toBeInTheDocument();
194
+ expect(screen.getByPlaceholderText('10001')).toBeInTheDocument();
195
+ });
196
+
197
+ it('renders FormActions section', () => {
198
+ render(PatternsGallery);
199
+ expect(screen.getByText('FormActions')).toBeInTheDocument();
200
+ expect(screen.getByText('Form submit/cancel button group')).toBeInTheDocument();
201
+ });
202
+
203
+ it('renders FormActions examples', () => {
204
+ render(PatternsGallery);
205
+ expect(screen.getByText('Default (right-aligned)')).toBeInTheDocument();
206
+ expect(screen.getByText('With loading state')).toBeInTheDocument();
207
+ expect(screen.getByText('Delete confirmation')).toBeInTheDocument();
208
+ });
209
+
210
+ it('renders FormValidationSummary section', () => {
211
+ render(PatternsGallery);
212
+ expect(screen.getByText('FormValidationSummary')).toBeInTheDocument();
213
+ expect(screen.getByText('Summary of form validation errors')).toBeInTheDocument();
214
+ });
215
+ });
216
+
217
+ describe('Data Patterns Section', () => {
218
+ it('renders DataTable section', () => {
219
+ render(PatternsGallery);
220
+ expect(screen.getByText('DataTable')).toBeInTheDocument();
221
+ expect(screen.getByText('Tabular data display with sorting and actions')).toBeInTheDocument();
222
+ });
223
+
224
+ it('renders DataTable with sample data', () => {
225
+ render(PatternsGallery);
226
+ expect(screen.getByText('John Doe')).toBeInTheDocument();
227
+ expect(screen.getByText('john@example.com')).toBeInTheDocument();
228
+ expect(screen.getByText('Jane Smith')).toBeInTheDocument();
229
+ expect(screen.getByText('jane@example.com')).toBeInTheDocument();
230
+ expect(screen.getByText('Bob Wilson')).toBeInTheDocument();
231
+ expect(screen.getByText('bob@example.com')).toBeInTheDocument();
232
+ });
233
+
234
+ it('renders DataTable status columns', () => {
235
+ render(PatternsGallery);
236
+ const statuses = screen.getAllByText(/Active|Pending|Inactive/);
237
+ expect(statuses.length).toBeGreaterThan(0);
238
+ });
239
+
240
+ it('renders DataList section', () => {
241
+ render(PatternsGallery);
242
+ expect(screen.getByText('DataList')).toBeInTheDocument();
243
+ expect(screen.getByText('Vertical list of items with primary/secondary text')).toBeInTheDocument();
244
+ });
245
+
246
+ it('renders DataList items', () => {
247
+ render(PatternsGallery);
248
+ expect(screen.getByText('Primary text 1')).toBeInTheDocument();
249
+ expect(screen.getByText('Secondary text')).toBeInTheDocument();
250
+ expect(screen.getByText('Primary text 2')).toBeInTheDocument();
251
+ expect(screen.getByText('More details here')).toBeInTheDocument();
252
+ expect(screen.getByText('Primary text 3')).toBeInTheDocument();
253
+ expect(screen.getByText('Additional info')).toBeInTheDocument();
254
+ });
255
+
256
+ it('renders DataGrid section', () => {
257
+ render(PatternsGallery);
258
+ expect(screen.getByText('DataGrid')).toBeInTheDocument();
259
+ expect(screen.getByText('Responsive grid of cards')).toBeInTheDocument();
260
+ });
261
+
262
+ it('renders DataGrid items', () => {
263
+ render(PatternsGallery);
264
+ expect(screen.getByText('Item 1')).toBeInTheDocument();
265
+ expect(screen.getByText('Description for item 1')).toBeInTheDocument();
266
+ expect(screen.getByText('Item 2')).toBeInTheDocument();
267
+ expect(screen.getByText('Description for item 2')).toBeInTheDocument();
268
+ expect(screen.getByText('Item 6')).toBeInTheDocument();
269
+ expect(screen.getByText('Description for item 6')).toBeInTheDocument();
270
+ });
271
+ });
272
+
273
+ describe('Layout Patterns Section', () => {
274
+ it('renders Stack section', () => {
275
+ render(PatternsGallery);
276
+ expect(screen.getByText('Stack')).toBeInTheDocument();
277
+ expect(screen.getByText('Vertical spacing utility')).toBeInTheDocument();
278
+ });
279
+
280
+ it('renders Stack items', () => {
281
+ render(PatternsGallery);
282
+ expect(screen.getByText('Stack Item 1')).toBeInTheDocument();
283
+ expect(screen.getByText('Stack Item 2')).toBeInTheDocument();
284
+ expect(screen.getByText('Stack Item 3')).toBeInTheDocument();
285
+ });
286
+
287
+ it('renders Grid section', () => {
288
+ render(PatternsGallery);
289
+ expect(screen.getByText('Grid')).toBeInTheDocument();
290
+ expect(screen.getByText('Responsive grid layout utility')).toBeInTheDocument();
291
+ });
292
+
293
+ it('renders Grid with 8 items', () => {
294
+ render(PatternsGallery);
295
+ for (let i = 1; i <= 8; i++) {
296
+ const items = screen.getAllByText(i.toString());
297
+ expect(items.length).toBeGreaterThan(0);
298
+ }
299
+ });
300
+
301
+ it('renders Sidebar section', () => {
302
+ render(PatternsGallery);
303
+ expect(screen.getByText('Sidebar')).toBeInTheDocument();
304
+ expect(screen.getByText('Sidebar + main content layout')).toBeInTheDocument();
305
+ });
306
+
307
+ it('renders Sidebar navigation', () => {
308
+ render(PatternsGallery);
309
+ expect(screen.getByText('Navigation')).toBeInTheDocument();
310
+ // These may appear in multiple places (Header and Sidebar)
311
+ expect(screen.getAllByText('Dashboard').length).toBeGreaterThan(0);
312
+ expect(screen.getAllByText('Settings').length).toBeGreaterThan(0);
313
+ expect(screen.getAllByText('Profile').length).toBeGreaterThan(0);
314
+ });
315
+
316
+ it('renders Sidebar main content', () => {
317
+ render(PatternsGallery);
318
+ expect(screen.getByText('Main content area')).toBeInTheDocument();
319
+ });
320
+ });
321
+
322
+ describe('Navigation Patterns Section', () => {
323
+ it('renders Header section', () => {
324
+ render(PatternsGallery);
325
+ expect(screen.getByText('Header')).toBeInTheDocument();
326
+ expect(screen.getByText('Top navigation bar with logo, nav links, and user menu')).toBeInTheDocument();
327
+ });
328
+
329
+ it('renders BottomNav section', () => {
330
+ render(PatternsGallery);
331
+ expect(screen.getByText('BottomNav')).toBeInTheDocument();
332
+ expect(screen.getByText('Mobile bottom navigation')).toBeInTheDocument();
333
+ });
334
+ });
335
+
336
+ describe('PageLayout Section', () => {
337
+ it('renders PageLayout section', () => {
338
+ render(PatternsGallery);
339
+ expect(screen.getByText('PageLayout')).toBeInTheDocument();
340
+ expect(screen.getByText('Complete page structure with breadcrumb, title, and content')).toBeInTheDocument();
341
+ });
342
+
343
+ it('renders PageLayout example', () => {
344
+ render(PatternsGallery);
345
+ expect(screen.getByText('PageLayout Demo')).toBeInTheDocument();
346
+ expect(screen.getByText('Example page layout')).toBeInTheDocument();
347
+ });
348
+
349
+ it('renders PageLayout content', () => {
350
+ render(PatternsGallery);
351
+ expect(screen.getByText(/Main page content goes here/)).toBeInTheDocument();
352
+ });
353
+ });
354
+
355
+ describe('Styling and Classes', () => {
356
+ it('applies light mode background by default', () => {
357
+ const { container } = render(PatternsGallery);
358
+ const mainDiv = container.querySelector('.min-h-screen');
359
+ expect(mainDiv).toHaveClass('bg-gray-50');
360
+ });
361
+
362
+ it('applies dark mode background when dark mode is toggled', async () => {
363
+ const { container } = render(PatternsGallery);
364
+ const toggleButton = screen.getByRole('button', { name: /Dark/i });
365
+
366
+ await fireEvent.click(toggleButton);
367
+
368
+ const mainDiv = container.querySelector('.min-h-screen');
369
+ expect(mainDiv).toHaveClass('bg-gray-900');
370
+ });
371
+
372
+ it('applies correct section styling in light mode', () => {
373
+ const { container } = render(PatternsGallery);
374
+ const sections = container.querySelectorAll('section');
375
+ expect(sections.length).toBeGreaterThan(0);
376
+ expect(sections[0]).toHaveClass('bg-white');
377
+ });
378
+ });
379
+
380
+ describe('Sample Data Rendering', () => {
381
+ it('renders all table rows', () => {
382
+ render(PatternsGallery);
383
+ expect(screen.getByText('John Doe')).toBeInTheDocument();
384
+ expect(screen.getByText('Jane Smith')).toBeInTheDocument();
385
+ expect(screen.getByText('Bob Wilson')).toBeInTheDocument();
386
+ });
387
+
388
+ it('renders all grid items', () => {
389
+ render(PatternsGallery);
390
+ for (let i = 1; i <= 6; i++) {
391
+ expect(screen.getByText(`Item ${i}`)).toBeInTheDocument();
392
+ expect(screen.getByText(`Description for item ${i}`)).toBeInTheDocument();
393
+ }
394
+ });
395
+
396
+ it('renders all list items', () => {
397
+ render(PatternsGallery);
398
+ expect(screen.getByText('Primary text 1')).toBeInTheDocument();
399
+ expect(screen.getByText('Primary text 2')).toBeInTheDocument();
400
+ expect(screen.getByText('Primary text 3')).toBeInTheDocument();
401
+ });
402
+ });
403
+
404
+ describe('Interactive Elements', () => {
405
+ it('renders action buttons in examples', () => {
406
+ render(PatternsGallery);
407
+ expect(screen.getByRole('button', { name: 'Add New' })).toBeInTheDocument();
408
+ });
409
+
410
+ it('renders View All link button', () => {
411
+ render(PatternsGallery);
412
+ expect(screen.getByRole('button', { name: 'View All' })).toBeInTheDocument();
413
+ });
414
+
415
+ it('renders form action buttons', () => {
416
+ render(PatternsGallery);
417
+ expect(screen.getByRole('button', { name: 'Save Changes' })).toBeInTheDocument();
418
+ const cancelButtons = screen.getAllByRole('button', { name: 'Cancel' });
419
+ expect(cancelButtons.length).toBeGreaterThan(0);
420
+ });
421
+
422
+ it('renders PageLoader trigger button', () => {
423
+ render(PatternsGallery);
424
+ expect(screen.getByRole('button', { name: /Show PageLoader/i })).toBeInTheDocument();
425
+ });
426
+ });
427
+
428
+ describe('Component Structure', () => {
429
+ it('renders all major sections', () => {
430
+ const { container } = render(PatternsGallery);
431
+ const sections = container.querySelectorAll('section');
432
+
433
+ // Should have multiple sections for all the pattern categories
434
+ expect(sections.length).toBeGreaterThanOrEqual(15);
435
+ });
436
+
437
+ it('renders main heading', () => {
438
+ render(PatternsGallery);
439
+ const h1 = screen.getByRole('heading', { level: 1, name: 'Patterns Gallery' });
440
+ expect(h1).toBeInTheDocument();
441
+ });
442
+
443
+ it('renders multiple section headings', () => {
444
+ render(PatternsGallery);
445
+ const h2s = screen.getAllByRole('heading', { level: 2 });
446
+ expect(h2s.length).toBeGreaterThan(10);
447
+ });
448
+
449
+ it('renders all pattern category headings', () => {
450
+ render(PatternsGallery);
451
+
452
+ // Page patterns
453
+ expect(screen.getByText('PageHeader')).toBeInTheDocument();
454
+ expect(screen.getByText('SectionHeader')).toBeInTheDocument();
455
+ expect(screen.getByText('PageLoader')).toBeInTheDocument();
456
+
457
+ // Form patterns
458
+ expect(screen.getByText('FormSection')).toBeInTheDocument();
459
+ expect(screen.getByText('FormGrid')).toBeInTheDocument();
460
+ expect(screen.getByText('FormActions')).toBeInTheDocument();
461
+ expect(screen.getByText('FormValidationSummary')).toBeInTheDocument();
462
+
463
+ // Data patterns
464
+ expect(screen.getByText('DataTable')).toBeInTheDocument();
465
+ expect(screen.getByText('DataList')).toBeInTheDocument();
466
+ expect(screen.getByText('DataGrid')).toBeInTheDocument();
467
+
468
+ // Layout patterns
469
+ expect(screen.getByText('Stack')).toBeInTheDocument();
470
+ expect(screen.getByText('Grid')).toBeInTheDocument();
471
+ expect(screen.getByText('Sidebar')).toBeInTheDocument();
472
+
473
+ // Navigation patterns
474
+ expect(screen.getByText('Header')).toBeInTheDocument();
475
+ expect(screen.getByText('BottomNav')).toBeInTheDocument();
476
+
477
+ // Page layout
478
+ expect(screen.getByText('PageLayout')).toBeInTheDocument();
479
+ });
480
+ });
481
+
482
+ describe('Accessibility', () => {
483
+ it('has accessible button labels', () => {
484
+ render(PatternsGallery);
485
+
486
+ // Dark mode toggle should have accessible text
487
+ const darkModeButton = screen.getByRole('button', { name: /Dark/i });
488
+ expect(darkModeButton).toBeInTheDocument();
489
+
490
+ // Action buttons
491
+ expect(screen.getByRole('button', { name: 'Add New' })).toBeInTheDocument();
492
+ expect(screen.getByRole('button', { name: 'View All' })).toBeInTheDocument();
493
+ });
494
+
495
+ it('has main h1 heading', () => {
496
+ const { container } = render(PatternsGallery);
497
+
498
+ // Should have at least one h1 (the main gallery heading, plus examples in PageHeader demos)
499
+ const h1s = container.querySelectorAll('h1');
500
+ expect(h1s.length).toBeGreaterThanOrEqual(1);
501
+
502
+ // The first h1 should be the main gallery heading
503
+ expect(h1s[0]).toHaveTextContent('Patterns Gallery');
504
+ });
505
+
506
+ it('has multiple h2 section headings', () => {
507
+ const { container } = render(PatternsGallery);
508
+
509
+ // Should have multiple h2s for sections
510
+ const h2s = container.querySelectorAll('h2');
511
+ expect(h2s.length).toBeGreaterThan(10);
512
+ });
513
+ });
514
+ });
@@ -1,19 +1,19 @@
1
- <script module>
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import PatternsGallery from './PatternsGallery.svelte';
4
-
5
- const { Story } = defineMeta({
6
- title: 'Visual Galleries/Patterns',
7
- component: PatternsGallery,
8
- parameters: {
9
- layout: 'fullscreen',
10
- docs: {
11
- description: {
12
- component: 'Complete visual gallery of all pattern components (Layer 3) - Layout & flow components.',
13
- },
14
- },
15
- },
16
- });
17
- </script>
18
-
19
- <Story name="All Patterns" />
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import PatternsGallery from './PatternsGallery.svelte';
4
+
5
+ const { Story } = defineMeta({
6
+ title: 'Visual Galleries/Patterns',
7
+ component: PatternsGallery,
8
+ parameters: {
9
+ layout: 'fullscreen',
10
+ docs: {
11
+ description: {
12
+ component: 'Complete visual gallery of all pattern components (Layer 3) - Layout & flow components.',
13
+ },
14
+ },
15
+ },
16
+ });
17
+ </script>
18
+
19
+ <Story name="All Patterns" />