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