@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,1317 @@
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 } from "react";
113
+ import Filters from "../components/Filters.js";
114
+ import Stack from "../components/Stack.js";
115
+ import Text from "../components/Text.js";
116
+ import Card from "../components/Card.js";
117
+ import Button from "../components/Button.js";
118
+ import Select from "../components/Select.js";
119
+ import Checkbox from "../components/Checkbox.js";
120
+ import RangeSlider from "../components/RangeSlider.js";
121
+ import Box from "../components/Box.js";
122
+ import { transformStorySource } from "../utilities/transformers.js";
123
+ export default {
124
+ title: 'Litho/Filters',
125
+ component: Filters,
126
+ parameters: {
127
+ layout: 'padded',
128
+ docs: {
129
+ description: {
130
+ component: "A comprehensive Filters component that manages filters for datasets. It includes visible filters, more filters dropdown, query text field, filter pills, and tabs for complex filtering scenarios."
131
+ }
132
+ }
133
+ },
134
+ tags: [
135
+ 'autodocs'
136
+ ],
137
+ argTypes: {
138
+ filters: {
139
+ control: 'object',
140
+ description: 'Array of available filters'
141
+ },
142
+ appliedFilters: {
143
+ control: 'object',
144
+ description: 'Array of currently applied filters'
145
+ },
146
+ showTextField: {
147
+ control: 'boolean',
148
+ description: 'Whether to show the query text field'
149
+ },
150
+ queryValue: {
151
+ control: 'text',
152
+ description: 'Current value of the query text field'
153
+ },
154
+ queryPlaceholder: {
155
+ control: 'text',
156
+ description: 'Placeholder text for the query field'
157
+ },
158
+ padded: {
159
+ control: 'boolean',
160
+ description: 'Whether to apply padding to the filters container'
161
+ }
162
+ }
163
+ };
164
+ export var Default = {
165
+ render: function() {
166
+ var _useState = _sliced_to_array(useState([]), 2), appliedFilters = _useState[0], setAppliedFilters = _useState[1];
167
+ var _useState1 = _sliced_to_array(useState(''), 2), status = _useState1[0], setStatus = _useState1[1];
168
+ var _useState2 = _sliced_to_array(useState(''), 2), category = _useState2[0], setCategory = _useState2[1];
169
+ var _useState3 = _sliced_to_array(useState([
170
+ 0,
171
+ 1000
172
+ ]), 2), priceRange = _useState3[0], setPriceRange = _useState3[1];
173
+ var filters = [
174
+ {
175
+ key: 'status',
176
+ label: 'Status',
177
+ shortcut: true,
178
+ filter: /*#__PURE__*/ _jsx(Select, {
179
+ label: "Status",
180
+ labelHidden: true,
181
+ options: [
182
+ {
183
+ label: 'All statuses',
184
+ value: ''
185
+ },
186
+ {
187
+ label: 'Active',
188
+ value: 'active'
189
+ },
190
+ {
191
+ label: 'Inactive',
192
+ value: 'inactive'
193
+ },
194
+ {
195
+ label: 'Pending',
196
+ value: 'pending'
197
+ }
198
+ ],
199
+ value: status,
200
+ onChange: function(value) {
201
+ setStatus(value);
202
+ updateAppliedFilters('status', value, value ? "Status: ".concat(value) : null);
203
+ }
204
+ })
205
+ },
206
+ {
207
+ key: 'category',
208
+ label: 'Category',
209
+ filter: /*#__PURE__*/ _jsx(Select, {
210
+ label: "Category",
211
+ labelHidden: true,
212
+ options: [
213
+ {
214
+ label: 'All categories',
215
+ value: ''
216
+ },
217
+ {
218
+ label: 'Electronics',
219
+ value: 'electronics'
220
+ },
221
+ {
222
+ label: 'Clothing',
223
+ value: 'clothing'
224
+ },
225
+ {
226
+ label: 'Books',
227
+ value: 'books'
228
+ },
229
+ {
230
+ label: 'Home & Garden',
231
+ value: 'home'
232
+ }
233
+ ],
234
+ value: category,
235
+ onChange: function(value) {
236
+ setCategory(value);
237
+ updateAppliedFilters('category', value, value ? "Category: ".concat(value) : null);
238
+ }
239
+ })
240
+ },
241
+ {
242
+ key: 'price',
243
+ label: 'Price Range',
244
+ filter: /*#__PURE__*/ _jsxs(Stack, {
245
+ gap: "md",
246
+ children: [
247
+ /*#__PURE__*/ _jsxs(Text, {
248
+ variant: "bodySm",
249
+ children: [
250
+ "Price: $",
251
+ priceRange[0],
252
+ " - $",
253
+ priceRange[1]
254
+ ]
255
+ }),
256
+ /*#__PURE__*/ _jsx(RangeSlider, {
257
+ label: "Price Range",
258
+ labelHidden: true,
259
+ min: 0,
260
+ max: 1000,
261
+ value: priceRange,
262
+ onChange: function(value) {
263
+ setPriceRange(value);
264
+ updateAppliedFilters('price', value, "Price: $".concat(value[0], " - $").concat(value[1]));
265
+ }
266
+ })
267
+ ]
268
+ })
269
+ }
270
+ ];
271
+ var updateAppliedFilters = function(key, value, label) {
272
+ setAppliedFilters(function(prev) {
273
+ var filtered = prev.filter(function(f) {
274
+ return f.key !== key;
275
+ });
276
+ if (value && (Array.isArray(value) && value.some(function(v) {
277
+ return v !== 0 && v !== 1000;
278
+ }) || !Array.isArray(value) && value !== '')) {
279
+ return _to_consumable_array(filtered).concat([
280
+ {
281
+ key: key,
282
+ label: label,
283
+ onRemove: function() {
284
+ if (key === 'status') setStatus('');
285
+ if (key === 'category') setCategory('');
286
+ if (key === 'price') setPriceRange([
287
+ 0,
288
+ 1000
289
+ ]);
290
+ setAppliedFilters(function(prev) {
291
+ return prev.filter(function(f) {
292
+ return f.key !== key;
293
+ });
294
+ });
295
+ }
296
+ }
297
+ ]);
298
+ }
299
+ return filtered;
300
+ });
301
+ };
302
+ var handleClearAll = function() {
303
+ setStatus('');
304
+ setCategory('');
305
+ setPriceRange([
306
+ 0,
307
+ 1000
308
+ ]);
309
+ setAppliedFilters([]);
310
+ };
311
+ return /*#__PURE__*/ _jsxs(Card, {
312
+ title: "Product Filters",
313
+ padded: true,
314
+ children: [
315
+ /*#__PURE__*/ _jsx(Filters, {
316
+ filters: filters,
317
+ appliedFilters: appliedFilters,
318
+ onClearAll: handleClearAll
319
+ }),
320
+ /*#__PURE__*/ _jsx(Box, {
321
+ marginBlockStart: "8",
322
+ padding: "4",
323
+ background: "subdued",
324
+ borderRadius: "default",
325
+ children: /*#__PURE__*/ _jsxs(Stack, {
326
+ gap: "sm",
327
+ children: [
328
+ /*#__PURE__*/ _jsx(Text, {
329
+ variant: "headingSm",
330
+ children: "Current Filters:"
331
+ }),
332
+ appliedFilters.length > 0 ? /*#__PURE__*/ _jsx(Stack, {
333
+ gap: "xs",
334
+ children: appliedFilters.map(function(filter) {
335
+ return /*#__PURE__*/ _jsxs(Text, {
336
+ variant: "bodyXs",
337
+ children: [
338
+ "• ",
339
+ filter.label
340
+ ]
341
+ }, filter.key);
342
+ })
343
+ }) : /*#__PURE__*/ _jsx(Text, {
344
+ variant: "bodyXs",
345
+ color: "subdued",
346
+ children: "No filters applied"
347
+ })
348
+ ]
349
+ })
350
+ })
351
+ ]
352
+ });
353
+ },
354
+ parameters: {
355
+ docs: {
356
+ description: {
357
+ story: 'Basic filters with status, category, and price range options.'
358
+ },
359
+ source: {
360
+ transform: transformStorySource
361
+ }
362
+ }
363
+ }
364
+ };
365
+ export var WithSearchField = {
366
+ render: function() {
367
+ var _useState = _sliced_to_array(useState([]), 2), appliedFilters = _useState[0], setAppliedFilters = _useState[1];
368
+ var _useState1 = _sliced_to_array(useState(''), 2), queryValue = _useState1[0], setQueryValue = _useState1[1];
369
+ var _useState2 = _sliced_to_array(useState([]), 2), selectedTags = _useState2[0], setSelectedTags = _useState2[1];
370
+ var _useState3 = _sliced_to_array(useState([]), 2), selectedAuthors = _useState3[0], setSelectedAuthors = _useState3[1];
371
+ var availableTags = [
372
+ 'React',
373
+ 'JavaScript',
374
+ 'CSS',
375
+ 'Node.js',
376
+ 'TypeScript',
377
+ 'GraphQL'
378
+ ];
379
+ var availableAuthors = [
380
+ 'John Doe',
381
+ 'Jane Smith',
382
+ 'Bob Wilson',
383
+ 'Alice Brown'
384
+ ];
385
+ var filters = [
386
+ {
387
+ key: 'tags',
388
+ label: 'Tags',
389
+ shortcut: true,
390
+ filter: /*#__PURE__*/ _jsx(Stack, {
391
+ gap: "sm",
392
+ children: availableTags.map(function(tag) {
393
+ return /*#__PURE__*/ _jsx(Checkbox, {
394
+ label: tag,
395
+ checked: selectedTags.includes(tag),
396
+ onChange: function(checked) {
397
+ var newTags = checked ? _to_consumable_array(selectedTags).concat([
398
+ tag
399
+ ]) : selectedTags.filter(function(t) {
400
+ return t !== tag;
401
+ });
402
+ setSelectedTags(newTags);
403
+ updateAppliedFilters('tags', newTags, newTags.length > 0 ? "Tags: ".concat(newTags.join(', ')) : null);
404
+ }
405
+ }, tag);
406
+ })
407
+ })
408
+ },
409
+ {
410
+ key: 'authors',
411
+ label: 'Authors',
412
+ filter: /*#__PURE__*/ _jsx(Stack, {
413
+ gap: "sm",
414
+ children: availableAuthors.map(function(author) {
415
+ return /*#__PURE__*/ _jsx(Checkbox, {
416
+ label: author,
417
+ checked: selectedAuthors.includes(author),
418
+ onChange: function(checked) {
419
+ var newAuthors = checked ? _to_consumable_array(selectedAuthors).concat([
420
+ author
421
+ ]) : selectedAuthors.filter(function(a) {
422
+ return a !== author;
423
+ });
424
+ setSelectedAuthors(newAuthors);
425
+ updateAppliedFilters('authors', newAuthors, newAuthors.length > 0 ? "Authors: ".concat(newAuthors.join(', ')) : null);
426
+ }
427
+ }, author);
428
+ })
429
+ })
430
+ }
431
+ ];
432
+ var updateAppliedFilters = function(key, value, label) {
433
+ setAppliedFilters(function(prev) {
434
+ var filtered = prev.filter(function(f) {
435
+ return f.key !== key;
436
+ });
437
+ if (value && Array.isArray(value) && value.length > 0) {
438
+ return _to_consumable_array(filtered).concat([
439
+ {
440
+ key: key,
441
+ label: label,
442
+ onRemove: function() {
443
+ if (key === 'tags') setSelectedTags([]);
444
+ if (key === 'authors') setSelectedAuthors([]);
445
+ setAppliedFilters(function(prev) {
446
+ return prev.filter(function(f) {
447
+ return f.key !== key;
448
+ });
449
+ });
450
+ }
451
+ }
452
+ ]);
453
+ }
454
+ return filtered;
455
+ });
456
+ };
457
+ var handleClearAll = function() {
458
+ setSelectedTags([]);
459
+ setSelectedAuthors([]);
460
+ setAppliedFilters([]);
461
+ };
462
+ return /*#__PURE__*/ _jsxs(Card, {
463
+ title: "Article Search & Filters",
464
+ padded: true,
465
+ children: [
466
+ /*#__PURE__*/ _jsx(Filters, {
467
+ filters: filters,
468
+ appliedFilters: appliedFilters,
469
+ onClearAll: handleClearAll,
470
+ showTextField: true,
471
+ queryValue: queryValue,
472
+ onQueryChange: setQueryValue,
473
+ onQueryClear: function() {
474
+ return setQueryValue('');
475
+ },
476
+ queryPlaceholder: "Search articles..."
477
+ }),
478
+ /*#__PURE__*/ _jsx(Box, {
479
+ marginBlockStart: "8",
480
+ padding: "4",
481
+ background: "subdued",
482
+ borderRadius: "default",
483
+ children: /*#__PURE__*/ _jsxs(Stack, {
484
+ gap: "sm",
485
+ children: [
486
+ /*#__PURE__*/ _jsx(Text, {
487
+ variant: "headingSm",
488
+ children: "Search & Filter Summary:"
489
+ }),
490
+ /*#__PURE__*/ _jsxs(Stack, {
491
+ gap: "xs",
492
+ children: [
493
+ /*#__PURE__*/ _jsxs(Text, {
494
+ variant: "bodyXs",
495
+ children: [
496
+ "Search Query: ",
497
+ queryValue || 'None'
498
+ ]
499
+ }),
500
+ /*#__PURE__*/ _jsxs(Text, {
501
+ variant: "bodyXs",
502
+ children: [
503
+ "Active Filters: ",
504
+ appliedFilters.length
505
+ ]
506
+ }),
507
+ appliedFilters.map(function(filter) {
508
+ return /*#__PURE__*/ _jsxs(Text, {
509
+ variant: "bodyXs",
510
+ style: {
511
+ marginLeft: '1rem'
512
+ },
513
+ children: [
514
+ "• ",
515
+ filter.label
516
+ ]
517
+ }, filter.key);
518
+ })
519
+ ]
520
+ })
521
+ ]
522
+ })
523
+ })
524
+ ]
525
+ });
526
+ },
527
+ parameters: {
528
+ docs: {
529
+ description: {
530
+ story: 'Filters with search text field for comprehensive filtering.'
531
+ },
532
+ source: {
533
+ transform: transformStorySource
534
+ }
535
+ }
536
+ }
537
+ };
538
+ export var FilterTabs = {
539
+ render: function() {
540
+ var _tabs_selectedTab, _tabs_selectedTab_accessory_props, _tabs_selectedTab_accessory, _tabs_selectedTab1;
541
+ var _useState = _sliced_to_array(useState(0), 2), selectedTab = _useState[0], setSelectedTab = _useState[1];
542
+ var _useState1 = _sliced_to_array(useState([]), 2), appliedFilters = _useState1[0], setAppliedFilters = _useState1[1];
543
+ var tabs = [
544
+ {
545
+ id: 'all',
546
+ content: 'All Items',
547
+ accessory: /*#__PURE__*/ _jsx(Text, {
548
+ variant: "bodySm",
549
+ color: "subdued",
550
+ children: "245 items"
551
+ })
552
+ },
553
+ {
554
+ id: 'active',
555
+ content: 'Active',
556
+ accessory: /*#__PURE__*/ _jsx(Text, {
557
+ variant: "bodySm",
558
+ color: "subdued",
559
+ children: "128 items"
560
+ })
561
+ },
562
+ {
563
+ id: 'inactive',
564
+ content: 'Inactive',
565
+ accessory: /*#__PURE__*/ _jsx(Text, {
566
+ variant: "bodySm",
567
+ color: "subdued",
568
+ children: "89 items"
569
+ })
570
+ },
571
+ {
572
+ id: 'pending',
573
+ content: 'Pending Review',
574
+ accessory: /*#__PURE__*/ _jsx(Text, {
575
+ variant: "bodySm",
576
+ color: "subdued",
577
+ children: "28 items"
578
+ })
579
+ },
580
+ {
581
+ id: 'draft',
582
+ content: 'Draft',
583
+ accessory: /*#__PURE__*/ _jsx(Text, {
584
+ variant: "bodySm",
585
+ color: "subdued",
586
+ children: "15 items"
587
+ })
588
+ },
589
+ {
590
+ id: 'archived',
591
+ content: 'Archived',
592
+ accessory: /*#__PURE__*/ _jsx(Text, {
593
+ variant: "bodySm",
594
+ color: "subdued",
595
+ children: "67 items"
596
+ })
597
+ }
598
+ ];
599
+ return /*#__PURE__*/ _jsxs(Card, {
600
+ title: "Status Filters with Tabs",
601
+ padded: true,
602
+ children: [
603
+ /*#__PURE__*/ _jsx(Filters.Tabs, {
604
+ tabs: tabs,
605
+ selected: selectedTab,
606
+ onSelect: setSelectedTab
607
+ }),
608
+ /*#__PURE__*/ _jsx(Box, {
609
+ marginBlockStart: "8",
610
+ padding: "4",
611
+ background: "subdued",
612
+ borderRadius: "default",
613
+ children: /*#__PURE__*/ _jsxs(Stack, {
614
+ gap: "sm",
615
+ children: [
616
+ /*#__PURE__*/ _jsx(Text, {
617
+ variant: "headingSm",
618
+ children: "Selected Tab:"
619
+ }),
620
+ /*#__PURE__*/ _jsxs(Text, {
621
+ variant: "bodyXs",
622
+ children: [
623
+ (_tabs_selectedTab = tabs[selectedTab]) === null || _tabs_selectedTab === void 0 ? void 0 : _tabs_selectedTab.content,
624
+ " - ",
625
+ (_tabs_selectedTab1 = tabs[selectedTab]) === null || _tabs_selectedTab1 === void 0 ? void 0 : (_tabs_selectedTab_accessory = _tabs_selectedTab1.accessory) === null || _tabs_selectedTab_accessory === void 0 ? void 0 : (_tabs_selectedTab_accessory_props = _tabs_selectedTab_accessory.props) === null || _tabs_selectedTab_accessory_props === void 0 ? void 0 : _tabs_selectedTab_accessory_props.children
626
+ ]
627
+ })
628
+ ]
629
+ })
630
+ })
631
+ ]
632
+ });
633
+ },
634
+ parameters: {
635
+ docs: {
636
+ description: {
637
+ story: 'Filter tabs for quick status-based filtering with item counts.'
638
+ },
639
+ source: {
640
+ transform: transformStorySource
641
+ }
642
+ }
643
+ }
644
+ };
645
+ export var ComplexFiltering = {
646
+ render: function() {
647
+ var _tabs_selectedTab;
648
+ var _useState = _sliced_to_array(useState([]), 2), appliedFilters = _useState[0], setAppliedFilters = _useState[1];
649
+ var _useState1 = _sliced_to_array(useState(''), 2), queryValue = _useState1[0], setQueryValue = _useState1[1];
650
+ var _useState2 = _sliced_to_array(useState(0), 2), selectedTab = _useState2[0], setSelectedTab = _useState2[1];
651
+ var _useState3 = _sliced_to_array(useState([
652
+ 0,
653
+ 500
654
+ ]), 2), priceRange = _useState3[0], setPriceRange = _useState3[1];
655
+ var _useState4 = _sliced_to_array(useState([]), 2), selectedBrands = _useState4[0], setSelectedBrands = _useState4[1];
656
+ var _useState5 = _sliced_to_array(useState([]), 2), selectedColors = _useState5[0], setSelectedColors = _useState5[1];
657
+ var _useState6 = _sliced_to_array(useState(''), 2), availability = _useState6[0], setAvailability = _useState6[1];
658
+ var _useState7 = _sliced_to_array(useState(''), 2), rating = _useState7[0], setRating = _useState7[1];
659
+ var availableBrands = [
660
+ 'Apple',
661
+ 'Samsung',
662
+ 'Google',
663
+ 'OnePlus',
664
+ 'Xiaomi'
665
+ ];
666
+ var availableColors = [
667
+ 'Black',
668
+ 'White',
669
+ 'Blue',
670
+ 'Red',
671
+ 'Gold'
672
+ ];
673
+ var tabs = [
674
+ {
675
+ id: 'all',
676
+ content: 'All Products',
677
+ accessory: /*#__PURE__*/ _jsx(Text, {
678
+ variant: "bodySm",
679
+ color: "subdued",
680
+ children: "1,234"
681
+ })
682
+ },
683
+ {
684
+ id: 'phones',
685
+ content: 'Phones',
686
+ accessory: /*#__PURE__*/ _jsx(Text, {
687
+ variant: "bodySm",
688
+ color: "subdued",
689
+ children: "456"
690
+ })
691
+ },
692
+ {
693
+ id: 'tablets',
694
+ content: 'Tablets',
695
+ accessory: /*#__PURE__*/ _jsx(Text, {
696
+ variant: "bodySm",
697
+ color: "subdued",
698
+ children: "123"
699
+ })
700
+ },
701
+ {
702
+ id: 'accessories',
703
+ content: 'Accessories',
704
+ accessory: /*#__PURE__*/ _jsx(Text, {
705
+ variant: "bodySm",
706
+ color: "subdued",
707
+ children: "655"
708
+ })
709
+ }
710
+ ];
711
+ var filters = [
712
+ {
713
+ key: 'price',
714
+ label: 'Price Range',
715
+ shortcut: true,
716
+ filter: /*#__PURE__*/ _jsxs(Stack, {
717
+ gap: "md",
718
+ children: [
719
+ /*#__PURE__*/ _jsxs(Text, {
720
+ variant: "bodySm",
721
+ children: [
722
+ "$",
723
+ priceRange[0],
724
+ " - $",
725
+ priceRange[1]
726
+ ]
727
+ }),
728
+ /*#__PURE__*/ _jsx(RangeSlider, {
729
+ label: "Price Range",
730
+ labelHidden: true,
731
+ min: 0,
732
+ max: 500,
733
+ value: priceRange,
734
+ onChange: function(value) {
735
+ setPriceRange(value);
736
+ updateAppliedFilters('price', value, "Price: $".concat(value[0], " - $").concat(value[1]));
737
+ }
738
+ })
739
+ ]
740
+ })
741
+ },
742
+ {
743
+ key: 'brand',
744
+ label: 'Brand',
745
+ shortcut: true,
746
+ filter: /*#__PURE__*/ _jsx(Stack, {
747
+ gap: "sm",
748
+ children: availableBrands.map(function(brand) {
749
+ return /*#__PURE__*/ _jsx(Checkbox, {
750
+ label: brand,
751
+ checked: selectedBrands.includes(brand),
752
+ onChange: function(checked) {
753
+ var newBrands = checked ? _to_consumable_array(selectedBrands).concat([
754
+ brand
755
+ ]) : selectedBrands.filter(function(b) {
756
+ return b !== brand;
757
+ });
758
+ setSelectedBrands(newBrands);
759
+ updateAppliedFilters('brand', newBrands, newBrands.length > 0 ? "Brand: ".concat(newBrands.join(', ')) : null);
760
+ }
761
+ }, brand);
762
+ })
763
+ })
764
+ },
765
+ {
766
+ key: 'color',
767
+ label: 'Color',
768
+ filter: /*#__PURE__*/ _jsx(Stack, {
769
+ gap: "sm",
770
+ children: availableColors.map(function(color) {
771
+ return /*#__PURE__*/ _jsx(Checkbox, {
772
+ label: color,
773
+ checked: selectedColors.includes(color),
774
+ onChange: function(checked) {
775
+ var newColors = checked ? _to_consumable_array(selectedColors).concat([
776
+ color
777
+ ]) : selectedColors.filter(function(c) {
778
+ return c !== color;
779
+ });
780
+ setSelectedColors(newColors);
781
+ updateAppliedFilters('color', newColors, newColors.length > 0 ? "Color: ".concat(newColors.join(', ')) : null);
782
+ }
783
+ }, color);
784
+ })
785
+ })
786
+ },
787
+ {
788
+ key: 'availability',
789
+ label: 'Availability',
790
+ filter: /*#__PURE__*/ _jsx(Select, {
791
+ label: "Availability",
792
+ labelHidden: true,
793
+ options: [
794
+ {
795
+ label: 'All items',
796
+ value: ''
797
+ },
798
+ {
799
+ label: 'In stock',
800
+ value: 'in-stock'
801
+ },
802
+ {
803
+ label: 'Out of stock',
804
+ value: 'out-of-stock'
805
+ },
806
+ {
807
+ label: 'Pre-order',
808
+ value: 'pre-order'
809
+ }
810
+ ],
811
+ value: availability,
812
+ onChange: function(value) {
813
+ setAvailability(value);
814
+ updateAppliedFilters('availability', value, value ? "Availability: ".concat(value) : null);
815
+ }
816
+ })
817
+ },
818
+ {
819
+ key: 'rating',
820
+ label: 'Customer Rating',
821
+ filter: /*#__PURE__*/ _jsx(Select, {
822
+ label: "Rating",
823
+ labelHidden: true,
824
+ options: [
825
+ {
826
+ label: 'All ratings',
827
+ value: ''
828
+ },
829
+ {
830
+ label: '4+ stars',
831
+ value: '4+'
832
+ },
833
+ {
834
+ label: '3+ stars',
835
+ value: '3+'
836
+ },
837
+ {
838
+ label: '2+ stars',
839
+ value: '2+'
840
+ }
841
+ ],
842
+ value: rating,
843
+ onChange: function(value) {
844
+ setRating(value);
845
+ updateAppliedFilters('rating', value, value ? "Rating: ".concat(value, " stars") : null);
846
+ }
847
+ })
848
+ }
849
+ ];
850
+ var updateAppliedFilters = function(key, value, label) {
851
+ setAppliedFilters(function(prev) {
852
+ var filtered = prev.filter(function(f) {
853
+ return f.key !== key;
854
+ });
855
+ if (value && (Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value !== '' && !(Array.isArray(value) && value[0] === 0 && value[1] === 500))) {
856
+ return _to_consumable_array(filtered).concat([
857
+ {
858
+ key: key,
859
+ label: label,
860
+ onRemove: function() {
861
+ if (key === 'price') setPriceRange([
862
+ 0,
863
+ 500
864
+ ]);
865
+ if (key === 'brand') setSelectedBrands([]);
866
+ if (key === 'color') setSelectedColors([]);
867
+ if (key === 'availability') setAvailability('');
868
+ if (key === 'rating') setRating('');
869
+ setAppliedFilters(function(prev) {
870
+ return prev.filter(function(f) {
871
+ return f.key !== key;
872
+ });
873
+ });
874
+ }
875
+ }
876
+ ]);
877
+ }
878
+ return filtered;
879
+ });
880
+ };
881
+ var handleClearAll = function() {
882
+ setPriceRange([
883
+ 0,
884
+ 500
885
+ ]);
886
+ setSelectedBrands([]);
887
+ setSelectedColors([]);
888
+ setAvailability('');
889
+ setRating('');
890
+ setAppliedFilters([]);
891
+ };
892
+ return /*#__PURE__*/ _jsxs(Stack, {
893
+ gap: "md",
894
+ children: [
895
+ /*#__PURE__*/ _jsx(Card, {
896
+ title: "Product Category",
897
+ padded: true,
898
+ children: /*#__PURE__*/ _jsx(Filters.Tabs, {
899
+ tabs: tabs,
900
+ selected: selectedTab,
901
+ onSelect: setSelectedTab
902
+ })
903
+ }),
904
+ /*#__PURE__*/ _jsx(Card, {
905
+ title: "Search & Filters",
906
+ padded: true,
907
+ children: /*#__PURE__*/ _jsx(Filters, {
908
+ filters: filters,
909
+ appliedFilters: appliedFilters,
910
+ onClearAll: handleClearAll,
911
+ showTextField: true,
912
+ queryValue: queryValue,
913
+ onQueryChange: setQueryValue,
914
+ onQueryClear: function() {
915
+ return setQueryValue('');
916
+ },
917
+ queryPlaceholder: "Search products..."
918
+ })
919
+ }),
920
+ /*#__PURE__*/ _jsx(Card, {
921
+ title: "Results Summary",
922
+ padded: true,
923
+ children: /*#__PURE__*/ _jsxs(Stack, {
924
+ gap: "md",
925
+ children: [
926
+ /*#__PURE__*/ _jsxs(Stack, {
927
+ horizontal: true,
928
+ gap: "lg",
929
+ children: [
930
+ /*#__PURE__*/ _jsxs(Stack, {
931
+ gap: "sm",
932
+ children: [
933
+ /*#__PURE__*/ _jsx(Text, {
934
+ variant: "headingSm",
935
+ children: "Category:"
936
+ }),
937
+ /*#__PURE__*/ _jsx(Text, {
938
+ variant: "bodyXs",
939
+ children: (_tabs_selectedTab = tabs[selectedTab]) === null || _tabs_selectedTab === void 0 ? void 0 : _tabs_selectedTab.content
940
+ })
941
+ ]
942
+ }),
943
+ /*#__PURE__*/ _jsxs(Stack, {
944
+ gap: "sm",
945
+ children: [
946
+ /*#__PURE__*/ _jsx(Text, {
947
+ variant: "headingSm",
948
+ children: "Search Query:"
949
+ }),
950
+ /*#__PURE__*/ _jsx(Text, {
951
+ variant: "bodyXs",
952
+ children: queryValue || 'None'
953
+ })
954
+ ]
955
+ })
956
+ ]
957
+ }),
958
+ appliedFilters.length > 0 && /*#__PURE__*/ _jsxs(Stack, {
959
+ gap: "sm",
960
+ children: [
961
+ /*#__PURE__*/ _jsxs(Text, {
962
+ variant: "headingSm",
963
+ children: [
964
+ "Active Filters (",
965
+ appliedFilters.length,
966
+ "):"
967
+ ]
968
+ }),
969
+ /*#__PURE__*/ _jsx(Stack, {
970
+ gap: "xs",
971
+ children: appliedFilters.map(function(filter) {
972
+ return /*#__PURE__*/ _jsxs(Text, {
973
+ variant: "bodyXs",
974
+ children: [
975
+ "• ",
976
+ filter.label
977
+ ]
978
+ }, filter.key);
979
+ })
980
+ })
981
+ ]
982
+ })
983
+ ]
984
+ })
985
+ })
986
+ ]
987
+ });
988
+ },
989
+ parameters: {
990
+ docs: {
991
+ description: {
992
+ story: 'Complex filtering scenario with tabs, search, and multiple filter types for e-commerce.'
993
+ },
994
+ source: {
995
+ transform: transformStorySource
996
+ }
997
+ }
998
+ }
999
+ };
1000
+ export var FilterPills = {
1001
+ render: function() {
1002
+ var _useState = _sliced_to_array(useState({
1003
+ new: false,
1004
+ popular: false,
1005
+ sale: false,
1006
+ featured: false
1007
+ }), 2), pillStates = _useState[0], setPillStates = _useState[1];
1008
+ var togglePill = function(key) {
1009
+ setPillStates(function(prev) {
1010
+ return _object_spread_props(_object_spread({}, prev), _define_property({}, key, !prev[key]));
1011
+ });
1012
+ };
1013
+ return /*#__PURE__*/ _jsx(Card, {
1014
+ title: "Filter Pills Demo",
1015
+ padded: true,
1016
+ children: /*#__PURE__*/ _jsxs(Stack, {
1017
+ gap: "lg",
1018
+ children: [
1019
+ /*#__PURE__*/ _jsxs(Stack, {
1020
+ gap: "md",
1021
+ children: [
1022
+ /*#__PURE__*/ _jsx(Text, {
1023
+ variant: "headingSm",
1024
+ children: "Interactive Pills"
1025
+ }),
1026
+ /*#__PURE__*/ _jsxs(Stack, {
1027
+ horizontal: true,
1028
+ gap: "sm",
1029
+ wrap: true,
1030
+ children: [
1031
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1032
+ label: "New Arrivals",
1033
+ applied: pillStates.new,
1034
+ onClick: function() {
1035
+ return togglePill('new');
1036
+ }
1037
+ }),
1038
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1039
+ label: "Popular",
1040
+ applied: pillStates.popular,
1041
+ onClick: function() {
1042
+ return togglePill('popular');
1043
+ }
1044
+ }),
1045
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1046
+ label: "On Sale",
1047
+ applied: pillStates.sale,
1048
+ onClick: function() {
1049
+ return togglePill('sale');
1050
+ }
1051
+ }),
1052
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1053
+ label: "Featured",
1054
+ applied: pillStates.featured,
1055
+ onClick: function() {
1056
+ return togglePill('featured');
1057
+ }
1058
+ })
1059
+ ]
1060
+ })
1061
+ ]
1062
+ }),
1063
+ /*#__PURE__*/ _jsxs(Stack, {
1064
+ gap: "md",
1065
+ children: [
1066
+ /*#__PURE__*/ _jsx(Text, {
1067
+ variant: "headingSm",
1068
+ children: "Pill States"
1069
+ }),
1070
+ /*#__PURE__*/ _jsxs(Stack, {
1071
+ horizontal: true,
1072
+ gap: "sm",
1073
+ wrap: true,
1074
+ children: [
1075
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1076
+ label: "Available",
1077
+ applied: false
1078
+ }),
1079
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1080
+ label: "Applied",
1081
+ applied: true
1082
+ }),
1083
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1084
+ label: "Disabled",
1085
+ applied: false,
1086
+ disabled: true
1087
+ }),
1088
+ /*#__PURE__*/ _jsx(Filters.Pill, {
1089
+ destructive: true
1090
+ })
1091
+ ]
1092
+ })
1093
+ ]
1094
+ }),
1095
+ /*#__PURE__*/ _jsx(Box, {
1096
+ padding: "4",
1097
+ background: "subdued",
1098
+ borderRadius: "default",
1099
+ children: /*#__PURE__*/ _jsxs(Stack, {
1100
+ gap: "sm",
1101
+ children: [
1102
+ /*#__PURE__*/ _jsx(Text, {
1103
+ variant: "headingSm",
1104
+ children: "Current Selection:"
1105
+ }),
1106
+ /*#__PURE__*/ _jsxs(Stack, {
1107
+ gap: "xs",
1108
+ children: [
1109
+ Object.entries(pillStates).filter(function(param) {
1110
+ var _param = _sliced_to_array(param, 2), _ = _param[0], applied = _param[1];
1111
+ return applied;
1112
+ }).map(function(param) {
1113
+ var _param = _sliced_to_array(param, 2), key = _param[0], _ = _param[1];
1114
+ return /*#__PURE__*/ _jsxs(Text, {
1115
+ variant: "bodyXs",
1116
+ children: [
1117
+ "• ",
1118
+ key.charAt(0).toUpperCase() + key.slice(1)
1119
+ ]
1120
+ }, key);
1121
+ }),
1122
+ Object.values(pillStates).every(function(v) {
1123
+ return !v;
1124
+ }) && /*#__PURE__*/ _jsx(Text, {
1125
+ color: "subdued",
1126
+ variant: "bodyXs",
1127
+ children: "No filters selected"
1128
+ })
1129
+ ]
1130
+ })
1131
+ ]
1132
+ })
1133
+ })
1134
+ ]
1135
+ })
1136
+ });
1137
+ },
1138
+ parameters: {
1139
+ docs: {
1140
+ description: {
1141
+ story: 'Standalone filter pills in various states and configurations.'
1142
+ },
1143
+ source: {
1144
+ transform: transformStorySource
1145
+ }
1146
+ }
1147
+ }
1148
+ };
1149
+ export var ResponsiveBehavior = {
1150
+ render: function() {
1151
+ var _useState = _sliced_to_array(useState([]), 2), appliedFilters = _useState[0], setAppliedFilters = _useState[1];
1152
+ var _useState1 = _sliced_to_array(useState(''), 2), queryValue = _useState1[0], setQueryValue = _useState1[1];
1153
+ var _useState2 = _sliced_to_array(useState(0), 2), selectedTab = _useState2[0], setSelectedTab = _useState2[1];
1154
+ var longTabs = [
1155
+ {
1156
+ id: '1',
1157
+ content: 'All Products & Services'
1158
+ },
1159
+ {
1160
+ id: '2',
1161
+ content: 'Electronics & Gadgets'
1162
+ },
1163
+ {
1164
+ id: '3',
1165
+ content: 'Fashion & Accessories'
1166
+ },
1167
+ {
1168
+ id: '4',
1169
+ content: 'Home & Garden Supplies'
1170
+ },
1171
+ {
1172
+ id: '5',
1173
+ content: 'Sports & Outdoor Equipment'
1174
+ },
1175
+ {
1176
+ id: '6',
1177
+ content: 'Books & Educational Materials'
1178
+ },
1179
+ {
1180
+ id: '7',
1181
+ content: 'Health & Beauty Products'
1182
+ },
1183
+ {
1184
+ id: '8',
1185
+ content: 'Automotive & Transportation'
1186
+ }
1187
+ ];
1188
+ var filters = [
1189
+ {
1190
+ key: 'featured',
1191
+ label: 'Featured',
1192
+ shortcut: true,
1193
+ filter: /*#__PURE__*/ _jsx("div", {
1194
+ children: "Featured filter content"
1195
+ })
1196
+ },
1197
+ {
1198
+ key: 'bestseller',
1199
+ label: 'Best Sellers',
1200
+ shortcut: true,
1201
+ filter: /*#__PURE__*/ _jsx("div", {
1202
+ children: "Best sellers filter content"
1203
+ })
1204
+ },
1205
+ {
1206
+ key: 'price',
1207
+ label: 'Price Range',
1208
+ filter: /*#__PURE__*/ _jsx("div", {
1209
+ children: "Price range filter content"
1210
+ })
1211
+ },
1212
+ {
1213
+ key: 'brand',
1214
+ label: 'Brand',
1215
+ filter: /*#__PURE__*/ _jsx("div", {
1216
+ children: "Brand filter content"
1217
+ })
1218
+ },
1219
+ {
1220
+ key: 'rating',
1221
+ label: 'Customer Rating',
1222
+ filter: /*#__PURE__*/ _jsx("div", {
1223
+ children: "Rating filter content"
1224
+ })
1225
+ },
1226
+ {
1227
+ key: 'shipping',
1228
+ label: 'Shipping Options',
1229
+ filter: /*#__PURE__*/ _jsx("div", {
1230
+ children: "Shipping filter content"
1231
+ })
1232
+ }
1233
+ ];
1234
+ return /*#__PURE__*/ _jsxs(Stack, {
1235
+ gap: "md",
1236
+ children: [
1237
+ /*#__PURE__*/ _jsx(Card, {
1238
+ title: "Responsive Filter Tabs",
1239
+ padded: true,
1240
+ children: /*#__PURE__*/ _jsxs(Stack, {
1241
+ gap: "md",
1242
+ children: [
1243
+ /*#__PURE__*/ _jsx(Text, {
1244
+ variant: "bodyXs",
1245
+ children: "These tabs scroll horizontally on smaller screens with navigation arrows."
1246
+ }),
1247
+ /*#__PURE__*/ _jsx(Filters.Tabs, {
1248
+ tabs: longTabs,
1249
+ selected: selectedTab,
1250
+ onSelect: setSelectedTab
1251
+ })
1252
+ ]
1253
+ })
1254
+ }),
1255
+ /*#__PURE__*/ _jsx(Card, {
1256
+ title: "Responsive Filters Layout",
1257
+ padded: true,
1258
+ children: /*#__PURE__*/ _jsxs(Stack, {
1259
+ gap: "md",
1260
+ children: [
1261
+ /*#__PURE__*/ _jsx(Text, {
1262
+ variant: "bodyXs",
1263
+ children: "Filter pills wrap to new lines on smaller screens, and the search field adapts to available space."
1264
+ }),
1265
+ /*#__PURE__*/ _jsx(Filters, {
1266
+ filters: filters,
1267
+ appliedFilters: appliedFilters,
1268
+ showTextField: true,
1269
+ queryValue: queryValue,
1270
+ onQueryChange: setQueryValue,
1271
+ onQueryClear: function() {
1272
+ return setQueryValue('');
1273
+ },
1274
+ queryPlaceholder: "Search across all categories..."
1275
+ })
1276
+ ]
1277
+ })
1278
+ }),
1279
+ /*#__PURE__*/ _jsx(Card, {
1280
+ title: "Mobile-Optimized Tips",
1281
+ padded: true,
1282
+ children: /*#__PURE__*/ _jsxs(Stack, {
1283
+ gap: "sm",
1284
+ children: [
1285
+ /*#__PURE__*/ _jsx(Text, {
1286
+ variant: "bodyXs",
1287
+ children: "• Tabs become horizontally scrollable with touch/swipe support"
1288
+ }),
1289
+ /*#__PURE__*/ _jsx(Text, {
1290
+ variant: "bodyXs",
1291
+ children: "• Filter pills stack vertically when space is limited"
1292
+ }),
1293
+ /*#__PURE__*/ _jsx(Text, {
1294
+ variant: "bodyXs",
1295
+ children: "• Search field takes full width on mobile"
1296
+ }),
1297
+ /*#__PURE__*/ _jsx(Text, {
1298
+ variant: "bodyXs",
1299
+ children: "• Popover content adapts to screen size and orientation"
1300
+ })
1301
+ ]
1302
+ })
1303
+ })
1304
+ ]
1305
+ });
1306
+ },
1307
+ parameters: {
1308
+ docs: {
1309
+ description: {
1310
+ story: 'Demonstrates responsive behavior of filters across different screen sizes.'
1311
+ },
1312
+ source: {
1313
+ transform: transformStorySource
1314
+ }
1315
+ }
1316
+ }
1317
+ };