@salt-ds/core 1.31.0 → 1.33.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 (756) hide show
  1. package/css/salt-core.css +28 -5
  2. package/dist-cjs/accordion/Accordion.js +7 -7
  3. package/dist-cjs/accordion/Accordion.js.map +1 -1
  4. package/dist-cjs/accordion/AccordionContext.js +6 -6
  5. package/dist-cjs/accordion/AccordionContext.js.map +1 -1
  6. package/dist-cjs/accordion/AccordionGroup.js +6 -6
  7. package/dist-cjs/accordion/AccordionGroup.js.map +1 -1
  8. package/dist-cjs/accordion/AccordionHeader.js +7 -7
  9. package/dist-cjs/accordion/AccordionHeader.js.map +1 -1
  10. package/dist-cjs/accordion/AccordionPanel.js +5 -5
  11. package/dist-cjs/accordion/AccordionPanel.js.map +1 -1
  12. package/dist-cjs/aria-announcer/AriaAnnounce.js.map +1 -1
  13. package/dist-cjs/aria-announcer/AriaAnnouncerContext.js.map +1 -1
  14. package/dist-cjs/aria-announcer/AriaAnnouncerProvider.js.map +1 -1
  15. package/dist-cjs/aria-announcer/useAriaAnnouncer.js +7 -7
  16. package/dist-cjs/aria-announcer/useAriaAnnouncer.js.map +1 -1
  17. package/dist-cjs/avatar/Avatar.js +4 -4
  18. package/dist-cjs/avatar/Avatar.js.map +1 -1
  19. package/dist-cjs/avatar/useAvatarImage.js +6 -6
  20. package/dist-cjs/avatar/useAvatarImage.js.map +1 -1
  21. package/dist-cjs/badge/Badge.js +5 -5
  22. package/dist-cjs/badge/Badge.js.map +1 -1
  23. package/dist-cjs/banner/Banner.js +6 -6
  24. package/dist-cjs/banner/Banner.js.map +1 -1
  25. package/dist-cjs/banner/BannerActions.js +5 -5
  26. package/dist-cjs/banner/BannerActions.js.map +1 -1
  27. package/dist-cjs/banner/BannerContent.js +5 -5
  28. package/dist-cjs/banner/BannerContent.js.map +1 -1
  29. package/dist-cjs/border-item/BorderItem.js +7 -7
  30. package/dist-cjs/border-item/BorderItem.js.map +1 -1
  31. package/dist-cjs/border-layout/BorderLayout.js +5 -5
  32. package/dist-cjs/border-layout/BorderLayout.js.map +1 -1
  33. package/dist-cjs/breakpoints/BreakpointProvider.js +6 -6
  34. package/dist-cjs/breakpoints/BreakpointProvider.js.map +1 -1
  35. package/dist-cjs/button/Button.css.js +1 -1
  36. package/dist-cjs/button/Button.js +5 -5
  37. package/dist-cjs/button/Button.js.map +1 -1
  38. package/dist-cjs/button/useButton.js.map +1 -1
  39. package/dist-cjs/card/Card.js +42 -40
  40. package/dist-cjs/card/Card.js.map +1 -1
  41. package/dist-cjs/checkbox/Checkbox.js +6 -6
  42. package/dist-cjs/checkbox/Checkbox.js.map +1 -1
  43. package/dist-cjs/checkbox/CheckboxGroup.js +5 -5
  44. package/dist-cjs/checkbox/CheckboxGroup.js.map +1 -1
  45. package/dist-cjs/checkbox/CheckboxIcon.js +5 -5
  46. package/dist-cjs/checkbox/CheckboxIcon.js.map +1 -1
  47. package/dist-cjs/checkbox/internal/CheckboxGroupContext.js +6 -6
  48. package/dist-cjs/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  49. package/dist-cjs/combo-box/ComboBox.js +21 -20
  50. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  51. package/dist-cjs/combo-box/useComboBox.js +6 -6
  52. package/dist-cjs/combo-box/useComboBox.js.map +1 -1
  53. package/dist-cjs/dialog/Dialog.js +92 -88
  54. package/dist-cjs/dialog/Dialog.js.map +1 -1
  55. package/dist-cjs/dialog/DialogActions.js +6 -6
  56. package/dist-cjs/dialog/DialogActions.js.map +1 -1
  57. package/dist-cjs/dialog/DialogCloseButton.js +7 -7
  58. package/dist-cjs/dialog/DialogCloseButton.js.map +1 -1
  59. package/dist-cjs/dialog/DialogContent.js +6 -6
  60. package/dist-cjs/dialog/DialogContent.js.map +1 -1
  61. package/dist-cjs/dialog/DialogContext.js.map +1 -1
  62. package/dist-cjs/dialog/DialogHeader.js +5 -5
  63. package/dist-cjs/dialog/DialogHeader.js.map +1 -1
  64. package/dist-cjs/divider/Divider.js +6 -6
  65. package/dist-cjs/divider/Divider.js.map +1 -1
  66. package/dist-cjs/drawer/Drawer.js +76 -74
  67. package/dist-cjs/drawer/Drawer.js.map +1 -1
  68. package/dist-cjs/drawer/DrawerCloseButton.js +7 -7
  69. package/dist-cjs/drawer/DrawerCloseButton.js.map +1 -1
  70. package/dist-cjs/dropdown/Dropdown.js +17 -16
  71. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  72. package/dist-cjs/file-drop-zone/FileDropZone.js +5 -5
  73. package/dist-cjs/file-drop-zone/FileDropZone.js.map +1 -1
  74. package/dist-cjs/file-drop-zone/FileDropZoneIcon.js +1 -1
  75. package/dist-cjs/file-drop-zone/FileDropZoneIcon.js.map +1 -1
  76. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js +6 -6
  77. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  78. package/dist-cjs/file-drop-zone/internal/utils.js.map +1 -1
  79. package/dist-cjs/flex-item/FlexItem.js +8 -8
  80. package/dist-cjs/flex-item/FlexItem.js.map +1 -1
  81. package/dist-cjs/flex-layout/FlexLayout.js +5 -5
  82. package/dist-cjs/flex-layout/FlexLayout.js.map +1 -1
  83. package/dist-cjs/flow-layout/FlowLayout.js.map +1 -1
  84. package/dist-cjs/form-field/FormField.js +4 -4
  85. package/dist-cjs/form-field/FormField.js.map +1 -1
  86. package/dist-cjs/form-field/FormFieldHelperText.js +5 -5
  87. package/dist-cjs/form-field/FormFieldHelperText.js.map +1 -1
  88. package/dist-cjs/form-field/FormFieldLabel.js +3 -3
  89. package/dist-cjs/form-field/FormFieldLabel.js.map +1 -1
  90. package/dist-cjs/form-field-context/FormFieldContext.js +5 -5
  91. package/dist-cjs/form-field-context/FormFieldContext.js.map +1 -1
  92. package/dist-cjs/form-field-context/useFormFieldProps.js.map +1 -1
  93. package/dist-cjs/grid-item/GridItem.js +8 -8
  94. package/dist-cjs/grid-item/GridItem.js.map +1 -1
  95. package/dist-cjs/grid-layout/GridLayout.js +5 -5
  96. package/dist-cjs/grid-layout/GridLayout.js.map +1 -1
  97. package/dist-cjs/index.js +9 -0
  98. package/dist-cjs/index.js.map +1 -1
  99. package/dist-cjs/input/Input.js +5 -5
  100. package/dist-cjs/input/Input.js.map +1 -1
  101. package/dist-cjs/interactable-card/InteractableCard.js +9 -9
  102. package/dist-cjs/interactable-card/InteractableCard.js.map +1 -1
  103. package/dist-cjs/interactable-card/InteractableCardGroup.js +18 -14
  104. package/dist-cjs/interactable-card/InteractableCardGroup.js.map +1 -1
  105. package/dist-cjs/interactable-card/InteractableCardGroupContext.js +6 -6
  106. package/dist-cjs/interactable-card/InteractableCardGroupContext.js.map +1 -1
  107. package/dist-cjs/interactable-card/useInteractableCard.js +1 -1
  108. package/dist-cjs/interactable-card/useInteractableCard.js.map +1 -1
  109. package/dist-cjs/link/Link.js +12 -12
  110. package/dist-cjs/link/Link.js.map +1 -1
  111. package/dist-cjs/link-card/LinkCard.js +5 -5
  112. package/dist-cjs/link-card/LinkCard.js.map +1 -1
  113. package/dist-cjs/list-box/ListBox.css.js +1 -1
  114. package/dist-cjs/list-box/ListBox.js +10 -10
  115. package/dist-cjs/list-box/ListBox.js.map +1 -1
  116. package/dist-cjs/list-control/ListControlContext.js +6 -6
  117. package/dist-cjs/list-control/ListControlContext.js.map +1 -1
  118. package/dist-cjs/list-control/ListControlState.js +12 -12
  119. package/dist-cjs/list-control/ListControlState.js.map +1 -1
  120. package/dist-cjs/menu/Menu.js +1 -1
  121. package/dist-cjs/menu/Menu.js.map +1 -1
  122. package/dist-cjs/menu/MenuBase.js +11 -9
  123. package/dist-cjs/menu/MenuBase.js.map +1 -1
  124. package/dist-cjs/menu/MenuContext.js +5 -5
  125. package/dist-cjs/menu/MenuContext.js.map +1 -1
  126. package/dist-cjs/menu/MenuGroup.js +6 -6
  127. package/dist-cjs/menu/MenuGroup.js.map +1 -1
  128. package/dist-cjs/menu/MenuItem.js +8 -8
  129. package/dist-cjs/menu/MenuItem.js.map +1 -1
  130. package/dist-cjs/menu/MenuPanel.css.js +1 -1
  131. package/dist-cjs/menu/MenuPanel.js +7 -7
  132. package/dist-cjs/menu/MenuPanel.js.map +1 -1
  133. package/dist-cjs/menu/MenuPanelBase.js +2 -2
  134. package/dist-cjs/menu/MenuPanelBase.js.map +1 -1
  135. package/dist-cjs/menu/MenuPanelContext.js +5 -5
  136. package/dist-cjs/menu/MenuPanelContext.js.map +1 -1
  137. package/dist-cjs/menu/MenuTrigger.js +9 -8
  138. package/dist-cjs/menu/MenuTrigger.js.map +1 -1
  139. package/dist-cjs/menu/MenuTriggerContext.js +5 -5
  140. package/dist-cjs/menu/MenuTriggerContext.js.map +1 -1
  141. package/dist-cjs/multiline-input/MultilineInput.js +4 -4
  142. package/dist-cjs/multiline-input/MultilineInput.js.map +1 -1
  143. package/dist-cjs/navigation-item/ExpansionIcon.js +3 -3
  144. package/dist-cjs/navigation-item/ExpansionIcon.js.map +1 -1
  145. package/dist-cjs/navigation-item/NavigationItem.js +22 -14
  146. package/dist-cjs/navigation-item/NavigationItem.js.map +1 -1
  147. package/dist-cjs/navigation-item/NavigationItemAction.js +117 -0
  148. package/dist-cjs/navigation-item/NavigationItemAction.js.map +1 -0
  149. package/dist-cjs/option/Option.js +95 -93
  150. package/dist-cjs/option/Option.js.map +1 -1
  151. package/dist-cjs/option/OptionGroup.js +6 -6
  152. package/dist-cjs/option/OptionGroup.js.map +1 -1
  153. package/dist-cjs/option/OptionList.css.js +1 -1
  154. package/dist-cjs/option/OptionList.js +5 -5
  155. package/dist-cjs/option/OptionList.js.map +1 -1
  156. package/dist-cjs/option/OptionListBase.js +6 -6
  157. package/dist-cjs/option/OptionListBase.js.map +1 -1
  158. package/dist-cjs/overlay/Overlay.js +6 -6
  159. package/dist-cjs/overlay/Overlay.js.map +1 -1
  160. package/dist-cjs/overlay/OverlayContext.js +7 -7
  161. package/dist-cjs/overlay/OverlayContext.js.map +1 -1
  162. package/dist-cjs/overlay/OverlayPanel.js +7 -7
  163. package/dist-cjs/overlay/OverlayPanel.js.map +1 -1
  164. package/dist-cjs/overlay/OverlayPanelCloseButton.js +8 -8
  165. package/dist-cjs/overlay/OverlayPanelCloseButton.js.map +1 -1
  166. package/dist-cjs/overlay/OverlayPanelContent.js +5 -5
  167. package/dist-cjs/overlay/OverlayPanelContent.js.map +1 -1
  168. package/dist-cjs/overlay/OverlayTrigger.js +8 -10
  169. package/dist-cjs/overlay/OverlayTrigger.js.map +1 -1
  170. package/dist-cjs/pagination/CompactInput.js +5 -5
  171. package/dist-cjs/pagination/CompactInput.js.map +1 -1
  172. package/dist-cjs/pagination/CompactPaginator.js +5 -5
  173. package/dist-cjs/pagination/CompactPaginator.js.map +1 -1
  174. package/dist-cjs/pagination/GoToInput.js +5 -5
  175. package/dist-cjs/pagination/GoToInput.js.map +1 -1
  176. package/dist-cjs/pagination/PageButton.js +5 -5
  177. package/dist-cjs/pagination/PageButton.js.map +1 -1
  178. package/dist-cjs/pagination/PageRanges.js +6 -6
  179. package/dist-cjs/pagination/PageRanges.js.map +1 -1
  180. package/dist-cjs/pagination/Pagination.js +7 -7
  181. package/dist-cjs/pagination/Pagination.js.map +1 -1
  182. package/dist-cjs/pagination/PaginationContext.js.map +1 -1
  183. package/dist-cjs/pagination/Paginator.js +4 -4
  184. package/dist-cjs/pagination/Paginator.js.map +1 -1
  185. package/dist-cjs/pagination/usePagination.js.map +1 -1
  186. package/dist-cjs/pagination/usePaginationContext.js +1 -1
  187. package/dist-cjs/pagination/usePaginationContext.js.map +1 -1
  188. package/dist-cjs/panel/Panel.js +4 -4
  189. package/dist-cjs/panel/Panel.js.map +1 -1
  190. package/dist-cjs/parent-child-layout/ParentChildLayout.js +5 -5
  191. package/dist-cjs/parent-child-layout/ParentChildLayout.js.map +1 -1
  192. package/dist-cjs/parent-child-layout/useIsViewportLargerThanBreakpoint.js +6 -6
  193. package/dist-cjs/parent-child-layout/useIsViewportLargerThanBreakpoint.js.map +1 -1
  194. package/dist-cjs/pill/Pill.js +9 -9
  195. package/dist-cjs/pill/Pill.js.map +1 -1
  196. package/dist-cjs/pill-input/PillInput.js +12 -12
  197. package/dist-cjs/pill-input/PillInput.js.map +1 -1
  198. package/dist-cjs/pill-input/useTruncatePills.js +9 -4
  199. package/dist-cjs/pill-input/useTruncatePills.js.map +1 -1
  200. package/dist-cjs/progress/CircularProgress/CircularProgress.js +13 -13
  201. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  202. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  203. package/dist-cjs/progress/LinearProgress/LinearProgress.js +30 -25
  204. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  205. package/dist-cjs/radio-button/RadioButton.js +7 -7
  206. package/dist-cjs/radio-button/RadioButton.js.map +1 -1
  207. package/dist-cjs/radio-button/RadioButtonGroup.js +5 -5
  208. package/dist-cjs/radio-button/RadioButtonGroup.js.map +1 -1
  209. package/dist-cjs/radio-button/RadioButtonIcon.js +6 -6
  210. package/dist-cjs/radio-button/RadioButtonIcon.js.map +1 -1
  211. package/dist-cjs/radio-button/internal/RadioGroupContext.js +6 -6
  212. package/dist-cjs/radio-button/internal/RadioGroupContext.js.map +1 -1
  213. package/dist-cjs/salt-provider/SaltProvider.js +48 -46
  214. package/dist-cjs/salt-provider/SaltProvider.js.map +1 -1
  215. package/dist-cjs/scrim/Scrim.js +4 -4
  216. package/dist-cjs/scrim/Scrim.js.map +1 -1
  217. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.js +6 -6
  218. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.js.map +1 -1
  219. package/dist-cjs/spinner/Spinner.js +4 -4
  220. package/dist-cjs/spinner/Spinner.js.map +1 -1
  221. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js +5 -5
  222. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  223. package/dist-cjs/split-layout/SplitLayout.js +6 -6
  224. package/dist-cjs/split-layout/SplitLayout.js.map +1 -1
  225. package/dist-cjs/stack-layout/StackLayout.js +8 -8
  226. package/dist-cjs/stack-layout/StackLayout.js.map +1 -1
  227. package/dist-cjs/status-adornment/ErrorAdornment.js.map +1 -1
  228. package/dist-cjs/status-adornment/StatusAdornment.js +5 -5
  229. package/dist-cjs/status-adornment/StatusAdornment.js.map +1 -1
  230. package/dist-cjs/status-adornment/SuccessAdornment.js.map +1 -1
  231. package/dist-cjs/status-adornment/WarningAdornment.js.map +1 -1
  232. package/dist-cjs/status-indicator/StatusIndicator.js +3 -3
  233. package/dist-cjs/status-indicator/StatusIndicator.js.map +1 -1
  234. package/dist-cjs/switch/Switch.js +101 -99
  235. package/dist-cjs/switch/Switch.js.map +1 -1
  236. package/dist-cjs/tag/Tag.js +6 -6
  237. package/dist-cjs/tag/Tag.js.map +1 -1
  238. package/dist-cjs/text/Code.js.map +1 -1
  239. package/dist-cjs/text/Display.js.map +1 -1
  240. package/dist-cjs/text/Headings.js.map +1 -1
  241. package/dist-cjs/text/Label.js.map +1 -1
  242. package/dist-cjs/text/Text.js +5 -5
  243. package/dist-cjs/text/Text.js.map +1 -1
  244. package/dist-cjs/text/TextAction.js.map +1 -1
  245. package/dist-cjs/text/TextNotation.js.map +1 -1
  246. package/dist-cjs/theme/Accent.js +3 -1
  247. package/dist-cjs/theme/Accent.js.map +1 -1
  248. package/dist-cjs/theme/ActionFont.js +3 -1
  249. package/dist-cjs/theme/ActionFont.js.map +1 -1
  250. package/dist-cjs/theme/Corner.js +3 -1
  251. package/dist-cjs/theme/Corner.js.map +1 -1
  252. package/dist-cjs/theme/HeadingFont.js +3 -1
  253. package/dist-cjs/theme/HeadingFont.js.map +1 -1
  254. package/dist-cjs/theme/Theme.js.map +1 -1
  255. package/dist-cjs/toast/Toast.js +33 -31
  256. package/dist-cjs/toast/Toast.js.map +1 -1
  257. package/dist-cjs/toast/ToastContent.js +5 -5
  258. package/dist-cjs/toast/ToastContent.js.map +1 -1
  259. package/dist-cjs/toggle-button/ToggleButton.js +6 -6
  260. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
  261. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +10 -10
  262. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  263. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js +6 -6
  264. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  265. package/dist-cjs/tooltip/Tooltip.css.js +1 -1
  266. package/dist-cjs/tooltip/Tooltip.js +9 -11
  267. package/dist-cjs/tooltip/Tooltip.js.map +1 -1
  268. package/dist-cjs/tooltip/TooltipBase.js +6 -6
  269. package/dist-cjs/tooltip/TooltipBase.js.map +1 -1
  270. package/dist-cjs/tooltip/useAriaAnnounce.js +11 -8
  271. package/dist-cjs/tooltip/useAriaAnnounce.js.map +1 -1
  272. package/dist-cjs/tooltip/useTooltip.js +5 -5
  273. package/dist-cjs/tooltip/useTooltip.js.map +1 -1
  274. package/dist-cjs/utils/createChainedFunction.js.map +1 -1
  275. package/dist-cjs/utils/createContext.js.map +1 -1
  276. package/dist-cjs/utils/debounce.js.map +1 -1
  277. package/dist-cjs/utils/getRefFromChildren.js +15 -0
  278. package/dist-cjs/utils/getRefFromChildren.js.map +1 -0
  279. package/dist-cjs/utils/marginMiddleware.js.map +1 -1
  280. package/dist-cjs/utils/mergeProps.js.map +1 -1
  281. package/dist-cjs/utils/renderProps.js +32 -0
  282. package/dist-cjs/utils/renderProps.js.map +1 -0
  283. package/dist-cjs/utils/setRef.js.map +1 -1
  284. package/dist-cjs/utils/useControlled.js +1 -1
  285. package/dist-cjs/utils/useControlled.js.map +1 -1
  286. package/dist-cjs/utils/useEventCallback.js.map +1 -1
  287. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js +1 -1
  288. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  289. package/dist-cjs/utils/useForkRef.js.map +1 -1
  290. package/dist-cjs/utils/useId.js +1 -2
  291. package/dist-cjs/utils/useId.js.map +1 -1
  292. package/dist-cjs/utils/useIsFocusVisible.js.map +1 -1
  293. package/dist-cjs/utils/useIsomorphicLayoutEffect.js.map +1 -1
  294. package/dist-cjs/utils/usePrevious.js.map +1 -1
  295. package/dist-cjs/utils/useResizeObserver.js.map +1 -1
  296. package/dist-cjs/utils/useResponsiveProp.js +11 -8
  297. package/dist-cjs/utils/useResponsiveProp.js.map +1 -1
  298. package/dist-cjs/utils/useValueEffect.js +5 -5
  299. package/dist-cjs/utils/useValueEffect.js.map +1 -1
  300. package/dist-cjs/viewport/ViewportProvider.js +5 -5
  301. package/dist-cjs/viewport/ViewportProvider.js.map +1 -1
  302. package/dist-es/accordion/Accordion.js +7 -7
  303. package/dist-es/accordion/Accordion.js.map +1 -1
  304. package/dist-es/accordion/AccordionContext.js +6 -6
  305. package/dist-es/accordion/AccordionContext.js.map +1 -1
  306. package/dist-es/accordion/AccordionGroup.js +6 -6
  307. package/dist-es/accordion/AccordionGroup.js.map +1 -1
  308. package/dist-es/accordion/AccordionHeader.js +7 -7
  309. package/dist-es/accordion/AccordionHeader.js.map +1 -1
  310. package/dist-es/accordion/AccordionPanel.js +5 -5
  311. package/dist-es/accordion/AccordionPanel.js.map +1 -1
  312. package/dist-es/aria-announcer/AriaAnnounce.js.map +1 -1
  313. package/dist-es/aria-announcer/AriaAnnouncerContext.js.map +1 -1
  314. package/dist-es/aria-announcer/AriaAnnouncerProvider.js.map +1 -1
  315. package/dist-es/aria-announcer/useAriaAnnouncer.js +7 -7
  316. package/dist-es/aria-announcer/useAriaAnnouncer.js.map +1 -1
  317. package/dist-es/avatar/Avatar.js +4 -4
  318. package/dist-es/avatar/Avatar.js.map +1 -1
  319. package/dist-es/avatar/useAvatarImage.js +6 -6
  320. package/dist-es/avatar/useAvatarImage.js.map +1 -1
  321. package/dist-es/badge/Badge.js +5 -5
  322. package/dist-es/badge/Badge.js.map +1 -1
  323. package/dist-es/banner/Banner.js +6 -6
  324. package/dist-es/banner/Banner.js.map +1 -1
  325. package/dist-es/banner/BannerActions.js +5 -5
  326. package/dist-es/banner/BannerActions.js.map +1 -1
  327. package/dist-es/banner/BannerContent.js +5 -5
  328. package/dist-es/banner/BannerContent.js.map +1 -1
  329. package/dist-es/border-item/BorderItem.js +7 -7
  330. package/dist-es/border-item/BorderItem.js.map +1 -1
  331. package/dist-es/border-layout/BorderLayout.js +5 -5
  332. package/dist-es/border-layout/BorderLayout.js.map +1 -1
  333. package/dist-es/breakpoints/BreakpointProvider.js +6 -6
  334. package/dist-es/breakpoints/BreakpointProvider.js.map +1 -1
  335. package/dist-es/button/Button.css.js +1 -1
  336. package/dist-es/button/Button.js +5 -5
  337. package/dist-es/button/Button.js.map +1 -1
  338. package/dist-es/button/useButton.js.map +1 -1
  339. package/dist-es/card/Card.js +42 -40
  340. package/dist-es/card/Card.js.map +1 -1
  341. package/dist-es/checkbox/Checkbox.js +6 -6
  342. package/dist-es/checkbox/Checkbox.js.map +1 -1
  343. package/dist-es/checkbox/CheckboxGroup.js +5 -5
  344. package/dist-es/checkbox/CheckboxGroup.js.map +1 -1
  345. package/dist-es/checkbox/CheckboxIcon.js +5 -5
  346. package/dist-es/checkbox/CheckboxIcon.js.map +1 -1
  347. package/dist-es/checkbox/internal/CheckboxGroupContext.js +6 -6
  348. package/dist-es/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  349. package/dist-es/combo-box/ComboBox.js +22 -21
  350. package/dist-es/combo-box/ComboBox.js.map +1 -1
  351. package/dist-es/combo-box/useComboBox.js +6 -6
  352. package/dist-es/combo-box/useComboBox.js.map +1 -1
  353. package/dist-es/dialog/Dialog.js +92 -88
  354. package/dist-es/dialog/Dialog.js.map +1 -1
  355. package/dist-es/dialog/DialogActions.js +6 -6
  356. package/dist-es/dialog/DialogActions.js.map +1 -1
  357. package/dist-es/dialog/DialogCloseButton.js +7 -7
  358. package/dist-es/dialog/DialogCloseButton.js.map +1 -1
  359. package/dist-es/dialog/DialogContent.js +6 -6
  360. package/dist-es/dialog/DialogContent.js.map +1 -1
  361. package/dist-es/dialog/DialogContext.js.map +1 -1
  362. package/dist-es/dialog/DialogHeader.js +5 -5
  363. package/dist-es/dialog/DialogHeader.js.map +1 -1
  364. package/dist-es/divider/Divider.js +6 -6
  365. package/dist-es/divider/Divider.js.map +1 -1
  366. package/dist-es/drawer/Drawer.js +76 -74
  367. package/dist-es/drawer/Drawer.js.map +1 -1
  368. package/dist-es/drawer/DrawerCloseButton.js +7 -7
  369. package/dist-es/drawer/DrawerCloseButton.js.map +1 -1
  370. package/dist-es/dropdown/Dropdown.js +17 -16
  371. package/dist-es/dropdown/Dropdown.js.map +1 -1
  372. package/dist-es/file-drop-zone/FileDropZone.js +5 -5
  373. package/dist-es/file-drop-zone/FileDropZone.js.map +1 -1
  374. package/dist-es/file-drop-zone/FileDropZoneIcon.js +1 -1
  375. package/dist-es/file-drop-zone/FileDropZoneIcon.js.map +1 -1
  376. package/dist-es/file-drop-zone/FileDropZoneTrigger.js +6 -6
  377. package/dist-es/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  378. package/dist-es/file-drop-zone/internal/utils.js.map +1 -1
  379. package/dist-es/flex-item/FlexItem.js +8 -8
  380. package/dist-es/flex-item/FlexItem.js.map +1 -1
  381. package/dist-es/flex-layout/FlexLayout.js +5 -5
  382. package/dist-es/flex-layout/FlexLayout.js.map +1 -1
  383. package/dist-es/flow-layout/FlowLayout.js.map +1 -1
  384. package/dist-es/form-field/FormField.js +4 -4
  385. package/dist-es/form-field/FormField.js.map +1 -1
  386. package/dist-es/form-field/FormFieldHelperText.js +5 -5
  387. package/dist-es/form-field/FormFieldHelperText.js.map +1 -1
  388. package/dist-es/form-field/FormFieldLabel.js +3 -3
  389. package/dist-es/form-field/FormFieldLabel.js.map +1 -1
  390. package/dist-es/form-field-context/FormFieldContext.js +5 -5
  391. package/dist-es/form-field-context/FormFieldContext.js.map +1 -1
  392. package/dist-es/form-field-context/useFormFieldProps.js.map +1 -1
  393. package/dist-es/grid-item/GridItem.js +8 -8
  394. package/dist-es/grid-item/GridItem.js.map +1 -1
  395. package/dist-es/grid-layout/GridLayout.js +5 -5
  396. package/dist-es/grid-layout/GridLayout.js.map +1 -1
  397. package/dist-es/index.js +7 -5
  398. package/dist-es/index.js.map +1 -1
  399. package/dist-es/input/Input.js +5 -5
  400. package/dist-es/input/Input.js.map +1 -1
  401. package/dist-es/interactable-card/InteractableCard.js +9 -9
  402. package/dist-es/interactable-card/InteractableCard.js.map +1 -1
  403. package/dist-es/interactable-card/InteractableCardGroup.js +18 -14
  404. package/dist-es/interactable-card/InteractableCardGroup.js.map +1 -1
  405. package/dist-es/interactable-card/InteractableCardGroupContext.js +6 -6
  406. package/dist-es/interactable-card/InteractableCardGroupContext.js.map +1 -1
  407. package/dist-es/interactable-card/useInteractableCard.js +1 -1
  408. package/dist-es/interactable-card/useInteractableCard.js.map +1 -1
  409. package/dist-es/link/Link.js +12 -12
  410. package/dist-es/link/Link.js.map +1 -1
  411. package/dist-es/link-card/LinkCard.js +5 -5
  412. package/dist-es/link-card/LinkCard.js.map +1 -1
  413. package/dist-es/list-box/ListBox.css.js +1 -1
  414. package/dist-es/list-box/ListBox.js +10 -10
  415. package/dist-es/list-box/ListBox.js.map +1 -1
  416. package/dist-es/list-control/ListControlContext.js +6 -6
  417. package/dist-es/list-control/ListControlContext.js.map +1 -1
  418. package/dist-es/list-control/ListControlState.js +12 -12
  419. package/dist-es/list-control/ListControlState.js.map +1 -1
  420. package/dist-es/menu/Menu.js +1 -1
  421. package/dist-es/menu/Menu.js.map +1 -1
  422. package/dist-es/menu/MenuBase.js +11 -9
  423. package/dist-es/menu/MenuBase.js.map +1 -1
  424. package/dist-es/menu/MenuContext.js +5 -5
  425. package/dist-es/menu/MenuContext.js.map +1 -1
  426. package/dist-es/menu/MenuGroup.js +6 -6
  427. package/dist-es/menu/MenuGroup.js.map +1 -1
  428. package/dist-es/menu/MenuItem.js +8 -8
  429. package/dist-es/menu/MenuItem.js.map +1 -1
  430. package/dist-es/menu/MenuPanel.css.js +1 -1
  431. package/dist-es/menu/MenuPanel.js +7 -7
  432. package/dist-es/menu/MenuPanel.js.map +1 -1
  433. package/dist-es/menu/MenuPanelBase.js +2 -2
  434. package/dist-es/menu/MenuPanelBase.js.map +1 -1
  435. package/dist-es/menu/MenuPanelContext.js +5 -5
  436. package/dist-es/menu/MenuPanelContext.js.map +1 -1
  437. package/dist-es/menu/MenuTrigger.js +9 -8
  438. package/dist-es/menu/MenuTrigger.js.map +1 -1
  439. package/dist-es/menu/MenuTriggerContext.js +5 -5
  440. package/dist-es/menu/MenuTriggerContext.js.map +1 -1
  441. package/dist-es/multiline-input/MultilineInput.js +4 -4
  442. package/dist-es/multiline-input/MultilineInput.js.map +1 -1
  443. package/dist-es/navigation-item/ExpansionIcon.js +3 -3
  444. package/dist-es/navigation-item/ExpansionIcon.js.map +1 -1
  445. package/dist-es/navigation-item/NavigationItem.js +22 -14
  446. package/dist-es/navigation-item/NavigationItem.js.map +1 -1
  447. package/dist-es/navigation-item/NavigationItemAction.js +113 -0
  448. package/dist-es/navigation-item/NavigationItemAction.js.map +1 -0
  449. package/dist-es/option/Option.js +95 -93
  450. package/dist-es/option/Option.js.map +1 -1
  451. package/dist-es/option/OptionGroup.js +6 -6
  452. package/dist-es/option/OptionGroup.js.map +1 -1
  453. package/dist-es/option/OptionList.css.js +1 -1
  454. package/dist-es/option/OptionList.js +5 -5
  455. package/dist-es/option/OptionList.js.map +1 -1
  456. package/dist-es/option/OptionListBase.js +6 -6
  457. package/dist-es/option/OptionListBase.js.map +1 -1
  458. package/dist-es/overlay/Overlay.js +6 -6
  459. package/dist-es/overlay/Overlay.js.map +1 -1
  460. package/dist-es/overlay/OverlayContext.js +7 -7
  461. package/dist-es/overlay/OverlayContext.js.map +1 -1
  462. package/dist-es/overlay/OverlayPanel.js +7 -7
  463. package/dist-es/overlay/OverlayPanel.js.map +1 -1
  464. package/dist-es/overlay/OverlayPanelCloseButton.js +8 -8
  465. package/dist-es/overlay/OverlayPanelCloseButton.js.map +1 -1
  466. package/dist-es/overlay/OverlayPanelContent.js +5 -5
  467. package/dist-es/overlay/OverlayPanelContent.js.map +1 -1
  468. package/dist-es/overlay/OverlayTrigger.js +8 -10
  469. package/dist-es/overlay/OverlayTrigger.js.map +1 -1
  470. package/dist-es/pagination/CompactInput.js +5 -5
  471. package/dist-es/pagination/CompactInput.js.map +1 -1
  472. package/dist-es/pagination/CompactPaginator.js +5 -5
  473. package/dist-es/pagination/CompactPaginator.js.map +1 -1
  474. package/dist-es/pagination/GoToInput.js +5 -5
  475. package/dist-es/pagination/GoToInput.js.map +1 -1
  476. package/dist-es/pagination/PageButton.js +5 -5
  477. package/dist-es/pagination/PageButton.js.map +1 -1
  478. package/dist-es/pagination/PageRanges.js +6 -6
  479. package/dist-es/pagination/PageRanges.js.map +1 -1
  480. package/dist-es/pagination/Pagination.js +7 -7
  481. package/dist-es/pagination/Pagination.js.map +1 -1
  482. package/dist-es/pagination/PaginationContext.js.map +1 -1
  483. package/dist-es/pagination/Paginator.js +4 -4
  484. package/dist-es/pagination/Paginator.js.map +1 -1
  485. package/dist-es/pagination/usePagination.js.map +1 -1
  486. package/dist-es/pagination/usePaginationContext.js +1 -1
  487. package/dist-es/pagination/usePaginationContext.js.map +1 -1
  488. package/dist-es/panel/Panel.js +4 -4
  489. package/dist-es/panel/Panel.js.map +1 -1
  490. package/dist-es/parent-child-layout/ParentChildLayout.js +5 -5
  491. package/dist-es/parent-child-layout/ParentChildLayout.js.map +1 -1
  492. package/dist-es/parent-child-layout/useIsViewportLargerThanBreakpoint.js +6 -6
  493. package/dist-es/parent-child-layout/useIsViewportLargerThanBreakpoint.js.map +1 -1
  494. package/dist-es/pill/Pill.js +9 -9
  495. package/dist-es/pill/Pill.js.map +1 -1
  496. package/dist-es/pill-input/PillInput.js +12 -12
  497. package/dist-es/pill-input/PillInput.js.map +1 -1
  498. package/dist-es/pill-input/useTruncatePills.js +9 -4
  499. package/dist-es/pill-input/useTruncatePills.js.map +1 -1
  500. package/dist-es/progress/CircularProgress/CircularProgress.js +13 -13
  501. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  502. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  503. package/dist-es/progress/LinearProgress/LinearProgress.js +30 -25
  504. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  505. package/dist-es/radio-button/RadioButton.js +7 -7
  506. package/dist-es/radio-button/RadioButton.js.map +1 -1
  507. package/dist-es/radio-button/RadioButtonGroup.js +5 -5
  508. package/dist-es/radio-button/RadioButtonGroup.js.map +1 -1
  509. package/dist-es/radio-button/RadioButtonIcon.js +6 -6
  510. package/dist-es/radio-button/RadioButtonIcon.js.map +1 -1
  511. package/dist-es/radio-button/internal/RadioGroupContext.js +6 -6
  512. package/dist-es/radio-button/internal/RadioGroupContext.js.map +1 -1
  513. package/dist-es/salt-provider/SaltProvider.js +49 -44
  514. package/dist-es/salt-provider/SaltProvider.js.map +1 -1
  515. package/dist-es/scrim/Scrim.js +4 -4
  516. package/dist-es/scrim/Scrim.js.map +1 -1
  517. package/dist-es/segmented-button-group/SegmentedButtonGroup.js +6 -6
  518. package/dist-es/segmented-button-group/SegmentedButtonGroup.js.map +1 -1
  519. package/dist-es/spinner/Spinner.js +4 -4
  520. package/dist-es/spinner/Spinner.js.map +1 -1
  521. package/dist-es/spinner/svgSpinners/SpinnerSVG.js +5 -5
  522. package/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  523. package/dist-es/split-layout/SplitLayout.js +6 -6
  524. package/dist-es/split-layout/SplitLayout.js.map +1 -1
  525. package/dist-es/stack-layout/StackLayout.js +8 -8
  526. package/dist-es/stack-layout/StackLayout.js.map +1 -1
  527. package/dist-es/status-adornment/ErrorAdornment.js.map +1 -1
  528. package/dist-es/status-adornment/StatusAdornment.js +5 -5
  529. package/dist-es/status-adornment/StatusAdornment.js.map +1 -1
  530. package/dist-es/status-adornment/SuccessAdornment.js.map +1 -1
  531. package/dist-es/status-adornment/WarningAdornment.js.map +1 -1
  532. package/dist-es/status-indicator/StatusIndicator.js +3 -3
  533. package/dist-es/status-indicator/StatusIndicator.js.map +1 -1
  534. package/dist-es/switch/Switch.js +101 -99
  535. package/dist-es/switch/Switch.js.map +1 -1
  536. package/dist-es/tag/Tag.js +6 -6
  537. package/dist-es/tag/Tag.js.map +1 -1
  538. package/dist-es/text/Code.js.map +1 -1
  539. package/dist-es/text/Display.js.map +1 -1
  540. package/dist-es/text/Headings.js.map +1 -1
  541. package/dist-es/text/Label.js.map +1 -1
  542. package/dist-es/text/Text.js +5 -5
  543. package/dist-es/text/Text.js.map +1 -1
  544. package/dist-es/text/TextAction.js.map +1 -1
  545. package/dist-es/text/TextNotation.js.map +1 -1
  546. package/dist-es/theme/Accent.js +3 -2
  547. package/dist-es/theme/Accent.js.map +1 -1
  548. package/dist-es/theme/ActionFont.js +3 -2
  549. package/dist-es/theme/ActionFont.js.map +1 -1
  550. package/dist-es/theme/Corner.js +3 -2
  551. package/dist-es/theme/Corner.js.map +1 -1
  552. package/dist-es/theme/HeadingFont.js +3 -2
  553. package/dist-es/theme/HeadingFont.js.map +1 -1
  554. package/dist-es/theme/Theme.js.map +1 -1
  555. package/dist-es/toast/Toast.js +33 -31
  556. package/dist-es/toast/Toast.js.map +1 -1
  557. package/dist-es/toast/ToastContent.js +5 -5
  558. package/dist-es/toast/ToastContent.js.map +1 -1
  559. package/dist-es/toggle-button/ToggleButton.js +6 -6
  560. package/dist-es/toggle-button/ToggleButton.js.map +1 -1
  561. package/dist-es/toggle-button-group/ToggleButtonGroup.js +10 -10
  562. package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  563. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js +6 -6
  564. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  565. package/dist-es/tooltip/Tooltip.css.js +1 -1
  566. package/dist-es/tooltip/Tooltip.js +9 -11
  567. package/dist-es/tooltip/Tooltip.js.map +1 -1
  568. package/dist-es/tooltip/TooltipBase.js +6 -6
  569. package/dist-es/tooltip/TooltipBase.js.map +1 -1
  570. package/dist-es/tooltip/useAriaAnnounce.js +11 -8
  571. package/dist-es/tooltip/useAriaAnnounce.js.map +1 -1
  572. package/dist-es/tooltip/useTooltip.js +5 -5
  573. package/dist-es/tooltip/useTooltip.js.map +1 -1
  574. package/dist-es/utils/createChainedFunction.js.map +1 -1
  575. package/dist-es/utils/createContext.js.map +1 -1
  576. package/dist-es/utils/debounce.js.map +1 -1
  577. package/dist-es/utils/getRefFromChildren.js +11 -0
  578. package/dist-es/utils/getRefFromChildren.js.map +1 -0
  579. package/dist-es/utils/marginMiddleware.js.map +1 -1
  580. package/dist-es/utils/mergeProps.js.map +1 -1
  581. package/dist-es/utils/renderProps.js +28 -0
  582. package/dist-es/utils/renderProps.js.map +1 -0
  583. package/dist-es/utils/setRef.js.map +1 -1
  584. package/dist-es/utils/useControlled.js +1 -1
  585. package/dist-es/utils/useControlled.js.map +1 -1
  586. package/dist-es/utils/useEventCallback.js.map +1 -1
  587. package/dist-es/utils/useFloatingUI/useFloatingUI.js +2 -2
  588. package/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  589. package/dist-es/utils/useForkRef.js.map +1 -1
  590. package/dist-es/utils/useId.js +1 -2
  591. package/dist-es/utils/useId.js.map +1 -1
  592. package/dist-es/utils/useIsFocusVisible.js.map +1 -1
  593. package/dist-es/utils/useIsomorphicLayoutEffect.js.map +1 -1
  594. package/dist-es/utils/usePrevious.js.map +1 -1
  595. package/dist-es/utils/useResizeObserver.js.map +1 -1
  596. package/dist-es/utils/useResponsiveProp.js +11 -8
  597. package/dist-es/utils/useResponsiveProp.js.map +1 -1
  598. package/dist-es/utils/useValueEffect.js +5 -5
  599. package/dist-es/utils/useValueEffect.js.map +1 -1
  600. package/dist-es/viewport/ViewportProvider.js +5 -5
  601. package/dist-es/viewport/ViewportProvider.js.map +1 -1
  602. package/dist-types/accordion/Accordion.d.ts +2 -2
  603. package/dist-types/accordion/AccordionContext.d.ts +1 -1
  604. package/dist-types/accordion/AccordionGroup.d.ts +1 -1
  605. package/dist-types/accordion/AccordionHeader.d.ts +1 -1
  606. package/dist-types/accordion/AccordionPanel.d.ts +1 -1
  607. package/dist-types/aria-announcer/AriaAnnounce.d.ts +1 -1
  608. package/dist-types/aria-announcer/AriaAnnouncerProvider.d.ts +2 -2
  609. package/dist-types/aria-announcer/useAriaAnnouncer.d.ts +1 -1
  610. package/dist-types/avatar/Avatar.d.ts +1 -1
  611. package/dist-types/avatar/useAvatarImage.d.ts +1 -1
  612. package/dist-types/badge/Badge.d.ts +1 -1
  613. package/dist-types/banner/Banner.d.ts +2 -2
  614. package/dist-types/banner/BannerActions.d.ts +1 -1
  615. package/dist-types/banner/BannerContent.d.ts +1 -1
  616. package/dist-types/border-item/BorderItem.d.ts +3 -3
  617. package/dist-types/border-layout/BorderLayout.d.ts +4 -4
  618. package/dist-types/breakpoints/BreakpointProvider.d.ts +3 -3
  619. package/dist-types/button/Button.d.ts +1 -1
  620. package/dist-types/button/useButton.d.ts +1 -1
  621. package/dist-types/card/Card.d.ts +1 -1
  622. package/dist-types/checkbox/Checkbox.d.ts +2 -2
  623. package/dist-types/checkbox/CheckboxGroup.d.ts +2 -2
  624. package/dist-types/checkbox/CheckboxIcon.d.ts +1 -1
  625. package/dist-types/checkbox/internal/CheckboxGroupContext.d.ts +2 -2
  626. package/dist-types/combo-box/ComboBox.d.ts +4 -4
  627. package/dist-types/combo-box/useComboBox.d.ts +3 -3
  628. package/dist-types/dialog/Dialog.d.ts +4 -4
  629. package/dist-types/dialog/DialogActions.d.ts +1 -1
  630. package/dist-types/dialog/DialogCloseButton.d.ts +1 -1
  631. package/dist-types/dialog/DialogContent.d.ts +1 -1
  632. package/dist-types/dialog/DialogHeader.d.ts +2 -2
  633. package/dist-types/divider/Divider.d.ts +1 -1
  634. package/dist-types/drawer/Drawer.d.ts +1 -1
  635. package/dist-types/drawer/DrawerCloseButton.d.ts +1 -1
  636. package/dist-types/dropdown/Dropdown.d.ts +4 -4
  637. package/dist-types/file-drop-zone/FileDropZone.d.ts +2 -2
  638. package/dist-types/file-drop-zone/FileDropZoneIcon.d.ts +2 -2
  639. package/dist-types/file-drop-zone/FileDropZoneTrigger.d.ts +1 -1
  640. package/dist-types/file-drop-zone/internal/utils.d.ts +1 -1
  641. package/dist-types/flex-item/FlexItem.d.ts +2 -2
  642. package/dist-types/flex-layout/FlexLayout.d.ts +2 -2
  643. package/dist-types/flow-layout/FlowLayout.d.ts +3 -3
  644. package/dist-types/form-field/FormField.d.ts +2 -2
  645. package/dist-types/form-field/FormFieldHelperText.d.ts +2 -2
  646. package/dist-types/form-field/FormFieldLabel.d.ts +2 -2
  647. package/dist-types/form-field-context/useFormFieldProps.d.ts +1 -1
  648. package/dist-types/grid-item/GridItem.d.ts +2 -2
  649. package/dist-types/grid-layout/GridLayout.d.ts +2 -2
  650. package/dist-types/input/Input.d.ts +1 -1
  651. package/dist-types/interactable-card/InteractableCard.d.ts +2 -2
  652. package/dist-types/interactable-card/InteractableCardGroup.d.ts +2 -2
  653. package/dist-types/interactable-card/InteractableCardGroupContext.d.ts +1 -1
  654. package/dist-types/interactable-card/useInteractableCard.d.ts +1 -1
  655. package/dist-types/link/Link.d.ts +3 -3
  656. package/dist-types/link-card/LinkCard.d.ts +1 -1
  657. package/dist-types/list-box/ListBox.d.ts +2 -2
  658. package/dist-types/list-control/ListControlContext.d.ts +1 -1
  659. package/dist-types/list-control/ListControlState.d.ts +2 -2
  660. package/dist-types/menu/Menu.d.ts +2 -2
  661. package/dist-types/menu/MenuBase.d.ts +4 -4
  662. package/dist-types/menu/MenuContext.d.ts +3 -3
  663. package/dist-types/menu/MenuGroup.d.ts +1 -1
  664. package/dist-types/menu/MenuItem.d.ts +1 -1
  665. package/dist-types/menu/MenuPanel.d.ts +1 -1
  666. package/dist-types/menu/MenuPanelBase.d.ts +1 -1
  667. package/dist-types/menu/MenuPanelContext.d.ts +1 -1
  668. package/dist-types/menu/MenuTrigger.d.ts +2 -2
  669. package/dist-types/multiline-input/MultilineInput.d.ts +1 -1
  670. package/dist-types/navigation-item/ExpansionIcon.d.ts +12 -2
  671. package/dist-types/navigation-item/NavigationItem.d.ts +6 -1
  672. package/dist-types/navigation-item/NavigationItemAction.d.ts +5 -0
  673. package/dist-types/option/Option.d.ts +1 -1
  674. package/dist-types/option/OptionGroup.d.ts +1 -1
  675. package/dist-types/option/OptionList.d.ts +1 -1
  676. package/dist-types/option/OptionListBase.d.ts +1 -1
  677. package/dist-types/overlay/Overlay.d.ts +2 -2
  678. package/dist-types/overlay/OverlayContext.d.ts +4 -3
  679. package/dist-types/overlay/OverlayPanel.d.ts +1 -1
  680. package/dist-types/overlay/OverlayPanelCloseButton.d.ts +1 -1
  681. package/dist-types/overlay/OverlayPanelContent.d.ts +1 -1
  682. package/dist-types/overlay/OverlayTrigger.d.ts +2 -2
  683. package/dist-types/pagination/CompactInput.d.ts +1 -1
  684. package/dist-types/pagination/GoToInput.d.ts +1 -1
  685. package/dist-types/pagination/PageRanges.d.ts +1 -1
  686. package/dist-types/pagination/Pagination.d.ts +1 -1
  687. package/dist-types/pagination/PaginationContext.d.ts +1 -1
  688. package/dist-types/pagination/Paginator.d.ts +1 -1
  689. package/dist-types/panel/Panel.d.ts +1 -1
  690. package/dist-types/parent-child-layout/ParentChildLayout.d.ts +2 -2
  691. package/dist-types/parent-child-layout/useIsViewportLargerThanBreakpoint.d.ts +1 -1
  692. package/dist-types/pill/Pill.d.ts +1 -1
  693. package/dist-types/pill-input/PillInput.d.ts +1 -1
  694. package/dist-types/progress/CircularProgress/CircularProgress.d.ts +1 -1
  695. package/dist-types/progress/LinearProgress/LinearProgress.d.ts +5 -3
  696. package/dist-types/radio-button/RadioButton.d.ts +2 -2
  697. package/dist-types/radio-button/RadioButtonGroup.d.ts +1 -1
  698. package/dist-types/radio-button/RadioButtonIcon.d.ts +3 -3
  699. package/dist-types/radio-button/internal/RadioGroupContext.d.ts +2 -2
  700. package/dist-types/salt-provider/SaltProvider.d.ts +84 -22
  701. package/dist-types/scrim/Scrim.d.ts +1 -1
  702. package/dist-types/segmented-button-group/SegmentedButtonGroup.d.ts +1 -1
  703. package/dist-types/spinner/Spinner.d.ts +1 -1
  704. package/dist-types/spinner/svgSpinners/SpinnerSVG.d.ts +4 -4
  705. package/dist-types/split-layout/SplitLayout.d.ts +3 -3
  706. package/dist-types/stack-layout/StackLayout.d.ts +3 -3
  707. package/dist-types/status-adornment/ErrorAdornment.d.ts +1 -1
  708. package/dist-types/status-adornment/StatusAdornment.d.ts +2 -2
  709. package/dist-types/status-adornment/SuccessAdornment.d.ts +1 -1
  710. package/dist-types/status-adornment/WarningAdornment.d.ts +1 -1
  711. package/dist-types/status-indicator/StatusIndicator.d.ts +2 -2
  712. package/dist-types/switch/Switch.d.ts +1 -1
  713. package/dist-types/tag/Tag.d.ts +1 -1
  714. package/dist-types/text/Code.d.ts +1 -1
  715. package/dist-types/text/Display.d.ts +1 -1
  716. package/dist-types/text/Headings.d.ts +1 -1
  717. package/dist-types/text/Label.d.ts +1 -1
  718. package/dist-types/text/Text.d.ts +3 -3
  719. package/dist-types/text/TextAction.d.ts +1 -1
  720. package/dist-types/text/TextNotation.d.ts +1 -1
  721. package/dist-types/theme/Accent.d.ts +5 -1
  722. package/dist-types/theme/ActionFont.d.ts +5 -1
  723. package/dist-types/theme/Corner.d.ts +5 -1
  724. package/dist-types/theme/HeadingFont.d.ts +5 -1
  725. package/dist-types/toast/Toast.d.ts +3 -3
  726. package/dist-types/toast/ToastContent.d.ts +1 -1
  727. package/dist-types/toggle-button/ToggleButton.d.ts +1 -1
  728. package/dist-types/toggle-button-group/ToggleButtonGroup.d.ts +2 -2
  729. package/dist-types/toggle-button-group/ToggleButtonGroupContext.d.ts +1 -1
  730. package/dist-types/tooltip/Tooltip.d.ts +3 -3
  731. package/dist-types/tooltip/TooltipBase.d.ts +4 -4
  732. package/dist-types/tooltip/useTooltip.d.ts +2 -2
  733. package/dist-types/utils/createContext.d.ts +1 -1
  734. package/dist-types/utils/getRefFromChildren.d.ts +2 -0
  735. package/dist-types/utils/index.d.ts +2 -0
  736. package/dist-types/utils/inferElementType.d.ts +1 -1
  737. package/dist-types/utils/marginMiddleware.d.ts +1 -1
  738. package/dist-types/utils/polymorphicTypes.d.ts +1 -1
  739. package/dist-types/utils/renderProps.d.ts +5 -0
  740. package/dist-types/utils/setRef.d.ts +1 -1
  741. package/dist-types/utils/useControlled.d.ts +1 -1
  742. package/dist-types/utils/useFloatingUI/useFloatingUI.d.ts +4 -4
  743. package/dist-types/utils/useForkRef.d.ts +1 -1
  744. package/dist-types/utils/useIsFocusVisible.d.ts +1 -1
  745. package/dist-types/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  746. package/dist-types/utils/usePrevious.d.ts +1 -1
  747. package/dist-types/utils/useResizeObserver.d.ts +1 -1
  748. package/dist-types/utils/useResponsiveProp.d.ts +1 -1
  749. package/dist-types/utils/useValueEffect.d.ts +1 -1
  750. package/dist-types/viewport/ViewportProvider.d.ts +2 -2
  751. package/package.json +2 -2
  752. package/dist-cjs/navigation-item/ConditionalWrapper.js +0 -35
  753. package/dist-cjs/navigation-item/ConditionalWrapper.js.map +0 -1
  754. package/dist-es/navigation-item/ConditionalWrapper.js +0 -31
  755. package/dist-es/navigation-item/ConditionalWrapper.js.map +0 -1
  756. package/dist-types/navigation-item/ConditionalWrapper.d.ts +0 -8
