@heymantle/litho 0.0.3 → 0.0.4

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