@salt-ds/core 1.71.0 → 1.73.0

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 (444) hide show
  1. package/CHANGELOG.md +204 -0
  2. package/css/salt-core.css +432 -175
  3. package/dist-cjs/accordion/AccordionHeader.css.js +1 -1
  4. package/dist-cjs/avatar/Avatar.css.js +1 -1
  5. package/dist-cjs/badge/Badge.css.js +1 -1
  6. package/dist-cjs/banner/Banner.css.js +1 -1
  7. package/dist-cjs/border-layout/BorderLayout.js.map +1 -1
  8. package/dist-cjs/breadcrumbs/Breadcrumb.css.js +1 -1
  9. package/dist-cjs/breadcrumbs/Breadcrumb.js +5 -6
  10. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
  11. package/dist-cjs/breadcrumbs/Breadcrumbs.css.js +1 -1
  12. package/dist-cjs/button/Button.css.js +1 -1
  13. package/dist-cjs/card/CardContent.css.js +1 -1
  14. package/dist-cjs/card/hasCardSection.js +11 -3
  15. package/dist-cjs/card/hasCardSection.js.map +1 -1
  16. package/dist-cjs/checkbox/Checkbox.css.js +1 -1
  17. package/dist-cjs/checkbox/CheckboxIcon.css.js +1 -1
  18. package/dist-cjs/checkbox/CheckboxIcon.js.map +1 -1
  19. package/dist-cjs/collapsible/CollapsiblePanel.css.js +1 -1
  20. package/dist-cjs/collapsible/CollapsiblePanel.js +15 -15
  21. package/dist-cjs/collapsible/CollapsiblePanel.js.map +1 -1
  22. package/dist-cjs/combo-box/ComboBox.js +18 -36
  23. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  24. package/dist-cjs/combo-box/useComboBox.js +21 -21
  25. package/dist-cjs/combo-box/useComboBox.js.map +1 -1
  26. package/dist-cjs/dialog/DialogHeader.js +2 -0
  27. package/dist-cjs/dialog/DialogHeader.js.map +1 -1
  28. package/dist-cjs/drawer/DrawerHeader.js +2 -0
  29. package/dist-cjs/drawer/DrawerHeader.js.map +1 -1
  30. package/dist-cjs/dropdown/Dropdown.css.js +1 -1
  31. package/dist-cjs/dropdown/Dropdown.js +30 -31
  32. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  33. package/dist-cjs/file-drop-zone/FileDropZone.css.js +1 -1
  34. package/dist-cjs/form-field/FormField.css.js +1 -1
  35. package/dist-cjs/form-field/FormField.js +2 -2
  36. package/dist-cjs/form-field/FormField.js.map +1 -1
  37. package/dist-cjs/form-field/FormFieldHelperText.css.js +1 -1
  38. package/dist-cjs/form-field/FormFieldHelperText.js +2 -0
  39. package/dist-cjs/form-field/FormFieldHelperText.js.map +1 -1
  40. package/dist-cjs/form-field/FormFieldLabel.css.js +1 -1
  41. package/dist-cjs/form-field/FormFieldLabel.js +3 -1
  42. package/dist-cjs/form-field/FormFieldLabel.js.map +1 -1
  43. package/dist-cjs/form-field-context/FormFieldContext.js.map +1 -1
  44. package/dist-cjs/index.js +13 -0
  45. package/dist-cjs/index.js.map +1 -1
  46. package/dist-cjs/input/Input.css.js +1 -1
  47. package/dist-cjs/interactable-card/InteractableCard.css.js +1 -1
  48. package/dist-cjs/interactable-card/InteractableCard.js +18 -7
  49. package/dist-cjs/interactable-card/InteractableCard.js.map +1 -1
  50. package/dist-cjs/interactable-card/InteractableCardGroup.js +71 -39
  51. package/dist-cjs/interactable-card/InteractableCardGroup.js.map +1 -1
  52. package/dist-cjs/interactable-card/InteractableCardGroupContext.js.map +1 -1
  53. package/dist-cjs/interactable-card/useInteractableCard.js +2 -3
  54. package/dist-cjs/interactable-card/useInteractableCard.js.map +1 -1
  55. package/dist-cjs/kbd/Kbd.css.js +1 -1
  56. package/dist-cjs/link/Link.css.js +1 -1
  57. package/dist-cjs/link/Link.js +2 -0
  58. package/dist-cjs/link/Link.js.map +1 -1
  59. package/dist-cjs/link/LinkAction.js +3 -2
  60. package/dist-cjs/link/LinkAction.js.map +1 -1
  61. package/dist-cjs/link-button/LinkButton.js +3 -2
  62. package/dist-cjs/link-button/LinkButton.js.map +1 -1
  63. package/dist-cjs/list-box/ListBox.js +20 -27
  64. package/dist-cjs/list-box/ListBox.js.map +1 -1
  65. package/dist-cjs/list-control/ListControlContext.js.map +1 -1
  66. package/dist-cjs/list-control/ListControlNavigationKeys.js +74 -0
  67. package/dist-cjs/list-control/ListControlNavigationKeys.js.map +1 -0
  68. package/dist-cjs/list-control/ListControlOptionContext.js +47 -0
  69. package/dist-cjs/list-control/ListControlOptionContext.js.map +1 -0
  70. package/dist-cjs/list-control/ListControlOptionStore.js +159 -0
  71. package/dist-cjs/list-control/ListControlOptionStore.js.map +1 -0
  72. package/dist-cjs/list-control/ListControlProvider.js +39 -0
  73. package/dist-cjs/list-control/ListControlProvider.js.map +1 -0
  74. package/dist-cjs/list-control/ListControlRegistry.js +161 -0
  75. package/dist-cjs/list-control/ListControlRegistry.js.map +1 -0
  76. package/dist-cjs/list-control/ListControlState.js +137 -109
  77. package/dist-cjs/list-control/ListControlState.js.map +1 -1
  78. package/dist-cjs/mega-menu/MegaMenuGroupHeading.css.js +1 -1
  79. package/dist-cjs/mega-menu/MegaMenuListItem.css.js +1 -1
  80. package/dist-cjs/menu/MenuGroup.css.js +1 -1
  81. package/dist-cjs/menu/MenuItem.css.js +1 -1
  82. package/dist-cjs/multiline-input/MultilineInput.css.js +1 -1
  83. package/dist-cjs/navigation-item/NavigationItem.css.js +1 -1
  84. package/dist-cjs/number-input/NumberInput.css.js +1 -1
  85. package/dist-cjs/number-input/NumberInput.js +2 -2
  86. package/dist-cjs/number-input/NumberInput.js.map +1 -1
  87. package/dist-cjs/on-solid-button/OnSolidButton.css.js +6 -0
  88. package/dist-cjs/on-solid-button/OnSolidButton.css.js.map +1 -0
  89. package/dist-cjs/on-solid-button/OnSolidButton.js +68 -0
  90. package/dist-cjs/on-solid-button/OnSolidButton.js.map +1 -0
  91. package/dist-cjs/option/Option.css.js +1 -1
  92. package/dist-cjs/option/Option.js +64 -39
  93. package/dist-cjs/option/Option.js.map +1 -1
  94. package/dist-cjs/option/OptionGroup.css.js +1 -1
  95. package/dist-cjs/overlay/Overlay.js +12 -2
  96. package/dist-cjs/overlay/Overlay.js.map +1 -1
  97. package/dist-cjs/overlay/OverlayContext.js +6 -0
  98. package/dist-cjs/overlay/OverlayContext.js.map +1 -1
  99. package/dist-cjs/overlay/OverlayFooter.css.js +6 -0
  100. package/dist-cjs/overlay/OverlayFooter.css.js.map +1 -0
  101. package/dist-cjs/overlay/OverlayFooter.js +30 -0
  102. package/dist-cjs/overlay/OverlayFooter.js.map +1 -0
  103. package/dist-cjs/overlay/OverlayHeader.css.js +1 -1
  104. package/dist-cjs/overlay/OverlayHeader.js +53 -11
  105. package/dist-cjs/overlay/OverlayHeader.js.map +1 -1
  106. package/dist-cjs/overlay/OverlayPanel.css.js +1 -1
  107. package/dist-cjs/overlay/OverlayPanel.js +20 -7
  108. package/dist-cjs/overlay/OverlayPanel.js.map +1 -1
  109. package/dist-cjs/overlay/OverlayPanelCloseButton.js +1 -1
  110. package/dist-cjs/overlay/OverlayPanelCloseButton.js.map +1 -1
  111. package/dist-cjs/overlay/OverlayPanelContent.css.js +1 -1
  112. package/dist-cjs/overlay/OverlayPanelContent.js +11 -13
  113. package/dist-cjs/overlay/OverlayPanelContent.js.map +1 -1
  114. package/dist-cjs/overlay/hasOverlaySection.js +24 -0
  115. package/dist-cjs/overlay/hasOverlaySection.js.map +1 -0
  116. package/dist-cjs/pagination/CompactPaginator.js +2 -0
  117. package/dist-cjs/pagination/CompactPaginator.js.map +1 -1
  118. package/dist-cjs/pagination/GoToInput.js +2 -0
  119. package/dist-cjs/pagination/GoToInput.js.map +1 -1
  120. package/dist-cjs/pill/PillCheckIcon.js.map +1 -1
  121. package/dist-cjs/pill-input/PillInput.css.js +1 -1
  122. package/dist-cjs/pill-input/PillInput.js +2 -2
  123. package/dist-cjs/pill-input/PillInput.js.map +1 -1
  124. package/dist-cjs/progress/CircularProgress/CircularProgress.js +2 -0
  125. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  126. package/dist-cjs/progress/LinearProgress/LinearProgress.js +2 -0
  127. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  128. package/dist-cjs/radio-button/RadioButton.css.js +1 -1
  129. package/dist-cjs/radio-button/RadioButtonIcon.css.js +1 -1
  130. package/dist-cjs/rating/Rating.css.js +1 -1
  131. package/dist-cjs/salt-provider/ThemeApplicator.js +10 -6
  132. package/dist-cjs/salt-provider/ThemeApplicator.js.map +1 -1
  133. package/dist-cjs/side-panel/SidePanelTitle.js +2 -0
  134. package/dist-cjs/side-panel/SidePanelTitle.js.map +1 -1
  135. package/dist-cjs/side-panel/SidePanelTrigger.js.map +1 -1
  136. package/dist-cjs/side-panel/internal/useIsScrollable.js.map +1 -1
  137. package/dist-cjs/side-panel/useSidePanel.js +4 -9
  138. package/dist-cjs/side-panel/useSidePanel.js.map +1 -1
  139. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +2 -2
  140. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  141. package/dist-cjs/slider/internal/SliderThumb.js.map +1 -1
  142. package/dist-cjs/slider/internal/SliderTooltip.js +2 -0
  143. package/dist-cjs/slider/internal/SliderTooltip.js.map +1 -1
  144. package/dist-cjs/slider/internal/SliderTrack.css.js +1 -1
  145. package/dist-cjs/slider/internal/SliderTrack.js +2 -0
  146. package/dist-cjs/slider/internal/SliderTrack.js.map +1 -1
  147. package/dist-cjs/slider/internal/useRangeSliderThumb.js.map +1 -1
  148. package/dist-cjs/slider/internal/useSliderThumb.js.map +1 -1
  149. package/dist-cjs/slider/internal/utils.js.map +1 -1
  150. package/dist-cjs/stepper/Stepper.js +1 -1
  151. package/dist-cjs/stepper/Stepper.js.map +1 -1
  152. package/dist-cjs/stepper/internal/StepText.css.js +1 -1
  153. package/dist-cjs/stepper/internal/StepText.js +2 -0
  154. package/dist-cjs/stepper/internal/StepText.js.map +1 -1
  155. package/dist-cjs/switch/Switch.css.js +1 -1
  156. package/dist-cjs/table/Table.css.js +1 -1
  157. package/dist-cjs/tabs/Tabs.js +1 -1
  158. package/dist-cjs/tabs/Tabs.js.map +1 -1
  159. package/dist-cjs/tabs/internal/overflow/useOverflow.js.map +1 -1
  160. package/dist-cjs/tabs/internal/overflow/useRenderedTabWidth.js.map +1 -1
  161. package/dist-cjs/tag/Tag.css.js +1 -1
  162. package/dist-cjs/text/Code.js +1 -1
  163. package/dist-cjs/text/Code.js.map +1 -1
  164. package/dist-cjs/text/Editorial.js +32 -0
  165. package/dist-cjs/text/Editorial.js.map +1 -0
  166. package/dist-cjs/text/Eyebrow.js +12 -0
  167. package/dist-cjs/text/Eyebrow.js.map +1 -0
  168. package/dist-cjs/text/Text.css.js +1 -1
  169. package/dist-cjs/text/Text.js +6 -2
  170. package/dist-cjs/text/Text.js.map +1 -1
  171. package/dist-cjs/toast/Toast.css.js +1 -1
  172. package/dist-cjs/toggle-button/ToggleButton.js +8 -2
  173. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
  174. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +71 -8
  175. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  176. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  177. package/dist-cjs/toggletip/ToggletipPanel.css.js +1 -1
  178. package/dist-cjs/toolbar/ToolbarOverflow.js +8 -4
  179. package/dist-cjs/toolbar/ToolbarOverflow.js.map +1 -1
  180. package/dist-cjs/toolbar/toolbarUtils.js.map +1 -1
  181. package/dist-cjs/tooltip/Tooltip.css.js +1 -1
  182. package/dist-cjs/tooltip/useAriaAnnounce.js +4 -2
  183. package/dist-cjs/tooltip/useAriaAnnounce.js.map +1 -1
  184. package/dist-cjs/tooltip/useTooltip.js.map +1 -1
  185. package/dist-cjs/tree/TreeContext.js.map +1 -1
  186. package/dist-cjs/utils/forkRef.js +34 -0
  187. package/dist-cjs/utils/forkRef.js.map +1 -0
  188. package/dist-cjs/utils/getRefFromChildren.js.map +1 -1
  189. package/dist-cjs/utils/marginMiddleware.js.map +1 -1
  190. package/dist-cjs/utils/setRef.js.map +1 -1
  191. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  192. package/dist-cjs/utils/useForkRef.js +3 -6
  193. package/dist-cjs/utils/useForkRef.js.map +1 -1
  194. package/dist-cjs/utils/useResizeObserver.js.map +1 -1
  195. package/dist-cjs/vertical-navigation/VerticalNavigationItemContent.css.js +1 -1
  196. package/dist-cjs/vertical-navigation/VerticalNavigationSubMenu.css.js +1 -1
  197. package/dist-es/accordion/AccordionHeader.css.js +1 -1
  198. package/dist-es/avatar/Avatar.css.js +1 -1
  199. package/dist-es/badge/Badge.css.js +1 -1
  200. package/dist-es/banner/Banner.css.js +1 -1
  201. package/dist-es/border-layout/BorderLayout.js.map +1 -1
  202. package/dist-es/breadcrumbs/Breadcrumb.css.js +1 -1
  203. package/dist-es/breadcrumbs/Breadcrumb.js +5 -6
  204. package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
  205. package/dist-es/breadcrumbs/Breadcrumbs.css.js +1 -1
  206. package/dist-es/button/Button.css.js +1 -1
  207. package/dist-es/card/CardContent.css.js +1 -1
  208. package/dist-es/card/hasCardSection.js +11 -3
  209. package/dist-es/card/hasCardSection.js.map +1 -1
  210. package/dist-es/checkbox/Checkbox.css.js +1 -1
  211. package/dist-es/checkbox/CheckboxIcon.css.js +1 -1
  212. package/dist-es/checkbox/CheckboxIcon.js.map +1 -1
  213. package/dist-es/collapsible/CollapsiblePanel.css.js +1 -1
  214. package/dist-es/collapsible/CollapsiblePanel.js +16 -16
  215. package/dist-es/collapsible/CollapsiblePanel.js.map +1 -1
  216. package/dist-es/combo-box/ComboBox.js +18 -36
  217. package/dist-es/combo-box/ComboBox.js.map +1 -1
  218. package/dist-es/combo-box/useComboBox.js +21 -21
  219. package/dist-es/combo-box/useComboBox.js.map +1 -1
  220. package/dist-es/dialog/DialogHeader.js +2 -0
  221. package/dist-es/dialog/DialogHeader.js.map +1 -1
  222. package/dist-es/drawer/DrawerHeader.js +2 -0
  223. package/dist-es/drawer/DrawerHeader.js.map +1 -1
  224. package/dist-es/dropdown/Dropdown.css.js +1 -1
  225. package/dist-es/dropdown/Dropdown.js +30 -31
  226. package/dist-es/dropdown/Dropdown.js.map +1 -1
  227. package/dist-es/file-drop-zone/FileDropZone.css.js +1 -1
  228. package/dist-es/form-field/FormField.css.js +1 -1
  229. package/dist-es/form-field/FormField.js +2 -2
  230. package/dist-es/form-field/FormField.js.map +1 -1
  231. package/dist-es/form-field/FormFieldHelperText.css.js +1 -1
  232. package/dist-es/form-field/FormFieldHelperText.js +2 -0
  233. package/dist-es/form-field/FormFieldHelperText.js.map +1 -1
  234. package/dist-es/form-field/FormFieldLabel.css.js +1 -1
  235. package/dist-es/form-field/FormFieldLabel.js +3 -1
  236. package/dist-es/form-field/FormFieldLabel.js.map +1 -1
  237. package/dist-es/form-field-context/FormFieldContext.js.map +1 -1
  238. package/dist-es/index.js +4 -0
  239. package/dist-es/index.js.map +1 -1
  240. package/dist-es/input/Input.css.js +1 -1
  241. package/dist-es/interactable-card/InteractableCard.css.js +1 -1
  242. package/dist-es/interactable-card/InteractableCard.js +18 -7
  243. package/dist-es/interactable-card/InteractableCard.js.map +1 -1
  244. package/dist-es/interactable-card/InteractableCardGroup.js +72 -40
  245. package/dist-es/interactable-card/InteractableCardGroup.js.map +1 -1
  246. package/dist-es/interactable-card/InteractableCardGroupContext.js.map +1 -1
  247. package/dist-es/interactable-card/useInteractableCard.js +2 -3
  248. package/dist-es/interactable-card/useInteractableCard.js.map +1 -1
  249. package/dist-es/kbd/Kbd.css.js +1 -1
  250. package/dist-es/link/Link.css.js +1 -1
  251. package/dist-es/link/Link.js +2 -0
  252. package/dist-es/link/Link.js.map +1 -1
  253. package/dist-es/link/LinkAction.js +3 -2
  254. package/dist-es/link/LinkAction.js.map +1 -1
  255. package/dist-es/link-button/LinkButton.js +3 -2
  256. package/dist-es/link-button/LinkButton.js.map +1 -1
  257. package/dist-es/list-box/ListBox.js +20 -27
  258. package/dist-es/list-box/ListBox.js.map +1 -1
  259. package/dist-es/list-control/ListControlContext.js.map +1 -1
  260. package/dist-es/list-control/ListControlNavigationKeys.js +69 -0
  261. package/dist-es/list-control/ListControlNavigationKeys.js.map +1 -0
  262. package/dist-es/list-control/ListControlOptionContext.js +44 -0
  263. package/dist-es/list-control/ListControlOptionContext.js.map +1 -0
  264. package/dist-es/list-control/ListControlOptionStore.js +153 -0
  265. package/dist-es/list-control/ListControlOptionStore.js.map +1 -0
  266. package/dist-es/list-control/ListControlProvider.js +37 -0
  267. package/dist-es/list-control/ListControlProvider.js.map +1 -0
  268. package/dist-es/list-control/ListControlRegistry.js +158 -0
  269. package/dist-es/list-control/ListControlRegistry.js.map +1 -0
  270. package/dist-es/list-control/ListControlState.js +137 -110
  271. package/dist-es/list-control/ListControlState.js.map +1 -1
  272. package/dist-es/mega-menu/MegaMenuGroupHeading.css.js +1 -1
  273. package/dist-es/mega-menu/MegaMenuListItem.css.js +1 -1
  274. package/dist-es/menu/MenuGroup.css.js +1 -1
  275. package/dist-es/menu/MenuItem.css.js +1 -1
  276. package/dist-es/multiline-input/MultilineInput.css.js +1 -1
  277. package/dist-es/navigation-item/NavigationItem.css.js +1 -1
  278. package/dist-es/number-input/NumberInput.css.js +1 -1
  279. package/dist-es/number-input/NumberInput.js +2 -2
  280. package/dist-es/number-input/NumberInput.js.map +1 -1
  281. package/dist-es/on-solid-button/OnSolidButton.css.js +4 -0
  282. package/dist-es/on-solid-button/OnSolidButton.css.js.map +1 -0
  283. package/dist-es/on-solid-button/OnSolidButton.js +66 -0
  284. package/dist-es/on-solid-button/OnSolidButton.js.map +1 -0
  285. package/dist-es/option/Option.css.js +1 -1
  286. package/dist-es/option/Option.js +65 -40
  287. package/dist-es/option/Option.js.map +1 -1
  288. package/dist-es/option/OptionGroup.css.js +1 -1
  289. package/dist-es/overlay/Overlay.js +13 -3
  290. package/dist-es/overlay/Overlay.js.map +1 -1
  291. package/dist-es/overlay/OverlayContext.js +6 -0
  292. package/dist-es/overlay/OverlayContext.js.map +1 -1
  293. package/dist-es/overlay/OverlayFooter.css.js +4 -0
  294. package/dist-es/overlay/OverlayFooter.css.js.map +1 -0
  295. package/dist-es/overlay/OverlayFooter.js +28 -0
  296. package/dist-es/overlay/OverlayFooter.js.map +1 -0
  297. package/dist-es/overlay/OverlayHeader.css.js +1 -1
  298. package/dist-es/overlay/OverlayHeader.js +53 -11
  299. package/dist-es/overlay/OverlayHeader.js.map +1 -1
  300. package/dist-es/overlay/OverlayPanel.css.js +1 -1
  301. package/dist-es/overlay/OverlayPanel.js +20 -7
  302. package/dist-es/overlay/OverlayPanel.js.map +1 -1
  303. package/dist-es/overlay/OverlayPanelCloseButton.js +1 -1
  304. package/dist-es/overlay/OverlayPanelCloseButton.js.map +1 -1
  305. package/dist-es/overlay/OverlayPanelContent.css.js +1 -1
  306. package/dist-es/overlay/OverlayPanelContent.js +11 -13
  307. package/dist-es/overlay/OverlayPanelContent.js.map +1 -1
  308. package/dist-es/overlay/hasOverlaySection.js +22 -0
  309. package/dist-es/overlay/hasOverlaySection.js.map +1 -0
  310. package/dist-es/pagination/CompactPaginator.js +2 -0
  311. package/dist-es/pagination/CompactPaginator.js.map +1 -1
  312. package/dist-es/pagination/GoToInput.js +2 -0
  313. package/dist-es/pagination/GoToInput.js.map +1 -1
  314. package/dist-es/pill/PillCheckIcon.js.map +1 -1
  315. package/dist-es/pill-input/PillInput.css.js +1 -1
  316. package/dist-es/pill-input/PillInput.js +2 -2
  317. package/dist-es/pill-input/PillInput.js.map +1 -1
  318. package/dist-es/progress/CircularProgress/CircularProgress.js +2 -0
  319. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  320. package/dist-es/progress/LinearProgress/LinearProgress.js +2 -0
  321. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  322. package/dist-es/radio-button/RadioButton.css.js +1 -1
  323. package/dist-es/radio-button/RadioButtonIcon.css.js +1 -1
  324. package/dist-es/rating/Rating.css.js +1 -1
  325. package/dist-es/salt-provider/ThemeApplicator.js +10 -6
  326. package/dist-es/salt-provider/ThemeApplicator.js.map +1 -1
  327. package/dist-es/side-panel/SidePanelTitle.js +2 -0
  328. package/dist-es/side-panel/SidePanelTitle.js.map +1 -1
  329. package/dist-es/side-panel/SidePanelTrigger.js.map +1 -1
  330. package/dist-es/side-panel/internal/useIsScrollable.js.map +1 -1
  331. package/dist-es/side-panel/useSidePanel.js +4 -9
  332. package/dist-es/side-panel/useSidePanel.js.map +1 -1
  333. package/dist-es/skip-link/internal/useManageFocusOnTarget.js +2 -2
  334. package/dist-es/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  335. package/dist-es/slider/internal/SliderThumb.js.map +1 -1
  336. package/dist-es/slider/internal/SliderTooltip.js +2 -0
  337. package/dist-es/slider/internal/SliderTooltip.js.map +1 -1
  338. package/dist-es/slider/internal/SliderTrack.css.js +1 -1
  339. package/dist-es/slider/internal/SliderTrack.js +2 -0
  340. package/dist-es/slider/internal/SliderTrack.js.map +1 -1
  341. package/dist-es/slider/internal/useRangeSliderThumb.js.map +1 -1
  342. package/dist-es/slider/internal/useSliderThumb.js.map +1 -1
  343. package/dist-es/slider/internal/utils.js.map +1 -1
  344. package/dist-es/stepper/Stepper.js +1 -1
  345. package/dist-es/stepper/Stepper.js.map +1 -1
  346. package/dist-es/stepper/internal/StepText.css.js +1 -1
  347. package/dist-es/stepper/internal/StepText.js +2 -0
  348. package/dist-es/stepper/internal/StepText.js.map +1 -1
  349. package/dist-es/switch/Switch.css.js +1 -1
  350. package/dist-es/table/Table.css.js +1 -1
  351. package/dist-es/tabs/Tabs.js +1 -1
  352. package/dist-es/tabs/Tabs.js.map +1 -1
  353. package/dist-es/tabs/internal/overflow/useOverflow.js.map +1 -1
  354. package/dist-es/tabs/internal/overflow/useRenderedTabWidth.js.map +1 -1
  355. package/dist-es/tag/Tag.css.js +1 -1
  356. package/dist-es/text/Code.js +1 -1
  357. package/dist-es/text/Code.js.map +1 -1
  358. package/dist-es/text/Editorial.js +25 -0
  359. package/dist-es/text/Editorial.js.map +1 -0
  360. package/dist-es/text/Eyebrow.js +10 -0
  361. package/dist-es/text/Eyebrow.js.map +1 -0
  362. package/dist-es/text/Text.css.js +1 -1
  363. package/dist-es/text/Text.js +6 -2
  364. package/dist-es/text/Text.js.map +1 -1
  365. package/dist-es/toast/Toast.css.js +1 -1
  366. package/dist-es/toggle-button/ToggleButton.js +8 -2
  367. package/dist-es/toggle-button/ToggleButton.js.map +1 -1
  368. package/dist-es/toggle-button-group/ToggleButtonGroup.js +71 -8
  369. package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  370. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  371. package/dist-es/toggletip/ToggletipPanel.css.js +1 -1
  372. package/dist-es/toolbar/ToolbarOverflow.js +8 -4
  373. package/dist-es/toolbar/ToolbarOverflow.js.map +1 -1
  374. package/dist-es/toolbar/toolbarUtils.js.map +1 -1
  375. package/dist-es/tooltip/Tooltip.css.js +1 -1
  376. package/dist-es/tooltip/useAriaAnnounce.js +4 -2
  377. package/dist-es/tooltip/useAriaAnnounce.js.map +1 -1
  378. package/dist-es/tooltip/useTooltip.js.map +1 -1
  379. package/dist-es/tree/TreeContext.js.map +1 -1
  380. package/dist-es/utils/forkRef.js +32 -0
  381. package/dist-es/utils/forkRef.js.map +1 -0
  382. package/dist-es/utils/getRefFromChildren.js.map +1 -1
  383. package/dist-es/utils/marginMiddleware.js.map +1 -1
  384. package/dist-es/utils/setRef.js.map +1 -1
  385. package/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  386. package/dist-es/utils/useForkRef.js +3 -6
  387. package/dist-es/utils/useForkRef.js.map +1 -1
  388. package/dist-es/utils/useResizeObserver.js.map +1 -1
  389. package/dist-es/vertical-navigation/VerticalNavigationItemContent.css.js +1 -1
  390. package/dist-es/vertical-navigation/VerticalNavigationSubMenu.css.js +1 -1
  391. package/dist-types/checkbox/CheckboxIcon.d.ts +2 -1
  392. package/dist-types/collapsible/CollapsiblePanel.d.ts +8 -1
  393. package/dist-types/combo-box/ComboBox.d.ts +2 -2
  394. package/dist-types/combo-box/useComboBox.d.ts +3 -6
  395. package/dist-types/dropdown/Dropdown.d.ts +2 -2
  396. package/dist-types/form-field/FormFieldHelperText.d.ts +1 -1
  397. package/dist-types/form-field/FormFieldLabel.d.ts +1 -1
  398. package/dist-types/form-field-context/FormFieldContext.d.ts +1 -1
  399. package/dist-types/index.d.ts +1 -0
  400. package/dist-types/interactable-card/InteractableCardGroupContext.d.ts +2 -0
  401. package/dist-types/interactable-card/useInteractableCard.d.ts +1 -2
  402. package/dist-types/list-box/ListBox.d.ts +2 -2
  403. package/dist-types/list-control/ListControlContext.d.ts +1 -1
  404. package/dist-types/list-control/ListControlNavigationKeys.d.ts +30 -0
  405. package/dist-types/list-control/ListControlOptionContext.d.ts +18 -0
  406. package/dist-types/list-control/ListControlOptionStore.d.ts +17 -0
  407. package/dist-types/list-control/ListControlProvider.d.ts +11 -0
  408. package/dist-types/list-control/ListControlRegistry.d.ts +22 -0
  409. package/dist-types/list-control/ListControlState.d.ts +6 -6
  410. package/dist-types/on-solid-button/OnSolidButton.d.ts +12 -0
  411. package/dist-types/on-solid-button/index.d.ts +1 -0
  412. package/dist-types/option/Option.d.ts +3 -1
  413. package/dist-types/overlay/Overlay.d.ts +2 -1
  414. package/dist-types/overlay/OverlayContext.d.ts +4 -0
  415. package/dist-types/overlay/OverlayFooter.d.ts +4 -0
  416. package/dist-types/overlay/hasOverlaySection.d.ts +2 -0
  417. package/dist-types/overlay/index.d.ts +1 -0
  418. package/dist-types/pill/PillCheckIcon.d.ts +2 -1
  419. package/dist-types/registerClassNameInjection.d.ts +0 -2
  420. package/dist-types/salt-provider/SaltProvider.d.ts +1 -1
  421. package/dist-types/side-panel/internal/useIsScrollable.d.ts +1 -1
  422. package/dist-types/skip-link/internal/useManageFocusOnTarget.d.ts +1 -1
  423. package/dist-types/slider/internal/SliderThumb.d.ts +2 -2
  424. package/dist-types/slider/internal/SliderTrack.d.ts +2 -2
  425. package/dist-types/slider/internal/useRangeSliderThumb.d.ts +1 -1
  426. package/dist-types/slider/internal/useSliderThumb.d.ts +1 -1
  427. package/dist-types/slider/internal/utils.d.ts +1 -1
  428. package/dist-types/tabs/internal/overflow/useOverflow.d.ts +2 -2
  429. package/dist-types/tabs/internal/overflow/useRenderedTabWidth.d.ts +1 -1
  430. package/dist-types/text/Editorial.d.ts +7 -0
  431. package/dist-types/text/Eyebrow.d.ts +2 -0
  432. package/dist-types/text/Text.d.ts +9 -2
  433. package/dist-types/text/index.d.ts +2 -0
  434. package/dist-types/toggle-button/ToggleButton.d.ts +1 -1
  435. package/dist-types/toggle-button-group/ToggleButtonGroupContext.d.ts +2 -1
  436. package/dist-types/tooltip/useTooltip.d.ts +12 -26
  437. package/dist-types/tree/TreeContext.d.ts +1 -1
  438. package/dist-types/utils/forkRef.d.ts +11 -0
  439. package/dist-types/utils/inferElementType.d.ts +1 -2
  440. package/dist-types/utils/marginMiddleware.d.ts +1 -1
  441. package/dist-types/utils/setRef.d.ts +4 -0
  442. package/dist-types/utils/useFloatingUI/useFloatingUI.d.ts +1 -5
  443. package/dist-types/utils/useResizeObserver.d.ts +1 -1
  444. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.js","sources":["../src/overlay/Overlay.tsx"],"sourcesContent":["import {\n arrow,\n flip,\n limitShift,\n offset,\n shift,\n useClick,\n useDismiss,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport { type ReactNode, useMemo, useRef } from \"react\";\nimport { useControlled, useFloatingUI } from \"../utils\";\nimport { OverlayContext, type OverlayContextValue } from \"./OverlayContext\";\n\nexport interface OverlayProps {\n /**\n * The content of the Overlay, typically an `OverlayTrigger` and `OverlayPanel`.\n */\n children?: ReactNode;\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Set the placement of the Overlay component relative to the trigger element. Defaults to `top`.\n */\n placement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n /**\n * When `true`, the arrow indicator is hidden\n */\n hideArrow?: boolean;\n}\n\nexport const Overlay = ({\n children,\n open,\n onOpenChange,\n placement: placementProp = \"top\",\n hideArrow = false,\n}: OverlayProps) => {\n const arrowRef = useRef<SVGSVGElement | null>(null);\n\n const [openState, setOpenState] = useControlled({\n controlled: open,\n default: false,\n name: \"Overlay\",\n state: \"open\",\n });\n\n const handleOpenChange = (newOpen: boolean) => {\n setOpenState(newOpen);\n onOpenChange?.(newOpen);\n };\n\n const middleware = useMemo(\n () => [\n offset(8),\n flip(),\n shift({ limiter: limitShift() }),\n arrow({ element: arrowRef }),\n ],\n [],\n );\n\n const { x, y, strategy, context, elements, floating, reference } =\n useFloatingUI({\n open: openState,\n onOpenChange: handleOpenChange,\n placement: placementProp,\n middleware,\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useRole(context, { role: \"dialog\" }),\n useClick(context),\n useDismiss(context),\n ]);\n\n const floatingStyles = useMemo(() => {\n const floatingElement = elements.floating;\n\n return {\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n width: floatingElement?.offsetWidth,\n height: floatingElement?.offsetHeight,\n };\n }, [elements.floating, strategy, x, y]);\n\n const arrowProps = useMemo(\n () => ({\n ref: arrowRef,\n context,\n }),\n [context],\n );\n\n const contextValue = useMemo<OverlayContextValue>(\n () => ({\n openState,\n floatingStyles,\n context,\n arrowProps,\n hideArrow,\n floating,\n reference,\n getFloatingProps,\n getReferenceProps,\n }),\n [\n openState,\n floatingStyles,\n context,\n arrowProps,\n hideArrow,\n floating,\n reference,\n getFloatingProps,\n getReferenceProps,\n ],\n );\n\n return (\n <OverlayContext.Provider value={contextValue}>\n {children}\n </OverlayContext.Provider>\n );\n};\n"],"names":["useRef","useControlled","useMemo","offset","flip","shift","limitShift","arrow","useFloatingUI","useInteractions","useRole","useClick","useDismiss","OverlayContext"],"mappings":"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"}
