@getmicdrop/svelte-components 5.4.0 → 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 (417) hide show
  1. package/dist/calendar/PublicCard/PublicCard.svelte +1 -0
  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 +19 -27
  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 +13 -51
  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 +4 -112
  40. package/dist/index.js +8 -184
  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 +2 -2
  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 +162 -184
  50. package/dist/patterns/forms/FormValidationSummary.stories.svelte +6 -6
  51. package/dist/patterns/forms/FormValidationSummary.svelte +11 -4
  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 +50 -34
  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 +85 -111
  68. package/dist/patterns/navigation/BottomNav.svelte +15 -5
  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 +147 -189
  73. package/dist/patterns/navigation/Header.svelte +20 -5
  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 +17 -4
  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 +14 -2
  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 +12 -2
  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 +3 -2
  92. package/dist/primitives/Accordion/Accordion.svelte.d.ts.map +1 -1
  93. package/dist/primitives/Alert/Alert.svelte +10 -11
  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 +15 -58
  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 +37 -69
  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 +10 -10
  103. package/dist/primitives/Drawer/Drawer.svelte +32 -10
  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 +29 -17
  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 +3 -2
  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 +3 -2
  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 +8 -7
  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 +8 -7
  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 +8 -7
  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 +3 -2
  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 +8 -7
  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 +8 -7
  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 +3 -2
  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 +3 -2
  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 +3 -2
  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 +8 -7
  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 +3 -1
  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 +3 -2
  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 +2 -2
  197. package/dist/primitives/Icons/Icon.svelte +19 -3
  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 +5 -3
  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 +3 -2
  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 +3 -1
  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 +3 -3
  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 +3 -2
  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 +3 -1
  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 +8 -7
  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 +3 -3
  231. package/dist/primitives/Icons/MoreHori.svelte +3 -2
  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 +8 -7
  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 +8 -7
  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 +8 -7
  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 +3 -2
  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 +8 -7
  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 +8 -7
  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 +3 -1
  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 +3 -1
  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 +5 -3
  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 +3 -1
  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 +4 -4
  274. package/dist/primitives/Icons/WarningIcon.svelte +6 -6
  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 +7 -20
  287. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  288. package/dist/primitives/Input/Select.svelte +35 -18
  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 +35 -9
  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/Skeleton/Skeleton.svelte +4 -10
  295. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +2 -1
  296. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  297. package/dist/primitives/Spinner/Spinner.svelte +10 -23
  298. package/dist/primitives/Spinner/Spinner.svelte.d.ts +4 -2
  299. package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
  300. package/dist/primitives/Tabs/TabItem.svelte +3 -2
  301. package/dist/primitives/Tabs/TabItem.svelte.d.ts.map +1 -1
  302. package/dist/primitives/Tabs/Tabs.svelte +2 -1
  303. package/dist/primitives/Tabs/Tabs.svelte.d.ts.map +1 -1
  304. package/dist/primitives/ValidationError.stories.svelte +10 -9
  305. package/dist/primitives/ValidationError.svelte +1 -1
  306. package/dist/primitives/index.d.ts +31 -0
  307. package/dist/primitives/index.d.ts.map +1 -0
  308. package/dist/primitives/index.js +81 -0
  309. package/dist/recipes/ImageUploader/ImageUploader.svelte +62 -83
  310. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
  311. package/dist/recipes/SuperLogin/SuperLogin.svelte +18 -17
  312. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  313. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +25 -6
  314. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -1
  315. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  316. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +2 -1
  317. package/dist/recipes/feedback/ErrorDisplay.svelte +34 -5
  318. package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts +7 -0
  319. package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts.map +1 -1
  320. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +14 -5
  321. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts +2 -2
  322. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -1
  323. package/dist/recipes/feedback/index.d.ts +4 -0
  324. package/dist/recipes/feedback/index.d.ts.map +1 -0
  325. package/dist/recipes/feedback/index.js +4 -0
  326. package/dist/recipes/fields/SelectField.svelte +1 -1
  327. package/dist/recipes/fields/SelectField.svelte.d.ts +4 -1
  328. package/dist/recipes/fields/SelectField.svelte.d.ts.map +1 -1
  329. package/dist/recipes/fields/TextareaField.svelte +2 -2
  330. package/dist/recipes/fields/TextareaField.svelte.d.ts +6 -2
  331. package/dist/recipes/fields/TextareaField.svelte.d.ts.map +1 -1
  332. package/dist/recipes/index.d.ts +8 -0
  333. package/dist/recipes/index.d.ts.map +1 -0
  334. package/dist/recipes/index.js +24 -0
  335. package/dist/recipes/inputs/MultiSelect.svelte +56 -24
  336. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +17 -26
  337. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  338. package/dist/recipes/inputs/OTPInput.svelte +25 -10
  339. package/dist/recipes/inputs/OTPInput.svelte.d.ts +15 -20
  340. package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
  341. package/dist/recipes/inputs/PasswordInput.svelte +42 -21
  342. package/dist/recipes/inputs/PasswordInput.svelte.d.ts +27 -34
  343. package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
  344. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +15 -6
  345. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -16
  346. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
  347. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +6 -1
  348. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -1
  349. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +4 -4
  350. package/dist/recipes/inputs/Search.svelte +29 -12
  351. package/dist/recipes/inputs/Search.svelte.d.ts +16 -32
  352. package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
  353. package/dist/recipes/inputs/SelectDropdown.svelte +26 -18
  354. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts +12 -18
  355. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts.map +1 -1
  356. package/dist/recipes/inputs/index.d.ts +8 -0
  357. package/dist/recipes/inputs/index.d.ts.map +1 -0
  358. package/dist/recipes/inputs/index.js +8 -0
  359. package/dist/recipes/modals/index.d.ts +7 -0
  360. package/dist/recipes/modals/index.d.ts.map +1 -0
  361. package/dist/recipes/modals/index.js +7 -0
  362. package/dist/stories/ButtonAuditDashboard.svelte +23 -18
  363. package/dist/stories/ButtonAuditDashboard.svelte.d.ts.map +1 -1
  364. package/dist/stories/PatternsGallery.svelte +66 -55
  365. package/dist/stories/PatternsGallery.svelte.d.ts.map +1 -1
  366. package/dist/stories/PrimitivesGallery.svelte +13 -13
  367. package/dist/stories/RecipesGallery.svelte +85 -55
  368. package/dist/stories/RecipesGallery.svelte.d.ts.map +1 -1
  369. package/dist/stripe/index.d.ts +8 -0
  370. package/dist/stripe/index.d.ts.map +1 -0
  371. package/dist/stripe/index.js +7 -0
  372. package/dist/stripe/useStripeTheme.svelte.d.ts +79 -0
  373. package/dist/stripe/useStripeTheme.svelte.d.ts.map +1 -0
  374. package/dist/stripe/useStripeTheme.svelte.js +138 -0
  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 +14 -2
  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
