@getmicdrop/svelte-components 5.4.1 → 5.4.2

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 (536) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +172 -172
  2. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
  3. package/dist/calendar/FAQs/FAQs.svelte +75 -75
  4. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
  5. package/dist/calendar/OrderSummary/OrderSummary.svelte +367 -367
  6. package/dist/calendar/PublicCard/PublicCard.svelte +146 -145
  7. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  8. package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
  9. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
  10. package/dist/calendar/index.d.ts +9 -0
  11. package/dist/calendar/index.d.ts.map +1 -0
  12. package/dist/calendar/index.js +15 -0
  13. package/dist/components/Layout/Grid.spec.d.ts +2 -0
  14. package/dist/components/Layout/Grid.spec.d.ts.map +1 -0
  15. package/dist/components/Layout/Grid.spec.js +230 -0
  16. package/dist/components/Layout/Grid.svelte +101 -109
  17. package/dist/components/Layout/Grid.svelte.d.ts +16 -6
  18. package/dist/components/Layout/Grid.svelte.d.ts.map +1 -1
  19. package/dist/components/Layout/Section.svelte +80 -80
  20. package/dist/components/Layout/Sidebar.svelte +108 -108
  21. package/dist/components/Layout/Stack.spec.d.ts +2 -0
  22. package/dist/components/Layout/Stack.spec.d.ts.map +1 -0
  23. package/dist/components/Layout/Stack.spec.js +257 -0
  24. package/dist/components/Layout/Stack.svelte +52 -90
  25. package/dist/components/Layout/Stack.svelte.d.ts +4 -6
  26. package/dist/components/Layout/Stack.svelte.d.ts.map +1 -1
  27. package/dist/components/Layout/__tests__/Grid.test.d.ts +2 -0
  28. package/dist/components/Layout/__tests__/Grid.test.d.ts.map +1 -0
  29. package/dist/components/Layout/__tests__/Grid.test.js +246 -0
  30. package/dist/components/Layout/__tests__/Stack.test.d.ts +2 -0
  31. package/dist/components/Layout/__tests__/Stack.test.d.ts.map +1 -0
  32. package/dist/components/Layout/__tests__/Stack.test.js +267 -0
  33. package/dist/constants/formOptions.spec.d.ts.map +1 -1
  34. package/dist/constants/formOptions.spec.js +69 -82
  35. package/dist/constants/validation.js +91 -91
  36. package/dist/constants/validation.spec.js +64 -64
  37. package/dist/datetime/__tests__/format.test.js +81 -1
  38. package/dist/datetime/format.d.ts +74 -0
  39. package/dist/datetime/format.d.ts.map +1 -1
  40. package/dist/datetime/format.js +104 -0
  41. package/dist/datetime/index.d.ts +1 -1
  42. package/dist/datetime/index.d.ts.map +1 -1
  43. package/dist/datetime/index.js +1 -1
  44. package/dist/datetime/timezone.d.ts.map +1 -1
  45. package/dist/datetime/timezone.js +2 -0
  46. package/dist/datetime/types.d.ts +4 -0
  47. package/dist/datetime/types.d.ts.map +1 -1
  48. package/dist/forms/createFormStore.svelte.d.ts.map +1 -1
  49. package/dist/forms/createFormStore.svelte.js +3 -2
  50. package/dist/index.d.ts +4 -112
  51. package/dist/index.js +47 -223
  52. package/dist/index.spec.d.ts +2 -0
  53. package/dist/index.spec.d.ts.map +1 -0
  54. package/dist/index.spec.js +370 -0
  55. package/dist/patterns/data/DataGrid.svelte +45 -45
  56. package/dist/patterns/data/DataList.svelte +24 -24
  57. package/dist/patterns/data/DataTable.svelte +41 -41
  58. package/dist/patterns/data/index.d.ts +4 -0
  59. package/dist/patterns/data/index.d.ts.map +1 -0
  60. package/dist/patterns/data/index.js +4 -0
  61. package/dist/patterns/forms/FormActions.spec.js +88 -88
  62. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  63. package/dist/patterns/forms/FormActions.svelte +46 -46
  64. package/dist/patterns/forms/FormGrid.svelte +33 -33
  65. package/dist/patterns/forms/FormSection.svelte +32 -32
  66. package/dist/patterns/forms/FormValidationSummary.spec.d.ts.map +1 -1
  67. package/dist/patterns/forms/FormValidationSummary.spec.js +181 -203
  68. package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
  69. package/dist/patterns/forms/FormValidationSummary.svelte +74 -67
  70. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +8 -16
  71. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
  72. package/dist/patterns/forms/index.d.ts +5 -0
  73. package/dist/patterns/forms/index.d.ts.map +1 -0
  74. package/dist/patterns/forms/index.js +5 -0
  75. package/dist/patterns/index.d.ts +6 -0
  76. package/dist/patterns/index.d.ts.map +1 -0
  77. package/dist/patterns/index.js +18 -0
  78. package/dist/patterns/layout/Sidebar.svelte +39 -39
  79. package/dist/patterns/layout/Stack.svelte +61 -45
  80. package/dist/patterns/layout/Stack.svelte.d.ts +35 -21
  81. package/dist/patterns/layout/Stack.svelte.d.ts.map +1 -1
  82. package/dist/patterns/layout/index.d.ts +5 -0
  83. package/dist/patterns/layout/index.d.ts.map +1 -0
  84. package/dist/patterns/layout/index.js +6 -0
  85. package/dist/patterns/navigation/BottomNav.spec.d.ts.map +1 -1
  86. package/dist/patterns/navigation/BottomNav.spec.js +104 -130
  87. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  88. package/dist/patterns/navigation/BottomNav.svelte +64 -54
  89. package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -10
  90. package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
  91. package/dist/patterns/navigation/Header.spec.d.ts.map +1 -1
  92. package/dist/patterns/navigation/Header.spec.js +161 -203
  93. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  94. package/dist/patterns/navigation/Header.svelte +255 -240
  95. package/dist/patterns/navigation/Header.svelte.d.ts +12 -19
  96. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  97. package/dist/patterns/navigation/index.d.ts +3 -0
  98. package/dist/patterns/navigation/index.d.ts.map +1 -0
  99. package/dist/patterns/navigation/index.js +3 -0
  100. package/dist/patterns/page/PageHeader.svelte +49 -36
  101. package/dist/patterns/page/PageHeader.svelte.d.ts +12 -18
  102. package/dist/patterns/page/PageHeader.svelte.d.ts.map +1 -1
  103. package/dist/patterns/page/PageLayout.svelte +40 -40
  104. package/dist/patterns/page/PageLoader.spec.js +54 -54
  105. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  106. package/dist/patterns/page/PageLoader.svelte +53 -41
  107. package/dist/patterns/page/PageLoader.svelte.d.ts +9 -20
  108. package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
  109. package/dist/patterns/page/SectionHeader.svelte +51 -41
  110. package/dist/patterns/page/SectionHeader.svelte.d.ts +8 -17
  111. package/dist/patterns/page/SectionHeader.svelte.d.ts.map +1 -1
  112. package/dist/patterns/page/index.d.ts +5 -0
  113. package/dist/patterns/page/index.d.ts.map +1 -0
  114. package/dist/patterns/page/index.js +5 -0
  115. package/dist/presets/badges.js +112 -112
  116. package/dist/presets/buttons.js +76 -76
  117. package/dist/presets/index.js +9 -9
  118. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  119. package/dist/primitives/Accordion/Accordion.svelte +62 -61
  120. package/dist/primitives/Accordion/Accordion.svelte.d.ts.map +1 -1
  121. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  122. package/dist/primitives/Alert/Alert.spec.js +170 -170
  123. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  124. package/dist/primitives/Alert/Alert.svelte +64 -65
  125. package/dist/primitives/Alert/Alert.svelte.d.ts +2 -1
  126. package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
  127. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  128. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  129. package/dist/primitives/Badges/Badge.spec.js +103 -103
  130. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  131. package/dist/primitives/Badges/Badge.svelte +99 -142
  132. package/dist/primitives/Badges/Badge.svelte.d.ts +4 -2
  133. package/dist/primitives/Badges/Badge.svelte.d.ts.map +1 -1
  134. package/dist/primitives/BottomSheet/BottomSheet.spec.js +127 -127
  135. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  136. package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
  137. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +120 -120
  138. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  139. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +89 -89
  140. package/dist/primitives/Button/Button.spec.js +211 -211
  141. package/dist/primitives/Button/Button.stories.svelte +76 -76
  142. package/dist/primitives/Button/Button.svelte +269 -301
  143. package/dist/primitives/Button/Button.svelte.d.ts +10 -26
  144. package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
  145. package/dist/primitives/Button/ButtonSaveDemo.spec.js +48 -48
  146. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  147. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  148. package/dist/primitives/Card.spec.js +49 -49
  149. package/dist/primitives/Card.stories.svelte +22 -22
  150. package/dist/primitives/Card.svelte +28 -28
  151. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  152. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  153. package/dist/primitives/DarkModeToggle.spec.js +357 -357
  154. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  155. package/dist/primitives/DarkModeToggle.svelte +136 -136
  156. package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
  157. package/dist/primitives/Drawer/Drawer.svelte +236 -214
  158. package/dist/primitives/Drawer/Drawer.svelte.d.ts +12 -31
  159. package/dist/primitives/Drawer/Drawer.svelte.d.ts.map +1 -1
  160. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  161. package/dist/primitives/Dropdown/Dropdown.svelte +160 -148
  162. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +9 -18
  163. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  164. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  165. package/dist/primitives/Icons/ArrowLeft.svelte +21 -20
  166. package/dist/primitives/Icons/ArrowLeft.svelte.d.ts +2 -0
  167. package/dist/primitives/Icons/ArrowLeft.svelte.d.ts.map +1 -1
  168. package/dist/primitives/Icons/ArrowRight.svelte +21 -20
  169. package/dist/primitives/Icons/ArrowRight.svelte.d.ts +2 -0
  170. package/dist/primitives/Icons/ArrowRight.svelte.d.ts.map +1 -1
  171. package/dist/primitives/Icons/Availability.svelte +27 -26
  172. package/dist/primitives/Icons/Availability.svelte.d.ts +2 -0
  173. package/dist/primitives/Icons/Availability.svelte.d.ts.map +1 -1
  174. package/dist/primitives/Icons/Back.svelte +27 -26
  175. package/dist/primitives/Icons/Back.svelte.d.ts +2 -0
  176. package/dist/primitives/Icons/Back.svelte.d.ts.map +1 -1
  177. package/dist/primitives/Icons/CheckCircle.svelte +19 -18
  178. package/dist/primitives/Icons/CheckCircle.svelte.d.ts +2 -0
  179. package/dist/primitives/Icons/CheckCircle.svelte.d.ts.map +1 -1
  180. package/dist/primitives/Icons/CheckCircleOutline.svelte +28 -27
  181. package/dist/primitives/Icons/CheckCircleOutline.svelte.d.ts +2 -0
  182. package/dist/primitives/Icons/CheckCircleOutline.svelte.d.ts.map +1 -1
  183. package/dist/primitives/Icons/CheckCircleSolid.svelte +12 -10
  184. package/dist/primitives/Icons/CheckCircleSolid.svelte.d.ts +4 -0
  185. package/dist/primitives/Icons/CheckCircleSolid.svelte.d.ts.map +1 -1
  186. package/dist/primitives/Icons/CheckOutline.svelte +15 -13
  187. package/dist/primitives/Icons/CheckOutline.svelte.d.ts +4 -0
  188. package/dist/primitives/Icons/CheckOutline.svelte.d.ts.map +1 -1
  189. package/dist/primitives/Icons/ChevronDownOutline.svelte +14 -12
  190. package/dist/primitives/Icons/ChevronDownOutline.svelte.d.ts +4 -0
  191. package/dist/primitives/Icons/ChevronDownOutline.svelte.d.ts.map +1 -1
  192. package/dist/primitives/Icons/ChevronLeft.svelte +17 -16
  193. package/dist/primitives/Icons/ChevronLeft.svelte.d.ts +2 -0
  194. package/dist/primitives/Icons/ChevronLeft.svelte.d.ts.map +1 -1
  195. package/dist/primitives/Icons/ChevronLeftOutline.svelte +14 -12
  196. package/dist/primitives/Icons/ChevronLeftOutline.svelte.d.ts +4 -0
  197. package/dist/primitives/Icons/ChevronLeftOutline.svelte.d.ts.map +1 -1
  198. package/dist/primitives/Icons/ChevronRight.svelte +17 -16
  199. package/dist/primitives/Icons/ChevronRight.svelte.d.ts +2 -0
  200. package/dist/primitives/Icons/ChevronRight.svelte.d.ts.map +1 -1
  201. package/dist/primitives/Icons/ChevronRightOutline.svelte +14 -12
  202. package/dist/primitives/Icons/ChevronRightOutline.svelte.d.ts +4 -0
  203. package/dist/primitives/Icons/ChevronRightOutline.svelte.d.ts.map +1 -1
  204. package/dist/primitives/Icons/ChevronUpOutline.svelte +14 -12
  205. package/dist/primitives/Icons/ChevronUpOutline.svelte.d.ts +4 -0
  206. package/dist/primitives/Icons/ChevronUpOutline.svelte.d.ts.map +1 -1
  207. package/dist/primitives/Icons/CloseCircleOutline.svelte +14 -12
  208. package/dist/primitives/Icons/CloseCircleOutline.svelte.d.ts +4 -0
  209. package/dist/primitives/Icons/CloseCircleOutline.svelte.d.ts.map +1 -1
  210. package/dist/primitives/Icons/CloseOutline.svelte +14 -12
  211. package/dist/primitives/Icons/CloseOutline.svelte.d.ts +4 -0
  212. package/dist/primitives/Icons/CloseOutline.svelte.d.ts.map +1 -1
  213. package/dist/primitives/Icons/Copy.svelte +28 -27
  214. package/dist/primitives/Icons/Copy.svelte.d.ts +2 -0
  215. package/dist/primitives/Icons/Copy.svelte.d.ts.map +1 -1
  216. package/dist/primitives/Icons/Cross.svelte +18 -17
  217. package/dist/primitives/Icons/Cross.svelte.d.ts +2 -0
  218. package/dist/primitives/Icons/Cross.svelte.d.ts.map +1 -1
  219. package/dist/primitives/Icons/DotsHorizontalOutline.svelte +12 -10
  220. package/dist/primitives/Icons/DotsHorizontalOutline.svelte.d.ts +4 -0
  221. package/dist/primitives/Icons/DotsHorizontalOutline.svelte.d.ts.map +1 -1
  222. package/dist/primitives/Icons/DownArrow.svelte +21 -20
  223. package/dist/primitives/Icons/DownArrow.svelte.d.ts +2 -0
  224. package/dist/primitives/Icons/DownArrow.svelte.d.ts.map +1 -1
  225. package/dist/primitives/Icons/ErrorCircle.svelte +19 -18
  226. package/dist/primitives/Icons/ErrorCircle.svelte.d.ts +2 -0
  227. package/dist/primitives/Icons/ErrorCircle.svelte.d.ts.map +1 -1
  228. package/dist/primitives/Icons/ExclamationCircleOutline.svelte +14 -12
  229. package/dist/primitives/Icons/ExclamationCircleOutline.svelte.d.ts +4 -0
  230. package/dist/primitives/Icons/ExclamationCircleOutline.svelte.d.ts.map +1 -1
  231. package/dist/primitives/Icons/ExclamationTriangleOutline.svelte +14 -12
  232. package/dist/primitives/Icons/ExclamationTriangleOutline.svelte.d.ts +4 -0
  233. package/dist/primitives/Icons/ExclamationTriangleOutline.svelte.d.ts.map +1 -1
  234. package/dist/primitives/Icons/EyeOutline.svelte +14 -12
  235. package/dist/primitives/Icons/EyeOutline.svelte.d.ts +4 -0
  236. package/dist/primitives/Icons/EyeOutline.svelte.d.ts.map +1 -1
  237. package/dist/primitives/Icons/EyeSlashOutline.svelte +14 -12
  238. package/dist/primitives/Icons/EyeSlashOutline.svelte.d.ts +4 -0
  239. package/dist/primitives/Icons/EyeSlashOutline.svelte.d.ts.map +1 -1
  240. package/dist/primitives/Icons/FacebookIcon.svelte +15 -13
  241. package/dist/primitives/Icons/FacebookIcon.svelte.d.ts +2 -0
  242. package/dist/primitives/Icons/FacebookIcon.svelte.d.ts.map +1 -1
  243. package/dist/primitives/Icons/FileCopyOutline.svelte +14 -12
  244. package/dist/primitives/Icons/FileCopyOutline.svelte.d.ts +4 -0
  245. package/dist/primitives/Icons/FileCopyOutline.svelte.d.ts.map +1 -1
  246. package/dist/primitives/Icons/Home.svelte +28 -27
  247. package/dist/primitives/Icons/Home.svelte.d.ts +2 -0
  248. package/dist/primitives/Icons/Home.svelte.d.ts.map +1 -1
  249. package/dist/primitives/Icons/HomeSolid.svelte +12 -10
  250. package/dist/primitives/Icons/HomeSolid.svelte.d.ts +4 -0
  251. package/dist/primitives/Icons/HomeSolid.svelte.d.ts.map +1 -1
  252. package/dist/primitives/Icons/Icon.spec.js +175 -175
  253. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  254. package/dist/primitives/Icons/Icon.svelte +79 -63
  255. package/dist/primitives/Icons/Icon.svelte.d.ts +5 -3
  256. package/dist/primitives/Icons/Icon.svelte.d.ts.map +1 -1
  257. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  258. package/dist/primitives/Icons/Icons.spec.d.ts +8 -0
  259. package/dist/primitives/Icons/Icons.spec.d.ts.map +1 -0
  260. package/dist/primitives/Icons/Icons.spec.js +291 -0
  261. package/dist/primitives/Icons/ImageOutline.svelte +21 -19
  262. package/dist/primitives/Icons/ImageOutline.svelte.d.ts +6 -2
  263. package/dist/primitives/Icons/ImageOutline.svelte.d.ts.map +1 -1
  264. package/dist/primitives/Icons/Info.svelte +20 -19
  265. package/dist/primitives/Icons/Info.svelte.d.ts +2 -0
  266. package/dist/primitives/Icons/Info.svelte.d.ts.map +1 -1
  267. package/dist/primitives/Icons/InfoCircleOutline.svelte +14 -12
  268. package/dist/primitives/Icons/InfoCircleOutline.svelte.d.ts +4 -0
  269. package/dist/primitives/Icons/InfoCircleOutline.svelte.d.ts.map +1 -1
  270. package/dist/primitives/Icons/InstagramIcon.svelte +21 -19
  271. package/dist/primitives/Icons/InstagramIcon.svelte.d.ts +2 -0
  272. package/dist/primitives/Icons/InstagramIcon.svelte.d.ts.map +1 -1
  273. package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
  274. package/dist/primitives/Icons/LogoInstagram.svelte.d.ts +4 -2
  275. package/dist/primitives/Icons/LogoInstagram.svelte.d.ts.map +1 -1
  276. package/dist/primitives/Icons/Message.svelte +28 -27
  277. package/dist/primitives/Icons/Message.svelte.d.ts +2 -0
  278. package/dist/primitives/Icons/Message.svelte.d.ts.map +1 -1
  279. package/dist/primitives/Icons/MinusOutline.svelte +14 -12
  280. package/dist/primitives/Icons/MinusOutline.svelte.d.ts +4 -0
  281. package/dist/primitives/Icons/MinusOutline.svelte.d.ts.map +1 -1
  282. package/dist/primitives/Icons/MoonIcon.svelte +18 -16
  283. package/dist/primitives/Icons/MoonIcon.svelte.d.ts +2 -0
  284. package/dist/primitives/Icons/MoonIcon.svelte.d.ts.map +1 -1
  285. package/dist/primitives/Icons/More.svelte +34 -33
  286. package/dist/primitives/Icons/More.svelte.d.ts +2 -0
  287. package/dist/primitives/Icons/More.svelte.d.ts.map +1 -1
  288. package/dist/primitives/Icons/MoreHori.spec.js +67 -67
  289. package/dist/primitives/Icons/MoreHori.svelte +35 -34
  290. package/dist/primitives/Icons/MoreHori.svelte.d.ts +2 -0
  291. package/dist/primitives/Icons/MoreHori.svelte.d.ts.map +1 -1
  292. package/dist/primitives/Icons/Notification.svelte +27 -26
  293. package/dist/primitives/Icons/Notification.svelte.d.ts +2 -0
  294. package/dist/primitives/Icons/Notification.svelte.d.ts.map +1 -1
  295. package/dist/primitives/Icons/Payment.svelte +27 -26
  296. package/dist/primitives/Icons/Payment.svelte.d.ts +2 -0
  297. package/dist/primitives/Icons/Payment.svelte.d.ts.map +1 -1
  298. package/dist/primitives/Icons/PlusOutline.svelte +14 -12
  299. package/dist/primitives/Icons/PlusOutline.svelte.d.ts +4 -0
  300. package/dist/primitives/Icons/PlusOutline.svelte.d.ts.map +1 -1
  301. package/dist/primitives/Icons/Profile.svelte +34 -33
  302. package/dist/primitives/Icons/Profile.svelte.d.ts +2 -0
  303. package/dist/primitives/Icons/Profile.svelte.d.ts.map +1 -1
  304. package/dist/primitives/Icons/Reload.svelte +42 -41
  305. package/dist/primitives/Icons/Reload.svelte.d.ts +2 -0
  306. package/dist/primitives/Icons/Reload.svelte.d.ts.map +1 -1
  307. package/dist/primitives/Icons/SearchOutline.svelte +14 -12
  308. package/dist/primitives/Icons/SearchOutline.svelte.d.ts +4 -0
  309. package/dist/primitives/Icons/SearchOutline.svelte.d.ts.map +1 -1
  310. package/dist/primitives/Icons/ShareOutline.svelte +14 -12
  311. package/dist/primitives/Icons/ShareOutline.svelte.d.ts +4 -0
  312. package/dist/primitives/Icons/ShareOutline.svelte.d.ts.map +1 -1
  313. package/dist/primitives/Icons/Shows.svelte +34 -33
  314. package/dist/primitives/Icons/Shows.svelte.d.ts +2 -0
  315. package/dist/primitives/Icons/Shows.svelte.d.ts.map +1 -1
  316. package/dist/primitives/Icons/Signout.svelte +34 -33
  317. package/dist/primitives/Icons/Signout.svelte.d.ts +2 -0
  318. package/dist/primitives/Icons/Signout.svelte.d.ts.map +1 -1
  319. package/dist/primitives/Icons/SunIcon.svelte +21 -19
  320. package/dist/primitives/Icons/SunIcon.svelte.d.ts +2 -0
  321. package/dist/primitives/Icons/SunIcon.svelte.d.ts.map +1 -1
  322. package/dist/primitives/Icons/TiktokIcon.svelte +15 -13
  323. package/dist/primitives/Icons/TiktokIcon.svelte.d.ts +2 -0
  324. package/dist/primitives/Icons/TiktokIcon.svelte.d.ts.map +1 -1
  325. package/dist/primitives/Icons/TrashBinOutline.svelte +21 -19
  326. package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts +6 -2
  327. package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts.map +1 -1
  328. package/dist/primitives/Icons/TwitterIcon.svelte +15 -13
  329. package/dist/primitives/Icons/TwitterIcon.svelte.d.ts +2 -0
  330. package/dist/primitives/Icons/TwitterIcon.svelte.d.ts.map +1 -1
  331. package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
  332. package/dist/primitives/Icons/WarningIcon.svelte +24 -24
  333. package/dist/primitives/Icons/WarningIcon.svelte.d.ts +6 -2
  334. package/dist/primitives/Icons/WarningIcon.svelte.d.ts.map +1 -1
  335. package/dist/primitives/Icons/iconTestUtils.d.ts +162 -0
  336. package/dist/primitives/Icons/iconTestUtils.d.ts.map +1 -0
  337. package/dist/primitives/Icons/iconTestUtils.js +160 -0
  338. package/dist/primitives/Icons/index.d.ts +56 -54
  339. package/dist/primitives/Icons/index.d.ts.map +1 -1
  340. package/dist/primitives/Icons/index.js +59 -61
  341. package/dist/primitives/Icons/types.d.ts +31 -0
  342. package/dist/primitives/Icons/types.d.ts.map +1 -0
  343. package/dist/primitives/Icons/types.js +8 -0
  344. package/dist/primitives/Input/Input.spec.js +573 -573
  345. package/dist/primitives/Input/Input.stories.svelte +139 -139
  346. package/dist/primitives/Input/Input.svelte +431 -444
  347. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  348. package/dist/primitives/Input/Select.spec.js +218 -218
  349. package/dist/primitives/Input/Select.stories.svelte +112 -112
  350. package/dist/primitives/Input/Select.svelte +249 -232
  351. package/dist/primitives/Input/Select.svelte.d.ts +16 -24
  352. package/dist/primitives/Input/Select.svelte.d.ts.map +1 -1
  353. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  354. package/dist/primitives/Input/Textarea.svelte +105 -79
  355. package/dist/primitives/Input/Textarea.svelte.d.ts +20 -39
  356. package/dist/primitives/Input/Textarea.svelte.d.ts.map +1 -1
  357. package/dist/primitives/Label/Label.svelte +37 -37
  358. package/dist/primitives/Modal/Modal.spec.js +95 -95
  359. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  360. package/dist/primitives/Modal/Modal.svelte +158 -158
  361. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  362. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  363. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  364. package/dist/primitives/Radio/Radio.svelte +67 -67
  365. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  366. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  367. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  368. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  369. package/dist/primitives/Skeleton/Skeleton.svelte +46 -52
  370. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +2 -1
  371. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  372. package/dist/primitives/Spinner/Spinner.spec.js +75 -75
  373. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  374. package/dist/primitives/Spinner/Spinner.svelte +44 -57
  375. package/dist/primitives/Spinner/Spinner.svelte.d.ts +4 -2
  376. package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
  377. package/dist/primitives/Tabs/TabItem.svelte +52 -51
  378. package/dist/primitives/Tabs/TabItem.svelte.d.ts.map +1 -1
  379. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  380. package/dist/primitives/Tabs/Tabs.svelte +129 -128
  381. package/dist/primitives/Tabs/Tabs.svelte.d.ts.map +1 -1
  382. package/dist/primitives/Toggle.spec.js +127 -127
  383. package/dist/primitives/Toggle.stories.svelte +92 -92
  384. package/dist/primitives/Toggle.svelte +71 -71
  385. package/dist/primitives/Typography/Typography.svelte +53 -53
  386. package/dist/primitives/ValidationError.spec.js +103 -103
  387. package/dist/primitives/ValidationError.stories.svelte +112 -111
  388. package/dist/primitives/ValidationError.svelte +29 -29
  389. package/dist/primitives/index.d.ts +31 -0
  390. package/dist/primitives/index.d.ts.map +1 -0
  391. package/dist/primitives/index.js +81 -0
  392. package/dist/recipes/CropImage/CropImage.spec.js +216 -216
  393. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  394. package/dist/recipes/CropImage/CropImage.svelte +238 -238
  395. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  396. package/dist/recipes/ImageUploader/ImageUploader.svelte +959 -980
  397. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
  398. package/dist/recipes/SuperLogin/SuperLogin.svelte +18 -17
  399. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  400. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  401. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +66 -47
  402. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -1
  403. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  404. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  405. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +113 -112
  406. package/dist/recipes/feedback/ErrorDisplay.svelte +67 -38
  407. package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts +7 -0
  408. package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts.map +1 -1
  409. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +129 -129
  410. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +176 -167
  411. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts +2 -2
  412. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -1
  413. package/dist/recipes/feedback/index.d.ts +4 -0
  414. package/dist/recipes/feedback/index.d.ts.map +1 -0
  415. package/dist/recipes/feedback/index.js +4 -0
  416. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  417. package/dist/recipes/fields/FormField.svelte +58 -58
  418. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  419. package/dist/recipes/fields/SelectField.svelte +82 -82
  420. package/dist/recipes/fields/SelectField.svelte.d.ts +4 -1
  421. package/dist/recipes/fields/SelectField.svelte.d.ts.map +1 -1
  422. package/dist/recipes/fields/TextareaField.svelte +101 -101
  423. package/dist/recipes/fields/TextareaField.svelte.d.ts +6 -2
  424. package/dist/recipes/fields/TextareaField.svelte.d.ts.map +1 -1
  425. package/dist/recipes/fields/ToggleField.svelte +60 -60
  426. package/dist/recipes/fields/index.js +7 -7
  427. package/dist/recipes/index.d.ts +8 -0
  428. package/dist/recipes/index.d.ts.map +1 -0
  429. package/dist/recipes/index.js +24 -0
  430. package/dist/recipes/inputs/MultiSelect.spec.js +257 -257
  431. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  432. package/dist/recipes/inputs/MultiSelect.svelte +276 -244
  433. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +17 -26
  434. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  435. package/dist/recipes/inputs/OTPInput.spec.js +238 -238
  436. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  437. package/dist/recipes/inputs/OTPInput.svelte +117 -102
  438. package/dist/recipes/inputs/OTPInput.svelte.d.ts +15 -20
  439. package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
  440. package/dist/recipes/inputs/PasswordInput.svelte +121 -100
  441. package/dist/recipes/inputs/PasswordInput.svelte.d.ts +27 -34
  442. package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
  443. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +173 -173
  444. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +117 -108
  445. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -16
  446. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
  447. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +300 -300
  448. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -165
  449. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -1
  450. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +337 -337
  451. package/dist/recipes/inputs/Search.svelte +102 -85
  452. package/dist/recipes/inputs/Search.svelte.d.ts +16 -32
  453. package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
  454. package/dist/recipes/inputs/SelectDropdown.svelte +169 -161
  455. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts +12 -18
  456. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts.map +1 -1
  457. package/dist/recipes/inputs/index.d.ts +8 -0
  458. package/dist/recipes/inputs/index.d.ts.map +1 -0
  459. package/dist/recipes/inputs/index.js +8 -0
  460. package/dist/recipes/modals/AlertModal.svelte +130 -130
  461. package/dist/recipes/modals/ConfirmationModal.spec.js +191 -191
  462. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  463. package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
  464. package/dist/recipes/modals/InputModal.svelte +182 -182
  465. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  466. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  467. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  468. package/dist/recipes/modals/StatusModal.svelte +206 -206
  469. package/dist/recipes/modals/index.d.ts +7 -0
  470. package/dist/recipes/modals/index.d.ts.map +1 -0
  471. package/dist/recipes/modals/index.js +7 -0
  472. package/dist/services/EventService.js +75 -75
  473. package/dist/services/EventService.spec.js +217 -217
  474. package/dist/services/ShowService.spec.js +342 -342
  475. package/dist/stores/auth.js +36 -36
  476. package/dist/stores/auth.spec.js +139 -139
  477. package/dist/stores/toaster.js +13 -13
  478. package/dist/stories/ButtonAuditDashboard.svelte +23 -18
  479. package/dist/stories/ButtonAuditDashboard.svelte.d.ts.map +1 -1
  480. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  481. package/dist/stories/ButtonAuditReview.svelte +427 -427
  482. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  483. package/dist/stories/PatternsGallery.svelte +399 -388
  484. package/dist/stories/PatternsGallery.svelte.d.ts.map +1 -1
  485. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  486. package/dist/stories/PrimitivesGallery.svelte +752 -752
  487. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  488. package/dist/stories/RecipesGallery.svelte +471 -441
  489. package/dist/stories/RecipesGallery.svelte.d.ts.map +1 -1
  490. package/dist/stories/button-audit-manifest.json +11186 -11186
  491. package/dist/tailwind/preset.cjs +82 -82
  492. package/dist/telemetry.d.ts.map +1 -1
  493. package/dist/telemetry.js +1 -0
  494. package/dist/telemetry.server.d.ts.map +1 -1
  495. package/dist/telemetry.server.js +1 -0
  496. package/dist/telemetry.server.spec.js +1 -0
  497. package/dist/telemetry.spec.js +1 -0
  498. package/dist/tokens/__tests__/sizing.test.d.ts +2 -0
  499. package/dist/tokens/__tests__/sizing.test.d.ts.map +1 -0
  500. package/dist/tokens/__tests__/sizing.test.js +307 -0
  501. package/dist/tokens/__tests__/spacing.test.d.ts +2 -0
  502. package/dist/tokens/__tests__/spacing.test.d.ts.map +1 -0
  503. package/dist/tokens/__tests__/spacing.test.js +178 -0
  504. package/dist/tokens/__tests__/variants.test.d.ts +2 -0
  505. package/dist/tokens/__tests__/variants.test.d.ts.map +1 -0
  506. package/dist/tokens/__tests__/variants.test.js +329 -0
  507. package/dist/tokens/index.d.ts +3 -0
  508. package/dist/tokens/index.d.ts.map +1 -1
  509. package/dist/tokens/index.js +16 -0
  510. package/dist/tokens/sizing.d.ts +118 -0
  511. package/dist/tokens/sizing.d.ts.map +1 -0
  512. package/dist/tokens/sizing.js +125 -0
  513. package/dist/tokens/spacing.d.ts +105 -0
  514. package/dist/tokens/spacing.d.ts.map +1 -1
  515. package/dist/tokens/spacing.js +76 -0
  516. package/dist/tokens/tokens.css +87 -87
  517. package/dist/tokens/variants.d.ts +78 -0
  518. package/dist/tokens/variants.d.ts.map +1 -0
  519. package/dist/tokens/variants.js +89 -0
  520. package/dist/utils/__tests__/auth.test.d.ts +2 -0
  521. package/dist/utils/__tests__/auth.test.d.ts.map +1 -0
  522. package/dist/utils/__tests__/auth.test.js +431 -0
  523. package/dist/utils/__tests__/formatters.test.d.ts +2 -0
  524. package/dist/utils/__tests__/formatters.test.d.ts.map +1 -0
  525. package/dist/utils/__tests__/formatters.test.js +73 -0
  526. package/dist/utils/auth.d.ts +46 -0
  527. package/dist/utils/auth.d.ts.map +1 -0
  528. package/dist/utils/auth.js +195 -0
  529. package/dist/utils/formatters.d.ts +13 -0
  530. package/dist/utils/formatters.d.ts.map +1 -0
  531. package/dist/utils/formatters.js +24 -0
  532. package/dist/utils/utils.js +354 -354
  533. package/package.json +286 -282
  534. package/dist/patterns/layout/Grid.svelte +0 -35
  535. package/dist/patterns/layout/Grid.svelte.d.ts +0 -18
  536. package/dist/patterns/layout/Grid.svelte.d.ts.map +0 -1
