@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
@@ -139,7 +139,7 @@ var HOURLY_RANGE_PRESETS = [
139
139
  id: "last_30_minutes",
140
140
  label: "Last 30 minutes",
141
141
  value: {
142
- start: (0, _dayjs.default)().startOf("minute").subtract(29, "minutes").toDate(),
142
+ start: (0, _dayjs.default)().subtract(30, "minutes").startOf("minute").toDate(),
143
143
  end: (0, _dayjs.default)().endOf("minute").toDate()
144
144
  }
145
145
  },
@@ -173,7 +173,7 @@ var RANGE_PRESETS = [
173
173
  id: "last_12_hours",
174
174
  label: "Last 12 hours",
175
175
  value: {
176
- start: (0, _dayjs.default)().subtract(11, "hours").startOf("hour").toDate(),
176
+ start: (0, _dayjs.default)().subtract(12, "hours").startOf("hour").toDate(),
177
177
  end: (0, _dayjs.default)().endOf("hour").toDate()
178
178
  }
179
179
  },
@@ -182,7 +182,7 @@ var RANGE_PRESETS = [
182
182
  hideCalendar: true,
183
183
  label: "Last 24 hours",
184
184
  value: {
185
- start: (0, _dayjs.default)().subtract(23, "hours").startOf("hour").toDate(),
185
+ start: (0, _dayjs.default)().subtract(24, "hours").startOf("hour").toDate(),
186
186
  end: (0, _dayjs.default)().endOf("hour").toDate()
187
187
  }
188
188
  },
@@ -190,7 +190,7 @@ var RANGE_PRESETS = [
190
190
  id: "last_7_days",
191
191
  label: "Last 7 days",
192
192
  value: {
193
- start: (0, _dayjs.default)().subtract(6, "day").startOf("day").toDate(),
193
+ start: (0, _dayjs.default)().subtract(7, "day").startOf("day").toDate(),
194
194
  end: (0, _dayjs.default)().endOf("day").toDate()
195
195
  }
196
196
  },
@@ -198,7 +198,7 @@ var RANGE_PRESETS = [
198
198
  id: "last_14_days",
199
199
  label: "Last 14 days",
200
200
  value: {
201
- start: (0, _dayjs.default)().subtract(13, "day").startOf("day").toDate(),
201
+ start: (0, _dayjs.default)().subtract(14, "day").startOf("day").toDate(),
202
202
  end: (0, _dayjs.default)().endOf("day").toDate()
203
203
  }
204
204
  },
@@ -206,7 +206,7 @@ var RANGE_PRESETS = [
206
206
  id: "last_30_days",
207
207
  label: "Last 30 days",
208
208
  value: {
209
- start: (0, _dayjs.default)().subtract(29, "day").startOf("day").toDate(),
209
+ start: (0, _dayjs.default)().subtract(30, "day").startOf("day").toDate(),
210
210
  end: (0, _dayjs.default)().endOf("day").toDate()
211
211
  }
212
212
  },
@@ -214,7 +214,7 @@ var RANGE_PRESETS = [
214
214
  id: "last_90_days",
215
215
  label: "Last 90 days",
216
216
  value: {
217
- start: (0, _dayjs.default)().subtract(89, "day").startOf("day").toDate(),
217
+ start: (0, _dayjs.default)().subtract(90, "day").startOf("day").toDate(),
218
218
  end: (0, _dayjs.default)().endOf("day").toDate()
219
219
  }
220
220
  },
@@ -6,7 +6,36 @@ import Icon from "./Icon.js";
6
6
  import Text from "./Text.js";
7
7
  import Tooltip from "./Tooltip.js";
8
8
  import { MobileHorizontalDotsMajor } from "@shopify/polaris-icons";