1
+ {"version":3,"file":"Overlay.js","sources":["../src/overlay/Overlay.tsx"],"sourcesContent":["import {\n arrow,\n flip,\n limitShift,\n offset,\n shift,\n useClick,\n useDismiss,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport { type ReactNode, useMemo, useRef, useState } from \"react\";\nimport {\n type UseFloatingUIProps,\n useControlled,\n useFloatingUI,\n} from \"../utils\";\nimport { OverlayContext, type OverlayContextValue } from \"./OverlayContext\";\n\nexport interface OverlayProps {\n /**\n * The content of the Overlay, typically an `OverlayTrigger` and `OverlayPanel`.\n */\n children?: ReactNode;\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Set the placement of the Overlay component relative to the trigger element. Defaults to `top`.\n */\n placement?: UseFloatingUIProps[\"placement\"];\n /**\n * When `true`, the arrow indicator is hidden\n */\n hideArrow?: boolean;\n}\n\nexport const Overlay = ({\n children,\n open,\n onOpenChange,\n placement: placementProp = \"top\",\n hideArrow = false,\n}: OverlayProps) => {\n const arrowRef = useRef<SVGSVGElement | null>(null);\n const [headerId, setHeaderId] = useState<string | undefined>(undefined);\n const [descriptionId, setDescriptionId] = useState<string | undefined>(\n undefined,\n );\n\n const [openState, setOpenState] = useControlled({\n controlled: open,\n default: false,\n name: \"Overlay\",\n state: \"open\",\n });\n\n const handleOpenChange = (newOpen: boolean) => {\n setOpenState(newOpen);\n onOpenChange?.(newOpen);\n };\n\n const middleware = useMemo(\n () => [\n offset(8),\n flip(),\n shift({ limiter: limitShift() }),\n arrow({ element: arrowRef }),\n ],\n [],\n );\n\n const { x, y, strategy, context, elements, floating, reference } =\n useFloatingUI({\n open: openState,\n onOpenChange: handleOpenChange,\n placement: placementProp,\n middleware,\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useRole(context, { role: \"dialog\" }),\n useClick(context),\n useDismiss(context),\n ]);\n\n const floatingStyles = useMemo(() => {\n const floatingElement = elements.floating;\n\n return {\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n width: floatingElement?.offsetWidth,\n height: floatingElement?.offsetHeight,\n };\n }, [elements.floating, strategy, x, y]);\n\n const arrowProps = useMemo(\n () => ({\n ref: arrowRef,\n context,\n }),\n [context],\n );\n\n const contextValue = useMemo<OverlayContextValue>(\n () => ({\n openState,\n floatingStyles,\n context,\n arrowProps,\n hideArrow,\n floating,\n reference,\n getFloatingProps,\n getReferenceProps,\n headerId,\n setHeaderId,\n descriptionId,\n setDescriptionId,\n }),\n [\n openState,\n floatingStyles,\n context,\n arrowProps,\n hideArrow,\n floating,\n reference,\n getFloatingProps,\n getReferenceProps,\n headerId,\n descriptionId,\n ],\n );\n\n return (\n <OverlayContext.Provider value={contextValue}>\n {children}\n </OverlayContext.Provider>\n );\n};\n"],"names":["useRef","useState","useControlled","useMemo","offset","flip","shift","limitShift","arrow","useFloatingUI","useInteractions","useRole","useClick","useDismiss","OverlayContext"],"mappings":"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"}
@@ -28,6 +28,12 @@ const OverlayContext = createContext.createContext(
28
28
  },
