@getmicdrop/svelte-components 5.4.1 → 5.5.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 (417) hide show
  1. package/dist/calendar/PublicCard/PublicCard.svelte +12 -11
  2. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  3. package/dist/calendar/index.d.ts +9 -0
  4. package/dist/calendar/index.d.ts.map +1 -0
  5. package/dist/calendar/index.js +15 -0
  6. package/dist/components/Layout/Grid.spec.d.ts +2 -0
  7. package/dist/components/Layout/Grid.spec.d.ts.map +1 -0
  8. package/dist/components/Layout/Grid.spec.js +230 -0
  9. package/dist/components/Layout/Grid.svelte +97 -105
  10. package/dist/components/Layout/Grid.svelte.d.ts +16 -6
  11. package/dist/components/Layout/Grid.svelte.d.ts.map +1 -1
  12. package/dist/components/Layout/Stack.spec.d.ts +2 -0
  13. package/dist/components/Layout/Stack.spec.d.ts.map +1 -0
  14. package/dist/components/Layout/Stack.spec.js +257 -0
  15. package/dist/components/Layout/Stack.svelte +47 -85
  16. package/dist/components/Layout/Stack.svelte.d.ts +4 -6
  17. package/dist/components/Layout/Stack.svelte.d.ts.map +1 -1
  18. package/dist/components/Layout/__tests__/Grid.test.d.ts +2 -0
  19. package/dist/components/Layout/__tests__/Grid.test.d.ts.map +1 -0
  20. package/dist/components/Layout/__tests__/Grid.test.js +246 -0
  21. package/dist/components/Layout/__tests__/Stack.test.d.ts +2 -0
  22. package/dist/components/Layout/__tests__/Stack.test.d.ts.map +1 -0
  23. package/dist/components/Layout/__tests__/Stack.test.js +267 -0
  24. package/dist/constants/formOptions.spec.d.ts.map +1 -1
  25. package/dist/constants/formOptions.spec.js +69 -82
  26. package/dist/datetime/__tests__/format.test.js +81 -1
  27. package/dist/datetime/format.d.ts +74 -0
  28. package/dist/datetime/format.d.ts.map +1 -1
  29. package/dist/datetime/format.js +104 -0
  30. package/dist/datetime/index.d.ts +1 -1
  31. package/dist/datetime/index.d.ts.map +1 -1
  32. package/dist/datetime/index.js +1 -1
  33. package/dist/datetime/timezone.d.ts.map +1 -1
  34. package/dist/datetime/timezone.js +2 -0
  35. package/dist/datetime/types.d.ts +4 -0
  36. package/dist/datetime/types.d.ts.map +1 -1
  37. package/dist/forms/createFormStore.svelte.d.ts.map +1 -1
  38. package/dist/forms/createFormStore.svelte.js +3 -2
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.js +3 -0
  41. package/dist/index.spec.d.ts +2 -0
  42. package/dist/index.spec.d.ts.map +1 -0
  43. package/dist/index.spec.js +370 -0
  44. package/dist/patterns/data/DataTable.svelte +5 -5
  45. package/dist/patterns/data/index.d.ts +4 -0
  46. package/dist/patterns/data/index.d.ts.map +1 -0
  47. package/dist/patterns/data/index.js +4 -0
  48. package/dist/patterns/forms/FormValidationSummary.spec.d.ts.map +1 -1
  49. package/dist/patterns/forms/FormValidationSummary.spec.js +181 -203
  50. package/dist/patterns/forms/FormValidationSummary.stories.svelte +14 -14
  51. package/dist/patterns/forms/FormValidationSummary.svelte +43 -36
  52. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +8 -16
  53. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
  54. package/dist/patterns/forms/index.d.ts +5 -0
  55. package/dist/patterns/forms/index.d.ts.map +1 -0
  56. package/dist/patterns/forms/index.js +5 -0
  57. package/dist/patterns/index.d.ts +6 -0
  58. package/dist/patterns/index.d.ts.map +1 -0
  59. package/dist/patterns/index.js +18 -0
  60. package/dist/patterns/layout/Stack.svelte +61 -45
  61. package/dist/patterns/layout/Stack.svelte.d.ts +35 -21
  62. package/dist/patterns/layout/Stack.svelte.d.ts.map +1 -1
  63. package/dist/patterns/layout/index.d.ts +5 -0
  64. package/dist/patterns/layout/index.d.ts.map +1 -0
  65. package/dist/patterns/layout/index.js +6 -0
  66. package/dist/patterns/navigation/BottomNav.spec.d.ts.map +1 -1
  67. package/dist/patterns/navigation/BottomNav.spec.js +104 -130
  68. package/dist/patterns/navigation/BottomNav.svelte +44 -34
  69. package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -10
  70. package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
  71. package/dist/patterns/navigation/Header.spec.d.ts.map +1 -1
  72. package/dist/patterns/navigation/Header.spec.js +161 -203
  73. package/dist/patterns/navigation/Header.svelte +62 -47
  74. package/dist/patterns/navigation/Header.svelte.d.ts +12 -19
  75. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  76. package/dist/patterns/navigation/index.d.ts +3 -0
  77. package/dist/patterns/navigation/index.d.ts.map +1 -0
  78. package/dist/patterns/navigation/index.js +3 -0
  79. package/dist/patterns/page/PageHeader.svelte +31 -18
  80. package/dist/patterns/page/PageHeader.svelte.d.ts +12 -18
  81. package/dist/patterns/page/PageHeader.svelte.d.ts.map +1 -1
  82. package/dist/patterns/page/PageLoader.svelte +29 -17
  83. package/dist/patterns/page/PageLoader.svelte.d.ts +9 -20
  84. package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
  85. package/dist/patterns/page/SectionHeader.svelte +22 -12
  86. package/dist/patterns/page/SectionHeader.svelte.d.ts +8 -17
  87. package/dist/patterns/page/SectionHeader.svelte.d.ts.map +1 -1
  88. package/dist/patterns/page/index.d.ts +5 -0
  89. package/dist/patterns/page/index.d.ts.map +1 -0
  90. package/dist/patterns/page/index.js +5 -0
  91. package/dist/primitives/Accordion/Accordion.svelte +20 -19
  92. package/dist/primitives/Accordion/Accordion.svelte.d.ts.map +1 -1
  93. package/dist/primitives/Alert/Alert.svelte +37 -38
  94. package/dist/primitives/Alert/Alert.svelte.d.ts +2 -1
  95. package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
  96. package/dist/primitives/Badges/Badge.svelte +20 -63
  97. package/dist/primitives/Badges/Badge.svelte.d.ts +4 -2
  98. package/dist/primitives/Badges/Badge.svelte.d.ts.map +1 -1
  99. package/dist/primitives/Button/Button.svelte +39 -70
  100. package/dist/primitives/Button/Button.svelte.d.ts +10 -26
  101. package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
  102. package/dist/primitives/Drawer/Drawer.stories.svelte +20 -20
  103. package/dist/primitives/Drawer/Drawer.svelte +116 -94
  104. package/dist/primitives/Drawer/Drawer.svelte.d.ts +12 -31
  105. package/dist/primitives/Drawer/Drawer.svelte.d.ts.map +1 -1
  106. package/dist/primitives/Dropdown/Dropdown.svelte +146 -134
  107. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +9 -18
  108. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  109. package/dist/primitives/Icons/ArrowLeft.svelte +13 -12
  110. package/dist/primitives/Icons/ArrowLeft.svelte.d.ts +2 -0
  111. package/dist/primitives/Icons/ArrowLeft.svelte.d.ts.map +1 -1
  112. package/dist/primitives/Icons/ArrowRight.svelte +13 -12
  113. package/dist/primitives/Icons/ArrowRight.svelte.d.ts +2 -0
  114. package/dist/primitives/Icons/ArrowRight.svelte.d.ts.map +1 -1
  115. package/dist/primitives/Icons/Availability.svelte +13 -12
  116. package/dist/primitives/Icons/Availability.svelte.d.ts +2 -0
  117. package/dist/primitives/Icons/Availability.svelte.d.ts.map +1 -1
  118. package/dist/primitives/Icons/Back.svelte +13 -12
  119. package/dist/primitives/Icons/Back.svelte.d.ts +2 -0
  120. package/dist/primitives/Icons/Back.svelte.d.ts.map +1 -1
  121. package/dist/primitives/Icons/CheckCircle.svelte +13 -12
  122. package/dist/primitives/Icons/CheckCircle.svelte.d.ts +2 -0
  123. package/dist/primitives/Icons/CheckCircle.svelte.d.ts.map +1 -1
  124. package/dist/primitives/Icons/CheckCircleOutline.svelte +13 -12
  125. package/dist/primitives/Icons/CheckCircleOutline.svelte.d.ts +2 -0
  126. package/dist/primitives/Icons/CheckCircleOutline.svelte.d.ts.map +1 -1
  127. package/dist/primitives/Icons/CheckCircleSolid.svelte +12 -10
  128. package/dist/primitives/Icons/CheckCircleSolid.svelte.d.ts +4 -0
  129. package/dist/primitives/Icons/CheckCircleSolid.svelte.d.ts.map +1 -1
  130. package/dist/primitives/Icons/CheckOutline.svelte +15 -13
  131. package/dist/primitives/Icons/CheckOutline.svelte.d.ts +4 -0
  132. package/dist/primitives/Icons/CheckOutline.svelte.d.ts.map +1 -1
  133. package/dist/primitives/Icons/ChevronDownOutline.svelte +14 -12
  134. package/dist/primitives/Icons/ChevronDownOutline.svelte.d.ts +4 -0
  135. package/dist/primitives/Icons/ChevronDownOutline.svelte.d.ts.map +1 -1
  136. package/dist/primitives/Icons/ChevronLeft.svelte +13 -12
  137. package/dist/primitives/Icons/ChevronLeft.svelte.d.ts +2 -0
  138. package/dist/primitives/Icons/ChevronLeft.svelte.d.ts.map +1 -1
  139. package/dist/primitives/Icons/ChevronLeftOutline.svelte +14 -12
  140. package/dist/primitives/Icons/ChevronLeftOutline.svelte.d.ts +4 -0
  141. package/dist/primitives/Icons/ChevronLeftOutline.svelte.d.ts.map +1 -1
  142. package/dist/primitives/Icons/ChevronRight.svelte +13 -12
  143. package/dist/primitives/Icons/ChevronRight.svelte.d.ts +2 -0
  144. package/dist/primitives/Icons/ChevronRight.svelte.d.ts.map +1 -1
  145. package/dist/primitives/Icons/ChevronRightOutline.svelte +14 -12
  146. package/dist/primitives/Icons/ChevronRightOutline.svelte.d.ts +4 -0
  147. package/dist/primitives/Icons/ChevronRightOutline.svelte.d.ts.map +1 -1
  148. package/dist/primitives/Icons/ChevronUpOutline.svelte +14 -12
  149. package/dist/primitives/Icons/ChevronUpOutline.svelte.d.ts +4 -0
  150. package/dist/primitives/Icons/ChevronUpOutline.svelte.d.ts.map +1 -1
  151. package/dist/primitives/Icons/CloseCircleOutline.svelte +14 -12
  152. package/dist/primitives/Icons/CloseCircleOutline.svelte.d.ts +4 -0
  153. package/dist/primitives/Icons/CloseCircleOutline.svelte.d.ts.map +1 -1
  154. package/dist/primitives/Icons/CloseOutline.svelte +14 -12
  155. package/dist/primitives/Icons/CloseOutline.svelte.d.ts +4 -0
  156. package/dist/primitives/Icons/CloseOutline.svelte.d.ts.map +1 -1
  157. package/dist/primitives/Icons/Copy.svelte +13 -12
  158. package/dist/primitives/Icons/Copy.svelte.d.ts +2 -0
  159. package/dist/primitives/Icons/Copy.svelte.d.ts.map +1 -1
  160. package/dist/primitives/Icons/Cross.svelte +13 -12
  161. package/dist/primitives/Icons/Cross.svelte.d.ts +2 -0
  162. package/dist/primitives/Icons/Cross.svelte.d.ts.map +1 -1
  163. package/dist/primitives/Icons/DotsHorizontalOutline.svelte +12 -10
  164. package/dist/primitives/Icons/DotsHorizontalOutline.svelte.d.ts +4 -0
  165. package/dist/primitives/Icons/DotsHorizontalOutline.svelte.d.ts.map +1 -1
  166. package/dist/primitives/Icons/DownArrow.svelte +13 -12
  167. package/dist/primitives/Icons/DownArrow.svelte.d.ts +2 -0
  168. package/dist/primitives/Icons/DownArrow.svelte.d.ts.map +1 -1
  169. package/dist/primitives/Icons/ErrorCircle.svelte +13 -12
  170. package/dist/primitives/Icons/ErrorCircle.svelte.d.ts +2 -0
  171. package/dist/primitives/Icons/ErrorCircle.svelte.d.ts.map +1 -1
  172. package/dist/primitives/Icons/ExclamationCircleOutline.svelte +14 -12
  173. package/dist/primitives/Icons/ExclamationCircleOutline.svelte.d.ts +4 -0
  174. package/dist/primitives/Icons/ExclamationCircleOutline.svelte.d.ts.map +1 -1
  175. package/dist/primitives/Icons/ExclamationTriangleOutline.svelte +14 -12
  176. package/dist/primitives/Icons/ExclamationTriangleOutline.svelte.d.ts +4 -0
  177. package/dist/primitives/Icons/ExclamationTriangleOutline.svelte.d.ts.map +1 -1
  178. package/dist/primitives/Icons/EyeOutline.svelte +14 -12
  179. package/dist/primitives/Icons/EyeOutline.svelte.d.ts +4 -0
  180. package/dist/primitives/Icons/EyeOutline.svelte.d.ts.map +1 -1
  181. package/dist/primitives/Icons/EyeSlashOutline.svelte +14 -12
  182. package/dist/primitives/Icons/EyeSlashOutline.svelte.d.ts +4 -0
  183. package/dist/primitives/Icons/EyeSlashOutline.svelte.d.ts.map +1 -1
  184. package/dist/primitives/Icons/FacebookIcon.svelte +13 -11
  185. package/dist/primitives/Icons/FacebookIcon.svelte.d.ts +2 -0
  186. package/dist/primitives/Icons/FacebookIcon.svelte.d.ts.map +1 -1
  187. package/dist/primitives/Icons/FileCopyOutline.svelte +14 -12
  188. package/dist/primitives/Icons/FileCopyOutline.svelte.d.ts +4 -0
  189. package/dist/primitives/Icons/FileCopyOutline.svelte.d.ts.map +1 -1
  190. package/dist/primitives/Icons/Home.svelte +13 -12
  191. package/dist/primitives/Icons/Home.svelte.d.ts +2 -0
  192. package/dist/primitives/Icons/Home.svelte.d.ts.map +1 -1
  193. package/dist/primitives/Icons/HomeSolid.svelte +12 -10
  194. package/dist/primitives/Icons/HomeSolid.svelte.d.ts +4 -0
  195. package/dist/primitives/Icons/HomeSolid.svelte.d.ts.map +1 -1
  196. package/dist/primitives/Icons/Icon.spec.js +6 -6
  197. package/dist/primitives/Icons/Icon.svelte +27 -11
  198. package/dist/primitives/Icons/Icon.svelte.d.ts +5 -3
  199. package/dist/primitives/Icons/Icon.svelte.d.ts.map +1 -1
  200. package/dist/primitives/Icons/Icons.spec.d.ts +8 -0
  201. package/dist/primitives/Icons/Icons.spec.d.ts.map +1 -0
  202. package/dist/primitives/Icons/Icons.spec.js +291 -0
  203. package/dist/primitives/Icons/ImageOutline.svelte +21 -19
  204. package/dist/primitives/Icons/ImageOutline.svelte.d.ts +6 -2
  205. package/dist/primitives/Icons/ImageOutline.svelte.d.ts.map +1 -1
  206. package/dist/primitives/Icons/Info.svelte +13 -12
  207. package/dist/primitives/Icons/Info.svelte.d.ts +2 -0
  208. package/dist/primitives/Icons/Info.svelte.d.ts.map +1 -1
  209. package/dist/primitives/Icons/InfoCircleOutline.svelte +14 -12
  210. package/dist/primitives/Icons/InfoCircleOutline.svelte.d.ts +4 -0
  211. package/dist/primitives/Icons/InfoCircleOutline.svelte.d.ts.map +1 -1
  212. package/dist/primitives/Icons/InstagramIcon.svelte +17 -15
  213. package/dist/primitives/Icons/InstagramIcon.svelte.d.ts +2 -0
  214. package/dist/primitives/Icons/InstagramIcon.svelte.d.ts.map +1 -1
  215. package/dist/primitives/Icons/LogoInstagram.svelte +13 -13
  216. package/dist/primitives/Icons/LogoInstagram.svelte.d.ts +4 -2
  217. package/dist/primitives/Icons/LogoInstagram.svelte.d.ts.map +1 -1
  218. package/dist/primitives/Icons/Message.svelte +13 -12
  219. package/dist/primitives/Icons/Message.svelte.d.ts +2 -0
  220. package/dist/primitives/Icons/Message.svelte.d.ts.map +1 -1
  221. package/dist/primitives/Icons/MinusOutline.svelte +14 -12
  222. package/dist/primitives/Icons/MinusOutline.svelte.d.ts +4 -0
  223. package/dist/primitives/Icons/MinusOutline.svelte.d.ts.map +1 -1
  224. package/dist/primitives/Icons/MoonIcon.svelte +13 -11
  225. package/dist/primitives/Icons/MoonIcon.svelte.d.ts +2 -0
  226. package/dist/primitives/Icons/MoonIcon.svelte.d.ts.map +1 -1
  227. package/dist/primitives/Icons/More.svelte +13 -12
  228. package/dist/primitives/Icons/More.svelte.d.ts +2 -0
  229. package/dist/primitives/Icons/More.svelte.d.ts.map +1 -1
  230. package/dist/primitives/Icons/MoreHori.spec.js +6 -6
  231. package/dist/primitives/Icons/MoreHori.svelte +13 -12
  232. package/dist/primitives/Icons/MoreHori.svelte.d.ts +2 -0
  233. package/dist/primitives/Icons/MoreHori.svelte.d.ts.map +1 -1
  234. package/dist/primitives/Icons/Notification.svelte +13 -12
  235. package/dist/primitives/Icons/Notification.svelte.d.ts +2 -0
  236. package/dist/primitives/Icons/Notification.svelte.d.ts.map +1 -1
  237. package/dist/primitives/Icons/Payment.svelte +13 -12
  238. package/dist/primitives/Icons/Payment.svelte.d.ts +2 -0
  239. package/dist/primitives/Icons/Payment.svelte.d.ts.map +1 -1
  240. package/dist/primitives/Icons/PlusOutline.svelte +14 -12
  241. package/dist/primitives/Icons/PlusOutline.svelte.d.ts +4 -0
  242. package/dist/primitives/Icons/PlusOutline.svelte.d.ts.map +1 -1
  243. package/dist/primitives/Icons/Profile.svelte +13 -12
  244. package/dist/primitives/Icons/Profile.svelte.d.ts +2 -0
  245. package/dist/primitives/Icons/Profile.svelte.d.ts.map +1 -1
  246. package/dist/primitives/Icons/Reload.svelte +13 -12
  247. package/dist/primitives/Icons/Reload.svelte.d.ts +2 -0
  248. package/dist/primitives/Icons/Reload.svelte.d.ts.map +1 -1
  249. package/dist/primitives/Icons/SearchOutline.svelte +14 -12
  250. package/dist/primitives/Icons/SearchOutline.svelte.d.ts +4 -0
  251. package/dist/primitives/Icons/SearchOutline.svelte.d.ts.map +1 -1
  252. package/dist/primitives/Icons/ShareOutline.svelte +14 -12
  253. package/dist/primitives/Icons/ShareOutline.svelte.d.ts +4 -0
  254. package/dist/primitives/Icons/ShareOutline.svelte.d.ts.map +1 -1
  255. package/dist/primitives/Icons/Shows.svelte +13 -12
  256. package/dist/primitives/Icons/Shows.svelte.d.ts +2 -0
  257. package/dist/primitives/Icons/Shows.svelte.d.ts.map +1 -1
  258. package/dist/primitives/Icons/Signout.svelte +13 -12
  259. package/dist/primitives/Icons/Signout.svelte.d.ts +2 -0
  260. package/dist/primitives/Icons/Signout.svelte.d.ts.map +1 -1
  261. package/dist/primitives/Icons/SunIcon.svelte +13 -11
  262. package/dist/primitives/Icons/SunIcon.svelte.d.ts +2 -0
  263. package/dist/primitives/Icons/SunIcon.svelte.d.ts.map +1 -1
  264. package/dist/primitives/Icons/TiktokIcon.svelte +13 -11
  265. package/dist/primitives/Icons/TiktokIcon.svelte.d.ts +2 -0
  266. package/dist/primitives/Icons/TiktokIcon.svelte.d.ts.map +1 -1
  267. package/dist/primitives/Icons/TrashBinOutline.svelte +21 -19
  268. package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts +6 -2
  269. package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts.map +1 -1
  270. package/dist/primitives/Icons/TwitterIcon.svelte +13 -11
  271. package/dist/primitives/Icons/TwitterIcon.svelte.d.ts +2 -0
  272. package/dist/primitives/Icons/TwitterIcon.svelte.d.ts.map +1 -1
  273. package/dist/primitives/Icons/WarningIcon.spec.js +12 -12
  274. package/dist/primitives/Icons/WarningIcon.svelte +19 -19
  275. package/dist/primitives/Icons/WarningIcon.svelte.d.ts +6 -2
  276. package/dist/primitives/Icons/WarningIcon.svelte.d.ts.map +1 -1
  277. package/dist/primitives/Icons/iconTestUtils.d.ts +162 -0
  278. package/dist/primitives/Icons/iconTestUtils.d.ts.map +1 -0
  279. package/dist/primitives/Icons/iconTestUtils.js +160 -0
  280. package/dist/primitives/Icons/index.d.ts +56 -54
  281. package/dist/primitives/Icons/index.d.ts.map +1 -1
  282. package/dist/primitives/Icons/index.js +59 -61
  283. package/dist/primitives/Icons/types.d.ts +31 -0
  284. package/dist/primitives/Icons/types.d.ts.map +1 -0
  285. package/dist/primitives/Icons/types.js +8 -0
  286. package/dist/primitives/Input/Input.svelte +40 -53
  287. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  288. package/dist/primitives/Input/Select.svelte +121 -104
  289. package/dist/primitives/Input/Select.svelte.d.ts +16 -24
  290. package/dist/primitives/Input/Select.svelte.d.ts.map +1 -1
  291. package/dist/primitives/Input/Textarea.svelte +70 -44
  292. package/dist/primitives/Input/Textarea.svelte.d.ts +20 -39
  293. package/dist/primitives/Input/Textarea.svelte.d.ts.map +1 -1
  294. package/dist/primitives/NumberInput/NumberInput.svelte +106 -0
  295. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts +23 -0
  296. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -0
  297. package/dist/primitives/NumberInput/index.d.ts +2 -0
  298. package/dist/primitives/NumberInput/index.d.ts.map +1 -0
  299. package/dist/primitives/NumberInput/index.js +1 -0
  300. package/dist/primitives/Skeleton/Skeleton.svelte +21 -27
  301. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +2 -1
  302. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  303. package/dist/primitives/Spinner/Spinner.svelte +24 -37
  304. package/dist/primitives/Spinner/Spinner.svelte.d.ts +4 -2
  305. package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
  306. package/dist/primitives/Tabs/TabItem.svelte +3 -2
  307. package/dist/primitives/Tabs/TabItem.svelte.d.ts.map +1 -1
  308. package/dist/primitives/Tabs/Tabs.svelte +6 -5
  309. package/dist/primitives/Tabs/Tabs.svelte.d.ts.map +1 -1
  310. package/dist/primitives/ValidationError.stories.svelte +43 -42
  311. package/dist/primitives/ValidationError.svelte +1 -1
  312. package/dist/primitives/index.d.ts +31 -0
  313. package/dist/primitives/index.d.ts.map +1 -0
  314. package/dist/primitives/index.js +81 -0
  315. package/dist/recipes/ImageUploader/ImageUploader.svelte +155 -176
  316. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
  317. package/dist/recipes/SuperLogin/SuperLogin.svelte +18 -17
  318. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  319. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +65 -46
  320. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -1
  321. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  322. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +12 -11
  323. package/dist/recipes/feedback/ErrorDisplay.svelte +66 -37
  324. package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts +7 -0
  325. package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts.map +1 -1
  326. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +22 -13
  327. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts +2 -2
  328. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -1
  329. package/dist/recipes/feedback/index.d.ts +4 -0
  330. package/dist/recipes/feedback/index.d.ts.map +1 -0
  331. package/dist/recipes/feedback/index.js +4 -0
  332. package/dist/recipes/fields/SelectField.svelte +2 -2
  333. package/dist/recipes/fields/SelectField.svelte.d.ts +4 -1
  334. package/dist/recipes/fields/SelectField.svelte.d.ts.map +1 -1
  335. package/dist/recipes/fields/TextareaField.svelte +4 -4
  336. package/dist/recipes/fields/TextareaField.svelte.d.ts +6 -2
  337. package/dist/recipes/fields/TextareaField.svelte.d.ts.map +1 -1
  338. package/dist/recipes/index.d.ts +8 -0
  339. package/dist/recipes/index.d.ts.map +1 -0
  340. package/dist/recipes/index.js +24 -0
  341. package/dist/recipes/inputs/MultiSelect.svelte +5 -0
  342. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +2 -0
  343. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  344. package/dist/recipes/inputs/OTPInput.svelte +89 -74
  345. package/dist/recipes/inputs/OTPInput.svelte.d.ts +15 -20
  346. package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
  347. package/dist/recipes/inputs/PasswordInput.svelte +99 -78
  348. package/dist/recipes/inputs/PasswordInput.svelte.d.ts +27 -34
  349. package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
  350. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +75 -66
  351. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -16
  352. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
  353. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +47 -42
  354. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -1
  355. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +12 -12
  356. package/dist/recipes/inputs/Search.svelte +65 -48
  357. package/dist/recipes/inputs/Search.svelte.d.ts +16 -32
  358. package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
  359. package/dist/recipes/inputs/SelectDropdown.svelte +112 -104
  360. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts +12 -18
  361. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts.map +1 -1
  362. package/dist/recipes/inputs/index.d.ts +8 -0
  363. package/dist/recipes/inputs/index.d.ts.map +1 -0
  364. package/dist/recipes/inputs/index.js +8 -0
  365. package/dist/recipes/modals/index.d.ts +7 -0
  366. package/dist/recipes/modals/index.d.ts.map +1 -0
  367. package/dist/recipes/modals/index.js +7 -0
  368. package/dist/stories/ButtonAuditDashboard.svelte +23 -18
  369. package/dist/stories/ButtonAuditDashboard.svelte.d.ts.map +1 -1
  370. package/dist/stories/PatternsGallery.svelte +199 -188
  371. package/dist/stories/PatternsGallery.svelte.d.ts.map +1 -1
  372. package/dist/stories/PrimitivesGallery.svelte +27 -27
  373. package/dist/stories/RecipesGallery.svelte +200 -170
  374. package/dist/stories/RecipesGallery.svelte.d.ts.map +1 -1
  375. package/dist/telemetry.d.ts.map +1 -1
  376. package/dist/telemetry.js +1 -0
  377. package/dist/telemetry.server.d.ts.map +1 -1
  378. package/dist/telemetry.server.js +1 -0
  379. package/dist/telemetry.server.spec.js +1 -0
  380. package/dist/telemetry.spec.js +1 -0
  381. package/dist/tokens/__tests__/sizing.test.d.ts +2 -0
  382. package/dist/tokens/__tests__/sizing.test.d.ts.map +1 -0
  383. package/dist/tokens/__tests__/sizing.test.js +307 -0
  384. package/dist/tokens/__tests__/spacing.test.d.ts +2 -0
  385. package/dist/tokens/__tests__/spacing.test.d.ts.map +1 -0
  386. package/dist/tokens/__tests__/spacing.test.js +178 -0
  387. package/dist/tokens/__tests__/variants.test.d.ts +2 -0
  388. package/dist/tokens/__tests__/variants.test.d.ts.map +1 -0
  389. package/dist/tokens/__tests__/variants.test.js +329 -0
  390. package/dist/tokens/index.d.ts +3 -0
  391. package/dist/tokens/index.d.ts.map +1 -1
  392. package/dist/tokens/index.js +16 -0
  393. package/dist/tokens/sizing.d.ts +118 -0
  394. package/dist/tokens/sizing.d.ts.map +1 -0
  395. package/dist/tokens/sizing.js +125 -0
  396. package/dist/tokens/spacing.d.ts +105 -0
  397. package/dist/tokens/spacing.d.ts.map +1 -1
  398. package/dist/tokens/spacing.js +76 -0
  399. package/dist/tokens/variants.d.ts +78 -0
  400. package/dist/tokens/variants.d.ts.map +1 -0
  401. package/dist/tokens/variants.js +89 -0
  402. package/dist/utils/__tests__/auth.test.d.ts +2 -0
  403. package/dist/utils/__tests__/auth.test.d.ts.map +1 -0
  404. package/dist/utils/__tests__/auth.test.js +431 -0
  405. package/dist/utils/__tests__/formatters.test.d.ts +2 -0
  406. package/dist/utils/__tests__/formatters.test.d.ts.map +1 -0
  407. package/dist/utils/__tests__/formatters.test.js +73 -0
  408. package/dist/utils/auth.d.ts +46 -0
  409. package/dist/utils/auth.d.ts.map +1 -0
  410. package/dist/utils/auth.js +195 -0
  411. package/dist/utils/formatters.d.ts +13 -0
  412. package/dist/utils/formatters.d.ts.map +1 -0
  413. package/dist/utils/formatters.js +24 -0
  414. package/package.json +9 -5
  415. package/dist/patterns/layout/Grid.svelte +0 -35
  416. package/dist/patterns/layout/Grid.svelte.d.ts +0 -18
  417. package/dist/patterns/layout/Grid.svelte.d.ts.map +0 -1
