@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
@@ -14,6 +14,7 @@ var _react = require("react");
14
14
  var _reactcolorsketch = /*#__PURE__*/ _interop_require_default(require("@uiw/react-color-sketch"));
15
15
  var _tailwindvariants = require("tailwind-variants");
16
16
  var _Text = /*#__PURE__*/ _interop_require_default(require("./Text"));
17
+ var _TextField = /*#__PURE__*/ _interop_require_default(require("./TextField"));
17
18
  function _array_like_to_array(arr, len) {
18
19
  if (len == null || len > arr.length) len = arr.length;
19
20
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -22,6 +23,19 @@ function _array_like_to_array(arr, len) {
22
23
  function _array_with_holes(arr) {
23
24
  if (Array.isArray(arr)) return arr;
24
25
  }
26
+ function _define_property(obj, key, value) {
27
+ if (key in obj) {
28
+ Object.defineProperty(obj, key, {
29
+ value: value,
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true
33
+ });
34
+ } else {
35
+ obj[key] = value;
36
+ }
37
+ return obj;
38
+ }
25
39
  function _interop_require_default(obj) {
26
40
  return obj && obj.__esModule ? obj : {
27
41
  default: obj
@@ -54,6 +68,21 @@ function _iterable_to_array_limit(arr, i) {
54
68
  function _non_iterable_rest() {
55
69
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
56
70
  }
71
+ function _object_spread(target) {
72
+ for(var i = 1; i < arguments.length; i++){
73
+ var source = arguments[i] != null ? arguments[i] : {};
74
+ var ownKeys = Object.keys(source);
75
+ if (typeof Object.getOwnPropertySymbols === "function") {
76
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
77
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
78
+ }));
79
+ }
80
+ ownKeys.forEach(function(key) {
81
+ _define_property(target, key, source[key]);
82
+ });
83
+ }
84
+ return target;
85
+ }
57
86
  function _sliced_to_array(arr, i) {
58
87
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
59
88
  }
@@ -65,23 +94,21 @@ function _unsupported_iterable_to_array(o, minLen) {
65
94
  if (n === "Map" || n === "Set") return Array.from(n);
66
95
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
67
96
  }
68
- var colorContainer = (0, _tailwindvariants.tv)({
69
- base: "Litho-ColorField relative flex items-center gap-2 cursor-pointer px-1 py-1 rounded-md w-full-plus-2 -left-1",
70
- variants: {
71
- hoverable: {
72
- true: "hover"
73
- }
74
- }
75
- });
76
- var colorCell = (0, _tailwindvariants.tv)({
77
- base: "w-8 h-8 min-w-8 min-h-8 rounded-md border border-tint-5"
78
- });
79
97
  /**
80
- * ColorField component provides a UI for selecting colors using the SketchPicker.
81
- * It displays the currently selected color and allows toggling a color picker popover.
82
- * Useful for choosing solid colors in forms or design tools.
98
+ * @component ColorField
99
+ *
100
+ * @description A color picker input that displays a swatch preview and a text field for entering hex color values.
101
+ *
102
+ * @usage
103
+ * - DO: Use for selecting colors in theme or design settings.
104
+ * - DON'T: Use for text input (use TextField).
105
+ *
106
+ * @accessibility
107
+ * - Ensure the color input has a descriptive label; provide text representation of selected color for screen readers.
108
+ *
109
+ * @alternative
110
+ * - If you need a text input, use `TextField`. If you need a select from predefined options, use `Select`.
83
111
  *
84
- * @component
85
112
  * @example
86
113
  * <ColorField
87
114
  * label="Primary Color"
@@ -92,23 +119,139 @@ var colorCell = (0, _tailwindvariants.tv)({
92
119
  * presetColors={['#ff0000', '#00ff00', '#0000ff']}
93
120
  * />
94
121
  *
122
+ * @example
123
+ * // Textfield variant with inline editing and color swatch
124
+ * <ColorField
125
+ * variant="textfield"
126
+ * label="Brand Color"
127
+ * name="brand"
128
+ * value="#ff0000"
129
+ * onChange={(newColor) => setColor(newColor)}
130
+ * placeholder="#000000"
131
+ * />
132
+ *
95
133
  * @param {Object} props - Component props
134
+ * @param {('default'|'textfield')} [props.variant='default'] - Visual variant; "textfield" renders an editable TextField with color swatch
96
135
  * @param {string} props.label - The label displayed above the color value
97
136
  * @param {string} props.name - The name associated with the color field, used as a key
98
137
  * @param {string} props.value - The currently selected color value; can be a hex string or CSS variable
99
138
  * @param {function} props.onChange - Callback function that receives the new color value when changed
100
139
  * @param {number} [props.zIndexOverride] - Optional z-index value to override the default popover z-index
101
140
  * @param {string[]} [props.presetColors=[]] - Optional array of preset colors shown in the picker
141
+ * @param {string} [props.placeholder] - Placeholder text (textfield variant only)
142
+ * @param {string} [props.helpText] - Help text below the field (textfield variant only)
143
+ * @param {string} [props.error] - Error message (textfield variant only)
144
+ * @param {boolean} [props.disabled] - Whether the field is disabled (textfield variant only)
102
145
  *
103
146
  * @returns {JSX.Element} A color picker field with label and current value preview
104
- */ var ColorField = function(param) {
105
- var label = param.label, name = param.name, _value = param.value, onChange = param.onChange, zIndexOverride = param.zIndexOverride, _param_presetColors = param.presetColors, presetColors = _param_presetColors === void 0 ? [] : _param_presetColors;
106
- var value = _value.startsWith("var(--") ? getComputedStyle(document.documentElement).getPropertyValue(_value.replace("var(", "").replace(")", "")).trim() : _value;
147
+ */ var colorContainer = (0, _tailwindvariants.tv)({
148
+ base: "Litho-ColorField relative flex items-center gap-2 cursor-pointer px-1 py-1 rounded-md w-full-plus-2 -left-1",
149
+ variants: {
150
+ hoverable: {
151
+ true: "hover"
152
+ }
153
+ }
154
+ });
155
+ var colorCell = (0, _tailwindvariants.tv)({
156
+ base: "w-8 h-8 min-w-8 min-h-8 rounded-md border border-tint-5"
157
+ });
158
+ var ColorField = function(param) {
159
+ var label = param.label, name = param.name, _value = param.value, onChange = param.onChange, zIndexOverride = param.zIndexOverride, _param_presetColors = param.presetColors, presetColors = _param_presetColors === void 0 ? [] : _param_presetColors, _param_variant = param.variant, variant = _param_variant === void 0 ? "default" : _param_variant, placeholder = param.placeholder, helpText = param.helpText, error = param.error, disabled = param.disabled;
160
+ var value = (_value === null || _value === void 0 ? void 0 : _value.startsWith("var(--")) ? getComputedStyle(document.documentElement).getPropertyValue(_value.replace("var(", "").replace(")", "")).trim() : _value;
161
+ var containerRef = (0, _react.useRef)(null);
107
162
  var _useState = _sliced_to_array((0, _react.useState)(false), 2), displayColorPicker = _useState[0], setDisplayColorPicker = _useState[1];
163
+ var _useState1 = _sliced_to_array((0, _react.useState)({
164
+ top: 0,
165
+ left: 0
166
+ }), 2), popoverPosition = _useState1[0], setPopoverPosition = _useState1[1];
108
167
  var toggleDisplayColorPicker = function() {
109
- return setDisplayColorPicker(!displayColorPicker);
168
+ if (!displayColorPicker && containerRef.current) {
169
+ var rect = containerRef.current.getBoundingClientRect();
170
+ setPopoverPosition({
171
+ top: rect.top,
172
+ left: rect.left
173
+ });
174
+ }
175
+ setDisplayColorPicker(!displayColorPicker);
110
176
  };
177
+ var colorPickerPopover = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
178
+ children: [
179
+ displayColorPicker && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
180
+ className: "Litho-ColorField__Activator fixed inset-0",
181
+ onClick: toggleDisplayColorPicker
182
+ }),
183
+ displayColorPicker && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
184
+ className: "Litho-ColorField__Popover fixed",
185
+ style: _object_spread({
186
+ top: popoverPosition.top,
187
+ left: popoverPosition.left
188
+ }, zIndexOverride ? {
189
+ zIndex: zIndexOverride
190
+ } : {}),
191
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactcolorsketch.default, {
192
+ color: value,
193
+ onChange: function(param) {
194
+ var hex = param.hex;
195
+ return onChange(hex);
196
+ },
197
+ disableAlpha: true,
198
+ presetColors: presetColors
199
+ }, name)
200
+ })
201
+ ]
202
+ });
203
+ if (variant === "textfield") {
204
+ var openPicker = function() {
205
+ if (!displayColorPicker && containerRef.current) {
206
+ var rect = containerRef.current.getBoundingClientRect();
207
+ setPopoverPosition({
208
+ top: rect.bottom + 4,
209
+ left: rect.left
210
+ });
211
+ }
212
+ setDisplayColorPicker(true);
213
+ };
214
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
215
+ ref: containerRef,
216
+ className: "Litho-ColorField",
217
+ children: [
218
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
219
+ label: label,
220
+ name: name,
221
+ value: value ? value.toUpperCase() : "",
222
+ onChange: onChange,
223
+ onFocus: openPicker,
224
+ placeholder: placeholder,
225
+ helpText: helpText,
226
+ error: error,
227
+ disabled: disabled,
228
+ suffix: /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
229
+ className: "relative left-1.5 block w-5 h-5 rounded border border-tint-5 cursor-pointer pointer-events-auto",
230
+ style: {
231
+ backgroundColor: value
232
+ },
233
+ onClick: function(e) {
234
+ e.stopPropagation();
235
+ toggleDisplayColorPicker();
236
+ },
237
+ role: "button",
238
+ tabIndex: 0,
239
+ "aria-label": "Open color picker",
240
+ onKeyDown: function(e) {
241
+ if (e.key === "Enter" || e.key === " ") {
242
+ e.preventDefault();
243
+ e.stopPropagation();
244
+ toggleDisplayColorPicker();
245
+ }
246
+ }
247
+ })
248
+ }),
249
+ colorPickerPopover
250
+ ]
251
+ });
252
+ }
111
253
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
254
+ ref: containerRef,
112
255
  className: colorContainer({
113
256
  hoverable: true
114
257
  }),