@@ -1,24 +1,38 @@
1
- export default Stack;
2
- type Stack = {
3
- $on?(type: string, callback: (e: any) => void): () => void;
4
- $set?(props: Partial<$$ComponentProps>): void;
5
- };
6
- declare const Stack: import("svelte").Component<{
7
- gap?: string;
8
- direction?: string;
9
- align?: string;
10
- justify?: string;
11
- wrap?: boolean;
12
- class?: string;
13
- children: any;
14
- }, {}, "">;
15
- type $$ComponentProps = {
16
- gap?: string;
17
- direction?: string;
18
- align?: string;
19
- justify?: string;
1
+ import Stack from '../../components/Layout/Stack.svelte';
2
+ import type { Snippet } from 'svelte';
3
+ interface Props {
4
+ gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'section' | 'layout' | 'content' | 'group';
5
+ direction?: 'vertical' | 'horizontal';
6
+ align?: 'start' | 'center' | 'end' | 'stretch';
7
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around';
20
8
  wrap?: boolean;
21
9
  class?: string;
22
- children: any;
23
- };
10
+ children?: Snippet;
11
+ [key: string]: unknown;
12
+ }
13
+ /**
14
+ * Stack (Deprecated)
15
+ *
16
+ * @deprecated Use `import { Stack } from '@getmicdrop/svelte-components'` instead.
17
+ * This file is kept for backwards compatibility with direct imports from
18
+ * `@getmicdrop/svelte-components/patterns/layout/Stack.svelte`.
19
+ *
20
+ * The canonical version is now at `components/Layout/Stack.svelte` which includes:
21
+ * - TypeScript support
22
+ * - More gap options (semantic: tight, compact, item, group, content, section, layout, page)
23
+ * - `as` prop for semantic HTML elements
24
+ * - `baseline` alignment
25
+ * - `evenly` justify option
26
+ *
27
+ * Migration:
28
+ * - gap="none" → gap="0"
29
+ * - gap="xs" → gap="tight"
30
+ * - gap="sm" → gap="item"
31
+ * - gap="md" → gap="content" (or just use default)
32
+ * - gap="lg" → gap="section"
33
+ * - gap="xl" → gap="layout"
34
+ */
35
+ declare const Stack: import("svelte").Component<Props, {}, "">;
36
+ type Stack = ReturnType<typeof Stack>;
37
+ export default Stack;
24
38
  //# sourceMappingURL=Stack.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/layout/Stack.svelte.js"],"names":[],"mappings":";;;;;AAiDA;UA7C2B,MAAM;gBAAc,MAAM;YAAU,MAAM;cAAY,MAAM;WAAS,OAAO;YAAU,MAAM;cAAY,GAAG;WA6ClF;wBA7CjC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE"}