@@ -70,17 +70,18 @@
70
70
  }
71
71
  </script>
72
72
 
73
- {#each events as event}
74
- <article
75
- class="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 cursor-pointer overflow-hidden transition-all duration-200 hover:shadow-lg hover:border-gray-300 dark:hover:border-gray-600 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800 relative {view === 'col'
76
- ? 'flex flex-col'
77
- : 'grid grid-cols-[100px_1fr] sm:grid-cols-[160px_1fr] gap-3 sm:gap-4 p-3 sm:p-4'}"
78
- onclick={() => handleEventClick(event)}
79
- onkeydown={(e) => handleKeydown(e, event)}
80
- tabindex="0"
81
- role="button"
82
- aria-label={`${event.name}, ${event.status || 'On Sale'}, ${formatEventDate(event.date)}. Press Enter to view details.`}
83
- >
73
+ {#each events as event}
74
+ <!-- svelte-ignore a11y_no_noninteractive_element_to_interactive_role -->
75
+ <article
76
+ class="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 cursor-pointer overflow-hidden transition-all duration-200 hover:shadow-lg hover:border-gray-300 dark:hover:border-gray-600 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800 relative {view === 'col'
77
+ ? 'flex flex-col'
78
+ : 'grid grid-cols-[100px_1fr] sm:grid-cols-[160px_1fr] gap-3 sm:gap-4 p-3 sm:p-4'}"
79
+ onclick={() => handleEventClick(event)}
80
+ onkeydown={(e) => handleKeydown(e, event)}
81
+ tabindex="0"
82
+ role="button"
83
+ aria-label={`${event.name}, ${event.status || 'On Sale'}, ${formatEventDate(event.date)}. Press Enter to view details.`}
84
+ >
84
85
  <div