@@ -3,12 +3,19 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var React = require('react');
7
- var clsx = require('clsx');
8
6
  var react = require('@floating-ui/react');
9
7
  var icons = require('@salt-ds/icons');
10
- var window = require('@salt-ds/window');
11
8
  var styles = require('@salt-ds/styles');
9
+ var window = require('@salt-ds/window');
10
+ var clsx = require('clsx');
11
+ var React = require('react');
12
+ var Button = require('../button/Button.js');
13
+ require('../form-field-context/FormFieldContext.js');
14
+ var useFormFieldProps = require('../form-field-context/useFormFieldProps.js');
15
+ var ListControlContext = require('../list-control/ListControlContext.js');
16
+ var ListControlState = require('../list-control/ListControlState.js');
17
+ var OptionList = require('../option/OptionList.js');
18
+ var PillInput = require('../pill-input/PillInput.js');
12
19
  var makePrefixer = require('../utils/makePrefixer.js');
13
20
  var useFloatingUI = require('../utils/useFloatingUI/useFloatingUI.js');
14
21
  var useForkRef = require('../utils/useForkRef.js');
@@ -28,7 +35,6 @@ require('../banner/BannerContent.js');
28
35
  require('../border-item/BorderItem.js');
29
36
  require('../border-layout/BorderLayout.js');
