@heymantle/litho 0.0.14 → 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 (381) 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/README.md +52 -0
  6. package/dist/cjs/components/ActionList.js +33 -25
  7. package/dist/cjs/components/AnnouncementBar.js +115 -18
  8. package/dist/cjs/components/AnnouncementCard.js +269 -0
  9. package/dist/cjs/components/AppProvider.js +15 -2
  10. package/dist/cjs/components/Autocomplete.js +58 -36
  11. package/dist/cjs/components/Badge.js +28 -14
  12. package/dist/cjs/components/Banner.js +37 -27
  13. package/dist/cjs/components/Box.js +50 -38
  14. package/dist/cjs/components/Button.js +338 -109
  15. package/dist/cjs/components/ButtonGroup.js +27 -14
  16. package/dist/cjs/components/Card.js +311 -143
  17. package/dist/cjs/components/Checkbox.js +55 -47
  18. package/dist/cjs/components/CheckboxCard.js +222 -0
  19. package/dist/cjs/components/CheckboxCardGroup.js +384 -0
  20. package/dist/cjs/components/ChoiceList.js +21 -11
  21. package/dist/cjs/components/Code.js +22 -8
  22. package/dist/cjs/components/Collapsible.js +24 -11
  23. package/dist/cjs/components/ColorField.js +163 -38
  24. package/dist/cjs/components/ContextualSaveBar.js +13 -6
  25. package/dist/cjs/components/DatePicker.js +48 -37
  26. package/dist/cjs/components/Disclosure.js +57 -13
  27. package/dist/cjs/components/Divider.js +82 -18
  28. package/dist/cjs/components/DropZone.js +194 -68
  29. package/dist/cjs/components/EmptyState.js +18 -6
  30. package/dist/cjs/components/Filters.js +84 -36
  31. package/dist/cjs/components/FooterHelp.js +14 -4
  32. package/dist/cjs/components/Form.js +13 -2
  33. package/dist/cjs/components/Frame.js +57 -22
  34. package/dist/cjs/components/FrameSaveBar.js +37 -6
  35. package/dist/cjs/components/Grid.js +31 -15
  36. package/dist/cjs/components/HorizontalStack.js +38 -25
  37. package/dist/cjs/components/Icon.js +683 -61
  38. package/dist/cjs/components/Image.js +35 -22
  39. package/dist/cjs/components/InlineError.js +19 -10
  40. package/dist/cjs/components/Label.js +21 -12
  41. package/dist/cjs/components/Layout.js +37 -26
  42. package/dist/cjs/components/LayoutSection.js +84 -22
  43. package/dist/cjs/components/Link.js +35 -22
  44. package/dist/cjs/components/List.js +28 -12
  45. package/dist/cjs/components/Listbox.js +53 -31
  46. package/dist/cjs/components/Loading.js +14 -2
  47. package/dist/cjs/components/Modal.js +32 -39
  48. package/dist/cjs/components/Navigation.js +107 -36
  49. package/dist/cjs/components/Page.js +44 -31
  50. package/dist/cjs/components/Pagination.js +20 -5
  51. package/dist/cjs/components/Pane.js +67 -4
  52. package/dist/cjs/components/Popover.js +63 -30
  53. package/dist/cjs/components/PopoverManager.js +14 -1
  54. package/dist/cjs/components/ProgressBar.js +28 -15
  55. package/dist/cjs/components/RadioButton.js +32 -24
  56. package/dist/cjs/components/RadioButtonCard.js +92 -67
  57. package/dist/cjs/components/RadioButtonCardGroup.js +379 -0
  58. package/dist/cjs/components/RangeSlider.js +34 -26
  59. package/dist/cjs/components/ResourceList.js +28 -14
  60. package/dist/cjs/components/Select.js +38 -26
  61. package/dist/cjs/components/SkeletonText.js +33 -18
  62. package/dist/cjs/components/Spinner.js +24 -12
  63. package/dist/cjs/components/Stack.js +131 -71
  64. package/dist/cjs/components/TabNavigation.js +27 -1
  65. package/dist/cjs/components/Table.js +85 -29
  66. package/dist/cjs/components/Tabs.js +84 -24
  67. package/dist/cjs/components/Tag.js +37 -16
  68. package/dist/cjs/components/Text.js +32 -18
  69. package/dist/cjs/components/TextField.js +119 -69
  70. package/dist/cjs/components/Thumbnail.js +25 -11
  71. package/dist/cjs/components/TimePicker.js +22 -1
  72. package/dist/cjs/components/Tip.js +140 -25
  73. package/dist/cjs/components/ToastNotification.js +107 -34
  74. package/dist/cjs/components/ToastProvider.js +13 -3
  75. package/dist/cjs/components/Tooltip.js +50 -41
  76. package/dist/cjs/components/TopBar.js +83 -9
  77. package/dist/cjs/components/VerticalStack.js +31 -16
  78. package/dist/cjs/index.js +24 -0
  79. package/dist/cjs/playwright.config.js +114 -0
  80. package/dist/cjs/stories/Autocomplete.stories.js +10 -10
  81. package/dist/cjs/stories/Checkbox.stories.js +6 -8
  82. package/dist/cjs/stories/CheckboxCardGroup.stories.js +459 -0
  83. package/dist/cjs/stories/Collapsible.stories.js +11 -11
  84. package/dist/cjs/stories/ColorField.stories.js +2 -3
  85. package/dist/cjs/stories/ComplexExamples.stories.js +48 -77
  86. package/dist/cjs/stories/ContextualSaveBar.stories.js +1 -1
  87. package/dist/cjs/stories/Divider.stories.js +15 -16
  88. package/dist/cjs/stories/DropZone.stories.js +3 -3
  89. package/dist/cjs/stories/FooterHelp.stories.js +3 -4
  90. package/dist/cjs/stories/Form.stories.js +2 -4
  91. package/dist/cjs/stories/Grid.stories.js +24 -33
  92. package/dist/cjs/stories/Icon.stories.js +22 -23
  93. package/dist/cjs/stories/Image.stories.js +12 -15
  94. package/dist/cjs/stories/InlineError.stories.js +0 -1
  95. package/dist/cjs/stories/Layout.stories.js +96 -2
  96. package/dist/cjs/stories/LayoutSection.stories.js +13 -18
  97. package/dist/cjs/stories/List.stories.js +24 -28
  98. package/dist/cjs/stories/Listbox.stories.js +2 -2
  99. package/dist/cjs/stories/Loading.stories.js +21 -25
  100. package/dist/cjs/stories/Modal.stories.js +0 -1
  101. package/dist/cjs/stories/Pagination.stories.js +4 -4
  102. package/dist/cjs/stories/Pane.stories.js +10 -18
  103. package/dist/cjs/stories/Popover.stories.js +7 -7
  104. package/dist/cjs/stories/PopoverManager.stories.js +9 -9
  105. package/dist/cjs/stories/ProgressBar.stories.js +8 -8
  106. package/dist/cjs/stories/RadioButton.stories.js +2 -2
  107. package/dist/cjs/stories/RadioButtonCard.stories.js +2 -2
  108. package/dist/cjs/stories/RadioButtonCardGroup.stories.js +502 -0
  109. package/dist/cjs/stories/RangeSlider.stories.js +1 -3
  110. package/dist/cjs/stories/ResourceList.stories.js +13 -13
  111. package/dist/cjs/stories/Spinner.stories.js +9 -9
  112. package/dist/cjs/stories/Stack.stories.js +233 -51
  113. package/dist/cjs/stories/Tabs.stories.js +2 -2
  114. package/dist/cjs/stories/Tag.stories.js +1 -1
  115. package/dist/cjs/stories/Thumbnail.stories.js +17 -18
  116. package/dist/cjs/stories/TimePicker.stories.js +0 -5
  117. package/dist/cjs/stories/Tip.stories.js +1 -1
  118. package/dist/cjs/styles/Table.js +2 -7
  119. package/dist/cjs/tests/visual/stories.spec.js +637 -0
  120. package/dist/cjs/utilities/dates.js +7 -7
  121. package/dist/esm/components/ActionList.js +33 -25
  122. package/dist/esm/components/AnnouncementBar.js +115 -18
  123. package/dist/esm/components/AnnouncementCard.js +254 -0
  124. package/dist/esm/components/AppProvider.js +15 -2
  125. package/dist/esm/components/Autocomplete.js +58 -36
  126. package/dist/esm/components/Badge.js +28 -14
  127. package/dist/esm/components/Banner.js +37 -27
  128. package/dist/esm/components/Box.js +50 -38
  129. package/dist/esm/components/Button.js +338 -109
  130. package/dist/esm/components/ButtonGroup.js +27 -14
  131. package/dist/esm/components/Card.js +300 -140
  132. package/dist/esm/components/Checkbox.js +55 -47
  133. package/dist/esm/components/CheckboxCard.js +207 -0
  134. package/dist/esm/components/CheckboxCardGroup.js +370 -0
  135. package/dist/esm/components/ChoiceList.js +21 -11
  136. package/dist/esm/components/Code.js +22 -8
  137. package/dist/esm/components/Collapsible.js +24 -11
  138. package/dist/esm/components/ColorField.js +165 -40
  139. package/dist/esm/components/ContextualSaveBar.js +13 -6
  140. package/dist/esm/components/DatePicker.js +48 -37
  141. package/dist/esm/components/Disclosure.js +50 -6
  142. package/dist/esm/components/Divider.js +78 -20
  143. package/dist/esm/components/DropZone.js +194 -68
  144. package/dist/esm/components/EmptyState.js +18 -6
  145. package/dist/esm/components/Filters.js +84 -36
  146. package/dist/esm/components/FooterHelp.js +14 -4
  147. package/dist/esm/components/Form.js +13 -2
  148. package/dist/esm/components/Frame.js +57 -22
  149. package/dist/esm/components/FrameSaveBar.js +37 -6
  150. package/dist/esm/components/Grid.js +31 -15
  151. package/dist/esm/components/HorizontalStack.js +38 -25
  152. package/dist/esm/components/Icon.js +681 -62
  153. package/dist/esm/components/Image.js +35 -22
  154. package/dist/esm/components/InlineError.js +19 -10
  155. package/dist/esm/components/Label.js +21 -12
  156. package/dist/esm/components/Layout.js +62 -27
  157. package/dist/esm/components/LayoutSection.js +84 -22
  158. package/dist/esm/components/Link.js +35 -22
  159. package/dist/esm/components/List.js +28 -12
  160. package/dist/esm/components/Listbox.js +53 -31
  161. package/dist/esm/components/Loading.js +14 -2
  162. package/dist/esm/components/Modal.js +79 -40
  163. package/dist/esm/components/Navigation.js +107 -36
  164. package/dist/esm/components/Page.js +44 -31
  165. package/dist/esm/components/Pagination.js +20 -5
  166. package/dist/esm/components/Pane.js +67 -4
  167. package/dist/esm/components/Popover.js +63 -30
  168. package/dist/esm/components/PopoverManager.js +14 -1
  169. package/dist/esm/components/ProgressBar.js +28 -15
  170. package/dist/esm/components/RadioButton.js +32 -24
  171. package/dist/esm/components/RadioButtonCard.js +92 -67
  172. package/dist/esm/components/RadioButtonCardGroup.js +364 -0
  173. package/dist/esm/components/RangeSlider.js +34 -26
  174. package/dist/esm/components/ResourceList.js +28 -14
  175. package/dist/esm/components/Select.js +38 -26
  176. package/dist/esm/components/SkeletonText.js +33 -18
  177. package/dist/esm/components/Spinner.js +24 -12
  178. package/dist/esm/components/Stack.js +131 -71
  179. package/dist/esm/components/TabNavigation.js +27 -1
  180. package/dist/esm/components/Table.js +85 -29
  181. package/dist/esm/components/Tabs.js +84 -24
  182. package/dist/esm/components/Tag.js +37 -16
  183. package/dist/esm/components/Text.js +32 -18
  184. package/dist/esm/components/TextField.js +119 -69
  185. package/dist/esm/components/Thumbnail.js +25 -11
  186. package/dist/esm/components/TimePicker.js +22 -1
  187. package/dist/esm/components/Tip.js +140 -25
  188. package/dist/esm/components/ToastNotification.js +107 -34
  189. package/dist/esm/components/ToastProvider.js +13 -3
  190. package/dist/esm/components/Tooltip.js +50 -41
  191. package/dist/esm/components/TopBar.js +83 -9
  192. package/dist/esm/components/VerticalStack.js +31 -16
  193. package/dist/esm/index.js +6 -0
  194. package/dist/esm/playwright.config.js +104 -0
  195. package/dist/esm/stories/Autocomplete.stories.js +10 -10
  196. package/dist/esm/stories/Checkbox.stories.js +6 -8
  197. package/dist/esm/stories/CheckboxCardGroup.stories.js +421 -0
  198. package/dist/esm/stories/Collapsible.stories.js +11 -11
  199. package/dist/esm/stories/ColorField.stories.js +2 -3
  200. package/dist/esm/stories/ComplexExamples.stories.js +48 -77
  201. package/dist/esm/stories/ContextualSaveBar.stories.js +1 -1
  202. package/dist/esm/stories/Divider.stories.js +15 -16
  203. package/dist/esm/stories/DropZone.stories.js +3 -3
  204. package/dist/esm/stories/FooterHelp.stories.js +3 -4
  205. package/dist/esm/stories/Form.stories.js +2 -4
  206. package/dist/esm/stories/Grid.stories.js +24 -33
  207. package/dist/esm/stories/Icon.stories.js +22 -23
  208. package/dist/esm/stories/Image.stories.js +12 -15
  209. package/dist/esm/stories/InlineError.stories.js +0 -1
  210. package/dist/esm/stories/Layout.stories.js +93 -2
  211. package/dist/esm/stories/LayoutSection.stories.js +13 -18
  212. package/dist/esm/stories/List.stories.js +24 -28
  213. package/dist/esm/stories/Listbox.stories.js +2 -2
  214. package/dist/esm/stories/Loading.stories.js +21 -25
  215. package/dist/esm/stories/Modal.stories.js +0 -1
  216. package/dist/esm/stories/Pagination.stories.js +4 -4
  217. package/dist/esm/stories/Pane.stories.js +10 -18
  218. package/dist/esm/stories/Popover.stories.js +7 -7
  219. package/dist/esm/stories/PopoverManager.stories.js +9 -9
  220. package/dist/esm/stories/ProgressBar.stories.js +8 -8
  221. package/dist/esm/stories/RadioButton.stories.js +2 -2
  222. package/dist/esm/stories/RadioButtonCard.stories.js +2 -2
  223. package/dist/esm/stories/RadioButtonCardGroup.stories.js +461 -0
  224. package/dist/esm/stories/RangeSlider.stories.js +1 -3
  225. package/dist/esm/stories/ResourceList.stories.js +13 -13
  226. package/dist/esm/stories/Spinner.stories.js +9 -9
  227. package/dist/esm/stories/Stack.stories.js +224 -51
  228. package/dist/esm/stories/Tabs.stories.js +2 -2
  229. package/dist/esm/stories/Tag.stories.js +1 -1
  230. package/dist/esm/stories/Thumbnail.stories.js +17 -18
  231. package/dist/esm/stories/TimePicker.stories.js +0 -5
  232. package/dist/esm/stories/Tip.stories.js +1 -1
  233. package/dist/esm/styles/Table.js +2 -7
  234. package/dist/esm/tests/visual/stories.spec.js +633 -0
  235. package/dist/esm/utilities/dates.js +7 -7
  236. package/dist/types/components/ActionList.d.ts +1 -31
  237. package/dist/types/components/ActionList.d.ts.map +1 -1
  238. package/dist/types/components/AnnouncementBar.d.ts +1 -19
  239. package/dist/types/components/AnnouncementBar.d.ts.map +1 -1
  240. package/dist/types/components/AnnouncementCard.d.ts +3 -0
  241. package/dist/types/components/AnnouncementCard.d.ts.map +1 -0
  242. package/dist/types/components/AppProvider.d.ts +14 -1
  243. package/dist/types/components/AppProvider.d.ts.map +1 -1
  244. package/dist/types/components/Autocomplete.d.ts +1 -71
  245. package/dist/types/components/Autocomplete.d.ts.map +1 -1
  246. package/dist/types/components/Badge.d.ts +1 -19
  247. package/dist/types/components/Badge.d.ts.map +1 -1
  248. package/dist/types/components/Banner.d.ts +1 -37
  249. package/dist/types/components/Banner.d.ts.map +1 -1
  250. package/dist/types/components/Box.d.ts +1 -68
  251. package/dist/types/components/Box.d.ts.map +1 -1
  252. package/dist/types/components/Button.d.ts +1 -131
  253. package/dist/types/components/Button.d.ts.map +1 -1
  254. package/dist/types/components/ButtonGroup.d.ts +1 -22
  255. package/dist/types/components/ButtonGroup.d.ts.map +1 -1
  256. package/dist/types/components/Card.d.ts +54 -59
  257. package/dist/types/components/Card.d.ts.map +1 -1
  258. package/dist/types/components/Checkbox.d.ts +1 -63
  259. package/dist/types/components/Checkbox.d.ts.map +1 -1
  260. package/dist/types/components/CheckboxCard.d.ts +3 -0
  261. package/dist/types/components/CheckboxCard.d.ts.map +1 -0
  262. package/dist/types/components/CheckboxCardGroup.d.ts +3 -0
  263. package/dist/types/components/CheckboxCardGroup.d.ts.map +1 -0
  264. package/dist/types/components/ChoiceList.d.ts +1 -42
  265. package/dist/types/components/ChoiceList.d.ts.map +1 -1
  266. package/dist/types/components/Code.d.ts +1 -26
  267. package/dist/types/components/Code.d.ts.map +1 -1
  268. package/dist/types/components/Collapsible.d.ts +1 -15
  269. package/dist/types/components/Collapsible.d.ts.map +1 -1
  270. package/dist/types/components/ColorField.d.ts +13 -34
  271. package/dist/types/components/ColorField.d.ts.map +1 -1
  272. package/dist/types/components/ContextualSaveBar.d.ts +13 -6
  273. package/dist/types/components/ContextualSaveBar.d.ts.map +1 -1
  274. package/dist/types/components/DatePicker.d.ts +1 -64
  275. package/dist/types/components/DatePicker.d.ts.map +1 -1
  276. package/dist/types/components/Disclosure.d.ts +1 -25
  277. package/dist/types/components/Disclosure.d.ts.map +1 -1
  278. package/dist/types/components/Divider.d.ts +1 -19
  279. package/dist/types/components/Divider.d.ts.map +1 -1
  280. package/dist/types/components/DropZone.d.ts +3 -62
  281. package/dist/types/components/DropZone.d.ts.map +1 -1
  282. package/dist/types/components/EmptyState.d.ts +1 -50
  283. package/dist/types/components/EmptyState.d.ts.map +1 -1
  284. package/dist/types/components/Filters.d.ts +13 -68
  285. package/dist/types/components/Filters.d.ts.map +1 -1
  286. package/dist/types/components/FooterHelp.d.ts +14 -4
  287. package/dist/types/components/FooterHelp.d.ts.map +1 -1
  288. package/dist/types/components/Form.d.ts +13 -2
  289. package/dist/types/components/Form.d.ts.map +1 -1
  290. package/dist/types/components/Frame.d.ts +15 -36
  291. package/dist/types/components/Frame.d.ts.map +1 -1
  292. package/dist/types/components/FrameSaveBar.d.ts +3 -6
  293. package/dist/types/components/FrameSaveBar.d.ts.map +1 -1
  294. package/dist/types/components/Grid.d.ts +5 -21
  295. package/dist/types/components/Grid.d.ts.map +1 -1
  296. package/dist/types/components/HorizontalStack.d.ts +1 -34
  297. package/dist/types/components/HorizontalStack.d.ts.map +1 -1
  298. package/dist/types/components/Icon.d.ts +1 -41
  299. package/dist/types/components/Icon.d.ts.map +1 -1
  300. package/dist/types/components/Image.d.ts +1 -43
  301. package/dist/types/components/Image.d.ts.map +1 -1
  302. package/dist/types/components/InlineError.d.ts +1 -20
  303. package/dist/types/components/InlineError.d.ts.map +1 -1
  304. package/dist/types/components/Label.d.ts +1 -26
  305. package/dist/types/components/Label.d.ts.map +1 -1
  306. package/dist/types/components/Layout.d.ts +24 -15
  307. package/dist/types/components/Layout.d.ts.map +1 -1
  308. package/dist/types/components/LayoutSection.d.ts +1 -19
  309. package/dist/types/components/LayoutSection.d.ts.map +1 -1
  310. package/dist/types/components/Link.d.ts +1 -37
  311. package/dist/types/components/Link.d.ts.map +1 -1
  312. package/dist/types/components/List.d.ts +5 -17
  313. package/dist/types/components/List.d.ts.map +1 -1
  314. package/dist/types/components/Listbox.d.ts +1 -32
  315. package/dist/types/components/Listbox.d.ts.map +1 -1
  316. package/dist/types/components/Loading.d.ts +14 -2
  317. package/dist/types/components/Loading.d.ts.map +1 -1
  318. package/dist/types/components/Modal.d.ts +26 -35
  319. package/dist/types/components/Modal.d.ts.map +1 -1
  320. package/dist/types/components/Navigation.d.ts +1 -25
  321. package/dist/types/components/Navigation.d.ts.map +1 -1
  322. package/dist/types/components/Page.d.ts +1 -57
  323. package/dist/types/components/Page.d.ts.map +1 -1
  324. package/dist/types/components/Pagination.d.ts +13 -3
  325. package/dist/types/components/Pagination.d.ts.map +1 -1
  326. package/dist/types/components/Pane.d.ts +55 -3
  327. package/dist/types/components/Pane.d.ts.map +1 -1
  328. package/dist/types/components/Popover.d.ts +5 -35
  329. package/dist/types/components/Popover.d.ts.map +1 -1
  330. package/dist/types/components/PopoverManager.d.ts.map +1 -1
  331. package/dist/types/components/ProgressBar.d.ts +1 -22
  332. package/dist/types/components/ProgressBar.d.ts.map +1 -1
  333. package/dist/types/components/RadioButton.d.ts +1 -37
  334. package/dist/types/components/RadioButton.d.ts.map +1 -1
  335. package/dist/types/components/RadioButtonCard.d.ts +1 -39
  336. package/dist/types/components/RadioButtonCard.d.ts.map +1 -1
  337. package/dist/types/components/RadioButtonCardGroup.d.ts +3 -0
  338. package/dist/types/components/RadioButtonCardGroup.d.ts.map +1 -0
  339. package/dist/types/components/RangeSlider.d.ts +1 -42
  340. package/dist/types/components/RangeSlider.d.ts.map +1 -1
  341. package/dist/types/components/ResourceList.d.ts +5 -30
  342. package/dist/types/components/ResourceList.d.ts.map +1 -1
  343. package/dist/types/components/Select.d.ts +1 -46
  344. package/dist/types/components/Select.d.ts.map +1 -1
  345. package/dist/types/components/SkeletonText.d.ts +1 -26
  346. package/dist/types/components/SkeletonText.d.ts.map +1 -1
  347. package/dist/types/components/Spinner.d.ts +1 -16
  348. package/dist/types/components/Spinner.d.ts.map +1 -1
  349. package/dist/types/components/Stack.d.ts +1 -47
  350. package/dist/types/components/Stack.d.ts.map +1 -1
  351. package/dist/types/components/TabNavigation.d.ts.map +1 -1
  352. package/dist/types/components/Table.d.ts +13 -58
  353. package/dist/types/components/Table.d.ts.map +1 -1
  354. package/dist/types/components/Tabs.d.ts +40 -34
  355. package/dist/types/components/Tabs.d.ts.map +1 -1
  356. package/dist/types/components/Tag.d.ts +1 -24
  357. package/dist/types/components/Tag.d.ts.map +1 -1
  358. package/dist/types/components/Text.d.ts +1 -30
  359. package/dist/types/components/Text.d.ts.map +1 -1
  360. package/dist/types/components/TextField.d.ts +1 -109
  361. package/dist/types/components/TextField.d.ts.map +1 -1
  362. package/dist/types/components/Thumbnail.d.ts +1 -16
  363. package/dist/types/components/Thumbnail.d.ts.map +1 -1
  364. package/dist/types/components/TimePicker.d.ts +28 -1
  365. package/dist/types/components/TimePicker.d.ts.map +1 -1
  366. package/dist/types/components/Tip.d.ts +1 -21
  367. package/dist/types/components/Tip.d.ts.map +1 -1
  368. package/dist/types/components/ToastNotification.d.ts +1 -34
  369. package/dist/types/components/ToastNotification.d.ts.map +1 -1
  370. package/dist/types/components/ToastProvider.d.ts +13 -3
  371. package/dist/types/components/ToastProvider.d.ts.map +1 -1
  372. package/dist/types/components/Tooltip.d.ts +1 -54
  373. package/dist/types/components/Tooltip.d.ts.map +1 -1
  374. package/dist/types/components/TopBar.d.ts +1 -19
  375. package/dist/types/components/TopBar.d.ts.map +1 -1
  376. package/dist/types/components/VerticalStack.d.ts +1 -25
  377. package/dist/types/components/VerticalStack.d.ts.map +1 -1
  378. package/dist/types/index.d.ts +6 -0
  379. package/dist/types/styles/Table.d.ts.map +1 -1
  380. package/index.css +76 -14
  381. package/package.json +15 -5