29
29
  getReferenceProps() {
30
30
  return {};
31
+ },
32
+ headerId: void 0,
33
+ setHeaderId: () => {
34
+ },
35
+ descriptionId: void 0,
36
+ setDescriptionId: () => {
31
37
  }
32
38
  }
33
39
  );
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayContext.js","sources":["../src/overlay/OverlayContext.ts"],"sourcesContent":["import type {\n FloatingArrowProps,\n FloatingContext,\n ReferenceType,\n Strategy,\n} from \"@floating-ui/react\";\nimport { type HTMLProps, useContext } from \"react\";\nimport { createContext, type useFloatingUI } from \"../utils\";\n\ntype FloatingReturn = ReturnType<typeof useFloatingUI>;\ntype FloatingStyleProps = {\n top: number;\n left: number;\n position: Strategy;\n width?: number;\n height?: number;\n};\n\nexport interface OverlayContextValue {\n openState: boolean;\n floatingStyles: FloatingStyleProps;\n arrowProps: FloatingArrowProps;\n hideArrow: boolean;\n context: FloatingContext;\n reference?: (node: ReferenceType | null) => void;\n floating?: (node: HTMLElement | null) => void;\n getFloatingProps: (\n userProps?: HTMLProps<HTMLElement> | undefined,\n ) => Record<string, unknown>;\n getReferenceProps: (\n userProps?: HTMLProps<Element> | undefined,\n ) => Record<string, unknown>;\n}\n\nexport const OverlayContext = createContext<OverlayContextValue>(\n \"OverlayContext\",\n {\n openState: false,\n floatingStyles: {\n top: 0,\n left: 0,\n position: \"\" as Strategy,\n },\n context: {} as FloatingContext,\n arrowProps: {} as FloatingArrowProps,\n hideArrow: false,\n reference: {} as FloatingReturn[\"reference\"],\n floating: {} as FloatingReturn[\"floating\"],\n getFloatingProps() {\n return {} as Record<string, unknown>;\n },\n getReferenceProps() {\n return {} as Record<string, unknown>;\n },\n },\n);\n\nexport function useOverlayContext() {\n return useContext(OverlayContext);\n}\n"],"names":["createContext","useContext"],"mappings":";;;;;;;;;;;AAkCO,MAAM,cAAA,GAAiBA,2BAAA;AAAA,EAC5B,gBAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,cAAA,EAAgB;AAAA,MACd,GAAA,EAAK,CAAA;AAAA,MACL,IAAA,EAAM,CAAA;AAAA,MACN,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,SAAS,EAAC;AAAA,IACV,YAAY,EAAC;AAAA,IACb,SAAA,EAAW,KAAA;AAAA,IACX,WAAW,EAAC;AAAA,IACZ,UAAU,EAAC;AAAA,IACX,gBAAA,GAAmB;AACjB,MAAA,OAAO,EAAC;AAAA,IACV,CAAA;AAAA,IACA,iBAAA,GAAoB;AAClB,MAAA,OAAO,EAAC;AAAA,IACV;AAAA;AAEJ;AAEO,SAAS,iBAAA,GAAoB;AAClC,EAAA,OAAOC,iBAAW,cAAc,CAAA;AAClC;;;;;"}
1
+ {"version":3,"file":"OverlayContext.js","sources":["../src/overlay/OverlayContext.ts"],"sourcesContent":["import type {\n FloatingArrowProps,\n FloatingContext,\n ReferenceType,\n Strategy,\n} from \"@floating-ui/react\";\nimport { type HTMLProps, useContext } from \"react\";\nimport { createContext, type useFloatingUI } from \"../utils\";\n\ntype FloatingReturn = ReturnType<typeof useFloatingUI>;\ntype FloatingStyleProps = {\n top: number;\n left: number;\n position: Strategy;\n width?: number;\n height?: number;\n};\n\nexport interface OverlayContextValue {\n openState: boolean;\n floatingStyles: FloatingStyleProps;\n arrowProps: FloatingArrowProps;\n hideArrow: boolean;\n context: FloatingContext;\n reference?: (node: ReferenceType | null) => void;\n floating?: (node: HTMLElement | null) => void;\n getFloatingProps: (\n userProps?: HTMLProps<HTMLElement> | undefined,\n ) => Record<string, unknown>;\n getReferenceProps: (\n userProps?: HTMLProps<Element> | undefined,\n ) => Record<string, unknown>;\n headerId?: string;\n setHeaderId?: (id: string | undefined) => void;\n descriptionId?: string;\n setDescriptionId?: (id: string | undefined) => void;\n}\n\nexport const OverlayContext = createContext<OverlayContextValue>(\n \"OverlayContext\",\n {\n openState: false,\n floatingStyles: {\n top: 0,\n left: 0,\n position: \"\" as Strategy,\n },\n context: {} as FloatingContext,\n arrowProps: {} as FloatingArrowProps,\n hideArrow: false,\n reference: {} as FloatingReturn[\"reference\"],\n floating: {} as FloatingReturn[\"floating\"],\n getFloatingProps() {\n return {} as Record<string, unknown>;\n },\n getReferenceProps() {\n return {} as Record<string, unknown>;\n },\n headerId: undefined,\n setHeaderId: () => {},\n descriptionId: undefined,\n setDescriptionId: () => {},\n },\n);\n\nexport function useOverlayContext() {\n return useContext(OverlayContext);\n}\n"],"names":["createContext","useContext"],"mappings":";;;;;;;;;;;AAsCO,MAAM,cAAA,GAAiBA,2BAAA;AAAA,EAC5B,gBAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,cAAA,EAAgB;AAAA,MACd,GAAA,EAAK,CAAA;AAAA,MACL,IAAA,EAAM,CAAA;AAAA,MACN,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,SAAS,EAAC;AAAA,IACV,YAAY,EAAC;AAAA,IACb,SAAA,EAAW,KAAA;AAAA,IACX,WAAW,EAAC;AAAA,IACZ,UAAU,EAAC;AAAA,IACX,gBAAA,GAAmB;AACjB,MAAA,OAAO,EAAC;AAAA,IACV,CAAA;AAAA,IACA,iBAAA,GAAoB;AAClB,MAAA,OAAO,EAAC;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU,MAAA;AAAA,IACV,aAAa,MAAM;AAAA,IAAC,CAAA;AAAA,IACpB,aAAA,EAAe,MAAA;AAAA,IACf,kBAAkB,MAAM;AAAA,IAAC;AAAA;AAE7B;AAEO,SAAS,iBAAA,GAAoB;AAClC,EAAA,OAAOC,iBAAW,cAAc,CAAA;AAClC;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltOverlayFooter {\n padding: var(--saltOverlay-footer-padding, var(--salt-spacing-100));\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--salt-spacing-100);\n flex-shrink: 0;\n box-sizing: border-box;\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=OverlayFooter.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverlayFooter.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var styles = require('@salt-ds/styles');
5
+ var window = require('@salt-ds/window');
6
+ var clsx = require('clsx');
7
+ var React = require('react');
8
+ var makePrefixer = require('../utils/makePrefixer.js');
9
+ require('../utils/useFloatingUI/useFloatingUI.js');
10
+ require('../utils/useId.js');
11
+ require('../salt-provider/SaltProvider.js');
12
+ require('../viewport/ViewportProvider.js');
13
+ var OverlayFooter$1 = require('./OverlayFooter.css.js');
14
+
15
+ const withBaseName = makePrefixer.makePrefixer("saltOverlayFooter");
16
+ const OverlayFooter = React.forwardRef(
17
+ function OverlayFooter2(props, ref) {
18
+ const { className, ...rest } = props;
19
+ const targetWindow = window.useWindow();
20
+ styles.useComponentCssInjection({
21
+ testId: "salt-overlay-footer",
22
+ css: OverlayFooter$1,
23
+ window: targetWindow
24
+ });
25
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx.clsx(withBaseName(), className), ...rest });
26
+ }
27
+ );
28
+
29
+ exports.OverlayFooter = OverlayFooter;
30
+ //# sourceMappingURL=OverlayFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverlayFooter.js","sources":["../src/overlay/OverlayFooter.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { makePrefixer } from \"../utils\";\nimport overlayFooterCss from \"./OverlayFooter.css\";\n\nexport interface OverlayFooterProps extends ComponentPropsWithoutRef<\"div\"> {}\n\nconst withBaseName = makePrefixer(\"saltOverlayFooter\");\n\nexport const OverlayFooter = forwardRef<HTMLDivElement, OverlayFooterProps>(\n function OverlayFooter(props, ref) {\n const { className, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-footer\",\n css: overlayFooterCss,\n window: targetWindow,\n });\n\n return (\n <div ref={ref} className={clsx(withBaseName(), className)} {...rest} />\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OverlayFooter","useWindow","useComponentCssInjection","overlayFooterCss","jsx","clsx"],"mappings":";;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA;AAE9C,MAAM,aAAA,GAAgBC,gBAAA;AAAA,EAC3B,SAASC,cAAAA,CAAc,KAAA,EAAO,GAAA,EAAK;AACjC,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,KAAA;AAE/B,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAKC,eAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,uBACEC,cAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,SAAA,EAAWC,SAAA,CAAK,cAAa,EAAG,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAAA,EAEzE;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltOverlayHeader {\n padding: var(--salt-spacing-100);\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: stretch;\n gap: var(--salt-spacing-100);\n box-sizing: border-box;\n}\n\n.saltOverlayHeader-container {\n flex-grow: 1;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--salt-spacing-50);\n padding-top: calc((var(--salt-size-base) - var(--salt-text-h4-lineHeight)) / 2);\n align-items: flex-start;\n}\n\n.saltOverlayHeader-header {\n margin: 0;\n}\n\n.saltOverlayHeader-actionsContainer {\n align-self: flex-start;\n}\n\n/* Overrides */\n.saltOverlayHeader ~ .saltOverlayPanelContent {\n padding-top: 0;\n}\n";
3
+ var css_248z = ".saltOverlayHeader {\n padding: var(--saltOverlay-header-padding, var(--salt-spacing-100));\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: stretch;\n gap: var(--salt-spacing-100);\n flex-shrink: 0;\n box-sizing: border-box;\n}\n\n.saltOverlayHeader-container {\n flex-grow: 1;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--salt-spacing-50);\n align-items: flex-start;\n}\n\n.saltOverlayHeader-withActions .saltOverlayHeader-container {\n padding-top: calc((var(--salt-size-base) - var(--salt-text-h4-lineHeight)) / 2);\n}\n\n.saltOverlayHeader-header {\n margin: 0;\n}\n\n.saltOverlayHeader-actionsContainer {\n align-self: flex-start;\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=OverlayHeader.css.js.map
@@ -7,16 +7,20 @@ var clsx = require('clsx');
7
7
  var React = require('react');
