@heymantle/litho 0.0.15 → 0.0.16

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 (371) hide show
  1. package/AI_COMPONENTS_GUIDE.md +28 -15
  2. package/AI_INTEGRATION_GUIDE.md +3 -3
  3. package/AI_PATTERNS_GUIDE.md +59 -25
  4. package/COMPONENT_QUICK_REFERENCE.md +3 -3
  5. package/dist/cjs/components/ActionList.js +33 -25
  6. package/dist/cjs/components/AnnouncementBar.js +115 -18
  7. package/dist/cjs/components/AnnouncementCard.js +269 -0
  8. package/dist/cjs/components/AppProvider.js +15 -2
  9. package/dist/cjs/components/Autocomplete.js +58 -36
  10. package/dist/cjs/components/Badge.js +28 -14
  11. package/dist/cjs/components/Banner.js +37 -27
  12. package/dist/cjs/components/Box.js +50 -38
  13. package/dist/cjs/components/Button.js +338 -109
  14. package/dist/cjs/components/ButtonGroup.js +27 -14
  15. package/dist/cjs/components/Card.js +311 -143
  16. package/dist/cjs/components/Checkbox.js +55 -47
  17. package/dist/cjs/components/CheckboxCard.js +222 -0
  18. package/dist/cjs/components/CheckboxCardGroup.js +384 -0
  19. package/dist/cjs/components/ChoiceList.js +21 -11
  20. package/dist/cjs/components/Code.js +22 -8
  21. package/dist/cjs/components/Collapsible.js +24 -11
  22. package/dist/cjs/components/ColorField.js +163 -38
  23. package/dist/cjs/components/ContextualSaveBar.js +13 -6
  24. package/dist/cjs/components/DatePicker.js +48 -37
  25. package/dist/cjs/components/Disclosure.js +35 -22
  26. package/dist/cjs/components/Divider.js +82 -18
  27. package/dist/cjs/components/DropZone.js +111 -37
  28. package/dist/cjs/components/EmptyState.js +18 -6
  29. package/dist/cjs/components/Filters.js +84 -36
  30. package/dist/cjs/components/FooterHelp.js +14 -4
  31. package/dist/cjs/components/Form.js +13 -2
  32. package/dist/cjs/components/Frame.js +57 -22
  33. package/dist/cjs/components/FrameSaveBar.js +37 -6
  34. package/dist/cjs/components/Grid.js +31 -15
  35. package/dist/cjs/components/HorizontalStack.js +38 -25
  36. package/dist/cjs/components/Icon.js +683 -61
  37. package/dist/cjs/components/Image.js +35 -22
  38. package/dist/cjs/components/InlineError.js +19 -10
  39. package/dist/cjs/components/Label.js +21 -12
  40. package/dist/cjs/components/Layout.js +33 -24
  41. package/dist/cjs/components/LayoutSection.js +84 -22
  42. package/dist/cjs/components/Link.js +35 -22
  43. package/dist/cjs/components/List.js +28 -12
  44. package/dist/cjs/components/Listbox.js +53 -31
  45. package/dist/cjs/components/Loading.js +14 -2
  46. package/dist/cjs/components/Modal.js +22 -40
  47. package/dist/cjs/components/Navigation.js +107 -36
  48. package/dist/cjs/components/Page.js +44 -31
  49. package/dist/cjs/components/Pagination.js +20 -5
  50. package/dist/cjs/components/Pane.js +67 -4
  51. package/dist/cjs/components/Popover.js +37 -21
  52. package/dist/cjs/components/PopoverManager.js +14 -1
  53. package/dist/cjs/components/ProgressBar.js +28 -15
  54. package/dist/cjs/components/RadioButton.js +32 -24
  55. package/dist/cjs/components/RadioButtonCard.js +92 -67
  56. package/dist/cjs/components/RadioButtonCardGroup.js +379 -0
  57. package/dist/cjs/components/RangeSlider.js +34 -26
  58. package/dist/cjs/components/ResourceList.js +28 -14
  59. package/dist/cjs/components/Select.js +38 -26
  60. package/dist/cjs/components/SkeletonText.js +33 -18
  61. package/dist/cjs/components/Spinner.js +24 -12
  62. package/dist/cjs/components/Stack.js +131 -71
  63. package/dist/cjs/components/TabNavigation.js +27 -1
  64. package/dist/cjs/components/Table.js +58 -18
  65. package/dist/cjs/components/Tabs.js +52 -23
  66. package/dist/cjs/components/Tag.js +37 -16
  67. package/dist/cjs/components/Text.js +32 -18
  68. package/dist/cjs/components/TextField.js +119 -69
  69. package/dist/cjs/components/Thumbnail.js +25 -11
  70. package/dist/cjs/components/TimePicker.js +22 -1
  71. package/dist/cjs/components/Tip.js +140 -25
  72. package/dist/cjs/components/ToastNotification.js +107 -34
  73. package/dist/cjs/components/ToastProvider.js +13 -3
  74. package/dist/cjs/components/Tooltip.js +50 -41
  75. package/dist/cjs/components/TopBar.js +83 -9
  76. package/dist/cjs/components/VerticalStack.js +31 -16
  77. package/dist/cjs/index.js +24 -0
  78. package/dist/cjs/stories/Autocomplete.stories.js +10 -10
  79. package/dist/cjs/stories/Checkbox.stories.js +6 -8
  80. package/dist/cjs/stories/CheckboxCardGroup.stories.js +459 -0
  81. package/dist/cjs/stories/Collapsible.stories.js +11 -11
  82. package/dist/cjs/stories/ColorField.stories.js +2 -3
  83. package/dist/cjs/stories/ComplexExamples.stories.js +48 -77
  84. package/dist/cjs/stories/ContextualSaveBar.stories.js +1 -1
  85. package/dist/cjs/stories/Divider.stories.js +15 -16
  86. package/dist/cjs/stories/DropZone.stories.js +3 -3
  87. package/dist/cjs/stories/FooterHelp.stories.js +3 -4
  88. package/dist/cjs/stories/Form.stories.js +2 -4
  89. package/dist/cjs/stories/Grid.stories.js +24 -33
  90. package/dist/cjs/stories/Icon.stories.js +22 -23
  91. package/dist/cjs/stories/Image.stories.js +12 -15
  92. package/dist/cjs/stories/InlineError.stories.js +0 -1
  93. package/dist/cjs/stories/Layout.stories.js +96 -2
  94. package/dist/cjs/stories/LayoutSection.stories.js +13 -18
  95. package/dist/cjs/stories/List.stories.js +24 -28
  96. package/dist/cjs/stories/Listbox.stories.js +2 -2
  97. package/dist/cjs/stories/Loading.stories.js +21 -25
  98. package/dist/cjs/stories/Modal.stories.js +0 -1
  99. package/dist/cjs/stories/Pagination.stories.js +4 -4
  100. package/dist/cjs/stories/Pane.stories.js +10 -18
  101. package/dist/cjs/stories/Popover.stories.js +7 -7
  102. package/dist/cjs/stories/PopoverManager.stories.js +9 -9
  103. package/dist/cjs/stories/ProgressBar.stories.js +8 -8
  104. package/dist/cjs/stories/RadioButton.stories.js +2 -2
  105. package/dist/cjs/stories/RadioButtonCard.stories.js +2 -2
  106. package/dist/cjs/stories/RadioButtonCardGroup.stories.js +502 -0
  107. package/dist/cjs/stories/RangeSlider.stories.js +1 -3
  108. package/dist/cjs/stories/ResourceList.stories.js +13 -13
  109. package/dist/cjs/stories/Spinner.stories.js +9 -9
  110. package/dist/cjs/stories/Stack.stories.js +233 -51
  111. package/dist/cjs/stories/Tabs.stories.js +2 -2
  112. package/dist/cjs/stories/Tag.stories.js +1 -1
  113. package/dist/cjs/stories/Thumbnail.stories.js +17 -18
  114. package/dist/cjs/stories/TimePicker.stories.js +0 -5
  115. package/dist/cjs/stories/Tip.stories.js +1 -1
  116. package/dist/esm/components/ActionList.js +33 -25
  117. package/dist/esm/components/AnnouncementBar.js +115 -18
  118. package/dist/esm/components/AnnouncementCard.js +254 -0
  119. package/dist/esm/components/AppProvider.js +15 -2
  120. package/dist/esm/components/Autocomplete.js +58 -36
  121. package/dist/esm/components/Badge.js +28 -14
  122. package/dist/esm/components/Banner.js +37 -27
  123. package/dist/esm/components/Box.js +50 -38
  124. package/dist/esm/components/Button.js +338 -109
  125. package/dist/esm/components/ButtonGroup.js +27 -14
  126. package/dist/esm/components/Card.js +300 -140
  127. package/dist/esm/components/Checkbox.js +55 -47
  128. package/dist/esm/components/CheckboxCard.js +207 -0
  129. package/dist/esm/components/CheckboxCardGroup.js +370 -0
  130. package/dist/esm/components/ChoiceList.js +21 -11
  131. package/dist/esm/components/Code.js +22 -8
  132. package/dist/esm/components/Collapsible.js +24 -11
  133. package/dist/esm/components/ColorField.js +165 -40
  134. package/dist/esm/components/ContextualSaveBar.js +13 -6
  135. package/dist/esm/components/DatePicker.js +48 -37
  136. package/dist/esm/components/Disclosure.js +35 -22
  137. package/dist/esm/components/Divider.js +78 -20
  138. package/dist/esm/components/DropZone.js +111 -37
  139. package/dist/esm/components/EmptyState.js +18 -6
  140. package/dist/esm/components/Filters.js +84 -36
  141. package/dist/esm/components/FooterHelp.js +14 -4
  142. package/dist/esm/components/Form.js +13 -2
  143. package/dist/esm/components/Frame.js +57 -22
  144. package/dist/esm/components/FrameSaveBar.js +37 -6
  145. package/dist/esm/components/Grid.js +31 -15
  146. package/dist/esm/components/HorizontalStack.js +38 -25
  147. package/dist/esm/components/Icon.js +681 -62
  148. package/dist/esm/components/Image.js +35 -22
  149. package/dist/esm/components/InlineError.js +19 -10
  150. package/dist/esm/components/Label.js +21 -12
  151. package/dist/esm/components/Layout.js +58 -25
  152. package/dist/esm/components/LayoutSection.js +84 -22
  153. package/dist/esm/components/Link.js +35 -22
  154. package/dist/esm/components/List.js +28 -12
  155. package/dist/esm/components/Listbox.js +53 -31
  156. package/dist/esm/components/Loading.js +14 -2
  157. package/dist/esm/components/Modal.js +69 -41
  158. package/dist/esm/components/Navigation.js +107 -36
  159. package/dist/esm/components/Page.js +44 -31
  160. package/dist/esm/components/Pagination.js +20 -5
  161. package/dist/esm/components/Pane.js +67 -4
  162. package/dist/esm/components/Popover.js +37 -21
  163. package/dist/esm/components/PopoverManager.js +14 -1
  164. package/dist/esm/components/ProgressBar.js +28 -15
  165. package/dist/esm/components/RadioButton.js +32 -24
  166. package/dist/esm/components/RadioButtonCard.js +92 -67
  167. package/dist/esm/components/RadioButtonCardGroup.js +364 -0
  168. package/dist/esm/components/RangeSlider.js +34 -26
  169. package/dist/esm/components/ResourceList.js +28 -14
  170. package/dist/esm/components/Select.js +38 -26
  171. package/dist/esm/components/SkeletonText.js +33 -18
  172. package/dist/esm/components/Spinner.js +24 -12
  173. package/dist/esm/components/Stack.js +131 -71
  174. package/dist/esm/components/TabNavigation.js +27 -1
  175. package/dist/esm/components/Table.js +58 -18
  176. package/dist/esm/components/Tabs.js +52 -23
  177. package/dist/esm/components/Tag.js +37 -16
  178. package/dist/esm/components/Text.js +32 -18
  179. package/dist/esm/components/TextField.js +119 -69
  180. package/dist/esm/components/Thumbnail.js +25 -11
  181. package/dist/esm/components/TimePicker.js +22 -1
  182. package/dist/esm/components/Tip.js +140 -25
  183. package/dist/esm/components/ToastNotification.js +107 -34
  184. package/dist/esm/components/ToastProvider.js +13 -3
  185. package/dist/esm/components/Tooltip.js +50 -41
  186. package/dist/esm/components/TopBar.js +83 -9
  187. package/dist/esm/components/VerticalStack.js +31 -16
  188. package/dist/esm/index.js +6 -0
  189. package/dist/esm/stories/Autocomplete.stories.js +10 -10
  190. package/dist/esm/stories/Checkbox.stories.js +6 -8
  191. package/dist/esm/stories/CheckboxCardGroup.stories.js +421 -0
  192. package/dist/esm/stories/Collapsible.stories.js +11 -11
  193. package/dist/esm/stories/ColorField.stories.js +2 -3
  194. package/dist/esm/stories/ComplexExamples.stories.js +48 -77
  195. package/dist/esm/stories/ContextualSaveBar.stories.js +1 -1
  196. package/dist/esm/stories/Divider.stories.js +15 -16
  197. package/dist/esm/stories/DropZone.stories.js +3 -3
  198. package/dist/esm/stories/FooterHelp.stories.js +3 -4
  199. package/dist/esm/stories/Form.stories.js +2 -4
  200. package/dist/esm/stories/Grid.stories.js +24 -33
  201. package/dist/esm/stories/Icon.stories.js +22 -23
  202. package/dist/esm/stories/Image.stories.js +12 -15
  203. package/dist/esm/stories/InlineError.stories.js +0 -1
  204. package/dist/esm/stories/Layout.stories.js +93 -2
  205. package/dist/esm/stories/LayoutSection.stories.js +13 -18
  206. package/dist/esm/stories/List.stories.js +24 -28
  207. package/dist/esm/stories/Listbox.stories.js +2 -2
  208. package/dist/esm/stories/Loading.stories.js +21 -25
  209. package/dist/esm/stories/Modal.stories.js +0 -1
  210. package/dist/esm/stories/Pagination.stories.js +4 -4
  211. package/dist/esm/stories/Pane.stories.js +10 -18
  212. package/dist/esm/stories/Popover.stories.js +7 -7
  213. package/dist/esm/stories/PopoverManager.stories.js +9 -9
  214. package/dist/esm/stories/ProgressBar.stories.js +8 -8
  215. package/dist/esm/stories/RadioButton.stories.js +2 -2
  216. package/dist/esm/stories/RadioButtonCard.stories.js +2 -2
  217. package/dist/esm/stories/RadioButtonCardGroup.stories.js +461 -0
  218. package/dist/esm/stories/RangeSlider.stories.js +1 -3
  219. package/dist/esm/stories/ResourceList.stories.js +13 -13
  220. package/dist/esm/stories/Spinner.stories.js +9 -9
  221. package/dist/esm/stories/Stack.stories.js +224 -51
  222. package/dist/esm/stories/Tabs.stories.js +2 -2
  223. package/dist/esm/stories/Tag.stories.js +1 -1
  224. package/dist/esm/stories/Thumbnail.stories.js +17 -18
  225. package/dist/esm/stories/TimePicker.stories.js +0 -5
  226. package/dist/esm/stories/Tip.stories.js +1 -1
  227. package/dist/types/components/ActionList.d.ts +1 -31
  228. package/dist/types/components/ActionList.d.ts.map +1 -1
  229. package/dist/types/components/AnnouncementBar.d.ts +1 -19
  230. package/dist/types/components/AnnouncementBar.d.ts.map +1 -1
  231. package/dist/types/components/AnnouncementCard.d.ts +3 -0
  232. package/dist/types/components/AnnouncementCard.d.ts.map +1 -0
  233. package/dist/types/components/AppProvider.d.ts +14 -1
  234. package/dist/types/components/AppProvider.d.ts.map +1 -1
  235. package/dist/types/components/Autocomplete.d.ts +1 -71
  236. package/dist/types/components/Autocomplete.d.ts.map +1 -1
  237. package/dist/types/components/Badge.d.ts +1 -19
  238. package/dist/types/components/Badge.d.ts.map +1 -1
  239. package/dist/types/components/Banner.d.ts +1 -37
  240. package/dist/types/components/Banner.d.ts.map +1 -1
  241. package/dist/types/components/Box.d.ts +1 -68
  242. package/dist/types/components/Box.d.ts.map +1 -1
  243. package/dist/types/components/Button.d.ts +1 -131
  244. package/dist/types/components/Button.d.ts.map +1 -1
  245. package/dist/types/components/ButtonGroup.d.ts +1 -22
  246. package/dist/types/components/ButtonGroup.d.ts.map +1 -1
  247. package/dist/types/components/Card.d.ts +54 -59
  248. package/dist/types/components/Card.d.ts.map +1 -1
  249. package/dist/types/components/Checkbox.d.ts +1 -63
  250. package/dist/types/components/Checkbox.d.ts.map +1 -1
  251. package/dist/types/components/CheckboxCard.d.ts +3 -0
  252. package/dist/types/components/CheckboxCard.d.ts.map +1 -0
  253. package/dist/types/components/CheckboxCardGroup.d.ts +3 -0
  254. package/dist/types/components/CheckboxCardGroup.d.ts.map +1 -0
  255. package/dist/types/components/ChoiceList.d.ts +1 -42
  256. package/dist/types/components/ChoiceList.d.ts.map +1 -1
  257. package/dist/types/components/Code.d.ts +1 -26
  258. package/dist/types/components/Code.d.ts.map +1 -1
  259. package/dist/types/components/Collapsible.d.ts +1 -15
  260. package/dist/types/components/Collapsible.d.ts.map +1 -1
  261. package/dist/types/components/ColorField.d.ts +13 -34
  262. package/dist/types/components/ColorField.d.ts.map +1 -1
  263. package/dist/types/components/ContextualSaveBar.d.ts +13 -6
  264. package/dist/types/components/ContextualSaveBar.d.ts.map +1 -1
  265. package/dist/types/components/DatePicker.d.ts +1 -64
  266. package/dist/types/components/DatePicker.d.ts.map +1 -1
  267. package/dist/types/components/Disclosure.d.ts +1 -25
  268. package/dist/types/components/Disclosure.d.ts.map +1 -1
  269. package/dist/types/components/Divider.d.ts +1 -19
  270. package/dist/types/components/Divider.d.ts.map +1 -1
  271. package/dist/types/components/DropZone.d.ts +1 -62
  272. package/dist/types/components/DropZone.d.ts.map +1 -1
  273. package/dist/types/components/EmptyState.d.ts +1 -50
  274. package/dist/types/components/EmptyState.d.ts.map +1 -1
  275. package/dist/types/components/Filters.d.ts +13 -68
  276. package/dist/types/components/Filters.d.ts.map +1 -1
  277. package/dist/types/components/FooterHelp.d.ts +14 -4
  278. package/dist/types/components/FooterHelp.d.ts.map +1 -1
  279. package/dist/types/components/Form.d.ts +13 -2
  280. package/dist/types/components/Form.d.ts.map +1 -1
  281. package/dist/types/components/Frame.d.ts +15 -36
  282. package/dist/types/components/Frame.d.ts.map +1 -1
  283. package/dist/types/components/FrameSaveBar.d.ts +3 -6
  284. package/dist/types/components/FrameSaveBar.d.ts.map +1 -1
  285. package/dist/types/components/Grid.d.ts +5 -21
  286. package/dist/types/components/Grid.d.ts.map +1 -1
  287. package/dist/types/components/HorizontalStack.d.ts +1 -34
  288. package/dist/types/components/HorizontalStack.d.ts.map +1 -1
  289. package/dist/types/components/Icon.d.ts +1 -41
  290. package/dist/types/components/Icon.d.ts.map +1 -1
  291. package/dist/types/components/Image.d.ts +1 -43
  292. package/dist/types/components/Image.d.ts.map +1 -1
  293. package/dist/types/components/InlineError.d.ts +1 -20
  294. package/dist/types/components/InlineError.d.ts.map +1 -1
  295. package/dist/types/components/Label.d.ts +1 -26
  296. package/dist/types/components/Label.d.ts.map +1 -1
  297. package/dist/types/components/Layout.d.ts +24 -15
  298. package/dist/types/components/Layout.d.ts.map +1 -1
  299. package/dist/types/components/LayoutSection.d.ts +1 -19
  300. package/dist/types/components/LayoutSection.d.ts.map +1 -1
  301. package/dist/types/components/Link.d.ts +1 -37
  302. package/dist/types/components/Link.d.ts.map +1 -1
  303. package/dist/types/components/List.d.ts +5 -17
  304. package/dist/types/components/List.d.ts.map +1 -1
  305. package/dist/types/components/Listbox.d.ts +1 -32
  306. package/dist/types/components/Listbox.d.ts.map +1 -1
  307. package/dist/types/components/Loading.d.ts +14 -2
  308. package/dist/types/components/Loading.d.ts.map +1 -1
  309. package/dist/types/components/Modal.d.ts +26 -35
  310. package/dist/types/components/Modal.d.ts.map +1 -1
  311. package/dist/types/components/Navigation.d.ts +1 -25
  312. package/dist/types/components/Navigation.d.ts.map +1 -1
  313. package/dist/types/components/Page.d.ts +1 -57
  314. package/dist/types/components/Page.d.ts.map +1 -1
  315. package/dist/types/components/Pagination.d.ts +13 -3
  316. package/dist/types/components/Pagination.d.ts.map +1 -1
  317. package/dist/types/components/Pane.d.ts +55 -3
  318. package/dist/types/components/Pane.d.ts.map +1 -1
  319. package/dist/types/components/Popover.d.ts +5 -37
  320. package/dist/types/components/Popover.d.ts.map +1 -1
  321. package/dist/types/components/PopoverManager.d.ts.map +1 -1
  322. package/dist/types/components/ProgressBar.d.ts +1 -22
  323. package/dist/types/components/ProgressBar.d.ts.map +1 -1
  324. package/dist/types/components/RadioButton.d.ts +1 -37
  325. package/dist/types/components/RadioButton.d.ts.map +1 -1
  326. package/dist/types/components/RadioButtonCard.d.ts +1 -39
  327. package/dist/types/components/RadioButtonCard.d.ts.map +1 -1
  328. package/dist/types/components/RadioButtonCardGroup.d.ts +3 -0
  329. package/dist/types/components/RadioButtonCardGroup.d.ts.map +1 -0
  330. package/dist/types/components/RangeSlider.d.ts +1 -42
  331. package/dist/types/components/RangeSlider.d.ts.map +1 -1
  332. package/dist/types/components/ResourceList.d.ts +5 -30
  333. package/dist/types/components/ResourceList.d.ts.map +1 -1
  334. package/dist/types/components/Select.d.ts +1 -46
  335. package/dist/types/components/Select.d.ts.map +1 -1
  336. package/dist/types/components/SkeletonText.d.ts +1 -26
  337. package/dist/types/components/SkeletonText.d.ts.map +1 -1
  338. package/dist/types/components/Spinner.d.ts +1 -16
  339. package/dist/types/components/Spinner.d.ts.map +1 -1
  340. package/dist/types/components/Stack.d.ts +1 -47
  341. package/dist/types/components/Stack.d.ts.map +1 -1
  342. package/dist/types/components/TabNavigation.d.ts.map +1 -1
  343. package/dist/types/components/Table.d.ts +13 -58
  344. package/dist/types/components/Table.d.ts.map +1 -1
  345. package/dist/types/components/Tabs.d.ts +3 -41
  346. package/dist/types/components/Tabs.d.ts.map +1 -1
  347. package/dist/types/components/Tag.d.ts +1 -24
  348. package/dist/types/components/Tag.d.ts.map +1 -1
  349. package/dist/types/components/Text.d.ts +1 -30
  350. package/dist/types/components/Text.d.ts.map +1 -1
  351. package/dist/types/components/TextField.d.ts +1 -109
  352. package/dist/types/components/TextField.d.ts.map +1 -1
  353. package/dist/types/components/Thumbnail.d.ts +1 -16
  354. package/dist/types/components/Thumbnail.d.ts.map +1 -1
  355. package/dist/types/components/TimePicker.d.ts +28 -1
  356. package/dist/types/components/TimePicker.d.ts.map +1 -1
  357. package/dist/types/components/Tip.d.ts +1 -21
  358. package/dist/types/components/Tip.d.ts.map +1 -1
  359. package/dist/types/components/ToastNotification.d.ts +1 -34
  360. package/dist/types/components/ToastNotification.d.ts.map +1 -1
  361. package/dist/types/components/ToastProvider.d.ts +13 -3
  362. package/dist/types/components/ToastProvider.d.ts.map +1 -1
  363. package/dist/types/components/Tooltip.d.ts +1 -54
  364. package/dist/types/components/Tooltip.d.ts.map +1 -1
  365. package/dist/types/components/TopBar.d.ts +1 -19
  366. package/dist/types/components/TopBar.d.ts.map +1 -1
  367. package/dist/types/components/VerticalStack.d.ts +1 -25
  368. package/dist/types/components/VerticalStack.d.ts.map +1 -1
  369. package/dist/types/index.d.ts +6 -0
  370. package/index.css +76 -14
  371. package/package.json +4 -3