@@ -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: {
@@ -28,6 +28,7 @@ var _Text = /*#__PURE__*/ _interop_require_default(require("./Text"));
28
28
  var _Tooltip = /*#__PURE__*/ _interop_require_default(require("./Tooltip"));
29
29
  var _Table = require("../styles/Table");
30
30
  var _useIndexResourceState = require("../utilities/useIndexResourceState");
31
+ var _useMobile = require("../utilities/useMobile");
31
32
  var _useMounted = require("../utilities/useMounted");
32
33
  var _useTableScrollState = /*#__PURE__*/ _interop_require_default(require("../utilities/useTableScrollState"));
33
34
  function _array_like_to_array(arr, len) {
@@ -217,19 +218,21 @@ function _unsupported_iterable_to_array(o, minLen) {
217
218
  if (n === "Map" || n === "Set") return Array.from(n);
218
219
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
219
220
  }
220
- var TableContext = /*#__PURE__*/ (0, _react.createContext)({});
221
- var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
222
221
  /**
223
- * @typedef {Object} TableHeading
224
- * @property {string|React.ReactNode} title - The title content of the heading.
225
- * @property {boolean} [sortable=false] - Whether the column is sortable.
226
- * @property {"start" | "end" | "left" | "right" | "center"} [alignment="start"] - Alignment of the heading content.
227
- * @property {boolean} [hidden=false] - Whether the heading is hidden.
228
- * @property {string|React.ReactNode} [tooltip] - Tooltip content for the heading.
229
- * @property {string|React.ReactNode} [tooltipContent] - Alternative tooltip content for the heading.
230
- * @property {Function} [onAction] - Callback function when the heading is clicked.
231
- */ /**
232
- * 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`.
233
236
  *
234
237
  * @param {Object} props - Component props.
235
238
  * @param {Array<TableHeading|string|React.ReactNode>} [props.headings=[]] - Column headings. Can be strings, React nodes, or configuration objects.
@@ -256,6 +259,17 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
256
259
  * @param {Function} [props.onSelectionChange] - Callback for handling selection changes.
257
260
  * @param {boolean} [props.loading=false] - Whether the table is loading.
258
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.
259
273
  */ function Table() {
260
274
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
261
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 ? {
@@ -502,6 +516,8 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
502
516
  var alignment = cellAlignment[indexAdjusted];
503
517
  var isSortable = sortable && sortable.length > 0 && sortable[indexAdjusted];
504
518
  var sortIndex = selectable ? indexAdjusted - 1 : indexAdjusted;
519
+ // Check if this cell is covered by a fixed overlay
520
+ var isCovered = !fixed && !reverseColumns && (fixedFirstColumns > 0 && indexAdjusted < fixedFirstColumns || fixedLastColumns > 0 && indexAdjusted >= headings.length - fixedLastColumns);
505
521
  var sortContent = isSortable ? /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
506
522
  className: "min-h-5 ".concat(sort.index === sortIndex ? "opacity-100" : "opacity-0 group-hover:opacity-100"),
507
523
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
@@ -514,13 +530,23 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
514
530
  if (isSortable) handleSort(sortIndex);
515
531
  else if (heading.onAction) heading.onAction();
516
532
  };
517
- var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
533
+ var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", _object_spread_props(_object_spread({
518
534
  className: _Table.styles.headingLabelStyles({
519
535
  alignment: alignment,
520
536
  sortable: !!isSortable,
521
537
  interactive: !!isInteractive
522
538
  }),
523
- 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
+ } : {}), {
524
550
  children: [
525
551
  [
526
552
  "right",
@@ -535,7 +561,8 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
535
561
  "center"
536
562
  ].includes(alignment) && sortContent
537
563
  ]
538
- });
564
+ }));
565
+ var hasTooltip = (heading.tooltip || heading.tooltipContent) && !isCovered;
539
566
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(HeadingCell, {
540
567
  className: _Table.styles.headingStyles({
541
568
  hidden: hideCell,
@@ -553,7 +580,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
553
580
  className: _Table.styles.headingLabelContainerStyles({
554
581
  alignment: alignment
555
582
  }),
556
- children: heading.hidden ? null : heading.tooltip || heading.tooltipContent ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Tooltip.default, {
583
+ children: heading.hidden ? null : hasTooltip ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Tooltip.default, {
557
584
  content: heading.tooltip || heading.tooltipContent,
558
585
  preferredPosition: "above",
559
586
  children: labelContent
@@ -669,12 +696,16 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
669
696
  value: {
670
697
  columnsToRender: columnsToRender,
671
698
  reverseColumns: reverseColumns,
672
- hideCellsOnMobile: hideCellsOnMobile
699
+ hideCellsOnMobile: hideCellsOnMobile,
700
+ isFixedOverlay: fixed,
701
+ fixedFirstColumns: fixedFirstColumns,
702
+ fixedLastColumns: fixedLastColumns
673
703
  },
674
704
  children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("table", {
675
705
  className: _Table.styles.tableStyles(),
676
706
  children: [
677
707
  hasHeadings && renderHeadings({
708
+ fixed: fixed,
678
709
  hidden: true,
679
710
  columnsToRender: columnsToRender,
680
711
  reverseColumns: reverseColumns,
@@ -725,6 +756,14 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
725
756
  return handleSelectionChange(isAllSelected ? _useIndexResourceState.SelectionType.Page : _useIndexResourceState.SelectionType.All, true);
726
757
  },
727
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
+ },
728
767
  children: isAllSelected ? "Undo" : paginatedSelectAllActionText || "Select all"
729
768
  })
730
769
  ]
@@ -807,7 +846,8 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
807
846
  increasedTableDensity: increasedTableDensity,
808
847
  tableContainerRef: tableContainerRef,
809
848
  cellAlignment: cellAlignment,
810
- noBodyCellPadding: noBodyCellPadding
849
+ noBodyCellPadding: noBodyCellPadding,
850
+ columnWidths: columnWidths
811
851
  },
812
852
  children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
813
853
  "data-id": idRef.current,
@@ -858,8 +898,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
858
898
  children: renderTable({
859
899
  classes: "relative overflow-hidden",
860
900
  fixed: true,
861
- columnsToRender: fixedFirstColumns,
862
- hideCellsOnMobile: true
901
+ columnsToRender: fixedFirstColumns
863
902
  })
864
903
  }) : /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
865
904
  className: _Table.styles.overflowShadowStyles({
@@ -877,8 +916,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
877
916
  classes: "relative overflow-hidden",
878
917
  fixed: true,
879
918
  columnsToRender: fixedLastColumns,
880
- reverseColumns: true,
881
- hideCellsOnMobile: true
919
+ reverseColumns: true
882
920
  })
883
921
  }) : /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
884
922
  className: _Table.styles.overflowShadowStyles({
@@ -1014,7 +1052,14 @@ Table.displayName = "Table";
1014
1052
  Table.Row = Row;
1015
1053
  Table.Row.displayName = "Table.Row";
1016
1054
  /**
1017
- * 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
+ *
1018
1063
  * @param {Object} props - Cell properties.
1019
1064
  * @param {string} [props.alignment="start"] - Text alignment.
1020
1065
  * @param {boolean} [props.selectionCell=false] - Whether this is a selection cell.
@@ -1023,8 +1068,11 @@ Table.Row.displayName = "Table.Row";
1023
1068
  */ function Cell(param) {
1024
1069
  var tmp = param.alignment, _alignment = tmp === void 0 ? "start" : tmp, children = param.children, _param_selectionCell = param.selectionCell, selectionCell = _param_selectionCell === void 0 ? false : _param_selectionCell;
1025
1070
  var _useContext = (0, _react.useContext)(TableContext), cellAlignment = _useContext.cellAlignment, increasedTableDensity = _useContext.increasedTableDensity, selectable = _useContext.selectable, noBodyCellPadding = _useContext.noBodyCellPadding;
1026
- var _useContext1 = (0, _react.useContext)(TableWrapperContext), hideCellsOnMobile = _useContext1.hideCellsOnMobile, reverseColumns = _useContext1.reverseColumns, columnsToRender = _useContext1.columnsToRender;
1071
+ var _useContext1 = (0, _react.useContext)(TableWrapperContext), hideCellsOnMobile = _useContext1.hideCellsOnMobile, reverseColumns = _useContext1.reverseColumns, columnsToRender = _useContext1.columnsToRender, isFixedOverlay = _useContext1.isFixedOverlay, fixedFirstColumns = _useContext1.fixedFirstColumns, fixedLastColumns = _useContext1.fixedLastColumns;
1072
+ var isMobile = (0, _useMobile.useMobile)();
1027
1073
  var columnCount = (cellAlignment === null || cellAlignment === void 0 ? void 0 : cellAlignment.length) || 0;
1074
+ // Use state instead of ref so changes trigger re-render
1075
+ var _useState = _sliced_to_array((0, _react.useState)(-1), 2), cellIndex = _useState[0], setCellIndex = _useState[1];
1028
1076
  var cellIndexRef = (0, _react.useRef)(null);
1029
1077
  var setCellRef = (0, _react.useCallback)(function(node) {
1030
1078
  if (!node || cellIndexRef.current !== null) return;
@@ -1032,16 +1080,21 @@ Table.Row.displayName = "Table.Row";
1032
1080
  if ((parentRow === null || parentRow === void 0 ? void 0 : parentRow.tagName) === "TR") {
1033
1081
  var totalCells = parentRow.children.length;
1034
1082
  var index = node.cellIndex;
1035
- cellIndexRef.current = reverseColumns ? totalCells - columnsToRender + index - (totalCells - columnCount) : index;
1083
+ var calculatedIndex = reverseColumns ? totalCells - columnsToRender + index - (totalCells - columnCount) : index;
1084
+ cellIndexRef.current = calculatedIndex;
1085
+ setCellIndex(calculatedIndex);
1036
1086
  }
1037
1087
  }, [
1038
1088
  reverseColumns,
1039
1089
  columnsToRender,
1040
1090
  columnCount
1041
1091
  ]);
1042
- var _cellIndexRef_current;
1043
- var cellIndex = (_cellIndexRef_current = cellIndexRef.current) !== null && _cellIndexRef_current !== void 0 ? _cellIndexRef_current : -1;
1044
1092
  var alignment = (cellAlignment === null || cellAlignment === void 0 ? void 0 : cellAlignment[cellIndex]) || _alignment;
1093
+ // Check if this cell is covered by a fixed overlay
1094
+ // When cellIndex is unknown (-1), conservatively assume the cell might be covered
1095
+ // if there are any fixed columns. This prevents duplicate popovers during the
1096
+ // brief window between initial render and when cellIndex is calculated.
1097
+ var isCoveredByFixedOverlay = !isFixedOverlay && !reverseColumns && (cellIndex === -1 ? fixedFirstColumns > 0 || fixedLastColumns > 0 : fixedFirstColumns > 0 && cellIndex < fixedFirstColumns || fixedLastColumns > 0 && cellIndex >= columnCount - fixedLastColumns);
1045
1098
  return /*#__PURE__*/ (0, _jsxruntime.jsx)("td", {
1046
1099
  ref: setCellRef,
1047
1100
  className: _Table.styles.cellStyles({
@@ -1052,6 +1105,7 @@ Table.Row.displayName = "Table.Row";
1052
1105
  tableIsSelectable: selectable,
1053
1106
  noBodyCellPadding: noBodyCellPadding
1054
1107
  }),
1108
+ inert: !isMobile && isCoveredByFixedOverlay || undefined,
1055
1109
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
1056
1110
  className: _Table.styles.cellContentStyles({
1057
1111
  alignment: alignment
@@ -1063,8 +1117,10 @@ Table.Row.displayName = "Table.Row";
1063
1117
  Table.Cell = Cell;
1064
1118
  Table.Cell.displayName = "Table.Cell";
1065
1119
  /**
1066
- * Footer component for the Table.
1067
- * 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.
1068
1124
  *
1069
1125
  * @param {Object} props - The component props.
1070
1126
  * @param {boolean} props.hasNextPage - Whether there is a next page.