8
8
  require('../text/Code.js');
9
9
  require('../text/Display.js');
10
+ require('../text/Editorial.js');
11
+ require('../text/Eyebrow.js');
10
12
  var Headings = require('../text/Headings.js');
11
13
  require('../text/Label.js');
12
14
  var Text = require('../text/Text.js');
13
15
  require('../text/TextAction.js');
14
16
  require('../text/TextNotation.js');
15
17
  var makePrefixer = require('../utils/makePrefixer.js');
18
+ var useIsomorphicLayoutEffect = require('../utils/useIsomorphicLayoutEffect.js');
16
19
  require('../utils/useFloatingUI/useFloatingUI.js');
17
- require('../utils/useId.js');
20
+ var useId = require('../utils/useId.js');
18
21
  require('../salt-provider/SaltProvider.js');
19
22
  require('../viewport/ViewportProvider.js');
23
+ var OverlayContext = require('./OverlayContext.js');
20
24
  var OverlayHeader$1 = require('./OverlayHeader.css.js');
21
25
 
22
26
  const withBaseName = makePrefixer.makePrefixer("saltOverlayHeader");
@@ -29,16 +33,54 @@ const OverlayHeader = React.forwardRef(
29
33
  window: targetWindow
30
34
  });
31
35
  const { className, description, header, actions, preheader, ...rest } = props;
32
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx.clsx(withBaseName(), className), ...rest, ref, children: [
33
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: withBaseName("container"), children: [
34
- /* @__PURE__ */ jsxRuntime.jsxs(Headings.H2, { styleAs: "h4", className: withBaseName("header"), children: [
35
- preheader && /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { color: "primary", children: preheader }),
36
- header
37
- ] }),
38
- description && /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { color: "secondary", className: withBaseName("description"), children: description })
39
- ] }),
40
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: withBaseName("actionsContainer"), children: actions })
41
- ] });
36
+ const { setHeaderId, setDescriptionId } = OverlayContext.useOverlayContext();
37
+ const headingId = useId.useId();
38
+ const descriptionId = useId.useId();
39
+ const hasHeading = Boolean(header || preheader);
40
+ const hasDescription = Boolean(description);
41
+ const hasActions = Boolean(actions);
42
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
43
+ setHeaderId == null ? void 0 : setHeaderId(hasHeading ? headingId : void 0);
44
+ return () => {
45
+ setHeaderId == null ? void 0 : setHeaderId(void 0);
46
+ };
47
+ }, [hasHeading, headingId, setHeaderId]);
48
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
49
+ setDescriptionId == null ? void 0 : setDescriptionId(hasDescription ? descriptionId : void 0);
50
+ return () => {
51
+ setDescriptionId == null ? void 0 : setDescriptionId(void 0);
52
+ };
53
+ }, [hasDescription, descriptionId, setDescriptionId]);
54
+ return /* @__PURE__ */ jsxRuntime.jsxs(
55
+ "div",
56
+ {
57
+ className: clsx.clsx(
58
+ withBaseName(),
59
+ { [withBaseName("withActions")]: hasActions },
60
+ className
61
+ ),
62
+ ...rest,
63
+ ref,
64
+ children: [
65
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: withBaseName("container"), children: [
66
+ hasHeading && /* @__PURE__ */ jsxRuntime.jsxs(Headings.H2, { id: headingId, styleAs: "h4", className: withBaseName("header"), children: [
67
+ preheader && /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { color: "primary", children: preheader }),
68
+ header
69
+ ] }),
70
+ description && /* @__PURE__ */ jsxRuntime.jsx(
71
+ Text.Text,
72
+ {
73
+ id: descriptionId,
74
+ color: "secondary",
75
+ className: withBaseName("description"),
76
+ children: description
77
+ }
78
+ )
79
+ ] }),
80
+ hasActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: withBaseName("actionsContainer"), children: actions })
81
+ ]
82
+ }
83
+ );
42
84
  }
43
85
  );