85
86
  class="bg-gray-100 dark:bg-gray-700 flex items-center justify-center overflow-hidden {view === 'col'
86
87
  ? 'w-full aspect-[4/3] rounded-t-lg'
@@ -1 +1 @@
1
- {"version":3,"file":"PublicCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/PublicCard/PublicCard.svelte.js"],"names":[],"mappings":";;;;;AAmIA;aA3H8B,GAAG,EAAE;WAAS,MAAM;uBAAqB,GAAG;kBAAgB,GAAG;WA2HpC;wBA3HtC;IAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,GAAG,CAAA;CAAE"}
1
+ {"version":3,"file":"PublicCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/PublicCard/PublicCard.svelte.js"],"names":[],"mappings":";;;;;AAoIA;aA5H8B,GAAG,EAAE;WAAS,MAAM;uBAAqB,GAAG;kBAAgB,GAAG;WA4HpC;wBA5HtC;IAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,GAAG,CAAA;CAAE"}
@@ -0,0 +1,9 @@
1
+ export { default as PublicCard } from "./PublicCard/PublicCard.svelte";
2
+ export { default as MonthSwitcher } from "./MonthSwitcher/MonthSwitcher.svelte";
3
+ export { default as OrderSummary } from "./OrderSummary/OrderSummary.svelte";
4
+ export { default as ShowCard } from "./ShowCard/ShowCard.svelte";
5
+ export { default as AboutShow } from "./AboutShow/AboutShow.svelte";
6
+ export { default as FAQs } from "./FAQs/FAQs.svelte";
7
+ export { default as ShowTimeCard } from "./ShowTimeCard/ShowTimeCard.svelte";
8
+ export { default as MiniMonthCalendar, default as Calendar } from "./Calendar/MiniMonthCalendar.svelte";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/calendar/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ // =============================================================================
2
+ // CALENDAR - Domain components (deferred migration to apps)
3
+ // =============================================================================
4
+
5
+ export { default as MiniMonthCalendar } from './Calendar/MiniMonthCalendar.svelte';
6
+ // Legacy alias for backward compatibility - will be removed in future version
7
+ export { default as Calendar } from './Calendar/MiniMonthCalendar.svelte';
8
+
9
+ export { default as PublicCard } from './PublicCard/PublicCard.svelte';
10
+ export { default as MonthSwitcher } from './MonthSwitcher/MonthSwitcher.svelte';
11
+ export { default as OrderSummary } from './OrderSummary/OrderSummary.svelte';
12
+ export { default as ShowCard } from './ShowCard/ShowCard.svelte';
13
+ export { default as AboutShow } from './AboutShow/AboutShow.svelte';
14
+ export { default as FAQs } from './FAQs/FAQs.svelte';
15
+ export { default as ShowTimeCard } from './ShowTimeCard/ShowTimeCard.svelte';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Grid.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/Grid.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,230 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render } from '@testing-library/svelte';
3
+ import Grid from './Grid.svelte';
4
+ describe('Grid', () => {
5
+ describe('basic rendering', () => {
6
+ it('renders as a div by default', () => {
7
+ const { container } = render(Grid);
8
+ const grid = container.querySelector('div.grid');
9
+ expect(grid).toBeTruthy();
10
+ });
11
+ it('renders children content', () => {
12
+ // Note: Svelte 5 snippets cannot be directly tested this way
13
+ // Just verify the component renders
14
+ const { container } = render(Grid);
15
+ // Grid should be rendered
16
+ expect(container.querySelector('.grid')).toBeTruthy();
17
+ });
18
+ it('applies additional CSS classes', () => {
19
+ const { container } = render(Grid, {
20
+ props: { class: 'custom-class' }
21
+ });
22
+ const grid = container.querySelector('.grid');
23
+ expect(grid?.classList.contains('custom-class')).toBe(true);
24
+ });
25
+ });
26
+ describe('cols prop', () => {
27
+ it('defaults to 3 columns', () => {
28
+ const { container } = render(Grid);
29
+ const grid = container.querySelector('.grid');
30
+ expect(grid?.classList.contains('lg:grid-cols-3')).toBe(true);
31
+ });
32
+ it('renders 1 column layout', () => {
33
+ const { container } = render(Grid, { props: { cols: '1' } });
34
+ const grid = container.querySelector('.grid');
35
+ expect(grid?.classList.contains('grid-cols-1')).toBe(true);
36
+ });
37
+ it('renders 2 column responsive layout', () => {
38
+ const { container } = render(Grid, { props: { cols: '2' } });
39
+ const grid = container.querySelector('.grid');
40
+ expect(grid?.classList.contains('grid-cols-1')).toBe(true);
41
+ expect(grid?.classList.contains('md:grid-cols-2')).toBe(true);
42
+ });
43
+ it('renders 3 column responsive layout', () => {
44
+ const { container } = render(Grid, { props: { cols: '3' } });
45
+ const grid = container.querySelector('.grid');
46
+ expect(grid?.classList.contains('grid-cols-1')).toBe(true);
47
+ expect(grid?.classList.contains('md:grid-cols-2')).toBe(true);
48
+ expect(grid?.classList.contains('lg:grid-cols-3')).toBe(true);
49
+ });
50
+ it('renders 4 column responsive layout', () => {
51
+ const { container } = render(Grid, { props: { cols: '4' } });
52
+ const grid = container.querySelector('.grid');
53
+ expect(grid?.classList.contains('grid-cols-1')).toBe(true);
54
+ expect(grid?.classList.contains('sm:grid-cols-2')).toBe(true);
55
+ expect(grid?.classList.contains('lg:grid-cols-4')).toBe(true);
56
+ });
57
+ it('renders 5 column responsive layout', () => {
58
+ const { container } = render(Grid, { props: { cols: '5' } });
59
+ const grid = container.querySelector('.grid');
60
+ expect(grid?.classList.contains('lg:grid-cols-5')).toBe(true);
61
+ });
62
+ it('renders 6 column responsive layout', () => {
63
+ const { container } = render(Grid, { props: { cols: '6' } });
64
+ const grid = container.querySelector('.grid');
65
+ expect(grid?.classList.contains('lg:grid-cols-6')).toBe(true);
66
+ });
67
+ it('renders 12 column layout for custom grids', () => {
68
+ const { container } = render(Grid, { props: { cols: '12' } });
69
+ const grid = container.querySelector('.grid');
70
+ expect(grid?.classList.contains('grid-cols-12')).toBe(true);
71
+ });
72
+ it('renders auto-fit layout with inline style', () => {
73
+ const { container } = render(Grid, { props: { cols: 'auto' } });
74
+ const grid = container.querySelector('.grid');
75
+ expect(grid?.getAttribute('style')).toContain('grid-template-columns');
76
+ expect(grid?.getAttribute('style')).toContain('auto-fit');
77
+ });
78
+ it('uses custom minWidth for auto-fit columns', () => {
79
+ const { container } = render(Grid, {
80
+ props: { cols: 'auto', minWidth: '300px' }
81
+ });
82
+ const grid = container.querySelector('.grid');
83
+ expect(grid?.getAttribute('style')).toContain('300px');
84
+ });
85
+ it('defaults to 280px minWidth for auto-fit', () => {
86
+ const { container } = render(Grid, { props: { cols: 'auto' } });
87
+ const grid = container.querySelector('.grid');
88
+ expect(grid?.getAttribute('style')).toContain('280px');
89
+ });
90
+ });
91
+ describe('gap prop', () => {
92
+ it('defaults to gap-4', () => {
93
+ const { container } = render(Grid);
94
+ const grid = container.querySelector('.grid');
95
+ expect(grid?.classList.contains('gap-4')).toBe(true);
96
+ });
97
+ it('applies numeric gap values', () => {
98
+ const { container } = render(Grid, { props: { gap: '6' } });
99
+ const grid = container.querySelector('.grid');
100
+ expect(grid?.classList.contains('gap-6')).toBe(true);
101
+ });
102
+ it('applies zero gap', () => {
103
+ const { container } = render(Grid, { props: { gap: '0' } });
104
+ const grid = container.querySelector('.grid');
105
+ expect(grid?.classList.contains('gap-0')).toBe(true);
106
+ });
107
+ it('applies semantic gap: section', () => {
108
+ const { container } = render(Grid, { props: { gap: 'section' } });
109
+ const grid = container.querySelector('.grid');
110
+ expect(grid?.classList.contains('gap-6')).toBe(true);
111
+ });
112
+ it('applies semantic gap: layout', () => {
113
+ const { container } = render(Grid, { props: { gap: 'layout' } });
114
+ const grid = container.querySelector('.grid');
115
+ expect(grid?.classList.contains('gap-8')).toBe(true);
116
+ });
117
+ it('applies semantic gap: content', () => {
118
+ const { container } = render(Grid, { props: { gap: 'content' } });
119
+ const grid = container.querySelector('.grid');
120
+ expect(grid?.classList.contains('gap-4')).toBe(true);
121
+ });
122
+ it('applies legacy gap: none', () => {
123
+ const { container } = render(Grid, { props: { gap: 'none' } });
124
+ const grid = container.querySelector('.grid');
125
+ expect(grid?.classList.contains('gap-0')).toBe(true);
126
+ });
127
+ it('applies legacy gap: xs', () => {
128
+ const { container } = render(Grid, { props: { gap: 'xs' } });
129
+ const grid = container.querySelector('.grid');
130
+ expect(grid?.classList.contains('gap-1')).toBe(true);
131
+ });
132
+ it('applies legacy gap: sm', () => {
133
+ const { container } = render(Grid, { props: { gap: 'sm' } });
134
+ const grid = container.querySelector('.grid');
135
+ expect(grid?.classList.contains('gap-2')).toBe(true);
136
+ });
137
+ it('applies legacy gap: md', () => {
138
+ const { container } = render(Grid, { props: { gap: 'md' } });
139
+ const grid = container.querySelector('.grid');
140
+ expect(grid?.classList.contains('gap-4')).toBe(true);
141
+ });
142
+ it('applies legacy gap: lg', () => {
143
+ const { container } = render(Grid, { props: { gap: 'lg' } });
144
+ const grid = container.querySelector('.grid');
145
+ expect(grid?.classList.contains('gap-6')).toBe(true);
146
+ });
147
+ it('applies legacy gap: xl', () => {
148
+ const { container } = render(Grid, { props: { gap: 'xl' } });
149
+ const grid = container.querySelector('.grid');
150
+ expect(grid?.classList.contains('gap-8')).toBe(true);
151
+ });
152
+ it('applies grid-specific gap: tight', () => {
153
+ const { container } = render(Grid, { props: { gap: 'tight' } });
154
+ const grid = container.querySelector('.grid');
155
+ expect(grid?.classList.contains('gap-4')).toBe(true);
156
+ });
157
+ it('applies grid-specific gap: standard', () => {
158
+ const { container } = render(Grid, { props: { gap: 'standard' } });
159
+ const grid = container.querySelector('.grid');
160
+ expect(grid?.classList.contains('gap-6')).toBe(true);
161
+ });
162
+ it('applies grid-specific gap: spacious', () => {
163
+ const { container } = render(Grid, { props: { gap: 'spacious' } });
164
+ const grid = container.querySelector('.grid');
165
+ expect(grid?.classList.contains('gap-8')).toBe(true);
166
+ });
167
+ });
168
+ describe('as prop', () => {
169
+ it('renders as div by default', () => {
170
+ const { container } = render(Grid);
171
+ expect(container.querySelector('div.grid')).toBeTruthy();
172
+ expect(container.querySelector('section.grid')).toBeFalsy();
173
+ expect(container.querySelector('ul.grid')).toBeFalsy();
174
+ });
175
+ it('renders as section element', () => {
176
+ const { container } = render(Grid, { props: { as: 'section' } });
177
+ expect(container.querySelector('section.grid')).toBeTruthy();
178
+ });
179
+ it('renders as ul element', () => {
180
+ const { container } = render(Grid, { props: { as: 'ul' } });
181
+ expect(container.querySelector('ul.grid')).toBeTruthy();
182
+ });
183
+ });
184
+ describe('combined props', () => {
185
+ it('applies multiple props together', () => {
186
+ const { container } = render(Grid, {
187
+ props: {
188
+ cols: '4',
189
+ gap: 'section',
190
+ as: 'section',
191
+ class: 'my-custom-grid'
192
+ }
193
+ });
194
+ const grid = container.querySelector('section.grid');
195
+ expect(grid).toBeTruthy();
196
+ expect(grid?.classList.contains('lg:grid-cols-4')).toBe(true);
197
+ expect(grid?.classList.contains('gap-6')).toBe(true);
198
+ expect(grid?.classList.contains('my-custom-grid')).toBe(true);
199
+ });
200
+ it('handles 12-column layout with no gap', () => {
201
+ const { container } = render(Grid, {
202
+ props: { cols: '12', gap: 'none' }
203
+ });
204
+ const grid = container.querySelector('.grid');
205
+ expect(grid?.classList.contains('grid-cols-12')).toBe(true);
206
+ expect(grid?.classList.contains('gap-0')).toBe(true);
207
+ });
208
+ it('handles auto-fit with custom minWidth and spacious gap', () => {
209
+ const { container } = render(Grid, {
210
+ props: {
211
+ cols: 'auto',
212
+ minWidth: '350px',
213
+ gap: 'spacious'
214
+ }
215
+ });
216
+ const grid = container.querySelector('.grid');
217
+ expect(grid?.getAttribute('style')).toContain('350px');
218
+ expect(grid?.classList.contains('gap-8')).toBe(true);
219
+ });
220
+ });
221
+ describe('no style attribute for non-auto cols', () => {
222
+ it('does not add style attribute for fixed column counts', () => {
223
+ const { container } = render(Grid, { props: { cols: '3' } });
224
+ const grid = container.querySelector('.grid');
225
+ // Style should be undefined or empty for non-auto cols
226
+ const styleAttr = grid?.getAttribute('style');
227
+ expect(styleAttr === null || styleAttr === '').toBe(true);
228
+ });
229
+ });
230
+ });
@@ -1,108 +1,100 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
-
4
- /**
5
- * Grid - Responsive grid container with automatic column sizing
6
- *
7
- * Use Grid for laying out cards, stats, or any items in a responsive grid.
8
- * Automatically stacks on mobile and expands on larger screens.
9
- *
10
- * @example Numeric gap
11
- * <Grid cols="3" gap="6">
12
- * <StatsCard>Revenue</StatsCard>
13
- * <StatsCard>Users</StatsCard>
14
- * <StatsCard>Orders</StatsCard>
15
- * </Grid>
16
- *
17
- * @example Semantic gap (recommended)
18
- * <Grid cols="3" gap="section">
19
- * <Card>Card 1</Card>
20
- * <Card>Card 2</Card>
21
- * <Card>Card 3</Card>
22
- * </Grid>
23
- *
24
- * @example Auto-fit columns
25
- * <Grid cols="auto" minWidth="300px" gap="section">
26
- * {#each items as item}
27
- * <Card>{item.name}</Card>
28
- * {/each}
29
- * </Grid>
30
- *
31
- * Semantic Gap Values (Flowbite/8px grid):
32
- * - tight: 16px (4) - Tight grid items
33
- * - standard: 24px (6) - Standard grid items (default)
34
- * - spacious: 32px (8) - Spacious grid items
35
- */
36
-
37
- interface Props {
38
- /** Number of columns or 'auto' for auto-fit */
39
- cols?: '1' | '2' | '3' | '4' | '6' | 'auto';
40
- /** Gap between grid items - semantic names or Tailwind spacing scale */
41
- gap?: 'tight' | 'standard' | 'spacious' | '0' | '2' | '3' | '4' | '6' | '8';
42
- /** Minimum width for auto-fit columns (only used when cols='auto') */
43
- minWidth?: string;
44
- /** HTML element to render as */
45
- as?: 'div' | 'section' | 'ul';
46
- /** Additional CSS classes */
47
- class?: string;
48
- /** Child content */
49
- children?: Snippet;
50
- }
51
-
52
- let {
53
- cols = '3',
54
- gap = '4',
55
- minWidth = '280px',
56
- as = 'div',
57
- class: className = '',
58
- children
59
- }: Props = $props();
60
-
61
- // Semantic gap names for grids
62
- const semanticGapMap: Record<string, string> = {
63
- 'tight': 'gap-4', // 16px - Tight grid items
64
- 'standard': 'gap-6', // 24px - Standard grid items
65
- 'spacious': 'gap-8', // 32px - Spacious grid items
66
- };
67
-
68
- // Numeric gap values (backwards compatible)
69
- const numericGapMap: Record<string, string> = {
70
- '0': 'gap-0',
71
- '2': 'gap-2',
72
- '3': 'gap-3',
73
- '4': 'gap-4',
74
- '6': 'gap-6',
75
- '8': 'gap-8'
76
- };
77
-
78
- // Combined map
79
- const gapMap: Record<string, string> = { ...numericGapMap, ...semanticGapMap };
80
-
81
- // Responsive column mappings - stack on mobile, expand on larger screens
82
- const colsMap: Record<string, string> = {
83
- '1': 'grid-cols-1',
84
- '2': 'grid-cols-1 md:grid-cols-2',
85
- '3': 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
86
- '4': 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',
87
- '6': 'grid-cols-2 md:grid-cols-3 lg:grid-cols-6',
88
- 'auto': '' // Uses inline style
89
- };
90
-
91
- let gridStyle = $derived(
92
- cols === 'auto'
93
- ? `grid-template-columns: repeat(auto-fit, minmax(${minWidth}, 1fr));`
94
- : ''
95
- );
96
-
97
- let classes = $derived(
98
- [
99
- 'grid',
100
- cols !== 'auto' ? colsMap[cols] : '',
101
- gapMap[gap] || 'gap-4',
102
- className
103
- ].filter(Boolean).join(' ')
104
- );
105
- </script>
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { gapMap, type GapKey } from '../../tokens/spacing.js';
4
+
5
+ /**
6
+ * Grid - Responsive grid container with automatic column sizing
7
+ *
8
+ * Use Grid for laying out cards, stats, or any items in a responsive grid.
9
+ * Automatically stacks on mobile and expands on larger screens.
10
+ *
11
+ * @example Numeric gap
12
+ * <Grid cols="3" gap="6">
13
+ * <StatsCard>Revenue</StatsCard>
14
+ * <StatsCard>Users</StatsCard>
15
+ * <StatsCard>Orders</StatsCard>
16
+ * </Grid>
17
+ *
18
+ * @example Semantic gap (recommended)
19
+ * <Grid cols="3" gap="section">
20
+ * <Card>Card 1</Card>
21
+ * <Card>Card 2</Card>
22
+ * <Card>Card 3</Card>
23
+ * </Grid>
24
+ *
25
+ * @example Auto-fit columns
26
+ * <Grid cols="auto" minWidth="300px" gap="section">
27
+ * {#each items as item}
28
+ * <Card>{item.name}</Card>
29
+ * {/each}
30
+ * </Grid>
31
+ *
32
+ * @example 12-column layout grid
33
+ * <Grid cols="12" gap="none">
34
+ * <div class="col-span-4">Sidebar</div>
35
+ * <div class="col-span-8">Content</div>
36
+ * </Grid>
37
+ *
38
+ * Semantic Gap Values (from tokens/spacing.ts):
39
+ * - none: 0px - No gap (for 12-col layouts)
40
+ * - xs: 4px (1) - Extra small gap
41
+ * - sm: 8px (2) - Small gap
42
+ * - tight: 16px (4) - Tight grid items (alias: md, content)
43
+ * - standard: 24px (6) - Standard grid items (alias: lg, section)
44
+ * - spacious: 32px (8) - Spacious grid items (alias: xl, layout)
45
+ */
46
+
47
+ interface Props {
48
+ /** Number of columns or 'auto' for auto-fit */
49
+ cols?: '1' | '2' | '3' | '4' | '5' | '6' | '12' | 'auto';
50
+ /** Gap between grid items - semantic names or Tailwind spacing scale */
51
+ gap?: GapKey;
52
+ /** Minimum width for auto-fit columns (only used when cols='auto') */
53
+ minWidth?: string;
54
+ /** HTML element to render as */
55
+ as?: 'div' | 'section' | 'ul';
56
+ /** Additional CSS classes */
57
+ class?: string;
58
+ /** Child content */
59
+ children?: Snippet;
60
+ }
61
+
62
+ let {
63
+ cols = '3',
64
+ gap = '4',
65
+ minWidth = '280px',
66
+ as = 'div',
67
+ class: className = '',
68
+ children
69
+ }: Props = $props();
70
+
71
+ // Responsive column mappings - stack on mobile, expand on larger screens
72
+ const colsMap: Record<string, string> = {
73
+ '1': 'grid-cols-1',
74
+ '2': 'grid-cols-1 md:grid-cols-2',
75
+ '3': 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
76
+ '4': 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',
77
+ '5': 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-5',
78
+ '6': 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6',
79
+ '12': 'grid-cols-12',
80
+ 'auto': '' // Uses inline style
81
+ };
82
+
83
+ let gridStyle = $derived(
84
+ cols === 'auto'
85
+ ? `grid-template-columns: repeat(auto-fit, minmax(${minWidth}, 1fr));`
86
+ : ''
87
+ );
88
+
89
+ let classes = $derived(
90
+ [
91
+ 'grid',
92
+ cols !== 'auto' ? colsMap[cols] : '',
93
+ gapMap[gap] || 'gap-4',
94
+ className
95
+ ].filter(Boolean).join(' ')
96
+ );
97
+ </script>
106
98
 
