@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
@@ -2,8 +2,42 @@ 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 Label from "./Label.js";
5
- var styles = tv({
6
- base: "Litho-RadioButtonCardContainer border border-transparent rounded-lg p-3 pl-4 flex justify-between gap-2",
5
+ /**
6
+ * @component RadioButtonCard
7
+ *
8
+ * @description A card-styled radio input that displays a title and description within a selectable card container.
9
+ *
10
+ * @usage
11
+ * - DO: Use for visually prominent single-choice selections with descriptive content.
12
+ * - DON'T: Use for simple inline radio inputs (use RadioButton).
13
+ *
14
+ * @accessibility
15
+ * - The entire card is clickable and keyboard accessible; ensure title clearly describes the option.
16
+ *
17
+ * @alternative
18
+ * - If you need a simple inline radio button, use `RadioButton`. If you need a checkbox-style card, use `CheckboxCard`.
19
+ *
20
+ * @param {Object} props - Props for the RadioButtonCard component.
21
+ * @param {string} [props.label] - The text label for the radio button.
22
+ * @param {boolean} [props.labelHidden=false] - If true, hides the label visually but keeps it available for screen readers.
23
+ * @param {string} [props.id] - The unique identifier for the radio input.
24
+ * @param {string} [props.name] - The name attribute for the radio input (must be the same for grouped buttons).
25
+ * @param {string} [props.description] - A description of the radio button.
26
+ * @param {string} [props.value] - The value attribute for the radio input.
27
+ * @param {string} [props.error] - An error message associated with the radio button, if any.
28
+ * @param {boolean} [props.checked=false] - Indicates whether the radio button is checked.
29
+ * @param {boolean} [props.disabled=false] - Indicates whether the radio button is disabled.
30
+ * @param {string} [props.helpText] - Additional descriptive text for the radio button.
31
+ * @param {function} [props.onChange] - Callback function called when the radio button state changes.
32
+ * @param {function} [props.onFocus] - Callback function called when the radio button gains focus.
33
+ * @param {function} [props.onBlur] - Callback function called when the radio button loses focus.
34
+ * @param {boolean} [props.hideRadioButton=false] - When true, hides the visual radio button control.
35
+ * @param {React.ReactNode} [props.icon=null] - Optional icon JSX to display in the card.
36
+ * @param {boolean} [props.allowDeselect=true] - When true, clicking an already-selected card deselects it by calling onChange with a synthetic event where target.value is null.
37
+ *
38
+ * @returns {JSX.Element} The rendered RadioButton component.
39
+ */ var styles = tv({
40
+ base: "Litho-RadioButtonCardContainer border border-transparent rounded-lg p-3 pl-4 flex justify-between gap-2 hover:border-form-border-focus hover:ring hover:ring-form-focus",
7
41
  variants: {
8
42
  disabled: {
9
43
  true: "bg-tint-1",
@@ -18,12 +52,12 @@ var styles = tv({
18
52
  {
19
53
  disabled: false,
20
54
  checked: true,
21
- class: "border-form-border-focus ring-1 ring-inset ring-form-border-focus"
55
+ class: "border-form-border-focus bg-surface-selected"
22
56
  },
23
57
  {
24
58
  disabled: false,
25
59
  checked: false,
26
- class: "hover:border-edge-default"
60
+ class: ""
27
61
  }
28
62
  ]
29
63
  });
@@ -61,32 +95,9 @@ var radioStyles = tv({
61
95
  }
62
96
  ]
63
97
  });
64
- /**
65
- * RadioButton Component
66
- *
67
- * A custom radio button component with support for labels, help text, and extensive styling using Tailwind Variants (tv).
68
- *
69
- * @component
70
- *
71
- * @param {Object} props - Props for the RadioButton component.
72
- * @param {string} [props.label] - The text label for the radio button.
73
- * @param {boolean} [props.labelHidden=false] - If true, hides the label visually but keeps it available for screen readers.
74
- * @param {string} [props.id] - The unique identifier for the radio input.
75
- * @param {string} [props.name] - The name attribute for the radio input (must be the same for grouped buttons).
76
- * @param {string} [props.description] - A description of the radio button.
77
- * @param {string} [props.value] - The value attribute for the radio input.
78
- * @param {string} [props.error] - An error message associated with the radio button, if any.
79
- * @param {boolean} [props.checked=false] - Indicates whether the radio button is checked.
80
- * @param {boolean} [props.disabled=false] - Indicates whether the radio button is disabled.
81
- * @param {string} [props.helpText] - Additional descriptive text for the radio button.
82
- * @param {function} [props.onChange] - Callback function called when the radio button state changes.
83
- * @param {function} [props.onFocus] - Callback function called when the radio button gains focus.
84
- * @param {function} [props.onBlur] - Callback function called when the radio button loses focus.
85
- *
86
- * @returns {JSX.Element} The rendered RadioButton component.
87
- */ function RadioButtonCard() {
98
+ function RadioButtonCard() {
88
99
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
89
- var label = props.label, tooltip = props.tooltip, labelHidden = props.labelHidden, id = props.id, name = props.name, description = props.description, value = props.value, error = props.error, _props_checked = props.checked, checked = _props_checked === void 0 ? false : _props_checked, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, helpText = props.helpText, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur;
100
+ var label = props.label, tooltip = props.tooltip, labelHidden = props.labelHidden, id = props.id, name = props.name, description = props.description, value = props.value, error = props.error, _props_checked = props.checked, checked = _props_checked === void 0 ? false : _props_checked, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, helpText = props.helpText, _props_hideRadioButton = props.hideRadioButton, hideRadioButton = _props_hideRadioButton === void 0 ? false : _props_hideRadioButton, _props_icon = props.icon, icon = _props_icon === void 0 ? null : _props_icon, _props_allowDeselect = props.allowDeselect, allowDeselect = _props_allowDeselect === void 0 ? true : _props_allowDeselect, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, _props_labelFontWeight = props.labelFontWeight, labelFontWeight = _props_labelFontWeight === void 0 ? "semibold" : _props_labelFontWeight;
90
101
  var hasError = !!error;
91
102
  var classes = styles({
92
103
  checked: checked,
@@ -113,57 +124,71 @@ var radioStyles = tv({
113
124
  onBlur(event);
114
125
  }
115
126
  };
127
+ var handleLabelClick = function() {
128
+ if (allowDeselect && checked && !disabled) {
129
+ onChange === null || onChange === void 0 ? void 0 : onChange({
130
+ target: {
131
+ value: null
132
+ }
133
+ });
134
+ }
135
+ };
116
136
  return /*#__PURE__*/ _jsxs("div", {
117
137
  className: "flex flex-col gap-1",
118
138
  children: [
119
139
  /*#__PURE__*/ _jsxs("label", {
120
140
  className: classes,
141
+ onClick: handleLabelClick,
121
142
  children: [
122
143
  /*#__PURE__*/ _jsxs("div", {
123
- className: "flex flex-col gap-1",
144
+ className: "flex items-center gap-4",
124
145
  children: [
125
- label && !labelHidden && /*#__PURE__*/ _jsx(Label, {
126
- tooltip: tooltip,
127
- disabled: disabled,
128
- fontWeight: "semibold",
129
- as: "p",
130
- children: label
146
+ icon && /*#__PURE__*/ _jsx("div", {
147
+ className: "flex-shrink-0",
148
+ children: icon
131
149
  }),
132
- description && /*#__PURE__*/ _jsx(Text, {
133
- color: disabled ? "disabled" : "subdued",
134
- children: description
150
+ /*#__PURE__*/ _jsxs("div", {
151
+ children: [
152
+ label && !labelHidden && /*#__PURE__*/ _jsx(Label, {
153
+ tooltip: tooltip,
154
+ disabled: disabled,
155
+ fontWeight: labelFontWeight,
156
+ as: "p",
157
+ children: label
158
+ }),
159
+ description && /*#__PURE__*/ _jsx(Text, {
160
+ color: disabled ? "disabled" : "subdued",
161
+ children: description
162
+ })
163
+ ]
135
164
  })
136
165
  ]
137
166
  }),
138
- /*#__PURE__*/ _jsxs("div", {
139
- children: [
140
- /*#__PURE__*/ _jsx("input", {
141
- type: "radio",
142
- id: id,
143
- name: name,
144
- value: value,
145
- checked: checked,
146
- disabled: disabled,
147
- onChange: handleChange,
148
- onFocus: handleFocus,
149
- onBlur: handleBlur,
150
- className: "sr-only"
151
- }),
152
- /*#__PURE__*/ _jsx("div", {
153
- className: "Litho-RadioButton__ControlContainer w-5 h-5 flex items-center",
154
- children: /*#__PURE__*/ _jsxs("div", {
155
- className: radioClasses,
156
- children: [
157
- checked && !hasError && /*#__PURE__*/ _jsx("div", {
158
- className: "rounded-full w-1.5 h-1.5 ".concat(disabled ? "bg-form-input-fg-disabled" : "bg-form-input-fg-light")
159
- }),
160
- checked && hasError && /*#__PURE__*/ _jsx("div", {
161
- className: "rounded-full w-1.5 h-1.5 ".concat(disabled ? "bg-form-input-fg-disabled" : "bg-form-bg")
162
- })
163
- ]
167
+ /*#__PURE__*/ _jsx("input", {
168
+ type: "radio",
169
+ id: id,
170
+ name: name,
171
+ value: value,
172
+ checked: checked,
173
+ disabled: disabled,
174
+ onChange: handleChange,
175
+ onFocus: handleFocus,
176
+ onBlur: handleBlur,
177
+ className: "sr-only"
178
+ }),
179
+ !hideRadioButton && /*#__PURE__*/ _jsx("div", {
180
+ className: "Litho-RadioButton__ControlContainer w-5 h-5 flex items-center",
181
+ children: /*#__PURE__*/ _jsxs("div", {
182
+ className: radioClasses,
183
+ children: [
184
+ checked && !hasError && /*#__PURE__*/ _jsx("div", {
185
+ className: "rounded-full w-1.5 h-1.5 ".concat(disabled ? "bg-form-input-fg-disabled" : "bg-form-input-fg-light")
186
+ }),
187
+ checked && hasError && /*#__PURE__*/ _jsx("div", {
188
+ className: "rounded-full w-1.5 h-1.5 ".concat(disabled ? "bg-form-input-fg-disabled" : "bg-form-bg")
164
189
  })
165
- })
166
- ]
190
+ ]
191
+ })
167
192
  })
168
193
  ]
169
194
  }),
@@ -0,0 +1,364 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function ownKeys(object, enumerableOnly) {
30
+ var keys = Object.keys(object);
31
+ if (Object.getOwnPropertySymbols) {
32
+ var symbols = Object.getOwnPropertySymbols(object);
33
+ if (enumerableOnly) {
34
+ symbols = symbols.filter(function(sym) {
35
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
36
+ });
37
+ }
38
+ keys.push.apply(keys, symbols);
39
+ }
40
+ return keys;
41
+ }
42
+ function _object_spread_props(target, source) {
43
+ source = source != null ? source : {};
44
+ if (Object.getOwnPropertyDescriptors) {
45
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
+ } else {
47
+ ownKeys(Object(source)).forEach(function(key) {
48
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
+ });
50
+ }
51
+ return target;
52
+ }
53
+ function _object_without_properties(source, excluded) {
54
+ if (source == null) return {};
55
+ var target = _object_without_properties_loose(source, excluded);
56
+ var key, i;
57
+ if (Object.getOwnPropertySymbols) {
58
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
59
+ for(i = 0; i < sourceSymbolKeys.length; i++){
60
+ key = sourceSymbolKeys[i];
61
+ if (excluded.indexOf(key) >= 0) continue;
62
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
63
+ target[key] = source[key];
64
+ }
65
+ }
66
+ return target;
67
+ }
68
+ function _object_without_properties_loose(source, excluded) {
69
+ if (source == null) return {};
70
+ var target = {};
71
+ var sourceKeys = Object.keys(source);
72
+ var key, i;
73
+ for(i = 0; i < sourceKeys.length; i++){
74
+ key = sourceKeys[i];
75
+ if (excluded.indexOf(key) >= 0) continue;
76
+ target[key] = source[key];
77
+ }
78
+ return target;
79
+ }
80
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
81
+ import { tv } from "tailwind-variants";
82
+ import Text from "./Text.js";
83
+ import Label from "./Label.js";
84
+ import Icon from "./Icon.js";
85
+ import { CircleAlertMajor } from "@shopify/polaris-icons";
86
+ /**
87
+ * @component RadioButtonCardGroup
88
+ *
89
+ * @description A grouped radio selection component that renders options in a single bordered container with dividers between items, using card-styled radio inputs.
90
+ *
91
+ * @usage
92
+ * - DO: Use for single-select options that benefit from a compact grouped list layout with descriptions and icons.
93
+ * - DON'T: Use when each option needs its own standalone card appearance (use RadioButtonCard individually).
94
+ *
95
+ * @accessibility
96
+ * - Each option uses a native radio input (sr-only) wrapped in a label for keyboard accessibility and screen reader support.
97
+ * - All radio inputs share the same `name` attribute for native radio group behavior.
98
+ * - Focus-visible ring appears on keyboard navigation.
99
+ *
100
+ * @alternative
101
+ * - If you need standalone card-styled radio inputs, use `RadioButtonCard`.
102
+ * - If you need a simple inline radio/checkbox list, use `ChoiceList`.
103
+ *
104
+ * @param {Object} [props={}] - Component props.
105
+ * @param {string} [props.title] - Optional title rendered above the group.
106
+ * @param {React.ReactNode} [props.tooltip] - Tooltip content for the title.
107
+ * @param {boolean} [props.titleHidden=false] - Visually hides the title while keeping it accessible to screen readers.
108
+ * @param {Array<RadioButtonCardGroupOption>} [props.options=[]] - Array of option objects to render.
109
+ * @param {string} props.options[].value - The value of the option.
110
+ * @param {string} props.options[].label - The display label of the option.
111
+ * @param {string} [props.options[].description] - A description displayed below the label.
112
+ * @param {React.ReactNode} [props.options[].icon] - Optional icon JSX displayed on the left.
113
+ * @param {boolean} [props.options[].disabled=false] - Whether this specific option is disabled.
114
+ * @param {string|React.ReactNode} [props.options[].helpText] - Additional descriptive text for the option.
115
+ * @param {React.ReactNode} [props.options[].tooltip] - Tooltip content for this option's label.
116
+ * @param {Array<string>} [props.selected=[]] - Currently selected values. Array for API consistency with ChoiceList.
117
+ * @param {Function} [props.onChange] - Callback when selection changes. Receives updated array of selected values.
118
+ * @param {string} [props.name] - The name attribute for the radio inputs (groups them together).
119
+ * @param {string} [props.error] - Error message displayed below the group.
120
+ * @param {boolean} [props.disabled=false] - Disables all options.
121
+ * @param {boolean} [props.hideRadioButton=false] - Hides the radio button controls.
122
+ * @param {boolean} [props.allowDeselect=false] - When true, clicking a selected option deselects it.
123
+ * @param {"left"|"right"} [props.radioPosition="right"] - Position of the radio button control relative to the content.
124
+ * @param {Object} [restProps] - Additional props passed to the root element.
125
+ *
126
+ * @returns {JSX.Element} The rendered RadioButtonCardGroup component.
127
+ *
128
+ * @example
129
+ * <RadioButtonCardGroup
130
+ * title="Select a plan"
131
+ * name="plan"
132
+ * options={[
133
+ * { value: "basic", label: "Basic", description: "For individuals" },
134
+ * { value: "pro", label: "Pro", description: "For teams" },
135
+ * { value: "enterprise", label: "Enterprise", description: "For organizations" },
136
+ * ]}
137
+ * selected={["basic"]}
138
+ * onChange={(selected) => setSelected(selected)}
139
+ * />
140
+ */ var containerStyles = tv({
141
+ base: "Litho-RadioButtonCardGroup border rounded-lg overflow-hidden",
142
+ variants: {
143
+ hasError: {
144
+ true: "border-form-border-error",
145
+ false: "border-edge-light"
146
+ }
147
+ },
148
+ defaultVariants: {
149
+ hasError: false
150
+ }
151
+ });
152
+ var itemStyles = tv({
153
+ base: "Litho-RadioButtonCardGroup__Item p-3 pl-4 flex items-center gap-3 has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-form-focus has-[:focus-visible]:ring-inset",
154
+ variants: {
155
+ checked: {
156
+ true: "",
157
+ false: ""
158
+ },
159
+ disabled: {
160
+ true: "bg-tint-1",
161
+ false: "cursor-pointer hover"
162
+ },
163
+ isLast: {
164
+ true: "",
165
+ false: "border-b border-edge-subdued"
166
+ },
167
+ radioPosition: {
168
+ right: "justify-between",
169
+ left: ""
170
+ }
171
+ },
172
+ defaultVariants: {
173
+ radioPosition: "right"
174
+ }
175
+ });
176
+ // Replicated from RadioButtonCard — the radio circle control styles
177
+ var radioStyles = tv({
178
+ base: "Litho-RadioButton__Control w-4.5 h-4.5 rounded-full border border-form-border flex items-center justify-center",
179
+ variants: {
180
+ disabled: {
181
+ true: "bg-form-bg-disabled border-form-border"
182
+ }
183
+ },
184
+ compoundVariants: [
185
+ {
186
+ hasError: true,
187
+ disabled: false,
188
+ checked: false,
189
+ class: "bg-form-bg-error border-form-border-error hover:bg-form-bg-error-low hover:ring hover:ring-form-focus-error"
190
+ },
191
+ {
192
+ hasError: true,
193
+ disabled: false,
194
+ checked: true,
195
+ class: "bg-critical border-form-border-error hover:ring hover:ring-form-focus-error"
196
+ },
197
+ {
198
+ hasError: false,
199
+ disabled: false,
200
+ checked: false,
201
+ class: "bg-form-bg border-form-border hover:border-form-border-focus hover:ring hover:ring-form-focus"
202
+ },
203
+ {
204
+ hasError: false,
205
+ disabled: false,
206
+ checked: true,
207
+ class: "bg-form-accent border-form-border-focus hover:border-form-border-focus hover:ring hover:ring-form-focus"
208
+ }
209
+ ]
210
+ });
211
+ function RadioButtonCardGroup() {
212
+ var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
213
+ var title = props.title, tooltip = props.tooltip, _props_titleHidden = props.titleHidden, titleHidden = _props_titleHidden === void 0 ? false : _props_titleHidden, _props_options = props.options, options = _props_options === void 0 ? [] : _props_options, _props_selected = props.selected, selected = _props_selected === void 0 ? [] : _props_selected, onChange = props.onChange, name = props.name, error = props.error, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, _props_hideRadioButton = props.hideRadioButton, hideRadioButton = _props_hideRadioButton === void 0 ? false : _props_hideRadioButton, _props_allowDeselect = props.allowDeselect, allowDeselect = _props_allowDeselect === void 0 ? false : _props_allowDeselect, _props_radioPosition = props.radioPosition, radioPosition = _props_radioPosition === void 0 ? "left" : _props_radioPosition, _props_labelFontWeight = props.labelFontWeight, labelFontWeight = _props_labelFontWeight === void 0 ? "semibold" : _props_labelFontWeight, restProps = _object_without_properties(props, [
214
+ "title",
215
+ "tooltip",
216
+ "titleHidden",
217
+ "options",
218
+ "selected",
219
+ "onChange",
220
+ "name",
221
+ "error",
222
+ "disabled",
223
+ "hideRadioButton",
224
+ "allowDeselect",
225
+ "radioPosition",
226
+ "labelFontWeight"
227
+ ]);
228
+ var hasError = !!error;
229
+ var containerClasses = containerStyles({
230
+ hasError: hasError
231
+ });
232
+ var handleOptionChange = function(optionValue) {
233
+ if (allowDeselect && selected.includes(optionValue)) {
234
+ onChange === null || onChange === void 0 ? void 0 : onChange([]);
235
+ } else {
236
+ onChange === null || onChange === void 0 ? void 0 : onChange([
237
+ optionValue
238
+ ]);
239
+ }
240
+ };
241
+ return /*#__PURE__*/ _jsxs("div", _object_spread_props(_object_spread({
242
+ className: "Litho-RadioButtonCardGroupContainer flex flex-col gap-1"
243
+ }, restProps), {
244
+ children: [
245
+ title && !titleHidden && /*#__PURE__*/ _jsx(Label, {
246
+ as: "p",
247
+ tooltip: tooltip,
248
+ children: title
249
+ }),
250
+ /*#__PURE__*/ _jsx("div", {
251
+ className: containerClasses,
252
+ children: options.map(function(option, index) {
253
+ var isChecked = selected.includes(option.value);
254
+ var isDisabled = disabled || option.disabled;
255
+ var isLast = index === options.length - 1;
256
+ var itemClasses = itemStyles({
257
+ checked: isChecked,
258
+ disabled: isDisabled,
259
+ isLast: isLast,
260
+ radioPosition: radioPosition
261
+ });
262
+ var radioClasses = radioStyles({
263
+ checked: isChecked,
264
+ disabled: isDisabled,
265
+ hasError: hasError
266
+ });
267
+ return /*#__PURE__*/ _jsxs("label", {
268
+ className: itemClasses,
269
+ onClick: function() {
270
+ if (allowDeselect && isChecked && !isDisabled) {
271
+ onChange === null || onChange === void 0 ? void 0 : onChange([]);
272
+ }
273
+ },
274
+ children: [
275
+ !hideRadioButton && radioPosition === "left" && /*#__PURE__*/ _jsx("div", {
276
+ className: "Litho-RadioButton__ControlContainer w-5 h-5 flex items-center flex-shrink-0",
277
+ children: /*#__PURE__*/ _jsxs("div", {
278
+ className: radioClasses,
279
+ children: [
280
+ isChecked && !hasError && /*#__PURE__*/ _jsx("div", {
281
+ className: "rounded-full w-1.5 h-1.5 ".concat(isDisabled ? "bg-form-input-fg-disabled" : "bg-form-input-fg-light")
282
+ }),
283
+ isChecked && hasError && /*#__PURE__*/ _jsx("div", {
284
+ className: "rounded-full w-1.5 h-1.5 ".concat(isDisabled ? "bg-form-input-fg-disabled" : "bg-form-bg")
285
+ })
286
+ ]
287
+ })
288
+ }),
289
+ /*#__PURE__*/ _jsxs("div", {
290
+ className: "flex items-center gap-4",
291
+ children: [
292
+ option.icon && /*#__PURE__*/ _jsx("div", {
293
+ className: "flex-shrink-0",
294
+ children: option.icon
295
+ }),
296
+ /*#__PURE__*/ _jsxs("div", {
297
+ children: [
298
+ option.label && /*#__PURE__*/ _jsx(Label, {
299
+ tooltip: option.tooltip,
300
+ disabled: isDisabled,
301
+ fontWeight: labelFontWeight,
302
+ as: "p",
303
+ children: option.label
304
+ }),
305
+ option.description && /*#__PURE__*/ _jsx(Text, {
306
+ color: isDisabled ? "disabled" : "subdued",
307
+ children: option.description
308
+ }),
309
+ option.helpText && typeof option.helpText === "string" && /*#__PURE__*/ _jsx(Text, {
310
+ color: isDisabled ? "disabled" : "subdued",
311
+ variant: "bodySm",
312
+ children: option.helpText
313
+ }),
314
+ option.helpText && typeof option.helpText !== "string" && option.helpText
315
+ ]
316
+ })
317
+ ]
318
+ }),
319
+ /*#__PURE__*/ _jsx("input", {
320
+ type: "radio",
321
+ name: name,
322
+ value: option.value,
323
+ checked: isChecked,
324
+ disabled: isDisabled,
325
+ onChange: function() {
326
+ return handleOptionChange(option.value);
327
+ },
328
+ className: "sr-only"
329
+ }),
330
+ !hideRadioButton && radioPosition === "right" && /*#__PURE__*/ _jsx("div", {
331
+ className: "Litho-RadioButton__ControlContainer w-5 h-5 flex items-center",
332
+ children: /*#__PURE__*/ _jsxs("div", {
333
+ className: radioClasses,
334
+ children: [
335
+ isChecked && !hasError && /*#__PURE__*/ _jsx("div", {
336
+ className: "rounded-full w-1.5 h-1.5 ".concat(isDisabled ? "bg-form-input-fg-disabled" : "bg-form-input-fg-light")
337
+ }),
338
+ isChecked && hasError && /*#__PURE__*/ _jsx("div", {
339
+ className: "rounded-full w-1.5 h-1.5 ".concat(isDisabled ? "bg-form-input-fg-disabled" : "bg-form-bg")
340
+ })
341
+ ]
342
+ })
343
+ })
344
+ ]
345
+ }, option.value);
346
+ })
347
+ }),
348
+ error && /*#__PURE__*/ _jsxs("div", {
349
+ className: "flex gap-2 items-center",
350
+ children: [
351
+ /*#__PURE__*/ _jsx(Icon, {
352
+ source: CircleAlertMajor,
353
+ color: "critical"
354
+ }),
355
+ /*#__PURE__*/ _jsx(Text, {
356
+ color: "critical",
357
+ children: error
358
+ })
359
+ ]
360
+ })
361
+ ]
362
+ }));
363
+ }
364
+ export default RadioButtonCardGroup;
@@ -51,7 +51,39 @@ import Label from "./Label.js";
51
51
  import Text from "./Text.js";
52
52
  import TextField from "./TextField.js";
53
53
  import { tv } from "tailwind-variants";
54
- var rangeStyles = tv({
54
+ /**
55
+ * @component RangeSlider
56
+ *
57
+ * @description A slider input for selecting a numeric value within a defined range, with optional label, prefix, suffix, and numeric text field output.
58
+ *
59
+ * @usage
60
+ * - DO: Use for selecting a numeric value within a continuous range (e.g., volume, price, percentage).
61
+ * - DON'T: Use for discrete option selection (use Select or Listbox).
62
+ *
63
+ * @accessibility
64
+ * - Renders a native `<input type="range">` element; ensure a descriptive label is provided via the `label` prop.
65
+ *
66
+ * @alternative
67
+ * - If you need a text-only numeric input, use `TextField` with `type="number"`.
68
+ *
69
+ * @param {Object} props - Component props.
70
+ * @param {string} [props.id] - The ID for the range input element.
71
+ * @param {string} [props.label] - Label displayed above the slider.
72
+ * @param {boolean} [props.labelHidden] - Whether the label is visually hidden.
73
+ * @param {string} [props.labelVariant] - Typography variant for the label.
74
+ * @param {string} [props.tooltip] - Tooltip content for the label.
75
+ * @param {boolean} [props.disabled] - Whether the slider is disabled.
76
+ * @param {number} [props.step=1] - Step increment for the slider.
77
+ * @param {React.ReactNode} [props.prefix] - Content displayed before the slider.
78
+ * @param {string} [props.prefixClasses=""] - Additional CSS classes for the prefix.
79
+ * @param {React.ReactNode} [props.suffix] - Content displayed in the output text field suffix.
80
+ * @param {number} [props.value] - The current value of the slider.
81
+ * @param {number} [props.min=0] - Minimum value of the slider.
82
+ * @param {number} [props.max=100] - Maximum value of the slider.
83
+ * @param {boolean} [props.output=true] - Whether to show the numeric output text field.
84
+ * @param {Function} [props.onChange] - Callback fired when the value changes.
85
+ * @returns {JSX.Element} The rendered RangeSlider component.
86
+ */ var rangeStyles = tv({
55
87
  base: "Litho-RangeSlider__ActiveRange absolute left-0 top-1/2 -translate-y-1/2 rounded-l-full h-1 pointer-events-none",
56
88
  variants: {
57
89
  disabled: {
@@ -87,31 +119,7 @@ function useSyncedState(externalValue) {
87
119
  setValue
88
120
  ];
89
121
  }
90
- /**
91
- * RangeSlider Component
92
- *
93
- * A range slider component that allows users to select a numeric value within a defined range.
94
- *
95
- * @component
96
- * @param {Object} props - The properties for the RangeSlider component.
97
- * @param {string} [props.id] - The unique ID for the slider. If not provided, a UUID will be generated.
98
- * @param {string} [props.label] - The label text displayed for the slider.
99
- * @param {boolean} [props.labelHidden=false] - If true, hides the label visually but keeps it accessible for screen readers.
100
- * @param {string} [props.labelVariant] - Variant of the label style.
101
- * @param {string} [props.tooltip] - Tooltip text for the label.
102
- * @param {boolean} [props.disabled=false] - Disables the slider if true.
103
- * @param {number} [props.step=1] - Step value for the slider increments.
104
- * @param {string} [props.prefix] - Text to display before the slider input.
105
- * @param {string} [props.prefixClasses=""] - Additional classes for the prefix text.
106
- * @param {string} [props.suffix] - Text to display after the slider value input.
107
- * @param {number} [props.value] - Initial value for the slider. Defaults to the minimum value.
108
- * @param {number} [props.min=0] - Minimum value of the slider.
109
- * @param {number} [props.max=100] - Maximum value of the slider.
110
- * @param {boolean} [props.output=true] - Whether to display an output field for the slider value.
111
- * @param {function} [props.onChange] - Callback function triggered when the slider value changes.
112
- *
113
- * @returns {JSX.Element} The rendered RangeSlider component.
114
- */ function RangeSlider() {
122
+ function RangeSlider() {
115
123
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
116
124
  var _id = props.id, label = props.label, labelHidden = props.labelHidden, labelVariant = props.labelVariant, tooltip = props.tooltip, disabled = props.disabled, _props_step = props.step, step = _props_step === void 0 ? 1 : _props_step, prefix = props.prefix, _props_prefixClasses = props.prefixClasses, prefixClasses = _props_prefixClasses === void 0 ? "" : _props_prefixClasses, suffix = props.suffix, initialValue = props.value, _props_min = props.min, min = _props_min === void 0 ? 0 : _props_min, _props_max = props.max, max = _props_max === void 0 ? 100 : _props_max, _props_output = props.output, output = _props_output === void 0 ? true : _props_output, onChange = props.onChange;
117
125
  var idValue = useId();