@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,19 @@
1
+ import type { Snippet } from 'svelte';
2
+ type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';
3
+ type Mode = 'show-mobile' | 'show-desktop' | 'hide-mobile' | 'hide-desktop';
4
+ interface Props {
5
+ /** Visibility mode */
6
+ mode: Mode;
7
+ /** Breakpoint for mobile/desktop boundary */
8
+ breakpoint?: Breakpoint;
9
+ /** Display type when visible */
10
+ display?: 'block' | 'flex' | 'inline' | 'inline-block' | 'grid';
11
+ /** Additional CSS classes */
12
+ class?: string;
13
+ /** Child content */
14
+ children?: Snippet;
15
+ }
16
+ declare const Responsive: import("svelte").Component<Props, {}, "">;
17
+ type Responsive = ReturnType<typeof Responsive>;
18
+ export default Responsive;
19
+ //# sourceMappingURL=Responsive.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Responsive.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/Responsive.svelte.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,KAAK,IAAI,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;AAE5E,UAAU,KAAK;IACb,sBAAsB;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,6CAA6C;IAC7C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC;IAChE,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAwDH,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Section.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Section.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/Section.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ import { render, screen } from '@testing-library/svelte';
2
+ import { expect, describe, test } from 'vitest';
3
+ import Section from './Section.svelte';
4
+
5
+ describe('Section Component', () => {
6
+ test('renders a section element', () => {
7
+ const { container } = render(Section);
8
+ expect(container.querySelector('section')).toBeInTheDocument();
9
+ });
10
+
11
+ test('applies custom className', () => {
12
+ const { container } = render(Section, { props: { class: 'custom-section' } });
13
+ const section = container.querySelector('section');
14
+ expect(section).toHaveClass('custom-section');
15
+ });
16
+ });
17
+
18
+ describe('Section Title', () => {
19
+ test('no title renders no h2', () => {
20
+ const { container } = render(Section);
21
+ expect(container.querySelector('h2')).not.toBeInTheDocument();
22
+ });
23
+
24
+ test('title prop renders h2', () => {
25
+ render(Section, { props: { title: 'Recent Orders' } });
26
+ expect(screen.getByText('Recent Orders')).toBeInTheDocument();
27
+ });
28
+
29
+ test('title is in h2 element', () => {
30
+ const { container } = render(Section, { props: { title: 'Test Title' } });
31
+ const h2 = container.querySelector('h2');
32
+ expect(h2).toBeInTheDocument();
33
+ expect(h2).toHaveTextContent('Test Title');
34
+ });
35
+
36
+ test('title adds aria-label to section', () => {
37
+ const { container } = render(Section, { props: { title: 'Orders Section' } });
38
+ const section = container.querySelector('section');
39
+ expect(section).toHaveAttribute('aria-label', 'Orders Section');
40
+ });
41
+
42
+ test('no aria-label when no title', () => {
43
+ const { container } = render(Section);
44
+ const section = container.querySelector('section');
45
+ expect(section).not.toHaveAttribute('aria-label');
46
+ });
47
+ });
48
+
49
+ describe('Section Title Size', () => {
50
+ test('default titleSize=md applies h3 typography', () => {
51
+ const { container } = render(Section, { props: { title: 'Test' } });
52
+ const h2 = container.querySelector('h2');
53
+ // Check that h2 exists and has some styling
54
+ expect(h2).toBeInTheDocument();
55
+ });
56
+
57
+ test('titleSize=sm applies smaller typography', () => {
58
+ const { container } = render(Section, { props: { title: 'Test', titleSize: 'sm' } });
59
+ const h2 = container.querySelector('h2');
60
+ expect(h2).toBeInTheDocument();
61
+ });
62
+
63
+ test('titleSize=lg applies larger typography', () => {
64
+ const { container } = render(Section, { props: { title: 'Test', titleSize: 'lg' } });
65
+ const h2 = container.querySelector('h2');
66
+ expect(h2).toBeInTheDocument();
67
+ });
68
+ });
69
+
70
+ describe('Section Title Class', () => {
71
+ test('titleClass applies to h2', () => {
72
+ const { container } = render(Section, { props: { title: 'Test', titleClass: 'custom-title' } });
73
+ const h2 = container.querySelector('h2');
74
+ expect(h2).toHaveClass('custom-title');
75
+ });
76
+ });
77
+
78
+ describe('Section Gap', () => {
79
+ test('gap applies when title present', () => {
80
+ const { container } = render(Section, { props: { title: 'Test', gap: '4' } });
81
+ const section = container.querySelector('section');
82
+ expect(section).toHaveClass('space-y-4');
83
+ });
84
+
85
+ test('gap=2 applies space-y-2', () => {
86
+ const { container } = render(Section, { props: { title: 'Test', gap: '2' } });
87
+ const section = container.querySelector('section');
88
+ expect(section).toHaveClass('space-y-2');
89
+ });
90
+
91
+ test('gap=3 applies space-y-3', () => {
92
+ const { container } = render(Section, { props: { title: 'Test', gap: '3' } });
93
+ const section = container.querySelector('section');
94
+ expect(section).toHaveClass('space-y-3');
95
+ });
96
+
97
+ test('gap=6 applies space-y-6', () => {
98
+ const { container } = render(Section, { props: { title: 'Test', gap: '6' } });
99
+ const section = container.querySelector('section');
100
+ expect(section).toHaveClass('space-y-6');
101
+ });
102
+
103
+ test('no gap class when no title', () => {
104
+ const { container } = render(Section);
105
+ const section = container.querySelector('section');
106
+ expect(section).not.toHaveClass('space-y-4');
107
+ expect(section).not.toHaveClass('space-y-2');
108
+ });
109
+ });
110
+
111
+ describe('Section Combinations', () => {
112
+ test('title and titleSize', () => {
113
+ render(Section, { props: { title: 'Products', titleSize: 'lg' } });
114
+ expect(screen.getByText('Products')).toBeInTheDocument();
115
+ });
116
+
117
+ test('title with titleClass and custom class', () => {
118
+ const { container } = render(Section, {
119
+ props: {
120
+ title: 'Orders',
121
+ titleClass: 'text-blue-500',
122
+ class: 'my-section'
123
+ }
124
+ });
125
+ const section = container.querySelector('section');
126
+ const h2 = container.querySelector('h2');
127
+ expect(section).toHaveClass('my-section');
128
+ expect(h2).toHaveClass('text-blue-500');
129
+ });
130
+
131
+ test('all props together', () => {
132
+ const { container } = render(Section, {
133
+ props: {
134
+ title: 'Statistics',
135
+ titleSize: 'lg',
136
+ gap: '6',
137
+ class: 'bg-white',
138
+ titleClass: 'font-bold'
139
+ }
140
+ });
141
+ const section = container.querySelector('section');
142
+ expect(section).toHaveClass('bg-white');
143
+ expect(section).toHaveClass('space-y-6');
144
+ expect(section).toHaveAttribute('aria-label', 'Statistics');
145
+ const h2 = container.querySelector('h2');
146
+ expect(h2).toHaveClass('font-bold');
147
+ expect(h2).toHaveTextContent('Statistics');
148
+ });
149
+ });
@@ -1,80 +1,80 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import { typography } from '../../tokens/typography';
4
-
5
- /**
6
- * Section - Semantic section wrapper with optional title
7
- *
8
- * Use Section to group related content with consistent spacing.
9
- * Provides proper HTML5 semantics with <section> element.
10
- *
11
- * @example
12
- * <Section title="Recent Orders">
13
- * <OrdersTable />
14
- * </Section>
15
- *
16
- * @example
17
- * <Section>
18
- * <Chart />
19
- * </Section>
20
- */
21
-
22
- interface Props {
23
- /** Section title (optional) */
24
- title?: string;
25
- /** Title size */
26
- titleSize?: 'sm' | 'md' | 'lg';
27
- /** Gap between title and content */
28
- gap?: '2' | '3' | '4' | '6';
29
- /** Additional CSS classes for the section */
30
- class?: string;
31
- /** Additional CSS classes for the title */
32
- titleClass?: string;
33
- /** Child content */
34
- children?: Snippet;
35
- }
36
-
37
- let {
38
- title = '',
39
- titleSize = 'md',
40
- gap = '4',
41
- class: className = '',
42
- titleClass = '',
43
- children
44
- }: Props = $props();
45
-
46
- const titleSizeMap: Record<string, string> = {
47
- sm: typography.h4,
48
- md: typography.h3,
49
- lg: typography.h2
50
- };
51
-
52
- const gapMap: Record<string, string> = {
53
- '2': 'space-y-2',
54
- '3': 'space-y-3',
55
- '4': 'space-y-4',
56
- '6': 'space-y-6'
57
- };
58
-
59
- let sectionClasses = $derived(
60
- [
61
- title ? gapMap[gap] || 'space-y-4' : '',
62
- className
63
- ].filter(Boolean).join(' ')
64
- );
65
-
66
- let titleClasses = $derived(
67
- [
68
- titleSizeMap[titleSize] || titleSizeMap.md,
69
- titleClass
70
- ].filter(Boolean).join(' ')
71
- );
72
- </script>
73
-
74
- <section class={sectionClasses} aria-label={title || undefined}>
75
- {#if title}
76
- <h2 class={titleClasses}>{title}</h2>
77
- {/if}
78
-
79
- {@render children?.()}
80
- </section>
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { typography } from '../../tokens/typography';
4
+
5
+ /**
6
+ * Section - Semantic section wrapper with optional title
7
+ *
8
+ * Use Section to group related content with consistent spacing.
9
+ * Provides proper HTML5 semantics with <section> element.
10
+ *
11
+ * @example
12
+ * <Section title="Recent Orders">
13
+ * <OrdersTable />
14
+ * </Section>
15
+ *
16
+ * @example
17
+ * <Section>
18
+ * <Chart />
19
+ * </Section>
20
+ */
21
+
22
+ interface Props {
23
+ /** Section title (optional) */
24
+ title?: string;
25
+ /** Title size */
26
+ titleSize?: 'sm' | 'md' | 'lg';
27
+ /** Gap between title and content */
28
+ gap?: '2' | '3' | '4' | '6';
29
+ /** Additional CSS classes for the section */
30
+ class?: string;
31
+ /** Additional CSS classes for the title */
32
+ titleClass?: string;
33
+ /** Child content */
34
+ children?: Snippet;
35
+ }
36
+
37
+ let {
38
+ title = '',
39
+ titleSize = 'md',
40
+ gap = '4',
41
+ class: className = '',
42
+ titleClass = '',
43
+ children
44
+ }: Props = $props();
45
+
46
+ const titleSizeMap: Record<string, string> = {
47
+ sm: typography.h4,
48
+ md: typography.h3,
49
+ lg: typography.h2
50
+ };
51
+
52
+ const gapMap: Record<string, string> = {
53
+ '2': 'space-y-2',
54
+ '3': 'space-y-3',
55
+ '4': 'space-y-4',
56
+ '6': 'space-y-6'
57
+ };
58
+
59
+ let sectionClasses = $derived(
60
+ [
61
+ title ? gapMap[gap] || 'space-y-4' : '',
62
+ className
63
+ ].filter(Boolean).join(' ')
64
+ );
65
+
66
+ let titleClasses = $derived(
67
+ [
68
+ titleSizeMap[titleSize] || titleSizeMap.md,
69
+ titleClass
70
+ ].filter(Boolean).join(' ')
71
+ );
72
+ </script>
73
+
74
+ <section class={sectionClasses} aria-label={title || undefined}>
75
+ {#if title}
76
+ <h2 class={titleClasses}>{title}</h2>
77
+ {/if}
78
+
79
+ {@render children?.()}
80
+ </section>
@@ -0,0 +1,37 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';
5
+
6
+ interface Props {
7
+ /** Breakpoint for mobile/desktop boundary */
8
+ breakpoint?: Breakpoint;
9
+ /** Display type when visible */
10
+ display?: 'block' | 'flex' | 'inline' | 'inline-block' | 'grid';
11
+ /** Additional CSS classes */
12
+ class?: string;
13
+ /** Child content */
14
+ children?: Snippet;
15
+ }
16
+
17
+ let {
18
+ breakpoint = 'lg',
19
+ display = 'block',
20
+ class: className = '',
21
+ children,
22
+ }: Props = $props();
23
+
24
+ const displayClasses: Record<string, string> = {
25
+ block: 'block',
26
+ flex: 'flex',
27
+ inline: 'inline',
28
+ 'inline-block': 'inline-block',
29
+ grid: 'grid',
30
+ };
31
+
32
+ let classes = $derived(`hidden ${breakpoint}:${displayClasses[display]} ${className}`.trim());
33
+ </script>
34
+
35
+ <div class={classes}>
36
+ {#if children}{@render children()}{/if}
37
+ </div>
@@ -0,0 +1,16 @@
1
+ import type { Snippet } from 'svelte';
2
+ type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';
3
+ interface Props {
4
+ /** Breakpoint for mobile/desktop boundary */
5
+ breakpoint?: Breakpoint;
6
+ /** Display type when visible */
7
+ display?: 'block' | 'flex' | 'inline' | 'inline-block' | 'grid';
8
+ /** Additional CSS classes */
9
+ class?: string;
10
+ /** Child content */
11
+ children?: Snippet;
12
+ }
13
+ declare const ShowOnDesktop: import("svelte").Component<Props, {}, "">;
14
+ type ShowOnDesktop = ReturnType<typeof ShowOnDesktop>;
15
+ export default ShowOnDesktop;
16
+ //# sourceMappingURL=ShowOnDesktop.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShowOnDesktop.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/ShowOnDesktop.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,UAAU,KAAK;IACb,6CAA6C;IAC7C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC;IAChE,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA8BH,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,37 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';
5
+
6
+ interface Props {
7
+ /** Breakpoint for mobile/desktop boundary */
8
+ breakpoint?: Breakpoint;
9
+ /** Display type when visible */
10
+ display?: 'block' | 'flex' | 'inline' | 'inline-block' | 'grid';
11
+ /** Additional CSS classes */
12
+ class?: string;
13
+ /** Child content */
14
+ children?: Snippet;
15
+ }
16
+
17
+ let {
18
+ breakpoint = 'lg',
19
+ display = 'block',
20
+ class: className = '',
21
+ children,
22
+ }: Props = $props();
23
+
24
+ const displayClasses: Record<string, string> = {
25
+ block: 'block',
26
+ flex: 'flex',
27
+ inline: 'inline',
28
+ 'inline-block': 'inline-block',
29
+ grid: 'grid',
30
+ };
31
+
32
+ let classes = $derived(`${displayClasses[display]} ${breakpoint}:hidden ${className}`.trim());
33
+ </script>
34
+
35
+ <div class={classes}>
36
+ {#if children}{@render children()}{/if}
37
+ </div>
@@ -0,0 +1,16 @@
1
+ import type { Snippet } from 'svelte';
2
+ type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';
3
+ interface Props {
4
+ /** Breakpoint for mobile/desktop boundary */
5
+ breakpoint?: Breakpoint;
6
+ /** Display type when visible */
7
+ display?: 'block' | 'flex' | 'inline' | 'inline-block' | 'grid';
8
+ /** Additional CSS classes */
9
+ class?: string;
10
+ /** Child content */
11
+ children?: Snippet;
12
+ }
13
+ declare const ShowOnMobile: import("svelte").Component<Props, {}, "">;
14
+ type ShowOnMobile = ReturnType<typeof ShowOnMobile>;
15
+ export default ShowOnMobile;
16
+ //# sourceMappingURL=ShowOnMobile.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShowOnMobile.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/ShowOnMobile.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,UAAU,KAAK;IACb,6CAA6C;IAC7C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC;IAChE,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA8BH,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Sidebar.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/Sidebar.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,186 @@
1
+ import { render } from '@testing-library/svelte';
2
+ import { expect, describe, test } from 'vitest';
3
+ import Sidebar from './Sidebar.svelte';
4
+
5
+ describe('Sidebar Component', () => {
6
+ test('renders a grid container', () => {
7
+ const { container } = render(Sidebar);
8
+ const grid = container.querySelector('div');
9
+ expect(grid).toHaveClass('grid');
10
+ });
11
+
12
+ test('has lg:grid-cols-12', () => {
13
+ const { container } = render(Sidebar);
14
+ const grid = container.querySelector('div');
15
+ expect(grid).toHaveClass('lg:grid-cols-12');
16
+ });
17
+
18
+ test('applies custom className', () => {
19
+ const { container } = render(Sidebar, { props: { class: 'custom-sidebar' } });
20
+ const grid = container.querySelector('div');
21
+ expect(grid).toHaveClass('custom-sidebar');
22
+ });
23
+
24
+ test('renders main content area', () => {
25
+ const { container } = render(Sidebar);
26
+ const divs = container.querySelectorAll('div');
27
+ // Main container + main content div + aside
28
+ expect(divs.length).toBeGreaterThanOrEqual(2);
29
+ });
30
+
31
+ test('renders aside element', () => {
32
+ const { container } = render(Sidebar);
33
+ expect(container.querySelector('aside')).toBeInTheDocument();
34
+ });
35
+ });
36
+
37
+ describe('Sidebar Stack On Mobile', () => {
38
+ test('default stackOnMobile=true applies grid-cols-1', () => {
39
+ const { container } = render(Sidebar);
40
+ const grid = container.querySelector('div');
41
+ expect(grid).toHaveClass('grid-cols-1');
42
+ });
43
+
44
+ test('stackOnMobile=false does not apply grid-cols-1', () => {
45
+ const { container } = render(Sidebar, { props: { stackOnMobile: false } });
46
+ const grid = container.querySelector('div');
47
+ expect(grid).not.toHaveClass('grid-cols-1');
48
+ });
49
+ });
50
+
51
+ describe('Sidebar Width', () => {
52
+ test('default sidebarWidth=medium applies lg:col-span-4 to sidebar', () => {
53
+ const { container } = render(Sidebar);
54
+ const aside = container.querySelector('aside');
55
+ expect(aside).toHaveClass('lg:col-span-4');
56
+ });
57
+
58
+ test('default sidebarWidth=medium applies lg:col-span-8 to main', () => {
59
+ const { container } = render(Sidebar);
60
+ const grid = container.querySelector('.grid');
61
+ const mainDiv = grid.querySelector('div.col-span-1');
62
+ expect(mainDiv).toHaveClass('lg:col-span-8');
63
+ });
64
+
65
+ test('sidebarWidth=narrow applies lg:col-span-3 to sidebar', () => {
66
+ const { container } = render(Sidebar, { props: { sidebarWidth: 'narrow' } });
67
+ const aside = container.querySelector('aside');
68
+ expect(aside).toHaveClass('lg:col-span-3');
69
+ });
70
+
71
+ test('sidebarWidth=narrow applies lg:col-span-9 to main', () => {
72
+ const { container } = render(Sidebar, { props: { sidebarWidth: 'narrow' } });
73
+ const grid = container.querySelector('.grid');
74
+ const mainDiv = grid.querySelector('div.col-span-1');
75
+ expect(mainDiv).toHaveClass('lg:col-span-9');
76
+ });
77
+
78
+ test('sidebarWidth=wide applies lg:col-span-5 to sidebar', () => {
79
+ const { container } = render(Sidebar, { props: { sidebarWidth: 'wide' } });
80
+ const aside = container.querySelector('aside');
81
+ expect(aside).toHaveClass('lg:col-span-5');
82
+ });
83
+
84
+ test('sidebarWidth=wide applies lg:col-span-7 to main', () => {
85
+ const { container } = render(Sidebar, { props: { sidebarWidth: 'wide' } });
86
+ const grid = container.querySelector('.grid');
87
+ const mainDiv = grid.querySelector('div.col-span-1');
88
+ expect(mainDiv).toHaveClass('lg:col-span-7');
89
+ });
90
+ });
91
+
92
+ describe('Sidebar Position', () => {
93
+ test('default sidebarPosition=right applies lg:order-2 to sidebar', () => {
94
+ const { container } = render(Sidebar);
95
+ const aside = container.querySelector('aside');
96
+ expect(aside).toHaveClass('lg:order-2');
97
+ });
98
+
99
+ test('default sidebarPosition=right applies lg:order-1 to main', () => {
100
+ const { container } = render(Sidebar);
101
+ const grid = container.querySelector('.grid');
102
+ const mainDiv = grid.querySelector('div.col-span-1');
103
+ expect(mainDiv).toHaveClass('lg:order-1');
104
+ });
105
+
106
+ test('sidebarPosition=left applies lg:order-1 to sidebar', () => {
107
+ const { container } = render(Sidebar, { props: { sidebarPosition: 'left' } });
108
+ const aside = container.querySelector('aside');
109
+ expect(aside).toHaveClass('lg:order-1');
110
+ });
111
+
112
+ test('sidebarPosition=left applies lg:order-2 to main', () => {
113
+ const { container } = render(Sidebar, { props: { sidebarPosition: 'left' } });
114
+ const grid = container.querySelector('.grid');
115
+ const mainDiv = grid.querySelector('div.col-span-1');
116
+ expect(mainDiv).toHaveClass('lg:order-2');
117
+ });
118
+ });
119
+
120
+ describe('Sidebar Gap', () => {
121
+ test('default gap=6 applies gap-6', () => {
122
+ const { container } = render(Sidebar);
123
+ const grid = container.querySelector('div');
124
+ expect(grid).toHaveClass('gap-6');
125
+ });
126
+
127
+ test('gap=4 applies gap-4', () => {
128
+ const { container } = render(Sidebar, { props: { gap: '4' } });
129
+ const grid = container.querySelector('div');
130
+ expect(grid).toHaveClass('gap-4');
131
+ });
132
+
133
+ test('gap=8 applies gap-8', () => {
134
+ const { container } = render(Sidebar, { props: { gap: '8' } });
135
+ const grid = container.querySelector('div');
136
+ expect(grid).toHaveClass('gap-8');
137
+ });
138
+ });
139
+
140
+ describe('Sidebar Combinations', () => {
141
+ test('narrow left sidebar', () => {
142
+ const { container } = render(Sidebar, {
143
+ props: { sidebarWidth: 'narrow', sidebarPosition: 'left' }
144
+ });
145
+ const aside = container.querySelector('aside');
146
+ expect(aside).toHaveClass('lg:col-span-3');
147
+ expect(aside).toHaveClass('lg:order-1');
148
+ });
149
+
150
+ test('wide right sidebar with gap', () => {
151
+ const { container } = render(Sidebar, {
152
+ props: { sidebarWidth: 'wide', gap: '8' }
153
+ });
154
+ const grid = container.querySelector('div');
155
+ const aside = container.querySelector('aside');
156
+ expect(grid).toHaveClass('gap-8');
157
+ expect(aside).toHaveClass('lg:col-span-5');
158
+ });
159
+
160
+ test('all props together', () => {
161
+ const { container } = render(Sidebar, {
162
+ props: {
163
+ sidebarWidth: 'wide',
164
+ sidebarPosition: 'left',
165
+ gap: '8',
166
+ stackOnMobile: false,
167
+ class: 'custom-layout'
168
+ }
169
+ });
170
+ const grid = container.querySelector('.grid');
171
+ const aside = container.querySelector('aside');
172
+ const mainDiv = grid.querySelector('div.col-span-1');
173
+
174
+ expect(grid).toHaveClass('grid');
175
+ expect(grid).toHaveClass('lg:grid-cols-12');
176
+ expect(grid).toHaveClass('gap-8');
177
+ expect(grid).toHaveClass('custom-layout');
178
+ expect(grid).not.toHaveClass('grid-cols-1');
179
+
180
+ expect(aside).toHaveClass('lg:col-span-5');
181
+ expect(aside).toHaveClass('lg:order-1');
182
+
183
+ expect(mainDiv).toHaveClass('lg:col-span-7');
184
+ expect(mainDiv).toHaveClass('lg:order-2');
185
+ });
186
+ });