@heymantle/litho 0.0.3 → 0.0.5

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 (369) hide show
  1. package/dist/cjs/components/ActionList.js +50 -16
  2. package/dist/cjs/components/AnnouncementBar.js +10 -3
  3. package/dist/cjs/components/AppProvider.js +10 -1
  4. package/dist/cjs/components/Autocomplete.js +55 -22
  5. package/dist/cjs/components/Badge.js +2 -1
  6. package/dist/cjs/components/Banner.js +35 -31
  7. package/dist/cjs/components/Box.js +5 -3
  8. package/dist/cjs/components/Button.js +78 -18
  9. package/dist/cjs/components/Card.js +6 -45
  10. package/dist/cjs/components/Checkbox.js +16 -6
  11. package/dist/cjs/components/ChoiceList.js +7 -4
  12. package/dist/cjs/components/ColorField.js +10 -5
  13. package/dist/cjs/components/DatePicker.js +13 -8
  14. package/dist/cjs/components/DropZone.js +33 -18
  15. package/dist/cjs/components/EmptyState.js +17 -9
  16. package/dist/cjs/components/Filters.js +36 -23
  17. package/dist/cjs/components/FooterHelp.js +7 -2
  18. package/dist/cjs/components/Form.js +18 -3
  19. package/dist/cjs/components/Frame.js +48 -23
  20. package/dist/cjs/components/FrameSaveBar.js +21 -12
  21. package/dist/cjs/components/HorizontalStack.js +9 -2
  22. package/dist/cjs/components/Icon.js +1 -0
  23. package/dist/cjs/components/Layout.js +3 -3
  24. package/dist/cjs/components/LayoutSection.js +2 -2
  25. package/dist/cjs/components/Link.js +6 -2
  26. package/dist/cjs/components/List.js +4 -3
  27. package/dist/cjs/components/Listbox.js +9 -4
  28. package/dist/cjs/components/Modal.js +26 -17
  29. package/dist/cjs/components/Navigation.js +30 -20
  30. package/dist/cjs/components/Page.js +8 -3
  31. package/dist/cjs/components/Pagination.js +11 -4
  32. package/dist/cjs/components/Pane.js +168 -41
  33. package/dist/cjs/components/Popover.js +59 -6
  34. package/dist/cjs/components/RangeSlider.js +11 -4
  35. package/dist/cjs/components/ResourceList.js +9 -3
  36. package/dist/cjs/components/Select.js +2 -0
  37. package/dist/cjs/components/Stack.js +223 -0
  38. package/dist/cjs/components/Table.js +33 -20
  39. package/dist/cjs/components/Tabs.js +41 -11
  40. package/dist/cjs/components/Text.js +8 -5
  41. package/dist/cjs/components/TextField.js +23 -13
  42. package/dist/cjs/components/Thumbnail.js +7 -2
  43. package/dist/cjs/components/TimePicker.js +7 -2
  44. package/dist/cjs/components/Tip.js +10 -4
  45. package/dist/cjs/components/Tooltip.js +16 -8
  46. package/dist/cjs/components/TopBar.js +17 -9
  47. package/dist/cjs/components/VerticalStack.js +8 -2
  48. package/dist/cjs/dev/verify-publish.js +37 -4
  49. package/dist/cjs/index.js +4 -0
  50. package/dist/cjs/postcss.config.js +21 -0
  51. package/dist/cjs/stories/ActionList.stories.js +365 -0
  52. package/dist/cjs/stories/AnnouncementBar.stories.js +244 -0
  53. package/dist/cjs/stories/Autocomplete.stories.js +874 -0
  54. package/dist/cjs/stories/Badge.stories.js +183 -0
  55. package/dist/cjs/stories/Banner.stories.js +201 -0
  56. package/dist/cjs/stories/Box.stories.js +601 -0
  57. package/dist/cjs/stories/Button.stories.js +325 -0
  58. package/dist/cjs/stories/ButtonGroup.stories.js +404 -0
  59. package/dist/cjs/stories/Card.stories.js +278 -0
  60. package/dist/cjs/stories/Checkbox.stories.js +266 -0
  61. package/dist/cjs/stories/ChoiceList.stories.js +885 -0
  62. package/dist/cjs/stories/Collapsible.stories.js +917 -0
  63. package/dist/cjs/stories/ColorField.stories.js +887 -0
  64. package/dist/cjs/stories/ContextualSaveBar.stories.js +971 -0
  65. package/dist/cjs/stories/DatePicker.stories.js +584 -0
  66. package/dist/cjs/stories/Divider.stories.js +766 -0
  67. package/dist/cjs/stories/DropZone.stories.js +1210 -0
  68. package/dist/cjs/stories/EmptyState.stories.js +296 -0
  69. package/dist/cjs/stories/Filters.stories.js +1355 -0
  70. package/dist/cjs/stories/FooterHelp.stories.js +874 -0
  71. package/dist/cjs/stories/Form.stories.js +943 -0
  72. package/dist/cjs/stories/Grid.stories.js +1199 -0
  73. package/dist/cjs/stories/HorizontalStack.stories.js +1064 -0
  74. package/dist/cjs/stories/Icon.stories.js +599 -0
  75. package/dist/cjs/stories/Image.stories.js +883 -0
  76. package/dist/cjs/stories/InlineError.stories.js +711 -0
  77. package/dist/cjs/stories/Label.stories.js +665 -0
  78. package/dist/cjs/stories/Layout.stories.js +687 -0
  79. package/dist/cjs/stories/LayoutSection.stories.js +1275 -0
  80. package/dist/cjs/stories/Link.stories.js +425 -0
  81. package/dist/cjs/stories/List.stories.js +1048 -0
  82. package/dist/cjs/stories/Listbox.stories.js +824 -0
  83. package/dist/cjs/stories/Loading.stories.js +909 -0
  84. package/dist/cjs/stories/Modal.stories.js +363 -0
  85. package/dist/cjs/stories/Navigation.stories.js +605 -0
  86. package/dist/cjs/stories/Page.stories.js +327 -0
  87. package/dist/cjs/stories/Pagination.stories.js +438 -0
  88. package/dist/cjs/stories/Pane.stories.js +1550 -0
  89. package/dist/cjs/stories/Popover.stories.js +641 -0
  90. package/dist/cjs/stories/PopoverManager.stories.js +1233 -0
  91. package/dist/cjs/stories/ProgressBar.stories.js +513 -0
  92. package/dist/cjs/stories/RadioButton.stories.js +642 -0
  93. package/dist/cjs/stories/RadioButtonCard.stories.js +816 -0
  94. package/dist/cjs/stories/RangeSlider.stories.js +896 -0
  95. package/dist/cjs/stories/ResourceList.stories.js +1076 -0
  96. package/dist/cjs/stories/Select.stories.js +413 -0
  97. package/dist/cjs/stories/SkeletonText.stories.js +777 -0
  98. package/dist/cjs/stories/Spinner.stories.js +403 -0
  99. package/dist/cjs/stories/Stack.stories.js +1397 -0
  100. package/dist/cjs/stories/Table.stories.js +628 -0
  101. package/dist/cjs/stories/Tabs.stories.js +722 -0
  102. package/dist/cjs/stories/Tag.stories.js +628 -0
  103. package/dist/cjs/stories/Text.stories.js +262 -0
  104. package/dist/cjs/stories/TextField.stories.js +377 -0
  105. package/dist/cjs/stories/Thumbnail.stories.js +863 -0
  106. package/dist/cjs/stories/TimePicker.stories.js +967 -0
  107. package/dist/cjs/stories/Tip.stories.js +753 -0
  108. package/dist/cjs/stories/Tooltip.stories.js +357 -0
  109. package/dist/cjs/stories/TopBar.stories.js +157 -0
  110. package/dist/cjs/stories/VerticalStack.stories.js +1287 -0
  111. package/dist/cjs/tailwind.config.js +17 -0
  112. package/dist/cjs/utilities/transformers.js +66 -0
  113. package/dist/cjs/vite.config.js +35 -0
  114. package/dist/esm/components/ActionList.js +41 -12
  115. package/dist/esm/components/AnnouncementBar.js +3 -1
  116. package/dist/esm/components/AppProvider.js +10 -1
  117. package/dist/esm/components/Autocomplete.js +44 -16
  118. package/dist/esm/components/Badge.js +2 -2
  119. package/dist/esm/components/Banner.js +20 -21
  120. package/dist/esm/components/Box.js +5 -4
  121. package/dist/esm/components/Button.js +68 -13
  122. package/dist/esm/components/Card.js +6 -4
  123. package/dist/esm/components/Checkbox.js +6 -1
  124. package/dist/esm/components/ChoiceList.js +7 -4
  125. package/dist/esm/components/ColorField.js +3 -3
  126. package/dist/esm/components/DatePicker.js +6 -1
  127. package/dist/esm/components/DropZone.js +14 -4
  128. package/dist/esm/components/EmptyState.js +6 -3
  129. package/dist/esm/components/Filters.js +14 -6
  130. package/dist/esm/components/FooterHelp.js +1 -1
  131. package/dist/esm/components/Form.js +18 -3
  132. package/dist/esm/components/Frame.js +27 -15
  133. package/dist/esm/components/FrameSaveBar.js +10 -6
  134. package/dist/esm/components/HorizontalStack.js +9 -2
  135. package/dist/esm/components/Icon.js +1 -0
  136. package/dist/esm/components/InlineError.js +1 -1
  137. package/dist/esm/components/Layout.js +4 -4
  138. package/dist/esm/components/LayoutSection.js +2 -2
  139. package/dist/esm/components/Link.js +6 -2
  140. package/dist/esm/components/List.js +4 -3
  141. package/dist/esm/components/Listbox.js +4 -4
  142. package/dist/esm/components/Modal.js +8 -4
  143. package/dist/esm/components/Navigation.js +16 -11
  144. package/dist/esm/components/Page.js +9 -4
  145. package/dist/esm/components/Pagination.js +3 -1
  146. package/dist/esm/components/Pane.js +165 -43
  147. package/dist/esm/components/Popover.js +18 -6
  148. package/dist/esm/components/RangeSlider.js +3 -1
  149. package/dist/esm/components/ResourceList.js +2 -1
  150. package/dist/esm/components/Select.js +2 -0
  151. package/dist/esm/components/Stack.js +213 -0
  152. package/dist/esm/components/Table.js +17 -4
  153. package/dist/esm/components/Tabs.js +41 -11
  154. package/dist/esm/components/Text.js +8 -6
  155. package/dist/esm/components/TextField.js +6 -1
  156. package/dist/esm/components/Thumbnail.js +1 -1
  157. package/dist/esm/components/TimePicker.js +1 -1
  158. package/dist/esm/components/Tip.js +3 -2
  159. package/dist/esm/components/Tooltip.js +4 -1
  160. package/dist/esm/components/TopBar.js +7 -4
  161. package/dist/esm/components/VerticalStack.js +8 -2
  162. package/dist/esm/dev/verify-publish.js +37 -4
  163. package/dist/esm/index.js +1 -0
  164. package/dist/esm/postcss.config.js +6 -0
  165. package/dist/esm/stories/ActionList.stories.js +327 -0
  166. package/dist/esm/stories/AnnouncementBar.stories.js +212 -0
  167. package/dist/esm/stories/Autocomplete.stories.js +836 -0
  168. package/dist/esm/stories/Badge.stories.js +138 -0
  169. package/dist/esm/stories/Banner.stories.js +159 -0
  170. package/dist/esm/stories/Box.stories.js +560 -0
  171. package/dist/esm/stories/Button.stories.js +277 -0
  172. package/dist/esm/stories/ButtonGroup.stories.js +357 -0
  173. package/dist/esm/stories/Card.stories.js +240 -0
  174. package/dist/esm/stories/Checkbox.stories.js +219 -0
  175. package/dist/esm/stories/ChoiceList.stories.js +835 -0
  176. package/dist/esm/stories/Collapsible.stories.js +879 -0
  177. package/dist/esm/stories/ColorField.stories.js +846 -0
  178. package/dist/esm/stories/ContextualSaveBar.stories.js +939 -0
  179. package/dist/esm/stories/DatePicker.stories.js +537 -0
  180. package/dist/esm/stories/Divider.stories.js +722 -0
  181. package/dist/esm/stories/DropZone.stories.js +1166 -0
  182. package/dist/esm/stories/EmptyState.stories.js +246 -0
  183. package/dist/esm/stories/Filters.stories.js +1317 -0
  184. package/dist/esm/stories/FooterHelp.stories.js +818 -0
  185. package/dist/esm/stories/Form.stories.js +908 -0
  186. package/dist/esm/stories/Grid.stories.js +1152 -0
  187. package/dist/esm/stories/HorizontalStack.stories.js +1011 -0
  188. package/dist/esm/stories/Icon.stories.js +558 -0
  189. package/dist/esm/stories/Image.stories.js +836 -0
  190. package/dist/esm/stories/InlineError.stories.js +667 -0
  191. package/dist/esm/stories/Label.stories.js +612 -0
  192. package/dist/esm/stories/Layout.stories.js +649 -0
  193. package/dist/esm/stories/LayoutSection.stories.js +1234 -0
  194. package/dist/esm/stories/Link.stories.js +381 -0
  195. package/dist/esm/stories/List.stories.js +992 -0
  196. package/dist/esm/stories/Listbox.stories.js +780 -0
  197. package/dist/esm/stories/Loading.stories.js +859 -0
  198. package/dist/esm/stories/Modal.stories.js +322 -0
  199. package/dist/esm/stories/Navigation.stories.js +567 -0
  200. package/dist/esm/stories/Page.stories.js +280 -0
  201. package/dist/esm/stories/Pagination.stories.js +394 -0
  202. package/dist/esm/stories/Pane.stories.js +1512 -0
  203. package/dist/esm/stories/Popover.stories.js +609 -0
  204. package/dist/esm/stories/PopoverManager.stories.js +1201 -0
  205. package/dist/esm/stories/ProgressBar.stories.js +472 -0
  206. package/dist/esm/stories/RadioButton.stories.js +598 -0
  207. package/dist/esm/stories/RadioButtonCard.stories.js +772 -0
  208. package/dist/esm/stories/RangeSlider.stories.js +849 -0
  209. package/dist/esm/stories/ResourceList.stories.js +1038 -0
  210. package/dist/esm/stories/Select.stories.js +363 -0
  211. package/dist/esm/stories/SkeletonText.stories.js +718 -0
  212. package/dist/esm/stories/Spinner.stories.js +362 -0
  213. package/dist/esm/stories/Stack.stories.js +1338 -0
  214. package/dist/esm/stories/Table.stories.js +584 -0
  215. package/dist/esm/stories/Tabs.stories.js +684 -0
  216. package/dist/esm/stories/Tag.stories.js +581 -0
  217. package/dist/esm/stories/Text.stories.js +217 -0
  218. package/dist/esm/stories/TextField.stories.js +332 -0
  219. package/dist/esm/stories/Thumbnail.stories.js +810 -0
  220. package/dist/esm/stories/TimePicker.stories.js +911 -0
  221. package/dist/esm/stories/Tip.stories.js +706 -0
  222. package/dist/esm/stories/Tooltip.stories.js +313 -0
  223. package/dist/esm/stories/TopBar.stories.js +116 -0
  224. package/dist/esm/stories/VerticalStack.stories.js +1240 -0
  225. package/dist/esm/tailwind.config.js +7 -0
  226. package/dist/esm/utilities/transformers.js +47 -0
  227. package/dist/esm/vite.config.js +20 -0
  228. package/dist/types/components/ActionList.d.ts +122 -0
  229. package/dist/types/components/ActionList.d.ts.map +1 -0
  230. package/dist/types/components/AnnouncementBar.d.ts +21 -0
  231. package/dist/types/components/AnnouncementBar.d.ts.map +1 -0
  232. package/dist/types/components/AppProvider.d.ts +61 -0
  233. package/dist/types/components/AppProvider.d.ts.map +1 -0
  234. package/dist/types/components/Autocomplete.d.ts +135 -0
  235. package/dist/types/components/Autocomplete.d.ts.map +1 -0
  236. package/dist/types/components/Badge.d.ts +21 -0
  237. package/dist/types/components/Badge.d.ts.map +1 -0
  238. package/dist/types/components/Banner.d.ts +78 -0
  239. package/dist/types/components/Banner.d.ts.map +1 -0
  240. package/dist/types/components/Box.d.ts +70 -0
  241. package/dist/types/components/Box.d.ts.map +1 -0
  242. package/dist/types/components/Button.d.ts +133 -0
  243. package/dist/types/components/Button.d.ts.map +1 -0
  244. package/dist/types/components/ButtonGroup.d.ts +26 -0
  245. package/dist/types/components/ButtonGroup.d.ts.map +1 -0
  246. package/dist/types/components/Card.d.ts +141 -0
  247. package/dist/types/components/Card.d.ts.map +1 -0
  248. package/dist/types/components/Checkbox.d.ts +56 -0
  249. package/dist/types/components/Checkbox.d.ts.map +1 -0
  250. package/dist/types/components/ChoiceList.d.ts +69 -0
  251. package/dist/types/components/ChoiceList.d.ts.map +1 -0
  252. package/dist/types/components/Collapsible.d.ts +17 -0
  253. package/dist/types/components/Collapsible.d.ts.map +1 -0
  254. package/dist/types/components/ColorField.d.ts +36 -0
  255. package/dist/types/components/ColorField.d.ts.map +1 -0
  256. package/dist/types/components/ContextualSaveBar.d.ts +22 -0
  257. package/dist/types/components/ContextualSaveBar.d.ts.map +1 -0
  258. package/dist/types/components/DatePicker.d.ts +66 -0
  259. package/dist/types/components/DatePicker.d.ts.map +1 -0
  260. package/dist/types/components/Divider.d.ts +21 -0
  261. package/dist/types/components/Divider.d.ts.map +1 -0
  262. package/dist/types/components/DropZone.d.ts +108 -0
  263. package/dist/types/components/DropZone.d.ts.map +1 -0
  264. package/dist/types/components/EmptyState.d.ts +52 -0
  265. package/dist/types/components/EmptyState.d.ts.map +1 -0
  266. package/dist/types/components/Filters.d.ts +168 -0
  267. package/dist/types/components/Filters.d.ts.map +1 -0
  268. package/dist/types/components/FooterHelp.d.ts +21 -0
  269. package/dist/types/components/FooterHelp.d.ts.map +1 -0
  270. package/dist/types/components/Form.d.ts +39 -0
  271. package/dist/types/components/Form.d.ts.map +1 -0
  272. package/dist/types/components/Frame.d.ts +51 -0
  273. package/dist/types/components/Frame.d.ts.map +1 -0
  274. package/dist/types/components/FrameSaveBar.d.ts +8 -0
  275. package/dist/types/components/FrameSaveBar.d.ts.map +1 -0
  276. package/dist/types/components/Grid.d.ts +39 -0
  277. package/dist/types/components/Grid.d.ts.map +1 -0
  278. package/dist/types/components/HorizontalStack.d.ts +36 -0
  279. package/dist/types/components/HorizontalStack.d.ts.map +1 -0
  280. package/dist/types/components/Icon.d.ts +43 -0
  281. package/dist/types/components/Icon.d.ts.map +1 -0
  282. package/dist/types/components/Image.d.ts +45 -0
  283. package/dist/types/components/Image.d.ts.map +1 -0
  284. package/dist/types/components/InlineError.d.ts +22 -0
  285. package/dist/types/components/InlineError.d.ts.map +1 -0
  286. package/dist/types/components/Label.d.ts +28 -0
  287. package/dist/types/components/Label.d.ts.map +1 -0
  288. package/dist/types/components/Layout.d.ts +44 -0
  289. package/dist/types/components/Layout.d.ts.map +1 -0
  290. package/dist/types/components/LayoutSection.d.ts +24 -0
  291. package/dist/types/components/LayoutSection.d.ts.map +1 -0
  292. package/dist/types/components/Link.d.ts +38 -0
  293. package/dist/types/components/Link.d.ts.map +1 -0
  294. package/dist/types/components/List.d.ts +33 -0
  295. package/dist/types/components/List.d.ts.map +1 -0
  296. package/dist/types/components/Listbox.d.ts +34 -0
  297. package/dist/types/components/Listbox.d.ts.map +1 -0
  298. package/dist/types/components/Loading.d.ts +13 -0
  299. package/dist/types/components/Loading.d.ts.map +1 -0
  300. package/dist/types/components/Modal.d.ts +75 -0
  301. package/dist/types/components/Modal.d.ts.map +1 -0
  302. package/dist/types/components/Navigation.d.ts +105 -0
  303. package/dist/types/components/Navigation.d.ts.map +1 -0
  304. package/dist/types/components/Page.d.ts +59 -0
  305. package/dist/types/components/Page.d.ts.map +1 -0
  306. package/dist/types/components/Pagination.d.ts +39 -0
  307. package/dist/types/components/Pagination.d.ts.map +1 -0
  308. package/dist/types/components/Pane.d.ts +11 -0
  309. package/dist/types/components/Pane.d.ts.map +1 -0
  310. package/dist/types/components/Popover.d.ts +56 -0
  311. package/dist/types/components/Popover.d.ts.map +1 -0
  312. package/dist/types/components/PopoverManager.d.ts +3 -0
  313. package/dist/types/components/PopoverManager.d.ts.map +1 -0
  314. package/dist/types/components/ProgressBar.d.ts +24 -0
  315. package/dist/types/components/ProgressBar.d.ts.map +1 -0
  316. package/dist/types/components/RadioButton.d.ts +39 -0
  317. package/dist/types/components/RadioButton.d.ts.map +1 -0
  318. package/dist/types/components/RadioButtonCard.d.ts +41 -0
  319. package/dist/types/components/RadioButtonCard.d.ts.map +1 -0
  320. package/dist/types/components/RangeSlider.d.ts +44 -0
  321. package/dist/types/components/RangeSlider.d.ts.map +1 -0
  322. package/dist/types/components/ResourceList.d.ts +54 -0
  323. package/dist/types/components/ResourceList.d.ts.map +1 -0
  324. package/dist/types/components/Select.d.ts +48 -0
  325. package/dist/types/components/Select.d.ts.map +1 -0
  326. package/dist/types/components/SkeletonText.d.ts +28 -0
  327. package/dist/types/components/SkeletonText.d.ts.map +1 -0
  328. package/dist/types/components/Spinner.d.ts +18 -0
  329. package/dist/types/components/Spinner.d.ts.map +1 -0
  330. package/dist/types/components/Stack.d.ts +49 -0
  331. package/dist/types/components/Stack.d.ts.map +1 -0
  332. package/dist/types/components/Table.d.ts +197 -0
  333. package/dist/types/components/Table.d.ts.map +1 -0
  334. package/dist/types/components/Tabs.d.ts +43 -0
  335. package/dist/types/components/Tabs.d.ts.map +1 -0
  336. package/dist/types/components/Tag.d.ts +26 -0
  337. package/dist/types/components/Tag.d.ts.map +1 -0
  338. package/dist/types/components/Text.d.ts +32 -0
  339. package/dist/types/components/Text.d.ts.map +1 -0
  340. package/dist/types/components/TextField.d.ts +109 -0
  341. package/dist/types/components/TextField.d.ts.map +1 -0
  342. package/dist/types/components/Thumbnail.d.ts +18 -0
  343. package/dist/types/components/Thumbnail.d.ts.map +1 -0
  344. package/dist/types/components/TimePicker.d.ts +3 -0
  345. package/dist/types/components/TimePicker.d.ts.map +1 -0
  346. package/dist/types/components/Tip.d.ts +23 -0
  347. package/dist/types/components/Tip.d.ts.map +1 -0
  348. package/dist/types/components/Tooltip.d.ts +84 -0
  349. package/dist/types/components/Tooltip.d.ts.map +1 -0
  350. package/dist/types/components/TopBar.d.ts +43 -0
  351. package/dist/types/components/TopBar.d.ts.map +1 -0
  352. package/dist/types/components/VerticalStack.d.ts +27 -0
  353. package/dist/types/components/VerticalStack.d.ts.map +1 -0
  354. package/dist/types/index.d.ts +63 -0
  355. package/dist/types/index.d.ts.map +1 -0
  356. package/dist/types/styles/Table.d.ts +1570 -0
  357. package/dist/types/styles/Table.d.ts.map +1 -0
  358. package/dist/types/utilities/dates.d.ts +46 -0
  359. package/dist/types/utilities/dates.d.ts.map +1 -0
  360. package/dist/types/utilities/transformers.d.ts +4 -0
  361. package/dist/types/utilities/transformers.d.ts.map +1 -0
  362. package/dist/types/utilities/useIndexResourceState.d.ts +21 -0
  363. package/dist/types/utilities/useIndexResourceState.d.ts.map +1 -0
  364. package/dist/types/utilities/useMounted.d.ts +2 -0
  365. package/dist/types/utilities/useMounted.d.ts.map +1 -0
  366. package/dist/types/utilities/useTableScrollState.d.ts +29 -0
  367. package/dist/types/utilities/useTableScrollState.d.ts.map +1 -0
  368. package/index.css +17 -0
  369. package/package.json +38 -7