@@ -10,7 +10,29 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _jsxruntime = require("react/jsx-runtime");
12
12
  var _tailwindvariants = require("tailwind-variants");
13
- var styles = (0, _tailwindvariants.tv)({
13
+ /**
14
+ * @component Spinner
15
+ *
16
+ * @description An animated loading indicator for inline use within buttons, cards, or sections during asynchronous operations.
17
+ *
18
+ * @usage
19
+ * - DO: Use inline within buttons, cards, or sections to indicate localized loading.
20
+ * - DON'T: Use as a full-page loading indicator; use `Loading` for page-level progress bars.
21
+ *
22
+ * @accessibility
23
+ * - Renders with `role="status"` and an `aria-label`; always provide a descriptive `accessibilityLabel`.
24
+ * - Avoid relying on the animation alone; the `role="status"` ensures screen readers announce loading state.
25
+ *
26
+ * @alternative
27
+ * - If you need a page-level progress bar, use `Loading` instead.
28
+ * - If you need placeholder content while data loads, use `SkeletonText` instead.
29
+ *
30
+ * @param {Object} props - The props object.
31
+ * @param {('small'|'large')} [props.size='large'] - The size of the spinner, either "small" or "large".
32
+ * @param {('default'|'subdued')} [props.color='default'] - The color variant of the spinner.
33
+ * @param {string} [props.accessibilityLabel='Loading...'] - The accessible label for screen readers, describing the spinner's purpose.
34
+ * @returns {JSX.Element} The rendered Spinner component.
35
+ */ var styles = (0, _tailwindvariants.tv)({
14
36
  base: "Litho-Spinner",
15
37
  variants: {
16
38
  size: {
@@ -29,17 +51,7 @@ var svgStyles = (0, _tailwindvariants.tv)({
29
51
  }
30
52
  }
31
53
  });
32
- /**
33
- * Spinner Component
34
- *
35
- * This component renders a loading spinner with customizable size, color, and accessibility label.
36
- *
37
- * @param {Object} props - The props object.
38
- * @param {('small'|'large')} [props.size='large'] - The size of the spinner, either "small" or "large".
39
- * @param {('default'|'subdued')} [props.color='default'] - The color variant of the spinner.
40
- * @param {string} [props.accessibilityLabel='Loading...'] - The accessible label for screen readers, describing the spinner's purpose.
41
- * @returns {JSX.Element} The rendered Spinner component.
42
- */ function Spinner() {
54
+ function Spinner() {
43
55
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
44
56
  var _props_size = props.size, size = _props_size === void 0 ? "large" : _props_size, _props_color = props.color, color = _props_color === void 0 ? "default" : _props_color, _props_accessibilityLabel = props.accessibilityLabel, accessibilityLabel = _props_accessibilityLabel === void 0 ? "Loading..." : _props_accessibilityLabel;
45
57
  var classes = styles({
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: true
@@ -90,7 +89,62 @@ function _object_without_properties_loose(source, excluded) {
90
89
  }
91
90
  return target;
92
91
  }
93
- var styles = (0, _tailwindvariants.tv)({
92
+ /**
93
+ * @component Stack
94
+ *
95
+ * @description A flex layout component that arranges children in a row or column with configurable gap, alignment, and wrapping.
96
+ *
97
+ * @usage
98
+ * - DO: Arrange child elements with consistent spacing using the `gap` prop.
99
+ * - DON'T: Use for grid-based layouts (use `Grid` instead).
100
+ *
101
+ * @accessibility
102
+ * - Stack is a layout utility; ensure child content maintains logical reading order.
103
+ *
104
+ * @alternative
105
+ * - If you need explicit horizontal layout, use `Stack` with `horizontal` prop.
106
+ * - If you need responsive layout that switches from vertical to horizontal at a breakpoint, use `Stack` with `horizontal="md"` (or `"sm"`, `"lg"`, etc.).
107
+ * - If you need 2D grid layout, use `Grid`.
108
+ *
109
+ * @param {Object} [props={}] - Component props.
110
+ * @param {string} [props.as='div'] - The HTML element to render. Defaults to `div`.
111
+ * @param {React.ReactNode} [props.children] - Child elements to render inside the stack.
112
+ * @param {boolean|'xs'|'sm'|'md'|'lg'|'xl'} [props.horizontal=false] - Direction control. When `true`, always horizontal (flex-row). When a breakpoint string is passed (e.g. `"md"`), the stack is vertical below that breakpoint and horizontal at/above it. Defaults to `false` (vertical).
113
+ * @param {('none'|'xs'|'sm'|'md'|'lg'|'0'|'px'|'0.5'|'1'|'1.5'|'2'|'3'|'4'|'5'|'6'|'8'|'10')} [props.gap='md'] - Spacing between children. Semantic options: 'none' (0), 'xs' (1), 'sm' (2), 'md' (4), 'lg' (8). Numeric options: '0', 'px', '0.5', '1', '2', '3', '4', '5', '6', '8', '10'. Defaults to 'md'.
114
+ * @param {string} [props.id] - Optional ID for the component.
115
+ * @param {string} [props.className] - Additional custom class names to apply to the component.
116
+ * @param {('start'|'center'|'end'|'stretch'|'baseline')} [props.align='stretch'] - Cross-axis alignment (maps to CSS `align-items`). Controls vertical alignment for horizontal stacks and horizontal alignment for vertical stacks.
117
+ * @param {boolean} [props.wrap=false] - Whether children should wrap to the next line if necessary. Defaults to false.
118
+ * @param {('start'|'center'|'end'|'between'|'evenly'|'around')} [props.justify='start'] - Main axis justification. Controls horizontal justification for horizontal stacks and vertical justification for vertical stacks.
119
+ * @param {boolean} [props.fill=false] - When true and horizontal is active, direct children fill equal space (flex: 1 1 0%). Set to false to let children size naturally. Defaults to false.
120
+ * @param {('1'|'2'|'3'|'4'|'5'|'6'|null)} [props.flex=null] - Flex grow value. Sets `flex-1` through `flex-6` on the stack. Defaults to null (no flex).
121
+ * @param {boolean} [props.fullWidth=false] - When true, applies width: 100% (w-full). Defaults to false.
122
+ * @param {Object} [restProps] - Additional props passed to the root element.
123
+ *
124
+ * @returns {JSX.Element} The rendered Stack component.
125
+ *
126
+ * @example
127
+ * // Vertical stack (default)
128
+ * <Stack gap="sm" align="center">
129
+ * <div>Item 1</div>
130
+ * <div>Item 2</div>
131
+ * </Stack>
132
+ *
133
+ * @example
134
+ * // Horizontal stack
135
+ * <Stack horizontal>
136
+ * <div>Item 1</div>
137
+ * <div>Item 2</div>
138
+ * </Stack>
139
+ *
140
+ * @example
141
+ * // Responsive: vertical on mobile, horizontal at md breakpoint
142
+ * <Stack horizontal="md">
143
+ * <div>Column 1</div>
144
+ * <div>Column 2</div>
145
+ * <div>Column 3</div>
146
+ * </Stack>
147
+ */ var styles = (0, _tailwindvariants.tv)({
94
148
  base: "Litho-Stack flex",
95
149
  variants: {
96
150
  direction: {
@@ -109,6 +163,7 @@ var styles = (0, _tailwindvariants.tv)({
109
163
  "px": "gap-px",
110
164
  "0.5": "gap-0.5",
111
165
  "1": "gap-1",
166
+ "1.5": "gap-1.5",
112
167
  "2": "gap-2",
113
168
  "3": "gap-3",
114
169
  "4": "gap-4",
@@ -117,75 +172,66 @@ var styles = (0, _tailwindvariants.tv)({
117
172
  "8": "gap-8",
118
173
  "10": "gap-10"
119
174
  },
120
- align: {
121
- start: "justify-start",
122
- center: "justify-center",
123
- end: "justify-end",
124
- "space-between": "justify-between",
125
- "space-evenly": "justify-evenly",
126
- "space-around": "justify-around",
127
- spaceBetween: "justify-between"
175
+ flex: {
176
+ "1": "flex-1",
177
+ "2": "flex-2",
178
+ "3": "flex-3",
179
+ "4": "flex-4",
180
+ "5": "flex-5",
181
+ "6": "flex-6"
128
182
  },
129
- blockAlign: {
183
+ align: {
130
184
  start: "items-start",
131
185
  center: "items-center",
132
186
  end: "items-end",
133
- stretch: "items-stretch"
187
+ stretch: "items-stretch",
188
+ baseline: "items-baseline"
134
189
  },
135
- inlineAlign: {
136
- start: "items-start",
137
- center: "items-center",
138
- end: "items-end",
139
- stretch: "items-stretch"
190
+ justify: {
191
+ start: "justify-start",
192
+ center: "justify-center",
193
+ end: "justify-end",
194
+ between: "justify-between",
195
+ evenly: "justify-evenly",
196
+ stretch: "justify-stretch",
197
+ around: "justify-around"
140
198
  },
141
199
  wrap: {
142
200
  true: "flex-wrap",
143
201
  false: "flex-nowrap"
202
+ },
203
+ fullWidth: {
204
+ true: "w-full",
205
+ false: ""
144
206
  }
145
207
  },
146
208
  defaultVariants: {
147
209
  direction: "vertical",
148
210
  gap: "md",
149
- align: "start"
211
+ align: "stretch",
212
+ justify: "start",
213
+ fullWidth: false
150
214
  }
151
215
  });
152
- /**
153
- * Stack Component
154
- *
155
- * A flexible stack component for creating vertical or horizontal layouts with customizable spacing and alignment.
156
- * By default, creates a vertical stack with medium gap spacing.
157
- *
158
- * @param {Object} [props={}] - Component props.
159
- * @param {string} [props.as='div'] - The HTML element to render. Defaults to `div`.
160
- * @param {React.ReactNode} [props.children] - Child elements to render inside the stack.
161
- * @param {boolean} [props.horizontal=false] - If true, renders a horizontal stack (flex-row). Defaults to vertical (flex-col).
162
- * @param {('none'|'xs'|'sm'|'md'|'lg'|'0'|'px'|'0.5'|'1'|'2'|'3'|'4'|'5'|'6'|'8'|'10')} [props.gap='md'] - Spacing between children. Semantic options: 'none' (0), 'xs' (1), 'sm' (2), 'md' (4), 'lg' (8). Numeric options: '0', 'px', '0.5', '1', '2', '3', '4', '5', '6', '8', '10'. Defaults to 'md'.
163
- * @param {string} [props.id] - Optional ID for the component.
164
- * @param {string} [props.className] - Additional custom class names to apply to the component.
165
- * @param {('start'|'center'|'end'|'space-between'|'space-evenly'|'space-around'|'spaceBetween')} [props.align='start'] - Main axis alignment. Controls horizontal alignment for horizontal stacks and vertical alignment for vertical stacks.
166
- * @param {('start'|'center'|'end'|'stretch')} [props.blockAlign] - Cross-axis alignment for horizontal stacks (vertical alignment). Only applicable when horizontal=true.
167
- * @param {('start'|'center'|'end'|'stretch')} [props.inlineAlign] - Cross-axis alignment for vertical stacks (horizontal alignment). Only applicable when horizontal=false.
168
- * @param {boolean} [props.wrap=false] - Whether children should wrap to the next line if necessary. Defaults to false.
169
- * @param {Object} [restProps] - Additional props passed to the root element.
170
- *
171
- * @returns {JSX.Element} The rendered Stack component.
172
- *
173
- * @example
174
- * // Vertical stack (default)
175
- * <Stack gap="sm" inlineAlign="center">
176
- * <div>Item 1</div>
177
- * <div>Item 2</div>
178
- * </Stack>
179
- *
180
- * @example
181
- * // Horizontal stack
182
- * <Stack horizontal gap="md" blockAlign="center" wrap={true}>
183
- * <div>Item 1</div>
184
- * <div>Item 2</div>
185
- * </Stack>
186
- */ function Stack() {
216
+ // Static maps for Tailwind JIT scanability — do not construct dynamically
217
+ var responsiveDirectionClasses = {
218
+ xs: "flex-col xs:flex-row",
219
+ sm: "flex-col sm:flex-row",
220
+ md: "flex-col md:flex-row",
221
+ lg: "flex-col lg:flex-row",
222
+ xl: "flex-col xl:flex-row"
223
+ };
224
+ var fillModifierClasses = {
225
+ true: "Litho-Stack--fill",
226
+ xs: "Litho-Stack--fill-xs",
227
+ sm: "Litho-Stack--fill-sm",
228
+ md: "Litho-Stack--fill-md",
229
+ lg: "Litho-Stack--fill-lg",
230
+ xl: "Litho-Stack--fill-xl"
231
+ };
232
+ function Stack() {
187
233
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
188
- var _props_as = props.as, as = _props_as === void 0 ? "div" : _props_as, children = props.children, _props_horizontal = props.horizontal, horizontal = _props_horizontal === void 0 ? false : _props_horizontal, _props_gap = props.gap, gap = _props_gap === void 0 ? "md" : _props_gap, id = props.id, className = props.className, align = props.align, blockAlign = props.blockAlign, inlineAlign = props.inlineAlign, _props_wrap = props.wrap, wrap = _props_wrap === void 0 ? false : _props_wrap, restProps = _object_without_properties(props, [
234
+ var _props_as = props.as, as = _props_as === void 0 ? "div" : _props_as, children = props.children, _props_horizontal = props.horizontal, horizontal = _props_horizontal === void 0 ? false : _props_horizontal, _props_gap = props.gap, gap = _props_gap === void 0 ? "md" : _props_gap, id = props.id, className = props.className, align = props.align, justify = props.justify, _props_wrap = props.wrap, wrap = _props_wrap === void 0 ? false : _props_wrap, _props_flex = props.flex, flex = _props_flex === void 0 ? null : _props_flex, _props_fill = props.fill, fill = _props_fill === void 0 ? false : _props_fill, _props_fullWidth = props.fullWidth, fullWidth = _props_fullWidth === void 0 ? false : _props_fullWidth, restProps = _object_without_properties(props, [
189
235
  "as",
190
236
  "children",
191
237
  "horizontal",
@@ -193,29 +239,43 @@ var styles = (0, _tailwindvariants.tv)({
193
239
  "id",
194
240
  "className",
195
241
  "align",
196
- "blockAlign",
197
- "inlineAlign",
198
- "wrap"
242
+ "justify",
243
+ "wrap",
244
+ "flex",
245
+ "fill",
246
+ "fullWidth"
199
247
  ]);
200
- var direction = horizontal ? "horizontal" : "vertical";
201
- // For horizontal stacks, use blockAlign for cross-axis
202
- // For vertical stacks, use inlineAlign for cross-axis
203
- var crossAxisAlign = horizontal ? blockAlign : inlineAlign;
204
- var classes = styles(_object_spread_props(_object_spread({
248
+ var isResponsive = typeof horizontal === "string";
249
+ var isHorizontal = horizontal === true;
250
+ var effectivelyHorizontal = isHorizontal || isResponsive;
251
+ // For boolean horizontal, use tv direction variant
252
+ // For responsive, tv gets "vertical" (flex-col) and responsive classes override at breakpoint
253
+ var direction = isHorizontal ? "horizontal" : "vertical";
254
+ // Horizontal stacks default to center (items-center), vertical to stretch (items-stretch)
255
+ var effectiveAlign = align !== undefined ? align : effectivelyHorizontal ? "center" : "stretch";
256
+ var classes = styles({
205
257
  direction: direction,
206
258
  gap: gap,
207
- align: align
208
- }, horizontal && blockAlign ? {
209
- blockAlign: blockAlign
210
- } : {}, !horizontal && inlineAlign ? {
211
- inlineAlign: inlineAlign
212
- } : {}), {
213
- wrap: wrap
214
- }));
259
+ align: effectiveAlign,
260
+ justify: justify,
261
+ wrap: wrap,
262
+ flex: flex,
263
+ fullWidth: fullWidth
264
+ });
265
+ // Responsive direction classes (e.g. "flex-col md:flex-row")
266
+ var responsiveClasses = isResponsive ? responsiveDirectionClasses[horizontal] : "";
267
+ // Fill modifier class for CSS child targeting
268
+ var fillClass = fill && effectivelyHorizontal ? fillModifierClasses[horizontal] || fillModifierClasses["true"] : "";
215
269
  var Element = as;
270
+ var allClasses = [
271
+ classes,
272
+ responsiveClasses,
273
+ fillClass,
274
+ className
275
+ ].filter(Boolean).join(" ");
216
276
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(Element, _object_spread_props(_object_spread({
217
277
  id: id,
218
- className: "".concat(classes).concat(className ? " ".concat(className) : "")
278
+ className: allClasses
219
279
  }, restProps), {
220
280
  children: children
221
281
  }));
@@ -68,7 +68,33 @@ function _unsupported_iterable_to_array(o, minLen) {
68
68
  if (n === "Map" || n === "Set") return Array.from(n);
69
69
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
70
70
  }
71
- var AVG_CHAR_WIDTH = 5.5;
71
+ /**
72
+ * @component TabNavigation
73
+ *
74
+ * @description A URL-based tab navigation component that renders tabs as links, supporting closeable tabs and route-driven active states.
75
+ *
76
+ * @usage
77
+ * - DO: Use for navigation tabs that change the URL/route.
78
+ * - DON'T: Use for in-page content switching without URL changes (use Tabs).
79
+ *
80
+ * @accessibility
81
+ * - Renders as navigation links; ensure each tab link has descriptive text.
82
+ *
83
+ * @alternative
84
+ * - If you need in-page content tabs without URL routing, use `Tabs`. If you need a sidebar nav, use `Navigation`.
85
+ *
86
+ * @param {Object} props - Component properties.
87
+ * @param {Array<Object>} [props.tabs=[]] - Array of tab objects to display.
88
+ * @param {string} props.tabs[].id - Unique identifier for the tab.
89
+ * @param {string} props.tabs[].title - Display title for the tab.
90
+ * @param {boolean} [props.tabs[].loading] - Whether the tab is in a loading state.
91
+ * @param {Object} [props.tabs[].readStatus] - Read status indicator for the tab.
92
+ * @param {string} [props.activeTabId] - The ID of the currently active tab.
93
+ * @param {Function} [props.onTabClick] - Callback fired when a tab is clicked, receives the tab ID.
94
+ * @param {Function} [props.onTabClose] - Callback fired when a tab's close button is clicked, receives the tab ID.
95
+ * @param {string} [props.className=""] - Additional CSS class names for the container.
96
+ * @returns {JSX.Element} The rendered TabNavigation component.
97
+ */ var AVG_CHAR_WIDTH = 5.5;
72
98
  var tabStyles = (0, _tailwindvariants.tv)({
73
99
  base: "relative group cursor-pointer rounded-t-sm items-center px-2 pt-2 gap-0.5 overflow-hidden min-w-[60px] max-w-[160px] pointer-coarse:pb-1 pointer-coarse:pt-3 transition-colors",
74
100
  variants: {
@@ -218,19 +218,21 @@ function _unsupported_iterable_to_array(o, minLen) {
218
218
  if (n === "Map" || n === "Set") return Array.from(n);
219
219
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
220
220
  }
221
- var TableContext = /*#__PURE__*/ (0, _react.createContext)({});
222
- var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
223
221
  /**
224
- * @typedef {Object} TableHeading
225
- * @property {string|React.ReactNode} title - The title content of the heading.
226
- * @property {boolean} [sortable=false] - Whether the column is sortable.
227
- * @property {"start" | "end" | "left" | "right" | "center"} [alignment="start"] - Alignment of the heading content.
228
- * @property {boolean} [hidden=false] - Whether the heading is hidden.
229
- * @property {string|React.ReactNode} [tooltip] - Tooltip content for the heading.
230
- * @property {string|React.ReactNode} [tooltipContent] - Alternative tooltip content for the heading.
231
- * @property {Function} [onAction] - Callback function when the heading is clicked.
232
- */ /**
233
- * Table component for displaying data in a customizable, sortable, and scrollable format.
222
+ * @component Table
223
+ *
224
+ * @description A data table component with sortable columns, selectable rows, sticky headers, and pagination support.
225
+ *
226
+ * @usage
227
+ * - DO: Display structured tabular data with columns, sorting, and optional row selection.
228
+ * - DON'T: Use for layout purposes (use Grid).
229
+ *
230
+ * @accessibility
231
+ * - Renders a semantic `<table>` with proper `<thead>` and `<tbody>`; ensure column headers describe data clearly.
232
+ *
233
+ * @alternative
234
+ * - If you need a simple list without columns, use `ResourceList`.
235
+ * - If you need a layout grid, use `Grid`.
234
236
  *
235
237
  * @param {Object} props - Component props.
236
238
  * @param {Array<TableHeading|string|React.ReactNode>} [props.headings=[]] - Column headings. Can be strings, React nodes, or configuration objects.
@@ -257,6 +259,17 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
257
259
  * @param {Function} [props.onSelectionChange] - Callback for handling selection changes.
258
260
  * @param {boolean} [props.loading=false] - Whether the table is loading.
259
261
  * @returns {React.ReactElement} The rendered Table component.
262
+ */ var TableContext = /*#__PURE__*/ (0, _react.createContext)({});
263
+ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
264
+ /**
265
+ * @typedef {Object} TableHeading
266
+ * @property {string|React.ReactNode} title - The title content of the heading.
267
+ * @property {boolean} [sortable=false] - Whether the column is sortable.
268
+ * @property {"start" | "end" | "left" | "right" | "center"} [alignment="start"] - Alignment of the heading content.
269
+ * @property {boolean} [hidden=false] - Whether the heading is hidden.
270
+ * @property {string|React.ReactNode} [tooltip] - Tooltip content for the heading.
271
+ * @property {string|React.ReactNode} [tooltipContent] - Alternative tooltip content for the heading.
272
+ * @property {Function} [onAction] - Callback function when the heading is clicked.
260
273
  */ function Table() {
261
274
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
262
275
  var tmp = props.headings, _headings = tmp === void 0 ? [] : tmp, _props_headingStyle = props.headingStyle, headingStyle = _props_headingStyle === void 0 ? "default" : _props_headingStyle, _props_stickyHeader = props.stickyHeader, stickyHeader = _props_stickyHeader === void 0 ? true : _props_stickyHeader, _props_rows = props.rows, rows = _props_rows === void 0 ? [] : _props_rows, tmp1 = props.footers, _footers = tmp1 === void 0 ? [] : tmp1, _props_verticalAlign = props.verticalAlign, verticalAlign = _props_verticalAlign === void 0 ? "middle" : _props_verticalAlign, tmp2 = props.fixedFirstColumns, _fixedFirstColumns = tmp2 === void 0 ? 0 : tmp2, _props_fixedLastColumns = props.fixedLastColumns, fixedLastColumns = _props_fixedLastColumns === void 0 ? 0 : _props_fixedLastColumns, initialSortColumnIndex = props.initialSortColumnIndex, _props_defaultSortDirection = props.defaultSortDirection, defaultSortDirection = _props_defaultSortDirection === void 0 ? "ascending" : _props_defaultSortDirection, onSort = props.onSort, _props_increasedTableDensity = props.increasedTableDensity, increasedTableDensity = _props_increasedTableDensity === void 0 ? false : _props_increasedTableDensity, firstColumnMinWidth = props.firstColumnMinWidth, _props_bordered = props.bordered, bordered = _props_bordered === void 0 ? false : _props_bordered, _props_topBorder = props.topBorder, topBorder = _props_topBorder === void 0 ? true : _props_topBorder, _props_bulkActions = props.bulkActions, bulkActions = _props_bulkActions === void 0 ? [] : _props_bulkActions, _props_promotedBulkActions = props.promotedBulkActions, promotedBulkActions = _props_promotedBulkActions === void 0 ? [] : _props_promotedBulkActions, emptyState = props.emptyState, _children = props.children, paginatedSelectAllActionText = props.paginatedSelectAllActionText, _props_resourceName = props.resourceName, resourceName = _props_resourceName === void 0 ? {
@@ -517,13 +530,23 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
517
530
  if (isSortable) handleSort(sortIndex);
518
531
  else if (heading.onAction) heading.onAction();
519
532
  };
520
- var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
533
+ var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", _object_spread_props(_object_spread({
521
534
  className: _Table.styles.headingLabelStyles({
522
535
  alignment: alignment,
523
536
  sortable: !!isSortable,
524
537
  interactive: !!isInteractive
525
538
  }),
526
- onClick: isInteractive ? handleClick : undefined,
539
+ onClick: isInteractive ? handleClick : undefined
540
+ }, isInteractive ? {
541
+ role: "button",
542
+ tabIndex: 0,
543
+ onKeyDown: function(e) {
544
+ if (e.key === "Enter" || e.key === " ") {
545
+ e.preventDefault();
546
+ handleClick();
547
+ }
548
+ }
549
+ } : {}), {
527
550
  children: [
528
551
  [
529
552
  "right",
@@ -538,7 +561,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
538
561
  "center"
539
562
  ].includes(alignment) && sortContent
540
563
  ]
541
- });
564
+ }));
542
565
  var hasTooltip = (heading.tooltip || heading.tooltipContent) && !isCovered;
543
566
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(HeadingCell, {
544
567
  className: _Table.styles.headingStyles({
@@ -733,6 +756,14 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
733
756
  return handleSelectionChange(isAllSelected ? _useIndexResourceState.SelectionType.Page : _useIndexResourceState.SelectionType.All, true);
734
757
  },
735
758
  className: "rounded-md block text-sm font-medium cursor-pointer px-2 py-1 hover",
759
+ role: "button",
760
+ tabIndex: 0,
761
+ onKeyDown: function(e) {
762
+ if (e.key === "Enter" || e.key === " ") {
763
+ e.preventDefault();
764
+ handleSelectionChange(isAllSelected ? _useIndexResourceState.SelectionType.Page : _useIndexResourceState.SelectionType.All, true);
765
+ }
766
+ },
736
767
  children: isAllSelected ? "Undo" : paginatedSelectAllActionText || "Select all"
737
768
  })
738
769
  ]
@@ -1021,7 +1052,14 @@ Table.displayName = "Table";
1021
1052
  Table.Row = Row;
1022
1053
  Table.Row.displayName = "Table.Row";
1023
1054
  /**
1024
- * Represents a cell within a table row.
1055
+ * @component Table.Cell
1056
+ *
1057
+ * @usage
1058
+ * - DO: Use for custom cell content within table rows.
1059
+ *
1060
+ * @accessibility
1061
+ * - Renders as `<td>`.
1062
+ *
1025
1063
  * @param {Object} props - Cell properties.
1026
1064
  * @param {string} [props.alignment="start"] - Text alignment.
1027
1065
  * @param {boolean} [props.selectionCell=false] - Whether this is a selection cell.
@@ -1079,8 +1117,10 @@ Table.Row.displayName = "Table.Row";
1079
1117
  Table.Cell = Cell;
1080
1118
  Table.Cell.displayName = "Table.Cell";
1081
1119
  /**
1082
- * Footer component for the Table.
1083
- * Displays pagination controls and optionally the total result count.
1120
+ * @component Table.Footer
1121
+ *
1122
+ * @usage
1123
+ * - DO: Use for summary or pagination content below the table.
1084
1124
  *
1085
1125
  * @param {Object} props - The component props.
1086
1126
  * @param {boolean} props.hasNextPage - Whether there is a next page.
@@ -162,30 +162,27 @@ function _unsupported_iterable_to_array(o, minLen) {
162
162
  if (n === "Map" || n === "Set") return Array.from(n);
163
163
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
164
164
  }
165
- var styles = (0, _tailwindvariants.tv)({
166
- base: "Litho-Tabs flex overflow-x-hidden whitespace-nowrap",
167
- variants: {
168
- borderBottom: {
169
- true: "border-b",
170
- false: ""
171
- },
172
- padded: {
173
- true: "p-2",
174
- false: ""
175
- }
176
- }
177
- });
178
- var containerStyles = (0, _tailwindvariants.tv)({
179
- base: "Litho-Tabs__TabContainer flex flex-1 overflow-x-hidden whitespace-nowrap space-x-1"
180
- });
181
165
  /**
182
- * Tabs component that displays a set of tab items with selectable states.
166
+ * @component Tabs
167
+ *
168
+ * @description An in-page tab switcher that renders a horizontal tab bar for toggling between content panels without URL changes.
169
+ *
170
+ * @usage
171
+ * - DO: Switch between related content views within the same page.
172
+ * - DON'T: Use for URL-based routing (use TabNavigation).
173
+ *
174
+ * @accessibility
175
+ * - Implements tablist/tab/tabpanel ARIA roles; supports keyboard arrow navigation between tabs.
176
+ *
177
+ * @alternative
178
+ * - If you need URL-based tab navigation, use `TabNavigation`. If you need collapsible sections, use `Collapsible`.
183
179
  *
184
180
  * @param {Object} props - Component props.
185
181
  * @param {Object[]} props.tabs - List of tabs to display.
186
182
  * @param {string} props.tabs[].id - Unique identifier for the tab.
187
183
  * @param {string} props.tabs[].content - Content or label to display for the tab.
188
184
  * @param {string} [props.tabs[].icon] - Optional icon to display for the tab.
185
+ * @param {boolean} [props.tabs[].showIconOnMobile=true] - When false, the tab icon is hidden on mobile and only shown at md (≥800px) breakpoint.
189
186
  * @param {boolean} [props.tabs[].disclosure=false] - Whether the tab is part of a "More" disclosure group.
190
187
  * @param {number} props.selected - Index of the currently selected tab.
191
188
  * @param {Function} props.onSelect - Callback fired when a tab is selected, receives the tab's index.
@@ -199,7 +196,23 @@ var containerStyles = (0, _tailwindvariants.tv)({
199
196
  * @param {number} [props.badgeCount] - The number of badges to display for the tab.
200
197
  * @param {string} [props.badgeStatus="default"] - The status of the badge.
201
198
  * @returns {JSX.Element} The Tabs component.
202
- */ function Tabs() {
199
+ */ var styles = (0, _tailwindvariants.tv)({
200
+ base: "Litho-Tabs flex overflow-x-hidden whitespace-nowrap",
201
+ variants: {
202
+ borderBottom: {
203
+ true: "border-b",
204
+ false: ""
205
+ },
206
+ padded: {
207
+ true: "p-2",
208
+ false: ""
209
+ }
210
+ }
211
+ });
212
+ var containerStyles = (0, _tailwindvariants.tv)({
213
+ base: "Litho-Tabs__TabContainer flex flex-1 overflow-x-hidden whitespace-nowrap space-x-1"
214
+ });
215
+ function Tabs() {
203
216
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
204
217
  var tmp = props.tabs, _tabs = tmp === void 0 ? [] : tmp, _selectedIndex = props.selected, onSelect = props.onSelect, fullWidth = props.fullWidth, _props_disclosureText = props.disclosureText, disclosureText = _props_disclosureText === void 0 ? "More" : _props_disclosureText, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_activeDisclosure = props.activeDisclosure, activeDisclosure = _props_activeDisclosure === void 0 ? false : _props_activeDisclosure, _props_padded = props.padded, padded = _props_padded === void 0 ? true : _props_padded, _props_borderBottom = props.borderBottom, borderBottom = _props_borderBottom === void 0 ? true : _props_borderBottom, _props_simpleTabs = props.simpleTabs, simpleTabs = _props_simpleTabs === void 0 ? false : _props_simpleTabs;
205
218
  var selectedIndex = parseInt(_selectedIndex);
@@ -308,6 +321,7 @@ var containerStyles = (0, _tailwindvariants.tv)({
308
321
  },
309
322
  disclosure: disclosure && tab.disclosure,
310
323
  icon: tab.icon,
324
+ showIconOnMobile: tab.showIconOnMobile,
311
325
  fullWidth: fullWidth,
312
326
  hidden: tab.hidden,
313
327
  simple: simpleTabs,
@@ -414,6 +428,7 @@ var tabStyles = (0, _tailwindvariants.tv)({
414
428
  * @param {boolean} [props.selected] - Whether this tab is currently selected.
415
429
  * @param {number} [props.index] - The index position of this tab in the tabs array.
416
430
  * @param {string|React.ReactNode} [props.icon] - Icon to display. Can be a Polaris icon name string or a custom React node.
431
+ * @param {boolean} [props.showIconOnMobile=true] - When false, the tab icon is hidden on mobile and only shown at md (≥800px) breakpoint.
417
432
  * @param {Function} [props.onSelect] - Callback fired when the tab is selected, receives the tab's index.
418
433
  * @param {Function} [props.onClick] - Custom click handler that overrides the default onSelect behavior.
419
434
  * @param {React.ReactNode} [props.children] - The content/label to display inside the tab.
@@ -428,7 +443,7 @@ var tabStyles = (0, _tailwindvariants.tv)({
428
443
  * @returns {JSX.Element} The Tab component.
429
444
  */ function Tab() {
430
445
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
431
- var id = props.id, active = props.active, selected = props.selected, index = props.index, icon = props.icon, onSelect = props.onSelect, onClick = props.onClick, children = props.children, fullWidth = props.fullWidth, hidden = props.hidden, simple = props.simple, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_alwaysShowDisclosureIcon = props.alwaysShowDisclosureIcon, alwaysShowDisclosureIcon = _props_alwaysShowDisclosureIcon === void 0 ? false : _props_alwaysShowDisclosureIcon, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, _props_badgeStatus = props.badgeStatus, badgeStatus = _props_badgeStatus === void 0 ? "default" : _props_badgeStatus, badgeCount = props.badgeCount;
446
+ var id = props.id, active = props.active, selected = props.selected, index = props.index, icon = props.icon, _props_showIconOnMobile = props.showIconOnMobile, showIconOnMobile = _props_showIconOnMobile === void 0 ? true : _props_showIconOnMobile, onSelect = props.onSelect, onClick = props.onClick, children = props.children, fullWidth = props.fullWidth, hidden = props.hidden, simple = props.simple, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_alwaysShowDisclosureIcon = props.alwaysShowDisclosureIcon, alwaysShowDisclosureIcon = _props_alwaysShowDisclosureIcon === void 0 ? false : _props_alwaysShowDisclosureIcon, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, _props_badgeStatus = props.badgeStatus, badgeStatus = _props_badgeStatus === void 0 ? "default" : _props_badgeStatus, badgeCount = props.badgeCount;
432
447
  var polarisIcon = typeof icon === "string" ? _polarisicons[icon] : _polarisicons[icon === null || icon === void 0 ? void 0 : icon.displayName];
433
448
  var showDisclosure = disclosure && (selected || alwaysShowDisclosureIcon);
434
449
  var tabClasses = tabStyles({
@@ -445,18 +460,32 @@ var tabStyles = (0, _tailwindvariants.tv)({
445
460
  onClick: onClick ? onClick : onSelect ? function() {
446
461
  return onSelect(index);
447
462
  } : undefined,
463
+ role: "tab",
464
+ tabIndex: disabled ? -1 : 0,
465
+ "aria-selected": selected,
466
+ onKeyDown: function(e) {
467
+ if (e.key === "Enter" || e.key === " ") {
468
+ e.preventDefault();
469
+ if (onClick) onClick();
470
+ else if (onSelect) onSelect(index);
471
+ }
472
+ },
448
473
  children: [
449
474
  icon && !!polarisIcon && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
450
- className: "Litho-Tabs__Tab-Icon mr-1",
475
+ className: "Litho-Tabs__Tab-Icon mr-1 ".concat(showIconOnMobile ? "" : "hidden @md:inline-flex"),
451
476
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
452
477
  source: polarisIcon,
453
478
  color: selected && simple ? "default" : selected ? "primary" : "subdued",
454
479
  size: simple ? "lg" : undefined
455
480
  })
456
481
  }),
457
- icon && !!polarisIcon === false && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
458
- className: "Litho-Tabs__Tab-Icon ".concat(simple ? "mr-0" : "mr-1"),
459
- children: icon
482
+ icon && !polarisIcon && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
483
+ className: "Litho-Tabs__Tab-Icon ".concat(simple ? "mr-0" : "mr-1", " ").concat(showIconOnMobile ? "" : "hidden @md:inline-flex"),
484
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
485
+ source: icon,
486
+ color: selected && simple ? "default" : selected ? "primary" : "subdued",
487
+ size: simple ? "lg" : undefined
488
+ })
460
489
  }),
461
490
  /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
462
491
  className: "Litho-Tabs__Tab-Content block min-h-5 leading-5",