30
37
  require('../breakpoints/BreakpointProvider.js');
31
- var Button = require('../button/Button.js');
32
38
  require('../card/Card.js');
33
39
  require('../checkbox/Checkbox.js');
34
40
  require('../checkbox/CheckboxGroup.js');
@@ -57,8 +63,6 @@ require('../text/Headings.js');
57
63
  require('../text/Label.js');
58
64
  require('../text/TextAction.js');
59
65
  require('../text/TextNotation.js');
60
- require('../form-field-context/FormFieldContext.js');
61
- var useFormFieldProps = require('../form-field-context/useFormFieldProps.js');
62
66
  require('../grid-item/GridItem.js');
63
67
  require('../grid-layout/GridLayout.js');
64
68
  require('../input/Input.js');
@@ -68,12 +72,11 @@ require('../interactable-card/InteractableCardGroupContext.js');
68
72
  require('../link/Link.js');
69
73
  require('../link-card/LinkCard.js');
70
74
  require('../list-box/ListBox.js');
71
- var ListControlContext = require('../list-control/ListControlContext.js');
72
75
  require('../menu/MenuContext.js');
73
76
  require('../menu/MenuItem.js');
74
77
  require('../menu/MenuPanel.js');
75
- require('../menu/MenuTriggerContext.js');
76
78
  require('../menu/MenuPanelContext.js');