@@ -0,0 +1,943 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get ContactForm () {
13
+ return ContactForm;
14
+ },
15
+ get Default () {
16
+ return Default;
17
+ },
18
+ get LoginForm () {
19
+ return LoginForm;
20
+ },
21
+ get MultiStepForm () {
22
+ return MultiStepForm;
23
+ },
24
+ get ValidationExample () {
25
+ return ValidationExample;
26
+ },
27
+ get default () {
28
+ return _default;
29
+ }
30
+ });
31
+ var _jsxruntime = require("react/jsx-runtime");
32
+ var _react = require("react");
33
+ var _Form = /*#__PURE__*/ _interop_require_default(require("../components/Form.js"));
34
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("../components/Stack.js"));
35
+ var _TextField = /*#__PURE__*/ _interop_require_default(require("../components/TextField.js"));
36
+ var _Button = /*#__PURE__*/ _interop_require_default(require("../components/Button.js"));
37
+ var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
38
+ var _Text = /*#__PURE__*/ _interop_require_default(require("../components/Text.js"));
39
+ var _Checkbox = /*#__PURE__*/ _interop_require_default(require("../components/Checkbox.js"));
40
+ var _Select = /*#__PURE__*/ _interop_require_default(require("../components/Select.js"));
41
+ var _RadioButton = /*#__PURE__*/ _interop_require_default(require("../components/RadioButton.js"));
42
+ var _Box = /*#__PURE__*/ _interop_require_default(require("../components/Box.js"));
43
+ var _transformers = require("../utilities/transformers.js");
44
+ function _array_like_to_array(arr, len) {
45
+ if (len == null || len > arr.length) len = arr.length;
46
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
47
+ return arr2;
48
+ }
49
+ function _array_with_holes(arr) {
50
+ if (Array.isArray(arr)) return arr;
51
+ }
52
+ function _define_property(obj, key, value) {
53
+ if (key in obj) {
54
+ Object.defineProperty(obj, key, {
55
+ value: value,
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true
59
+ });
60
+ } else {
61
+ obj[key] = value;
62
+ }
63
+ return obj;
64
+ }
65
+ function _interop_require_default(obj) {
66
+ return obj && obj.__esModule ? obj : {
67
+ default: obj
68
+ };
69
+ }
70
+ function _iterable_to_array_limit(arr, i) {
71
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
72
+ if (_i == null) return;
73
+ var _arr = [];
74
+ var _n = true;
75
+ var _d = false;
76
+ var _s, _e;
77
+ try {
78
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
79
+ _arr.push(_s.value);
80
+ if (i && _arr.length === i) break;
81
+ }
82
+ } catch (err) {
83
+ _d = true;
84
+ _e = err;
85
+ } finally{
86
+ try {
87
+ if (!_n && _i["return"] != null) _i["return"]();
88
+ } finally{
89
+ if (_d) throw _e;
90
+ }
91
+ }
92
+ return _arr;
93
+ }
94
+ function _non_iterable_rest() {
95
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
96
+ }
97
+ function _object_spread(target) {
98
+ for(var i = 1; i < arguments.length; i++){
99
+ var source = arguments[i] != null ? arguments[i] : {};
100
+ var ownKeys = Object.keys(source);
101
+ if (typeof Object.getOwnPropertySymbols === "function") {
102
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
103
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
104
+ }));
105
+ }
106
+ ownKeys.forEach(function(key) {
107
+ _define_property(target, key, source[key]);
108
+ });
109
+ }
110
+ return target;
111
+ }
112
+ function ownKeys(object, enumerableOnly) {
113
+ var keys = Object.keys(object);
114
+ if (Object.getOwnPropertySymbols) {
115
+ var symbols = Object.getOwnPropertySymbols(object);
116
+ if (enumerableOnly) {
117
+ symbols = symbols.filter(function(sym) {
118
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
119
+ });
120
+ }
121
+ keys.push.apply(keys, symbols);
122
+ }
123
+ return keys;
124
+ }
125
+ function _object_spread_props(target, source) {
126
+ source = source != null ? source : {};
127
+ if (Object.getOwnPropertyDescriptors) {
128
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
129
+ } else {
130
+ ownKeys(Object(source)).forEach(function(key) {
131
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
132
+ });
133
+ }
134
+ return target;
135
+ }
136
+ function _sliced_to_array(arr, i) {
137
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
138
+ }
139
+ function _unsupported_iterable_to_array(o, minLen) {
140
+ if (!o) return;
141
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
142
+ var n = Object.prototype.toString.call(o).slice(8, -1);
143
+ if (n === "Object" && o.constructor) n = o.constructor.name;
144
+ if (n === "Map" || n === "Set") return Array.from(n);
145
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
146
+ }
147
+ var _default = {
148
+ title: 'Litho/Form',
149
+ component: _Form.default,
150
+ parameters: {
151
+ layout: 'padded',
152
+ docs: {
153
+ description: {
154
+ component: "A Form component that provides semantic structure and behavior for collecting user input. Forms handle submission, validation, and provide accessible markup for form controls."
155
+ }
156
+ }
157
+ },
158
+ args: {
159
+ onSubmit: function(event) {
160
+ event.preventDefault();
161
+ console.log('Form submitted');
162
+ }
163
+ },
164
+ tags: [
165
+ 'autodocs'
166
+ ],
167
+ argTypes: {
168
+ onSubmit: {
169
+ action: 'submitted',
170
+ description: 'Callback when form is submitted'
171
+ },
172
+ acceptCharset: {
173
+ control: 'text',
174
+ description: 'Character encodings that the server accepts'
175
+ },
176
+ action: {
177
+ control: 'text',
178
+ description: 'URL to submit form data to'
179
+ },
180
+ autoComplete: {
181
+ control: 'select',
182
+ options: [
183
+ 'on',
184
+ 'off'
185
+ ],
186
+ description: 'Whether form should have autocomplete enabled'
187
+ },
188
+ encType: {
189
+ control: 'select',
190
+ options: [
191
+ 'application/x-www-form-urlencoded',
192
+ 'multipart/form-data',
193
+ 'text/plain'
194
+ ],
195
+ description: 'Encoding type for form data'
196
+ },
197
+ method: {
198
+ control: 'select',
199
+ options: [
200
+ 'get',
201
+ 'post'
202
+ ],
203
+ description: 'HTTP method for form submission'
204
+ },
205
+ name: {
206
+ control: 'text',
207
+ description: 'Name of the form'
208
+ },
209
+ noValidate: {
210
+ control: 'boolean',
211
+ description: 'Whether to disable browser validation'
212
+ },
213
+ target: {
214
+ control: 'select',
215
+ options: [
216
+ '_self',
217
+ '_blank',
218
+ '_parent',
219
+ '_top'
220
+ ],
221
+ description: 'Where to display form response'
222
+ }
223
+ }
224
+ };
225
+ var Default = {
226
+ render: function(args) {
227
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Form.default, _object_spread_props(_object_spread({}, args), {
228
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
229
+ gap: "md",
230
+ children: [
231
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
232
+ label: "Name",
233
+ placeholder: "Enter your name"
234
+ }),
235
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
236
+ label: "Email",
237
+ type: "email",
238
+ placeholder: "Enter your email"
239
+ }),
240
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
241
+ primary: true,
242
+ submit: true,
243
+ children: "Submit"
244
+ })
245
+ ]
246
+ })
247
+ }));
248
+ },
249
+ parameters: {
250
+ docs: {
251
+ source: {
252
+ transform: _transformers.transformStorySource
253
+ }
254
+ }
255
+ }
256
+ };
257
+ var LoginForm = {
258
+ render: function() {
259
+ var _useState = _sliced_to_array((0, _react.useState)(''), 2), email = _useState[0], setEmail = _useState[1];
260
+ var _useState1 = _sliced_to_array((0, _react.useState)(''), 2), password = _useState1[0], setPassword = _useState1[1];
261
+ var _useState2 = _sliced_to_array((0, _react.useState)(false), 2), rememberMe = _useState2[0], setRememberMe = _useState2[1];
262
+ var handleSubmit = function(event) {
263
+ event.preventDefault();
264
+ console.log('Login submitted:', {
265
+ email: email,
266
+ password: password,
267
+ rememberMe: rememberMe
268
+ });
269
+ };
270
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Card.default, {
271
+ title: "Sign In",
272
+ padded: true,
273
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Form.default, {
274
+ onSubmit: handleSubmit,
275
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
276
+ gap: "md",
277
+ children: [
278
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
279
+ label: "Email",
280
+ type: "email",
281
+ value: email,
282
+ onChange: setEmail,
283
+ placeholder: "Enter your email",
284
+ autoComplete: "email",
285
+ required: true
286
+ }),
287
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
288
+ label: "Password",
289
+ type: "password",
290
+ value: password,
291
+ onChange: setPassword,
292
+ placeholder: "Enter your password",
293
+ autoComplete: "current-password",
294
+ required: true
295
+ }),
296
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Checkbox.default, {
297
+ label: "Remember me",
298
+ checked: rememberMe,
299
+ onChange: setRememberMe
300
+ }),
301
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
302
+ horizontal: true,
303
+ gap: "sm",
304
+ children: [
305
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
306
+ primary: true,
307
+ submit: true,
308
+ children: "Sign In"
309
+ }),
310
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
311
+ children: "Forgot Password?"
312
+ })
313
+ ]
314
+ })
315
+ ]
316
+ })
317
+ })
318
+ });
319
+ },
320
+ parameters: {
321
+ docs: {
322
+ description: {
323
+ story: 'A complete login form with email, password, and remember me option.'
324
+ },
325
+ source: {
326
+ transform: _transformers.transformStorySource
327
+ }
328
+ }
329
+ }
330
+ };
331
+ var ContactForm = {
332
+ render: function() {
333
+ var _useState = _sliced_to_array((0, _react.useState)({
334
+ name: '',
335
+ email: '',
336
+ subject: '',
337
+ message: '',
338
+ priority: 'medium',
339
+ subscribe: false
340
+ }), 2), formData = _useState[0], setFormData = _useState[1];
341
+ var handleSubmit = function(event) {
342
+ event.preventDefault();
343
+ console.log('Contact form submitted:', formData);
344
+ };
345
+ var updateField = function(field, value) {
346
+ setFormData(function(prev) {
347
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field, value));
348
+ });
349
+ };
350
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Card.default, {
351
+ title: "Contact Us",
352
+ padded: true,
353
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Form.default, {
354
+ onSubmit: handleSubmit,
355
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
356
+ gap: "md",
357
+ children: [
358
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
359
+ horizontal: true,
360
+ gap: "md",
361
+ children: [
362
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
363
+ label: "Name",
364
+ value: formData.name,
365
+ onChange: function(value) {
366
+ return updateField('name', value);
367
+ },
368
+ placeholder: "Your full name",
369
+ required: true
370
+ }),
371
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
372
+ label: "Email",
373
+ type: "email",
374
+ value: formData.email,
375
+ onChange: function(value) {
376
+ return updateField('email', value);
377
+ },
378
+ placeholder: "your@email.com",
379
+ required: true
380
+ })
381
+ ]
382
+ }),
383
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Select.default, {
384
+ label: "Subject",
385
+ options: [
386
+ {
387
+ label: 'General Inquiry',
388
+ value: 'general'
389
+ },
390
+ {
391
+ label: 'Technical Support',
392
+ value: 'support'
393
+ },
394
+ {
395
+ label: 'Sales Question',
396
+ value: 'sales'
397
+ },
398
+ {
399
+ label: 'Feature Request',
400
+ value: 'feature'
401
+ },
402
+ {
403
+ label: 'Bug Report',
404
+ value: 'bug'
405
+ }
406
+ ],
407
+ value: formData.subject,
408
+ onChange: function(value) {
409
+ return updateField('subject', value);
410
+ },
411
+ placeholder: "Select a subject"
412
+ }),
413
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
414
+ gap: "sm",
415
+ children: [
416
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
417
+ variant: "headingSm",
418
+ children: "Priority"
419
+ }),
420
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
421
+ horizontal: true,
422
+ gap: "md",
423
+ children: [
424
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_RadioButton.default, {
425
+ label: "Low",
426
+ name: "priority",
427
+ value: "low",
428
+ checked: formData.priority === 'low',
429
+ onChange: function(checked) {
430
+ return checked && updateField('priority', 'low');
431
+ }
432
+ }),
433
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_RadioButton.default, {
434
+ label: "Medium",
435
+ name: "priority",
436
+ value: "medium",
437
+ checked: formData.priority === 'medium',
438
+ onChange: function(checked) {
439
+ return checked && updateField('priority', 'medium');
440
+ }
441
+ }),
442
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_RadioButton.default, {
443
+ label: "High",
444
+ name: "priority",
445
+ value: "high",
446
+ checked: formData.priority === 'high',
447
+ onChange: function(checked) {
448
+ return checked && updateField('priority', 'high');
449
+ }
450
+ })
451
+ ]
452
+ })
453
+ ]
454
+ }),
455
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
456
+ label: "Message",
457
+ multiline: 4,
458
+ value: formData.message,
459
+ onChange: function(value) {
460
+ return updateField('message', value);
461
+ },
462
+ placeholder: "Tell us how we can help...",
463
+ required: true
464
+ }),
465
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Checkbox.default, {
466
+ label: "Subscribe to our newsletter",
467
+ checked: formData.subscribe,
468
+ onChange: function(checked) {
469
+ return updateField('subscribe', checked);
470
+ }
471
+ }),
472
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
473
+ horizontal: true,
474
+ gap: "sm",
475
+ children: [
476
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
477
+ primary: true,
478
+ submit: true,
479
+ children: "Send Message"
480
+ }),
481
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
482
+ onClick: function() {
483
+ return setFormData({
484
+ name: '',
485
+ email: '',
486
+ subject: '',
487
+ message: '',
488
+ priority: 'medium',
489
+ subscribe: false
490
+ });
491
+ },
492
+ children: "Clear Form"
493
+ })
494
+ ]
495
+ })
496
+ ]
497
+ })
498
+ })
499
+ });
500
+ },
501
+ parameters: {
502
+ docs: {
503
+ description: {
504
+ story: 'A comprehensive contact form with various input types and validation.'
505
+ },
506
+ source: {
507
+ transform: _transformers.transformStorySource
508
+ }
509
+ }
510
+ }
511
+ };
512
+ var ValidationExample = {
513
+ render: function() {
514
+ var _useState = _sliced_to_array((0, _react.useState)({
515
+ username: '',
516
+ email: '',
517
+ password: '',
518
+ confirmPassword: ''
519
+ }), 2), formData = _useState[0], setFormData = _useState[1];
520
+ var _useState1 = _sliced_to_array((0, _react.useState)({}), 2), errors = _useState1[0], setErrors = _useState1[1];
521
+ var validateForm = function() {
522
+ var newErrors = {};
523
+ if (!formData.username) {
524
+ newErrors.username = 'Username is required';
525
+ } else if (formData.username.length < 3) {
526
+ newErrors.username = 'Username must be at least 3 characters';
527
+ }
528
+ if (!formData.email) {
529
+ newErrors.email = 'Email is required';
530
+ } else if (!/\S+@\S+\.\S+/.test(formData.email)) {
531
+ newErrors.email = 'Please enter a valid email';
532
+ }
533
+ if (!formData.password) {
534
+ newErrors.password = 'Password is required';
535
+ } else if (formData.password.length < 6) {
536
+ newErrors.password = 'Password must be at least 6 characters';
537
+ }
538
+ if (formData.password !== formData.confirmPassword) {
539
+ newErrors.confirmPassword = 'Passwords do not match';
540
+ }
541
+ return newErrors;
542
+ };
543
+ var handleSubmit = function(event) {
544
+ event.preventDefault();
545
+ var validationErrors = validateForm();
546
+ setErrors(validationErrors);
547
+ if (Object.keys(validationErrors).length === 0) {
548
+ console.log('Registration successful:', formData);
549
+ }
550
+ };
551
+ var updateField = function(field, value) {
552
+ setFormData(function(prev) {
553
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field, value));
554
+ });
555
+ if (errors[field]) {
556
+ setErrors(function(prev) {
557
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field, ''));
558
+ });
559
+ }
560
+ };
561
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Card.default, {
562
+ title: "Create Account",
563
+ padded: true,
564
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Form.default, {
565
+ onSubmit: handleSubmit,
566
+ noValidate: true,
567
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
568
+ gap: "md",
569
+ children: [
570
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
571
+ label: "Username",
572
+ value: formData.username,
573
+ onChange: function(value) {
574
+ return updateField('username', value);
575
+ },
576
+ error: errors.username,
577
+ placeholder: "Choose a username",
578
+ autoComplete: "username"
579
+ }),
580
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
581
+ label: "Email",
582
+ type: "email",
583
+ value: formData.email,
584
+ onChange: function(value) {
585
+ return updateField('email', value);
586
+ },
587
+ error: errors.email,
588
+ placeholder: "Enter your email",
589
+ autoComplete: "email"
590
+ }),
591
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
592
+ label: "Password",
593
+ type: "password",
594
+ value: formData.password,
595
+ onChange: function(value) {
596
+ return updateField('password', value);
597
+ },
598
+ error: errors.password,
599
+ placeholder: "Create a password",
600
+ autoComplete: "new-password",
601
+ helpText: "Must be at least 6 characters"
602
+ }),
603
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
604
+ label: "Confirm Password",
605
+ type: "password",
606
+ value: formData.confirmPassword,
607
+ onChange: function(value) {
608
+ return updateField('confirmPassword', value);
609
+ },
610
+ error: errors.confirmPassword,
611
+ placeholder: "Confirm your password",
612
+ autoComplete: "new-password"
613
+ }),
614
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
615
+ primary: true,
616
+ submit: true,
617
+ children: "Create Account"
618
+ })
619
+ ]
620
+ })
621
+ })
622
+ });
623
+ },
624
+ parameters: {
625
+ docs: {
626
+ description: {
627
+ story: 'Form with client-side validation and error handling.'
628
+ },
629
+ source: {
630
+ transform: _transformers.transformStorySource
631
+ }
632
+ }
633
+ }
634
+ };
635
+ var MultiStepForm = {
636
+ render: function() {
637
+ var _useState = _sliced_to_array((0, _react.useState)(0), 2), currentStep = _useState[0], setCurrentStep = _useState[1];
638
+ var _useState1 = _sliced_to_array((0, _react.useState)({
639
+ // Step 1: Personal Info
640
+ firstName: '',
641
+ lastName: '',
642
+ email: '',
643
+ phone: '',
644
+ // Step 2: Address
645
+ address: '',
646
+ city: '',
647
+ state: '',
648
+ zipCode: '',
649
+ // Step 3: Preferences
650
+ notifications: 'email',
651
+ newsletter: false
652
+ }), 2), formData = _useState1[0], setFormData = _useState1[1];
653
+ var steps = [
654
+ 'Personal Info',
655
+ 'Address',
656
+ 'Preferences'
657
+ ];
658
+ var handleNext = function() {
659
+ if (currentStep < steps.length - 1) {
660
+ setCurrentStep(currentStep + 1);
661
+ }
662
+ };
663
+ var handlePrevious = function() {
664
+ if (currentStep > 0) {
665
+ setCurrentStep(currentStep - 1);
666
+ }
667
+ };
668
+ var handleSubmit = function(event) {
669
+ event.preventDefault();
670
+ console.log('Multi-step form completed:', formData);
671
+ };
672
+ var updateField = function(field, value) {
673
+ setFormData(function(prev) {
674
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field, value));
675
+ });
676
+ };
677
+ var renderStep = function() {
678
+ switch(currentStep){
679
+ case 0:
680
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
681
+ style: {
682
+ display: 'flex',
683
+ flexDirection: 'column',
684
+ gap: '1rem'
685
+ },
686
+ children: [
687
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
688
+ style: {
689
+ display: 'grid',
690
+ gridTemplateColumns: '1fr 1fr',
691
+ gap: '1rem'
692
+ },
693
+ children: [
694
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
695
+ label: "First Name",
696
+ value: formData.firstName,
697
+ onChange: function(value) {
698
+ return updateField('firstName', value);
699
+ },
700
+ placeholder: "Your first name"
701
+ }),
702
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
703
+ label: "Last Name",
704
+ value: formData.lastName,
705
+ onChange: function(value) {
706
+ return updateField('lastName', value);
707
+ },
708
+ placeholder: "Your last name"
709
+ })
710
+ ]
711
+ }),
712
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
713
+ label: "Email",
714
+ type: "email",
715
+ value: formData.email,
716
+ onChange: function(value) {
717
+ return updateField('email', value);
718
+ },
719
+ placeholder: "your@email.com"
720
+ }),
721
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
722
+ label: "Phone",
723
+ type: "tel",
724
+ value: formData.phone,
725
+ onChange: function(value) {
726
+ return updateField('phone', value);
727
+ },
728
+ placeholder: "(555) 123-4567"
729
+ })
730
+ ]
731
+ });
732
+ case 1:
733
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
734
+ style: {
735
+ display: 'flex',
736
+ flexDirection: 'column',
737
+ gap: '1rem'
738
+ },
739
+ children: [
740
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
741
+ label: "Street Address",
742
+ value: formData.address,
743
+ onChange: function(value) {
744
+ return updateField('address', value);
745
+ },
746
+ placeholder: "123 Main Street"
747
+ }),
748
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
749
+ style: {
750
+ display: 'grid',
751
+ gridTemplateColumns: '1fr 1fr 1fr',
752
+ gap: '1rem'
753
+ },
754
+ children: [
755
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
756
+ label: "City",
757
+ value: formData.city,
758
+ onChange: function(value) {
759
+ return updateField('city', value);
760
+ },
761
+ placeholder: "City"
762
+ }),
763
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
764
+ label: "State",
765
+ value: formData.state,
766
+ onChange: function(value) {
767
+ return updateField('state', value);
768
+ },
769
+ placeholder: "State"
770
+ }),
771
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
772
+ label: "ZIP Code",
773
+ value: formData.zipCode,
774
+ onChange: function(value) {
775
+ return updateField('zipCode', value);
776
+ },
777
+ placeholder: "12345"
778
+ })
779
+ ]
780
+ })
781
+ ]
782
+ });
783
+ case 2:
784
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
785
+ style: {
786
+ display: 'flex',
787
+ flexDirection: 'column',
788
+ gap: '1.5rem'
789
+ },
790
+ children: [
791
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
792
+ children: [
793
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
794
+ variant: "headingSm",
795
+ style: {
796
+ marginBottom: '1rem'
797
+ },
798
+ children: "Notification Preferences"
799
+ }),
800
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
801
+ style: {
802
+ display: 'flex',
803
+ flexDirection: 'column',
804
+ gap: '0.75rem'
805
+ },
806
+ children: [
807
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_RadioButton.default, {
808
+ label: "Email notifications",
809
+ name: "notifications",
810
+ value: "email",
811
+ checked: formData.notifications === 'email',
812
+ onChange: function(checked) {
813
+ return checked && updateField('notifications', 'email');
814
+ }
815
+ }),
816
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_RadioButton.default, {
817
+ label: "SMS notifications",
818
+ name: "notifications",
819
+ value: "sms",
820
+ checked: formData.notifications === 'sms',
821
+ onChange: function(checked) {
822
+ return checked && updateField('notifications', 'sms');
823
+ }
824
+ }),
825
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_RadioButton.default, {
826
+ label: "No notifications",
827
+ name: "notifications",
828
+ value: "none",
829
+ checked: formData.notifications === 'none',
830
+ onChange: function(checked) {
831
+ return checked && updateField('notifications', 'none');
832
+ }
833
+ })
834
+ ]
835
+ })
836
+ ]
837
+ }),
838
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Checkbox.default, {
839
+ label: "Subscribe to newsletter",
840
+ checked: formData.newsletter,
841
+ onChange: function(checked) {
842
+ return updateField('newsletter', checked);
843
+ }
844
+ })
845
+ ]
846
+ });
847
+ default:
848
+ return null;
849
+ }
850
+ };
851
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Card.default, {
852
+ title: "Registration Form",
853
+ padded: true,
854
+ children: [
855
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
856
+ style: {
857
+ marginBottom: '2rem'
858
+ },
859
+ children: [
860
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
861
+ style: {
862
+ display: 'flex',
863
+ justifyContent: 'space-between',
864
+ marginBottom: '0.5rem'
865
+ },
866
+ children: steps.map(function(step, index) {
867
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Text.default, {
868
+ variant: "headingSm",
869
+ style: {
870
+ color: index <= currentStep ? '#2196f3' : '#999',
871
+ fontWeight: index === currentStep ? 'bold' : 'normal'
872
+ },
873
+ children: [
874
+ index + 1,
875
+ ". ",
876
+ step
877
+ ]
878
+ }, step);
879
+ })
880
+ }),
881
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
882
+ style: {
883
+ height: '4px',
884
+ backgroundColor: '#e1e1e1',
885
+ borderRadius: '2px',
886
+ overflow: 'hidden'
887
+ },
888
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
889
+ style: {
890
+ height: '100%',
891
+ backgroundColor: '#2196f3',
892
+ width: "".concat((currentStep + 1) / steps.length * 100, "%"),
893
+ transition: 'width 0.3s ease'
894
+ }
895
+ })
896
+ })
897
+ ]
898
+ }),
899
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Form.default, {
900
+ onSubmit: handleSubmit,
901
+ children: [
902
+ renderStep(),
903
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
904
+ style: {
905
+ display: 'flex',
906
+ justifyContent: 'space-between',
907
+ marginTop: '2rem',
908
+ paddingTop: '1rem',
909
+ borderTop: '1px solid #e1e1e1'
910
+ },
911
+ children: [
912
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
913
+ disabled: currentStep === 0,
914
+ onClick: handlePrevious,
915
+ children: "Previous"
916
+ }),
917
+ currentStep === steps.length - 1 ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
918
+ primary: true,
919
+ submit: true,
920
+ children: "Complete Registration"
921
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
922
+ primary: true,
923
+ onClick: handleNext,
924
+ children: "Next"
925
+ })
926
+ ]
927
+ })
928
+ ]
929
+ })
930
+ ]
931
+ });
932
+ },
933
+ parameters: {
934
+ docs: {
935
+ description: {
936
+ story: 'Multi-step form with progress indicator and navigation between steps.'
937
+ },
938
+ source: {
939
+ transform: _transformers.transformStorySource
940
+ }
941
+ }
942
+ }
943
+ };