@@ -139,25 +282,7 @@ var colorCell = (0, _tailwindvariants.tv)({
139
282
  })
140
283
  ]
141
284
  }),
142
- displayColorPicker && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
143
- className: "Litho-ColorField__Activator fixed inset-0",
144
- onClick: toggleDisplayColorPicker
145
- }),
146
- displayColorPicker && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
147
- className: "Litho-ColorField__Popover absolute z-10 left-0 top-0",
148
- style: zIndexOverride ? {
149
- zIndex: zIndexOverride
150
- } : {},
151
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactcolorsketch.default, {
152
- color: value,
153
- onChange: function(param) {
154
- var hex = param.hex;
155
- return onChange(hex);
156
- },
157
- disableAlpha: true,
158
- presetColors: presetColors
159
- }, name)
160
- })
285
+ colorPickerPopover
161
286
  ]
162
287
  });
163
288
  };
@@ -12,14 +12,21 @@ Object.defineProperty(exports, "default", {
12
12
  var _react = require("react");
13
13
  var _AppProvider = require("../components/AppProvider");
14
14
  /**
15
- * ContextualSaveBar Component
15
+ * @component ContextualSaveBar
16
16
  *
17
- * This component manages and displays a global contextual save bar with custom save and discard actions.
18
- * It uses the `FormContext` to control the visibility and configuration of the save bar.
19
- * When mounted, it sets the provided message, save action, and discard action.
20
- * When unmounted, it cleans up by resetting these values.
17
+ * @description A floating save bar that appears when a form has unsaved changes, providing save and discard actions.
18
+ *
19
+ * @usage
20
+ * - DO: Display at the top of a page when a form has unsaved changes with save/discard actions.
21
+ * - DON'T: Use inside a modal (use modal's own actions).
22
+ *
23
+ * @accessibility
24
+ * - Save bar should be keyboard accessible; ensure save and discard buttons have clear labels.
25
+ *
26
+ * @alternative
27
+ * - If you need a save bar integrated with the Frame layout, use `FrameSaveBar`.
28
+ * - If you need form-level submit, use `Form`.
21
29
  *
22
- * @component
23
30
  * @param {Object} props - Component properties.
24
31
  * @param {Object} [props.saveAction] - The action for the "Save" button. Contains `onAction`, `loading`, `accessibilityLabel`, and `disabled`.
25
32
  * @param {Object} [props.discardAction] - The action for the "Discard" button. Contains `onAction`, `loading`, `accessibilityLabel`, and `disabled`.
@@ -142,7 +142,52 @@ function _unsupported_iterable_to_array(o, minLen) {
142
142
  if (n === "Map" || n === "Set") return Array.from(n);
143
143
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
144
144
  }
145
- var calendarStyles = (0, _tailwindvariants.tv)({
145
+ /**
146
+ * @component DatePicker
147
+ *
148
+ * @description A date selection input with calendar popup, powered by react-datepicker, supporting single date and date range selection.
149
+ *
150
+ * @usage
151
+ * - DO: Use for selecting dates with a visual calendar interface.
152
+ * - DON'T: Use for time-only selection (use TimePicker).
153
+ *
154
+ * @accessibility
155
+ * - Supports keyboard navigation within the calendar; ensure the input has a descriptive label.
156
+ *
157
+ * @alternative
158
+ * - If you need time selection, use `TimePicker`. If you need a plain text date input, use `TextField` with date validation.
159
+ *
160
+ * @param {Object} props - Component properties.
161
+ * @param {string} [props.label] - Label for the DatePicker.
162
+ * @param {Object|null} [props.labelAction] - Action button for the label.
163
+ * @param {function} [props.onBlur] - Callback function for when the field loses focus.
164
+ * @param {string} [props.placeholder="Select date..."] - Placeholder text.
165
+ * @param {string} [props.displayFormat] - Date format for displaying the value.
166
+ * @param {string} [props.helpText] - Help text displayed under the field.
167
+ * @param {JSX.Element|null} [props.suffix=null] - Icon or text displayed at the end of the input.
168
+ * @param {boolean} [props.isClearable=false] - Whether the input can be cleared.
169
+ * @param {string|null} [props.tooltip] - Tooltip text for the field.
170
+ * @param {string} [props.locale="en-US"] - Locale used for formatting.
171
+ * @param {Object|string|Date|null} [props.value] - Current value of the DatePicker.
172
+ * @param {boolean} [props.allowRange=false] - Whether date range selection is enabled.
173
+ * @param {JSX.Element|null} [props.activator] - Custom activator for the popover.
174
+ * @param {Date|string|null} [props.disableDatesAfter] - Dates after this value are disabled.
175
+ * @param {Date|string|null} [props.disableDatesBefore] - Dates before this value are disabled.
176
+ * @param {function} [props.onChange] - Callback function called when the date changes.
177
+ * @param {boolean} [props.multiMonth=false] - Whether multiple months are shown.
178
+ * @param {boolean} [props.disabled=false] - Whether the DatePicker is disabled.
179
+ * @param {boolean} [props.showTimePicker=false] - Whether a time picker is displayed.
180
+ * @param {boolean} [props.autoFocus=false] - Whether the input is focused automatically.
181
+ * @param {Date|null} [props.maxDate] - Maximum selectable date.
182
+ * @param {Date|null} [props.minDate] - Minimum selectable date.
183
+ * @param {boolean} [props.inline=false] - Whether the calendar is displayed inline.
184
+ * @param {string} [props.preferredAlignment="left"] - Alignment of the popover.
185
+ * @param {string} [props.preferredPosition="below"] - Position of the popover.
186
+ * @param {boolean} [props.includeHourlyPresets=false] - Whether hourly (last 30 minutes, last hour) presets are included.
187
+ * @param {Array} [props.customPresets=[]] - Custom presets to include.
188
+ * @param {JSX.Element|null} [props.footer] - An optional footer component to display at the bottom of the DatePicker.
189
+ * @returns {JSX.Element} The rendered DatePicker component.
190
+ */ var calendarStyles = (0, _tailwindvariants.tv)({
146
191
  base: "Litho-DatePicker__Calendar relative"
147
192
  });
148
193
  var dayStyles = (0, _tailwindvariants.tv)({
@@ -242,8 +287,7 @@ var getDateRange = function(param) {
242
287
  var start = (0, _dayjs.default)(startDate);
243
288
  var end = (0, _dayjs.default)(endDate);
244
289
  return _to_consumable_array(_dates.RANGE_PRESETS).concat(_to_consumable_array(_dates.HOURLY_RANGE_PRESETS)).find(function(preset) {
245
- var _preset_value = preset.value, presetStart = _preset_value.start, presetEnd = _preset_value.end;
246
- return start.isSame(presetStart, "day") && end.isSame(presetEnd, "day") && dateRange === preset.id;
290
+ return dateRange === preset.id;
247
291
  }) || {
248
292
  id: "custom",
249
293
  value: {
@@ -252,40 +296,7 @@ var getDateRange = function(param) {
252
296
  }
253
297
  };
254
298
  };
255
- /**
256
- * DatePicker component for selecting dates and date ranges.
257
- *
258
- * @param {Object} props - Component properties.
259
- * @param {string} [props.label] - Label for the DatePicker.
260
- * @param {Object|null} [props.labelAction] - Action button for the label.
261
- * @param {function} [props.onBlur] - Callback function for when the field loses focus.
262
- * @param {string} [props.placeholder="Select date..."] - Placeholder text.
263
- * @param {string} [props.displayFormat] - Date format for displaying the value.
264
- * @param {string} [props.helpText] - Help text displayed under the field.
265
- * @param {JSX.Element|null} [props.suffix=null] - Icon or text displayed at the end of the input.
266
- * @param {boolean} [props.isClearable=false] - Whether the input can be cleared.
267
- * @param {string|null} [props.tooltip] - Tooltip text for the field.
268
- * @param {string} [props.locale="en-US"] - Locale used for formatting.
269
- * @param {Object|string|Date|null} [props.value] - Current value of the DatePicker.
270
- * @param {boolean} [props.allowRange=false] - Whether date range selection is enabled.
271
- * @param {JSX.Element|null} [props.activator] - Custom activator for the popover.
272
- * @param {Date|string|null} [props.disableDatesAfter] - Dates after this value are disabled.
273
- * @param {Date|string|null} [props.disableDatesBefore] - Dates before this value are disabled.
274
- * @param {function} [props.onChange] - Callback function called when the date changes.
275
- * @param {boolean} [props.multiMonth=false] - Whether multiple months are shown.
276
- * @param {boolean} [props.disabled=false] - Whether the DatePicker is disabled.
277
- * @param {boolean} [props.showTimePicker=false] - Whether a time picker is displayed.
278
- * @param {boolean} [props.autoFocus=false] - Whether the input is focused automatically.
279
- * @param {Date|null} [props.maxDate] - Maximum selectable date.
280
- * @param {Date|null} [props.minDate] - Minimum selectable date.
281
- * @param {boolean} [props.inline=false] - Whether the calendar is displayed inline.
282
- * @param {string} [props.preferredAlignment="left"] - Alignment of the popover.
283
- * @param {string} [props.preferredPosition="below"] - Position of the popover.
284
- * @param {boolean} [props.includeHourlyPresets=false] - Whether hourly (last 30 minutes, last hour) presets are included.
285
- * @param {Array} [props.customPresets=[]] - Custom presets to include.
286
- * @param {JSX.Element|null} [props.footer] - An optional footer component to display at the bottom of the DatePicker.
287
- * @returns {JSX.Element} The rendered DatePicker component.
288
- */ function DatePicker() {
299
+ function DatePicker() {
289
300
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
290
301
  var label = props.label, _props_labelAction = props.labelAction, labelAction = _props_labelAction === void 0 ? null : _props_labelAction, onBlur = props.onBlur, _props_placeholder = props.placeholder, placeholder = _props_placeholder === void 0 ? "Select date..." : _props_placeholder, _props_displayFormat = props.displayFormat, displayFormat = _props_displayFormat === void 0 ? props.showTimePicker && !props.allowRange ? _dates.DAY_TIME_FORMAT : _dates.DAY_FORMAT : _props_displayFormat, helpText = props.helpText, _props_suffix = props.suffix, suffix = _props_suffix === void 0 ? null : _props_suffix, isClearable = props.isClearable, tooltip = props.tooltip, tmp = props.locale, _locale1 = tmp === void 0 ? "en-US" : tmp, _value = props.value, _props_allowRange = props.allowRange, allowRange = _props_allowRange === void 0 ? false : _props_allowRange, activator = props.activator, disableDatesAfter = props.disableDatesAfter, disableDatesBefore = props.disableDatesBefore, onChange = props.onChange, multiMonth = props.multiMonth, disabled = props.disabled, showTimePicker = props.showTimePicker, autoFocus = props.autoFocus, _maxDate = props.maxDate, _minDate = props.minDate, _props_inline = props.inline, inline = _props_inline === void 0 ? false : _props_inline, _props_closeAfterDateSelection = props.closeAfterDateSelection, closeAfterDateSelection = _props_closeAfterDateSelection === void 0 ? true : _props_closeAfterDateSelection, _props_preferredAlignment = props.preferredAlignment, preferredAlignment = _props_preferredAlignment === void 0 ? "left" : _props_preferredAlignment, _props_preferredPosition = props.preferredPosition, preferredPosition = _props_preferredPosition === void 0 ? "below" : _props_preferredPosition, _props_includeHourlyPresets = props.includeHourlyPresets, includeHourlyPresets = _props_includeHourlyPresets === void 0 ? false : _props_includeHourlyPresets, _props_customPresets = props.customPresets, customPresets = _props_customPresets === void 0 ? [] : _props_customPresets, footer = props.footer;
291
302
  var _useState = _sliced_to_array((0, _react.useState)(false), 2), showPopover = _useState[0], setShowPopover = _useState[1];
@@ -1,7 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _jsxruntime = require("react/jsx-runtime");
12
+ var _tailwindvariants = require("tailwind-variants");
1
13
  /**
2
- * Renders a Disclosure component that displays content with disclosure styling.
14
+ * @component Disclosure
15
+ *
16
+ * @description A styled container with a vertical border indicator, used to visually denote expandable or nested content sections.
17
+ *
18
+ * @usage
19
+ * - DO: Use to wrap expandable content sections with a consistent bordered container style.
20
+ * - DON'T: Use as a generic container; use `Box` or `Card` for non-disclosure content.
21
+ *
22
+ * @accessibility
23
+ * - Disclosure is a styled container only; the toggle mechanism must be implemented separately with proper `aria-expanded` attributes.
24
+ * - Pair with `Collapsible` for animated show/hide behavior with accessible state management.
25
+ *
26
+ * @alternative
27
+ * - If you need animated expand/collapse behavior, wrap content in `Collapsible` instead.
28
+ * - If you need a general-purpose container, use `Card` or `Box` instead.
3
29
  *
4
- * @component
5
30
  * @param {Object} props - Component properties.
6
31
  * @param {React.ReactNode} props.children - The content to display within the disclosure.
7
32
  * @param {string} [props.className] - Additional CSS classes to apply to the disclosure.
@@ -18,25 +43,44 @@
18
43
  * <Disclosure className="mt-4">
19
44
  * <Text>This is disclosure content with margin</Text>
20
45
  * </Disclosure>
21
- */ "use strict";
22
- Object.defineProperty(exports, "__esModule", {
23
- value: true
46
+ */ var styles = (0, _tailwindvariants.tv)({
47
+ base: "Litho-Disclosure relative",
48
+ variants: {
49
+ flush: {
50
+ true: "pl-4",
51
+ false: "pl-7.5 @md:pl-7"
52
+ }
53
+ },
54
+ defaultVariants: {
55
+ flush: false
56
+ }
24
57
  });
25
- Object.defineProperty(exports, "default", {
26
- enumerable: true,
27
- get: function() {
28
- return _default;
58
+ var borderStyles = (0, _tailwindvariants.tv)({
59
+ base: "Litho-Disclosure__Border absolute top-0 w-px h-full bg-tint-5 dark:bg-tint-alt-5",
60
+ variants: {
61
+ flush: {
62
+ true: "left-0.5",
63
+ false: "left-[9px]"
64
+ }
65
+ },
66
+ defaultVariants: {
67
+ flush: false
29
68
  }
30
69
  });
31
- var _jsxruntime = require("react/jsx-runtime");
32
70
  function Disclosure() {
33
71
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
34
- var children = props.children, className = props.className;
72
+ var children = props.children, className = props.className, _props_flush = props.flush, flush = _props_flush === void 0 ? false : _props_flush;
73
+ var classes = styles({
74
+ flush: flush
75
+ });
76
+ var borderClasses = borderStyles({
77
+ flush: flush
78
+ });
35
79
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
36
- className: "relative pl-7.5 @md:pl-7".concat(className ? " ".concat(className) : ""),
80
+ className: "".concat(classes).concat(className ? " ".concat(className) : ""),
37
81
  children: [
38
82
  /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
39
- className: "absolute left-[9px] top-0 w-px h-full bg-tint-5 dark:bg-tint-alt-5"
83
+ className: borderClasses
40
84
  }),
41
85
  /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
42
86
  children: children
@@ -10,24 +10,32 @@ 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)({
14
- base: "Litho-Divider h-px",
15
- variants: {
16
- color: {
17
- default: "bg-edge-default",
18
- subdued: "bg-edge-subdued"
19
- }
20
- },
21
- defaultVariants: {
22
- color: "default"
23
- }
24
- });
13
+ var _Text = /*#__PURE__*/ _interop_require_default(require("./Text"));
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
25
19
  /**
26
- * Renders a divider element with customizable color variants.
20
+ * @component Divider
21
+ *
22
+ * @description A visual separator that creates a horizontal line between content sections, with optional label text and color variants.
23
+ *
24
+ * @usage
25
+ * - DO: Use to visually separate sections of content within a page or card.
26
+ * - DON'T: Use as a decorative border; prefer CSS border utilities for non-semantic separation.
27
+ *
28
+ * @accessibility
29
+ * - Renders as a `<div>` with a visual line; does not convey semantic meaning to screen readers.
30
+ * - When using with a label, ensure the label text provides meaningful context for sighted users.
31
+ *
32
+ * @alternative
33
+ * - If you need spacing without a visible line, use `Stack` with gap instead.
27
34
  *
28
- * @component
29
35
  * @param {Object} props - Component properties.
30
36
  * @param {'default' | 'subdued'} [props.color='default'] - The color variant to apply to the divider.
37
+ * @param {string} [props.label] - Optional label to display in the divider.
38
+ * @param {'left' | 'center' | 'right'} [props.labelAlignment='center'] - The alignment of the label.
31
39
  * @returns {JSX.Element} A styled `<div>` element serving as a divider.
32
40
  *
33
41
  * @example
@@ -37,14 +45,70 @@ var styles = (0, _tailwindvariants.tv)({
37
45
  * @example
38
46
  * // Renders a subdued color divider
39
47
  * <Divider color="subdued" />
40
- */ function Divider() {
48
+ *
49
+ * @example
50
+ * // Renders a divider with a centered label
51
+ * <Divider label="Or continue with" />
52
+ */ var styles = (0, _tailwindvariants.tv)({
53
+ base: "Litho-Divider h-px",
54
+ variants: {
55
+ color: {
56
+ default: "bg-edge-default",
57
+ subdued: "bg-edge-subdued"
58
+ }
59
+ },
60
+ defaultVariants: {
61
+ color: "default",
62
+ labelAlignment: "center"
63
+ }
64
+ });
65
+ var containerStyles = (0, _tailwindvariants.tv)({
66
+ base: "Litho-Divider flex items-center gap-3"
67
+ });
68
+ function Divider() {
41
69
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
42
- var color = props.color;
43
- var classes = styles({
70
+ var color = props.color, label = props.label, _props_labelAlignment = props.labelAlignment, labelAlignment = _props_labelAlignment === void 0 ? "center" : _props_labelAlignment, className = props.className;
71
+ var lineClasses = styles({
44
72
  color: color
45
73
  });
74
+ var containerClasses = containerStyles();
75
+ if (label) {
76
+ if (labelAlignment === "left") {
77
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
78
+ className: "".concat(containerClasses).concat(className ? " ".concat(className) : ""),
79
+ children: [
80
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
81
+ as: "span",
82
+ variant: "bodySm",
83
+ color: "subdued",
84
+ children: label
85
+ }),
86
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
87
+ className: "".concat(lineClasses, " flex-1")
88
+ })
89
+ ]
90
+ });
91
+ }
92
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
93
+ className: "".concat(containerClasses).concat(className ? " ".concat(className) : ""),
94
+ children: [
95
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
96
+ className: "".concat(lineClasses, " flex-1")
97
+ }),
98
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
99
+ as: "span",
100
+ variant: "bodySm",
101
+ color: "subdued",
102
+ children: label
103
+ }),
104
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
105
+ className: "".concat(lineClasses, " flex-1")
106
+ })
107
+ ]
108
+ });
109
+ }
46
110
  return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
47
- className: classes
111
+ className: lineClasses
48
112
  });
49
113
  }
50
114
  var _default = Divider;