@@ -1,203 +1,181 @@
1
1
  import { describe, it, expect, vi } from 'vitest';
2
2
  import { render, fireEvent } from '@testing-library/svelte';
3
3
  import FormValidationSummary from './FormValidationSummary.svelte';
4
-
5
4
  describe('FormValidationSummary Component', () => {
6
- it('does not render when show is false', () => {
7
- const { container } = render(FormValidationSummary, {
8
- props: {
9
- show: false,
10
- errors: { firstName: 'Required' },
11
- },
5
+ it('does not render when show is false', () => {
6
+ const { container } = render(FormValidationSummary, {
7
+ props: {
8
+ show: false,
9
+ errors: { firstName: 'Required' },
10
+ },
11
+ });
12
+ const alert = container.querySelector('[role="alert"]');
13
+ expect(alert).toBeFalsy();
12
14
  });
13
- const alert = container.querySelector('[role="alert"]');
14
- expect(alert).toBeFalsy();
15
- });
16
-
17
- it('does not render when there are no errors', () => {
18
- const { container } = render(FormValidationSummary, {
19
- props: {
20
- show: true,
21
- errors: {},
22
- },
15
+ it('does not render when there are no errors', () => {
16
+ const { container } = render(FormValidationSummary, {
17
+ props: {
18
+ show: true,
19
+ errors: {},
20
+ },
21
+ });
22
+ const alert = container.querySelector('[role="alert"]');
23
+ expect(alert).toBeFalsy();
23
24
  });
24
- const alert = container.querySelector('[role="alert"]');
25
- expect(alert).toBeFalsy();
26
- });
27
-
28
- it('does not render when errors have empty messages', () => {
29
- const { container } = render(FormValidationSummary, {
30
- props: {
31
- show: true,
32
- errors: { firstName: '', lastName: ' ' },
33
- },
25
+ it('does not render when errors have empty messages', () => {
26
+ const { container } = render(FormValidationSummary, {
27
+ props: {
28
+ show: true,
29
+ errors: { firstName: '', lastName: ' ' },
30
+ },
31
+ });
32
+ const alert = container.querySelector('[role="alert"]');
33
+ expect(alert).toBeFalsy();
34
34
  });
35
- const alert = container.querySelector('[role="alert"]');
36
- expect(alert).toBeFalsy();
37
- });
38
-
39
- it('renders when show is true and has errors', () => {
40
- const { container, getByText } = render(FormValidationSummary, {
41
- props: {
42
- show: true,
43
- errors: { firstName: 'First name is required' },
44
- },
35
+ it('renders when show is true and has errors', () => {
36
+ const { container, getByText } = render(FormValidationSummary, {
37
+ props: {
38
+ show: true,
39
+ errors: { firstName: 'First name is required' },
40
+ },
41
+ });
42
+ const alert = container.querySelector('[role="alert"]');
43
+ expect(alert).toBeTruthy();
44
+ expect(getByText('Please fix the following:')).toBeTruthy();
45
45
  });
46
- const alert = container.querySelector('[role="alert"]');
47
- expect(alert).toBeTruthy();
48
- expect(getByText('Please fix the following:')).toBeTruthy();
49
- });
50
-
51
- it('displays error field labels', () => {
52
- const { getByText } = render(FormValidationSummary, {
53
- props: {
54
- show: true,
55
- errors: { firstName: 'Required', email: 'Invalid' },
56
- fieldLabels: { firstName: 'First Name', email: 'Email Address' },
57
- },
46
+ it('displays error field labels', () => {
47
+ const { getByText } = render(FormValidationSummary, {
48
+ props: {
49
+ show: true,
50
+ errors: { firstName: 'Required', email: 'Invalid' },
51
+ fieldLabels: { firstName: 'First Name', email: 'Email Address' },
52
+ },
53
+ });
54
+ expect(getByText('First Name')).toBeTruthy();
55
+ expect(getByText('Email Address')).toBeTruthy();
58
56
  });
59
- expect(getByText('First Name')).toBeTruthy();
60
- expect(getByText('Email Address')).toBeTruthy();
61
- });
62
-
63
- it('uses field key as label when no label provided', () => {
64
- const { getByText } = render(FormValidationSummary, {
65
- props: {
66
- show: true,
67
- errors: { firstName: 'Required' },
68
- fieldLabels: {},
69
- },
57
+ it('uses field key as label when no label provided', () => {
58
+ const { getByText } = render(FormValidationSummary, {
59
+ props: {
60
+ show: true,
61
+ errors: { firstName: 'Required' },
62
+ fieldLabels: {},
63
+ },
64
+ });
65
+ expect(getByText('firstName')).toBeTruthy();
70
66
  });
71
- expect(getByText('firstName')).toBeTruthy();
72
- });
73
-
74
- it('renders multiple error fields', () => {
75
- const { container } = render(FormValidationSummary, {
76
- props: {
77
- show: true,
78
- errors: {
79
- firstName: 'Required',
80
- lastName: 'Required',
81
- email: 'Invalid format',
82
- },
83
- fieldLabels: {
84
- firstName: 'First Name',
85
- lastName: 'Last Name',
86
- email: 'Email',
87
- },
88
- },
67
+ it('renders multiple error fields', () => {
68
+ const { container } = render(FormValidationSummary, {
69
+ props: {
70
+ show: true,
71
+ errors: {
72
+ firstName: 'Required',
73
+ lastName: 'Required',
74
+ email: 'Invalid format',
75
+ },
76
+ fieldLabels: {
77
+ firstName: 'First Name',
78
+ lastName: 'Last Name',
79
+ email: 'Email',
80
+ },
81
+ },
82
+ });
83
+ const listItems = container.querySelectorAll('li');
84
+ expect(listItems.length).toBe(3);
89
85
  });
90
- const listItems = container.querySelectorAll('li');
91
- expect(listItems.length).toBe(3);
92
- });
93
-
94
- it('has role="alert" and aria-live="polite"', () => {
95
- const { container } = render(FormValidationSummary, {
96
- props: {
97
- show: true,
98
- errors: { firstName: 'Required' },
99
- },
86
+ it('has role="alert" and aria-live="polite"', () => {
87
+ const { container } = render(FormValidationSummary, {
88
+ props: {
89
+ show: true,
90
+ errors: { firstName: 'Required' },
91
+ },
92
+ });
93
+ const alert = container.querySelector('[role="alert"]');
94
+ expect(alert.getAttribute('aria-live')).toBe('polite');
100
95
  });
101
- const alert = container.querySelector('[role="alert"]');
102
- expect(alert.getAttribute('aria-live')).toBe('polite');
103
- });
104
-
105
- it('renders clickable buttons for each error', () => {
106
- const { container } = render(FormValidationSummary, {
107
- props: {
108
- show: true,
109
- errors: { firstName: 'Required', email: 'Invalid' },
110
- fieldLabels: { firstName: 'First Name', email: 'Email' },
111
- },
96
+ it('renders clickable buttons for each error', () => {
97
+ const { container } = render(FormValidationSummary, {
98
+ props: {
99
+ show: true,
100
+ errors: { firstName: 'Required', email: 'Invalid' },
101
+ fieldLabels: { firstName: 'First Name', email: 'Email' },
102
+ },
103
+ });
104
+ const buttons = container.querySelectorAll('button[type="button"]');
105
+ expect(buttons.length).toBe(2);
112
106
  });
113
- const buttons = container.querySelectorAll('button[type="button"]');
114
- expect(buttons.length).toBe(2);
115
- });
116
-
117
- it('calls scrollIntoView on button click', async () => {
118
- // Create a mock element
119
- const mockElement = document.createElement('input');
120
- mockElement.id = 'firstName';
121
- mockElement.scrollIntoView = vi.fn();
122
- mockElement.focus = vi.fn();
123
- document.body.appendChild(mockElement);
124
-
125
- const { container } = render(FormValidationSummary, {
126
- props: {
127
- show: true,
128
- errors: { firstName: 'Required' },
129
- fieldLabels: { firstName: 'First Name' },
130
- },
107
+ it('calls scrollIntoView on button click', async () => {
108
+ // Create a mock element
109
+ const mockElement = document.createElement('input');
110
+ mockElement.id = 'firstName';
111
+ mockElement.scrollIntoView = vi.fn();
112
+ mockElement.focus = vi.fn();
113
+ document.body.appendChild(mockElement);
114
+ const { container } = render(FormValidationSummary, {
115
+ props: {
116
+ show: true,
117
+ errors: { firstName: 'Required' },
118
+ fieldLabels: { firstName: 'First Name' },
119
+ },
120
+ });
121
+ const button = container.querySelector('button[type="button"]');
122
+ await fireEvent.click(button);
123
+ expect(mockElement.scrollIntoView).toHaveBeenCalledWith({
124
+ behavior: 'smooth',
125
+ block: 'center',
126
+ });
127
+ // Clean up
128
+ document.body.removeChild(mockElement);
131
129
  });
132
-
133
- const button = container.querySelector('button[type="button"]');
134
- await fireEvent.click(button);
135
-
136
- expect(mockElement.scrollIntoView).toHaveBeenCalledWith({
137
- behavior: 'smooth',
138
- block: 'center',
130
+ it('uses custom fieldIds for scrolling', async () => {
131
+ const mockElement = document.createElement('input');
132
+ mockElement.id = 'custom-first-name-input';
133
+ mockElement.scrollIntoView = vi.fn();
134
+ mockElement.focus = vi.fn();
135
+ document.body.appendChild(mockElement);
136
+ const { container } = render(FormValidationSummary, {
137
+ props: {
138
+ show: true,
139
+ errors: { firstName: 'Required' },
140
+ fieldLabels: { firstName: 'First Name' },
141
+ fieldIds: { firstName: 'custom-first-name-input' },
142
+ },
143
+ });
144
+ const button = container.querySelector('button[type="button"]');
145
+ await fireEvent.click(button);
146
+ expect(mockElement.scrollIntoView).toHaveBeenCalled();
147
+ document.body.removeChild(mockElement);
139
148
  });
140
-
141
- // Clean up
142
- document.body.removeChild(mockElement);
143
- });
144
-
145
- it('uses custom fieldIds for scrolling', async () => {
146
- const mockElement = document.createElement('input');
147
- mockElement.id = 'custom-first-name-input';
148
- mockElement.scrollIntoView = vi.fn();
149
- mockElement.focus = vi.fn();
150
- document.body.appendChild(mockElement);
151
-
152
- const { container } = render(FormValidationSummary, {
153
- props: {
154
- show: true,
155
- errors: { firstName: 'Required' },
156
- fieldLabels: { firstName: 'First Name' },
157
- fieldIds: { firstName: 'custom-first-name-input' },
158
- },
149
+ it('has red background styling', () => {
150
+ const { container } = render(FormValidationSummary, {
151
+ props: {
152
+ show: true,
153
+ errors: { firstName: 'Required' },
154
+ },
155
+ });
156
+ const alert = container.querySelector('[role="alert"]');
157
+ expect(alert.classList.contains('bg-red-50')).toBe(true);
158
+ expect(alert.classList.contains('border-red-200')).toBe(true);
159
159
  });
160
-
161
- const button = container.querySelector('button[type="button"]');
162
- await fireEvent.click(button);
163
-
164
- expect(mockElement.scrollIntoView).toHaveBeenCalled();
165
-
166
- document.body.removeChild(mockElement);
167
- });
168
-
169
- it('has red background styling', () => {
170
- const { container } = render(FormValidationSummary, {
171
- props: {
172
- show: true,
173
- errors: { firstName: 'Required' },
174
- },
160
+ it('renders warning icon', () => {
161
+ const { container } = render(FormValidationSummary, {
162
+ props: {
163
+ show: true,
164
+ errors: { firstName: 'Required' },
165
+ },
166
+ });
167
+ const svg = container.querySelector('svg');
168
+ expect(svg).toBeTruthy();
175
169
  });
176
- const alert = container.querySelector('[role="alert"]');
177
- expect(alert.classList.contains('bg-red-50')).toBe(true);
178
- expect(alert.classList.contains('border-red-200')).toBe(true);
179
- });
180
-
181
- it('renders warning icon', () => {
182
- const { container } = render(FormValidationSummary, {
183
- props: {
184
- show: true,
185
- errors: { firstName: 'Required' },
186
- },
170
+ it('filters out null and undefined error values', () => {
171
+ const { container } = render(FormValidationSummary, {
172
+ props: {
173
+ show: true,
174
+ errors: { firstName: 'Required', lastName: null, email: undefined },
175
+ fieldLabels: { firstName: 'First Name', lastName: 'Last Name', email: 'Email' },
176
+ },
177
+ });
178
+ const listItems = container.querySelectorAll('li');
179
+ expect(listItems.length).toBe(1);
187
180
  });
188
- const svg = container.querySelector('svg');
189
- expect(svg).toBeTruthy();
190
- });
191
-
192
- it('filters out null and undefined error values', () => {
193
- const { container } = render(FormValidationSummary, {
194
- props: {
195
- show: true,
196
- errors: { firstName: 'Required', lastName: null, email: undefined },
197
- fieldLabels: { firstName: 'First Name', lastName: 'Last Name', email: 'Email' },
198
- },
199
- });
200
- const listItems = container.querySelectorAll('li');
201
- expect(listItems.length).toBe(1);
202
- });
203
181
  });
@@ -72,16 +72,16 @@
72
72
 
73
73
  <div class="space-y-4 mt-4">
74
74
  <div>
75
- <label id="firstName" class="block text-sm font-medium mb-1">First Name</label>
76
- <input type="text" class="w-full px-3 py-2 border border-red-300 rounded" />
75
+ <label for="firstName" class="block text-sm font-medium mb-1">First Name</label>
76
+ <input id="firstName" type="text" class="w-full px-3 py-2 border border-red-300 rounded" />
77
77
  </div>
78
78
  <div>
79
- <label id="email" class="block text-sm font-medium mb-1">Email</label>
80
- <input type="email" class="w-full px-3 py-2 border border-red-300 rounded" />
79
+ <label for="email" class="block text-sm font-medium mb-1">Email</label>
80
+ <input id="email" type="email" class="w-full px-3 py-2 border border-red-300 rounded" />
81
81
  </div>
82
82
  <div>
83
- <label id="phone" class="block text-sm font-medium mb-1">Phone</label>
84
- <input type="tel" class="w-full px-3 py-2 border border-red-300 rounded" />
83
+ <label for="phone" class="block text-sm font-medium mb-1">Phone</label>
84
+ <input id="phone" type="tel" class="w-full px-3 py-2 border border-red-300 rounded" />
85
85
  </div>
86
86
  </div>
87
87
  </div>
@@ -1,15 +1,22 @@
1
- <script>
1
+ <script lang="ts">
2
2
  import { slide } from "svelte/transition";
3
3
  import { cubicOut } from "svelte/easing";
4
4
  import WarningIcon from "../../primitives/Icons/WarningIcon.svelte";
5
5
  import Button from "../../primitives/Button/Button.svelte";
6
6
 
7
+ interface Props {
8
+ errors?: Record<string, string | null | undefined>;
9
+ show?: boolean;
10
+ fieldLabels?: Record<string, string>;
11
+ fieldIds?: Record<string, string>;
12
+ }
13
+
7
14
  let {
8
15
  errors = {},
9
16
  show = false,
10
17
  fieldLabels = {},
11
18
  fieldIds = {},
12
- } = $props();
19
+ }: Props = $props();
13
20
 
14
21
  // Get list of fields with errors
15
22
  let errorFields = $derived(Object.entries(errors)
@@ -23,7 +30,7 @@
23
30
 
24
31
  let hasErrors = $derived(errorFields.length > 0);
25
32
 
26
- function scrollToField(elementId) {
33
+ function scrollToField(elementId: string) {
27
34
  const element = document.getElementById(elementId);
28
35
  if (element) {
29
36
  element.scrollIntoView({ behavior: "smooth", block: "center" });
@@ -42,7 +49,7 @@
42
49
  aria-live="polite"
43
50
  >
44
51
  <div class="flex items-start gap-2">
45
- <WarningIcon className="shrink-0 text-red-600 dark:text-red-500 mt-0.5" />
52
+ <WarningIcon class="shrink-0 text-red-600 dark:text-red-500 mt-0.5" />
46
53
  <div class="flex-1">
47
54
  <p class="text-sm font-medium text-red-800 dark:text-red-400">
48
55
  Please fix the following:
@@ -1,18 +1,10 @@
1
- export default FormValidationSummary;
2
- type FormValidationSummary = {
3
- $on?(type: string, callback: (e: any) => void): () => void;
4
- $set?(props: Partial<$$ComponentProps>): void;
5
- };
6
- declare const FormValidationSummary: import("svelte").Component<{
7
- errors?: Record<string, any>;
8
- show?: boolean;
9
- fieldLabels?: Record<string, any>;
10
- fieldIds?: Record<string, any>;
11
- }, {}, "">;
12
- type $$ComponentProps = {
13
- errors?: Record<string, any>;
1
+ interface Props {
2
+ errors?: Record<string, string | null | undefined>;
14
3
  show?: boolean;
15
- fieldLabels?: Record<string, any>;
16
- fieldIds?: Record<string, any>;
17
- };
4
+ fieldLabels?: Record<string, string>;
5
+ fieldIds?: Record<string, string>;
6
+ }
7
+ declare const FormValidationSummary: import("svelte").Component<Props, {}, "">;
8
+ type FormValidationSummary = ReturnType<typeof FormValidationSummary>;
9
+ export default FormValidationSummary;
18
10
  //# sourceMappingURL=FormValidationSummary.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormValidationSummary.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/forms/FormValidationSummary.svelte.js"],"names":[],"mappings":";;;;;AAoEA;aAtD8B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;WAAS,OAAO;kBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;eAAa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;WAsDhE;wBAtDjD;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE"}
1
+ {"version":3,"file":"FormValidationSummary.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/forms/FormValidationSummary.svelte.ts"],"names":[],"mappings":"AASE,UAAU,KAAK;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AA8DH,QAAA,MAAM,qBAAqB,2CAAwC,CAAC;AACpE,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtE,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { default as FormActions } from "./FormActions.svelte";
2
+ export { default as FormGrid } from "./FormGrid.svelte";
3
+ export { default as FormSection } from "./FormSection.svelte";
4
+ export { default as FormValidationSummary } from "./FormValidationSummary.svelte";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/forms/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ // Form pattern components - layout and structure for forms
2
+ export { default as FormActions } from './FormActions.svelte';
3
+ export { default as FormGrid } from './FormGrid.svelte';
4
+ export { default as FormSection } from './FormSection.svelte';
5
+ export { default as FormValidationSummary } from './FormValidationSummary.svelte';
@@ -0,0 +1,6 @@
1
+ export * from "./forms/index.js";
2
+ export * from "./navigation/index.js";
3
+ export * from "./page/index.js";
4
+ export * from "./data/index.js";
5
+ export * from "./layout/index.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/patterns/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ // =============================================================================
2
+ // PATTERNS - Layout & flow components (Layer 3)
3
+ // =============================================================================
4
+
5
+ // Forms - re-export from forms/index.js
6
+ export * from './forms/index.js';
7
+
8
+ // Navigation - re-export from navigation/index.js
9
+ export * from './navigation/index.js';
10
+
11
+ // Page - re-export from page/index.js
12
+ export * from './page/index.js';
13
+
14
+ // Data - re-export from data/index.js
15
+ export * from './data/index.js';
16
+
17
+ // Layout - re-export from layout/index.js
18
+ export * from './layout/index.js';
@@ -1,4 +1,41 @@
1
- <script>
1
+ <!--
2
+ @component Stack (Deprecated)
3
+
4
+ @deprecated Use `import { Stack } from '@getmicdrop/svelte-components'` instead.
5
+ This file is kept for backwards compatibility with direct imports from
6
+ `@getmicdrop/svelte-components/patterns/layout/Stack.svelte`.
7
+
8
+ The canonical version is now at `components/Layout/Stack.svelte` which includes:
9
+ - TypeScript support
10
+ - More gap options (semantic: tight, compact, item, group, content, section, layout, page)
11
+ - `as` prop for semantic HTML elements
12
+ - `baseline` alignment
13
+ - `evenly` justify option
14
+
15
+ Migration:
16
+ - gap="none" → gap="0"
17
+ - gap="xs" → gap="tight"
18
+ - gap="sm" → gap="item"
19
+ - gap="md" → gap="content" (or just use default)
20
+ - gap="lg" → gap="section"
21
+ - gap="xl" → gap="layout"
22
+ -->
23
+ <script lang="ts">
24
+ import Stack from '../../components/Layout/Stack.svelte';
25
+ import type { Snippet } from 'svelte';
26
+
27
+ // Re-export all props with same interface for backwards compatibility
28
+ interface Props {
29
+ gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'section' | 'layout' | 'content' | 'group';
30
+ direction?: 'vertical' | 'horizontal';
31
+ align?: 'start' | 'center' | 'end' | 'stretch';
32
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around';
33
+ wrap?: boolean;
34
+ class?: string;
35
+ children?: Snippet;
36
+ [key: string]: unknown;
37
+ }
38
+
2
39
  let {
3
40
  gap = 'md',
4
41
  direction = 'vertical',
@@ -7,39 +44,18 @@
7
44
  wrap = false,
8
45
  class: className = '',
9
46
  children,
10
- } = $props();
11
-
12
- const gapClasses = {
13
- none: 'gap-0',
14
- xs: 'gap-1',
15
- sm: 'gap-2',
16
- md: 'gap-4',
17
- lg: 'gap-6',
18
- xl: 'gap-8',
19
- section: 'gap-6',
20
- layout: 'gap-8',
21
- content: 'gap-4',
22
- group: 'gap-3',
23
- };
24
-
25
- const alignClasses = {
26
- start: 'items-start',
27
- center: 'items-center',
28
- end: 'items-end',
29
- stretch: 'items-stretch',
30
- };
31
-
32
- const justifyClasses = {
33
- start: 'justify-start',
34
- center: 'justify-center',
35
- end: 'justify-end',
36
- between: 'justify-between',
37
- around: 'justify-around',
38
- };
47
+ ...restProps
48
+ }: Props = $props();
39
49
  </script>
40
50
 
41
- <div
42
- class="flex {direction === 'horizontal' ? 'flex-row' : 'flex-col'} {gapClasses[gap] || 'gap-4'} {alignClasses[align] || 'items-stretch'} {justifyClasses[justify] || 'justify-start'} {wrap ? 'flex-wrap' : ''} {className}"
51
+ <Stack
52
+ {gap}
53
+ {direction}
54
+ {align}
55
+ {justify}
56
+ {wrap}
57
+ class={className}
58
+ {...restProps}
43
59
  >
44
- {@render children?.()}
45
- </div>
60
+ {#if children}{@render children()}{/if}
61
+ </Stack>