@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,1201 @@
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 _array_without_holes(arr) {
10
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
11
+ }
12
+ function _define_property(obj, key, value) {
13
+ if (key in obj) {
14
+ Object.defineProperty(obj, key, {
15
+ value: value,
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true
19
+ });
20
+ } else {
21
+ obj[key] = value;
22
+ }
23
+ return obj;
24
+ }
25
+ function _iterable_to_array(iter) {
26
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
27
+ }
28
+ function _iterable_to_array_limit(arr, i) {
29
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
30
+ if (_i == null) return;
31
+ var _arr = [];
32
+ var _n = true;
33
+ var _d = false;
34
+ var _s, _e;
35
+ try {
36
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
37
+ _arr.push(_s.value);
38
+ if (i && _arr.length === i) break;
39
+ }
40
+ } catch (err) {
41
+ _d = true;
42
+ _e = err;
43
+ } finally{
44
+ try {
45
+ if (!_n && _i["return"] != null) _i["return"]();
46
+ } finally{
47
+ if (_d) throw _e;
48
+ }
49
+ }
50
+ return _arr;
51
+ }
52
+ function _non_iterable_rest() {
53
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
54
+ }
55
+ function _non_iterable_spread() {
56
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
+ }
58
+ function _object_spread(target) {
59
+ for(var i = 1; i < arguments.length; i++){
60
+ var source = arguments[i] != null ? arguments[i] : {};
61
+ var ownKeys = Object.keys(source);
62
+ if (typeof Object.getOwnPropertySymbols === "function") {
63
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
64
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
65
+ }));
66
+ }
67
+ ownKeys.forEach(function(key) {
68
+ _define_property(target, key, source[key]);
69
+ });
70
+ }
71
+ return target;
72
+ }
73
+ function ownKeys(object, enumerableOnly) {
74
+ var keys = Object.keys(object);
75
+ if (Object.getOwnPropertySymbols) {
76
+ var symbols = Object.getOwnPropertySymbols(object);
77
+ if (enumerableOnly) {
78
+ symbols = symbols.filter(function(sym) {
79
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
80
+ });
81
+ }
82
+ keys.push.apply(keys, symbols);
83
+ }
84
+ return keys;
85
+ }
86
+ function _object_spread_props(target, source) {
87
+ source = source != null ? source : {};
88
+ if (Object.getOwnPropertyDescriptors) {
89
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
90
+ } else {
91
+ ownKeys(Object(source)).forEach(function(key) {
92
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
93
+ });
94
+ }
95
+ return target;
96
+ }
97
+ function _sliced_to_array(arr, i) {
98
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
99
+ }
100
+ function _to_consumable_array(arr) {
101
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
102
+ }
103
+ function _unsupported_iterable_to_array(o, minLen) {
104
+ if (!o) return;
105
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
106
+ var n = Object.prototype.toString.call(o).slice(8, -1);
107
+ if (n === "Object" && o.constructor) n = o.constructor.name;
108
+ if (n === "Map" || n === "Set") return Array.from(n);
109
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
110
+ }
111
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
112
+ import { useState, useEffect } from "react";
113
+ import { transformStorySource } from "../utilities/transformers.js";
114
+ import Stack from "../components/Stack.js";
115
+ import PopoverManager from "../components/PopoverManager.js";
116
+ import Popover from "../components/Popover.js";
117
+ import Text from "../components/Text.js";
118
+ import Card from "../components/Card.js";
119
+ import Button from "../components/Button.js";
120
+ import Page from "../components/Page.js";
121
+ import Box from "../components/Box.js";
122
+ export default {
123
+ title: "Litho/PopoverManager",
124
+ component: PopoverManager,
125
+ parameters: {
126
+ layout: "padded",
127
+ docs: {
128
+ description: {
129
+ component: "A PopoverManager utility that manages the state of multiple popovers in an application. It provides methods to open, close, and track active popovers, ensuring proper layering and interaction management."
130
+ },
131
+ source: {
132
+ transform: transformStorySource
133
+ }
134
+ }
135
+ },
136
+ tags: [
137
+ "autodocs"
138
+ ]
139
+ };
140
+ export var BasicUsage = {
141
+ render: function() {
142
+ var _useState = _sliced_to_array(useState([]), 2), activePopovers = _useState[0], setActivePopovers = _useState[1];
143
+ var _useState1 = _sliced_to_array(useState(false), 2), popover1Active = _useState1[0], setPopover1Active = _useState1[1];
144
+ var _useState2 = _sliced_to_array(useState(false), 2), popover2Active = _useState2[0], setPopover2Active = _useState2[1];
145
+ useEffect(function() {
146
+ var handleManagerChange = function() {
147
+ setActivePopovers(_to_consumable_array(PopoverManager.activePopovers));
148
+ };
149
+ PopoverManager.on("change", handleManagerChange);
150
+ return function() {
151
+ PopoverManager.removeListener("change", handleManagerChange);
152
+ };
153
+ }, []);
154
+ var openPopover1 = function() {
155
+ PopoverManager.open("popover1");
156
+ setPopover1Active(true);
157
+ };
158
+ var closePopover1 = function() {
159
+ PopoverManager.close("popover1");
160
+ setPopover1Active(false);
161
+ };
162
+ var openPopover2 = function() {
163
+ PopoverManager.open("popover2");
164
+ setPopover2Active(true);
165
+ };
166
+ var closePopover2 = function() {
167
+ PopoverManager.close("popover2");
168
+ setPopover2Active(false);
169
+ };
170
+ var closeAll = function() {
171
+ PopoverManager.closeAll();
172
+ setPopover1Active(false);
173
+ setPopover2Active(false);
174
+ };
175
+ return /*#__PURE__*/ _jsx(Card, {
176
+ title: "PopoverManager Basic Usage",
177
+ padded: true,
178
+ children: /*#__PURE__*/ _jsxs(Stack, {
179
+ gap: "lg",
180
+ children: [
181
+ /*#__PURE__*/ _jsxs(Stack, {
182
+ gap: "md",
183
+ children: [
184
+ /*#__PURE__*/ _jsx(Text, {
185
+ children: "The PopoverManager helps coordinate multiple popovers to prevent conflicts and manage layering. Click the buttons below to see it in action."
186
+ }),
187
+ /*#__PURE__*/ _jsxs(Stack, {
188
+ horizontal: true,
189
+ gap: "md",
190
+ children: [
191
+ /*#__PURE__*/ _jsx(Popover, {
192
+ active: popover1Active,
193
+ activator: /*#__PURE__*/ _jsx(Button, {
194
+ onClick: openPopover1,
195
+ children: "Open Popover 1"
196
+ }),
197
+ onClose: closePopover1,
198
+ children: /*#__PURE__*/ _jsx(Box, {
199
+ padding: "4",
200
+ minWidth: "200px",
201
+ children: /*#__PURE__*/ _jsxs(Stack, {
202
+ gap: "sm",
203
+ children: [
204
+ /*#__PURE__*/ _jsx(Text, {
205
+ variant: "headingSm",
206
+ children: "Popover 1"
207
+ }),
208
+ /*#__PURE__*/ _jsx(Text, {
209
+ children: "This is the first popover managed by PopoverManager."
210
+ }),
211
+ /*#__PURE__*/ _jsx(Button, {
212
+ size: "slim",
213
+ onClick: closePopover1,
214
+ children: "Close"
215
+ })
216
+ ]
217
+ })
218
+ })
219
+ }),
220
+ /*#__PURE__*/ _jsx(Popover, {
221
+ active: popover2Active,
222
+ activator: /*#__PURE__*/ _jsx(Button, {
223
+ onClick: openPopover2,
224
+ children: "Open Popover 2"
225
+ }),
226
+ onClose: closePopover2,
227
+ children: /*#__PURE__*/ _jsx(Box, {
228
+ padding: "4",
229
+ minWidth: "200px",
230
+ children: /*#__PURE__*/ _jsxs(Stack, {
231
+ gap: "sm",
232
+ children: [
233
+ /*#__PURE__*/ _jsx(Text, {
234
+ variant: "headingSm",
235
+ children: "Popover 2"
236
+ }),
237
+ /*#__PURE__*/ _jsx(Text, {
238
+ children: "This is the second popover managed by PopoverManager."
239
+ }),
240
+ /*#__PURE__*/ _jsx(Button, {
241
+ size: "slim",
242
+ onClick: closePopover2,
243
+ children: "Close"
244
+ })
245
+ ]
246
+ })
247
+ })
248
+ }),
249
+ /*#__PURE__*/ _jsx(Button, {
250
+ onClick: closeAll,
251
+ destructive: true,
252
+ children: "Close All Popovers"
253
+ })
254
+ ]
255
+ })
256
+ ]
257
+ }),
258
+ /*#__PURE__*/ _jsx(Box, {
259
+ padding: "4",
260
+ background: "subdued",
261
+ borderRadius: "default",
262
+ children: /*#__PURE__*/ _jsxs(Stack, {
263
+ gap: "sm",
264
+ children: [
265
+ /*#__PURE__*/ _jsx(Text, {
266
+ variant: "headingSm",
267
+ children: "PopoverManager State"
268
+ }),
269
+ /*#__PURE__*/ _jsxs(Stack, {
270
+ gap: "xs",
271
+ children: [
272
+ /*#__PURE__*/ _jsxs(Text, {
273
+ variant: "bodySm",
274
+ children: [
275
+ "Active Popovers: ",
276
+ activePopovers.length
277
+ ]
278
+ }),
279
+ /*#__PURE__*/ _jsxs(Text, {
280
+ variant: "bodySm",
281
+ children: [
282
+ "Popover IDs: ",
283
+ activePopovers.length > 0 ? activePopovers.join(", ") : "None"
284
+ ]
285
+ }),
286
+ /*#__PURE__*/ _jsxs(Text, {
287
+ variant: "bodySm",
288
+ children: [
289
+ "Latest Active: ",
290
+ PopoverManager.getActivePopoverId() || "None"
291
+ ]
292
+ })
293
+ ]
294
+ })
295
+ ]
296
+ })
297
+ })
298
+ ]
299
+ })
300
+ });
301
+ },
302
+ parameters: {
303
+ docs: {
304
+ description: {
305
+ story: "Basic usage of PopoverManager to coordinate multiple popovers."
306
+ }
307
+ }
308
+ }
309
+ };
310
+ export var ConflictResolution = {
311
+ render: function() {
312
+ var _useState = _sliced_to_array(useState([]), 2), activePopovers = _useState[0], setActivePopovers = _useState[1];
313
+ var _useState1 = _sliced_to_array(useState(false), 2), contextMenuActive = _useState1[0], setContextMenuActive = _useState1[1];
314
+ var _useState2 = _sliced_to_array(useState(false), 2), settingsActive = _useState2[0], setSettingsActive = _useState2[1];
315
+ var _useState3 = _sliced_to_array(useState(false), 2), helpActive = _useState3[0], setHelpActive = _useState3[1];
316
+ useEffect(function() {
317
+ var handleManagerChange = function() {
318
+ setActivePopovers(_to_consumable_array(PopoverManager.activePopovers));
319
+ };
320
+ PopoverManager.on("change", handleManagerChange);
321
+ return function() {
322
+ PopoverManager.removeListener("change", handleManagerChange);
323
+ };
324
+ }, []);
325
+ var openContextMenu = function() {
326
+ // Close other conflicting popovers first
327
+ PopoverManager.close("settings");
328
+ PopoverManager.close("help");
329
+ setSettingsActive(false);
330
+ setHelpActive(false);
331
+ PopoverManager.open("contextMenu");
332
+ setContextMenuActive(true);
333
+ };
334
+ var closeContextMenu = function() {
335
+ PopoverManager.close("contextMenu");
336
+ setContextMenuActive(false);
337
+ };
338
+ var openSettings = function() {
339
+ // Close conflicting popovers
340
+ PopoverManager.close("contextMenu");
341
+ PopoverManager.close("help");
342
+ setContextMenuActive(false);
343
+ setHelpActive(false);
344
+ PopoverManager.open("settings");
345
+ setSettingsActive(true);
346
+ };
347
+ var closeSettings = function() {
348
+ PopoverManager.close("settings");
349
+ setSettingsActive(false);
350
+ };
351
+ var openHelp = function() {
352
+ // Close conflicting popovers
353
+ PopoverManager.close("contextMenu");
354
+ PopoverManager.close("settings");
355
+ setContextMenuActive(false);
356
+ setSettingsActive(false);
357
+ PopoverManager.open("help");
358
+ setHelpActive(true);
359
+ };
360
+ var closeHelp = function() {
361
+ PopoverManager.close("help");
362
+ setHelpActive(false);
363
+ };
364
+ return /*#__PURE__*/ _jsx(Card, {
365
+ title: "Popover Conflict Resolution",
366
+ padded: true,
367
+ children: /*#__PURE__*/ _jsxs(Stack, {
368
+ gap: "lg",
369
+ children: [
370
+ /*#__PURE__*/ _jsxs(Stack, {
371
+ gap: "md",
372
+ children: [
373
+ /*#__PURE__*/ _jsx(Text, {
374
+ children: "When multiple popovers might conflict (like context menus and settings panels), PopoverManager helps resolve conflicts by allowing controlled opening and closing."
375
+ }),
376
+ /*#__PURE__*/ _jsxs(Stack, {
377
+ horizontal: true,
378
+ gap: "md",
379
+ children: [
380
+ /*#__PURE__*/ _jsx(Popover, {
381
+ active: contextMenuActive,
382
+ activator: /*#__PURE__*/ _jsx(Button, {
383
+ onClick: openContextMenu,
384
+ children: "Context Menu"
385
+ }),
386
+ onClose: closeContextMenu,
387
+ children: /*#__PURE__*/ _jsx(Box, {
388
+ padding: "4",
389
+ minWidth: "150px",
390
+ children: /*#__PURE__*/ _jsxs(Stack, {
391
+ gap: "sm",
392
+ children: [
393
+ /*#__PURE__*/ _jsx(Text, {
394
+ variant: "headingSm",
395
+ children: "Context Menu"
396
+ }),
397
+ /*#__PURE__*/ _jsxs(Stack, {
398
+ gap: "xs",
399
+ children: [
400
+ /*#__PURE__*/ _jsx(Button, {
401
+ size: "slim",
402
+ plain: true,
403
+ textAlign: "left",
404
+ children: "Cut"
405
+ }),
406
+ /*#__PURE__*/ _jsx(Button, {
407
+ size: "slim",
408
+ plain: true,
409
+ textAlign: "left",
410
+ children: "Copy"
411
+ }),
412
+ /*#__PURE__*/ _jsx(Button, {
413
+ size: "slim",
414
+ plain: true,
415
+ textAlign: "left",
416
+ children: "Paste"
417
+ }),
418
+ /*#__PURE__*/ _jsx(Box, {
419
+ paddingBlockStart: "2",
420
+ paddingBlockEnd: "2",
421
+ children: /*#__PURE__*/ _jsx("hr", {})
422
+ }),
423
+ /*#__PURE__*/ _jsx(Button, {
424
+ size: "slim",
425
+ plain: true,
426
+ textAlign: "left",
427
+ children: "Delete"
428
+ })
429
+ ]
430
+ })
431
+ ]
432
+ })
433
+ })
434
+ }),
435
+ /*#__PURE__*/ _jsx(Popover, {
436
+ active: settingsActive,
437
+ activator: /*#__PURE__*/ _jsx(Button, {
438
+ onClick: openSettings,
439
+ children: "Settings Panel"
440
+ }),
441
+ onClose: closeSettings,
442
+ children: /*#__PURE__*/ _jsx(Box, {
443
+ padding: "4",
444
+ minWidth: "200px",
445
+ children: /*#__PURE__*/ _jsxs(Stack, {
446
+ gap: "md",
447
+ children: [
448
+ /*#__PURE__*/ _jsx(Text, {
449
+ variant: "headingSm",
450
+ children: "Settings"
451
+ }),
452
+ /*#__PURE__*/ _jsxs(Stack, {
453
+ gap: "md",
454
+ children: [
455
+ /*#__PURE__*/ _jsxs(Stack, {
456
+ horizontal: true,
457
+ gap: "sm",
458
+ blockAlign: "center",
459
+ children: [
460
+ /*#__PURE__*/ _jsx("input", {
461
+ type: "checkbox",
462
+ defaultChecked: true
463
+ }),
464
+ /*#__PURE__*/ _jsx(Text, {
465
+ variant: "bodySm",
466
+ children: "Enable notifications"
467
+ })
468
+ ]
469
+ }),
470
+ /*#__PURE__*/ _jsxs(Stack, {
471
+ horizontal: true,
472
+ gap: "sm",
473
+ blockAlign: "center",
474
+ children: [
475
+ /*#__PURE__*/ _jsx("input", {
476
+ type: "checkbox"
477
+ }),
478
+ /*#__PURE__*/ _jsx(Text, {
479
+ variant: "bodySm",
480
+ children: "Auto-save"
481
+ })
482
+ ]
483
+ }),
484
+ /*#__PURE__*/ _jsxs(Stack, {
485
+ gap: "sm",
486
+ children: [
487
+ /*#__PURE__*/ _jsx(Text, {
488
+ variant: "bodySm",
489
+ children: "Theme"
490
+ }),
491
+ /*#__PURE__*/ _jsx(Box, {
492
+ children: /*#__PURE__*/ _jsxs("select", {
493
+ style: {
494
+ width: "100%",
495
+ padding: "0.25rem"
496
+ },
497
+ children: [
498
+ /*#__PURE__*/ _jsx("option", {
499
+ children: "Light"
500
+ }),
501
+ /*#__PURE__*/ _jsx("option", {
502
+ children: "Dark"
503
+ }),
504
+ /*#__PURE__*/ _jsx("option", {
505
+ children: "Auto"
506
+ })
507
+ ]
508
+ })
509
+ })
510
+ ]
511
+ })
512
+ ]
513
+ })
514
+ ]
515
+ })
516
+ })
517
+ }),
518
+ /*#__PURE__*/ _jsx(Popover, {
519
+ active: helpActive,
520
+ activator: /*#__PURE__*/ _jsx(Button, {
521
+ onClick: openHelp,
522
+ children: "Help Menu"
523
+ }),
524
+ onClose: closeHelp,
525
+ children: /*#__PURE__*/ _jsx(Box, {
526
+ padding: "4",
527
+ minWidth: "180px",
528
+ children: /*#__PURE__*/ _jsxs(Stack, {
529
+ gap: "sm",
530
+ children: [
531
+ /*#__PURE__*/ _jsx(Text, {
532
+ variant: "headingSm",
533
+ children: "Help & Support"
534
+ }),
535
+ /*#__PURE__*/ _jsxs(Stack, {
536
+ gap: "xs",
537
+ children: [
538
+ /*#__PURE__*/ _jsx(Button, {
539
+ size: "slim",
540
+ plain: true,
541
+ textAlign: "left",
542
+ children: "User Guide"
543
+ }),
544
+ /*#__PURE__*/ _jsx(Button, {
545
+ size: "slim",
546
+ plain: true,
547
+ textAlign: "left",
548
+ children: "Keyboard Shortcuts"
549
+ }),
550
+ /*#__PURE__*/ _jsx(Button, {
551
+ size: "slim",
552
+ plain: true,
553
+ textAlign: "left",
554
+ children: "Contact Support"
555
+ }),
556
+ /*#__PURE__*/ _jsx(Box, {
557
+ paddingBlockStart: "2",
558
+ paddingBlockEnd: "2",
559
+ children: /*#__PURE__*/ _jsx("hr", {})
560
+ }),
561
+ /*#__PURE__*/ _jsx(Button, {
562
+ size: "slim",
563
+ plain: true,
564
+ textAlign: "left",
565
+ children: "About"
566
+ })
567
+ ]
568
+ })
569
+ ]
570
+ })
571
+ })
572
+ })
573
+ ]
574
+ }),
575
+ /*#__PURE__*/ _jsx(Text, {
576
+ variant: "bodySm",
577
+ color: "subdued",
578
+ children: "Notice how opening one popover automatically closes the others to prevent conflicts."
579
+ })
580
+ ]
581
+ }),
582
+ /*#__PURE__*/ _jsx(Box, {
583
+ padding: "4",
584
+ background: "subdued",
585
+ borderRadius: "default",
586
+ children: /*#__PURE__*/ _jsxs(Stack, {
587
+ gap: "sm",
588
+ children: [
589
+ /*#__PURE__*/ _jsx(Text, {
590
+ variant: "headingSm",
591
+ children: "Conflict Resolution Status"
592
+ }),
593
+ /*#__PURE__*/ _jsxs(Stack, {
594
+ gap: "xs",
595
+ children: [
596
+ /*#__PURE__*/ _jsxs(Text, {
597
+ variant: "bodyXs",
598
+ children: [
599
+ "Active Popover: ",
600
+ PopoverManager.getActivePopoverId() || "None"
601
+ ]
602
+ }),
603
+ /*#__PURE__*/ _jsxs(Text, {
604
+ variant: "bodyXs",
605
+ children: [
606
+ "Total Open: ",
607
+ activePopovers.length
608
+ ]
609
+ }),
610
+ /*#__PURE__*/ _jsxs(Text, {
611
+ variant: "bodyXs",
612
+ children: [
613
+ "Context Menu: ",
614
+ contextMenuActive ? "✓ Open" : "✗ Closed"
615
+ ]
616
+ }),
617
+ /*#__PURE__*/ _jsxs(Text, {
618
+ variant: "bodyXs",
619
+ children: [
620
+ "Settings Panel: ",
621
+ settingsActive ? "✓ Open" : "✗ Closed"
622
+ ]
623
+ }),
624
+ /*#__PURE__*/ _jsxs(Text, {
625
+ variant: "bodyXs",
626
+ children: [
627
+ "Help Menu: ",
628
+ helpActive ? "✓ Open" : "✗ Closed"
629
+ ]
630
+ })
631
+ ]
632
+ })
633
+ ]
634
+ })
635
+ })
636
+ ]
637
+ })
638
+ });
639
+ },
640
+ parameters: {
641
+ docs: {
642
+ description: {
643
+ story: "Demonstrates how PopoverManager resolves conflicts between competing popovers."
644
+ }
645
+ }
646
+ }
647
+ };
648
+ export var ApplicationIntegration = {
649
+ render: function() {
650
+ var _useState = _sliced_to_array(useState([]), 2), activePopovers = _useState[0], setActivePopovers = _useState[1];
651
+ var _useState1 = _sliced_to_array(useState(false), 2), userMenuActive = _useState1[0], setUserMenuActive = _useState1[1];
652
+ var _useState2 = _sliced_to_array(useState(false), 2), notificationsActive = _useState2[0], setNotificationsActive = _useState2[1];
653
+ var _useState3 = _sliced_to_array(useState(false), 2), searchActive = _useState3[0], setSearchActive = _useState3[1];
654
+ useEffect(function() {
655
+ var handleManagerChange = function() {
656
+ setActivePopovers(_to_consumable_array(PopoverManager.activePopovers));
657
+ };
658
+ PopoverManager.on("change", handleManagerChange);
659
+ return function() {
660
+ PopoverManager.removeListener("change", handleManagerChange);
661
+ };
662
+ }, []);
663
+ var toggleUserMenu = function() {
664
+ if (userMenuActive) {
665
+ PopoverManager.close("userMenu");
666
+ setUserMenuActive(false);
667
+ } else {
668
+ PopoverManager.open("userMenu");
669
+ setUserMenuActive(true);
670
+ }
671
+ };
672
+ var toggleNotifications = function() {
673
+ if (notificationsActive) {
674
+ PopoverManager.close("notifications");
675
+ setNotificationsActive(false);
676
+ } else {
677
+ PopoverManager.open("notifications");
678
+ setNotificationsActive(true);
679
+ }
680
+ };
681
+ var toggleSearch = function() {
682
+ if (searchActive) {
683
+ PopoverManager.close("search");
684
+ setSearchActive(false);
685
+ } else {
686
+ PopoverManager.open("search");
687
+ setSearchActive(true);
688
+ }
689
+ };
690
+ var closeAll = function() {
691
+ PopoverManager.closeAll();
692
+ setUserMenuActive(false);
693
+ setNotificationsActive(false);
694
+ setSearchActive(false);
695
+ };
696
+ return /*#__PURE__*/ _jsxs(Page, {
697
+ title: "Application Header",
698
+ children: [
699
+ /*#__PURE__*/ _jsx(Box, {
700
+ padding: "4",
701
+ background: "subdued",
702
+ borderRadius: "lg",
703
+ marginBlockEnd: "8",
704
+ children: /*#__PURE__*/ _jsxs(Stack, {
705
+ horizontal: true,
706
+ align: "space-between",
707
+ blockAlign: "center",
708
+ children: [
709
+ /*#__PURE__*/ _jsx(Text, {
710
+ variant: "headingLg",
711
+ children: "My Application"
712
+ }),
713
+ /*#__PURE__*/ _jsxs(Stack, {
714
+ horizontal: true,
715
+ gap: "md",
716
+ blockAlign: "center",
717
+ children: [
718
+ /*#__PURE__*/ _jsx(Popover, {
719
+ active: searchActive,
720
+ activator: /*#__PURE__*/ _jsx(Button, {
721
+ plain: true,
722
+ onClick: toggleSearch,
723
+ children: "\uD83D\uDD0D Search"
724
+ }),
725
+ onClose: function() {
726
+ PopoverManager.close("search");
727
+ setSearchActive(false);
728
+ },
729
+ children: /*#__PURE__*/ _jsx(Box, {
730
+ padding: "4",
731
+ minWidth: "300px",
732
+ children: /*#__PURE__*/ _jsxs(Stack, {
733
+ gap: "md",
734
+ children: [
735
+ /*#__PURE__*/ _jsx("input", {
736
+ type: "text",
737
+ placeholder: "Search anything...",
738
+ style: {
739
+ width: "100%",
740
+ padding: "0.5rem",
741
+ border: "1px solid #ccc",
742
+ borderRadius: "4px"
743
+ }
744
+ }),
745
+ /*#__PURE__*/ _jsxs(Stack, {
746
+ gap: "xs",
747
+ children: [
748
+ /*#__PURE__*/ _jsx(Text, {
749
+ variant: "bodySm",
750
+ color: "subdued",
751
+ children: "Recent searches:"
752
+ }),
753
+ /*#__PURE__*/ _jsx(Button, {
754
+ size: "slim",
755
+ plain: true,
756
+ textAlign: "left",
757
+ children: "User management"
758
+ }),
759
+ /*#__PURE__*/ _jsx(Button, {
760
+ size: "slim",
761
+ plain: true,
762
+ textAlign: "left",
763
+ children: "Product catalog"
764
+ }),
765
+ /*#__PURE__*/ _jsx(Button, {
766
+ size: "slim",
767
+ plain: true,
768
+ textAlign: "left",
769
+ children: "Analytics dashboard"
770
+ })
771
+ ]
772
+ })
773
+ ]
774
+ })
775
+ })
776
+ }),
777
+ /*#__PURE__*/ _jsx(Popover, {
778
+ active: notificationsActive,
779
+ activator: /*#__PURE__*/ _jsx(Button, {
780
+ plain: true,
781
+ onClick: toggleNotifications,
782
+ children: "\uD83D\uDD14 Notifications (3)"
783
+ }),
784
+ onClose: function() {
785
+ PopoverManager.close("notifications");
786
+ setNotificationsActive(false);
787
+ },
788
+ children: /*#__PURE__*/ _jsx(Box, {
789
+ padding: "4",
790
+ minWidth: "280px",
791
+ children: /*#__PURE__*/ _jsxs(Stack, {
792
+ gap: "md",
793
+ children: [
794
+ /*#__PURE__*/ _jsx(Text, {
795
+ variant: "headingSm",
796
+ children: "Notifications"
797
+ }),
798
+ /*#__PURE__*/ _jsx(Stack, {
799
+ gap: "sm",
800
+ children: [
801
+ {
802
+ title: "New order received",
803
+ time: "2 minutes ago",
804
+ unread: true
805
+ },
806
+ {
807
+ title: "System maintenance scheduled",
808
+ time: "1 hour ago",
809
+ unread: true
810
+ },
811
+ {
812
+ title: "Monthly report ready",
813
+ time: "3 hours ago",
814
+ unread: false
815
+ }
816
+ ].map(function(notification, index) {
817
+ return /*#__PURE__*/ _jsx(Box, {
818
+ padding: "3",
819
+ background: notification.unread ? "surface-neutral-subdued" : "surface-neutral",
820
+ borderRadius: "default",
821
+ style: {
822
+ borderLeft: notification.unread ? "3px solid #007bff" : "3px solid transparent"
823
+ },
824
+ children: /*#__PURE__*/ _jsxs(Stack, {
825
+ gap: "xs",
826
+ children: [
827
+ /*#__PURE__*/ _jsx(Text, {
828
+ variant: "bodySm",
829
+ fontWeight: notification.unread ? "bold" : "normal",
830
+ children: notification.title
831
+ }),
832
+ /*#__PURE__*/ _jsx(Text, {
833
+ variant: "bodyXs",
834
+ color: "subdued",
835
+ children: notification.time
836
+ })
837
+ ]
838
+ })
839
+ }, index);
840
+ })
841
+ }),
842
+ /*#__PURE__*/ _jsx(Stack, {
843
+ inlineAlign: "center",
844
+ children: /*#__PURE__*/ _jsx(Button, {
845
+ size: "slim",
846
+ children: "View all notifications"
847
+ })
848
+ })
849
+ ]
850
+ })
851
+ })
852
+ }),
853
+ /*#__PURE__*/ _jsx(Popover, {
854
+ active: userMenuActive,
855
+ activator: /*#__PURE__*/ _jsx(Button, {
856
+ plain: true,
857
+ onClick: toggleUserMenu,
858
+ children: "\uD83D\uDC64 John Doe"
859
+ }),
860
+ onClose: function() {
861
+ PopoverManager.close("userMenu");
862
+ setUserMenuActive(false);
863
+ },
864
+ children: /*#__PURE__*/ _jsx(Box, {
865
+ padding: "4",
866
+ minWidth: "200px",
867
+ children: /*#__PURE__*/ _jsxs(Stack, {
868
+ gap: "md",
869
+ children: [
870
+ /*#__PURE__*/ _jsxs(Stack, {
871
+ gap: "sm",
872
+ inlineAlign: "center",
873
+ children: [
874
+ /*#__PURE__*/ _jsx("div", {
875
+ style: {
876
+ width: "40px",
877
+ height: "40px",
878
+ borderRadius: "50%",
879
+ backgroundColor: "#007bff",
880
+ color: "white",
881
+ display: "flex",
882
+ alignItems: "center",
883
+ justifyContent: "center"
884
+ },
885
+ children: "JD"
886
+ }),
887
+ /*#__PURE__*/ _jsx(Text, {
888
+ variant: "headingSm",
889
+ children: "John Doe"
890
+ }),
891
+ /*#__PURE__*/ _jsx(Text, {
892
+ variant: "bodySm",
893
+ color: "subdued",
894
+ children: "john@example.com"
895
+ })
896
+ ]
897
+ }),
898
+ /*#__PURE__*/ _jsxs(Stack, {
899
+ gap: "xs",
900
+ children: [
901
+ /*#__PURE__*/ _jsx(Button, {
902
+ size: "slim",
903
+ plain: true,
904
+ textAlign: "left",
905
+ children: "Profile Settings"
906
+ }),
907
+ /*#__PURE__*/ _jsx(Button, {
908
+ size: "slim",
909
+ plain: true,
910
+ textAlign: "left",
911
+ children: "Account"
912
+ }),
913
+ /*#__PURE__*/ _jsx(Button, {
914
+ size: "slim",
915
+ plain: true,
916
+ textAlign: "left",
917
+ children: "Preferences"
918
+ }),
919
+ /*#__PURE__*/ _jsx(Box, {
920
+ paddingBlockStart: "2",
921
+ paddingBlockEnd: "2",
922
+ children: /*#__PURE__*/ _jsx("hr", {})
923
+ }),
924
+ /*#__PURE__*/ _jsx(Button, {
925
+ size: "slim",
926
+ plain: true,
927
+ textAlign: "left",
928
+ children: "Help & Support"
929
+ }),
930
+ /*#__PURE__*/ _jsx(Button, {
931
+ size: "slim",
932
+ plain: true,
933
+ textAlign: "left",
934
+ destructive: true,
935
+ children: "Sign Out"
936
+ })
937
+ ]
938
+ })
939
+ ]
940
+ })
941
+ })
942
+ })
943
+ ]
944
+ })
945
+ ]
946
+ })
947
+ }),
948
+ /*#__PURE__*/ _jsxs(Card, {
949
+ title: "PopoverManager in Real Applications",
950
+ padded: true,
951
+ children: [
952
+ /*#__PURE__*/ _jsxs(Stack, {
953
+ gap: "md",
954
+ children: [
955
+ /*#__PURE__*/ _jsx(Text, {
956
+ children: "The header above demonstrates how PopoverManager works in a real application scenario, coordinating multiple interface elements like search, notifications, and user menus."
957
+ }),
958
+ /*#__PURE__*/ _jsx(Stack, {
959
+ horizontal: true,
960
+ gap: "md",
961
+ children: /*#__PURE__*/ _jsx(Button, {
962
+ onClick: closeAll,
963
+ destructive: true,
964
+ size: "slim",
965
+ children: "Close All Popovers"
966
+ })
967
+ })
968
+ ]
969
+ }),
970
+ /*#__PURE__*/ _jsx(Box, {
971
+ marginBlockStart: "8",
972
+ padding: "4",
973
+ background: "subdued",
974
+ borderRadius: "default",
975
+ children: /*#__PURE__*/ _jsxs(Stack, {
976
+ gap: "sm",
977
+ children: [
978
+ /*#__PURE__*/ _jsx(Text, {
979
+ variant: "headingSm",
980
+ children: "Application State"
981
+ }),
982
+ /*#__PURE__*/ _jsxs(Stack, {
983
+ gap: "xs",
984
+ children: [
985
+ /*#__PURE__*/ _jsxs(Text, {
986
+ variant: "bodyXs",
987
+ children: [
988
+ "Active Popovers: ",
989
+ activePopovers.join(", ") || "None"
990
+ ]
991
+ }),
992
+ /*#__PURE__*/ _jsxs(Text, {
993
+ variant: "bodyXs",
994
+ children: [
995
+ "Search: ",
996
+ searchActive ? "✓ Open" : "✗ Closed"
997
+ ]
998
+ }),
999
+ /*#__PURE__*/ _jsxs(Text, {
1000
+ variant: "bodyXs",
1001
+ children: [
1002
+ "Notifications: ",
1003
+ notificationsActive ? "✓ Open" : "✗ Closed"
1004
+ ]
1005
+ }),
1006
+ /*#__PURE__*/ _jsxs(Text, {
1007
+ variant: "bodyXs",
1008
+ children: [
1009
+ "User Menu: ",
1010
+ userMenuActive ? "✓ Open" : "✗ Closed"
1011
+ ]
1012
+ })
1013
+ ]
1014
+ })
1015
+ ]
1016
+ })
1017
+ })
1018
+ ]
1019
+ })
1020
+ ]
1021
+ });
1022
+ },
1023
+ parameters: {
1024
+ docs: {
1025
+ description: {
1026
+ story: "Real-world application integration showing PopoverManager coordinating header elements."
1027
+ }
1028
+ }
1029
+ }
1030
+ };
1031
+ export var EventHandling = {
1032
+ render: function() {
1033
+ var _useState = _sliced_to_array(useState([]), 2), eventLog = _useState[0], setEventLog = _useState[1];
1034
+ var _useState1 = _sliced_to_array(useState({
1035
+ popover1: false,
1036
+ popover2: false,
1037
+ popover3: false
1038
+ }), 2), popoverStates = _useState1[0], setPopoverStates = _useState1[1];
1039
+ useEffect(function() {
1040
+ var handleManagerChange = function() {
1041
+ var timestamp = new Date().toLocaleTimeString();
1042
+ var activeIds = _to_consumable_array(PopoverManager.activePopovers);
1043
+ setEventLog(function(prev) {
1044
+ return [
1045
+ "".concat(timestamp, ": Manager state changed - Active: [").concat(activeIds.join(", "), "]")
1046
+ ].concat(_to_consumable_array(prev.slice(0, 9)));
1047
+ });
1048
+ };
1049
+ PopoverManager.on("change", handleManagerChange);
1050
+ return function() {
1051
+ PopoverManager.removeListener("change", handleManagerChange);
1052
+ };
1053
+ }, []);
1054
+ var togglePopover = function(id) {
1055
+ if (popoverStates[id]) {
1056
+ PopoverManager.close(id);
1057
+ setPopoverStates(function(prev) {
1058
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, id, false));
1059
+ });
1060
+ } else {
1061
+ PopoverManager.open(id);
1062
+ setPopoverStates(function(prev) {
1063
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, id, true));
1064
+ });
1065
+ }
1066
+ };
1067
+ var clearEventLog = function() {
1068
+ setEventLog([]);
1069
+ };
1070
+ return /*#__PURE__*/ _jsx(Card, {
1071
+ title: "PopoverManager Event Handling",
1072
+ padded: true,
1073
+ children: /*#__PURE__*/ _jsxs(Stack, {
1074
+ gap: "lg",
1075
+ children: [
1076
+ /*#__PURE__*/ _jsxs(Stack, {
1077
+ gap: "md",
1078
+ children: [
1079
+ /*#__PURE__*/ _jsx(Text, {
1080
+ children: "PopoverManager emits events when its state changes. This is useful for debugging and for components that need to react to popover state changes."
1081
+ }),
1082
+ /*#__PURE__*/ _jsx(Stack, {
1083
+ horizontal: true,
1084
+ gap: "md",
1085
+ children: [
1086
+ 1,
1087
+ 2,
1088
+ 3
1089
+ ].map(function(num) {
1090
+ return /*#__PURE__*/ _jsx(Popover, {
1091
+ active: popoverStates["popover".concat(num)],
1092
+ activator: /*#__PURE__*/ _jsxs(Button, {
1093
+ onClick: function() {
1094
+ return togglePopover("popover".concat(num));
1095
+ },
1096
+ children: [
1097
+ "Toggle Popover ",
1098
+ num
1099
+ ]
1100
+ }),
1101
+ onClose: function() {
1102
+ PopoverManager.close("popover".concat(num));
1103
+ setPopoverStates(function(prev) {
1104
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, "popover".concat(num), false));
1105
+ });
1106
+ },
1107
+ children: /*#__PURE__*/ _jsx(Box, {
1108
+ padding: "4",
1109
+ minWidth: "150px",
1110
+ children: /*#__PURE__*/ _jsxs(Stack, {
1111
+ gap: "sm",
1112
+ children: [
1113
+ /*#__PURE__*/ _jsxs(Text, {
1114
+ variant: "headingSm",
1115
+ children: [
1116
+ "Popover ",
1117
+ num
1118
+ ]
1119
+ }),
1120
+ /*#__PURE__*/ _jsxs(Text, {
1121
+ children: [
1122
+ "This is popover number ",
1123
+ num,
1124
+ "."
1125
+ ]
1126
+ }),
1127
+ /*#__PURE__*/ _jsx(Button, {
1128
+ size: "slim",
1129
+ onClick: function() {
1130
+ return togglePopover("popover".concat(num));
1131
+ },
1132
+ children: "Close"
1133
+ })
1134
+ ]
1135
+ })
1136
+ })
1137
+ }, num);
1138
+ })
1139
+ })
1140
+ ]
1141
+ }),
1142
+ /*#__PURE__*/ _jsx(Box, {
1143
+ padding: "4",
1144
+ background: "subdued",
1145
+ borderRadius: "default",
1146
+ children: /*#__PURE__*/ _jsxs(Stack, {
1147
+ gap: "md",
1148
+ children: [
1149
+ /*#__PURE__*/ _jsxs(Stack, {
1150
+ horizontal: true,
1151
+ align: "space-between",
1152
+ blockAlign: "center",
1153
+ children: [
1154
+ /*#__PURE__*/ _jsx(Text, {
1155
+ variant: "headingSm",
1156
+ children: "Event Log"
1157
+ }),
1158
+ /*#__PURE__*/ _jsx(Button, {
1159
+ size: "slim",
1160
+ onClick: clearEventLog,
1161
+ children: "Clear Log"
1162
+ })
1163
+ ]
1164
+ }),
1165
+ /*#__PURE__*/ _jsx("div", {
1166
+ style: {
1167
+ maxHeight: "200px",
1168
+ overflowY: "auto",
1169
+ backgroundColor: "#000",
1170
+ color: "#00ff00",
1171
+ padding: "0.5rem",
1172
+ borderRadius: "4px",
1173
+ fontFamily: "monospace",
1174
+ fontSize: "0.8rem"
1175
+ },
1176
+ children: eventLog.length > 0 ? eventLog.map(function(event, index) {
1177
+ return /*#__PURE__*/ _jsx("div", {
1178
+ children: event
1179
+ }, index);
1180
+ }) : /*#__PURE__*/ _jsx("div", {
1181
+ style: {
1182
+ color: "#666"
1183
+ },
1184
+ children: "No events logged yet..."
1185
+ })
1186
+ })
1187
+ ]
1188
+ })
1189
+ })
1190
+ ]
1191
+ })
1192
+ });
1193
+ },
1194
+ parameters: {
1195
+ docs: {
1196
+ description: {
1197
+ story: "Demonstrates event handling and logging capabilities of PopoverManager."
1198
+ }
1199
+ }
1200
+ }
1201
+ };