@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,971 @@
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 CustomMessages () {
13
+ return CustomMessages;
14
+ },
15
+ get Default () {
16
+ return Default;
17
+ },
18
+ get DisabledActions () {
19
+ return DisabledActions;
20
+ },
21
+ get LoadingStates () {
22
+ return LoadingStates;
23
+ },
24
+ get default () {
25
+ return _default;
26
+ }
27
+ });
28
+ var _jsxruntime = require("react/jsx-runtime");
29
+ var _react = require("react");
30
+ var _ContextualSaveBar = /*#__PURE__*/ _interop_require_default(require("../components/ContextualSaveBar.js"));
31
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("../components/Stack.js"));
32
+ var _Text = /*#__PURE__*/ _interop_require_default(require("../components/Text.js"));
33
+ var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
34
+ var _Button = /*#__PURE__*/ _interop_require_default(require("../components/Button.js"));
35
+ var _TextField = /*#__PURE__*/ _interop_require_default(require("../components/TextField.js"));
36
+ var _Page = /*#__PURE__*/ _interop_require_default(require("../components/Page.js"));
37
+ var _Frame = /*#__PURE__*/ _interop_require_default(require("../components/Frame.js"));
38
+ var _AppProvider = /*#__PURE__*/ _interop_require_default(require("../components/AppProvider.js"));
39
+ var _Box = /*#__PURE__*/ _interop_require_default(require("../components/Box.js"));
40
+ var _transformers = require("../utilities/transformers.js");
41
+ function _array_like_to_array(arr, len) {
42
+ if (len == null || len > arr.length) len = arr.length;
43
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
44
+ return arr2;
45
+ }
46
+ function _array_with_holes(arr) {
47
+ if (Array.isArray(arr)) return arr;
48
+ }
49
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
50
+ try {
51
+ var info = gen[key](arg);
52
+ var value = info.value;
53
+ } catch (error) {
54
+ reject(error);
55
+ return;
56
+ }
57
+ if (info.done) {
58
+ resolve(value);
59
+ } else {
60
+ Promise.resolve(value).then(_next, _throw);
61
+ }
62
+ }
63
+ function _async_to_generator(fn) {
64
+ return function() {
65
+ var self = this, args = arguments;
66
+ return new Promise(function(resolve, reject) {
67
+ var gen = fn.apply(self, args);
68
+ function _next(value) {
69
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
70
+ }
71
+ function _throw(err) {
72
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
73
+ }
74
+ _next(undefined);
75
+ });
76
+ };
77
+ }
78
+ function _define_property(obj, key, value) {
79
+ if (key in obj) {
80
+ Object.defineProperty(obj, key, {
81
+ value: value,
82
+ enumerable: true,
83
+ configurable: true,
84
+ writable: true
85
+ });
86
+ } else {
87
+ obj[key] = value;
88
+ }
89
+ return obj;
90
+ }
91
+ function _interop_require_default(obj) {
92
+ return obj && obj.__esModule ? obj : {
93
+ default: obj
94
+ };
95
+ }
96
+ function _iterable_to_array_limit(arr, i) {
97
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
98
+ if (_i == null) return;
99
+ var _arr = [];
100
+ var _n = true;
101
+ var _d = false;
102
+ var _s, _e;
103
+ try {
104
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
105
+ _arr.push(_s.value);
106
+ if (i && _arr.length === i) break;
107
+ }
108
+ } catch (err) {
109
+ _d = true;
110
+ _e = err;
111
+ } finally{
112
+ try {
113
+ if (!_n && _i["return"] != null) _i["return"]();
114
+ } finally{
115
+ if (_d) throw _e;
116
+ }
117
+ }
118
+ return _arr;
119
+ }
120
+ function _non_iterable_rest() {
121
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
122
+ }
123
+ function _object_spread(target) {
124
+ for(var i = 1; i < arguments.length; i++){
125
+ var source = arguments[i] != null ? arguments[i] : {};
126
+ var ownKeys = Object.keys(source);
127
+ if (typeof Object.getOwnPropertySymbols === "function") {
128
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
129
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
130
+ }));
131
+ }
132
+ ownKeys.forEach(function(key) {
133
+ _define_property(target, key, source[key]);
134
+ });
135
+ }
136
+ return target;
137
+ }
138
+ function ownKeys(object, enumerableOnly) {
139
+ var keys = Object.keys(object);
140
+ if (Object.getOwnPropertySymbols) {
141
+ var symbols = Object.getOwnPropertySymbols(object);
142
+ if (enumerableOnly) {
143
+ symbols = symbols.filter(function(sym) {
144
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
145
+ });
146
+ }
147
+ keys.push.apply(keys, symbols);
148
+ }
149
+ return keys;
150
+ }
151
+ function _object_spread_props(target, source) {
152
+ source = source != null ? source : {};
153
+ if (Object.getOwnPropertyDescriptors) {
154
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
155
+ } else {
156
+ ownKeys(Object(source)).forEach(function(key) {
157
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
158
+ });
159
+ }
160
+ return target;
161
+ }
162
+ function _sliced_to_array(arr, i) {
163
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
164
+ }
165
+ function _unsupported_iterable_to_array(o, minLen) {
166
+ if (!o) return;
167
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
168
+ var n = Object.prototype.toString.call(o).slice(8, -1);
169
+ if (n === "Object" && o.constructor) n = o.constructor.name;
170
+ if (n === "Map" || n === "Set") return Array.from(n);
171
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
172
+ }
173
+ function _ts_generator(thisArg, body) {
174
+ var f, y, t, _ = {
175
+ label: 0,
176
+ sent: function() {
177
+ if (t[0] & 1) throw t[1];
178
+ return t[1];
179
+ },
180
+ trys: [],
181
+ ops: []
182
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
183
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
184
+ return this;
185
+ }), g;
186
+ function verb(n) {
187
+ return function(v) {
188
+ return step([
189
+ n,
190
+ v
191
+ ]);
192
+ };
193
+ }
194
+ function step(op) {
195
+ if (f) throw new TypeError("Generator is already executing.");
196
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
197
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
198
+ if (y = 0, t) op = [
199
+ op[0] & 2,
200
+ t.value
201
+ ];
202
+ switch(op[0]){
203
+ case 0:
204
+ case 1:
205
+ t = op;
206
+ break;
207
+ case 4:
208
+ _.label++;
209
+ return {
210
+ value: op[1],
211
+ done: false
212
+ };
213
+ case 5:
214
+ _.label++;
215
+ y = op[1];
216
+ op = [
217
+ 0
218
+ ];
219
+ continue;
220
+ case 7:
221
+ op = _.ops.pop();
222
+ _.trys.pop();
223
+ continue;
224
+ default:
225
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
226
+ _ = 0;
227
+ continue;
228
+ }
229
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
230
+ _.label = op[1];
231
+ break;
232
+ }
233
+ if (op[0] === 6 && _.label < t[1]) {
234
+ _.label = t[1];
235
+ t = op;
236
+ break;
237
+ }
238
+ if (t && _.label < t[2]) {
239
+ _.label = t[2];
240
+ _.ops.push(op);
241
+ break;
242
+ }
243
+ if (t[2]) _.ops.pop();
244
+ _.trys.pop();
245
+ continue;
246
+ }
247
+ op = body.call(thisArg, _);
248
+ } catch (e) {
249
+ op = [
250
+ 6,
251
+ e
252
+ ];
253
+ y = 0;
254
+ } finally{
255
+ f = t = 0;
256
+ }
257
+ if (op[0] & 5) throw op[1];
258
+ return {
259
+ value: op[0] ? op[1] : void 0,
260
+ done: true
261
+ };
262
+ }
263
+ }
264
+ var _default = {
265
+ title: "Litho/ContextualSaveBar",
266
+ component: _ContextualSaveBar.default,
267
+ parameters: {
268
+ layout: "fullscreen",
269
+ docs: {
270
+ description: {
271
+ component: "A ContextualSaveBar component that manages a global save bar state. It doesn't render anything itself but controls the visibility and configuration of a contextual save bar through the FormContext. This component is typically used in forms to provide save/discard actions when there are unsaved changes."
272
+ }
273
+ }
274
+ },
275
+ tags: [
276
+ "autodocs"
277
+ ],
278
+ decorators: [
279
+ function(Story) {
280
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_AppProvider.default, {
281
+ darkModeAvailable: true,
282
+ darkModeStorageKey: "storybook-dark-mode",
283
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Frame.default, {
284
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
285
+ padding: "4",
286
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Story, {})
287
+ })
288
+ })
289
+ });
290
+ }
291
+ ],
292
+ argTypes: {
293
+ saveAction: {
294
+ control: "object",
295
+ description: "Action configuration for the save button"
296
+ },
297
+ discardAction: {
298
+ control: "object",
299
+ description: "Action configuration for the discard button"
300
+ },
301
+ message: {
302
+ control: "text",
303
+ description: "Message to display in the contextual save bar"
304
+ }
305
+ }
306
+ };
307
+ var Default = {
308
+ render: function() {
309
+ var _useState = _sliced_to_array((0, _react.useState)(false), 2), showSaveBar = _useState[0], setShowSaveBar = _useState[1];
310
+ var _useState1 = _sliced_to_array((0, _react.useState)({
311
+ title: "Product Title",
312
+ description: "Product description"
313
+ }), 2), formData = _useState1[0], setFormData = _useState1[1];
314
+ var _useState2 = _sliced_to_array((0, _react.useState)({
315
+ title: "Product Title",
316
+ description: "Product description"
317
+ }), 2), originalData = _useState2[0], setOriginalData = _useState2[1];
318
+ var _useState3 = _sliced_to_array((0, _react.useState)(false), 2), saving = _useState3[0], setSaving = _useState3[1];
319
+ var hasChanges = JSON.stringify(formData) !== JSON.stringify(originalData);
320
+ var handleSave = function() {
321
+ return _async_to_generator(function() {
322
+ return _ts_generator(this, function(_state) {
323
+ switch(_state.label){
324
+ case 0:
325
+ setSaving(true);
326
+ // Simulate API call
327
+ return [
328
+ 4,
329
+ new Promise(function(resolve) {
330
+ return setTimeout(resolve, 1500);
331
+ })
332
+ ];
333
+ case 1:
334
+ _state.sent();
335
+ setOriginalData(_object_spread({}, formData));
336
+ setSaving(false);
337
+ setShowSaveBar(false);
338
+ return [
339
+ 2
340
+ ];
341
+ }
342
+ });
343
+ })();
344
+ };
345
+ var handleDiscard = function() {
346
+ setFormData(_object_spread({}, originalData));
347
+ setShowSaveBar(false);
348
+ };
349
+ var handleFieldChange = function(field, value) {
350
+ setFormData(function(prev) {
351
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field, value));
352
+ });
353
+ if (!showSaveBar && !hasChanges) {
354
+ setShowSaveBar(true);
355
+ }
356
+ };
357
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Page.default, {
358
+ title: "Product Management",
359
+ children: [
360
+ showSaveBar && hasChanges && /*#__PURE__*/ (0, _jsxruntime.jsx)(_ContextualSaveBar.default, {
361
+ message: "You have unsaved changes",
362
+ saveAction: {
363
+ accessibilityLabel: "Save changes",
364
+ content: "Save changes",
365
+ onAction: handleSave,
366
+ loading: saving,
367
+ disabled: saving
368
+ },
369
+ discardAction: {
370
+ onAction: handleDiscard,
371
+ disabled: saving
372
+ }
373
+ }),
374
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Card.default, {
375
+ title: "Product Information",
376
+ padded: true,
377
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
378
+ gap: "md",
379
+ children: [
380
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
381
+ label: "Product Title",
382
+ value: formData.title,
383
+ onChange: function(value) {
384
+ return handleFieldChange("title", value);
385
+ }
386
+ }),
387
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
388
+ label: "Description",
389
+ value: formData.description,
390
+ onChange: function(value) {
391
+ return handleFieldChange("description", value);
392
+ },
393
+ multiline: 3
394
+ }),
395
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Box.default, {
396
+ padding: "4",
397
+ background: "subdued",
398
+ borderRadius: "default",
399
+ children: [
400
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
401
+ variant: "headingSm",
402
+ children: "Instructions"
403
+ }),
404
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
405
+ paddingBlockStart: "2",
406
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
407
+ variant: "bodySm",
408
+ children: "Make changes to the fields above to see the contextual save bar appear. The save bar will show when there are unsaved changes and hide when changes are saved or discarded."
409
+ })
410
+ })
411
+ ]
412
+ })
413
+ ]
414
+ })
415
+ })
416
+ ]
417
+ });
418
+ },
419
+ parameters: {
420
+ docs: {
421
+ source: {
422
+ transform: _transformers.transformStorySource
423
+ },
424
+ description: {
425
+ story: "Basic contextual save bar that appears when form data changes."
426
+ }
427
+ }
428
+ }
429
+ };
430
+ var CustomMessages = {
431
+ render: function() {
432
+ var _useState = _sliced_to_array((0, _react.useState)(null), 2), activeForm = _useState[0], setActiveForm = _useState[1];
433
+ var _useState1 = _sliced_to_array((0, _react.useState)({
434
+ name: "John Doe",
435
+ email: "john@example.com"
436
+ }), 2), profileData = _useState1[0], setProfileData = _useState1[1];
437
+ var _useState2 = _sliced_to_array((0, _react.useState)({
438
+ notifications: true,
439
+ theme: "light"
440
+ }), 2), settingsData = _useState2[0], setSettingsData = _useState2[1];
441
+ var scenarios = [
442
+ {
443
+ key: "profile",
444
+ title: "Profile Form",
445
+ message: "Your profile changes haven't been saved",
446
+ data: profileData,
447
+ setData: setProfileData,
448
+ fields: [
449
+ {
450
+ key: "name",
451
+ label: "Full Name",
452
+ type: "text"
453
+ },
454
+ {
455
+ key: "email",
456
+ label: "Email Address",
457
+ type: "email"
458
+ }
459
+ ]
460
+ },
461
+ {
462
+ key: "settings",
463
+ title: "Settings Form",
464
+ message: "Settings modifications are pending",
465
+ data: settingsData,
466
+ setData: setSettingsData,
467
+ fields: [
468
+ {
469
+ key: "notifications",
470
+ label: "Enable Notifications",
471
+ type: "checkbox"
472
+ },
473
+ {
474
+ key: "theme",
475
+ label: "Theme",
476
+ type: "select",
477
+ options: [
478
+ "light",
479
+ "dark"
480
+ ]
481
+ }
482
+ ]
483
+ }
484
+ ];
485
+ var handleSave = function(formKey) {
486
+ return _async_to_generator(function() {
487
+ return _ts_generator(this, function(_state) {
488
+ switch(_state.label){
489
+ case 0:
490
+ return [
491
+ 4,
492
+ new Promise(function(resolve) {
493
+ return setTimeout(resolve, 1000);
494
+ })
495
+ ];
496
+ case 1:
497
+ _state.sent();
498
+ setActiveForm(null);
499
+ return [
500
+ 2
501
+ ];
502
+ }
503
+ });
504
+ })();
505
+ };
506
+ var handleDiscard = function(formKey) {
507
+ setActiveForm(null);
508
+ // Reset to original values in real implementation
509
+ };
510
+ var activateForm = function(formKey) {
511
+ setActiveForm(formKey);
512
+ };
513
+ var activeScenario = scenarios.find(function(s) {
514
+ return s.key === activeForm;
515
+ });
516
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Page.default, {
517
+ title: "Multiple Forms Demo",
518
+ children: [
519
+ activeScenario && /*#__PURE__*/ (0, _jsxruntime.jsx)(_ContextualSaveBar.default, {
520
+ message: activeScenario.message,
521
+ saveAction: {
522
+ onAction: function() {
523
+ return handleSave(activeForm);
524
+ },
525
+ accessibilityLabel: "Save changes",
526
+ content: "Save changes"
527
+ },
528
+ discardAction: {
529
+ onAction: function() {
530
+ return handleDiscard(activeForm);
531
+ },
532
+ accessibilityLabel: "Discard changes",
533
+ content: "Discard changes"
534
+ }
535
+ }),
536
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Stack.default, {
537
+ gap: "lg",
538
+ children: scenarios.map(function(scenario) {
539
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Card.default, {
540
+ title: scenario.title,
541
+ padded: true,
542
+ children: [
543
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Stack.default, {
544
+ gap: "md",
545
+ children: scenario.fields.map(function(field) {
546
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
547
+ children: field.type === "checkbox" ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
548
+ horizontal: true,
549
+ gap: "sm",
550
+ blockAlign: "center",
551
+ as: "label",
552
+ children: [
553
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("input", {
554
+ type: "checkbox",
555
+ checked: scenario.data[field.key],
556
+ onChange: function(e) {
557
+ scenario.setData(function(prev) {
558
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field.key, e.target.checked));
559
+ });
560
+ activateForm(scenario.key);
561
+ }
562
+ }),
563
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
564
+ children: field.label
565
+ })
566
+ ]
567
+ }) : field.type === "select" ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Box.default, {
568
+ children: [
569
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
570
+ paddingBlockEnd: "2",
571
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
572
+ variant: "bodySm",
573
+ children: field.label
574
+ })
575
+ }),
576
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("select", {
577
+ value: scenario.data[field.key],
578
+ onChange: function(e) {
579
+ scenario.setData(function(prev) {
580
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field.key, e.target.value));
581
+ });
582
+ activateForm(scenario.key);
583
+ },
584
+ style: {
585
+ padding: "0.5rem",
586
+ borderRadius: "4px",
587
+ border: "1px solid #ccc"
588
+ },
589
+ children: field.options.map(function(option) {
590
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)("option", {
591
+ value: option,
592
+ children: option.charAt(0).toUpperCase() + option.slice(1)
593
+ }, option);
594
+ })
595
+ })
596
+ ]
597
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
598
+ label: field.label,
599
+ type: field.type,
600
+ value: scenario.data[field.key],
601
+ onChange: function(value) {
602
+ scenario.setData(function(prev) {
603
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field.key, value));
604
+ });
605
+ activateForm(scenario.key);
606
+ }
607
+ })
608
+ }, field.key);
609
+ })
610
+ }),
611
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
612
+ paddingBlockStart: "4",
613
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Text.default, {
614
+ variant: "bodySm",
615
+ tone: "subdued",
616
+ children: [
617
+ 'Make changes to see: "',
618
+ scenario.message,
619
+ '"'
620
+ ]
621
+ })
622
+ })
623
+ ]
624
+ }, scenario.key);
625
+ })
626
+ })
627
+ ]
628
+ });
629
+ },
630
+ parameters: {
631
+ docs: {
632
+ source: {
633
+ transform: _transformers.transformStorySource
634
+ },
635
+ description: {
636
+ story: "Different contextual save bars with custom messages for various forms."
637
+ }
638
+ }
639
+ }
640
+ };
641
+ var LoadingStates = {
642
+ render: function() {
643
+ var _useState = _sliced_to_array((0, _react.useState)({
644
+ content: "Some content here"
645
+ }), 2), formData = _useState[0], setFormData = _useState[1];
646
+ var _useState1 = _sliced_to_array((0, _react.useState)(false), 2), saving = _useState1[0], setSaving = _useState1[1];
647
+ var _useState2 = _sliced_to_array((0, _react.useState)(false), 2), discarding = _useState2[0], setDiscarding = _useState2[1];
648
+ var _useState3 = _sliced_to_array((0, _react.useState)(false), 2), showSaveBar = _useState3[0], setShowSaveBar = _useState3[1];
649
+ var handleSave = function() {
650
+ return _async_to_generator(function() {
651
+ return _ts_generator(this, function(_state) {
652
+ switch(_state.label){
653
+ case 0:
654
+ setSaving(true);
655
+ return [
656
+ 4,
657
+ new Promise(function(resolve) {
658
+ return setTimeout(resolve, 2000);
659
+ })
660
+ ];
661
+ case 1:
662
+ _state.sent();
663
+ setSaving(false);
664
+ setShowSaveBar(false);
665
+ return [
666
+ 2
667
+ ];
668
+ }
669
+ });
670
+ })();
671
+ };
672
+ var handleDiscard = function() {
673
+ return _async_to_generator(function() {
674
+ return _ts_generator(this, function(_state) {
675
+ switch(_state.label){
676
+ case 0:
677
+ setDiscarding(true);
678
+ return [
679
+ 4,
680
+ new Promise(function(resolve) {
681
+ return setTimeout(resolve, 1000);
682
+ })
683
+ ];
684
+ case 1:
685
+ _state.sent();
686
+ setDiscarding(false);
687
+ setFormData({
688
+ content: "Some content here"
689
+ });
690
+ setShowSaveBar(false);
691
+ return [
692
+ 2
693
+ ];
694
+ }
695
+ });
696
+ })();
697
+ };
698
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Page.default, {
699
+ title: "Loading States Demo",
700
+ children: [
701
+ showSaveBar && /*#__PURE__*/ (0, _jsxruntime.jsx)(_ContextualSaveBar.default, {
702
+ message: saving ? "Saving changes..." : discarding ? "Discarding changes..." : "Unsaved changes",
703
+ saveAction: {
704
+ onAction: handleSave,
705
+ loading: saving,
706
+ disabled: saving || discarding,
707
+ accessibilityLabel: saving ? "Saving in progress" : "Save changes",
708
+ content: saving ? "Saving..." : "Save changes"
709
+ },
710
+ discardAction: {
711
+ onAction: handleDiscard,
712
+ loading: discarding,
713
+ disabled: saving || discarding,
714
+ accessibilityLabel: discarding ? "Discarding in progress" : "Discard changes",
715
+ content: discarding ? "Discarding..." : "Discard changes"
716
+ }
717
+ }),
718
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Card.default, {
719
+ title: "Document Editor",
720
+ padded: true,
721
+ children: [
722
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
723
+ label: "Content",
724
+ value: formData.content,
725
+ onChange: function(value) {
726
+ setFormData({
727
+ content: value
728
+ });
729
+ setShowSaveBar(true);
730
+ },
731
+ multiline: 5
732
+ }),
733
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Box.default, {
734
+ paddingBlockStart: "8",
735
+ padding: "4",
736
+ background: "subdued",
737
+ borderRadius: "default",
738
+ children: [
739
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
740
+ variant: "headingSm",
741
+ children: "Demo Controls"
742
+ }),
743
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
744
+ paddingBlockStart: "2",
745
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
746
+ horizontal: true,
747
+ gap: "md",
748
+ children: [
749
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
750
+ onClick: function() {
751
+ return setShowSaveBar(true);
752
+ },
753
+ disabled: showSaveBar,
754
+ size: "slim",
755
+ children: "Show Save Bar"
756
+ }),
757
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
758
+ onClick: function() {
759
+ return setShowSaveBar(false);
760
+ },
761
+ disabled: !showSaveBar,
762
+ size: "slim",
763
+ children: "Hide Save Bar"
764
+ })
765
+ ]
766
+ })
767
+ }),
768
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
769
+ paddingBlockStart: "4",
770
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Text.default, {
771
+ variant: "bodySm",
772
+ children: [
773
+ "Status:",
774
+ " ",
775
+ saving ? "Saving..." : discarding ? "Discarding..." : showSaveBar ? "Changes pending" : "No changes"
776
+ ]
777
+ })
778
+ })
779
+ ]
780
+ })
781
+ ]
782
+ })
783
+ ]
784
+ });
785
+ },
786
+ parameters: {
787
+ docs: {
788
+ source: {
789
+ transform: _transformers.transformStorySource
790
+ },
791
+ description: {
792
+ story: "Contextual save bar with loading states for save and discard actions."
793
+ }
794
+ }
795
+ }
796
+ };
797
+ var DisabledActions = {
798
+ render: function() {
799
+ var _useState = _sliced_to_array((0, _react.useState)({
800
+ title: "",
801
+ content: "",
802
+ category: ""
803
+ }), 2), formData = _useState[0], setFormData = _useState[1];
804
+ var _useState1 = _sliced_to_array((0, _react.useState)(false), 2), showSaveBar = _useState1[0], setShowSaveBar = _useState1[1];
805
+ var isFormValid = formData.title.trim() && formData.content.trim() && formData.category;
806
+ var handleSave = function() {
807
+ if (isFormValid) {
808
+ alert("Form saved successfully!");
809
+ setShowSaveBar(false);
810
+ }
811
+ };
812
+ var handleDiscard = function() {
813
+ setFormData({
814
+ title: "",
815
+ content: "",
816
+ category: ""
817
+ });
818
+ setShowSaveBar(false);
819
+ };
820
+ var handleFieldChange = function(field, value) {
821
+ setFormData(function(prev) {
822
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, field, value));
823
+ });
824
+ setShowSaveBar(true);
825
+ };
826
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Page.default, {
827
+ title: "Form Validation Demo",
828
+ children: [
829
+ showSaveBar && /*#__PURE__*/ (0, _jsxruntime.jsx)(_ContextualSaveBar.default, {
830
+ message: isFormValid ? "Ready to save changes" : "Please complete all required fields before saving",
831
+ saveAction: {
832
+ onAction: handleSave,
833
+ disabled: !isFormValid,
834
+ accessibilityLabel: isFormValid ? "Save form" : "Cannot save - form incomplete",
835
+ content: isFormValid ? "Save form" : "Cannot save - form incomplete"
836
+ },
837
+ discardAction: {
838
+ onAction: handleDiscard,
839
+ accessibilityLabel: "Discard all changes",
840
+ content: "Discard all changes"
841
+ }
842
+ }),
843
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Card.default, {
844
+ title: "Article Creation",
845
+ padded: true,
846
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
847
+ gap: "md",
848
+ children: [
849
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
850
+ label: "Title *",
851
+ value: formData.title,
852
+ onChange: function(value) {
853
+ return handleFieldChange("title", value);
854
+ },
855
+ error: showSaveBar && !formData.title.trim(),
856
+ placeholder: "Enter article title"
857
+ }),
858
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Box.default, {
859
+ children: [
860
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
861
+ paddingBlockEnd: "2",
862
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
863
+ variant: "bodySm",
864
+ children: "Category *"
865
+ })
866
+ }),
867
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("select", {
868
+ value: formData.category,
869
+ onChange: function(e) {
870
+ return handleFieldChange("category", e.target.value);
871
+ },
872
+ style: {
873
+ width: "100%",
874
+ padding: "0.75rem",
875
+ borderRadius: "4px",
876
+ border: showSaveBar && !formData.category ? "1px solid #e74c3c" : "1px solid #ccc"
877
+ },
878
+ children: [
879
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("option", {
880
+ value: "",
881
+ children: "Select a category"
882
+ }),
883
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("option", {
884
+ value: "technology",
885
+ children: "Technology"
886
+ }),
887
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("option", {
888
+ value: "business",
889
+ children: "Business"
890
+ }),
891
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("option", {
892
+ value: "lifestyle",
893
+ children: "Lifestyle"
894
+ })
895
+ ]
896
+ })
897
+ ]
898
+ }),
899
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
900
+ label: "Content *",
901
+ value: formData.content,
902
+ onChange: function(value) {
903
+ return handleFieldChange("content", value);
904
+ },
905
+ error: showSaveBar && !formData.content.trim(),
906
+ multiline: 4,
907
+ placeholder: "Write your article content here..."
908
+ }),
909
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Box.default, {
910
+ padding: "4",
911
+ background: "subdued",
912
+ borderRadius: "default",
913
+ children: [
914
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
915
+ variant: "headingSm",
916
+ children: "Validation Status"
917
+ }),
918
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Box.default, {
919
+ paddingBlockStart: "2",
920
+ children: [
921
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Text.default, {
922
+ variant: "bodySm",
923
+ style: {
924
+ color: formData.title.trim() ? "#27ae60" : "#e74c3c"
925
+ },
926
+ children: [
927
+ "Title: ",
928
+ formData.title.trim() ? "✓ Valid" : "✗ Required"
929
+ ]
930
+ }),
931
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Text.default, {
932
+ variant: "bodySm",
933
+ style: {
934
+ color: formData.category ? "#27ae60" : "#e74c3c"
935
+ },
936
+ children: [
937
+ "Category: ",
938
+ formData.category ? "✓ Selected" : "✗ Required"
939
+ ]
940
+ }),
941
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Text.default, {
942
+ variant: "bodySm",
943
+ style: {
944
+ color: formData.content.trim() ? "#27ae60" : "#e74c3c"
945
+ },
946
+ children: [
947
+ "Content: ",
948
+ formData.content.trim() ? "✓ Valid" : "✗ Required"
949
+ ]
950
+ })
951
+ ]
952
+ })
953
+ ]
954
+ })
955
+ ]
956
+ })
957
+ })
958
+ ]
959
+ });
960
+ },
961
+ parameters: {
962
+ docs: {
963
+ source: {
964
+ transform: _transformers.transformStorySource
965
+ },
966
+ description: {
967
+ story: "Contextual save bar with disabled save action based on form validation."
968
+ }
969
+ }
970
+ }
971
+ };