1
+ {"version":3,"file":"Stack.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/layout/Stack.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,sCAAsC,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIpC,UAAU,KAAK;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAC7F,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAyBH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,KAAK,2CAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { default as Grid } from "../../components/Layout/Grid.svelte";
2
+ export { default as Section } from "../../components/Layout/Section.svelte";
3
+ export { default as Sidebar } from "../../components/Layout/Sidebar.svelte";
4
+ export { default as Stack } from "../../components/Layout/Stack.svelte";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/layout/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ // Layout pattern components
2
+ // Note: These are canonical exports from components/Layout/
3
+ export { default as Grid } from '../../components/Layout/Grid.svelte';
4
+ export { default as Section } from '../../components/Layout/Section.svelte';
5
+ export { default as Sidebar } from '../../components/Layout/Sidebar.svelte';
6
+ export { default as Stack } from '../../components/Layout/Stack.svelte';
@@ -1 +1 @@
1
- {"version":3,"file":"BottomNav.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/navigation/BottomNav.spec.js"],"names":[],"mappings":""}
1
+ {"version":3,"file":"BottomNav.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/navigation/BottomNav.spec.ts"],"names":[],"mappings":""}
@@ -1,130 +1,104 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { render, screen } from '@testing-library/svelte';
3
- import BottomNav from './BottomNav.svelte';
4
-
5
- // Mock fetch for API calls
6
- global.fetch = vi.fn(() =>
7
- Promise.resolve({
8
- ok: true,
9
- json: () => Promise.resolve([]),
10
- })
11
- );
12
-
13
- // Mock SvelteKit modules
14
- vi.mock('$app/stores', () => ({
15
- page: {
16
- subscribe: (fn) => {
17
- fn({ url: { pathname: '/shows' } });
18
- return () => {};
19
- }
20
- }
21
- }));
22
-
23
- vi.mock('$app/paths', () => ({
24
- base: '/performers'
25
- }));
26
-
27
- describe('BottomNav', () => {
28
- const defaultLinks = [
29
- { label: 'Home', href: '/', icon: 'home' },
30
- { label: 'Shows', href: '/shows', icon: 'shows' },
31
- { label: 'Availability', href: '/availability', icon: 'availability' },
32
- { label: 'Profile', href: '/profile', icon: 'profile' }
33
- ];
34
-
35
- beforeEach(() => {
36
- vi.clearAllMocks();
37
- global.fetch.mockImplementation(() =>
38
- Promise.resolve({
39
- ok: true,
40
- json: () => Promise.resolve([]),
41
- })
42
- );
43
- });
44
-
45
- describe('basic rendering', () => {
46
- it('renders all navigation links', () => {
47
- const { container } = render(BottomNav, { links: defaultLinks });
48
- const navItems = container.querySelectorAll('.bottom-nav-item');
49
- expect(navItems.length).toBe(4);
50
- });
51
-
52
- it('renders link labels as aria-label', () => {
53
- const { container } = render(BottomNav, { links: defaultLinks });
54
- const homeLink = container.querySelector('[aria-label="Home"]');
55
- expect(homeLink).toBeTruthy();
56
- });
57
-
58
- it('renders icons for each link', () => {
59
- const { container } = render(BottomNav, { links: defaultLinks });
60
- const icons = container.querySelectorAll('.bottom-nav-icon');
61
- expect(icons.length).toBe(4);
62
- });
63
- });
64
-
65
- describe('active state', () => {
66
- it('marks current path as active', () => {
67
- const { container } = render(BottomNav, { links: defaultLinks });
68
- const showsLink = container.querySelector('a[href="/shows"]');
69
- expect(showsLink.classList.contains('active')).toBe(true);
70
- });
71
-
72
- it('non-current paths are not active', () => {
73
- const { container } = render(BottomNav, { links: defaultLinks });
74
- const homeLink = container.querySelector('a[href="/"]');
75
- expect(homeLink.classList.contains('active')).toBe(false);
76
- });
77
- });
78
-
79
- describe('notification dot', () => {
80
- it('shows notification dot when there are invitations', async () => {
81
- global.fetch.mockImplementationOnce(() =>
82
- Promise.resolve({
83
- ok: true,
84
- json: () => Promise.resolve([{ acceptedState: 0 }]),
85
- })
86
- );
87
-
88
- const { container } = render(BottomNav, { links: defaultLinks });
89
-
90
- // Wait for the fetch to complete
91
- await vi.waitFor(() => {
92
- const dot = container.querySelector('.notification-dot');
93
- return dot !== null;
94
- }, { timeout: 1000 }).catch(() => null);
95
- });
96
-
97
- it('does not show notification dot when no invitations', () => {
98
- const { container } = render(BottomNav, { links: defaultLinks });
99
- const dot = container.querySelector('.notification-dot');
100
- expect(dot).toBeFalsy();
101
- });
102
- });
103
-
104
- describe('empty links', () => {
105
- it('renders nothing when links array is empty', () => {
106
- const { container } = render(BottomNav, { links: [] });
107
- const navItems = container.querySelectorAll('.bottom-nav-item');
108
- expect(navItems.length).toBe(0);
109
- });
110
- });
111
-
112
- describe('API error handling', () => {
113
- it('handles fetch error gracefully', async () => {
114
- const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
115
- global.fetch.mockImplementationOnce(() =>
116
- Promise.resolve({
117
- ok: false,
118
- })
119
- );
120
-
121
- const { container } = render(BottomNav, { links: defaultLinks });
122
-
123
- // Component should still render despite fetch error
124
- const navItems = container.querySelectorAll('.bottom-nav-item');
125
- expect(navItems.length).toBe(4);
126
-
127
- consoleSpy.mockRestore();
128
- });
129
- });
130
- });
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { render } from '@testing-library/svelte';
3
+ import BottomNav from './BottomNav.svelte';
4
+ // Mock fetch for API calls
5
+ const mockFetch = vi.fn(() => Promise.resolve({
6
+ ok: true,
7
+ json: () => Promise.resolve([]),
8
+ }));
9
+ global.fetch = mockFetch;
10
+ // Mock SvelteKit modules
11
+ vi.mock('$app/stores', () => ({
12
+ page: {
13
+ subscribe: (fn) => {
14
+ fn({ url: { pathname: '/shows' } });
15
+ return () => { };
16
+ }
17
+ }
18
+ }));
19
+ vi.mock('$app/paths', () => ({
20
+ base: '/performers'
21
+ }));
22
+ describe('BottomNav', () => {
23
+ const defaultLinks = [
24
+ { label: 'Home', href: '/', icon: 'home' },
25
+ { label: 'Shows', href: '/shows', icon: 'shows' },
26
+ { label: 'Availability', href: '/availability', icon: 'availability' },
27
+ { label: 'Profile', href: '/profile', icon: 'profile' }
28
+ ];
29
+ beforeEach(() => {
30
+ vi.clearAllMocks();
31
+ mockFetch.mockImplementation(() => Promise.resolve({
32
+ ok: true,
33
+ json: () => Promise.resolve([]),
34
+ }));
35
+ });
36
+ describe('basic rendering', () => {
37
+ it('renders all navigation links', () => {
38
+ const { container } = render(BottomNav, { links: defaultLinks });
39
+ const navItems = container.querySelectorAll('.bottom-nav-item');
40
+ expect(navItems.length).toBe(4);
41
+ });
42
+ it('renders link labels as aria-label', () => {
43
+ const { container } = render(BottomNav, { links: defaultLinks });
44
+ const homeLink = container.querySelector('[aria-label="Home"]');
45
+ expect(homeLink).toBeTruthy();
46
+ });
47
+ it('renders icons for each link', () => {
48
+ const { container } = render(BottomNav, { links: defaultLinks });
49
+ const icons = container.querySelectorAll('.bottom-nav-icon');
50
+ expect(icons.length).toBe(4);
51
+ });
52
+ });
53
+ describe('active state', () => {
54
+ it('marks current path as active', () => {
55
+ const { container } = render(BottomNav, { links: defaultLinks });
56
+ const showsLink = container.querySelector('a[href="/shows"]');
57
+ expect(showsLink.classList.contains('active')).toBe(true);
58
+ });
59
+ it('non-current paths are not active', () => {
60
+ const { container } = render(BottomNav, { links: defaultLinks });
61
+ const homeLink = container.querySelector('a[href="/"]');
62
+ expect(homeLink.classList.contains('active')).toBe(false);
63
+ });
64
+ });
65
+ describe('notification dot', () => {
66
+ it('shows notification dot when there are invitations', async () => {
67
+ mockFetch.mockImplementationOnce(() => Promise.resolve({
68
+ ok: true,
69
+ json: () => Promise.resolve([{ acceptedState: 0 }]),
70
+ }));
71
+ const { container } = render(BottomNav, { links: defaultLinks });
72
+ // Wait for the fetch to complete
73
+ await vi.waitFor(() => {
74
+ const dot = container.querySelector('.notification-dot');
75
+ return dot !== null;
76
+ }, { timeout: 1000 }).catch(() => null);
77
+ });
78
+ it('does not show notification dot when no invitations', () => {
79
+ const { container } = render(BottomNav, { links: defaultLinks });
80
+ const dot = container.querySelector('.notification-dot');
81
+ expect(dot).toBeFalsy();
82
+ });
83
+ });
84
+ describe('empty links', () => {
85
+ it('renders nothing when links array is empty', () => {
86
+ const { container } = render(BottomNav, { links: [] });
87
+ const navItems = container.querySelectorAll('.bottom-nav-item');
88
+ expect(navItems.length).toBe(0);
89
+ });
90
+ });
91
+ describe('API error handling', () => {
92
+ it('handles fetch error gracefully', async () => {
93
+ const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
94
+ mockFetch.mockImplementationOnce(() => Promise.resolve({
95
+ ok: false,
96
+ }));
97
+ const { container } = render(BottomNav, { links: defaultLinks });
98
+ // Component should still render despite fetch error
99
+ const navItems = container.querySelectorAll('.bottom-nav-item');
100
+ expect(navItems.length).toBe(4);
101
+ consoleSpy.mockRestore();
102
+ });
103
+ });
104
+ });
@@ -1,117 +1,117 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
-
4
- import BottomNav from './BottomNav.svelte';
5
-
6
- const { Story } = defineMeta({
7
- title: 'Components/Layout/BottomNav',
8
- component: BottomNav,
9
- tags: ['autodocs'],
10
- });
11
-
12
- </script>
13
-
14
- <script>
15
-
16
- const defaultLinks = [
17
- { label: 'Home', href: '/', icon: 'Home' },
18
- { label: 'Shows', href: '/shows', icon: 'Shows' },
19
- { label: 'Availability', href: '/availability', icon: 'Availability' },
20
- { label: 'Profile', href: '/profile', icon: 'Profile' },
21
- ];
22
-
23
- const extendedLinks = [
24
- { label: 'Home', href: '/', icon: 'Home' },
25
- { label: 'Shows', href: '/shows', icon: 'Shows' },
26
- { label: 'Availability', href: '/availability', icon: 'Availability' },
27
- { label: 'Messages', href: '/messages', icon: 'Message' },
28
- { label: 'Profile', href: '/profile', icon: 'Profile' },
29
- ];
30
- </script>
31
-
32
- <Story name="Default (4 Tabs)">
33
- <div class="bg-gray-100 dark:bg-gray-700 p-4">
34
- <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Mobile Bottom Navigation (4 tabs)</p>
35
- <div class="max-w-md mx-auto bg-white dark:bg-gray-900 rounded-lg shadow-lg overflow-hidden">
36
- <div class="h-64 bg-gradient-to-br from-blue-50 to-blue-100 flex items-center justify-center">
37
- <p class="text-gray-500 dark:text-gray-400">Page Content Area</p>
38
- </div>
39
- <div class="flex border-t bg-white dark:bg-gray-900">
40
- <BottomNav links={defaultLinks} />
41
- </div>
42
- </div>
43
- </div>
44
- </Story>
45
-
46
- <Story name="With 5 Tabs">
47
- <div class="bg-gray-100 dark:bg-gray-700 p-4">
48
- <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Extended Navigation (5 tabs)</p>
49
- <div class="max-w-md mx-auto bg-white dark:bg-gray-900 rounded-lg shadow-lg overflow-hidden">
50
- <div class="h-64 bg-gradient-to-br from-purple-50 to-purple-100 flex items-center justify-center">
51
- <p class="text-gray-500 dark:text-gray-400">Page Content Area</p>
52
- </div>
53
- <div class="flex border-t bg-white dark:bg-gray-900">
54
- <BottomNav links={extendedLinks} />
55
- </div>
56
- </div>
57
- </div>
58
- </Story>
59
-
60
- <Story name="Different Icon Set">
61
- <div class="bg-gray-100 dark:bg-gray-700 p-4">
62
- <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Custom Icons</p>
63
- <div class="max-w-md mx-auto bg-white dark:bg-gray-900 rounded-lg shadow-lg overflow-hidden">
64
- <div class="h-64 bg-gradient-to-br from-green-50 to-green-100 flex items-center justify-center">
65
- <p class="text-gray-500 dark:text-gray-400">Page Content Area</p>
66
- </div>
67
- <div class="flex border-t bg-white dark:bg-gray-900">
68
- <BottomNav
69
- links={[
70
- { label: 'Dashboard', href: '/', icon: 'Home' },
71
- { label: 'Events', href: '/events', icon: 'Shows' },
72
- { label: 'Notifications', href: '/notifications', icon: 'Notification' },
73
- { label: 'Settings', href: '/settings', icon: 'Profile' },
74
- ]}
75
- />
76
- </div>
77
- </div>
78
- </div>
79
- </Story>
80
-
81
- <Story name="Mobile Viewport">
82
- <div class="max-w-[375px] mx-auto bg-white dark:bg-gray-900 shadow-2xl rounded-3xl overflow-hidden">
83
- <!-- Mock iPhone screen -->
84
- <div class="h-[667px] flex flex-col">
85
- <!-- Status bar -->
86
- <div class="h-6 bg-black flex items-center justify-between px-4">
87
- <span class="text-white text-xs">9:41</span>
88
- <span class="text-white text-xs">100%</span>
89
- </div>
90
-
91
- <!-- Content area -->
92
- <div class="flex-1 bg-gradient-to-br from-blue-50 to-purple-50 p-4">
93
- <h1 class="text-2xl font-bold mb-2">Home</h1>
94
- <p class="text-gray-500 dark:text-gray-400">This is a mobile viewport simulation</p>
95
- </div>
96
-
97
- <!-- Bottom navigation -->
98
- <div class="flex border-t bg-white dark:bg-gray-900 safe-bottom">
99
- <BottomNav links={defaultLinks} />
100
- </div>
101
- </div>
102
- </div>
103
- </Story>
104
-
105
- <Story name="Dark Mode">
106
- <div class="dark bg-gray-900 p-4 min-h-screen">
107
- <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Dark Mode Bottom Navigation</p>
108
- <div class="max-w-md mx-auto bg-gray-800 rounded-lg shadow-2xl overflow-hidden">
109
- <div class="h-64 bg-gradient-to-br from-gray-900 to-gray-800 flex items-center justify-center">
110
- <p class="text-gray-500 dark:text-gray-400">Dark Mode Content</p>
111
- </div>
112
- <div class="flex border-t border-gray-700 bg-gray-800">
113
- <BottomNav links={defaultLinks} />
114
- </div>
115
- </div>
116
- </div>
117
- </Story>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+
4
+ import BottomNav from './BottomNav.svelte';
5
+
6
+ const { Story } = defineMeta({
7
+ title: 'Components/Layout/BottomNav',
8
+ component: BottomNav,
9
+ tags: ['autodocs'],
10
+ });
11
+
12
+ </script>
13
+
14
+ <script>
15
+
16
+ const defaultLinks = [
17
+ { label: 'Home', href: '/', icon: 'Home' },
18
+ { label: 'Shows', href: '/shows', icon: 'Shows' },
19
+ { label: 'Availability', href: '/availability', icon: 'Availability' },
20
+ { label: 'Profile', href: '/profile', icon: 'Profile' },
21
+ ];
22
+
23
+ const extendedLinks = [
24
+ { label: 'Home', href: '/', icon: 'Home' },
25
+ { label: 'Shows', href: '/shows', icon: 'Shows' },
26
+ { label: 'Availability', href: '/availability', icon: 'Availability' },
27
+ { label: 'Messages', href: '/messages', icon: 'Message' },
28
+ { label: 'Profile', href: '/profile', icon: 'Profile' },
29
+ ];
30
+ </script>
31
+
32
+ <Story name="Default (4 Tabs)">
33
+ <div class="bg-gray-100 dark:bg-gray-700 p-4">
34
+ <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Mobile Bottom Navigation (4 tabs)</p>
35
+ <div class="max-w-md mx-auto bg-white dark:bg-gray-900 rounded-lg shadow-lg overflow-hidden">
36
+ <div class="h-64 bg-gradient-to-br from-blue-50 to-blue-100 flex items-center justify-center">
37
+ <p class="text-gray-500 dark:text-gray-400">Page Content Area</p>
38
+ </div>
39
+ <div class="flex border-t bg-white dark:bg-gray-900">
40
+ <BottomNav links={defaultLinks} />
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </Story>
45
+
46
+ <Story name="With 5 Tabs">
47
+ <div class="bg-gray-100 dark:bg-gray-700 p-4">
48
+ <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Extended Navigation (5 tabs)</p>
49
+ <div class="max-w-md mx-auto bg-white dark:bg-gray-900 rounded-lg shadow-lg overflow-hidden">
50
+ <div class="h-64 bg-gradient-to-br from-purple-50 to-purple-100 flex items-center justify-center">
51
+ <p class="text-gray-500 dark:text-gray-400">Page Content Area</p>
52
+ </div>
53
+ <div class="flex border-t bg-white dark:bg-gray-900">
54
+ <BottomNav links={extendedLinks} />
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </Story>
59
+
60
+ <Story name="Different Icon Set">
61
+ <div class="bg-gray-100 dark:bg-gray-700 p-4">
62
+ <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Custom Icons</p>
63
+ <div class="max-w-md mx-auto bg-white dark:bg-gray-900 rounded-lg shadow-lg overflow-hidden">
64
+ <div class="h-64 bg-gradient-to-br from-green-50 to-green-100 flex items-center justify-center">
65
+ <p class="text-gray-500 dark:text-gray-400">Page Content Area</p>
66
+ </div>
67
+ <div class="flex border-t bg-white dark:bg-gray-900">
68
+ <BottomNav
69
+ links={[
70
+ { label: 'Dashboard', href: '/', icon: 'Home' },
71
+ { label: 'Events', href: '/events', icon: 'Shows' },
72
+ { label: 'Notifications', href: '/notifications', icon: 'Notification' },
73
+ { label: 'Settings', href: '/settings', icon: 'Profile' },
74
+ ]}
75
+ />
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </Story>
80
+
81
+ <Story name="Mobile Viewport">
82
+ <div class="max-w-[375px] mx-auto bg-white dark:bg-gray-900 shadow-2xl rounded-3xl overflow-hidden">
83
+ <!-- Mock iPhone screen -->
84
+ <div class="h-[667px] flex flex-col">
85
+ <!-- Status bar -->
86
+ <div class="h-6 bg-black flex items-center justify-between px-4">
87
+ <span class="text-white text-xs">9:41</span>
88
+ <span class="text-white text-xs">100%</span>
89
+ </div>
90
+
91
+ <!-- Content area -->
92
+ <div class="flex-1 bg-gradient-to-br from-blue-50 to-purple-50 p-4">
93
+ <h1 class="text-2xl font-bold mb-2">Home</h1>
94
+ <p class="text-gray-500 dark:text-gray-400">This is a mobile viewport simulation</p>
95
+ </div>
96
+
97
+ <!-- Bottom navigation -->
98
+ <div class="flex border-t bg-white dark:bg-gray-900 safe-bottom">
99
+ <BottomNav links={defaultLinks} />
100
+ </div>
101
+ </div>
102
+ </div>
103
+ </Story>
104
+
105
+ <Story name="Dark Mode">
106
+ <div class="dark bg-gray-900 p-4 min-h-screen">
107
+ <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Dark Mode Bottom Navigation</p>
108
+ <div class="max-w-md mx-auto bg-gray-800 rounded-lg shadow-2xl overflow-hidden">
109
+ <div class="h-64 bg-gradient-to-br from-gray-900 to-gray-800 flex items-center justify-center">
110
+ <p class="text-gray-500 dark:text-gray-400">Dark Mode Content</p>
111
+ </div>
112
+ <div class="flex border-t border-gray-700 bg-gray-800">
113
+ <BottomNav links={defaultLinks} />
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </Story>