9
- var styles = tv({
9
+ /**
10
+ * @component ActionList
11
+ *
12
+ * @description A vertical list of actionable items typically displayed inside a Popover for dropdown menus and contextual actions.
13
+ *
14
+ * @usage
15
+ * - DO: Display a list of actions inside a Popover dropdown menu.
16
+ * - DON'T: Use as a standalone visible list (use List or ResourceList).
17
+ *
18
+ * @accessibility
19
+ * - Renders as a list of buttons; each action item is keyboard navigable.
20
+ *
21
+ * @alternative
22
+ * - If you need a visible list of content, use `List`.
23
+ * - If you need a selectable list, use `Listbox`.
24
+ *
25
+ * @param {Object} props - Component properties.
26
+ * @param {Array<{title: string, items: Array<ActionListItem>}>} [props.sections] - Sections containing items for the action list.
27
+ * @param {Array<ActionListItem>} [props.items] - List of items to render in the action list when no sections are provided.
28
+ * @param {string} [props.iconColor="subdued"] - Default color for icons in the action items.
29
+ * @param {function} [props.onActionAnyItem] - Callback function invoked whenever any action item is selected.
30
+ * @param {boolean} [props.fullWidth=false] - Whether to apply full width styling to the action list.
31
+ * @param {boolean} [props.padded=true] - Whether to apply padding to the action list.
32
+ * @param {string} [props.className] - Additional CSS classes to apply to the action list.
33
+ * @example
34
+ * const items = [{ content: 'Item 1', onAction: () => {} }];
35
+ * <ActionList items={items} />
36
+ *
37
+ * @returns {JSX.Element} The rendered ActionList component.
38
+ */ var styles = tv({
10
39
  base: "Litho-ActionList",
11
40
  variants: {
12
41
  fullWidth: {
@@ -64,28 +93,12 @@ var itemStyles = tv({
64
93
  * @property {string} imageUrl - The image to display for the action item.
65
94
  * @property {string} url - The URL to navigate to when the action item is selected.
66
95
  * @property {SecondaryAction} secondaryAction - The secondary action to display for the action item.
67
- */ /**
68
- * ActionList component renders a list of actionable items with optional sections.
69
- * Supports keyboard navigation and action triggers on item selection.
70
- *
71
- * @component
72
- * @param {Object} props - Component properties.
73
- * @param {Array<{title: string, items: Array<ActionListItem>}>} [props.sections] - Sections containing items for the action list.
74
- * @param {Array<ActionListItem>} [props.items] - List of items to render in the action list when no sections are provided.
75
- * @param {string} [props.iconColor="subdued"] - Default color for icons in the action items.
76
- * @param {function} [props.onActionAnyItem] - Callback function invoked whenever any action item is selected.
77
- * @param {boolean} [props.fullWidth=false] - Whether to apply full width styling to the action list.
78
- * @param {boolean} [props.padded=true] - Whether to apply padding to the action list.
79
- * @param {string} [props.className] - Additional CSS classes to apply to the action list.
80
- * @example
81
- * const items = [{ content: 'Item 1', onAction: () => {} }];
82
- * <ActionList items={items} />
83
- *
84
- * @returns {JSX.Element} The rendered ActionList component.
85
96
  */ function ActionList() {
86
97
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
87
98
  var sections = props.sections, _props_padded = props.padded, padded = _props_padded === void 0 ? true : _props_padded, tmp = props.items, initialItems = tmp === void 0 ? [] : tmp, tmp1 = props.iconColor, _iconColor = tmp1 === void 0 ? "subdued" : tmp1, onActionAnyItem = props.onActionAnyItem, className = props.className, _props_fullWidth = props.fullWidth, fullWidth = _props_fullWidth === void 0 ? false : _props_fullWidth;
88
- var sectionTitleAsKeys = true;
99
+ // Always use index-based keys to avoid duplicate key issues when
100
+ // multiple sections have empty or identical titles
101
+ var sectionTitleAsKeys = false;
89
102
  var items = initialItems || (sections ? sections.flatMap(function(section) {
90
103
  return section.items;
91
104
  }) : []);
@@ -128,11 +141,6 @@ var itemStyles = tv({
128
141
  padded: padded
129
142
  });
130
143
  var isSectioned = sections && sections.length > 0;
131
- if (isSectioned) {
132
- sectionTitleAsKeys = sections.every(function(section) {
133
- return Object.prototype.hasOwnProperty.call(section, "title");
134
- });
135
- }
136
144
  var ActionListItem = function(param) {
137
145
  var item = param.item, index = param.index;
138
146
  var content = item.content, description = item.description, disabled = item.disabled, destructive = item.destructive, icon = item.icon, onAction = item.onAction, prefix = item.prefix, imageUrl = item.imageUrl, url = item.url, secondaryAction = item.secondaryAction;
@@ -1,8 +1,86 @@
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
+ }
1
53
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
54
  import { tv } from "tailwind-variants";
3
55
  import Text from "./Text.js";
4
56
  import Icon from "./Icon.js";
5
- var styles = tv({
57
+ import { CancelSmallMinor } from "@shopify/polaris-icons";
58
+ /**
59
+ * @component AnnouncementBar
60
+ *
61
+ * @description A full-width banner displayed at the top of the application for global announcements and promotions.
62
+ *
63
+ * @usage
64
+ * - DO: Display global announcements, promotions, or system-wide messages.
65
+ * - DON'T: Use for page-specific messages (use Banner).
66
+ *
67
+ * @accessibility
68
+ * - Ensure the announcement text is descriptive; provide a dismiss action for user control.
69
+ *
70
+ * @alternative
71
+ * - If you need page-specific messaging, use `Banner`.
72
+ * - If you need a contextual hint, use `Tip`.
73
+ *
74
+ * @param {Object} props - Component properties.
75
+ * @param {Function} [props.onClick] - Click handler function.
76
+ * @param {string} props.content - Text content to be displayed.
77
+ * @param {string} [props.icon] - Icon source name.
78
+ * @param {"bounce"} [props.animateIcon] - Animation type for the icon.
79
+ * @param {boolean} [props.fixed] - Whether to fix the announcement bar to the top of the page.
80
+ * @param {Function} [props.onDismiss] - Callback to dismiss the announcement bar. Renders a close button when provided.
81
+ *
82
+ * @returns {JSX.Element} AnnouncementBar component.
83
+ */ var styles = tv({
6
84
  base: "Litho-AnnouncementBar text-center p-2 min-h-10 flex items-center justify-center bg-brand",
7
85
  variants: {
8
86
  fixed: {
@@ -22,28 +100,27 @@ var iconContainerStyles = tv({
22
100
  }
23
101
  }
24
102
  });
25
- /**
26
- * AnnouncementBar Component
27
- *
28
- * @param {Object} props - Component properties.
29
- * @param {Function} [props.onClick] - Click handler function.
30
- * @param {string} props.content - Text content to be displayed.
31
- * @param {string} [props.icon] - Icon source name.
32
- * @param {"bounce"} [props.animateIcon] - Animation type for the icon.
33
- * @param {boolean} [props.fixed] - Whether to fix the announcement bar to the top of the page.
34
- *
35
- * @returns {JSX.Element} AnnouncementBar component.
36
- */ function AnnouncementBar() {
103
+ function AnnouncementBar() {
37
104
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
38
- var onClick = props.onClick, content = props.content, icon = props.icon, animateIcon = props.animateIcon, _props_fixed = props.fixed, fixed = _props_fixed === void 0 ? false : _props_fixed;
39
- return /*#__PURE__*/ _jsx("div", {
105
+ var onClick = props.onClick, content = props.content, icon = props.icon, animateIcon = props.animateIcon, _props_fixed = props.fixed, fixed = _props_fixed === void 0 ? false : _props_fixed, onDismiss = props.onDismiss;
106
+ return /*#__PURE__*/ _jsx("div", _object_spread_props(_object_spread({
40
107
  className: styles({
41
108
  fixed: fixed,
42
109
  interactive: !!onClick
43
110
  }),
44
- onClick: onClick,
111
+ onClick: onClick
112
+ }, onClick ? {
113
+ role: "button",
114
+ tabIndex: 0,
115
+ onKeyDown: function(e) {
116
+ if (e.key === "Enter" || e.key === " ") {
117
+ e.preventDefault();
118
+ onClick(e);
119
+ }
120
+ }
121
+ } : {}), {
45
122
  children: /*#__PURE__*/ _jsxs("div", {
46
- className: "flex items-center justify-center gap-4",
123
+ className: "flex items-center justify-center gap-4 w-full relative",
47
124
  children: [
48
125
  /*#__PURE__*/ _jsx(Text, {
49
126
  fontWeight: "medium",
@@ -57,9 +134,29 @@ var iconContainerStyles = tv({
57
134
  children: /*#__PURE__*/ _jsx(Icon, {
58
135
  source: icon
59
136
  })
137
+ }),
138
+ onDismiss && /*#__PURE__*/ _jsx("div", {
139
+ className: "absolute right-0 p-1 cursor-pointer rounded-md hover:bg-brand-low",
140
+ onClick: function(e) {
141
+ e.stopPropagation();
142
+ onDismiss();
143
+ },
144
+ role: "button",
145
+ tabIndex: 0,
146
+ "aria-label": "Dismiss announcement",
147
+ onKeyDown: function(e) {
148
+ if (e.key === "Enter" || e.key === " ") {
149
+ e.preventDefault();
150
+ e.stopPropagation();
151
+ onDismiss();
152
+ }
153
+ },
154
+ children: /*#__PURE__*/ _jsx(Icon, {
155
+ source: CancelSmallMinor
156
+ })
60
157
  })
61
158
  ]
62
159
  })
63
- });
160
+ }));
64
161
  }
65
162
  export default AnnouncementBar;
@@ -0,0 +1,254 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { tv } from "tailwind-variants";
4
+ import Button from "./Button.js";
5
+ import Card from "./Card.js";
6
+ import Icon from "./Icon.js";
7
+ import Stack from "./Stack.js";
8
+ import Text from "./Text.js";
9
+ import Tooltip from "./Tooltip.js";
10
+ import { CancelMinor } from "@shopify/polaris-icons";
11
+ /**
12
+ * @component AnnouncementCard
13
+ *
14
+ * @description A promotional card that displays a title, description, decorative icon, and action buttons. Used for feature announcements, onboarding prompts, and contextual promotions.
15
+ *
16
+ * @usage
17
+ * - DO: Use for feature announcements, onboarding prompts, or promotional content within a page.
18
+ * - DON'T: Use for alerts or critical messages (use Banner). Don't use for global announcements (use AnnouncementBar).
19
+ *
20
+ * @accessibility
21
+ * - The icon (or image when imageUrl is set) is purely decorative. Title and description convey the full message.
22
+ * - Action buttons are keyboard accessible via the Litho Button component.
23
+ * - Dismiss button includes an aria-label for screen readers.
24
+ *
25
+ * @alternative
26
+ * - If you need a contextual alert with status styling, use `Banner`.
27
+ * - If you need a global top-of-page announcement, use `AnnouncementBar`.
28
+ * - If you need a subtle inline hint, use `Tip`.
29
+ *
30
+ * @param {Object} props - Props for the AnnouncementCard component.
31
+ * @param {string|React.ReactNode} [props.title=null] - The announcement heading.
32
+ * @param {string|React.ReactNode} [props.description=null] - Supporting text below the title.
33
+ * @param {string} [props.imageUrl=null] - Optional image URL. When set, shown in place of the icon with 3/2 aspect ratio. Displayed on md+ screens only.
34
+ * @param {"0"|"1"|"2"|"3"|"4"} [props.imagePadding="0"] - Padding around the image (maps to p-0, p-1, p-2, p-3, p-4). Only applies when imageUrl is set.
35
+ * @param {"cover"|"contain"} [props.imageDisplay="cover"] - How the image fits within its container. Only applies when imageUrl is set.
36
+ * @param {React.ElementType|string} [props.icon=null] - A decorative icon. Pass a Polaris icon (e.g., MagicMajor), a Lucide icon component (e.g., Cable from lucide-react), or a string for dynamic Lucide loading (e.g., "cable"). Icon is automatically colored based on the tint prop. Displayed on md+ screens only. Ignored when imageUrl is set.
37
+ * @param {"info"|"success"|"critical"|"attention"|"warning"|"insight"|"highlight"|"neutral"|string} [props.tint="info"] - Color tint for the icon and image container background. Pass a named variant or a hex color (e.g. "#f0f0f0").
38
+ * @param {Object} [props.primaryAction=null] - Primary action button configuration.
39
+ * @param {string} [props.primaryAction.content] - Button label text.
40
+ * @param {Function} [props.primaryAction.onAction] - Click handler.
41
+ * @param {boolean} [props.primaryAction.loading=false] - Loading state.
42
+ * @param {boolean} [props.primaryAction.disabled=false] - Disabled state.
43
+ * @param {boolean} [props.primaryAction.destructive=false] - Destructive styling.
44
+ * @param {React.Component} [props.primaryAction.icon] - Button icon.
45
+ * @param {string} [props.primaryAction.url] - URL to open on click.
46
+ * @param {boolean} [props.primaryAction.external=false] - Open URL in new tab.
47
+ * @param {Object} [props.secondaryAction=null] - Secondary action button configuration (same shape as primaryAction).
48
+ * @param {Function} [props.onDismiss=null] - Callback when the dismiss button is clicked. When provided, renders a close button.
49
+ * @param {React.ReactNode|import("./Tooltip").TooltipContentObject} [props.tooltip=null] - Tooltip content for the title. When set, shows an info icon next to the title that displays the tooltip on hover.
50
+ * @param {string} [props.tooltipPreferredPosition='above'] - Preferred position for the tooltip.
51
+ * @param {React.ReactNode} [props.children=null] - Optional content rendered below the description. Image and icon are still shown when children are passed.
52
+ * @returns {React.ReactElement} The rendered AnnouncementCard component.
53
+ *
54
+ * @example
55
+ * import { Cable } from "lucide-react";
56
+ * import { MagicMajor } from "@shopify/polaris-icons";
57
+ *
58
+ * // With a Lucide icon
59
+ * <AnnouncementCard
60
+ * title="Try our new feature"
61
+ * description="Get started with the new integration tools."
62
+ * icon={Cable}
63
+ * tint="highlight"
64
+ * primaryAction={{ content: "Learn more", onAction: () => {} }}
65
+ * />
66
+ *
67
+ * // With a Polaris icon
68
+ * <AnnouncementCard
69
+ * title="Try our new feature"
70
+ * icon={MagicMajor}
71
+ * tint="insight"
72
+ * primaryAction={{ content: "Learn more", onAction: () => {} }}
73
+ * />
74
+ *
75
+ * // With a dynamic Lucide string
76
+ * <AnnouncementCard
77
+ * title="Try our new feature"
78
+ * icon="cable"
79
+ * tint="info"
80
+ * primaryAction={{ content: "Learn more", onAction: () => {} }}
81
+ * />
82
+ */ var TINT_BG_CLASSES = {
83
+ info: "bg-info-alt",
84
+ success: "bg-success-alt",
85
+ critical: "bg-critical-alt",
86
+ attention: "bg-attention-alt",
87
+ warning: "bg-attention-alt",
88
+ insight: "bg-insight-alt",
89
+ highlight: "bg-highlight-alt",
90
+ neutral: "bg-neutral-alt",
91
+ custom: ""
92
+ };
93
+ var iconContainerStyles = tv({
94
+ base: "w-24 h-24 rounded-xl flex items-center justify-center flex-shrink-0",
95
+ variants: {
96
+ tint: TINT_BG_CLASSES
97
+ },
98
+ defaultVariants: {
99
+ tint: "info"
100
+ }
101
+ });
102
+ var imageContainerStyles = tv({
103
+ base: "aspect-[3/2] rounded-xl overflow-hidden",
104
+ variants: {
105
+ tint: TINT_BG_CLASSES,
106
+ padding: {
107
+ "0": "p-0",
108
+ "1": "p-1",
109
+ "2": "p-2",
110
+ "3": "p-3",
111
+ "4": "p-4"
112
+ }
113
+ },
114
+ defaultVariants: {
115
+ tint: "info",
116
+ padding: "0"
117
+ }
118
+ });
119
+ var IMAGE_DISPLAY_CLASSES = {
120
+ cover: "object-cover",
121
+ contain: "object-contain"
122
+ };
123
+ var TINT_ICON_COLORS = {
124
+ info: "info-alt-icon",
125
+ success: "success-alt-icon",
126
+ critical: "critical-alt-icon",
127
+ attention: "attention-alt-icon",
128
+ warning: "warning-alt-icon",
129
+ insight: "insight-alt-icon",
130
+ highlight: "highlight-alt-icon",
131
+ neutral: "neutral-alt-icon"
132
+ };
133
+ var renderAction = function(action) {
134
+ var plain = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
135
+ if (!action) return null;
136
+ return /*#__PURE__*/ _jsx(Button, {
137
+ plain: plain,
138
+ disabled: action.disabled,
139
+ loading: action.loading,
140
+ destructive: action.destructive,
141
+ icon: action.icon,
142
+ url: action.url,
143
+ external: action.external,
144
+ onClick: action.onAction,
145
+ children: action.content
146
+ });
147
+ };
148
+ function AnnouncementCard() {
149
+ var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
150
+ var _props_title = props.title, title = _props_title === void 0 ? null : _props_title, _props_titleGap = props.titleGap, titleGap = _props_titleGap === void 0 ? "xs" : _props_titleGap, _props_description = props.description, description = _props_description === void 0 ? null : _props_description, _props_imageUrl = props.imageUrl, imageUrl = _props_imageUrl === void 0 ? null : _props_imageUrl, _props_imagePadding = props.imagePadding, imagePadding = _props_imagePadding === void 0 ? "0" : _props_imagePadding, _props_imageDisplay = props.imageDisplay, imageDisplay = _props_imageDisplay === void 0 ? "cover" : _props_imageDisplay, _props_icon = props.icon, icon = _props_icon === void 0 ? null : _props_icon, _props_tint = props.tint, tint = _props_tint === void 0 ? "info" : _props_tint, _props_primaryAction = props.primaryAction, primaryAction = _props_primaryAction === void 0 ? null : _props_primaryAction, _props_secondaryAction = props.secondaryAction, secondaryAction = _props_secondaryAction === void 0 ? null : _props_secondaryAction, _props_onDismiss = props.onDismiss, onDismiss = _props_onDismiss === void 0 ? null : _props_onDismiss, _props_tooltip = props.tooltip, tooltip = _props_tooltip === void 0 ? null : _props_tooltip, _props_tooltipPreferredPosition = props.tooltipPreferredPosition, tooltipPreferredPosition = _props_tooltipPreferredPosition === void 0 ? "above" : _props_tooltipPreferredPosition, _props_children = props.children, children = _props_children === void 0 ? null : _props_children;
151
+ var hasActions = !!(primaryAction || secondaryAction);
152
+ var isTintHex = typeof tint === "string" && tint.startsWith("#");
153
+ var resolvedTint = isTintHex ? "custom" : tint;
154
+ var tintStyle = isTintHex ? {
155
+ backgroundColor: tint
156
+ } : undefined;
157
+ var _IMAGE_DISPLAY_CLASSES_imageDisplay;
158
+ return /*#__PURE__*/ _jsx(Card, {
159
+ padded: true,
160
+ children: /*#__PURE__*/ _jsxs("div", {
161
+ className: "relative group/announcement-card",
162
+ children: [
163
+ onDismiss && /*#__PURE__*/ _jsx("div", {
164
+ className: "absolute top-0 right-0 group-hover/announcement-card:block hidden opacity-70 hover:opacity-100",
165
+ children: /*#__PURE__*/ _jsx(Button, {
166
+ plain: true,
167
+ icon: CancelMinor,
168
+ onClick: onDismiss,
169
+ tooltip: "Dismiss",
170
+ "aria-label": "Dismiss",
171
+ size: "small"
172
+ })
173
+ }),
174
+ /*#__PURE__*/ _jsxs(Stack, {
175
+ horizontal: "md",
176
+ justify: "between",
177
+ align: "stretch",
178
+ gap: "6",
179
+ children: [
180
+ /*#__PURE__*/ _jsxs(Stack, {
181
+ justify: "between",
182
+ fullWidth: true,
183
+ children: [
184
+ /*#__PURE__*/ _jsxs(Stack, {
185
+ gap: titleGap,
186
+ children: [
187
+ title != null && /*#__PURE__*/ _jsxs("div", {
188
+ className: "flex items-center gap-2",
189
+ children: [
190
+ typeof title === "string" ? /*#__PURE__*/ _jsx(Text, {
191
+ variant: "headingMd",
192
+ fontWeight: "medium",
193
+ children: title
194
+ }) : title,
195
+ tooltip && /*#__PURE__*/ _jsx(Tooltip, {
196
+ content: tooltip,
197
+ preferredPosition: tooltipPreferredPosition
198
+ })
199
+ ]
200
+ }),
201
+ description != null && (typeof description === "string" ? /*#__PURE__*/ _jsx(Text, {
202
+ color: "subdued",
203
+ children: description
204
+ }) : description),
205
+ children
206
+ ]
207
+ }),
208
+ hasActions && /*#__PURE__*/ _jsxs("div", {
209
+ className: "flex gap-2",
210
+ children: [
211
+ renderAction(primaryAction),
212
+ renderAction(secondaryAction, true)
213
+ ]
214
+ })
215
+ ]
216
+ }),
217
+ imageUrl && /*#__PURE__*/ _jsx("div", {
218
+ className: "hidden md:block w-36 flex-shrink-0",
219
+ children: /*#__PURE__*/ _jsx("div", {
220
+ className: imageContainerStyles({
221
+ tint: resolvedTint,
222
+ padding: imagePadding
223
+ }),
224
+ style: tintStyle,
225
+ children: /*#__PURE__*/ _jsx("img", {
226
+ src: imageUrl,
227
+ alt: "",
228
+ className: "w-full h-full rounded-xl ".concat((_IMAGE_DISPLAY_CLASSES_imageDisplay = IMAGE_DISPLAY_CLASSES[imageDisplay]) !== null && _IMAGE_DISPLAY_CLASSES_imageDisplay !== void 0 ? _IMAGE_DISPLAY_CLASSES_imageDisplay : IMAGE_DISPLAY_CLASSES.cover)
229
+ })
230
+ })
231
+ }),
232
+ !imageUrl && icon && /*#__PURE__*/ _jsx("div", {
233
+ className: "hidden md:block",
234
+ children: /*#__PURE__*/ _jsx("div", {
235
+ className: iconContainerStyles({
236
+ tint: resolvedTint
237
+ }),
238
+ style: tintStyle,
239
+ children: /*#__PURE__*/ _jsx(Icon, {
240
+ source: icon,
241
+ color: TINT_ICON_COLORS[tint] || TINT_ICON_COLORS.info,
242
+ size: 12,
243
+ strokeWidth: 1,
244
+ opacity: 70
245
+ })
246
+ })
247
+ })
248
+ ]
249
+ })
250
+ ]
251
+ })
252
+ });
253
+ }
254
+ export default AnnouncementCard;
@@ -90,7 +90,20 @@ var screenSizes = typeof window !== "undefined" ? {
90
90
  "2xl": parseInt(getComputedStyle(document.documentElement).getPropertyValue("--breakpoint-2xl"), 10)
91
91
  } : {};
92
92
  /**
93
- * Provider component for managing global application state.
93
+ * @component AppProvider
94
+ *
95
+ * @description The root context provider that initializes dark mode, frame state, and form context for the entire Litho application.
96
+ *
97
+ * @usage
98
+ * - DO: Wrap your entire application to provide dark mode, frame, and form context.
99
+ * - DON'T: Use multiple AppProviders in the same tree.
100
+ *
101
+ * @accessibility
102
+ * - AppProvider manages the `data-theme` attribute on `<html>` for dark mode; ensures consistent theming for all components.
103
+ *
104
+ * @alternative
105
+ * - If you only need toast notifications, use `ToastProvider` independently.
106
+ *
94
107
  * @param {Object} props
95
108
  * @param {React.ReactNode} props.children - The child components.
96
109
  * @param {boolean} props.embedded - Whether the app is embedded.
@@ -184,7 +197,7 @@ var screenSizes = typeof window !== "undefined" ? {
184
197
  setDiscardAction: setDiscardAction
185
198
  },
186
199
  children: /*#__PURE__*/ _jsx("div", {
187
- className: "app-wrapper ".concat(embedded ? "@container" : ""),
200
+ className: "app-wrapper ".concat(embedded ? "@container/main" : ""),
188
201
  children: children
189
202
  })
190
203
  })