107
99
  <svelte:element this={as} class={classes} style={gridStyle || undefined}>
108
100
  {@render children?.()}
@@ -1,4 +1,5 @@
1
1
  import type { Snippet } from 'svelte';
2
+ import { type GapKey } from '../../tokens/spacing.js';
2
3
  /**
3
4
  * Grid - Responsive grid container with automatic column sizing
4
5
  *
@@ -26,16 +27,25 @@ import type { Snippet } from 'svelte';
26
27
  * {/each}
27
28
  * </Grid>
28
29
  *
29
- * Semantic Gap Values (Flowbite/8px grid):
30
- * - tight: 16px (4) - Tight grid items
31
- * - standard: 24px (6) - Standard grid items (default)
32
- * - spacious: 32px (8) - Spacious grid items
30
+ * @example 12-column layout grid
31
+ * <Grid cols="12" gap="none">
32
+ * <div class="col-span-4">Sidebar</div>
33
+ * <div class="col-span-8">Content</div>
34
+ * </Grid>
35
+ *
36
+ * Semantic Gap Values (from tokens/spacing.ts):
37
+ * - none: 0px - No gap (for 12-col layouts)
38
+ * - xs: 4px (1) - Extra small gap
39
+ * - sm: 8px (2) - Small gap
40
+ * - tight: 16px (4) - Tight grid items (alias: md, content)
41
+ * - standard: 24px (6) - Standard grid items (alias: lg, section)
42
+ * - spacious: 32px (8) - Spacious grid items (alias: xl, layout)
33
43
  */
