@getmicdrop/svelte-components 5.5.4 → 5.6.0

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 (512) 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/AppShell.svelte +104 -0
  34. package/dist/components/Layout/AppShell.svelte.d.ts +26 -0
  35. package/dist/components/Layout/AppShell.svelte.d.ts.map +1 -0
  36. package/dist/components/Layout/ContentSection.svelte +80 -0
  37. package/dist/components/Layout/ContentSection.svelte.d.ts +23 -0
  38. package/dist/components/Layout/ContentSection.svelte.d.ts.map +1 -0
  39. package/dist/components/Layout/Grid.svelte +4 -4
  40. package/dist/components/Layout/Heading.svelte +81 -0
  41. package/dist/components/Layout/Heading.svelte.d.ts +24 -0
  42. package/dist/components/Layout/Heading.svelte.d.ts.map +1 -0
  43. package/dist/components/Layout/PageContainer.svelte +69 -0
  44. package/dist/components/Layout/PageContainer.svelte.d.ts +23 -0
  45. package/dist/components/Layout/PageContainer.svelte.d.ts.map +1 -0
  46. package/dist/components/Layout/Responsive.svelte +75 -0
  47. package/dist/components/Layout/Responsive.svelte.d.ts +19 -0
  48. package/dist/components/Layout/Responsive.svelte.d.ts.map +1 -0
  49. package/dist/components/Layout/Section.spec.d.ts +2 -0
  50. package/dist/components/Layout/Section.spec.d.ts.map +1 -0
  51. package/dist/components/Layout/Section.spec.js +149 -0
  52. package/dist/components/Layout/Section.svelte +80 -80
  53. package/dist/components/Layout/ShowOnDesktop.svelte +37 -0
  54. package/dist/components/Layout/ShowOnDesktop.svelte.d.ts +16 -0
  55. package/dist/components/Layout/ShowOnDesktop.svelte.d.ts.map +1 -0
  56. package/dist/components/Layout/ShowOnMobile.svelte +37 -0
  57. package/dist/components/Layout/ShowOnMobile.svelte.d.ts +16 -0
  58. package/dist/components/Layout/ShowOnMobile.svelte.d.ts.map +1 -0
  59. package/dist/components/Layout/Sidebar.spec.d.ts +2 -0
  60. package/dist/components/Layout/Sidebar.spec.d.ts.map +1 -0
  61. package/dist/components/Layout/Sidebar.spec.js +186 -0
  62. package/dist/components/Layout/Sidebar.svelte +108 -108
  63. package/dist/components/Layout/Stack.spec.js +2 -2
  64. package/dist/components/Layout/Stack.svelte +6 -6
  65. package/dist/components/Layout/Text.svelte +87 -0
  66. package/dist/components/Layout/Text.svelte.d.ts +28 -0
  67. package/dist/components/Layout/Text.svelte.d.ts.map +1 -0
  68. package/dist/components/Layout/TwoColumn.svelte +108 -0
  69. package/dist/components/Layout/TwoColumn.svelte.d.ts +28 -0
  70. package/dist/components/Layout/TwoColumn.svelte.d.ts.map +1 -0
  71. package/dist/components/Layout/__tests__/Heading.test.d.ts +2 -0
  72. package/dist/components/Layout/__tests__/Heading.test.d.ts.map +1 -0
  73. package/dist/components/Layout/__tests__/Heading.test.js +123 -0
  74. package/dist/components/Layout/__tests__/ShowOnDesktop.test.d.ts +2 -0
  75. package/dist/components/Layout/__tests__/ShowOnDesktop.test.d.ts.map +1 -0
  76. package/dist/components/Layout/__tests__/ShowOnDesktop.test.js +84 -0
  77. package/dist/components/Layout/__tests__/ShowOnMobile.test.d.ts +2 -0
  78. package/dist/components/Layout/__tests__/ShowOnMobile.test.d.ts.map +1 -0
  79. package/dist/components/Layout/__tests__/ShowOnMobile.test.js +80 -0
  80. package/dist/components/Layout/__tests__/Text.test.d.ts +2 -0
  81. package/dist/components/Layout/__tests__/Text.test.d.ts.map +1 -0
  82. package/dist/components/Layout/__tests__/Text.test.js +146 -0
  83. package/dist/components/Layout/__tests__/TwoColumn.test.d.ts +2 -0
  84. package/dist/components/Layout/__tests__/TwoColumn.test.d.ts.map +1 -0
  85. package/dist/components/Layout/__tests__/TwoColumn.test.js +129 -0
  86. package/dist/constants/formOptions.spec.js +9 -5
  87. package/dist/constants/validation.js +91 -91
  88. package/dist/constants/validation.spec.js +64 -64
  89. package/dist/datetime/__tests__/timezone.test.js +123 -1
  90. package/dist/forms/createFieldTracker.spec.d.ts +2 -0
  91. package/dist/forms/createFieldTracker.spec.d.ts.map +1 -0
  92. package/dist/forms/createFieldTracker.spec.js +343 -0
  93. package/dist/forms/createFormStore.spec.d.ts +2 -0
  94. package/dist/forms/createFormStore.spec.d.ts.map +1 -0
  95. package/dist/forms/createFormStore.spec.js +689 -0
  96. package/dist/index.d.ts +4 -112
  97. package/dist/index.js +40 -226
  98. package/dist/patterns/data/DataGrid.spec.d.ts +2 -0
  99. package/dist/patterns/data/DataGrid.spec.d.ts.map +1 -0
  100. package/dist/patterns/data/DataGrid.spec.js +159 -0
  101. package/dist/patterns/data/DataGrid.svelte +45 -45
  102. package/dist/patterns/data/DataList.spec.d.ts +2 -0
  103. package/dist/patterns/data/DataList.spec.d.ts.map +1 -0
  104. package/dist/patterns/data/DataList.spec.js +158 -0
  105. package/dist/patterns/data/DataList.svelte +24 -24
  106. package/dist/patterns/data/DataTable.spec.d.ts +2 -0
  107. package/dist/patterns/data/DataTable.spec.d.ts.map +1 -0
  108. package/dist/patterns/data/DataTable.spec.js +196 -0
  109. package/dist/patterns/data/DataTable.svelte +36 -36
  110. package/dist/patterns/forms/FormActions.spec.js +95 -88
  111. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  112. package/dist/patterns/forms/FormActions.svelte +46 -46
  113. package/dist/patterns/forms/FormGrid.spec.d.ts +2 -0
  114. package/dist/patterns/forms/FormGrid.spec.d.ts.map +1 -0
  115. package/dist/patterns/forms/FormGrid.spec.js +125 -0
  116. package/dist/patterns/forms/FormGrid.svelte +33 -33
  117. package/dist/patterns/forms/FormSection.spec.d.ts +2 -0
  118. package/dist/patterns/forms/FormSection.spec.d.ts.map +1 -0
  119. package/dist/patterns/forms/FormSection.spec.js +153 -0
  120. package/dist/patterns/forms/FormSection.svelte +32 -32
  121. package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
  122. package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
  123. package/dist/patterns/layout/Sidebar.spec.d.ts +2 -0
  124. package/dist/patterns/layout/Sidebar.spec.d.ts.map +1 -0
  125. package/dist/patterns/layout/Sidebar.spec.js +159 -0
  126. package/dist/patterns/layout/Sidebar.svelte +39 -39
  127. package/dist/patterns/layout/index.d.ts +9 -0
  128. package/dist/patterns/layout/index.js +22 -0
  129. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  130. package/dist/patterns/navigation/BottomNav.svelte +64 -64
  131. package/dist/patterns/navigation/Header.spec.js +33 -24
  132. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  133. package/dist/patterns/navigation/Header.svelte +193 -193
  134. package/dist/patterns/page/PageHeader.spec.d.ts +2 -0
  135. package/dist/patterns/page/PageHeader.spec.d.ts.map +1 -0
  136. package/dist/patterns/page/PageHeader.spec.js +167 -0
  137. package/dist/patterns/page/PageHeader.svelte +18 -18
  138. package/dist/patterns/page/PageLayout.spec.d.ts +2 -0
  139. package/dist/patterns/page/PageLayout.spec.d.ts.map +1 -0
  140. package/dist/patterns/page/PageLayout.spec.js +145 -0
  141. package/dist/patterns/page/PageLayout.svelte +40 -40
  142. package/dist/patterns/page/PageLoader.spec.js +57 -54
  143. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  144. package/dist/patterns/page/PageLoader.svelte +24 -24
  145. package/dist/patterns/page/SectionHeader.spec.d.ts +2 -0
  146. package/dist/patterns/page/SectionHeader.spec.d.ts.map +1 -0
  147. package/dist/patterns/page/SectionHeader.spec.js +197 -0
  148. package/dist/patterns/page/SectionHeader.svelte +29 -29
  149. package/dist/presets/badges.js +112 -112
  150. package/dist/presets/badges.spec.d.ts +2 -0
  151. package/dist/presets/badges.spec.d.ts.map +1 -0
  152. package/dist/presets/badges.spec.js +172 -0
  153. package/dist/presets/buttons.js +76 -76
  154. package/dist/presets/buttons.spec.d.ts +2 -0
  155. package/dist/presets/buttons.spec.d.ts.map +1 -0
  156. package/dist/presets/buttons.spec.js +135 -0
  157. package/dist/presets/index.js +9 -9
  158. package/dist/primitives/Accordion/Accordion.spec.d.ts +2 -0
  159. package/dist/primitives/Accordion/Accordion.spec.d.ts.map +1 -0
  160. package/dist/primitives/Accordion/Accordion.spec.js +83 -0
  161. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  162. package/dist/primitives/Accordion/Accordion.svelte +42 -42
  163. package/dist/primitives/Accordion/AccordionItem.spec.d.ts +2 -0
  164. package/dist/primitives/Accordion/AccordionItem.spec.d.ts.map +1 -0
  165. package/dist/primitives/Accordion/AccordionItem.spec.js +661 -0
  166. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  167. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -0
  168. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts +35 -0
  169. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts.map +1 -0
  170. package/dist/primitives/Alert/Alert.spec.js +173 -170
  171. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  172. package/dist/primitives/Alert/Alert.svelte +27 -27
  173. package/dist/primitives/Avatar/Avatar.spec.d.ts +2 -0
  174. package/dist/primitives/Avatar/Avatar.spec.d.ts.map +1 -0
  175. package/dist/primitives/Avatar/Avatar.spec.js +211 -0
  176. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  177. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  178. package/dist/primitives/Badges/Badge.spec.js +144 -103
  179. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  180. package/dist/primitives/Badges/Badge.svelte +79 -79
  181. package/dist/primitives/BottomSheet/BottomSheet.spec.js +136 -127
  182. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  183. package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
  184. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte +13 -0
  185. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte.d.ts +7 -0
  186. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte.d.ts.map +1 -0
  187. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +122 -120
  188. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  189. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +89 -89
  190. package/dist/primitives/Button/Button.spec.js +223 -211
  191. package/dist/primitives/Button/Button.stories.svelte +76 -76
  192. package/dist/primitives/Button/Button.svelte +270 -270
  193. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -48
  194. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  195. package/dist/primitives/Button/ButtonVariantShowcase.spec.d.ts +2 -0
  196. package/dist/primitives/Button/ButtonVariantShowcase.spec.d.ts.map +1 -0
  197. package/dist/primitives/Button/ButtonVariantShowcase.spec.js +202 -0
  198. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  199. package/dist/primitives/Card.spec.js +49 -49
  200. package/dist/primitives/Card.stories.svelte +22 -22
  201. package/dist/primitives/Card.svelte +28 -28
  202. package/dist/primitives/Checkbox/Checkbox.spec.d.ts +2 -0
  203. package/dist/primitives/Checkbox/Checkbox.spec.d.ts.map +1 -0
  204. package/dist/primitives/Checkbox/Checkbox.spec.js +252 -0
  205. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  206. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  207. package/dist/primitives/DarkModeToggle.spec.js +390 -357
  208. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  209. package/dist/primitives/DarkModeToggle.svelte +136 -136
  210. package/dist/primitives/Drawer/Drawer.spec.d.ts +2 -0
  211. package/dist/primitives/Drawer/Drawer.spec.d.ts.map +1 -0
  212. package/dist/primitives/Drawer/Drawer.spec.js +212 -0
  213. package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
  214. package/dist/primitives/Drawer/Drawer.svelte +120 -120
  215. package/dist/primitives/Dropdown/Dropdown.spec.d.ts +2 -0
  216. package/dist/primitives/Dropdown/Dropdown.spec.d.ts.map +1 -0
  217. package/dist/primitives/Dropdown/Dropdown.spec.js +366 -0
  218. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  219. package/dist/primitives/Dropdown/Dropdown.svelte +14 -14
  220. package/dist/primitives/Dropdown/DropdownItem.spec.d.ts +2 -0
  221. package/dist/primitives/Dropdown/DropdownItem.spec.d.ts.map +1 -0
  222. package/dist/primitives/Dropdown/DropdownItem.spec.js +182 -0
  223. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  224. package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
  225. package/dist/primitives/Icons/ArrowRight.svelte +8 -8
  226. package/dist/primitives/Icons/Availability.svelte +14 -14
  227. package/dist/primitives/Icons/Back.svelte +14 -14
  228. package/dist/primitives/Icons/CheckCircle.svelte +6 -6
  229. package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
  230. package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
  231. package/dist/primitives/Icons/ChevronRight.svelte +4 -4
  232. package/dist/primitives/Icons/Copy.svelte +15 -15
  233. package/dist/primitives/Icons/Cross.svelte +5 -5
  234. package/dist/primitives/Icons/DownArrow.svelte +8 -8
  235. package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
  236. package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
  237. package/dist/primitives/Icons/Home.svelte +15 -15
  238. package/dist/primitives/Icons/Icon.spec.js +169 -169
  239. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  240. package/dist/primitives/Icons/Icon.svelte +52 -52
  241. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  242. package/dist/primitives/Icons/Info.svelte +7 -7
  243. package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
  244. package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
  245. package/dist/primitives/Icons/Message.svelte +15 -15
  246. package/dist/primitives/Icons/MoonIcon.svelte +5 -5
  247. package/dist/primitives/Icons/More.svelte +21 -21
  248. package/dist/primitives/Icons/MoreHori.spec.js +61 -61
  249. package/dist/primitives/Icons/MoreHori.svelte +22 -22
  250. package/dist/primitives/Icons/Notification.svelte +14 -14
  251. package/dist/primitives/Icons/Payment.svelte +14 -14
  252. package/dist/primitives/Icons/Profile.svelte +21 -21
  253. package/dist/primitives/Icons/Reload.svelte +29 -29
  254. package/dist/primitives/Icons/Shows.svelte +21 -21
  255. package/dist/primitives/Icons/Signout.svelte +21 -21
  256. package/dist/primitives/Icons/SunIcon.svelte +8 -8
  257. package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
  258. package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
  259. package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
  260. package/dist/primitives/Icons/WarningIcon.svelte +5 -5
  261. package/dist/primitives/Icons/iconTestUtils.spec.d.ts +2 -0
  262. package/dist/primitives/Icons/iconTestUtils.spec.d.ts.map +1 -0
  263. package/dist/primitives/Icons/iconTestUtils.spec.js +235 -0
  264. package/dist/primitives/Input/Input.spec.js +573 -573
  265. package/dist/primitives/Input/Input.stories.svelte +139 -139
  266. package/dist/primitives/Input/Input.svelte +418 -431
  267. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  268. package/dist/primitives/Input/Select.spec.js +212 -218
  269. package/dist/primitives/Input/Select.stories.svelte +112 -112
  270. package/dist/primitives/Input/Select.svelte +128 -128
  271. package/dist/primitives/Input/Textarea.spec.d.ts +2 -0
  272. package/dist/primitives/Input/Textarea.spec.d.ts.map +1 -0
  273. package/dist/primitives/Input/Textarea.spec.js +255 -0
  274. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  275. package/dist/primitives/Input/Textarea.svelte +35 -35
  276. package/dist/primitives/Label/Label.spec.d.ts +2 -0
  277. package/dist/primitives/Label/Label.spec.d.ts.map +1 -0
  278. package/dist/primitives/Label/Label.spec.js +157 -0
  279. package/dist/primitives/Label/Label.svelte +37 -37
  280. package/dist/primitives/Modal/Modal.spec.js +99 -95
  281. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  282. package/dist/primitives/Modal/Modal.svelte +158 -158
  283. package/dist/primitives/Modal/ModalTestWrapper.svelte +65 -0
  284. package/dist/primitives/Modal/ModalTestWrapper.svelte.d.ts +23 -0
  285. package/dist/primitives/Modal/ModalTestWrapper.svelte.d.ts.map +1 -0
  286. package/dist/primitives/NumberInput/NumberInput.spec.d.ts +2 -0
  287. package/dist/primitives/NumberInput/NumberInput.spec.d.ts.map +1 -0
  288. package/dist/primitives/NumberInput/NumberInput.spec.js +235 -0
  289. package/dist/primitives/NumberInput/NumberInput.svelte +106 -106
  290. package/dist/primitives/Pagination/Pagination.spec.d.ts +2 -0
  291. package/dist/primitives/Pagination/Pagination.spec.d.ts.map +1 -0
  292. package/dist/primitives/Pagination/Pagination.spec.js +266 -0
  293. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  294. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  295. package/dist/primitives/Radio/Radio.spec.d.ts +2 -0
  296. package/dist/primitives/Radio/Radio.spec.d.ts.map +1 -0
  297. package/dist/primitives/Radio/Radio.spec.js +206 -0
  298. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  299. package/dist/primitives/Radio/Radio.svelte +67 -67
  300. package/dist/primitives/Skeleton/CardPlaceholder.spec.d.ts +2 -0
  301. package/dist/primitives/Skeleton/CardPlaceholder.spec.d.ts.map +1 -0
  302. package/dist/primitives/Skeleton/CardPlaceholder.spec.js +156 -0
  303. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  304. package/dist/primitives/Skeleton/ImagePlaceholder.spec.d.ts +2 -0
  305. package/dist/primitives/Skeleton/ImagePlaceholder.spec.d.ts.map +1 -0
  306. package/dist/primitives/Skeleton/ImagePlaceholder.spec.js +120 -0
  307. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  308. package/dist/primitives/Skeleton/ListPlaceholder.spec.d.ts +2 -0
  309. package/dist/primitives/Skeleton/ListPlaceholder.spec.d.ts.map +1 -0
  310. package/dist/primitives/Skeleton/ListPlaceholder.spec.js +220 -0
  311. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  312. package/dist/primitives/Skeleton/Skeleton.spec.d.ts +2 -0
  313. package/dist/primitives/Skeleton/Skeleton.spec.d.ts.map +1 -0
  314. package/dist/primitives/Skeleton/Skeleton.spec.js +173 -0
  315. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  316. package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
  317. package/dist/primitives/Spinner/Spinner.spec.js +71 -75
  318. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  319. package/dist/primitives/Spinner/Spinner.svelte +20 -20
  320. package/dist/primitives/Tabs/TabItem.spec.d.ts +2 -0
  321. package/dist/primitives/Tabs/TabItem.spec.d.ts.map +1 -0
  322. package/dist/primitives/Tabs/TabItem.spec.js +130 -0
  323. package/dist/primitives/Tabs/TabItem.svelte +49 -49
  324. package/dist/primitives/Tabs/Tabs.spec.d.ts +2 -0
  325. package/dist/primitives/Tabs/Tabs.spec.d.ts.map +1 -0
  326. package/dist/primitives/Tabs/Tabs.spec.js +295 -0
  327. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  328. package/dist/primitives/Tabs/Tabs.svelte +123 -123
  329. package/dist/primitives/Tabs/TabsWithItems.test.svelte +18 -0
  330. package/dist/primitives/Tabs/TabsWithItems.test.svelte.d.ts +16 -0
  331. package/dist/primitives/Tabs/TabsWithItems.test.svelte.d.ts.map +1 -0
  332. package/dist/primitives/Toggle.spec.js +143 -127
  333. package/dist/primitives/Toggle.stories.svelte +92 -92
  334. package/dist/primitives/Toggle.svelte +71 -71
  335. package/dist/primitives/Typography/Typography.spec.d.ts +2 -0
  336. package/dist/primitives/Typography/Typography.spec.d.ts.map +1 -0
  337. package/dist/primitives/Typography/Typography.spec.js +183 -0
  338. package/dist/primitives/Typography/Typography.svelte +53 -53
  339. package/dist/primitives/ValidationError.spec.js +103 -103
  340. package/dist/primitives/ValidationError.stories.svelte +69 -69
  341. package/dist/primitives/ValidationError.svelte +29 -29
  342. package/dist/primitives/index.d.ts +1 -0
  343. package/dist/primitives/index.js +84 -81
  344. package/dist/recipes/CropImage/CropImage.spec.js +208 -216
  345. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  346. package/dist/recipes/CropImage/CropImage.svelte +238 -238
  347. package/dist/recipes/ImageUploader/ImageUploader.spec.d.ts +2 -0
  348. package/dist/recipes/ImageUploader/ImageUploader.spec.d.ts.map +1 -0
  349. package/dist/recipes/ImageUploader/ImageUploader.spec.js +1351 -0
  350. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  351. package/dist/recipes/ImageUploader/ImageUploader.svelte +804 -804
  352. package/dist/recipes/SuperLogin/SuperLogin.spec.d.ts +2 -0
  353. package/dist/recipes/SuperLogin/SuperLogin.spec.d.ts.map +1 -0
  354. package/dist/recipes/SuperLogin/SuperLogin.spec.js +1436 -0
  355. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  356. package/dist/recipes/feedback/EmptyState/EmptyState.spec.d.ts +2 -0
  357. package/dist/recipes/feedback/EmptyState/EmptyState.spec.d.ts.map +1 -0
  358. package/dist/recipes/feedback/EmptyState/EmptyState.spec.js +202 -0
  359. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  360. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  361. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
  362. package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
  363. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -129
  364. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
  365. package/dist/recipes/fields/CheckboxField.spec.d.ts +2 -0
  366. package/dist/recipes/fields/CheckboxField.spec.d.ts.map +1 -0
  367. package/dist/recipes/fields/CheckboxField.spec.js +135 -0
  368. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  369. package/dist/recipes/fields/FormField.spec.d.ts +2 -0
  370. package/dist/recipes/fields/FormField.spec.d.ts.map +1 -0
  371. package/dist/recipes/fields/FormField.spec.js +159 -0
  372. package/dist/recipes/fields/FormField.svelte +58 -58
  373. package/dist/recipes/fields/RadioGroup.spec.d.ts +2 -0
  374. package/dist/recipes/fields/RadioGroup.spec.d.ts.map +1 -0
  375. package/dist/recipes/fields/RadioGroup.spec.js +199 -0
  376. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  377. package/dist/recipes/fields/SelectField.spec.d.ts +2 -0
  378. package/dist/recipes/fields/SelectField.spec.d.ts.map +1 -0
  379. package/dist/recipes/fields/SelectField.spec.js +188 -0
  380. package/dist/recipes/fields/SelectField.svelte +80 -80
  381. package/dist/recipes/fields/TextareaField.spec.d.ts +2 -0
  382. package/dist/recipes/fields/TextareaField.spec.d.ts.map +1 -0
  383. package/dist/recipes/fields/TextareaField.spec.js +205 -0
  384. package/dist/recipes/fields/TextareaField.svelte +97 -97
  385. package/dist/recipes/fields/ToggleField.spec.d.ts +2 -0
  386. package/dist/recipes/fields/ToggleField.spec.d.ts.map +1 -0
  387. package/dist/recipes/fields/ToggleField.spec.js +153 -0
  388. package/dist/recipes/fields/ToggleField.svelte +60 -60
  389. package/dist/recipes/fields/index.js +7 -7
  390. package/dist/recipes/inputs/MultiSelect.spec.js +258 -257
  391. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  392. package/dist/recipes/inputs/MultiSelect.svelte +256 -249
  393. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +2 -0
  394. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  395. package/dist/recipes/inputs/OTPInput.spec.js +251 -238
  396. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  397. package/dist/recipes/inputs/OTPInput.svelte +29 -29
  398. package/dist/recipes/inputs/PasswordInput.spec.d.ts +2 -0
  399. package/dist/recipes/inputs/PasswordInput.spec.d.ts.map +1 -0
  400. package/dist/recipes/inputs/PasswordInput.spec.js +410 -0
  401. package/dist/recipes/inputs/PasswordInput.svelte +22 -22
  402. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +253 -173
  403. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +117 -117
  404. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte +71 -0
  405. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte.d.ts +9 -0
  406. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte.d.ts.map +1 -0
  407. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +1246 -300
  408. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
  409. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +326 -326
  410. package/dist/recipes/inputs/Search.spec.d.ts +2 -0
  411. package/dist/recipes/inputs/Search.spec.d.ts.map +1 -0
  412. package/dist/recipes/inputs/Search.spec.js +177 -0
  413. package/dist/recipes/inputs/Search.svelte +37 -37
  414. package/dist/recipes/inputs/SelectDropdown.spec.d.ts +2 -0
  415. package/dist/recipes/inputs/SelectDropdown.spec.d.ts.map +1 -0
  416. package/dist/recipes/inputs/SelectDropdown.spec.js +512 -0
  417. package/dist/recipes/inputs/SelectDropdown.svelte +57 -57
  418. package/dist/recipes/modals/AlertModal.spec.d.ts +2 -0
  419. package/dist/recipes/modals/AlertModal.spec.d.ts.map +1 -0
  420. package/dist/recipes/modals/AlertModal.spec.js +432 -0
  421. package/dist/recipes/modals/AlertModal.svelte +130 -130
  422. package/dist/recipes/modals/ConfirmationModal.spec.js +206 -191
  423. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  424. package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
  425. package/dist/recipes/modals/InputModal.spec.d.ts +2 -0
  426. package/dist/recipes/modals/InputModal.spec.d.ts.map +1 -0
  427. package/dist/recipes/modals/InputModal.spec.js +872 -0
  428. package/dist/recipes/modals/InputModal.svelte +182 -182
  429. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  430. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  431. package/dist/recipes/modals/ModalTestWrapper.spec.d.ts +2 -0
  432. package/dist/recipes/modals/ModalTestWrapper.spec.d.ts.map +1 -0
  433. package/dist/recipes/modals/ModalTestWrapper.spec.js +502 -0
  434. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  435. package/dist/recipes/modals/StatusModal.spec.d.ts +2 -0
  436. package/dist/recipes/modals/StatusModal.spec.d.ts.map +1 -0
  437. package/dist/recipes/modals/StatusModal.spec.js +599 -0
  438. package/dist/recipes/modals/StatusModal.svelte +206 -206
  439. package/dist/services/EventService.js +75 -75
  440. package/dist/services/EventService.spec.js +217 -217
  441. package/dist/services/ShowService.spec.js +345 -342
  442. package/dist/stores/auth.js +36 -36
  443. package/dist/stores/auth.spec.js +139 -139
  444. package/dist/stores/toaster.js +13 -13
  445. package/dist/stories/ButtonAuditDashboard.spec.d.ts +2 -0
  446. package/dist/stories/ButtonAuditDashboard.spec.d.ts.map +1 -0
  447. package/dist/stories/ButtonAuditDashboard.spec.js +913 -0
  448. package/dist/stories/ButtonAuditReview.spec.d.ts +2 -0
  449. package/dist/stories/ButtonAuditReview.spec.d.ts.map +1 -0
  450. package/dist/stories/ButtonAuditReview.spec.js +422 -0
  451. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  452. package/dist/stories/ButtonAuditReview.svelte +427 -427
  453. package/dist/stories/ButtonGridView.spec.d.ts +2 -0
  454. package/dist/stories/ButtonGridView.spec.d.ts.map +1 -0
  455. package/dist/stories/ButtonGridView.spec.js +667 -0
  456. package/dist/stories/ButtonShowcase.spec.d.ts +2 -0
  457. package/dist/stories/ButtonShowcase.spec.d.ts.map +1 -0
  458. package/dist/stories/ButtonShowcase.spec.js +499 -0
  459. package/dist/stories/PatternsGallery.spec.d.ts +2 -0
  460. package/dist/stories/PatternsGallery.spec.d.ts.map +1 -0
  461. package/dist/stories/PatternsGallery.spec.js +514 -0
  462. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  463. package/dist/stories/PatternsGallery.svelte +206 -206
  464. package/dist/stories/PrimitivesGallery.spec.d.ts +2 -0
  465. package/dist/stories/PrimitivesGallery.spec.d.ts.map +1 -0
  466. package/dist/stories/PrimitivesGallery.spec.js +813 -0
  467. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  468. package/dist/stories/PrimitivesGallery.svelte +725 -725
  469. package/dist/stories/RecipesGallery.spec.d.ts +2 -0
  470. package/dist/stories/RecipesGallery.spec.d.ts.map +1 -0
  471. package/dist/stories/RecipesGallery.spec.js +299 -0
  472. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  473. package/dist/stories/RecipesGallery.svelte +271 -271
  474. package/dist/stories/button-audit-manifest.json +11186 -11186
  475. package/dist/stripe/useStripeTheme.spec.d.ts +2 -0
  476. package/dist/stripe/useStripeTheme.spec.d.ts.map +1 -0
  477. package/dist/stripe/useStripeTheme.spec.js +793 -0
  478. package/dist/tailwind/preset.cjs +82 -82
  479. package/dist/telemetry.d.ts.map +1 -1
  480. package/dist/telemetry.js +405 -404
  481. package/dist/telemetry.spec.js +1144 -661
  482. package/dist/tokens/__tests__/colors.test.d.ts +2 -0
  483. package/dist/tokens/__tests__/colors.test.d.ts.map +1 -0
  484. package/dist/tokens/__tests__/colors.test.js +152 -0
  485. package/dist/tokens/__tests__/radius.test.d.ts +2 -0
  486. package/dist/tokens/__tests__/radius.test.d.ts.map +1 -0
  487. package/dist/tokens/__tests__/radius.test.js +118 -0
  488. package/dist/tokens/__tests__/shadows.test.d.ts +2 -0
  489. package/dist/tokens/__tests__/shadows.test.d.ts.map +1 -0
  490. package/dist/tokens/__tests__/shadows.test.js +105 -0
  491. package/dist/tokens/__tests__/spacing.test.js +11 -8
  492. package/dist/tokens/__tests__/typography-base.test.d.ts +2 -0
  493. package/dist/tokens/__tests__/typography-base.test.d.ts.map +1 -0
  494. package/dist/tokens/__tests__/typography-base.test.js +138 -0
  495. package/dist/tokens/__tests__/typography.test.d.ts +2 -0
  496. package/dist/tokens/__tests__/typography.test.d.ts.map +1 -0
  497. package/dist/tokens/__tests__/typography.test.js +156 -0
  498. package/dist/tokens/__tests__/z-index.test.d.ts +2 -0
  499. package/dist/tokens/__tests__/z-index.test.d.ts.map +1 -0
  500. package/dist/tokens/__tests__/z-index.test.js +121 -0
  501. package/dist/tokens/tokens.css +87 -87
  502. package/dist/tokens/typography-base.css +163 -0
  503. package/dist/utils/apiConfig.spec.js +219 -118
  504. package/dist/utils/formatters.spec.d.ts +2 -0
  505. package/dist/utils/formatters.spec.d.ts.map +1 -0
  506. package/dist/utils/formatters.spec.js +82 -0
  507. package/dist/utils/transitions.js +62 -62
  508. package/dist/utils/transitions.spec.d.ts +2 -0
  509. package/dist/utils/transitions.spec.d.ts.map +1 -0
  510. package/dist/utils/transitions.spec.js +130 -0
  511. package/dist/utils/utils.js +354 -354
  512. package/package.json +292 -286
@@ -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" />