79
+ require('../menu/MenuTriggerContext.js');
77
80
  require('../menu/MenuGroup.js');
78
81
  require('../multiline-input/MultilineInput.js');
79
82
  require('../navigation-item/NavigationItem.js');
@@ -109,11 +112,8 @@ require('../toggle-button/ToggleButton.js');
109
112
  require('../toggle-button-group/ToggleButtonGroup.js');
110
113
  require('../toggle-button-group/ToggleButtonGroupContext.js');
111
114
  require('../tooltip/Tooltip.js');
112
- var ListControlState = require('../list-control/ListControlState.js');
113
- var useComboBox = require('./useComboBox.js');
114
- var OptionList = require('../option/OptionList.js');
115
- var PillInput = require('../pill-input/PillInput.js');
116
115
  var ComboBox$1 = require('./ComboBox.css.js');
116
+ var useComboBox = require('./useComboBox.js');
117
117
 
118
118
  const withBaseName = makePrefixer.makePrefixer("saltComboBox");
119
119
  const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
@@ -202,10 +202,10 @@ const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
202
202
  const handleOpenChange = (newOpen, _event, reason) => {
203
203
  var _a2;
204
204
  const focusNotBlur = reason === "focus" && newOpen;
205
- if (reason == "focus") {
205
+ if (reason === "focus") {
206
206
  setFocusedState(newOpen);
207
207
  }
208
- if (reason == "focus" && !newOpen) {
208
+ if (reason === "focus" && !newOpen) {
209
209
  setFocusVisibleState(false);
210
210
  }
211
211
  if (readOnly || focusNotBlur)
@@ -216,11 +216,12 @@ const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
216
216
  }
217
217
  };
218
218
  const { x, y, strategy, elements, floating, reference, context } = useFloatingUI.useFloatingUI({
219
- open: openState && !readOnly && children != void 0,
219
+ open: openState && !readOnly && React.Children.count(children) > 0,
220
220
  onOpenChange: handleOpenChange,
221
221
  placement: "bottom-start",
222
222
  strategy: "fixed",
223
223
  middleware: [
224
+ react.offset(1),
224
225
  react.size({
225
226
  apply({ rects, elements: elements2, availableHeight }) {
226
227
  Object.assign(elements2.floating.style, {
@@ -251,6 +252,7 @@ const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
251
252
  };
252
253
  const handleKeyDown = (event) => {
253
254
  var _a2, _b2, _c;
255
+ onKeyDown == null ? void 0 : onKeyDown(event);
254
256
  if (readOnly) {
255
257
  return;
256
258
  }
@@ -261,7 +263,7 @@ const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
261
263
  }
262
264
  }
263
265
  const activeOption = activeState != null ? activeState : (_a2 = getFirstOption()) == null ? void 0 : _a2.data;
264
- let newActive;
266
+ let newActive = null;
265
267
  switch (event.key) {
266
268
  case "ArrowDown":
267
269
  newActive = (_b2 = getOptionAfter(activeOption)) != null ? _b2 : getLastOption();
@@ -303,11 +305,10 @@ const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
303
305
  if (newActive) {
304
306
  setFocusVisibleState(true);
305
307
  }
306
- if (newActive && newActive.data.id != (activeState == null ? void 0 : activeState.id)) {
308
+ if (newActive && newActive.data.id !== (activeState == null ? void 0 : activeState.id)) {
307
309
  event.preventDefault();
308
310
  setActive(newActive.data);
309
311
  }
310
- onKeyDown == null ? void 0 : onKeyDown(event);
311
312
  };
312
313
  const handleFocus = (event) => {
313
314
  setFocusedState(true);
@@ -327,7 +328,7 @@ const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
327
328
  }
328
329
  setValueState(value2);
329
330
  queueMicrotask(() => {
330
- if (value2 != "") {
331
+ if (value2 !== "") {
331
332
  const newOption = getFirstOption();
332
333
  if (newOption) {
333
334
  setActive(newOption.data);
@@ -450,7 +451,7 @@ const ComboBox = React.forwardRef(function ComboBox2(props, ref) {
450
451
  emptyReadOnlyMarker: readOnly && selectedState.length > 0 ? "" : void 0
451
452
  }),
452
453
  /* @__PURE__ */ jsxRuntime.jsx(OptionList.OptionList, {
453
- open: (openState || focusedState) && !readOnly && children != void 0,
454
+ open: (openState || focusedState) && !readOnly && React.Children.count(children) > 0,
454
455
  collapsed: !openState,
455
456
  ref: handleListRef,
456
457
  id: listId,
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sources":["../src/combo-box/ComboBox.tsx"],"sourcesContent":["import {\n ChangeEvent,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n SyntheticEvent,\n useEffect,\n useRef,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport {\n flip,\n size,\n useClick,\n useDismiss,\n useFocus,\n useInteractions,\n} from \"@floating-ui/react\";\nimport { ChevronDownIcon, ChevronUpIcon } from \"@salt-ds/icons\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport {\n makePrefixer,\n useFloatingUI,\n UseFloatingUIProps,\n useForkRef,\n useId,\n} from \"../utils\";\nimport { Button } from \"../button\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { defaultValueToString } from \"../list-control/ListControlState\";\nimport { ListControlContext } from \"../list-control/ListControlContext\";\nimport { useComboBox, UseComboBoxProps } from \"./useComboBox\";\nimport { OptionList } from \"../option/OptionList\";\nimport { PillInput, PillInputProps } from \"../pill-input\";\nimport comboBoxCss from \"./ComboBox.css\";\n\nexport type ComboBoxProps<Item = string> = {\n /**\n * The options to display in the combo box.\n */\n children?: ReactNode;\n /**\n * If true, options will be selected on tab key press.\n */\n selectOnTab?: boolean;\n} & UseComboBoxProps<Item> &\n PillInputProps;\n\nconst withBaseName = makePrefixer(\"saltComboBox\");\n\nexport const ComboBox = forwardRef(function ComboBox<Item>(\n props: ComboBoxProps<Item>,\n ref: ForwardedRef<HTMLDivElement>\n) {\n const {\n children,\n className,\n disabled: disabledProp,\n endAdornment,\n readOnly: readOnlyProp,\n multiselect,\n selectOnTab = !multiselect,\n onSelectionChange,\n selected,\n defaultSelected,\n defaultOpen,\n onOpenChange,\n onChange,\n open,\n inputProps: inputPropsProp,\n variant = \"primary\",\n onKeyDown,\n onFocus,\n onBlur,\n value,\n defaultValue,\n valueToString = defaultValueToString,\n truncate,\n bordered = false,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-combo-box\",\n css: comboBoxCss,\n window: targetWindow,\n });\n\n const {\n a11yProps: { \"aria-labelledby\": formFieldLabelledBy } = {},\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n } = useFormFieldProps();\n\n const disabled = Boolean(disabledProp) || formFieldDisabled;\n const readOnly = Boolean(readOnlyProp) || formFieldReadOnly;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const listControl = useComboBox<Item>({\n open,\n defaultOpen,\n onOpenChange,\n multiselect,\n defaultSelected,\n selected,\n onSelectionChange,\n value,\n defaultValue,\n disabled,\n readOnly,\n valueToString,\n });\n\n const {\n activeState,\n setActive,\n openState,\n setOpen,\n openKey,\n getIndexOfOption,\n getOptionsMatching,\n getFirstOption,\n getLastOption,\n getOptionAfter,\n getOptionBefore,\n getOptionPageAbove,\n getOptionPageBelow,\n selectedState,\n select,\n clear,\n focusVisibleState,\n setFocusVisibleState,\n focusedState,\n setFocusedState,\n listRef,\n valueState,\n setValueState,\n removePill,\n } = listControl;\n\n const handleOpenChange: UseFloatingUIProps[\"onOpenChange\"] = (\n newOpen,\n _event,\n reason\n ) => {\n const focusNotBlur = reason === \"focus\" && newOpen;\n if (reason == \"focus\") {\n setFocusedState(newOpen);\n }\n\n if (reason == \"focus\" && !newOpen) {\n setFocusVisibleState(false);\n }\n\n if (readOnly || focusNotBlur) return;\n setOpen(newOpen);\n\n if (newOpen) {\n inputRef.current?.focus();\n }\n };\n\n const { x, y, strategy, elements, floating, reference, context } =\n useFloatingUI({\n open: openState && !readOnly && children != undefined,\n onOpenChange: handleOpenChange,\n placement: \"bottom-start\",\n strategy: \"fixed\",\n middleware: [\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n minWidth: `${rects.reference.width}px`,\n maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`,\n });\n },\n }),\n flip({ fallbackStrategy: \"initialPlacement\" }),\n ],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n useFocus(context),\n useClick(context, { keyboardHandlers: false, toggle: false }),\n ]);\n\n const handleRef = useForkRef<HTMLDivElement>(reference, ref);\n\n const handleButtonClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (!readOnly) {\n event.stopPropagation();\n setFocusVisibleState(false);\n setOpen(!openState, \"manual\");\n }\n };\n\n const handleButtonFocus = () => {\n inputRef.current?.focus();\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (readOnly) {\n return;\n }\n\n if (!openState) {\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n setOpen(true, undefined, event.key);\n return;\n }\n }\n\n const activeOption = activeState ?? getFirstOption()?.data;\n\n let newActive;\n switch (event.key) {\n case \"ArrowDown\":\n newActive = getOptionAfter(activeOption) ?? getLastOption();\n break;\n case \"ArrowUp\":\n newActive = getOptionBefore(activeOption) ?? getFirstOption();\n break;\n case \"Home\":\n newActive = getFirstOption();\n break;\n case \"End\":\n newActive = getLastOption();\n break;\n case \"PageUp\":\n newActive = getOptionPageAbove(activeOption);\n break;\n case \"PageDown\":\n newActive = getOptionPageBelow(activeOption);\n break;\n case \"Enter\":\n if (openState && activeState?.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!openState || !activeState) {\n return;\n }\n\n select(event, activeState);\n\n if (!multiselect) {\n event.preventDefault();\n }\n\n break;\n case \"Tab\":\n if (\n openState &&\n selectOnTab &&\n activeState &&\n !activeState?.disabled &&\n !selectedState.includes(activeState?.value)\n ) {\n select(event, activeState);\n }\n break;\n }\n\n if (newActive) {\n setFocusVisibleState(true);\n }\n\n if (newActive && newActive.data.id != activeState?.id) {\n event.preventDefault();\n setActive(newActive.data);\n }\n\n onKeyDown?.(event);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n setFocusedState(true);\n onFocus?.(event);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n event.persist();\n onBlur?.(event);\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n\n if (!openState) {\n setOpen(true, \"input\");\n }\n\n if (value === \"\" && !multiselect) {\n clear(event);\n }\n\n setValueState(value);\n\n // Wait for the filter to happen\n queueMicrotask(() => {\n if (value != \"\") {\n const newOption = getFirstOption();\n if (newOption) {\n setActive(newOption.data);\n }\n } else {\n setActive(undefined);\n }\n });\n\n onChange?.(event);\n };\n\n const handlePillRemove = (event: SyntheticEvent, index: number) => {\n event.stopPropagation();\n const removed = selectedState[index];\n removePill(event, removed);\n };\n\n const handleListMouseOver = () => {\n setFocusVisibleState(false);\n };\n\n const handleListMouseLeave = () => {\n setActive(undefined);\n };\n\n const handleFocusInput = () => {\n inputRef.current?.focus();\n };\n\n useEffect(() => {\n // We check the active index because the active item may have been removed\n const activeIndex = activeState ? getIndexOfOption(activeState) : -1;\n let newActive = undefined;\n\n // If the active item is still in the list, we don't need to do anything\n if (activeIndex > -1) {\n return;\n }\n\n // If the list is closed we should clear the active item\n if (!openState) {\n setActive(undefined);\n return;\n }\n\n // If we have selected an item, we should make that the active item\n if (selectedState.length > 0) {\n newActive = getOptionsMatching(\n (option) => option.value === selectedState[0]\n ).pop();\n }\n\n // If we still don't have an active item, we should check if the list has been opened with the keyboard\n if (!newActive) {\n if (openKey.current === \"ArrowDown\") {\n newActive = getFirstOption();\n setFocusVisibleState(true);\n } else if (openKey.current === \"ArrowUp\") {\n newActive = getLastOption();\n setFocusVisibleState(true);\n }\n }\n\n // If we still don't have an active item, we should just select the first item\n if (!newActive) {\n newActive = getFirstOption();\n }\n\n setActive(newActive?.data);\n /* eslint-disable-next-line react-hooks/exhaustive-deps -- We only want this to run when the list's openState or the displayed options change */\n }, [openState, children]);\n\n const buttonId = useId();\n const listId = useId();\n\n const handleListRef = useForkRef<HTMLDivElement>(listRef, floating);\n\n return (\n <ListControlContext.Provider value={listControl}>\n <PillInput\n // Ensures that the field is focused when you don't directly click on the input.\n tabIndex={!disabled ? -1 : undefined}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"focused\")]: focusedState,\n [withBaseName(\"focusVisible\")]: focusVisibleState,\n },\n className\n )}\n endAdornment={\n <>\n {endAdornment}\n {!readOnly ? (\n <Button\n aria-labelledby={clsx(buttonId, formFieldLabelledBy)}\n aria-label=\"Show options\"\n aria-expanded={openState}\n aria-controls={openState ? listId : undefined}\n aria-haspopup=\"listbox\"\n disabled={disabled}\n variant=\"secondary\"\n onClick={handleButtonClick}\n onFocus={handleButtonFocus}\n tabIndex={-1}\n >\n {openState ? (\n <ChevronUpIcon aria-hidden />\n ) : (\n <ChevronDownIcon aria-hidden />\n )}\n </Button>\n ) : undefined}\n </>\n }\n onChange={handleChange}\n role=\"combobox\"\n disabled={disabled}\n readOnly={readOnly}\n inputProps={{\n role: \"combobox\",\n \"aria-expanded\": openState,\n \"aria-multiselectable\": multiselect,\n \"aria-controls\": openState ? listId : undefined,\n onKeyDown: handleKeyDown,\n ...inputPropsProp,\n }}\n aria-activedescendant={activeState?.id}\n variant={variant}\n inputRef={inputRef}\n value={valueState}\n ref={handleRef}\n bordered={bordered}\n {...getReferenceProps({\n onBlur: handleBlur,\n onFocus: handleFocus,\n ...rest,\n })}\n pills={\n multiselect ? selectedState.map((item) => valueToString(item)) : []\n }\n truncate={truncate && !focusedState && !openState}\n onPillRemove={handlePillRemove}\n hidePillClose={!focusedState || readOnly}\n emptyReadOnlyMarker={\n readOnly && selectedState.length > 0 ? \"\" : undefined\n }\n />\n <OptionList\n open={(openState || focusedState) && !readOnly && children != undefined}\n collapsed={!openState}\n ref={handleListRef}\n id={listId}\n tabIndex={-1}\n {...getFloatingProps({\n onMouseOver: handleListMouseOver,\n onFocus: handleFocusInput,\n onClick: handleFocusInput,\n onMouseLeave: handleListMouseLeave,\n })}\n left={x ?? 0}\n top={y ?? 0}\n position={strategy}\n width={elements.floating?.offsetWidth}\n height={elements.floating?.offsetHeight}\n >\n {children}\n </OptionList>\n </ListControlContext.Provider>\n );\n}) as <Item = string>(\n props: ComboBoxProps<Item> & { ref?: Ref<HTMLDivElement> }\n) => JSX.Element;\n"],"names":["makePrefixer","forwardRef","ComboBox","defaultValueToString","useWindow","useComponentCssInjection","comboBoxCss","useFormFieldProps","useRef","useComboBox","_a","useFloatingUI","size","elements","flip","useInteractions","useDismiss","useFocus","useClick","useForkRef","_b","value","useEffect","useId","jsxs","ListControlContext","jsx","PillInput","clsx","Fragment","Button","ChevronUpIcon","ChevronDownIcon","OptionList"],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.js","sources":["../src/combo-box/ComboBox.tsx"],"sourcesContent":["import {\n flip,\n offset,\n size,\n useClick,\n useDismiss,\n useFocus,\n useInteractions,\n} from \"@floating-ui/react\";\nimport { ChevronDownIcon, ChevronUpIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ChangeEvent,\n Children,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n type SyntheticEvent,\n forwardRef,\n useEffect,\n useRef,\n} from \"react\";\nimport { Button } from \"../button\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport {\n ListControlContext,\n type OptionValue,\n} from \"../list-control/ListControlContext\";\nimport { defaultValueToString } from \"../list-control/ListControlState\";\nimport { OptionList } from \"../option/OptionList\";\nimport { PillInput, type PillInputProps } from \"../pill-input\";\nimport {\n type UseFloatingUIProps,\n makePrefixer,\n useFloatingUI,\n useForkRef,\n useId,\n} from \"../utils\";\nimport comboBoxCss from \"./ComboBox.css\";\nimport { type UseComboBoxProps, useComboBox } from \"./useComboBox\";\n\nexport type ComboBoxProps<Item = string> = {\n /**\n * The options to display in the combo box.\n */\n children?: ReactNode;\n /**\n * If true, options will be selected on tab key press.\n */\n selectOnTab?: boolean;\n} & UseComboBoxProps<Item> &\n PillInputProps;\n\nconst withBaseName = makePrefixer(\"saltComboBox\");\n\nexport const ComboBox = forwardRef(function ComboBox<Item>(\n props: ComboBoxProps<Item>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n disabled: disabledProp,\n endAdornment,\n readOnly: readOnlyProp,\n multiselect,\n selectOnTab = !multiselect,\n onSelectionChange,\n selected,\n defaultSelected,\n defaultOpen,\n onOpenChange,\n onChange,\n open,\n inputProps: inputPropsProp,\n variant = \"primary\",\n onKeyDown,\n onFocus,\n onBlur,\n value,\n defaultValue,\n valueToString = defaultValueToString,\n truncate,\n bordered = false,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-combo-box\",\n css: comboBoxCss,\n window: targetWindow,\n });\n\n const {\n a11yProps: { \"aria-labelledby\": formFieldLabelledBy } = {},\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n } = useFormFieldProps();\n\n const disabled = Boolean(disabledProp) || formFieldDisabled;\n const readOnly = Boolean(readOnlyProp) || formFieldReadOnly;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const listControl = useComboBox<Item>({\n open,\n defaultOpen,\n onOpenChange,\n multiselect,\n defaultSelected,\n selected,\n onSelectionChange,\n value,\n defaultValue,\n disabled,\n readOnly,\n valueToString,\n });\n\n const {\n activeState,\n setActive,\n openState,\n setOpen,\n openKey,\n getIndexOfOption,\n getOptionsMatching,\n getFirstOption,\n getLastOption,\n getOptionAfter,\n getOptionBefore,\n getOptionPageAbove,\n getOptionPageBelow,\n selectedState,\n select,\n clear,\n focusVisibleState,\n setFocusVisibleState,\n focusedState,\n setFocusedState,\n listRef,\n valueState,\n setValueState,\n removePill,\n } = listControl;\n\n const handleOpenChange: UseFloatingUIProps[\"onOpenChange\"] = (\n newOpen,\n _event,\n reason,\n ) => {\n const focusNotBlur = reason === \"focus\" && newOpen;\n if (reason === \"focus\") {\n setFocusedState(newOpen);\n }\n\n if (reason === \"focus\" && !newOpen) {\n setFocusVisibleState(false);\n }\n\n if (readOnly || focusNotBlur) return;\n setOpen(newOpen);\n\n if (newOpen) {\n inputRef.current?.focus();\n }\n };\n\n const { x, y, strategy, elements, floating, reference, context } =\n useFloatingUI({\n open: openState && !readOnly && Children.count(children) > 0,\n onOpenChange: handleOpenChange,\n placement: \"bottom-start\",\n strategy: \"fixed\",\n middleware: [\n offset(1),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n minWidth: `${rects.reference.width}px`,\n maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`,\n });\n },\n }),\n flip({ fallbackStrategy: \"initialPlacement\" }),\n ],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n useFocus(context),\n useClick(context, { keyboardHandlers: false, toggle: false }),\n ]);\n\n const handleRef = useForkRef<HTMLDivElement>(reference, ref);\n\n const handleButtonClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (!readOnly) {\n event.stopPropagation();\n setFocusVisibleState(false);\n setOpen(!openState, \"manual\");\n }\n };\n\n const handleButtonFocus = () => {\n inputRef.current?.focus();\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (readOnly) {\n return;\n }\n\n if (!openState) {\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n setOpen(true, undefined, event.key);\n return;\n }\n }\n\n const activeOption = activeState ?? getFirstOption()?.data;\n\n let newActive: { data: OptionValue<Item>; element: HTMLElement } | null =\n null;\n switch (event.key) {\n case \"ArrowDown\":\n newActive = getOptionAfter(activeOption) ?? getLastOption();\n break;\n case \"ArrowUp\":\n newActive = getOptionBefore(activeOption) ?? getFirstOption();\n break;\n case \"Home\":\n newActive = getFirstOption();\n break;\n case \"End\":\n newActive = getLastOption();\n break;\n case \"PageUp\":\n newActive = getOptionPageAbove(activeOption);\n break;\n case \"PageDown\":\n newActive = getOptionPageBelow(activeOption);\n break;\n case \"Enter\":\n if (openState && activeState?.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!openState || !activeState) {\n return;\n }\n\n select(event, activeState);\n\n if (!multiselect) {\n event.preventDefault();\n }\n\n break;\n case \"Tab\":\n if (\n openState &&\n selectOnTab &&\n activeState &&\n !activeState?.disabled &&\n !selectedState.includes(activeState?.value)\n ) {\n select(event, activeState);\n }\n break;\n }\n\n if (newActive) {\n setFocusVisibleState(true);\n }\n\n if (newActive && newActive.data.id !== activeState?.id) {\n event.preventDefault();\n setActive(newActive.data);\n }\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n setFocusedState(true);\n onFocus?.(event);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n event.persist();\n onBlur?.(event);\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n\n if (!openState) {\n setOpen(true, \"input\");\n }\n\n if (value === \"\" && !multiselect) {\n clear(event);\n }\n\n setValueState(value);\n\n // Wait for the filter to happen\n queueMicrotask(() => {\n if (value !== \"\") {\n const newOption = getFirstOption();\n if (newOption) {\n setActive(newOption.data);\n }\n } else {\n setActive(undefined);\n }\n });\n\n onChange?.(event);\n };\n\n const handlePillRemove = (event: SyntheticEvent, index: number) => {\n event.stopPropagation();\n const removed = selectedState[index];\n removePill(event, removed);\n };\n\n const handleListMouseOver = () => {\n setFocusVisibleState(false);\n };\n\n const handleListMouseLeave = () => {\n setActive(undefined);\n };\n\n const handleFocusInput = () => {\n inputRef.current?.focus();\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: We only want this to run when the list's openState or the displayed options change.\n useEffect(() => {\n // We check the active index because the active item may have been removed\n const activeIndex = activeState ? getIndexOfOption(activeState) : -1;\n let newActive = undefined;\n\n // If the active item is still in the list, we don't need to do anything\n if (activeIndex > -1) {\n return;\n }\n\n // If the list is closed we should clear the active item\n if (!openState) {\n setActive(undefined);\n return;\n }\n\n // If we have selected an item, we should make that the active item\n if (selectedState.length > 0) {\n newActive = getOptionsMatching(\n (option) => option.value === selectedState[0],\n ).pop();\n }\n\n // If we still don't have an active item, we should check if the list has been opened with the keyboard\n if (!newActive) {\n if (openKey.current === \"ArrowDown\") {\n newActive = getFirstOption();\n setFocusVisibleState(true);\n } else if (openKey.current === \"ArrowUp\") {\n newActive = getLastOption();\n setFocusVisibleState(true);\n }\n }\n\n // If we still don't have an active item, we should just select the first item\n if (!newActive) {\n newActive = getFirstOption();\n }\n\n setActive(newActive?.data);\n }, [openState, children]);\n\n const buttonId = useId();\n const listId = useId();\n\n const handleListRef = useForkRef<HTMLDivElement>(listRef, floating);\n\n return (\n <ListControlContext.Provider value={listControl}>\n <PillInput\n // Ensures that the field is focused when you don't directly click on the input.\n tabIndex={!disabled ? -1 : undefined}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"focused\")]: focusedState,\n [withBaseName(\"focusVisible\")]: focusVisibleState,\n },\n className,\n )}\n endAdornment={\n <>\n {endAdornment}\n {!readOnly ? (\n <Button\n aria-labelledby={clsx(buttonId, formFieldLabelledBy)}\n aria-label=\"Show options\"\n aria-expanded={openState}\n aria-controls={openState ? listId : undefined}\n aria-haspopup=\"listbox\"\n disabled={disabled}\n variant=\"secondary\"\n onClick={handleButtonClick}\n onFocus={handleButtonFocus}\n tabIndex={-1}\n >\n {openState ? (\n <ChevronUpIcon aria-hidden />\n ) : (\n <ChevronDownIcon aria-hidden />\n )}\n </Button>\n ) : undefined}\n </>\n }\n onChange={handleChange}\n role=\"combobox\"\n disabled={disabled}\n readOnly={readOnly}\n inputProps={{\n role: \"combobox\",\n \"aria-expanded\": openState,\n \"aria-multiselectable\": multiselect,\n \"aria-controls\": openState ? listId : undefined,\n onKeyDown: handleKeyDown,\n ...inputPropsProp,\n }}\n aria-activedescendant={activeState?.id}\n variant={variant}\n inputRef={inputRef}\n value={valueState}\n ref={handleRef}\n bordered={bordered}\n {...getReferenceProps({\n onBlur: handleBlur,\n onFocus: handleFocus,\n ...rest,\n })}\n pills={\n multiselect ? selectedState.map((item) => valueToString(item)) : []\n }\n truncate={truncate && !focusedState && !openState}\n onPillRemove={handlePillRemove}\n hidePillClose={!focusedState || readOnly}\n emptyReadOnlyMarker={\n readOnly && selectedState.length > 0 ? \"\" : undefined\n }\n />\n <OptionList\n open={\n (openState || focusedState) &&\n !readOnly &&\n Children.count(children) > 0\n }\n collapsed={!openState}\n ref={handleListRef}\n id={listId}\n tabIndex={-1}\n {...getFloatingProps({\n onMouseOver: handleListMouseOver,\n onFocus: handleFocusInput,\n onClick: handleFocusInput,\n onMouseLeave: handleListMouseLeave,\n })}\n left={x ?? 0}\n top={y ?? 0}\n position={strategy}\n width={elements.floating?.offsetWidth}\n height={elements.floating?.offsetHeight}\n >\n {children}\n </OptionList>\n </ListControlContext.Provider>\n );\n}) as <Item = string>(\n props: ComboBoxProps<Item> & { ref?: Ref<HTMLDivElement> },\n) => JSX.Element;\n"],"names":["makePrefixer","forwardRef","ComboBox","defaultValueToString","useWindow","useComponentCssInjection","comboBoxCss","useFormFieldProps","useRef","useComboBox","_a","useFloatingUI","Children","offset","size","elements","flip","useInteractions","useDismiss","useFocus","useClick","useForkRef","_b","value","useEffect","useId","jsxs","ListControlContext","jsx","PillInput","clsx","Fragment","Button","ChevronUpIcon","ChevronDownIcon","OptionList"],"mappings":"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"}
@@ -4,18 +4,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var ListControlState = require('../list-control/ListControlState.js');
6
6
  require('react');
7
+ require('react/jsx-runtime');
8
+ require('clsx');
7
9
  var useControlled = require('../utils/useControlled.js');
8
10
  require('../utils/useFloatingUI/useFloatingUI.js');
9
11
  require('../utils/useId.js');
10
12
  require('../salt-provider/SaltProvider.js');
11
13
  require('../viewport/ViewportProvider.js');
12
- require('clsx');
13
14
  require('../accordion/AccordionGroup.js');
14
15
  require('../accordion/AccordionPanel.js');
15
16
  require('../accordion/Accordion.js');
16
17
  require('../accordion/AccordionHeader.js');
17
18
  require('../aria-announcer/AriaAnnouncerContext.js');
18
- require('react/jsx-runtime');
19
19
  require('../avatar/Avatar.js');
20
20
  require('../badge/Badge.js');
21
21
  require('../banner/Banner.js');
@@ -28,9 +28,9 @@ require('../button/Button.js');
28
28
  require('../card/Card.js');
29
29
  require('../checkbox/Checkbox.js');
30
30
  require('../checkbox/CheckboxGroup.js');
31
+ require('@salt-ds/icons');
31
32
  require('@salt-ds/styles');
32
33
  require('@salt-ds/window');
33
- require('@salt-ds/icons');
34
34
  require('./ComboBox.js');
35
35
  require('../dialog/Dialog.js');
36
36
  require('../dialog/DialogHeader.js');
@@ -49,6 +49,7 @@ require('../flex-item/FlexItem.js');
49
49
  require('../flex-layout/FlexLayout.js');
50
50
  require('../flow-layout/FlowLayout.js');
51
51
  require('../form-field/FormField.js');
52
+ require('../form-field-context/FormFieldContext.js');
52
53
  require('../status-indicator/StatusIndicator.js');
53
54
  require('../text/Text.js');
54
55
  require('../text/Code.js');
@@ -57,7 +58,6 @@ require('../text/Headings.js');
57
58
  require('../text/Label.js');
58
59
  require('../text/TextAction.js');
59
60
  require('../text/TextNotation.js');
60
- require('../form-field-context/FormFieldContext.js');
61
61
  require('../grid-item/GridItem.js');
62
62
  require('../grid-layout/GridLayout.js');
63
63
  require('../input/Input.js');
@@ -68,12 +68,12 @@ require('../link/Link.js');
68
68
  require('../link-card/LinkCard.js');
69
69
  require('../list-box/ListBox.js');
70
70
  require('../list-control/ListControlContext.js');
71
- require('../menu/MenuContext.js');
72
71
  require('@floating-ui/react');
72
+ require('../menu/MenuContext.js');
73
73
  require('../menu/MenuItem.js');
74
74
  require('../menu/MenuPanel.js');
75
- require('../menu/MenuTriggerContext.js');
76
75
  require('../menu/MenuPanelContext.js');
76
+ require('../menu/MenuTriggerContext.js');
77
77
  require('../menu/MenuGroup.js');
78
78
  require('../multiline-input/MultilineInput.js');
79
79
  require('../navigation-item/NavigationItem.js');
@@ -1 +1 @@
1
- {"version":3,"file":"useComboBox.js","sources":["../src/combo-box/useComboBox.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, SyntheticEvent } from \"react\";\nimport {\n useListControl,\n ListControlProps,\n} from \"../list-control/ListControlState\";\nimport { OptionValue } from \"../list-control/ListControlContext\";\nimport { useControlled } from \"../utils\";\n\nexport type UseComboBoxProps<Item> = ListControlProps<Item> &\n Pick<ComponentPropsWithoutRef<\"input\">, \"value\" | \"defaultValue\">;\n\nexport function useComboBox<Item>(props: UseComboBoxProps<Item>) {\n const {\n open,\n defaultOpen,\n onOpenChange,\n multiselect,\n defaultSelected,\n selected,\n onSelectionChange,\n disabled,\n readOnly,\n valueToString,\n value,\n defaultValue,\n } = props;\n\n const listControl = useListControl<Item>({\n open,\n defaultOpen,\n onOpenChange,\n multiselect,\n defaultSelected,\n selected,\n onSelectionChange,\n disabled,\n readOnly,\n valueToString,\n });\n\n const { selectedState, getOptionsMatching, setSelectedState, setOpen } =\n listControl;\n\n const [valueState, setValueState] = useControlled({\n controlled: value,\n default:\n defaultValue ??\n (selectedState.length === 1 && !multiselect\n ? listControl.valueToString(selectedState[0])\n : defaultValue),\n name: \"ComboBox\",\n state: \"value\",\n });\n\n const select = (event: SyntheticEvent, option: OptionValue<Item>) => {\n if (option.disabled || disabled || readOnly) {\n return;\n }\n\n let newSelected = [option.value];\n\n if (multiselect) {\n if (selectedState.includes(option.value)) {\n newSelected = selectedState.filter((item) => item !== option.value);\n } else {\n newSelected = selectedState.concat([option.value]);\n }\n }\n\n setSelectedState(newSelected);\n const newValue = getOptionsMatching((option) =>\n newSelected.includes(option.value)\n ).map((option) => listControl.valueToString(option.data.value));\n setValueState(multiselect ? \"\" : newValue[0]);\n onSelectionChange?.(event, newSelected);\n\n if (!multiselect) {\n setOpen(false);\n }\n };\n\n const removePill = (event: SyntheticEvent, itemToRemove: Item) => {\n if (!multiselect || disabled || readOnly) {\n return;\n }\n\n let newSelected;\n\n if (selectedState.includes(itemToRemove)) {\n newSelected = selectedState.filter((item) => item !== itemToRemove);\n } else {\n newSelected = selectedState.concat([itemToRemove]);\n }\n\n setSelectedState(newSelected);\n setValueState(\"\");\n onSelectionChange?.(event, newSelected);\n };\n\n return { ...listControl, select, valueState, setValueState, removePill };\n}\n"],"names":["useListControl","useControlled","option"],"mappings":"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"}
1
+ {"version":3,"file":"useComboBox.js","sources":["../src/combo-box/useComboBox.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, SyntheticEvent } from \"react\";\nimport type { OptionValue } from \"../list-control/ListControlContext\";\nimport {\n type ListControlProps,\n useListControl,\n} from \"../list-control/ListControlState\";\nimport { useControlled } from \"../utils\";\n\nexport type UseComboBoxProps<Item> = ListControlProps<Item> &\n Pick<ComponentPropsWithoutRef<\"input\">, \"value\" | \"defaultValue\">;\n\nexport function useComboBox<Item>(props: UseComboBoxProps<Item>) {\n const {\n open,\n defaultOpen,\n onOpenChange,\n multiselect,\n defaultSelected,\n selected,\n onSelectionChange,\n disabled,\n readOnly,\n valueToString,\n value,\n defaultValue,\n } = props;\n\n const listControl = useListControl<Item>({\n open,\n defaultOpen,\n onOpenChange,\n multiselect,\n defaultSelected,\n selected,\n onSelectionChange,\n disabled,\n readOnly,\n valueToString,\n });\n\n const { selectedState, getOptionsMatching, setSelectedState, setOpen } =\n listControl;\n\n const [valueState, setValueState] = useControlled({\n controlled: value,\n default:\n defaultValue ??\n (selectedState.length === 1 && !multiselect\n ? listControl.valueToString(selectedState[0])\n : defaultValue),\n name: \"ComboBox\",\n state: \"value\",\n });\n\n const select = (event: SyntheticEvent, option: OptionValue<Item>) => {\n if (option.disabled || disabled || readOnly) {\n return;\n }\n\n let newSelected = [option.value];\n\n if (multiselect) {\n if (selectedState.includes(option.value)) {\n newSelected = selectedState.filter((item) => item !== option.value);\n } else {\n newSelected = selectedState.concat([option.value]);\n }\n }\n\n setSelectedState(newSelected);\n const newValue = getOptionsMatching((option) =>\n newSelected.includes(option.value),\n ).map((option) => listControl.valueToString(option.data.value));\n setValueState(multiselect ? \"\" : newValue[0]);\n onSelectionChange?.(event, newSelected);\n\n if (!multiselect) {\n setOpen(false);\n }\n };\n\n const removePill = (event: SyntheticEvent, itemToRemove: Item) => {\n if (!multiselect || disabled || readOnly) {\n return;\n }\n\n let newSelected: Item[];\n\n if (selectedState.includes(itemToRemove)) {\n newSelected = selectedState.filter((item) => item !== itemToRemove);\n } else {\n newSelected = selectedState.concat([itemToRemove]);\n }\n\n setSelectedState(newSelected);\n setValueState(\"\");\n onSelectionChange?.(event, newSelected);\n };\n\n return { ...listControl, select, valueState, setValueState, removePill };\n}\n"],"names":["useListControl","useControlled","option"],"mappings":"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"}
@@ -3,9 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var React = require('react');
7
- var clsx = require('clsx');
8
6
  var react = require('@floating-ui/react');
7
+ var styles = require('@salt-ds/styles');
8
+ var window = require('@salt-ds/window');
9
+ var clsx = require('clsx');
10
+ var React = require('react');
11
+ var Scrim = require('../scrim/Scrim.js');
9
12
  var makePrefixer = require('../utils/makePrefixer.js');
10
13
  var useFloatingUI = require('../utils/useFloatingUI/useFloatingUI.js');
11
14
  var useForkRef = require('../utils/useForkRef.js');
@@ -28,10 +31,8 @@ require('../button/Button.js');
28
31
  require('../card/Card.js');
29
32
  require('../checkbox/Checkbox.js');
30
33
  require('../checkbox/CheckboxGroup.js');
31
- var styles = require('@salt-ds/styles');
32
- var window = require('@salt-ds/window');
33
- require('../salt-provider/SaltProvider.js');
34
34
  require('@salt-ds/icons');
35
+ require('../salt-provider/SaltProvider.js');
35
36
  require('../combo-box/ComboBox.js');
36
37
  require('./DialogHeader.js');
37
38
  require('./DialogActions.js');
@@ -49,6 +50,7 @@ require('../flex-item/FlexItem.js');
49
50
  require('../flex-layout/FlexLayout.js');
50
51
  require('../flow-layout/FlowLayout.js');
51
52
  require('../form-field/FormField.js');
53
+ require('../form-field-context/FormFieldContext.js');
52
54
  require('../status-indicator/StatusIndicator.js');
53
55
  require('../text/Text.js');
54
56
  require('../text/Code.js');
@@ -57,7 +59,6 @@ require('../text/Headings.js');
57
59
  require('../text/Label.js');
58
60
  require('../text/TextAction.js');
59
61
  require('../text/TextNotation.js');
60
- require('../form-field-context/FormFieldContext.js');
61
62
  require('../grid-item/GridItem.js');
62
63
  require('../grid-layout/GridLayout.js');
63
64
  require('../input/Input.js');
@@ -71,8 +72,8 @@ require('../list-control/ListControlContext.js');
71
72
  require('../menu/MenuContext.js');
72
73
  require('../menu/MenuItem.js');
73
74
  require('../menu/MenuPanel.js');
74
- require('../menu/MenuTriggerContext.js');
75
75
  require('../menu/MenuPanelContext.js');
76
+ require('../menu/MenuTriggerContext.js');
76
77
  require('../menu/MenuGroup.js');
77
78
  require('../multiline-input/MultilineInput.js');
78
79
  require('../navigation-item/NavigationItem.js');
@@ -94,7 +95,6 @@ require('../progress/CircularProgress/CircularProgress.js');
94
95
  require('../progress/LinearProgress/LinearProgress.js');
95
96
  require('../radio-button/RadioButton.js');
96
97
  require('../radio-button/RadioButtonGroup.js');
97
- var Scrim = require('../scrim/Scrim.js');
98
98
  require('../segmented-button-group/SegmentedButtonGroup.js');
99
99
  require('../spinner/Spinner.js');
100
100
  require('../stack-layout/StackLayout.js');
@@ -126,88 +126,92 @@ const ConditionalScrimWrapper = ({
126
126
  });
127
127
  };
128
128
  const withBaseName = makePrefixer.makePrefixer("saltDialog");
129
- const Dialog = React.forwardRef(function Dialog2(props, ref) {
130
- var _a, _b;
131
- const {
132
- children,
133
- className,
134
- open = false,
135
- onOpenChange,
136
- status,
137
- disableDismiss,
138
- size = "medium",
139
- disableScrim,
140
- idProp,
141
- ...rest
142
- } = props;
143
- const targetWindow = window.useWindow();
144
- styles.useComponentCssInjection({
145
- testId: "salt-dialog",
146
- css: Dialog$1,
147
- window: targetWindow
148
- });
149
- const id = useId.useId(idProp);
150
- const currentbreakpoint = useResponsiveProp.useCurrentBreakpoint();
151
- const [showComponent, setShowComponent] = React.useState(false);
152
- const { context, floating, elements } = useFloatingUI.useFloatingUI({
153
- open: showComponent,
154
- onOpenChange
155
- });
156
- const { getFloatingProps } = react.useInteractions([
157
- react.useClick(context),
158
- react.useDismiss(context, { enabled: !disableDismiss })
159
- ]);
160
- const { Component: FloatingComponent } = useFloatingUI.useFloatingComponent();
161
- const floatingRef = useForkRef.useForkRef(floating, ref);
162
- React.useEffect(() => {
163
- if (open && !showComponent) {
164
- setShowComponent(true);
165
- }
166
- if (!open && showComponent) {
167
- const animate = setTimeout(() => {
168
- setShowComponent(false);
169
- }, 300);
170
- return () => clearTimeout(animate);
171
- }
172
- }, [open, showComponent, setShowComponent]);
173
- const contextValue = React.useMemo(() => ({ status, id }), [status, id]);
174
- return /* @__PURE__ */ jsxRuntime.jsx(DialogContext.DialogContext.Provider, {
175
- value: contextValue,
176
- children: /* @__PURE__ */ jsxRuntime.jsx(ConditionalScrimWrapper, {
177
- condition: showComponent && !disableScrim,
178
- children: /* @__PURE__ */ jsxRuntime.jsx(FloatingComponent, {
179
- open: showComponent,
180
- role: "dialog",
181
- "aria-modal": "true",
182
- "aria-labelledby": id,
183
- ref: floatingRef,
184
- width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
185
- height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
186
- focusManagerProps: {
187
- context
188
- },
189
- className: clsx.clsx(
190
- withBaseName(),
191
- withBaseName(size, currentbreakpoint),
192
- {
193
- [withBaseName("enterAnimation")]: open,
194
- [withBaseName("exitAnimation")]: !open,
195
- [withBaseName(status)]: status
129
+ const Dialog = React.forwardRef(
130
+ function Dialog2(props, ref) {
131
+ var _a, _b;
132
+ const {
133
+ children,
134
+ className,
135
+ open = false,
136
+ onOpenChange,
137
+ status,
138
+ disableDismiss,
139
+ size = "medium",
140
+ disableScrim,
141
+ idProp,
142
+ initialFocus,
143
+ ...rest
144
+ } = props;
145
+ const targetWindow = window.useWindow();
146
+ styles.useComponentCssInjection({
147
+ testId: "salt-dialog",
148
+ css: Dialog$1,
149
+ window: targetWindow
150
+ });
151
+ const id = useId.useId(idProp);
152
+ const currentbreakpoint = useResponsiveProp.useCurrentBreakpoint();
153
+ const [showComponent, setShowComponent] = React.useState(false);
154
+ const { context, floating, elements } = useFloatingUI.useFloatingUI({
155
+ open: showComponent,
156
+ onOpenChange
157
+ });
158
+ const { getFloatingProps } = react.useInteractions([
159
+ react.useClick(context),
160
+ react.useDismiss(context, { enabled: !disableDismiss })
161
+ ]);
162
+ const { Component: FloatingComponent } = useFloatingUI.useFloatingComponent();
163
+ const floatingRef = useForkRef.useForkRef(floating, ref);
164
+ React.useEffect(() => {
165
+ if (open && !showComponent) {
166
+ setShowComponent(true);
167
+ }
168
+ if (!open && showComponent) {
169
+ const animate = setTimeout(() => {
170
+ setShowComponent(false);
171
+ }, 300);
172
+ return () => clearTimeout(animate);
173
+ }
174
+ }, [open, showComponent, setShowComponent]);
175
+ const contextValue = React.useMemo(() => ({ status, id }), [status, id]);
176
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogContext.DialogContext.Provider, {
177
+ value: contextValue,
178
+ children: /* @__PURE__ */ jsxRuntime.jsx(ConditionalScrimWrapper, {
179
+ condition: showComponent && !disableScrim,
180
+ children: /* @__PURE__ */ jsxRuntime.jsx(FloatingComponent, {
181
+ open: showComponent,
182
+ role: "dialog",
183
+ "aria-modal": "true",
184
+ "aria-labelledby": id,
185
+ ref: floatingRef,
186
+ width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
187
+ height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
188
+ focusManagerProps: {
189
+ context,
190
+ initialFocus
196
191
  },
197
- className
198
- ),
199
- onAnimationEnd: () => {
200
- if (!open && showComponent) {
201
- setShowComponent(false);
202
- }
203
- },
204
- ...getFloatingProps(),
205
- ...rest,
206
- children
192
+ className: clsx.clsx(
193
+ withBaseName(),
194
+ withBaseName(size, currentbreakpoint),
195
+ {
196
+ [withBaseName("enterAnimation")]: open,
197
+ [withBaseName("exitAnimation")]: !open,
198
+ [withBaseName(status)]: status
199
+ },
200
+ className
201
+ ),
202
+ onAnimationEnd: () => {
203
+ if (!open && showComponent) {
204
+ setShowComponent(false);
205
+ }
206
+ },
207
+ ...getFloatingProps(),
208
+ ...rest,
209
+ children
210
+ })
207
211
  })
208
- })
209
- });
210
- });
212
+ });
213
+ }
214
+ );
211
215
 
212
216
  exports.ConditionalScrimWrapper = ConditionalScrimWrapper;
213
217
  exports.Dialog = Dialog;