34
44
  interface Props {
35
45
  /** Number of columns or 'auto' for auto-fit */
36
- cols?: '1' | '2' | '3' | '4' | '6' | 'auto';
46
+ cols?: '1' | '2' | '3' | '4' | '5' | '6' | '12' | 'auto';
37
47
  /** Gap between grid items - semantic names or Tailwind spacing scale */
38
- gap?: 'tight' | 'standard' | 'spacious' | '0' | '2' | '3' | '4' | '6' | '8';
48
+ gap?: GapKey;
39
49
  /** Minimum width for auto-fit columns (only used when cols='auto') */
40
50
  minWidth?: string;
41
51
  /** HTML element to render as */
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/Grid.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,UAAU,KAAK;IACb,+CAA+C;IAC/C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;IAC5C,wEAAwE;IACxE,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5E,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,EAAE,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkEH,QAAA,MAAM,IAAI,2CAAwC,CAAC;AACnD,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AACpC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Grid.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/Grid.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,UAAU,KAAK;IACb,+CAA+C;IAC/C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;IACzD,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,EAAE,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiDH,QAAA,MAAM,IAAI,2CAAwC,CAAC;AACnD,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AACpC,eAAe,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Stack.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stack.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Layout/Stack.spec.ts"],"names":[],"mappings":""}