@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
@@ -56,28 +56,23 @@ function _object_without_properties_loose(source, excluded) {
56
56
  import { jsx as _jsx } from "react/jsx-runtime";
57
57
  import React, { useCallback } from "react";
58
58
  import { tv } from "tailwind-variants";
59
- var styles = tv({
60
- base: "Litho-Image",
61
- variants: {
62
- borderRadius: {
63
- default: "",
64
- none: "rounded-none",
65
- xs: "rounded-xs",
66
- sm: "rounded-sm",
67
- md: "rounded-md",
68
- lg: "rounded-lg",
69
- full: "rounded-full",
70
- max: "rounded-max"
71
- },
72
- rounded: {
73
- true: "rounded-md"
74
- }
75
- }
76
- });
77
59
  /**
78
- * Image component that renders an image with optional styling and behavior.
60
+ * @component Image
61
+ *
62
+ * @description Displays a responsive content image with optional rounded corners, srcset support, and load callbacks.
63
+ *
64
+ * @usage
65
+ * - DO: Use for content images with descriptive `alt` text and optional responsive `sourceSet`.
66
+ * - DON'T: Use for small avatars or product thumbnails; use `Thumbnail` for those cases.
67
+ *
68
+ * @accessibility
69
+ * - Always provide meaningful `alt` text describing the image content; use empty string for purely decorative images.
70
+ * - When using `sourceSet`, ensure all sources serve the same visual content at different resolutions.
71
+ *
72
+ * @alternative
73
+ * - If you need a small, fixed-size preview image, use `Thumbnail` instead.
74
+ * - If you need an icon graphic, use `Icon` with a Polaris icon source instead.
79
75
  *
80
- * @component
81
76
  * @param {Object} props - Properties passed to the Image component.
82
77
  * @param {string} [props.alt] - Alternative text for the image.
83
78
  * @param {Array<{source: string, descriptor: string}>} [props.sourceSet] - Array of image sources and descriptors for responsive images.
@@ -88,7 +83,7 @@ var styles = tv({
88
83
  * @param {string} [props.className] - Additional classes to apply to the image.
89
84
  * @param {('default'|'none'|'xs'|'sm'|'md'|'lg'|'full'|'max')} [props.borderRadius='default'] - The border radius variant for the image.
90
85
  * @param {Object} [rest] - Any additional props passed to the underlying `<img>` element.
91
- *
86
+ *
92
87
  * @example
93
88
  * <Image
94
89
  * alt="Sample Image"
@@ -103,7 +98,25 @@ var styles = tv({
103
98
  * />
104
99
  *
105
100
  * @returns {JSX.Element} A styled image component with optional responsive support.
106
- */ function Image() {
101
+ */ var styles = tv({
102
+ base: "Litho-Image",
103
+ variants: {
104
+ borderRadius: {
105
+ default: "",
106
+ none: "rounded-none",
107
+ xs: "rounded-xs",
108
+ sm: "rounded-sm",
109
+ md: "rounded-md",
110
+ lg: "rounded-lg",
111
+ full: "rounded-full",
112
+ max: "rounded-max"
113
+ },
114
+ rounded: {
115
+ true: "rounded-md"
116
+ }
117
+ }
118
+ });
119
+ function Image() {
107
120
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
108
121
  var alt = props.alt, sourceSet = props.sourceSet, source = props.source, crossOrigin = props.crossOrigin, onLoad = props.onLoad, rounded = props.rounded, className = props.className, borderRadius = props.borderRadius, rest = _object_without_properties(props, [
109
122
  "alt",
@@ -2,25 +2,34 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { tv } from "tailwind-variants";
3
3
  import Icon from "./Icon.js";
4
4
  import { CircleAlertMajor } from "@shopify/polaris-icons";
5
- var styles = tv({
6
- base: "Litho-InlineError flex items-start justify-start gap-2"
7
- });
8
5
  /**
9
- * InlineError Component
10
- *
11
- * Displays an inline error message with an icon, useful for indicating errors next to form fields.
6
+ * @component InlineError
7
+ *
8
+ * @description A small error message component displayed inline below a form field to indicate validation errors.
9
+ *
10
+ * @usage
11
+ * - DO: Display field-level validation errors below or near form inputs.
12
+ * - DON'T: Use for page-level alerts (use Banner).
13
+ *
14
+ * @accessibility
15
+ * - Error text should be associated with the input via `aria-describedby` for screen reader announcement.
16
+ *
17
+ * @alternative
18
+ * - If you need a page-level error message, use `Banner` with status="critical". If you need a tooltip hint, use `Tooltip`.
12
19
  *
13
- * @component
14
20
  * @param {Object} props - Component properties.
15
21
  * @param {string} props.message - The error message to display.
16
22
  * @param {string} props.fieldID - The ID of the field this error is associated with, used to generate an accessible ID for the error element.
17
23
  *
18
24
  * @returns {JSX.Element} A styled inline error message with an icon.
19
- *
25
+ *
20
26
  * @example
21
27
  * <InlineError message="This field is required" fieldID="username" />
22
- *
23
- */ function InlineError() {
28
+ *
29
+ */ var styles = tv({
30
+ base: "Litho-InlineError flex items-start justify-start gap-2"
31
+ });
32
+ function InlineError() {
24
33
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
25
34
  var message = props.message, fieldID = props.fieldID, _props_icon = props.icon, icon = _props_icon === void 0 ? CircleAlertMajor : _props_icon;
26
35
  var classes = styles();
@@ -2,19 +2,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { tv } from "tailwind-variants";
3
3
  import Text from "./Text.js";
4
4
  import Tooltip from "./Tooltip.js";
5
- var styles = tv({
6
- base: "Litho-Label flex items-center gap-1 text-highest",
7
- variants: {
8
- hidden: {
9
- true: "sr-only"
10
- }
11
- }
12
- });
13
5
  /**
14
- * Label component
6
+ * @component Label
7
+ *
8
+ * @description A form label component that renders a styled label element associated with a form input.
9
+ *
10
+ * @usage
11
+ * - DO: Use to label form inputs when building custom form controls.
12
+ * - DON'T: Use for standalone text (use Text).
15
13
  *
16
- * This component renders a customizable label element with optional required indicator styling.
17
- * It uses `tailwind-variants` to apply base styles and accepts various props for customization.
14
+ * @accessibility
15
+ * - Renders a `<label>` element with `htmlFor` association to its input; critical for screen reader input identification.
16
+ *
17
+ * @alternative
18
+ * - If you need standalone text, use `Text`. Most form components (TextField, Select) include labels built-in.
18
19
  *
19
20
  * @param {Object} props - The properties passed to the component.
20
21
  * @param {React.ReactNode} props.children - The content to be displayed within the label.
@@ -26,7 +27,15 @@ var styles = tv({
26
27
  * @param {Object} [props.rest] - Additional props to be spread onto the label element.
27
28
  *
28
29
  * @returns {JSX.Element} The rendered label component with optional required indicator.
29
- */ function Label() {
30
+ */ var styles = tv({
31
+ base: "Litho-Label flex items-center gap-1 text-highest",
32
+ variants: {
33
+ hidden: {
34
+ true: "sr-only"
35
+ }
36
+ }
37
+ });
38
+ function Label() {
30
39
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
31
40
  var tmp = props.color, _color = tmp === void 0 ? "subdued" : tmp, children = props.children, _props_variant = props.variant, variant = _props_variant === void 0 ? "bodyMd" : _props_variant, _props_fontWeight = props.fontWeight, fontWeight = _props_fontWeight === void 0 ? "normal" : _props_fontWeight, id = props.id, hidden = props.hidden, className = props.className, requiredIndicator = props.requiredIndicator, _props_as = props.as, as = _props_as === void 0 ? "label" : _props_as, disabled = props.disabled, tooltip = props.tooltip;
32
41
  var classes = styles({
@@ -5,9 +5,33 @@ import { tv } from "tailwind-variants";
5
5
  import Section from "./LayoutSection.js";
6
6
  import Text from "./Text.js";
7
7
  import { useFrame } from "./Frame.js";
8
- export var LayoutContext = /*#__PURE__*/ createContext();
8
+ /**
9
+ * @component Layout
10
+ *
11
+ * @description A two-column page layout component with a primary content area and optional sidebar, used for settings and detail pages.
12
+ *
13
+ * @usage
14
+ * - DO: Use for two-column page layouts with a primary content area and sidebar.
15
+ * - DON'T: Use for single-column content (use `Stack` or `Card` instead).
16
+ *
17
+ * @accessibility
18
+ * - Content areas maintain logical reading order regardless of visual layout.
19
+ *
20
+ * @alternative
21
+ * - If you need a CSS grid with custom columns, use `Grid`.
22
+ * - If you need a single-column layout, use `Stack`.
23
+ *
24
+ * @param {Object} props - Component props.
25
+ * @param {React.ReactNode} props.children - The content to render inside the layout.
26
+ * @param {boolean} [props.reverseOnMobile] - If true, reverses the flex direction on mobile devices.
27
+ * @param {boolean} [props.scrollSectionsIndependently=false] - When true, caps the layout
28
+ * height to the viewport and makes each section scroll its content independently.
29
+ * Only applies at the @lg container breakpoint when sections are side-by-side.
30
+ * When inside a Page, automatically removes Page content padding for full-bleed.
31
+ * @returns {JSX.Element} The rendered layout component.
32
+ */ export var LayoutContext = /*#__PURE__*/ createContext();
9
33
  var styles = tv({
10
- base: "Litho-Layout flex gap-4 w-full max-w-full",
34
+ base: "Litho-Layout flex w-full max-w-full",
11
35
  variants: {
12
36
  hasSidebarSection: {
13
37
  true: ""
@@ -15,18 +39,36 @@ var styles = tv({
15
39
  reverseOnMobile: {
16
40
  true: "flex-col-reverse @lg:flex-row",
17
41
  false: "flex-col"
42
+ },
43
+ scrollSectionsIndependently: {
44
+ true: "pl-4 @lg:pl-5",
45
+ false: ""
18
46
  }
19
47
  },
20
48
  compoundVariants: [
21
49
  {
22
50
  hasSidebarSection: true,
23
51
  embedded: false,
24
- className: "@lg:flex-row @lg:gap-5"
52
+ scrollSectionsIndependently: false,
53
+ className: "gap-4 @lg:flex-row @lg:gap-5"
25
54
  },
26
55
  {
27
56
  hasSidebarSection: true,
28
57
  embedded: true,
29
- className: "@lg-embed:flex-row @lg-embed:items-start @lg-embed:gap-5"
58
+ scrollSectionsIndependently: false,
59
+ className: "gap-4 @lg-embed:flex-row @lg-embed:items-start @lg-embed:gap-5"
60
+ },
61
+ {
62
+ hasSidebarSection: true,
63
+ embedded: false,
64
+ scrollSectionsIndependently: true,
65
+ className: "@lg:flex-row"
66
+ },
67
+ {
68
+ hasSidebarSection: true,
69
+ embedded: true,
70
+ scrollSectionsIndependently: true,
71
+ className: "@lg-embed:flex-row @lg-embed:items-start"
30
72
  },
31
73
  {
32
74
  reverseOnMobile: true,
@@ -37,24 +79,14 @@ var styles = tv({
37
79
  defaultVariants: {
38
80
  hasSidebarSection: false,
39
81
  embedded: false,
40
- reverseOnMobile: false
82
+ reverseOnMobile: false,
83
+ scrollSectionsIndependently: false
41
84
  }
42
85
  });
43
- /**
44
- * Layout component for structuring content.
45
- *
46
- * The `Layout` component organizes its children into a flexible and responsive layout.
47
- * If no `Layout.Section` or `Layout.AnnotatedSection` children are found, it wraps the
48
- * children inside a default `Layout.Section`.
49
- *
50
- * @param {Object} props - Component props.
51
- * @param {React.ReactNode} props.children - The content to render inside the layout.
52
- * @param {boolean} [props.reverseOnMobile] - If true, reverses the flex direction on mobile devices.
53
- * @returns {JSX.Element} The rendered layout component.
54
- */ function Layout() {
86
+ function Layout() {
55
87
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
56
88
  var embedded = useFrame().embedded;
57
- var children = props.children, reverseOnMobile = props.reverseOnMobile;
89
+ var children = props.children, reverseOnMobile = props.reverseOnMobile, _props_scrollSectionsIndependently = props.scrollSectionsIndependently, scrollSectionsIndependently = _props_scrollSectionsIndependently === void 0 ? false : _props_scrollSectionsIndependently;
58
90
  var analyzeChildren = function(children) {
59
91
  var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
60
92
  if (depth > 3) return {
@@ -101,17 +133,19 @@ var styles = tv({
101
133
  var classes = styles({
102
134
  hasSidebarSection: hasSidebarSection,
103
135
  embedded: embedded,
104
- reverseOnMobile: reverseOnMobile
136
+ reverseOnMobile: reverseOnMobile,
137
+ scrollSectionsIndependently: scrollSectionsIndependently
105
138
  });
106
139
  var wrappedChildren = hasSection ? children : /*#__PURE__*/ _jsx(Layout.Section, {
107
140
  children: children
108
141
  });
109
142
  return /*#__PURE__*/ _jsx(LayoutContext.Provider, {
110
143
  value: {
111
- parentHasSidebar: parentHasSidebar
144
+ parentHasSidebar: parentHasSidebar,
145
+ scrollSectionsIndependently: scrollSectionsIndependently
112
146
  },
113
147
  children: /*#__PURE__*/ _jsx("div", {
114
- className: classes,
148
+ className: "".concat(classes).concat(scrollSectionsIndependently ? " Litho-Layout--scrollSectionsIndependently".concat(embedded ? " @lg-embed:max-h-[calc(100vh-var(--litho-top-bar-height))]" : " @lg:max-h-[calc(100vh-var(--litho-top-bar-height))]") : ""),
115
149
  children: wrappedChildren
116
150
  })
117
151
  });
@@ -129,11 +163,10 @@ var annotatedSectionStyles = tv({
129
163
  }
130
164
  });
131
165
  /**
132
- * AnnotatedSection component for displaying a titled section with optional description.
166
+ * @component Layout.AnnotatedSection
133
167
  *
134
- * The `AnnotatedSection` organizes content into two main areas:
135
- * - Annotation: Displays a title and description.
136
- * - Content: Displays the main content provided as children.
168
+ * @usage
169
+ * - DO: Use for settings pages where each section has a title and description alongside form content.
137
170
  *
138
171
  * @param {Object} props - Component props.
139
172
  * @param {React.ReactNode} props.children - The main content of the section.
@@ -147,11 +180,13 @@ var annotatedSectionStyles = tv({
147
180
  var annotatedSectionClasses = annotatedSectionStyles({
148
181
  embedded: embedded
149
182
  });
183
+ var annotationColSpan = embedded ? "@md-embed:col-span-4" : "@md:col-span-4";
184
+ var contentColSpan = embedded ? "@md-embed:col-span-8" : "@md:col-span-8";
150
185
  return /*#__PURE__*/ _jsxs("div", {
151
186
  className: annotatedSectionClasses,
152
187
  children: [
153
188
  /*#__PURE__*/ _jsxs("div", {
154
- className: "Litho-Layout__Annotation flex flex-col gap-1 @md:col-span-4 py-2",
189
+ className: "Litho-Layout__Annotation flex flex-col gap-1 ".concat(annotationColSpan, " py-2"),
155
190
  children: [
156
191
  title && (typeof title === "string" ? /*#__PURE__*/ _jsx(Text, {
157
192
  variant: "headingMd",
@@ -164,7 +199,7 @@ var annotatedSectionStyles = tv({
164
199
  ]
165
200
  }),
166
201
  /*#__PURE__*/ _jsx("div", {
167
- className: "Litho-Layout__AnnotationContent @md:col-span-8",
202
+ className: "Litho-Layout__AnnotationContent ".concat(contentColSpan),
168
203
  children: children
169
204
  })
170
205
  ]
@@ -4,7 +4,30 @@ import React, { useContext } from "react";
4
4
  import { tv } from "tailwind-variants";
5
5
  import { LayoutContext } from "./Layout.js";
6
6
  import { useFrame } from "./Frame.js";
7
- var sectionStyles = tv({
7
+ /**
8
+ * @component Layout.Section
9
+ *
10
+ * @description A direct child of Layout that defines a content column, supporting primary, secondary, and full-width configurations.
11
+ *
12
+ * @usage
13
+ * - DO: Use as a direct child of `Layout` to define content regions.
14
+ * - DON'T: Use outside of a `Layout` parent.
15
+ *
16
+ * @accessibility
17
+ * - LayoutSection renders a semantic section; content structure is preserved for assistive technology.
18
+ *
19
+ * @alternative
20
+ * - If you need a standalone content section, use `Card` or `Box` instead.
21
+ *
22
+ * @param {Object} props - Component props.
23
+ * @param {React.ReactNode} props.children - The content to render inside the section.
24
+ * @param {boolean|"slim"} [props.sidebar=false] - Configures the section layout:
25
+ * - `true`: Makes it a sidebar with a 1/3 basis.
26
+ * - `"slim"`: Makes it a slim sidebar with a max width of 320px.
27
+ * - `false`: Allows it to grow.
28
+ * @params {boolean|integer} props.sticky - Specify whether the section becomes sticky or not
29
+ * @returns {JSX.Element} The rendered section component.
30
+ */ var sectionStyles = tv({
8
31
  base: "Litho-Layout__Section",
9
32
  variants: {
10
33
  sidebar: {
@@ -14,58 +37,97 @@ var sectionStyles = tv({
14
37
  sibling: {
15
38
  none: "w-full",
16
39
  sidebar: "flex-1 basis-0 min-w-0"
40
+ },
41
+ scrollSectionsIndependently: {
42
+ true: "pt-4 pr-4 @lg:pr-5 @lg:pb-5",
43
+ false: ""
17
44
  }
18
45
  },
19
46
  compoundVariants: [
47
+ {
48
+ scrollSectionsIndependently: true,
49
+ embedded: true,
50
+ className: "@lg-embed:overflow-y-auto pl-px"
51
+ },
52
+ {
53
+ scrollSectionsIndependently: true,
54
+ embedded: false,
55
+ className: "@lg:overflow-y-auto pl-px"
56
+ },
57
+ {
58
+ scrollSectionsIndependently: true,
59
+ sidebar: [
60
+ true,
61
+ "slim"
62
+ ],
63
+ className: "ml-4"
64
+ },
65
+ {
66
+ sidebar: true,
67
+ embedded: true,
68
+ scrollSectionsIndependently: false,
69
+ className: "@lg-embed:w-1/3 @lg-embed:max-w-120"
70
+ },
20
71
  {
21
72
  sidebar: true,
73
+ embedded: false,
74
+ scrollSectionsIndependently: false,
75
+ className: "@lg:w-1/3 @lg:max-w-80 @xl:max-w-120"
76
+ },
77
+ {
78
+ sidebar: "slim",
22
79
  embedded: true,
23
- className: "@lg-embed:w-1/3 @lg-embed:max-w-80 @xl-embed:max-w-120 @lg-embed:w-1/3 @lg-embed:max-w-120"
80
+ scrollSectionsIndependently: false,
81
+ className: "@lg-embed:w-1/3 @lg-embed:max-w-80"
82
+ },
83
+ {
84
+ sidebar: "slim",
85
+ embedded: false,
86
+ scrollSectionsIndependently: false,
87
+ className: "@lg:w-1/3 @lg:max-w-80"
88
+ },
89
+ {
90
+ sidebar: true,
91
+ embedded: true,
92
+ scrollSectionsIndependently: true,
93
+ className: "@lg-embed:w-1/3 @lg-embed:max-w-85 @xl-embed:max-w-125"
24
94
  },
25
95
  {
26
96
  sidebar: true,
27
97
  embedded: false,
28
- className: "@lg:w-1/3 @lg:max-w-80 @xl:max-w-120 @lg:w-1/3 @lg:max-w-120"
98
+ scrollSectionsIndependently: true,
99
+ className: "@lg:w-1/3 @lg:max-w-85 @xl:max-w-125"
29
100
  },
30
101
  {
31
102
  sidebar: "slim",
32
103
  embedded: true,
33
- className: "@lg-embed:w-1/3 @lg-embed:max-w-80 @lg-embed:w-1/3 @lg-embed:max-w-80"
104
+ scrollSectionsIndependently: true,
105
+ className: "@lg-embed:w-1/3 @lg-embed:max-w-85"
34
106
  },
35
107
  {
36
108
  sidebar: "slim",
37
109
  embedded: false,
38
- className: "@lg:w-1/3 @lg:max-w-80 @lg:w-1/3 @lg:max-w-80"
110
+ scrollSectionsIndependently: true,
111
+ className: "@lg:w-1/3 @lg:max-w-85"
39
112
  }
40
113
  ],
41
114
  defaultVariants: {
42
115
  sidebar: false,
43
- embedded: false
116
+ embedded: false,
117
+ scrollSectionsIndependently: false
44
118
  }
45
119
  });
46
- /**
47
- * Section component for flexible content grouping.
48
- *
49
- * The `Section` allows for configuring its layout, supporting sidebar and slim variants.
50
- *
51
- * @param {Object} props - Component props.
52
- * @param {React.ReactNode} props.children - The content to render inside the section.
53
- * @param {boolean|"slim"} [props.sidebar=false] - Configures the section layout:
54
- * - `true`: Makes it a sidebar with a 1/3 basis.
55
- * - `"slim"`: Makes it a slim sidebar with a max width of 320px.
56
- * - `false`: Allows it to grow.
57
- * @params {boolean|integer} props.sticky - Specify whether the section becomes sticky or not
58
- * @returns {JSX.Element} The rendered section component.
59
- */ function Section() {
120
+ function Section() {
60
121
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
61
122
  var children = props.children, _props_sidebar = props.sidebar, sidebar = _props_sidebar === void 0 ? false : _props_sidebar, className = props.className, sticky = props.sticky;
62
123
  var embedded = useFrame().embedded;
63
- var parentHasSidebar = useContext(LayoutContext).parentHasSidebar;
124
+ var _useContext = useContext(LayoutContext), parentHasSidebar = _useContext.parentHasSidebar, scrollSectionsIndependently = _useContext.scrollSectionsIndependently;
64
125
  var sectionClasses = sectionStyles({
65
126
  sidebar: sidebar,
66
127
  sticky: sticky,
67
128
  sibling: sidebar ? undefined : parentHasSidebar ? "sidebar" : "none",
68
- embedded: embedded
129
+ embedded: embedded,
130
+ scrollSectionsIndependently: scrollSectionsIndependently
69
131
  });
70
132
  return /*#__PURE__*/ _jsx("div", {
71
133
  className: "".concat(sectionClasses).concat(className ? " ".concat(className) : ""),
@@ -1,7 +1,40 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { tv } from "tailwind-variants";
3
3
  import Icon from "./Icon.js";
4
- var styles = tv({
4
+ /**
5
+ * @component Link
6
+ *
7
+ * @description An inline navigation element that renders as an anchor tag for linking to internal or external URLs.
8
+ *
9
+ * @usage
10
+ * - DO: Use for inline text navigation to other pages or external URLs.
11
+ * - DON'T: Use for actions that don't navigate (use Button).
12
+ *
13
+ * @accessibility
14
+ * - Renders as `<a>` tag; ensure link text is descriptive. External links should indicate they open in a new tab.
15
+ *
16
+ * @alternative
17
+ * - If you need to trigger an action (not navigation), use `Button` with `link` variant.
18
+ * - If you need a button styled as a link, use `Button` with `plain` prop.
19
+ *
20
+ * @param {Object} props - Props for the Link component.
21
+ * @param {string} props.url - The URL the link points to.
22
+ * @param {React.ReactNode} props.children - Content to display within the link.
23
+ * @param {Function} [props.onClick] - Optional click event handler for the link.
24
+ * @param {boolean} [props.external=false] - If true, opens the link in a new tab.
25
+ * @param {boolean} [props.insight=false] - If true, set the color and iconColor to insight
26
+ * @param {string} [props.target] - Optional target attribute for specifying where to open the link.
27
+ * @param {string} [props.id] - Optional id attribute for the link.
28
+ * @param {boolean} [props.monochrome=false] - If true, applies monochrome color scheme.
29
+ * @param {boolean} [props.removeUnderline=false] - If true, removes underline from the link.
30
+ * @param {string} [props.accessibilityLabel] - Optional aria-label for accessibility.
31
+ * @param {string} [props.dataPrimaryLink] - Optional data attribute for custom tracking.
32
+ * @param {Function} [props.onMouseEnter] - Optional mouse enter event handler for the link.
33
+ * @param {Function} [props.onMouseLeave] - Optional mouse leave event handler for the link.
34
+ * @param {React.ReactNode} [props.icon] - Optional icon to display within the link.
35
+ *
36
+ * @returns {JSX.Element} Rendered link element.
37
+ */ var styles = tv({
5
38
  base: "Litho-Link cursor-pointer hover:underline",
6
39
  variants: {
7
40
  monochrome: {
@@ -88,27 +121,7 @@ var styles = tv({
88
121
  color: "link"
89
122
  }
90
123
  });
91
- /**
92
- * Renders an accessible link with customizable styling based on variants.
93
- *
94
- * @param {Object} props - Props for the Link component.
95
- * @param {string} props.url - The URL the link points to.
96
- * @param {React.ReactNode} props.children - Content to display within the link.
97
- * @param {Function} [props.onClick] - Optional click event handler for the link.
98
- * @param {boolean} [props.external=false] - If true, opens the link in a new tab.
99
- * @param {boolean} [props.insight=false] - If true, set the color and iconColor to insight
100
- * @param {string} [props.target] - Optional target attribute for specifying where to open the link.
101
- * @param {string} [props.id] - Optional id attribute for the link.
102
- * @param {boolean} [props.monochrome=false] - If true, applies monochrome color scheme.
103
- * @param {boolean} [props.removeUnderline=false] - If true, removes underline from the link.
104
- * @param {string} [props.accessibilityLabel] - Optional aria-label for accessibility.
105
- * @param {string} [props.dataPrimaryLink] - Optional data attribute for custom tracking.
106
- * @param {Function} [props.onMouseEnter] - Optional mouse enter event handler for the link.
107
- * @param {Function} [props.onMouseLeave] - Optional mouse leave event handler for the link.
108
- * @param {React.ReactNode} [props.icon] - Optional icon to display within the link.
109
- *
110
- * @returns {JSX.Element} Rendered link element.
111
- */ function Link() {
124
+ function Link() {
112
125
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
113
126
  var url = props.url, children = props.children, onClick = props.onClick, external = props.external, target = props.target, _props_bold = props.bold, bold = _props_bold === void 0 ? false : _props_bold, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, _props_insight = props.insight, insight = _props_insight === void 0 ? false : _props_insight, id = props.id, monochrome = props.monochrome, removeUnderline = props.removeUnderline, accessibilityLabel = props.accessibilityLabel, dataPrimaryLink = props.dataPrimaryLink, _color = props.color, className = props.className, onMouseEnter = props.onMouseEnter, onMouseLeave = props.onMouseLeave, icon = props.icon, _iconColor = props.iconColor, _props_iconSize = props.iconSize, iconSize = _props_iconSize === void 0 ? "sm" : _props_iconSize;
114
127
  var hasIcon = icon !== undefined;
@@ -1,6 +1,28 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { tv } from "tailwind-variants";
3
- var styles = tv({
3
+ /**
4
+ * @component List
5
+ *
6
+ * @description A semantic list component that renders ordered or unordered lists with consistent spacing and bullet/number styling.
7
+ *
8
+ * @usage
9
+ * - DO: Display structured text content as bulleted or numbered lists.
10
+ * - DON'T: Use for interactive item lists (use ResourceList).
11
+ *
12
+ * @accessibility
13
+ * - Renders semantic `<ul>` or `<ol>` elements; screen readers announce list structure and item count.
14
+ *
15
+ * @alternative
16
+ * - If you need interactive items with actions, use `ResourceList`.
17
+ * - If you need a data table, use `Table`.
18
+ *
19
+ * @param {Object} props - Component props.
20
+ * @param {React.ReactNode} props.children - The list items to render inside the list.
21
+ * @param {'normal' | 'loose' | 'tight'} [props.spacing='normal'] - Controls vertical spacing between list items.
22
+ * @param {'bullet' | 'number'} [props.type='bullet'] - Determines list type: bullet (unordered) or number (ordered).
23
+ * @param {string} [props.className] - Additional class names to apply to the list container.
24
+ * @returns {JSX.Element} The rendered List component.
25
+ */ var styles = tv({
4
26
  base: "Litho-List list-outside ml-5",
5
27
  variants: {
6
28
  type: {
@@ -15,16 +37,7 @@ var styles = tv({
15
37
  }
16
38
  }
17
39
  });
18
- /**
19
- * List component for rendering unordered or ordered lists.
20
- *
21
- * @param {Object} props - Component props.
22
- * @param {React.ReactNode} props.children - The list items to render inside the list.
23
- * @param {'normal' | 'loose' | 'tight'} [props.spacing='normal'] - Controls vertical spacing between list items.
24
- * @param {'bullet' | 'number'} [props.type='bullet'] - Determines list type: bullet (unordered) or number (ordered).
25
- * @param {string} [props.className] - Additional class names to apply to the list container.
26
- * @returns {JSX.Element} The rendered List component.
27
- */ function List() {
40
+ function List() {
28
41
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
29
42
  var children = props.children, _props_spacing = props.spacing, spacing = _props_spacing === void 0 ? 'normal' : _props_spacing, _props_type = props.type, type = _props_type === void 0 ? 'bullet' : _props_type, className = props.className;
30
43
  var classes = styles({
@@ -42,7 +55,10 @@ var itemStyles = tv({
42
55
  base: "Litho-ListItem text-left leading-4"
43
56
  });
44
57
  /**
45
- * Item component for individual list items in the List component.
58
+ * @component List.Item
59
+ *
60
+ * @usage
61
+ * - DO: Use as direct children of List for each list entry.
46
62
  *
47
63
  * @param {Object} props - Component props.
48
64
  * @param {React.ReactNode} props.children - The content of the list item.