44
86
 
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayHeader.js","sources":["../src/overlay/OverlayHeader.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { H2, Text } from \"../text\";\nimport { makePrefixer } from \"../utils\";\n\nimport overlayHeaderCss from \"./OverlayHeader.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayHeader\");\n\nexport interface OverlayHeaderProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Description text is displayed just below the header\n **/\n description?: ReactNode;\n /**\n * Actions to be displayed in header\n */\n actions?: ReactNode;\n /**\n * Header text\n */\n header?: ReactNode;\n /**\n * Preheader text is displayed just above the header\n **/\n preheader?: ReactNode;\n}\n\nexport const OverlayHeader = forwardRef<HTMLDivElement, OverlayHeaderProps>(\n function OverlayHeader(props, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-header\",\n css: overlayHeaderCss,\n window: targetWindow,\n });\n\n const { className, description, header, actions, preheader, ...rest } =\n props;\n\n return (\n <div className={clsx(withBaseName(), className)} {...rest} ref={ref}>\n <div className={withBaseName(\"container\")}>\n <H2 styleAs=\"h4\" className={withBaseName(\"header\")}>\n {preheader && <Text color=\"primary\">{preheader}</Text>}\n {header}\n </H2>\n {description && (\n <Text color=\"secondary\" className={withBaseName(\"description\")}>\n {description}\n </Text>\n )}\n </div>\n {actions && (\n <div className={withBaseName(\"actionsContainer\")}>{actions}</div>\n )}\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OverlayHeader","useWindow","useComponentCssInjection","overlayHeaderCss","jsxs","clsx","H2","jsx","Text"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA;AAqB9C,MAAM,aAAA,GAAgBC,gBAAA;AAAA,EAC3B,SAASC,cAAAA,CAAc,KAAA,EAAO,GAAA,EAAK;AACjC,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAKC,eAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,WAAW,WAAA,EAAa,MAAA,EAAQ,SAAS,SAAA,EAAW,GAAG,MAAK,GAClE,KAAA;AAEF,IAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWC,SAAA,CAAK,YAAA,IAAgB,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,GAAA,EACzD,QAAA,EAAA;AAAA,sBAAAD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,WAAW,CAAA,EACtC,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAACE,eAAG,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,YAAA,CAAa,QAAQ,CAAA,EAC9C,QAAA,EAAA;AAAA,UAAA,SAAA,oBAAaC,cAAA,CAACC,SAAA,EAAA,EAAK,KAAA,EAAM,SAAA,EAAW,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,UAC9C;AAAA,SAAA,EACH,CAAA;AAAA,QACC,WAAA,mCACEA,SAAA,EAAA,EAAK,KAAA,EAAM,aAAY,SAAA,EAAW,YAAA,CAAa,aAAa,CAAA,EAC1D,QAAA,EAAA,WAAA,EACH;AAAA,OAAA,EAEJ,CAAA;AAAA,MACC,2BACCD,cAAA,CAAC,KAAA,EAAA,EAAI,WAAW,YAAA,CAAa,kBAAkB,GAAI,QAAA,EAAA,OAAA,EAAQ;AAAA,KAAA,EAE/D,CAAA;AAAA,EAEJ;AACF;;;;"}
1
+ {"version":3,"file":"OverlayHeader.js","sources":["../src/overlay/OverlayHeader.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { H2, Text } from \"../text\";\nimport { makePrefixer, useId, useIsomorphicLayoutEffect } from \"../utils\";\nimport { useOverlayContext } from \"./OverlayContext\";\nimport overlayHeaderCss from \"./OverlayHeader.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayHeader\");\n\nexport interface OverlayHeaderProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Description text is displayed just below the header\n **/\n description?: ReactNode;\n /**\n * Actions to be displayed in header\n */\n actions?: ReactNode;\n /**\n * Header text\n */\n header?: ReactNode;\n /**\n * Preheader text is displayed just above the header\n **/\n preheader?: ReactNode;\n}\n\nexport const OverlayHeader = forwardRef<HTMLDivElement, OverlayHeaderProps>(\n function OverlayHeader(props, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-header\",\n css: overlayHeaderCss,\n window: targetWindow,\n });\n\n const { className, description, header, actions, preheader, ...rest } =\n props;\n\n const { setHeaderId, setDescriptionId } = useOverlayContext();\n\n const headingId = useId();\n const descriptionId = useId();\n const hasHeading = Boolean(header || preheader);\n const hasDescription = Boolean(description);\n const hasActions = Boolean(actions);\n\n useIsomorphicLayoutEffect(() => {\n setHeaderId?.(hasHeading ? headingId : undefined);\n\n return () => {\n setHeaderId?.(undefined);\n };\n }, [hasHeading, headingId, setHeaderId]);\n\n useIsomorphicLayoutEffect(() => {\n setDescriptionId?.(hasDescription ? descriptionId : undefined);\n\n return () => {\n setDescriptionId?.(undefined);\n };\n }, [hasDescription, descriptionId, setDescriptionId]);\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"withActions\")]: hasActions },\n className,\n )}\n {...rest}\n ref={ref}\n >\n <div className={withBaseName(\"container\")}>\n {hasHeading && (\n <H2 id={headingId} styleAs=\"h4\" className={withBaseName(\"header\")}>\n {preheader && <Text color=\"primary\">{preheader}</Text>}\n {header}\n </H2>\n )}\n {description && (\n <Text\n id={descriptionId}\n color=\"secondary\"\n className={withBaseName(\"description\")}\n >\n {description}\n </Text>\n )}\n </div>\n {hasActions && (\n <div className={withBaseName(\"actionsContainer\")}>{actions}</div>\n )}\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OverlayHeader","useWindow","useComponentCssInjection","overlayHeaderCss","useOverlayContext","useId","useIsomorphicLayoutEffect","jsxs","clsx","H2","jsx","Text"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltOverlayPanel {\n --overlay-borderColor: var(--saltOverlay-borderColor, var(--salt-container-bold-borderColor));\n --overlay-background: var(--saltOverlay-background, var(--salt-container-primary-background));\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltOverlay-fontSize, var(--salt-text-fontSize));\n font-weight: var(--saltOverlay-fontWeight, var(--salt-text-fontWeight));\n line-height: var(--saltOverlay-lineHeight, var(--salt-text-lineHeight));\n\n border-color: var(--overlay-borderColor);\n border-style: var(--saltOverlay-borderStyle, var(--salt-borderStyle-solid));\n border-width: var(--saltOverlay-borderWidth, var(--salt-size-fixed-100));\n border-radius: var(--saltOverlay-borderRadius, var(--salt-palette-corner, 0));\n\n background: var(--overlay-background);\n box-shadow: var(--saltOverlay-boxShadow, var(--salt-overlayable-shadow-popout));\n\n color: var(--saltOverlay-text-color, var(--salt-content-primary-foreground));\n z-index: var(--saltOverlay-zIndex, var(--salt-zIndex-flyover));\n width: max-content;\n}\n";
3
+ var css_248z = ".saltOverlayPanel {\n --overlay-borderColor: var(--saltOverlay-borderColor, var(--salt-container-bold-borderColor));\n --overlay-background: var(--saltOverlay-background, var(--salt-container-primary-background));\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltOverlay-fontSize, var(--salt-text-fontSize));\n font-weight: var(--saltOverlay-fontWeight, var(--salt-text-fontWeight));\n line-height: var(--saltOverlay-lineHeight, var(--salt-text-lineHeight));\n letter-spacing: var(--salt-text-letterSpacing);\n\n border-color: var(--overlay-borderColor);\n border-style: var(--saltOverlay-borderStyle, var(--salt-borderStyle-solid));\n border-width: var(--saltOverlay-borderWidth, var(--salt-size-fixed-100));\n border-radius: var(--saltOverlay-borderRadius, var(--salt-palette-corner, 0));\n\n background: var(--overlay-background);\n box-shadow: var(--saltOverlay-boxShadow, var(--salt-overlayable-shadow-popout));\n\n color: var(--saltOverlay-text-color, var(--salt-content-primary-foreground));\n z-index: var(--saltOverlay-zIndex, var(--salt-zIndex-flyover));\n width: max-content;\n max-width: 100vw;\n max-height: 100vh;\n box-sizing: border-box;\n}\n\n.saltOverlayPanel-content {\n max-width: inherit;\n max-height: inherit;\n overflow-y: auto;\n box-sizing: border-box;\n}\n\n.saltOverlayPanel-content.saltOverlayPanel-sectioned {\n display: flex;\n flex-direction: column;\n}\n\n@supports selector(:has(*)) {\n .saltOverlayPanel-content:has(> .saltOverlayHeader, > .saltOverlayPanelContent, > .saltOverlayFooter) {\n display: flex;\n flex-direction: column;\n }\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=OverlayPanel.css.js.map
@@ -12,6 +12,7 @@ var useForkRef = require('../utils/useForkRef.js');
12
12
  require('../utils/useId.js');
13
13
  require('../salt-provider/SaltProvider.js');
14
14
  require('../viewport/ViewportProvider.js');
15
+ var hasOverlaySection = require('./hasOverlaySection.js');
15
16
  var OverlayContext = require('./OverlayContext.js');
16
17
  var OverlayPanel$1 = require('./OverlayPanel.css.js');
17
18
 
@@ -20,7 +21,9 @@ const OverlayPanel = React.forwardRef(
20
21
  function OverlayPanel2(props, ref) {
21
22
  const {
22
23
  className,
24
+ "aria-label": ariaLabel,
23
25
  "aria-labelledby": ariaLabelledby,
26
+ "aria-describedby": ariaDescribedby,
24
27
  children,
25
28
  ...rest
26
29
  } = props;
@@ -38,9 +41,12 @@ const OverlayPanel = React.forwardRef(
38
41
  getFloatingProps,
39
42
  floating,
40
43
  arrowProps,
41
- hideArrow
44
+ hideArrow,
45
+ headerId,
46
+ descriptionId
42
47
  } = OverlayContext.useOverlayContext();
43
48
  const handleRef = useForkRef.useForkRef(floating, ref);
49
+ const sectioned = hasOverlaySection.hasOverlaySection(children);
44
50
  const { top, left, width, height, position } = floatingStyles;
45
51
  return /* @__PURE__ */ jsxRuntime.jsxs(
46
52
  FloatingComponent,
@@ -59,13 +65,20 @@ const OverlayPanel = React.forwardRef(
59
65
  context,
60
66
  outsideElementsInert: true
61
67
  },
62
- "aria-labelledby": ariaLabelledby,
68
+ "aria-label": ariaLabel,
69
+ "aria-labelledby": clsx.clsx(ariaLabelledby, headerId) || void 0,
70
+ "aria-describedby": clsx.clsx(ariaDescribedby, descriptionId) || void 0,
63
71
  children: [
64
- /* @__PURE__ */ jsxRuntime.jsxs("div", { ...rest, children: [
65
- " ",
66
- children,
67
- " "
68
- ] }),
72
+ /* @__PURE__ */ jsxRuntime.jsx(
73
+ "div",
74
+ {
75
+ className: clsx.clsx(withBaseName("content"), {
76
+ [withBaseName("sectioned")]: sectioned
77
+ }),
78
+ ...rest,
79
+ children
80
+ }
81
+ ),
69
82
  !hideArrow && /* @__PURE__ */ jsxRuntime.jsx(
70
83
  react.FloatingArrow,
71
84
  {
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayPanel.js","sources":["../src/overlay/OverlayPanel.tsx"],"sourcesContent":["import { FloatingArrow } from \"@floating-ui/react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { makePrefixer, useFloatingComponent, useForkRef } from \"../utils\";\nimport { useOverlayContext } from \"./OverlayContext\";\nimport overlayPanelCss from \"./OverlayPanel.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanel\");\nexport interface OverlayPanelProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content of Overlay Panel\n */\n children?: ReactNode;\n}\n\nexport const OverlayPanel = forwardRef<HTMLDivElement, OverlayPanelProps>(\n function OverlayPanel(props, ref) {\n const {\n className,\n \"aria-labelledby\": ariaLabelledby,\n children,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel\",\n css: overlayPanelCss,\n window: targetWindow,\n });\n\n const { Component: FloatingComponent } = useFloatingComponent();\n\n const {\n openState,\n floatingStyles,\n context,\n getFloatingProps,\n floating,\n arrowProps,\n hideArrow,\n } = useOverlayContext();\n\n const handleRef = useForkRef<HTMLDivElement>(floating, ref);\n\n const { top, left, width, height, position } = floatingStyles;\n\n return (\n <FloatingComponent\n open={openState}\n className={clsx(withBaseName(), className)}\n aria-modal=\"true\"\n {...getFloatingProps()}\n ref={handleRef}\n width={width}\n height={height}\n top={top}\n left={left}\n position={position}\n focusManagerProps={{\n context: context,\n outsideElementsInert: true,\n }}\n aria-labelledby={ariaLabelledby}\n >\n <div {...rest}> {children} </div>\n {!hideArrow && (\n <FloatingArrow\n {...arrowProps}\n className={withBaseName(\"arrow\")}\n strokeWidth={1}\n fill=\"var(--overlay-background)\"\n stroke=\"var(--overlay-borderColor)\"\n height={6}\n width={12}\n />\n )}\n </FloatingComponent>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OverlayPanel","useWindow","useComponentCssInjection","overlayPanelCss","useFloatingComponent","useOverlayContext","useForkRef","jsxs","clsx","jsx","FloatingArrow"],"mappings":";;;;;;;;;;;;;;;;;AAaA,MAAM,YAAA,GAAeA,0BAAa,kBAAkB,CAAA;AAQ7C,MAAM,YAAA,GAAeC,gBAAA;AAAA,EAC1B,SAASC,aAAAA,CAAa,KAAA,EAAO,GAAA,EAAK;AAChC,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,iBAAA,EAAmB,cAAA;AAAA,MACnB,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAKC,cAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,SAAA,EAAW,iBAAA,EAAkB,GAAIC,kCAAA,EAAqB;AAE9D,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA,QACEC,gCAAA,EAAkB;AAEtB,IAAA,MAAM,SAAA,GAAYC,qBAAA,CAA2B,QAAA,EAAU,GAAG,CAAA;AAE1D,IAAA,MAAM,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,UAAS,GAAI,cAAA;AAE/C,IAAA,uBACEC,eAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,SAAA;AAAA,QACN,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,YAAA,EAAW,MAAA;AAAA,QACV,GAAG,gBAAA,EAAiB;AAAA,QACrB,GAAA,EAAK,SAAA;AAAA,QACL,KAAA;AAAA,QACA,MAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,iBAAA,EAAmB;AAAA,UACjB,OAAA;AAAA,UACA,oBAAA,EAAsB;AAAA,SACxB;AAAA,QACA,iBAAA,EAAiB,cAAA;AAAA,QAEjB,QAAA,EAAA;AAAA,0BAAAD,eAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,QAAA,EAAA;AAAA,YAAA,GAAA;AAAA,YAAE,QAAA;AAAA,YAAS;AAAA,WAAA,EAAC,CAAA;AAAA,UAC1B,CAAC,SAAA,oBACAE,cAAA;AAAA,YAACC,mBAAA;AAAA,YAAA;AAAA,cACE,GAAG,UAAA;AAAA,cACJ,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,cAC/B,WAAA,EAAa,CAAA;AAAA,cACb,IAAA,EAAK,2BAAA;AAAA,cACL,MAAA,EAAO,4BAAA;AAAA,cACP,MAAA,EAAQ,CAAA;AAAA,cACR,KAAA,EAAO;AAAA;AAAA;AACT;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;;;;"}
1
+ {"version":3,"file":"OverlayPanel.js","sources":["../src/overlay/OverlayPanel.tsx"],"sourcesContent":["import { FloatingArrow } from \"@floating-ui/react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { makePrefixer, useFloatingComponent, useForkRef } from \"../utils\";\nimport { hasOverlaySection } from \"./hasOverlaySection\";\nimport { useOverlayContext } from \"./OverlayContext\";\nimport overlayPanelCss from \"./OverlayPanel.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanel\");\nexport interface OverlayPanelProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content of Overlay Panel\n */\n children?: ReactNode;\n}\n\nexport const OverlayPanel = forwardRef<HTMLDivElement, OverlayPanelProps>(\n function OverlayPanel(props, ref) {\n const {\n className,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n children,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel\",\n css: overlayPanelCss,\n window: targetWindow,\n });\n\n const { Component: FloatingComponent } = useFloatingComponent();\n\n const {\n openState,\n floatingStyles,\n context,\n getFloatingProps,\n floating,\n arrowProps,\n hideArrow,\n headerId,\n descriptionId,\n } = useOverlayContext();\n\n const handleRef = useForkRef<HTMLDivElement>(floating, ref);\n\n const sectioned = hasOverlaySection(children);\n\n const { top, left, width, height, position } = floatingStyles;\n\n return (\n <FloatingComponent\n open={openState}\n className={clsx(withBaseName(), className)}\n aria-modal=\"true\"\n {...getFloatingProps()}\n ref={handleRef}\n width={width}\n height={height}\n top={top}\n left={left}\n position={position}\n focusManagerProps={{\n context: context,\n outsideElementsInert: true,\n }}\n aria-label={ariaLabel}\n aria-labelledby={clsx(ariaLabelledby, headerId) || undefined}\n aria-describedby={clsx(ariaDescribedby, descriptionId) || undefined}\n >\n <div\n className={clsx(withBaseName(\"content\"), {\n [withBaseName(\"sectioned\")]: sectioned,\n })}\n {...rest}\n >\n {children}\n </div>\n {!hideArrow && (\n <FloatingArrow\n {...arrowProps}\n className={withBaseName(\"arrow\")}\n strokeWidth={1}\n fill=\"var(--overlay-background)\"\n stroke=\"var(--overlay-borderColor)\"\n height={6}\n width={12}\n />\n )}\n </FloatingComponent>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OverlayPanel","useWindow","useComponentCssInjection","overlayPanelCss","useFloatingComponent","useOverlayContext","useForkRef","hasOverlaySection","jsxs","clsx","jsx","FloatingArrow"],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAM,YAAA,GAAeA,0BAAa,kBAAkB,CAAA;AAQ7C,MAAM,YAAA,GAAeC,gBAAA;AAAA,EAC1B,SAASC,aAAAA,CAAa,KAAA,EAAO,GAAA,EAAK;AAChC,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,YAAA,EAAc,SAAA;AAAA,MACd,iBAAA,EAAmB,cAAA;AAAA,MACnB,kBAAA,EAAoB,eAAA;AAAA,MACpB,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAKC,cAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,SAAA,EAAW,iBAAA,EAAkB,GAAIC,kCAAA,EAAqB;AAE9D,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,QACEC,gCAAA,EAAkB;AAEtB,IAAA,MAAM,SAAA,GAAYC,qBAAA,CAA2B,QAAA,EAAU,GAAG,CAAA;AAE1D,IAAA,MAAM,SAAA,GAAYC,oCAAkB,QAAQ,CAAA;AAE5C,IAAA,MAAM,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,UAAS,GAAI,cAAA;AAE/C,IAAA,uBACEC,eAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,SAAA;AAAA,QACN,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,YAAA,EAAW,MAAA;AAAA,QACV,GAAG,gBAAA,EAAiB;AAAA,QACrB,GAAA,EAAK,SAAA;AAAA,QACL,KAAA;AAAA,QACA,MAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,iBAAA,EAAmB;AAAA,UACjB,OAAA;AAAA,UACA,oBAAA,EAAsB;AAAA,SACxB;AAAA,QACA,YAAA,EAAY,SAAA;AAAA,QACZ,iBAAA,EAAiBA,SAAA,CAAK,cAAA,EAAgB,QAAQ,CAAA,IAAK,MAAA;AAAA,QACnD,kBAAA,EAAkBA,SAAA,CAAK,eAAA,EAAiB,aAAa,CAAA,IAAK,MAAA;AAAA,QAE1D,QAAA,EAAA;AAAA,0BAAAC,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWD,SAAA,CAAK,YAAA,CAAa,SAAS,CAAA,EAAG;AAAA,gBACvC,CAAC,YAAA,CAAa,WAAW,CAAC,GAAG;AAAA,eAC9B,CAAA;AAAA,cACA,GAAG,IAAA;AAAA,cAEH;AAAA;AAAA,WACH;AAAA,UACC,CAAC,SAAA,oBACAC,cAAA;AAAA,YAACC,mBAAA;AAAA,YAAA;AAAA,cACE,GAAG,UAAA;AAAA,cACJ,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,cAC/B,WAAA,EAAa,CAAA;AAAA,cACb,IAAA,EAAK,2BAAA;AAAA,cACL,MAAA,EAAO,4BAAA;AAAA,cACP,MAAA,EAAQ,CAAA;AAAA,cACR,KAAA,EAAO;AAAA;AAAA;AACT;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;;;;"}
@@ -15,7 +15,7 @@ require('../viewport/ViewportProvider.js');
15
15
  var OverlayPanelCloseButton$1 = require('./OverlayPanelCloseButton.css.js');
16
16
 
17
17
  const withBaseName = makePrefixer.makePrefixer("saltOverlayPanelCloseButton");
18
- const OverlayPanelCloseButton = React.forwardRef(function OverlayPanelButton({ className, ...rest }, ref) {
18
+ const OverlayPanelCloseButton = React.forwardRef(function OverlayPanelCloseButton2({ className, ...rest }, ref) {
19
19
  const targetWindow = window.useWindow();
20
20
  styles.useComponentCssInjection({
21
21
  testId: "salt-overlay-panel-close-button",
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayPanelCloseButton.js","sources":["../src/overlay/OverlayPanelCloseButton.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { makePrefixer } from \"../utils\";\nimport overlayPanelCloseButtonCss from \"./OverlayPanelCloseButton.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanelCloseButton\");\n\nexport const OverlayPanelCloseButton = forwardRef<\n HTMLButtonElement,\n ButtonProps\n>(function OverlayPanelButton({ className, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel-close-button\",\n css: overlayPanelCloseButtonCss,\n window: targetWindow,\n });\n const { CloseIcon } = useIcon();\n\n return (\n <div className={clsx(withBaseName(), className)}>\n <Button\n ref={ref}\n aria-label=\"Close overlay\"\n appearance=\"transparent\"\n className={withBaseName(\"button\")}\n {...rest}\n >\n <CloseIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","useWindow","useComponentCssInjection","overlayPanelCloseButtonCss","useIcon","clsx","jsx","Button"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,6BAA6B,CAAA;AAExD,MAAM,uBAAA,GAA0BC,iBAGrC,SAAS,kBAAA,CAAmB,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AACzD,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,iCAAA;AAAA,IACR,GAAA,EAAKC,yBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,MAAM,EAAE,SAAA,EAAU,GAAIC,4BAAA,EAAQ;AAE9B,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWC,UAAK,YAAA,EAAa,EAAG,SAAS,CAAA,EAC5C,QAAA,kBAAAC,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,YAAA,EAAW,eAAA;AAAA,MACX,UAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAW,aAAa,QAAQ,CAAA;AAAA,MAC/B,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAD,cAAA,CAAC,SAAA,EAAA,EAAU,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,GACzB,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"OverlayPanelCloseButton.js","sources":["../src/overlay/OverlayPanelCloseButton.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { makePrefixer } from \"../utils\";\nimport overlayPanelCloseButtonCss from \"./OverlayPanelCloseButton.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanelCloseButton\");\n\nexport const OverlayPanelCloseButton = forwardRef<\n HTMLButtonElement,\n ButtonProps\n>(function OverlayPanelCloseButton({ className, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel-close-button\",\n css: overlayPanelCloseButtonCss,\n window: targetWindow,\n });\n const { CloseIcon } = useIcon();\n\n return (\n <div className={clsx(withBaseName(), className)}>\n <Button\n ref={ref}\n aria-label=\"Close overlay\"\n appearance=\"transparent\"\n className={withBaseName(\"button\")}\n {...rest}\n >\n <CloseIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","OverlayPanelCloseButton","useWindow","useComponentCssInjection","overlayPanelCloseButtonCss","useIcon","clsx","jsx","Button"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,6BAA6B,CAAA;AAExD,MAAM,uBAAA,GAA0BC,iBAGrC,SAASC,wBAAAA,CAAwB,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC9D,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,iCAAA;AAAA,IACR,GAAA,EAAKC,yBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,MAAM,EAAE,SAAA,EAAU,GAAIC,4BAAA,EAAQ;AAE9B,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWC,UAAK,YAAA,EAAa,EAAG,SAAS,CAAA,EAC5C,QAAA,kBAAAC,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,YAAA,EAAW,eAAA;AAAA,MACX,UAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAW,aAAa,QAAQ,CAAA;AAAA,MAC/B,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAD,cAAA,CAAC,SAAA,EAAA,EAAU,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,GACzB,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltOverlayPanelContent {\n animation: var(--salt-animation-fade-in-center);\n position: relative;\n overflow: hidden;\n padding: var(--saltOverlay-content-padding, var(--salt-spacing-100));\n}\n\n.saltOverlayPanelContent-overflow {\n padding-right: var(--salt-spacing-100);\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) transparent;\n border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) transparent;\n overflow-y: auto;\n}\n.saltOverlayPanelContent-overflow.saltOverlayPanelContent-scroll-top {\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-separable-tertiary-borderColor);\n}\n";
3
+ var css_248z = ".saltOverlayPanelContent {\n animation: var(--salt-animation-fade-in-center);\n position: relative;\n overflow: hidden;\n padding: var(--saltOverlay-content-padding, var(--salt-spacing-100));\n flex: 1 1 auto;\n min-height: 0;\n display: flex;\n}\n\n.saltOverlayHeader ~ .saltOverlayPanelContent {\n padding-top: 0;\n}\n\n.saltOverlayPanelContent:not(:last-child) {\n padding-bottom: 0;\n}\n\n.saltOverlayPanelContent-container {\n flex: 1;\n min-width: 0;\n}\n\n.saltOverlayPanelContent-overflow {\n padding-right: var(--salt-spacing-100);\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) transparent;\n border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) transparent;\n overflow-y: auto;\n}\n.saltOverlayPanelContent-overflow.saltOverlayPanelContent-scroll-top {\n border-top-color: var(--salt-separable-tertiary-borderColor);\n}\n\n.saltOverlayPanelContent-overflow.saltOverlayPanelContent-scroll-bottom {\n border-bottom-color: var(--salt-separable-tertiary-borderColor);\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=OverlayPanelContent.css.js.map
@@ -5,7 +5,6 @@ var styles = require('@salt-ds/styles');
5
5
  var window = require('@salt-ds/window');
6
6
  var clsx = require('clsx');
7
7
  var React = require('react');
8
- var debounce = require('../utils/debounce.js');
9
8
  var makePrefixer = require('../utils/makePrefixer.js');
10
9
  var useIsomorphicLayoutEffect = require('../utils/useIsomorphicLayoutEffect.js');
11
10
  require('../utils/useFloatingUI/useFloatingUI.js');
@@ -30,25 +29,24 @@ const OverlayPanelContent = React.forwardRef(function OverlayPanelContent2(props
30
29
  const [isOverflowing, setIsOverflowing] = React.useState(false);
31
30
  const divRef = React.useRef(null);
32
31
  const containerRef = useForkRef.useForkRef(divRef, ref);
33
- const handleScroll = debounce.debounce(() => {
32
+ const updateScrollState = React.useCallback(() => {
34
33
  const container = divRef.current;
35
34
  if (!container) return;
36
- setScrollBarTop(container.scrollTop > 0);
37
- setScrollBarBottom(
38
- container.scrollHeight - container.scrollTop - container.clientHeight !== 0
39
- );
40
- });
41
- const checkOverflow = React.useCallback(() => {
42
- if (!divRef.current) return;
35
+ const remainingScroll = container.scrollHeight - container.scrollTop - container.clientHeight;
43
36
  setIsOverflowing(
44
- divRef.current.scrollHeight > divRef.current.offsetHeight + 1
37
+ container.scrollHeight > container.offsetHeight + 1
45
38
  // var(--salt-size-thickness-100)
46
39
  );
40
+ setScrollBarTop(container.scrollTop > 0);
41
+ setScrollBarBottom(remainingScroll > 1);
47
42
  }, []);
48
- useResizeObserver.useResizeObserver({ ref: divRef, onResize: checkOverflow });
43
+ const handleScroll = () => {
44
+ targetWindow == null ? void 0 : targetWindow.requestAnimationFrame(updateScrollState);
45
+ };
46
+ useResizeObserver.useResizeObserver({ ref: divRef, onResize: updateScrollState });
49
47
  useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
50
- checkOverflow();
51
- }, [checkOverflow]);
48
+ updateScrollState();
49
+ }, [updateScrollState]);
52
50
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx.clsx(withBaseName(), className), children: /* @__PURE__ */ jsxRuntime.jsx(
53
51
  "div",
54
52
  {
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayPanelContent.js","sources":["../src/overlay/OverlayPanelContent.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport {\n debounce,\n makePrefixer,\n useForkRef,\n useIsomorphicLayoutEffect,\n useResizeObserver,\n} from \"../utils\";\nimport overlayPanelContentCss from \"./OverlayPanelContent.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanelContent\");\n\nexport interface OverlayPanelContentProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content of Overlay Panel Content\n */\n children?: ReactNode;\n}\n\nexport const OverlayPanelContent = forwardRef<\n HTMLDivElement,\n OverlayPanelContentProps\n>(function OverlayPanelContent(props, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel-content\",\n css: overlayPanelContentCss,\n window: targetWindow,\n });\n\n const { children, className, ...rest } = props;\n const [scrollBarTop, setScrollBarTop] = useState(false);\n const [scrollBarBottom, setScrollBarBottom] = useState(true);\n const [isOverflowing, setIsOverflowing] = useState(false);\n const divRef = useRef<HTMLDivElement>(null);\n const containerRef = useForkRef(divRef, ref);\n const handleScroll = debounce(() => {\n const container = divRef.current;\n if (!container) return;\n setScrollBarTop(container.scrollTop > 0);\n setScrollBarBottom(\n container.scrollHeight - container.scrollTop - container.clientHeight !==\n 0,\n );\n });\n\n const checkOverflow = useCallback(() => {\n if (!divRef.current) return;\n setIsOverflowing(\n divRef.current.scrollHeight > divRef.current.offsetHeight + 1, // var(--salt-size-thickness-100)\n );\n }, []);\n\n useResizeObserver({ ref: divRef, onResize: checkOverflow });\n\n useIsomorphicLayoutEffect(() => {\n checkOverflow();\n }, [checkOverflow]);\n\n return (\n <div className={clsx(withBaseName(), className)}>\n <div\n className={clsx(withBaseName(\"container\"), {\n [withBaseName(\"overflow\")]: isOverflowing,\n [withBaseName(\"scroll-top\")]: isOverflowing && scrollBarTop,\n [withBaseName(\"scroll-bottom\")]: isOverflowing && scrollBarBottom,\n })}\n onScrollCapture={handleScroll}\n {...rest}\n ref={containerRef}\n >\n {children}\n </div>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","OverlayPanelContent","useWindow","useComponentCssInjection","overlayPanelContentCss","useState","useRef","useForkRef","debounce","useCallback","useResizeObserver","useIsomorphicLayoutEffect","clsx","jsx"],"mappings":";;;;;;;;;;;;;;;;;;AAoBA,MAAM,YAAA,GAAeA,0BAAa,yBAAyB,CAAA;AAUpD,MAAM,mBAAA,GAAsBC,gBAAA,CAGjC,SAASC,oBAAAA,CAAoB,OAAO,GAAA,EAAK;AACzC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,4BAAA;AAAA,IACR,GAAA,EAAKC,qBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AACzC,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIC,eAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,eAAS,IAAI,CAAA;AAC3D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,eAAS,KAAK,CAAA;AACxD,EAAA,MAAM,MAAA,GAASC,aAAuB,IAAI,CAAA;AAC1C,EAAA,MAAM,YAAA,GAAeC,qBAAA,CAAW,MAAA,EAAQ,GAAG,CAAA;AAC3C,EAAA,MAAM,YAAA,GAAeC,kBAAS,MAAM;AAClC,IAAA,MAAM,YAAY,MAAA,CAAO,OAAA;AACzB,IAAA,IAAI,CAAC,SAAA,EAAW;AAChB,IAAA,eAAA,CAAgB,SAAA,CAAU,YAAY,CAAC,CAAA;AACvC,IAAA,kBAAA;AAAA,MACE,SAAA,CAAU,YAAA,GAAe,SAAA,CAAU,SAAA,GAAY,UAAU,YAAA,KACvD;AAAA,KACJ;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,aAAA,GAAgBC,kBAAY,MAAM;AACtC,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACrB,IAAA,gBAAA;AAAA,MACE,MAAA,CAAO,OAAA,CAAQ,YAAA,GAAe,MAAA,CAAO,QAAQ,YAAA,GAAe;AAAA;AAAA,KAC9D;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAAC,mCAAA,CAAkB,EAAE,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,eAAe,CAAA;AAE1D,EAAAC,mDAAA,CAA0B,MAAM;AAC9B,IAAA,aAAA,EAAc;AAAA,EAChB,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWC,UAAK,YAAA,EAAa,EAAG,SAAS,CAAA,EAC5C,QAAA,kBAAAC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWD,SAAA,CAAK,YAAA,CAAa,WAAW,CAAA,EAAG;AAAA,QACzC,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,aAAA;AAAA,QAC5B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,aAAA,IAAiB,YAAA;AAAA,QAC/C,CAAC,YAAA,CAAa,eAAe,CAAC,GAAG,aAAA,IAAiB;AAAA,OACnD,CAAA;AAAA,MACD,eAAA,EAAiB,YAAA;AAAA,MAChB,GAAG,IAAA;AAAA,MACJ,GAAA,EAAK,YAAA;AAAA,MAEJ;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"OverlayPanelContent.js","sources":["../src/overlay/OverlayPanelContent.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport {\n makePrefixer,\n useForkRef,\n useIsomorphicLayoutEffect,\n useResizeObserver,\n} from \"../utils\";\nimport overlayPanelContentCss from \"./OverlayPanelContent.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanelContent\");\n\nexport interface OverlayPanelContentProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content of Overlay Panel Content\n */\n children?: ReactNode;\n}\n\nexport const OverlayPanelContent = forwardRef<\n HTMLDivElement,\n OverlayPanelContentProps\n>(function OverlayPanelContent(props, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel-content\",\n css: overlayPanelContentCss,\n window: targetWindow,\n });\n\n const { children, className, ...rest } = props;\n const [scrollBarTop, setScrollBarTop] = useState(false);\n const [scrollBarBottom, setScrollBarBottom] = useState(true);\n const [isOverflowing, setIsOverflowing] = useState(false);\n const divRef = useRef<HTMLDivElement>(null);\n const containerRef = useForkRef(divRef, ref);\n\n const updateScrollState = useCallback(() => {\n const container = divRef.current;\n if (!container) return;\n\n const remainingScroll =\n container.scrollHeight - container.scrollTop - container.clientHeight;\n setIsOverflowing(\n container.scrollHeight > container.offsetHeight + 1, // var(--salt-size-thickness-100)\n );\n setScrollBarTop(container.scrollTop > 0);\n setScrollBarBottom(remainingScroll > 1);\n }, []);\n\n const handleScroll = () => {\n targetWindow?.requestAnimationFrame(updateScrollState);\n };\n\n useResizeObserver({ ref: divRef, onResize: updateScrollState });\n\n useIsomorphicLayoutEffect(() => {\n updateScrollState();\n }, [updateScrollState]);\n\n return (\n <div className={clsx(withBaseName(), className)}>\n <div\n className={clsx(withBaseName(\"container\"), {\n [withBaseName(\"overflow\")]: isOverflowing,\n [withBaseName(\"scroll-top\")]: isOverflowing && scrollBarTop,\n [withBaseName(\"scroll-bottom\")]: isOverflowing && scrollBarBottom,\n })}\n onScrollCapture={handleScroll}\n {...rest}\n ref={containerRef}\n >\n {children}\n </div>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","OverlayPanelContent","useWindow","useComponentCssInjection","overlayPanelContentCss","useState","useRef","useForkRef","useCallback","useResizeObserver","useIsomorphicLayoutEffect","clsx","jsx"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,MAAM,YAAA,GAAeA,0BAAa,yBAAyB,CAAA;AAUpD,MAAM,mBAAA,GAAsBC,gBAAA,CAGjC,SAASC,oBAAAA,CAAoB,OAAO,GAAA,EAAK;AACzC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,4BAAA;AAAA,IACR,GAAA,EAAKC,qBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AACzC,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIC,eAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,eAAS,IAAI,CAAA;AAC3D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,eAAS,KAAK,CAAA;AACxD,EAAA,MAAM,MAAA,GAASC,aAAuB,IAAI,CAAA;AAC1C,EAAA,MAAM,YAAA,GAAeC,qBAAA,CAAW,MAAA,EAAQ,GAAG,CAAA;AAE3C,EAAA,MAAM,iBAAA,GAAoBC,kBAAY,MAAM;AAC1C,IAAA,MAAM,YAAY,MAAA,CAAO,OAAA;AACzB,IAAA,IAAI,CAAC,SAAA,EAAW;AAEhB,IAAA,MAAM,eAAA,GACJ,SAAA,CAAU,YAAA,GAAe,SAAA,CAAU,YAAY,SAAA,CAAU,YAAA;AAC3D,IAAA,gBAAA;AAAA,MACE,SAAA,CAAU,YAAA,GAAe,SAAA,CAAU,YAAA,GAAe;AAAA;AAAA,KACpD;AACA,IAAA,eAAA,CAAgB,SAAA,CAAU,YAAY,CAAC,CAAA;AACvC,IAAA,kBAAA,CAAmB,kBAAkB,CAAC,CAAA;AAAA,EACxC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,qBAAA,CAAsB,iBAAA,CAAA;AAAA,EACtC,CAAA;AAEA,EAAAC,mCAAA,CAAkB,EAAE,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,mBAAmB,CAAA;AAE9D,EAAAC,mDAAA,CAA0B,MAAM;AAC9B,IAAA,iBAAA,EAAkB;AAAA,EACpB,CAAA,EAAG,CAAC,iBAAiB,CAAC,CAAA;AAEtB,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWC,UAAK,YAAA,EAAa,EAAG,SAAS,CAAA,EAC5C,QAAA,kBAAAC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWD,SAAA,CAAK,YAAA,CAAa,WAAW,CAAA,EAAG;AAAA,QACzC,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,aAAA;AAAA,QAC5B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,aAAA,IAAiB,YAAA;AAAA,QAC/C,CAAC,YAAA,CAAa,eAAe,CAAC,GAAG,aAAA,IAAiB;AAAA,OACnD,CAAA;AAAA,MACD,eAAA,EAAiB,YAAA;AAAA,MAChB,GAAG,IAAA;AAAA,MACJ,GAAA,EAAK,YAAA;AAAA,MAEJ;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var OverlayFooter = require('./OverlayFooter.js');
5
+ var OverlayHeader = require('./OverlayHeader.js');
6
+ var OverlayPanelContent = require('./OverlayPanelContent.js');
7
+
8
+ const overlaySectionTypes = [OverlayHeader.OverlayHeader, OverlayPanelContent.OverlayPanelContent, OverlayFooter.OverlayFooter];
9
+ function hasOverlaySection(children) {
10
+ return React.Children.toArray(children).some((child) => {
11
+ if (!React.isValidElement(child)) return false;
12
+ if (child.type === React.Fragment) {
13
+ return hasOverlaySection(
14
+ child.props.children
15
+ );
16
+ }
17
+ return overlaySectionTypes.some(
18
+ (sectionType) => child.type === sectionType
19
+ );
20
+ });
21
+ }
22
+
23
+ exports.hasOverlaySection = hasOverlaySection;
24
+ //# sourceMappingURL=hasOverlaySection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasOverlaySection.js","sources":["../src/overlay/hasOverlaySection.ts"],"sourcesContent":["import { Children, Fragment, isValidElement, type ReactNode } from \"react\";\nimport { OverlayFooter } from \"./OverlayFooter\";\nimport { OverlayHeader } from \"./OverlayHeader\";\nimport { OverlayPanelContent } from \"./OverlayPanelContent\";\n\nconst overlaySectionTypes = [OverlayHeader, OverlayPanelContent, OverlayFooter];\n\nexport function hasOverlaySection(children: ReactNode): boolean {\n return Children.toArray(children).some((child) => {\n if (!isValidElement(child)) return false;\n\n if (child.type === Fragment) {\n return hasOverlaySection(\n (child.props as { children?: ReactNode }).children,\n );\n }\n\n return overlaySectionTypes.some(\n (sectionType) => child.type === sectionType,\n );\n });\n}\n"],"names":["OverlayHeader","OverlayPanelContent","OverlayFooter","Children","isValidElement","Fragment"],"mappings":";;;;;;;AAKA,MAAM,mBAAA,GAAsB,CAACA,2BAAA,EAAeC,uCAAA,EAAqBC,2BAAa,CAAA;AAEvE,SAAS,kBAAkB,QAAA,EAA8B;AAC9D,EAAA,OAAOC,eAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,KAAA,KAAU;AAChD,IAAA,IAAI,CAACC,oBAAA,CAAe,KAAK,CAAA,EAAG,OAAO,KAAA;AAEnC,IAAA,IAAI,KAAA,CAAM,SAASC,cAAA,EAAU;AAC3B,MAAA,OAAO,iBAAA;AAAA,QACJ,MAAM,KAAA,CAAmC;AAAA,OAC5C;AAAA,IACF;AAEA,IAAA,OAAO,mBAAA,CAAoB,IAAA;AAAA,MACzB,CAAC,WAAA,KAAgB,KAAA,CAAM,IAAA,KAAS;AAAA,KAClC;AAAA,EACF,CAAC,CAAA;AACH;;;;"}
@@ -9,6 +9,8 @@ var Button = require('../button/Button.js');
9
9
  var SemanticIconProvider = require('../semantic-icon-provider/SemanticIconProvider.js');
10
10
  require('../text/Code.js');
11
11
  require('../text/Display.js');
12
+ require('../text/Editorial.js');
13
+ require('../text/Eyebrow.js');
12
14
  require('../text/Headings.js');
13
15
  require('../text/Label.js');
14
16
  var Text = require('../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"CompactPaginator.js","sources":["../src/pagination/CompactPaginator.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEventHandler,\n} from \"react\";\nimport { Button } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { Text } from \"../text\";\nimport { makePrefixer } from \"../utils\";\nimport compactPaginatorCss from \"./CompactPaginator.css\";\nimport { PageButton } from \"./PageButton\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltCompactPaginator\");\n\nexport const CompactPaginator = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(function CompactPaginator({ children, className, ...restProps }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-compact-paginator\",\n css: compactPaginatorCss,\n window: targetWindow,\n });\n\n const { NextIcon, PreviousIcon } = useIcon();\n\n const { count, page, onPageChange } = usePaginationContext();\n\n const onPreviousPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.max(1, page - 1));\n };\n\n const onNextPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.min(page + 1, count));\n };\n\n const isOnFirstPage = page === 1;\n const isOnLastPage = page === count;\n\n return (\n <div className={clsx(withBaseName(), className)} {...restProps} ref={ref}>\n <Button\n appearance=\"transparent\"\n aria-label=\"Previous Page\"\n onClick={onPreviousPage}\n disabled={isOnFirstPage}\n className={withBaseName(\"arrowButton\")}\n >\n <PreviousIcon aria-hidden />\n </Button>\n {children ? children : <PageButton page={page} disabled />}\n <Text as=\"span\" variant=\"secondary\">\n of\n </Text>\n <PageButton page={count} disabled={isOnLastPage} />\n <Button\n appearance=\"transparent\"\n aria-label=\"Next Page\"\n onClick={onNextPage}\n disabled={isOnLastPage}\n className={withBaseName(\"arrowButton\")}\n >\n <NextIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","CompactPaginator","useWindow","useComponentCssInjection","compactPaginatorCss","useIcon","usePaginationContext","jsxs","clsx","jsx","Button","PageButton","Text"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,YAAA,GAAeA,0BAAa,sBAAsB,CAAA;AAEjD,MAAM,gBAAA,GAAmBC,gBAAA,CAG9B,SAASC,iBAAAA,CAAiB,EAAE,UAAU,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,wBAAA;AAAA,IACR,GAAA,EAAKC,kBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,QAAA,EAAU,YAAA,EAAa,GAAIC,4BAAA,EAAQ;AAE3C,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,YAAA,KAAiBC,yCAAA,EAAqB;AAE3D,EAAA,MAAM,cAAA,GAAuD,CAAC,KAAA,KAAU;AACtE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,GAAO,CAAC,CAAC,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,UAAA,GAAmD,CAAC,KAAA,KAAU;AAClE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,EAC/C,CAAA;AAEA,EAAA,MAAM,gBAAgB,IAAA,KAAS,CAAA;AAC/B,EAAA,MAAM,eAAe,IAAA,KAAS,KAAA;AAE9B,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWC,SAAA,CAAK,YAAA,IAAgB,SAAS,CAAA,EAAI,GAAG,SAAA,EAAW,GAAA,EAC9D,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,eAAA;AAAA,QACX,OAAA,EAAS,cAAA;AAAA,QACT,QAAA,EAAU,aAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,YAAA,EAAA,EAAa,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,KAC5B;AAAA,IACC,WAAW,QAAA,mBAAWA,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAY,UAAQ,IAAA,EAAC,CAAA;AAAA,mCACvDC,SAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,aAAY,QAAA,EAAA,IAAA,EAEpC,CAAA;AAAA,oBACAH,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAM,KAAA,EAAO,UAAU,YAAA,EAAc,CAAA;AAAA,oBACjDF,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,UAAA;AAAA,QACT,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA;AACxB,GAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"CompactPaginator.js","sources":["../src/pagination/CompactPaginator.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEventHandler,\n} from \"react\";\nimport { Button } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { Text } from \"../text\";\nimport { makePrefixer } from \"../utils\";\nimport compactPaginatorCss from \"./CompactPaginator.css\";\nimport { PageButton } from \"./PageButton\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltCompactPaginator\");\n\nexport const CompactPaginator = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(function CompactPaginator({ children, className, ...restProps }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-compact-paginator\",\n css: compactPaginatorCss,\n window: targetWindow,\n });\n\n const { NextIcon, PreviousIcon } = useIcon();\n\n const { count, page, onPageChange } = usePaginationContext();\n\n const onPreviousPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.max(1, page - 1));\n };\n\n const onNextPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.min(page + 1, count));\n };\n\n const isOnFirstPage = page === 1;\n const isOnLastPage = page === count;\n\n return (\n <div className={clsx(withBaseName(), className)} {...restProps} ref={ref}>\n <Button\n appearance=\"transparent\"\n aria-label=\"Previous Page\"\n onClick={onPreviousPage}\n disabled={isOnFirstPage}\n className={withBaseName(\"arrowButton\")}\n >\n <PreviousIcon aria-hidden />\n </Button>\n {children ? children : <PageButton page={page} disabled />}\n <Text as=\"span\" variant=\"secondary\">\n of\n </Text>\n <PageButton page={count} disabled={isOnLastPage} />\n <Button\n appearance=\"transparent\"\n aria-label=\"Next Page\"\n onClick={onNextPage}\n disabled={isOnLastPage}\n className={withBaseName(\"arrowButton\")}\n >\n <NextIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","CompactPaginator","useWindow","useComponentCssInjection","compactPaginatorCss","useIcon","usePaginationContext","jsxs","clsx","jsx","Button","PageButton","Text"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,YAAA,GAAeA,0BAAa,sBAAsB,CAAA;AAEjD,MAAM,gBAAA,GAAmBC,gBAAA,CAG9B,SAASC,iBAAAA,CAAiB,EAAE,UAAU,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,wBAAA;AAAA,IACR,GAAA,EAAKC,kBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,QAAA,EAAU,YAAA,EAAa,GAAIC,4BAAA,EAAQ;AAE3C,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,YAAA,KAAiBC,yCAAA,EAAqB;AAE3D,EAAA,MAAM,cAAA,GAAuD,CAAC,KAAA,KAAU;AACtE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,GAAO,CAAC,CAAC,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,UAAA,GAAmD,CAAC,KAAA,KAAU;AAClE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,EAC/C,CAAA;AAEA,EAAA,MAAM,gBAAgB,IAAA,KAAS,CAAA;AAC/B,EAAA,MAAM,eAAe,IAAA,KAAS,KAAA;AAE9B,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWC,SAAA,CAAK,YAAA,IAAgB,SAAS,CAAA,EAAI,GAAG,SAAA,EAAW,GAAA,EAC9D,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,eAAA;AAAA,QACX,OAAA,EAAS,cAAA;AAAA,QACT,QAAA,EAAU,aAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,YAAA,EAAA,EAAa,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,KAC5B;AAAA,IACC,WAAW,QAAA,mBAAWA,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAY,UAAQ,IAAA,EAAC,CAAA;AAAA,mCACvDC,SAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,aAAY,QAAA,EAAA,IAAA,EAEpC,CAAA;AAAA,oBACAH,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAM,KAAA,EAAO,UAAU,YAAA,EAAc,CAAA;AAAA,oBACjDF,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,UAAA;AAAA,QACT,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA;AACxB,GAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -10,6 +10,8 @@ require('../form-field-context/FormFieldContext.js');
10
10
  require('../status-indicator/StatusIndicator.js');
11
11
  require('../text/Code.js');
12
12
  require('../text/Display.js');
13
+ require('../text/Editorial.js');
14
+ require('../text/Eyebrow.js');
13
15
  require('../text/Headings.js');
14
16
  require('../text/Label.js');
15
17
  require('../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"GoToInput.js","sources":["../src/pagination/GoToInput.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ChangeEventHandler,\n forwardRef,\n type HTMLAttributes,\n type KeyboardEventHandler,\n type Ref,\n useState,\n} from \"react\";\nimport { FormField, FormFieldLabel } from \"../form-field\";\nimport { Input } from \"../input\";\nimport { makePrefixer } from \"../utils\";\nimport goToInputCss from \"./GoToInput.css\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltGoToInput\");\nexport interface GoToInputProps extends HTMLAttributes<HTMLSpanElement> {\n /**\n * Input label.\n */\n label?: string;\n /**\n * Optional ref for the input component\n */\n inputRef?: Ref<HTMLInputElement>;\n /**\n * Change input variant.\n */\n inputVariant?: \"primary\" | \"secondary\";\n}\n\nexport const GoToInput = forwardRef<HTMLDivElement, GoToInputProps>(\n function GoToInput(\n {\n className,\n inputRef,\n inputVariant = \"primary\",\n label = \"Go to\",\n ...restProps\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-go-to-input\",\n css: goToInputCss,\n window: targetWindow,\n });\n\n const { count, onPageChange } = usePaginationContext();\n const [inputValue, setInputValue] = useState(\"\");\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n setInputValue(event.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n const pageValue = Number(inputValue);\n if (\n !inputValue.startsWith(\"0\") &&\n !Number.isNaN(pageValue) &&\n pageValue > 0 &&\n pageValue <= count\n ) {\n onPageChange(event, pageValue);\n }\n setInputValue(\"\");\n }\n };\n\n const onBlur = () => {\n setInputValue(\"\");\n };\n\n const widthCh = `${`${count}`.length}ch`;\n\n return (\n <FormField\n labelPlacement=\"left\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...restProps}\n >\n <FormFieldLabel>{label}</FormFieldLabel>\n <Input\n className={clsx(withBaseName(\"input\"), {\n [withBaseName(\"inputDefaultSize\")]: count < 100,\n })}\n ref={inputRef}\n inputProps={{\n style: { width: widthCh },\n }}\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={inputValue}\n textAlign={\"center\"}\n variant={inputVariant}\n />\n </FormField>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","GoToInput","useWindow","useComponentCssInjection","goToInputCss","usePaginationContext","useState","jsxs","FormField","clsx","jsx","FormFieldLabel","Input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,0BAAa,eAAe,CAAA;AAgB1C,MAAM,SAAA,GAAYC,gBAAA;AAAA,EACvB,SAASC,UAAAA,CACP;AAAA,IACE,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA,GAAe,SAAA;AAAA,IACf,KAAA,GAAQ,OAAA;AAAA,IACR,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAKC,WAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAa,GAAIC,yCAAA,EAAqB;AACrD,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIC,eAAS,EAAE,CAAA;AAE/C,IAAA,MAAM,QAAA,GAAiD,CAAC,KAAA,KAAU;AAChE,MAAA,aAAA,CAAc,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAM,SAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,MAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,QAAA,MAAM,SAAA,GAAY,OAAO,UAAU,CAAA;AACnC,QAAA,IACE,CAAC,UAAA,CAAW,UAAA,CAAW,GAAG,CAAA,IAC1B,CAAC,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA,IACvB,SAAA,GAAY,CAAA,IACZ,aAAa,KAAA,EACb;AACA,UAAA,YAAA,CAAa,OAAO,SAAS,CAAA;AAAA,QAC/B;AACA,QAAA,aAAA,CAAc,EAAE,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,OAAA,GAAU,CAAA,EAAG,CAAA,EAAG,KAAK,GAAG,MAAM,CAAA,EAAA,CAAA;AAEpC,IAAA,uBACEC,eAAA;AAAA,MAACC,mBAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAe,MAAA;AAAA,QACf,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACC,GAAG,SAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iCAAgB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BACvBD,cAAA;AAAA,YAACE,WAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWH,SAAA,CAAK,YAAA,CAAa,OAAO,CAAA,EAAG;AAAA,gBACrC,CAAC,YAAA,CAAa,kBAAkB,CAAC,GAAG,KAAA,GAAQ;AAAA,eAC7C,CAAA;AAAA,cACD,GAAA,EAAK,QAAA;AAAA,cACL,UAAA,EAAY;AAAA,gBACV,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA;AAAQ,eAC1B;AAAA,cACA,MAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA;AAAA,cACA,KAAA,EAAO,UAAA;AAAA,cACP,SAAA,EAAW,QAAA;AAAA,cACX,OAAA,EAAS;AAAA;AAAA;AACX;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;;;;"}
1
+ {"version":3,"file":"GoToInput.js","sources":["../src/pagination/GoToInput.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ChangeEventHandler,\n forwardRef,\n type HTMLAttributes,\n type KeyboardEventHandler,\n type Ref,\n useState,\n} from \"react\";\nimport { FormField, FormFieldLabel } from \"../form-field\";\nimport { Input } from \"../input\";\nimport { makePrefixer } from \"../utils\";\nimport goToInputCss from \"./GoToInput.css\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltGoToInput\");\nexport interface GoToInputProps extends HTMLAttributes<HTMLSpanElement> {\n /**\n * Input label.\n */\n label?: string;\n /**\n * Optional ref for the input component\n */\n inputRef?: Ref<HTMLInputElement>;\n /**\n * Change input variant.\n */\n inputVariant?: \"primary\" | \"secondary\";\n}\n\nexport const GoToInput = forwardRef<HTMLDivElement, GoToInputProps>(\n function GoToInput(\n {\n className,\n inputRef,\n inputVariant = \"primary\",\n label = \"Go to\",\n ...restProps\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-go-to-input\",\n css: goToInputCss,\n window: targetWindow,\n });\n\n const { count, onPageChange } = usePaginationContext();\n const [inputValue, setInputValue] = useState(\"\");\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n setInputValue(event.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n const pageValue = Number(inputValue);\n if (\n !inputValue.startsWith(\"0\") &&\n !Number.isNaN(pageValue) &&\n pageValue > 0 &&\n pageValue <= count\n ) {\n onPageChange(event, pageValue);\n }\n setInputValue(\"\");\n }\n };\n\n const onBlur = () => {\n setInputValue(\"\");\n };\n\n const widthCh = `${`${count}`.length}ch`;\n\n return (\n <FormField\n labelPlacement=\"left\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...restProps}\n >\n <FormFieldLabel>{label}</FormFieldLabel>\n <Input\n className={clsx(withBaseName(\"input\"), {\n [withBaseName(\"inputDefaultSize\")]: count < 100,\n })}\n ref={inputRef}\n inputProps={{\n style: { width: widthCh },\n }}\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={inputValue}\n textAlign={\"center\"}\n variant={inputVariant}\n />\n </FormField>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","GoToInput","useWindow","useComponentCssInjection","goToInputCss","usePaginationContext","useState","jsxs","FormField","clsx","jsx","FormFieldLabel","Input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,0BAAa,eAAe,CAAA;AAgB1C,MAAM,SAAA,GAAYC,gBAAA;AAAA,EACvB,SAASC,UAAAA,CACP;AAAA,IACE,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA,GAAe,SAAA;AAAA,IACf,KAAA,GAAQ,OAAA;AAAA,IACR,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAKC,WAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAa,GAAIC,yCAAA,EAAqB;AACrD,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIC,eAAS,EAAE,CAAA;AAE/C,IAAA,MAAM,QAAA,GAAiD,CAAC,KAAA,KAAU;AAChE,MAAA,aAAA,CAAc,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAM,SAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,MAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,QAAA,MAAM,SAAA,GAAY,OAAO,UAAU,CAAA;AACnC,QAAA,IACE,CAAC,UAAA,CAAW,UAAA,CAAW,GAAG,CAAA,IAC1B,CAAC,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA,IACvB,SAAA,GAAY,CAAA,IACZ,aAAa,KAAA,EACb;AACA,UAAA,YAAA,CAAa,OAAO,SAAS,CAAA;AAAA,QAC/B;AACA,QAAA,aAAA,CAAc,EAAE,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,OAAA,GAAU,CAAA,EAAG,CAAA,EAAG,KAAK,GAAG,MAAM,CAAA,EAAA,CAAA;AAEpC,IAAA,uBACEC,eAAA;AAAA,MAACC,mBAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAe,MAAA;AAAA,QACf,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACC,GAAG,SAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iCAAgB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BACvBD,cAAA;AAAA,YAACE,WAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWH,SAAA,CAAK,YAAA,CAAa,OAAO,CAAA,EAAG;AAAA,gBACrC,CAAC,YAAA,CAAa,kBAAkB,CAAC,GAAG,KAAA,GAAQ;AAAA,eAC7C,CAAA;AAAA,cACD,GAAA,EAAK,QAAA;AAAA,cACL,UAAA,EAAY;AAAA,gBACV,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA;AAAQ,eAC1B;AAAA,cACA,MAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA;AAAA,cACA,KAAA,EAAO,UAAA;AAAA,cACP,SAAA,EAAW,QAAA;AAAA,cACX,OAAA,EAAS;AAAA;AAAA;AACX;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PillCheckIcon.js","sources":["../src/pill/PillCheckIcon.tsx"],"sourcesContent":["import { CheckmarkIcon, CheckmarkSolidIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../utils\";\nimport pillCheckIcon from \"./PillCheckIcon.css\";\n\nexport interface PillCheckIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n active?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltPillCheckIcon\");\n\nexport const PillCheckIcon = ({\n className,\n checked = false,\n disabled = false,\n active = false,\n}: PillCheckIconProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pill-check-icon\",\n css: pillCheckIcon,\n window: targetWindow,\n });\n\n return (\n <div\n aria-hidden=\"true\"\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"active\")]: active,\n },\n className,\n )}\n >\n {checked &&\n (active ? (\n <CheckmarkIcon className={withBaseName(\"icon\")} />\n ) : (\n <CheckmarkSolidIcon className={withBaseName(\"solidIcon\")} />\n ))}\n </div>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","pillCheckIcon","jsx","clsx","CheckmarkIcon","CheckmarkSolidIcon"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA;AAE9C,MAAM,gBAAgB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,MAAA,GAAS;AACX,CAAA,KAAuC;AACrC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,sBAAA;AAAA,IACR,GAAA,EAAKC,eAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAWC,SAAA;AAAA,QACT,YAAA,EAAa;AAAA,QACb;AAAA,UACE,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG,OAAA;AAAA,UAC3B,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,QAAA;AAAA,UAC5B,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,OAAA,KACE,MAAA,mBACCD,cAAA,CAACE,mBAAA,EAAA,EAAc,WAAW,YAAA,CAAa,MAAM,CAAA,EAAG,CAAA,mBAEhDF,cAAA,CAACG,wBAAA,EAAA,EAAmB,SAAA,EAAW,YAAA,CAAa,WAAW,CAAA,EAAG,CAAA;AAAA;AAAA,GAEhE;AAEJ;;;;"}
1
+ {"version":3,"file":"PillCheckIcon.js","sources":["../src/pill/PillCheckIcon.tsx"],"sourcesContent":["import { CheckmarkIcon, CheckmarkSolidIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { ReactElement } from \"react\";\nimport { makePrefixer } from \"../utils\";\nimport pillCheckIcon from \"./PillCheckIcon.css\";\n\nexport interface PillCheckIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n active?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltPillCheckIcon\");\n\nexport const PillCheckIcon = ({\n className,\n checked = false,\n disabled = false,\n active = false,\n}: PillCheckIconProps): ReactElement => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pill-check-icon\",\n css: pillCheckIcon,\n window: targetWindow,\n });\n\n return (\n <div\n aria-hidden=\"true\"\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"active\")]: active,\n },\n className,\n )}\n >\n {checked &&\n (active ? (\n <CheckmarkIcon className={withBaseName(\"icon\")} />\n ) : (\n <CheckmarkSolidIcon className={withBaseName(\"solidIcon\")} />\n ))}\n </div>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","pillCheckIcon","jsx","clsx","CheckmarkIcon","CheckmarkSolidIcon"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA;AAE9C,MAAM,gBAAgB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,MAAA,GAAS;AACX,CAAA,KAAwC;AACtC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,sBAAA;AAAA,IACR,GAAA,EAAKC,eAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAWC,SAAA;AAAA,QACT,YAAA,EAAa;AAAA,QACb;AAAA,UACE,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG,OAAA;AAAA,UAC3B,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,QAAA;AAAA,UAC5B,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,OAAA,KACE,MAAA,mBACCD,cAAA,CAACE,mBAAA,EAAA,EAAc,WAAW,YAAA,CAAa,MAAM,CAAA,EAAG,CAAA,mBAEhDF,cAAA,CAACG,wBAAA,EAAA,EAAmB,SAAA,EAAW,YAAA,CAAa,WAAW,CAAA,EAAG,CAAA;AAAA;AAAA,GAEhE;AAEJ;;;;"}