@salt-ds/core 1.20.0 → 1.21.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 (429) hide show
  1. package/css/salt-core.css +470 -19
  2. package/dist-cjs/accordion/Accordion.js +75 -0
  3. package/dist-cjs/accordion/Accordion.js.map +1 -1
  4. package/dist-cjs/accordion/AccordionContext.js +79 -0
  5. package/dist-cjs/accordion/AccordionContext.js.map +1 -1
  6. package/dist-cjs/accordion/AccordionGroup.js +76 -1
  7. package/dist-cjs/accordion/AccordionGroup.js.map +1 -1
  8. package/dist-cjs/accordion/AccordionHeader.js +73 -0
  9. package/dist-cjs/accordion/AccordionHeader.js.map +1 -1
  10. package/dist-cjs/accordion/AccordionPanel.js +75 -0
  11. package/dist-cjs/accordion/AccordionPanel.js.map +1 -1
  12. package/dist-cjs/aria-announcer/useAriaAnnouncer.js +78 -0
  13. package/dist-cjs/aria-announcer/useAriaAnnouncer.js.map +1 -1
  14. package/dist-cjs/avatar/Avatar.js +74 -0
  15. package/dist-cjs/avatar/Avatar.js.map +1 -1
  16. package/dist-cjs/avatar/useAvatarImage.js +79 -0
  17. package/dist-cjs/avatar/useAvatarImage.js.map +1 -1
  18. package/dist-cjs/badge/Badge.js +75 -0
  19. package/dist-cjs/badge/Badge.js.map +1 -1
  20. package/dist-cjs/banner/Banner.js +76 -2
  21. package/dist-cjs/banner/Banner.js.map +1 -1
  22. package/dist-cjs/banner/BannerActions.js +76 -1
  23. package/dist-cjs/banner/BannerActions.js.map +1 -1
  24. package/dist-cjs/banner/BannerContent.js +76 -1
  25. package/dist-cjs/banner/BannerContent.js.map +1 -1
  26. package/dist-cjs/border-item/BorderItem.js +75 -1
  27. package/dist-cjs/border-item/BorderItem.js.map +1 -1
  28. package/dist-cjs/border-layout/BorderLayout.js +76 -0
  29. package/dist-cjs/border-layout/BorderLayout.js.map +1 -1
  30. package/dist-cjs/button/Button.js +76 -1
  31. package/dist-cjs/button/Button.js.map +1 -1
  32. package/dist-cjs/card/Card.js +75 -0
  33. package/dist-cjs/card/Card.js.map +1 -1
  34. package/dist-cjs/card/InteractableCard.js +75 -0
  35. package/dist-cjs/card/InteractableCard.js.map +1 -1
  36. package/dist-cjs/checkbox/Checkbox.js +73 -0
  37. package/dist-cjs/checkbox/Checkbox.js.map +1 -1
  38. package/dist-cjs/checkbox/CheckboxGroup.js +74 -0
  39. package/dist-cjs/checkbox/CheckboxGroup.js.map +1 -1
  40. package/dist-cjs/checkbox/CheckboxIcon.js +75 -0
  41. package/dist-cjs/checkbox/CheckboxIcon.js.map +1 -1
  42. package/dist-cjs/checkbox/internal/CheckboxGroupContext.js +79 -0
  43. package/dist-cjs/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  44. package/dist-cjs/combo-box/ComboBox.css.js +6 -0
  45. package/dist-cjs/combo-box/ComboBox.css.js.map +1 -0
  46. package/dist-cjs/combo-box/ComboBox.js +443 -0
  47. package/dist-cjs/combo-box/ComboBox.js.map +1 -0
  48. package/dist-cjs/combo-box/useComboBox.js +153 -0
  49. package/dist-cjs/combo-box/useComboBox.js.map +1 -0
  50. package/dist-cjs/dialog/Dialog.js +77 -3
  51. package/dist-cjs/dialog/Dialog.js.map +1 -1
  52. package/dist-cjs/dialog/DialogActions.js +76 -1
  53. package/dist-cjs/dialog/DialogActions.js.map +1 -1
  54. package/dist-cjs/dialog/DialogCloseButton.js +74 -1
  55. package/dist-cjs/dialog/DialogCloseButton.js.map +1 -1
  56. package/dist-cjs/dialog/DialogContent.js +76 -1
  57. package/dist-cjs/dialog/DialogContent.js.map +1 -1
  58. package/dist-cjs/dialog/DialogHeader.js +71 -3
  59. package/dist-cjs/dialog/DialogHeader.js.map +1 -1
  60. package/dist-cjs/drawer/Drawer.js +75 -2
  61. package/dist-cjs/drawer/Drawer.js.map +1 -1
  62. package/dist-cjs/drawer/DrawerCloseButton.js +74 -1
  63. package/dist-cjs/drawer/DrawerCloseButton.js.map +1 -1
  64. package/dist-cjs/dropdown/Dropdown.css.js +6 -0
  65. package/dist-cjs/dropdown/Dropdown.css.js.map +1 -0
  66. package/dist-cjs/dropdown/Dropdown.js +412 -0
  67. package/dist-cjs/dropdown/Dropdown.js.map +1 -0
  68. package/dist-cjs/file-drop-zone/FileDropZone.js +75 -0
  69. package/dist-cjs/file-drop-zone/FileDropZone.js.map +1 -1
  70. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js +76 -0
  71. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  72. package/dist-cjs/flex-item/FlexItem.js +79 -2
  73. package/dist-cjs/flex-item/FlexItem.js.map +1 -1
  74. package/dist-cjs/flex-layout/FlexLayout.js +79 -2
  75. package/dist-cjs/flex-layout/FlexLayout.js.map +1 -1
  76. package/dist-cjs/form-field/FormField.js +74 -0
  77. package/dist-cjs/form-field/FormField.js.map +1 -1
  78. package/dist-cjs/form-field/FormFieldHelperText.js +70 -2
  79. package/dist-cjs/form-field/FormFieldHelperText.js.map +1 -1
  80. package/dist-cjs/form-field/FormFieldLabel.js +69 -0
  81. package/dist-cjs/form-field/FormFieldLabel.js.map +1 -1
  82. package/dist-cjs/form-field-context/FormFieldContext.js +78 -0
  83. package/dist-cjs/form-field-context/FormFieldContext.js.map +1 -1
  84. package/dist-cjs/grid-item/GridItem.js +79 -2
  85. package/dist-cjs/grid-item/GridItem.js.map +1 -1
  86. package/dist-cjs/grid-layout/GridLayout.js +79 -2
  87. package/dist-cjs/grid-layout/GridLayout.js.map +1 -1
  88. package/dist-cjs/index.js +16 -0
  89. package/dist-cjs/index.js.map +1 -1
  90. package/dist-cjs/input/Input.js +73 -0
  91. package/dist-cjs/input/Input.js.map +1 -1
  92. package/dist-cjs/link/Link.js +70 -2
  93. package/dist-cjs/link/Link.js.map +1 -1
  94. package/dist-cjs/link-card/LinkCard.js +75 -0
  95. package/dist-cjs/link-card/LinkCard.js.map +1 -1
  96. package/dist-cjs/list-control/ListControlContext.js +121 -0
  97. package/dist-cjs/list-control/ListControlContext.js.map +1 -0
  98. package/dist-cjs/list-control/ListControlState.js +276 -0
  99. package/dist-cjs/list-control/ListControlState.js.map +1 -0
  100. package/dist-cjs/multiline-input/MultilineInput.js +73 -0
  101. package/dist-cjs/multiline-input/MultilineInput.js.map +1 -1
  102. package/dist-cjs/navigation-item/NavigationItem.js +77 -2
  103. package/dist-cjs/navigation-item/NavigationItem.js.map +1 -1
  104. package/dist-cjs/option/Option.css.js +6 -0
  105. package/dist-cjs/option/Option.css.js.map +1 -0
  106. package/dist-cjs/option/Option.js +178 -0
  107. package/dist-cjs/option/Option.js.map +1 -0
  108. package/dist-cjs/option/OptionGroup.css.js +6 -0
  109. package/dist-cjs/option/OptionGroup.css.js.map +1 -0
  110. package/dist-cjs/option/OptionGroup.js +123 -0
  111. package/dist-cjs/option/OptionGroup.js.map +1 -0
  112. package/dist-cjs/option/OptionList.css.js +6 -0
  113. package/dist-cjs/option/OptionList.css.js.map +1 -0
  114. package/dist-cjs/option/OptionList.js +118 -0
  115. package/dist-cjs/option/OptionList.js.map +1 -0
  116. package/dist-cjs/option/OptionListBase.js +113 -0
  117. package/dist-cjs/option/OptionListBase.js.map +1 -0
  118. package/dist-cjs/pagination/CompactInput.js +76 -2
  119. package/dist-cjs/pagination/CompactInput.js.map +1 -1
  120. package/dist-cjs/pagination/CompactPaginator.js +69 -2
  121. package/dist-cjs/pagination/CompactPaginator.js.map +1 -1
  122. package/dist-cjs/pagination/GoToInput.js +68 -3
  123. package/dist-cjs/pagination/GoToInput.js.map +1 -1
  124. package/dist-cjs/pagination/PageButton.js +77 -2
  125. package/dist-cjs/pagination/PageButton.js.map +1 -1
  126. package/dist-cjs/pagination/PageRanges.js +78 -2
  127. package/dist-cjs/pagination/PageRanges.js.map +1 -1
  128. package/dist-cjs/pagination/Pagination.js +76 -2
  129. package/dist-cjs/pagination/Pagination.js.map +1 -1
  130. package/dist-cjs/pagination/Paginator.js +75 -2
  131. package/dist-cjs/pagination/Paginator.js.map +1 -1
  132. package/dist-cjs/panel/Panel.js +77 -2
  133. package/dist-cjs/panel/Panel.js.map +1 -1
  134. package/dist-cjs/pill/Pill.js +74 -0
  135. package/dist-cjs/pill/Pill.js.map +1 -1
  136. package/dist-cjs/pill-input/PillInput.css.js +6 -0
  137. package/dist-cjs/pill-input/PillInput.css.js.map +1 -0
  138. package/dist-cjs/pill-input/PillInput.js +338 -0
  139. package/dist-cjs/pill-input/PillInput.js.map +1 -0
  140. package/dist-cjs/pill-input/useTruncatePills.js +83 -0
  141. package/dist-cjs/pill-input/useTruncatePills.js.map +1 -0
  142. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
  143. package/dist-cjs/progress/CircularProgress/CircularProgress.js +138 -14
  144. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  145. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  146. package/dist-cjs/progress/LinearProgress/LinearProgress.js +89 -8
  147. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  148. package/dist-cjs/radio-button/RadioButton.js +78 -4
  149. package/dist-cjs/radio-button/RadioButton.js.map +1 -1
  150. package/dist-cjs/radio-button/RadioButtonGroup.js +77 -3
  151. package/dist-cjs/radio-button/RadioButtonGroup.js.map +1 -1
  152. package/dist-cjs/radio-button/RadioButtonIcon.js +76 -0
  153. package/dist-cjs/radio-button/RadioButtonIcon.js.map +1 -1
  154. package/dist-cjs/radio-button/internal/RadioGroupContext.js +79 -0
  155. package/dist-cjs/radio-button/internal/RadioGroupContext.js.map +1 -1
  156. package/dist-cjs/salt-provider/SaltProvider.js +78 -3
  157. package/dist-cjs/salt-provider/SaltProvider.js.map +1 -1
  158. package/dist-cjs/scrim/Scrim.js +76 -1
  159. package/dist-cjs/scrim/Scrim.js.map +1 -1
  160. package/dist-cjs/spinner/Spinner.js +76 -2
  161. package/dist-cjs/spinner/Spinner.js.map +1 -1
  162. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js +78 -0
  163. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  164. package/dist-cjs/split-layout/SplitLayout.js +76 -2
  165. package/dist-cjs/split-layout/SplitLayout.js.map +1 -1
  166. package/dist-cjs/stack-layout/StackLayout.js +78 -2
  167. package/dist-cjs/stack-layout/StackLayout.js.map +1 -1
  168. package/dist-cjs/status-adornment/StatusAdornment.js +75 -0
  169. package/dist-cjs/status-adornment/StatusAdornment.js.map +1 -1
  170. package/dist-cjs/status-indicator/StatusIndicator.js +76 -2
  171. package/dist-cjs/status-indicator/StatusIndicator.js.map +1 -1
  172. package/dist-cjs/switch/Switch.js +75 -2
  173. package/dist-cjs/switch/Switch.js.map +1 -1
  174. package/dist-cjs/text/Text.js +77 -2
  175. package/dist-cjs/text/Text.js.map +1 -1
  176. package/dist-cjs/toast/Toast.js +74 -0
  177. package/dist-cjs/toast/Toast.js.map +1 -1
  178. package/dist-cjs/toast/ToastContent.js +75 -0
  179. package/dist-cjs/toast/ToastContent.js.map +1 -1
  180. package/dist-cjs/toggle-button/ToggleButton.js +73 -0
  181. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
  182. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +74 -0
  183. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  184. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js +78 -0
  185. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  186. package/dist-cjs/tooltip/Tooltip.js +75 -1
  187. package/dist-cjs/tooltip/Tooltip.js.map +1 -1
  188. package/dist-cjs/tooltip/TooltipBase.js +75 -2
  189. package/dist-cjs/tooltip/TooltipBase.js.map +1 -1
  190. package/dist-cjs/tooltip/useAriaAnnounce.js +77 -0
  191. package/dist-cjs/tooltip/useAriaAnnounce.js.map +1 -1
  192. package/dist-cjs/tooltip/useTooltip.js +78 -0
  193. package/dist-cjs/tooltip/useTooltip.js.map +1 -1
  194. package/dist-cjs/utils/ownerWindow.js.map +1 -1
  195. package/dist-cjs/utils/useEventCallback.js +20 -0
  196. package/dist-cjs/utils/useEventCallback.js.map +1 -0
  197. package/dist-cjs/utils/useResizeObserver.js +29 -0
  198. package/dist-cjs/utils/useResizeObserver.js.map +1 -0
  199. package/dist-cjs/utils/useValueEffect.js +124 -0
  200. package/dist-cjs/utils/useValueEffect.js.map +1 -0
  201. package/dist-cjs/viewport/ViewportProvider.js +78 -0
  202. package/dist-cjs/viewport/ViewportProvider.js.map +1 -1
  203. package/dist-es/accordion/Accordion.js +75 -0
  204. package/dist-es/accordion/Accordion.js.map +1 -1
  205. package/dist-es/accordion/AccordionContext.js +79 -0
  206. package/dist-es/accordion/AccordionContext.js.map +1 -1
  207. package/dist-es/accordion/AccordionGroup.js +76 -1
  208. package/dist-es/accordion/AccordionGroup.js.map +1 -1
  209. package/dist-es/accordion/AccordionHeader.js +73 -0
  210. package/dist-es/accordion/AccordionHeader.js.map +1 -1
  211. package/dist-es/accordion/AccordionPanel.js +75 -0
  212. package/dist-es/accordion/AccordionPanel.js.map +1 -1
  213. package/dist-es/aria-announcer/useAriaAnnouncer.js +78 -0
  214. package/dist-es/aria-announcer/useAriaAnnouncer.js.map +1 -1
  215. package/dist-es/avatar/Avatar.js +74 -0
  216. package/dist-es/avatar/Avatar.js.map +1 -1
  217. package/dist-es/avatar/useAvatarImage.js +79 -0
  218. package/dist-es/avatar/useAvatarImage.js.map +1 -1
  219. package/dist-es/badge/Badge.js +75 -0
  220. package/dist-es/badge/Badge.js.map +1 -1
  221. package/dist-es/banner/Banner.js +76 -2
  222. package/dist-es/banner/Banner.js.map +1 -1
  223. package/dist-es/banner/BannerActions.js +76 -1
  224. package/dist-es/banner/BannerActions.js.map +1 -1
  225. package/dist-es/banner/BannerContent.js +76 -1
  226. package/dist-es/banner/BannerContent.js.map +1 -1
  227. package/dist-es/border-item/BorderItem.js +75 -1
  228. package/dist-es/border-item/BorderItem.js.map +1 -1
  229. package/dist-es/border-layout/BorderLayout.js +76 -0
  230. package/dist-es/border-layout/BorderLayout.js.map +1 -1
  231. package/dist-es/button/Button.js +76 -1
  232. package/dist-es/button/Button.js.map +1 -1
  233. package/dist-es/card/Card.js +75 -0
  234. package/dist-es/card/Card.js.map +1 -1
  235. package/dist-es/card/InteractableCard.js +75 -0
  236. package/dist-es/card/InteractableCard.js.map +1 -1
  237. package/dist-es/checkbox/Checkbox.js +73 -0
  238. package/dist-es/checkbox/Checkbox.js.map +1 -1
  239. package/dist-es/checkbox/CheckboxGroup.js +74 -0
  240. package/dist-es/checkbox/CheckboxGroup.js.map +1 -1
  241. package/dist-es/checkbox/CheckboxIcon.js +75 -0
  242. package/dist-es/checkbox/CheckboxIcon.js.map +1 -1
  243. package/dist-es/checkbox/internal/CheckboxGroupContext.js +79 -0
  244. package/dist-es/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  245. package/dist-es/combo-box/ComboBox.css.js +4 -0
  246. package/dist-es/combo-box/ComboBox.css.js.map +1 -0
  247. package/dist-es/combo-box/ComboBox.js +439 -0
  248. package/dist-es/combo-box/ComboBox.js.map +1 -0
  249. package/dist-es/combo-box/useComboBox.js +149 -0
  250. package/dist-es/combo-box/useComboBox.js.map +1 -0
  251. package/dist-es/dialog/Dialog.js +77 -3
  252. package/dist-es/dialog/Dialog.js.map +1 -1
  253. package/dist-es/dialog/DialogActions.js +76 -1
  254. package/dist-es/dialog/DialogActions.js.map +1 -1
  255. package/dist-es/dialog/DialogCloseButton.js +74 -1
  256. package/dist-es/dialog/DialogCloseButton.js.map +1 -1
  257. package/dist-es/dialog/DialogContent.js +76 -1
  258. package/dist-es/dialog/DialogContent.js.map +1 -1
  259. package/dist-es/dialog/DialogHeader.js +71 -3
  260. package/dist-es/dialog/DialogHeader.js.map +1 -1
  261. package/dist-es/drawer/Drawer.js +75 -2
  262. package/dist-es/drawer/Drawer.js.map +1 -1
  263. package/dist-es/drawer/DrawerCloseButton.js +74 -1
  264. package/dist-es/drawer/DrawerCloseButton.js.map +1 -1
  265. package/dist-es/dropdown/Dropdown.css.js +4 -0
  266. package/dist-es/dropdown/Dropdown.css.js.map +1 -0
  267. package/dist-es/dropdown/Dropdown.js +408 -0
  268. package/dist-es/dropdown/Dropdown.js.map +1 -0
  269. package/dist-es/file-drop-zone/FileDropZone.js +75 -0
  270. package/dist-es/file-drop-zone/FileDropZone.js.map +1 -1
  271. package/dist-es/file-drop-zone/FileDropZoneTrigger.js +76 -0
  272. package/dist-es/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  273. package/dist-es/flex-item/FlexItem.js +79 -2
  274. package/dist-es/flex-item/FlexItem.js.map +1 -1
  275. package/dist-es/flex-layout/FlexLayout.js +79 -2
  276. package/dist-es/flex-layout/FlexLayout.js.map +1 -1
  277. package/dist-es/form-field/FormField.js +74 -0
  278. package/dist-es/form-field/FormField.js.map +1 -1
  279. package/dist-es/form-field/FormFieldHelperText.js +70 -2
  280. package/dist-es/form-field/FormFieldHelperText.js.map +1 -1
  281. package/dist-es/form-field/FormFieldLabel.js +69 -0
  282. package/dist-es/form-field/FormFieldLabel.js.map +1 -1
  283. package/dist-es/form-field-context/FormFieldContext.js +78 -0
  284. package/dist-es/form-field-context/FormFieldContext.js.map +1 -1
  285. package/dist-es/grid-item/GridItem.js +79 -2
  286. package/dist-es/grid-item/GridItem.js.map +1 -1
  287. package/dist-es/grid-layout/GridLayout.js +79 -2
  288. package/dist-es/grid-layout/GridLayout.js.map +1 -1
  289. package/dist-es/index.js +8 -0
  290. package/dist-es/index.js.map +1 -1
  291. package/dist-es/input/Input.js +73 -0
  292. package/dist-es/input/Input.js.map +1 -1
  293. package/dist-es/link/Link.js +70 -2
  294. package/dist-es/link/Link.js.map +1 -1
  295. package/dist-es/link-card/LinkCard.js +75 -0
  296. package/dist-es/link-card/LinkCard.js.map +1 -1
  297. package/dist-es/list-control/ListControlContext.js +116 -0
  298. package/dist-es/list-control/ListControlContext.js.map +1 -0
  299. package/dist-es/list-control/ListControlState.js +271 -0
  300. package/dist-es/list-control/ListControlState.js.map +1 -0
  301. package/dist-es/multiline-input/MultilineInput.js +73 -0
  302. package/dist-es/multiline-input/MultilineInput.js.map +1 -1
  303. package/dist-es/navigation-item/NavigationItem.js +77 -2
  304. package/dist-es/navigation-item/NavigationItem.js.map +1 -1
  305. package/dist-es/option/Option.css.js +4 -0
  306. package/dist-es/option/Option.css.js.map +1 -0
  307. package/dist-es/option/Option.js +174 -0
  308. package/dist-es/option/Option.js.map +1 -0
  309. package/dist-es/option/OptionGroup.css.js +4 -0
  310. package/dist-es/option/OptionGroup.css.js.map +1 -0
  311. package/dist-es/option/OptionGroup.js +119 -0
  312. package/dist-es/option/OptionGroup.js.map +1 -0
  313. package/dist-es/option/OptionList.css.js +4 -0
  314. package/dist-es/option/OptionList.css.js.map +1 -0
  315. package/dist-es/option/OptionList.js +114 -0
  316. package/dist-es/option/OptionList.js.map +1 -0
  317. package/dist-es/option/OptionListBase.js +109 -0
  318. package/dist-es/option/OptionListBase.js.map +1 -0
  319. package/dist-es/pagination/CompactInput.js +76 -2
  320. package/dist-es/pagination/CompactInput.js.map +1 -1
  321. package/dist-es/pagination/CompactPaginator.js +69 -2
  322. package/dist-es/pagination/CompactPaginator.js.map +1 -1
  323. package/dist-es/pagination/GoToInput.js +68 -3
  324. package/dist-es/pagination/GoToInput.js.map +1 -1
  325. package/dist-es/pagination/PageButton.js +77 -2
  326. package/dist-es/pagination/PageButton.js.map +1 -1
  327. package/dist-es/pagination/PageRanges.js +78 -2
  328. package/dist-es/pagination/PageRanges.js.map +1 -1
  329. package/dist-es/pagination/Pagination.js +76 -2
  330. package/dist-es/pagination/Pagination.js.map +1 -1
  331. package/dist-es/pagination/Paginator.js +75 -2
  332. package/dist-es/pagination/Paginator.js.map +1 -1
  333. package/dist-es/panel/Panel.js +77 -2
  334. package/dist-es/panel/Panel.js.map +1 -1
  335. package/dist-es/pill/Pill.js +74 -0
  336. package/dist-es/pill/Pill.js.map +1 -1
  337. package/dist-es/pill-input/PillInput.css.js +4 -0
  338. package/dist-es/pill-input/PillInput.css.js.map +1 -0
  339. package/dist-es/pill-input/PillInput.js +334 -0
  340. package/dist-es/pill-input/PillInput.js.map +1 -0
  341. package/dist-es/pill-input/useTruncatePills.js +79 -0
  342. package/dist-es/pill-input/useTruncatePills.js.map +1 -0
  343. package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
  344. package/dist-es/progress/CircularProgress/CircularProgress.js +138 -14
  345. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  346. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  347. package/dist-es/progress/LinearProgress/LinearProgress.js +89 -8
  348. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  349. package/dist-es/radio-button/RadioButton.js +78 -4
  350. package/dist-es/radio-button/RadioButton.js.map +1 -1
  351. package/dist-es/radio-button/RadioButtonGroup.js +77 -3
  352. package/dist-es/radio-button/RadioButtonGroup.js.map +1 -1
  353. package/dist-es/radio-button/RadioButtonIcon.js +76 -0
  354. package/dist-es/radio-button/RadioButtonIcon.js.map +1 -1
  355. package/dist-es/radio-button/internal/RadioGroupContext.js +79 -0
  356. package/dist-es/radio-button/internal/RadioGroupContext.js.map +1 -1
  357. package/dist-es/salt-provider/SaltProvider.js +78 -3
  358. package/dist-es/salt-provider/SaltProvider.js.map +1 -1
  359. package/dist-es/scrim/Scrim.js +76 -1
  360. package/dist-es/scrim/Scrim.js.map +1 -1
  361. package/dist-es/spinner/Spinner.js +76 -2
  362. package/dist-es/spinner/Spinner.js.map +1 -1
  363. package/dist-es/spinner/svgSpinners/SpinnerSVG.js +78 -0
  364. package/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  365. package/dist-es/split-layout/SplitLayout.js +76 -2
  366. package/dist-es/split-layout/SplitLayout.js.map +1 -1
  367. package/dist-es/stack-layout/StackLayout.js +78 -2
  368. package/dist-es/stack-layout/StackLayout.js.map +1 -1
  369. package/dist-es/status-adornment/StatusAdornment.js +75 -0
  370. package/dist-es/status-adornment/StatusAdornment.js.map +1 -1
  371. package/dist-es/status-indicator/StatusIndicator.js +76 -2
  372. package/dist-es/status-indicator/StatusIndicator.js.map +1 -1
  373. package/dist-es/switch/Switch.js +75 -2
  374. package/dist-es/switch/Switch.js.map +1 -1
  375. package/dist-es/text/Text.js +77 -2
  376. package/dist-es/text/Text.js.map +1 -1
  377. package/dist-es/toast/Toast.js +74 -0
  378. package/dist-es/toast/Toast.js.map +1 -1
  379. package/dist-es/toast/ToastContent.js +75 -0
  380. package/dist-es/toast/ToastContent.js.map +1 -1
  381. package/dist-es/toggle-button/ToggleButton.js +73 -0
  382. package/dist-es/toggle-button/ToggleButton.js.map +1 -1
  383. package/dist-es/toggle-button-group/ToggleButtonGroup.js +74 -0
  384. package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  385. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js +78 -0
  386. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  387. package/dist-es/tooltip/Tooltip.js +75 -1
  388. package/dist-es/tooltip/Tooltip.js.map +1 -1
  389. package/dist-es/tooltip/TooltipBase.js +75 -2
  390. package/dist-es/tooltip/TooltipBase.js.map +1 -1
  391. package/dist-es/tooltip/useAriaAnnounce.js +77 -0
  392. package/dist-es/tooltip/useAriaAnnounce.js.map +1 -1
  393. package/dist-es/tooltip/useTooltip.js +78 -0
  394. package/dist-es/tooltip/useTooltip.js.map +1 -1
  395. package/dist-es/utils/ownerWindow.js.map +1 -1
  396. package/dist-es/utils/useEventCallback.js +16 -0
  397. package/dist-es/utils/useEventCallback.js.map +1 -0
  398. package/dist-es/utils/useResizeObserver.js +25 -0
  399. package/dist-es/utils/useResizeObserver.js.map +1 -0
  400. package/dist-es/utils/useValueEffect.js +120 -0
  401. package/dist-es/utils/useValueEffect.js.map +1 -0
  402. package/dist-es/viewport/ViewportProvider.js +78 -0
  403. package/dist-es/viewport/ViewportProvider.js.map +1 -1
  404. package/dist-types/combo-box/ComboBox.d.ts +17 -0
  405. package/dist-types/combo-box/index.d.ts +1 -0
  406. package/dist-types/combo-box/useComboBox.d.ts +30 -0
  407. package/dist-types/dialog/DialogHeader.d.ts +2 -4
  408. package/dist-types/dropdown/Dropdown.d.ts +99 -0
  409. package/dist-types/dropdown/index.d.ts +1 -0
  410. package/dist-types/index.d.ts +4 -0
  411. package/dist-types/list-control/ListControlContext.d.ts +21 -0
  412. package/dist-types/list-control/ListControlState.d.ts +70 -0
  413. package/dist-types/list-control/index.d.ts +1 -0
  414. package/dist-types/option/Option.d.ts +16 -0
  415. package/dist-types/option/OptionGroup.d.ts +12 -0
  416. package/dist-types/option/OptionList.d.ts +5 -0
  417. package/dist-types/option/OptionListBase.d.ts +4 -0
  418. package/dist-types/option/index.d.ts +2 -0
  419. package/dist-types/pill-input/PillInput.d.ts +48 -0
  420. package/dist-types/pill-input/index.d.ts +1 -0
  421. package/dist-types/pill-input/useTruncatePills.d.ts +8 -0
  422. package/dist-types/progress/CircularProgress/CircularProgress.d.ts +5 -0
  423. package/dist-types/progress/LinearProgress/LinearProgress.d.ts +5 -0
  424. package/dist-types/utils/index.d.ts +3 -0
  425. package/dist-types/utils/ownerWindow.d.ts +1 -1
  426. package/dist-types/utils/useEventCallback.d.ts +4 -0
  427. package/dist-types/utils/useResizeObserver.d.ts +6 -0
  428. package/dist-types/utils/useValueEffect.d.ts +4 -0
  429. package/package.json +1 -1
@@ -8,8 +8,83 @@ import { makePrefixer } from '../utils/makePrefixer.js';
8
8
  import '../utils/useFloatingUI/useFloatingUI.js';
9
9
  import '../utils/useId.js';
10
10
  import '../viewport/ViewportProvider.js';
11
+ import '../accordion/AccordionGroup.js';
12
+ import '../accordion/AccordionPanel.js';
13
+ import '../accordion/Accordion.js';
14
+ import '../accordion/AccordionHeader.js';
15
+ import '../aria-announcer/AriaAnnouncerContext.js';
16
+ import '../avatar/Avatar.js';
17
+ import '../badge/Badge.js';
18
+ import '../banner/Banner.js';
19
+ import '../banner/BannerActions.js';
20
+ import '../banner/BannerContent.js';
21
+ import '../border-item/BorderItem.js';
22
+ import '../border-layout/BorderLayout.js';
23
+ import '../button/Button.js';
24
+ import '../card/Card.js';
25
+ import '../card/InteractableCard.js';
26
+ import './Checkbox.js';
27
+ import './CheckboxGroup.js';
11
28
  import css_248z from './CheckboxIcon.css.js';
12
29
  import { SuccessSmallSolidIcon, SuccessSolidIcon, SuccessSmallIcon, SuccessIcon } from '@salt-ds/icons';
30
+ import '../combo-box/ComboBox.js';
31
+ import '../dialog/Dialog.js';
32
+ import '../status-indicator/StatusIndicator.js';
33
+ import '../text/Text.js';
34
+ import '../text/Display.js';
35
+ import '../text/Headings.js';
36
+ import '../text/Label.js';
37
+ import '../text/TextNotation.js';
38
+ import '../text/TextAction.js';
39
+ import '../dialog/DialogContext.js';
40
+ import '../dialog/DialogActions.js';
41
+ import '../dialog/DialogContent.js';
42
+ import '../dialog/DialogCloseButton.js';
43
+ import '../drawer/Drawer.js';
44
+ import '../drawer/DrawerCloseButton.js';
45
+ import '../dropdown/Dropdown.js';
46
+ import '../file-drop-zone/FileDropZone.js';
47
+ import '../file-drop-zone/FileDropZoneIcon.js';
48
+ import '../file-drop-zone/FileDropZoneTrigger.js';
49
+ import '../flex-item/FlexItem.js';
50
+ import '../flex-layout/FlexLayout.js';
51
+ import '../flow-layout/FlowLayout.js';
52
+ import '../form-field/FormField.js';
53
+ import '../form-field-context/FormFieldContext.js';
54
+ import '../grid-item/GridItem.js';
55
+ import '../grid-layout/GridLayout.js';
56
+ import '../input/Input.js';
57
+ import '../link/Link.js';
58
+ import '../link-card/LinkCard.js';
59
+ import '../list-control/ListControlContext.js';
60
+ import '../multiline-input/MultilineInput.js';
61
+ import '../navigation-item/NavigationItem.js';
62
+ import '../option/Option.js';
63
+ import '../option/OptionGroup.js';
64
+ import '../pagination/Pagination.js';
65
+ import '../pagination/Paginator.js';
66
+ import '../pagination/CompactInput.js';
67
+ import '../pagination/CompactPaginator.js';
68
+ import '../pagination/GoToInput.js';
69
+ import '../panel/Panel.js';
70
+ import '../pill/Pill.js';
71
+ import '../progress/CircularProgress/CircularProgress.js';
72
+ import '../progress/LinearProgress/LinearProgress.js';
73
+ import '../radio-button/RadioButton.js';
74
+ import '../radio-button/RadioButtonGroup.js';
75
+ import '../scrim/Scrim.js';
76
+ import '../spinner/Spinner.js';
77
+ import '../stack-layout/StackLayout.js';
78
+ import '../status-adornment/StatusAdornment.js';
79
+ import '../toast/Toast.js';
80
+ import '../toast/ToastContent.js';
81
+ import '../split-layout/SplitLayout.js';
82
+ import '../switch/Switch.js';
83
+ import '../toggle-button/ToggleButton.js';
84
+ import '../toggle-button-group/ToggleButtonGroup.js';
85
+ import '../toggle-button-group/ToggleButtonGroupContext.js';
86
+ import '../tooltip/Tooltip.js';
87
+ import '@floating-ui/react';
13
88
 
14
89
  const withBaseName = makePrefixer("saltCheckboxIcon");
15
90
  function CheckedIcon(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxIcon.js","sources":["../src/checkbox/CheckboxIcon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useDensity } from \"../salt-provider\";\nimport { AdornmentValidationStatus } from \"../status-adornment\";\nimport { makePrefixer } from \"../utils\";\nimport checkboxIconCss from \"./CheckboxIcon.css\";\nimport {\n IconProps,\n SuccessIcon,\n SuccessSmallIcon,\n SuccessSmallSolidIcon,\n SuccessSolidIcon,\n} from \"@salt-ds/icons\";\n\nexport interface CheckboxIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n /**\n * @deprecated Use validationStatus instead\n */\n error?: boolean;\n indeterminate?: boolean;\n readOnly?: boolean;\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst withBaseName = makePrefixer(\"saltCheckboxIcon\");\n\nfunction CheckedIcon(props: IconProps) {\n const density = useDensity();\n return density === \"high\" ? (\n <SuccessSmallSolidIcon {...props} />\n ) : (\n <SuccessSolidIcon {...props} />\n );\n}\n\nfunction CheckedReadOnlyIcon(props: IconProps) {\n const density = useDensity();\n return density === \"high\" ? (\n <SuccessSmallIcon {...props} />\n ) : (\n <SuccessIcon {...props} />\n );\n}\n\nexport const CheckboxIcon = ({\n checked = false,\n className,\n disabled,\n error,\n indeterminate,\n validationStatus,\n readOnly,\n}: CheckboxIconProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-icon\",\n css: checkboxIconCss,\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(\"error\")]: error,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n [withBaseName(\"indeterminate\")]: indeterminate,\n [withBaseName(\"readOnly\")]: readOnly,\n },\n className\n )}\n >\n {checked && !indeterminate && !readOnly && (\n <CheckedIcon className={withBaseName(\"icon\")} />\n )}\n {checked && !indeterminate && readOnly && (\n <CheckedReadOnlyIcon className={withBaseName(\"icon\")} />\n )}\n </div>\n );\n};\n"],"names":["checkboxIconCss"],"mappings":";;;;;;;;;;;;;AA4BA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA,CAAA;AAEpD,SAAS,YAAY,KAAkB,EAAA;AACrC,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAO,OAAA,OAAA,KAAY,yBAChB,GAAA,CAAA,qBAAA,EAAA;AAAA,IAAuB,GAAG,KAAA;AAAA,GAAO,oBAEjC,GAAA,CAAA,gBAAA,EAAA;AAAA,IAAkB,GAAG,KAAA;AAAA,GAAO,CAAA,CAAA;AAEjC,CAAA;AAEA,SAAS,oBAAoB,KAAkB,EAAA;AAC7C,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAO,OAAA,OAAA,KAAY,yBAChB,GAAA,CAAA,gBAAA,EAAA;AAAA,IAAkB,GAAG,KAAA;AAAA,GAAO,oBAE5B,GAAA,CAAA,WAAA,EAAA;AAAA,IAAa,GAAG,KAAA;AAAA,GAAO,CAAA,CAAA;AAE5B,CAAA;AAEO,MAAM,eAAe,CAAC;AAAA,EAC3B,OAAU,GAAA,KAAA;AAAA,EACV,SAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,QAAA;AACF,CAAsC,KAAA;AACpC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAW,EAAA,IAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb;AAAA,QACE,CAAC,YAAa,CAAA,SAAS,CAAI,GAAA,OAAA;AAAA,QAC3B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,QACzB,CAAC,YAAA,CAAa,gBAAoB,IAAA,EAAE,CAAI,GAAA,gBAAA;AAAA,QACxC,CAAC,YAAa,CAAA,eAAe,CAAI,GAAA,aAAA;AAAA,QACjC,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,OAC9B;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IAEC,QAAA,EAAA;AAAA,MAAA,OAAA,IAAW,CAAC,aAAA,IAAiB,CAAC,QAAA,oBAC5B,GAAA,CAAA,WAAA,EAAA;AAAA,QAAY,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,OAAG,CAAA;AAAA,MAE/C,OAAW,IAAA,CAAC,aAAiB,IAAA,QAAA,oBAC3B,GAAA,CAAA,mBAAA,EAAA;AAAA,QAAoB,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,OAAG,CAAA;AAAA,KAAA;AAAA,GAE1D,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CheckboxIcon.js","sources":["../src/checkbox/CheckboxIcon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useDensity } from \"../salt-provider\";\nimport { AdornmentValidationStatus } from \"../status-adornment\";\nimport { makePrefixer } from \"../utils\";\nimport checkboxIconCss from \"./CheckboxIcon.css\";\nimport {\n IconProps,\n SuccessIcon,\n SuccessSmallIcon,\n SuccessSmallSolidIcon,\n SuccessSolidIcon,\n} from \"@salt-ds/icons\";\n\nexport interface CheckboxIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n /**\n * @deprecated Use validationStatus instead\n */\n error?: boolean;\n indeterminate?: boolean;\n readOnly?: boolean;\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst withBaseName = makePrefixer(\"saltCheckboxIcon\");\n\nfunction CheckedIcon(props: IconProps) {\n const density = useDensity();\n return density === \"high\" ? (\n <SuccessSmallSolidIcon {...props} />\n ) : (\n <SuccessSolidIcon {...props} />\n );\n}\n\nfunction CheckedReadOnlyIcon(props: IconProps) {\n const density = useDensity();\n return density === \"high\" ? (\n <SuccessSmallIcon {...props} />\n ) : (\n <SuccessIcon {...props} />\n );\n}\n\nexport const CheckboxIcon = ({\n checked = false,\n className,\n disabled,\n error,\n indeterminate,\n validationStatus,\n readOnly,\n}: CheckboxIconProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-icon\",\n css: checkboxIconCss,\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(\"error\")]: error,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n [withBaseName(\"indeterminate\")]: indeterminate,\n [withBaseName(\"readOnly\")]: readOnly,\n },\n className\n )}\n >\n {checked && !indeterminate && !readOnly && (\n <CheckedIcon className={withBaseName(\"icon\")} />\n )}\n {checked && !indeterminate && readOnly && (\n <CheckedReadOnlyIcon className={withBaseName(\"icon\")} />\n )}\n </div>\n );\n};\n"],"names":["checkboxIconCss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA,CAAA;AAEpD,SAAS,YAAY,KAAkB,EAAA;AACrC,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAO,OAAA,OAAA,KAAY,yBAChB,GAAA,CAAA,qBAAA,EAAA;AAAA,IAAuB,GAAG,KAAA;AAAA,GAAO,oBAEjC,GAAA,CAAA,gBAAA,EAAA;AAAA,IAAkB,GAAG,KAAA;AAAA,GAAO,CAAA,CAAA;AAEjC,CAAA;AAEA,SAAS,oBAAoB,KAAkB,EAAA;AAC7C,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAO,OAAA,OAAA,KAAY,yBAChB,GAAA,CAAA,gBAAA,EAAA;AAAA,IAAkB,GAAG,KAAA;AAAA,GAAO,oBAE5B,GAAA,CAAA,WAAA,EAAA;AAAA,IAAa,GAAG,KAAA;AAAA,GAAO,CAAA,CAAA;AAE5B,CAAA;AAEO,MAAM,eAAe,CAAC;AAAA,EAC3B,OAAU,GAAA,KAAA;AAAA,EACV,SAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,QAAA;AACF,CAAsC,KAAA;AACpC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAW,EAAA,IAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb;AAAA,QACE,CAAC,YAAa,CAAA,SAAS,CAAI,GAAA,OAAA;AAAA,QAC3B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,QACzB,CAAC,YAAA,CAAa,gBAAoB,IAAA,EAAE,CAAI,GAAA,gBAAA;AAAA,QACxC,CAAC,YAAa,CAAA,eAAe,CAAI,GAAA,aAAA;AAAA,QACjC,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,OAC9B;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IAEC,QAAA,EAAA;AAAA,MAAA,OAAA,IAAW,CAAC,aAAA,IAAiB,CAAC,QAAA,oBAC5B,GAAA,CAAA,WAAA,EAAA;AAAA,QAAY,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,OAAG,CAAA;AAAA,MAE/C,OAAW,IAAA,CAAC,aAAiB,IAAA,QAAA,oBAC3B,GAAA,CAAA,mBAAA,EAAA;AAAA,QAAoB,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,OAAG,CAAA;AAAA,KAAA;AAAA,GAE1D,CAAA,CAAA;AAEJ;;;;"}
@@ -5,6 +5,85 @@ import '../../utils/useId.js';
5
5
  import '../../salt-provider/SaltProvider.js';
6
6
  import '../../viewport/ViewportProvider.js';
7
7
  import 'clsx';
8
+ import '../../accordion/AccordionGroup.js';
9
+ import '../../accordion/AccordionPanel.js';
10
+ import '../../accordion/Accordion.js';
11
+ import '../../accordion/AccordionHeader.js';
12
+ import '../../aria-announcer/AriaAnnouncerContext.js';
13
+ import 'react/jsx-runtime';
14
+ import '../../avatar/Avatar.js';
15
+ import '../../badge/Badge.js';
16
+ import '../../banner/Banner.js';
17
+ import '../../banner/BannerActions.js';
18
+ import '../../banner/BannerContent.js';
19
+ import '../../border-item/BorderItem.js';
20
+ import '../../border-layout/BorderLayout.js';
21
+ import '../../button/Button.js';
22
+ import '../../card/Card.js';
23
+ import '../../card/InteractableCard.js';
24
+ import '../Checkbox.js';
25
+ import '../CheckboxGroup.js';
26
+ import '@salt-ds/styles';
27
+ import '@salt-ds/window';
28
+ import '@salt-ds/icons';
29
+ import '../../combo-box/ComboBox.js';
30
+ import '../../dialog/Dialog.js';
31
+ import '../../status-indicator/StatusIndicator.js';
32
+ import '../../text/Text.js';
33
+ import '../../text/Display.js';
34
+ import '../../text/Headings.js';
35
+ import '../../text/Label.js';
36
+ import '../../text/TextNotation.js';
37
+ import '../../text/TextAction.js';
38
+ import '../../dialog/DialogContext.js';
39
+ import '../../dialog/DialogActions.js';
40
+ import '../../dialog/DialogContent.js';
41
+ import '../../dialog/DialogCloseButton.js';
42
+ import '../../drawer/Drawer.js';
43
+ import '../../drawer/DrawerCloseButton.js';
44
+ import '../../dropdown/Dropdown.js';
45
+ import '../../file-drop-zone/FileDropZone.js';
46
+ import '../../file-drop-zone/FileDropZoneIcon.js';
47
+ import '../../file-drop-zone/FileDropZoneTrigger.js';
48
+ import '../../flex-item/FlexItem.js';
49
+ import '../../flex-layout/FlexLayout.js';
50
+ import '../../flow-layout/FlowLayout.js';
51
+ import '../../form-field/FormField.js';
52
+ import '../../form-field-context/FormFieldContext.js';
53
+ import '../../grid-item/GridItem.js';
54
+ import '../../grid-layout/GridLayout.js';
55
+ import '../../input/Input.js';
56
+ import '../../link/Link.js';
57
+ import '../../link-card/LinkCard.js';
58
+ import '../../list-control/ListControlContext.js';
59
+ import '../../multiline-input/MultilineInput.js';
60
+ import '../../navigation-item/NavigationItem.js';
61
+ import '../../option/Option.js';
62
+ import '../../option/OptionGroup.js';
63
+ import '../../pagination/Pagination.js';
64
+ import '../../pagination/Paginator.js';
65
+ import '../../pagination/CompactInput.js';
66
+ import '../../pagination/CompactPaginator.js';
67
+ import '../../pagination/GoToInput.js';
68
+ import '../../panel/Panel.js';
69
+ import '../../pill/Pill.js';
70
+ import '../../progress/CircularProgress/CircularProgress.js';
71
+ import '../../progress/LinearProgress/LinearProgress.js';
72
+ import '../../radio-button/RadioButton.js';
73
+ import '../../radio-button/RadioButtonGroup.js';
74
+ import '../../scrim/Scrim.js';
75
+ import '../../spinner/Spinner.js';
76
+ import '../../stack-layout/StackLayout.js';
77
+ import '../../status-adornment/StatusAdornment.js';
78
+ import '../../toast/Toast.js';
79
+ import '../../toast/ToastContent.js';
80
+ import '../../split-layout/SplitLayout.js';
81
+ import '../../switch/Switch.js';
82
+ import '../../toggle-button/ToggleButton.js';
83
+ import '../../toggle-button-group/ToggleButtonGroup.js';
84
+ import '../../toggle-button-group/ToggleButtonGroupContext.js';
85
+ import '../../tooltip/Tooltip.js';
86
+ import '@floating-ui/react';
8
87
 
9
88
  const CheckboxGroupContext = createContext(
10
89
  "CheckboxGroupContext",
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxGroupContext.js","sources":["../src/checkbox/internal/CheckboxGroupContext.ts"],"sourcesContent":["import { AdornmentValidationStatus } from \"../../status-adornment\";\nimport { CheckboxGroupProps } from \"../CheckboxGroup\";\nimport { createContext } from \"../../utils\";\n\nexport interface CheckboxGroupState {\n disabled?: boolean;\n name?: CheckboxGroupProps[\"name\"];\n onChange?: CheckboxGroupProps[\"onChange\"];\n checkedValues?: CheckboxGroupProps[\"checkedValues\"];\n readOnly?: boolean;\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst CheckboxGroupContext = createContext<CheckboxGroupState | undefined>(\n \"CheckboxGroupContext\",\n undefined\n);\n\nexport { CheckboxGroupContext };\n"],"names":[],"mappings":";;;;;;;;AAaA,MAAM,oBAAuB,GAAA,aAAA;AAAA,EAC3B,sBAAA;AAAA,EACA,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"CheckboxGroupContext.js","sources":["../src/checkbox/internal/CheckboxGroupContext.ts"],"sourcesContent":["import { AdornmentValidationStatus } from \"../../status-adornment\";\nimport { CheckboxGroupProps } from \"../CheckboxGroup\";\nimport { createContext } from \"../../utils\";\n\nexport interface CheckboxGroupState {\n disabled?: boolean;\n name?: CheckboxGroupProps[\"name\"];\n onChange?: CheckboxGroupProps[\"onChange\"];\n checkedValues?: CheckboxGroupProps[\"checkedValues\"];\n readOnly?: boolean;\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst CheckboxGroupContext = createContext<CheckboxGroupState | undefined>(\n \"CheckboxGroupContext\",\n undefined\n);\n\nexport { CheckboxGroupContext };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,oBAAuB,GAAA,aAAA;AAAA,EAC3B,sBAAA;AAAA,EACA,KAAA,CAAA;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ var css_248z = ".saltComboBox-focused {\n outline: var(--salt-focused-outline);\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=ComboBox.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboBox.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,439 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { forwardRef, useRef, useEffect } from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { size, flip, useInteractions, useDismiss, useFocus, useClick } from '@floating-ui/react';
5
+ import { ChevronUpIcon, ChevronDownIcon } from '@salt-ds/icons';
6
+ import { useWindow } from '@salt-ds/window';
7
+ import { useComponentCssInjection } from '@salt-ds/styles';
8
+ import { makePrefixer } from '../utils/makePrefixer.js';
9
+ import { useFloatingUI } from '../utils/useFloatingUI/useFloatingUI.js';
10
+ import { useForkRef } from '../utils/useForkRef.js';
11
+ import { useId } from '../utils/useId.js';
12
+ import '../salt-provider/SaltProvider.js';
13
+ import '../viewport/ViewportProvider.js';
14
+ import '../accordion/AccordionGroup.js';
15
+ import '../accordion/AccordionPanel.js';
16
+ import '../accordion/Accordion.js';
17
+ import '../accordion/AccordionHeader.js';
18
+ import '../aria-announcer/AriaAnnouncerContext.js';
19
+ import '../avatar/Avatar.js';
20
+ import '../badge/Badge.js';
21
+ import '../banner/Banner.js';
22
+ import '../banner/BannerActions.js';
23
+ import '../banner/BannerContent.js';
24
+ import '../border-item/BorderItem.js';
25
+ import '../border-layout/BorderLayout.js';
26
+ import { Button } from '../button/Button.js';
27
+ import '../card/Card.js';
28
+ import '../card/InteractableCard.js';
29
+ import '../checkbox/Checkbox.js';
30
+ import '../checkbox/CheckboxGroup.js';
31
+ import '../dialog/Dialog.js';
32
+ import '../status-indicator/StatusIndicator.js';
33
+ import '../text/Text.js';
34
+ import '../text/Display.js';
35
+ import '../text/Headings.js';
36
+ import '../text/Label.js';
37
+ import '../text/TextNotation.js';
38
+ import '../text/TextAction.js';
39
+ import '../dialog/DialogContext.js';
40
+ import '../dialog/DialogActions.js';
41
+ import '../dialog/DialogContent.js';
42
+ import '../dialog/DialogCloseButton.js';
43
+ import '../drawer/Drawer.js';
44
+ import '../drawer/DrawerCloseButton.js';
45
+ import '../dropdown/Dropdown.js';
46
+ import '../file-drop-zone/FileDropZone.js';
47
+ import '../file-drop-zone/FileDropZoneIcon.js';
48
+ import '../file-drop-zone/FileDropZoneTrigger.js';
49
+ import '../flex-item/FlexItem.js';
50
+ import '../flex-layout/FlexLayout.js';
51
+ import '../flow-layout/FlowLayout.js';
52
+ import '../form-field/FormField.js';
53
+ import '../form-field-context/FormFieldContext.js';
54
+ import { useFormFieldProps } from '../form-field-context/useFormFieldProps.js';
55
+ import '../grid-item/GridItem.js';
56
+ import '../grid-layout/GridLayout.js';
57
+ import '../input/Input.js';
58
+ import '../link/Link.js';
59
+ import '../link-card/LinkCard.js';
60
+ import { ListControlContext } from '../list-control/ListControlContext.js';
61
+ import '../multiline-input/MultilineInput.js';
62
+ import '../navigation-item/NavigationItem.js';
63
+ import '../option/Option.js';
64
+ import '../option/OptionGroup.js';
65
+ import '../pagination/Pagination.js';
66
+ import '../pagination/Paginator.js';
67
+ import '../pagination/CompactInput.js';
68
+ import '../pagination/CompactPaginator.js';
69
+ import '../pagination/GoToInput.js';
70
+ import '../panel/Panel.js';
71
+ import '../pill/Pill.js';
72
+ import '../progress/CircularProgress/CircularProgress.js';
73
+ import '../progress/LinearProgress/LinearProgress.js';
74
+ import '../radio-button/RadioButton.js';
75
+ import '../radio-button/RadioButtonGroup.js';
76
+ import '../scrim/Scrim.js';
77
+ import '../spinner/Spinner.js';
78
+ import '../stack-layout/StackLayout.js';
79
+ import '../status-adornment/StatusAdornment.js';
80
+ import '../toast/Toast.js';
81
+ import '../toast/ToastContent.js';
82
+ import '../split-layout/SplitLayout.js';
83
+ import '../switch/Switch.js';
84
+ import '../toggle-button/ToggleButton.js';
85
+ import '../toggle-button-group/ToggleButtonGroup.js';
86
+ import '../toggle-button-group/ToggleButtonGroupContext.js';
87
+ import '../tooltip/Tooltip.js';
88
+ import { defaultValueToString } from '../list-control/ListControlState.js';
89
+ import { useComboBox } from './useComboBox.js';
90
+ import { OptionList } from '../option/OptionList.js';
91
+ import { PillInput } from '../pill-input/PillInput.js';
92
+ import css_248z from './ComboBox.css.js';
93
+
94
+ const withBaseName = makePrefixer("saltComboBox");
95
+ const ComboBox = forwardRef(function ComboBox2(props, ref) {
96
+ var _a, _b;
97
+ const {
98
+ children,
99
+ className,
100
+ disabled: disabledProp,
101
+ endAdornment,
102
+ readOnly: readOnlyProp,
103
+ multiselect,
104
+ onSelectionChange,
105
+ selected,
106
+ defaultSelected,
107
+ defaultOpen,
108
+ onOpenChange,
109
+ onChange,
110
+ open,
111
+ inputProps: inputPropsProp,
112
+ variant = "primary",
113
+ onKeyDown,
114
+ onFocus,
115
+ onBlur,
116
+ value,
117
+ defaultValue,
118
+ valueToString = defaultValueToString,
119
+ truncate,
120
+ ...rest
121
+ } = props;
122
+ const targetWindow = useWindow();
123
+ useComponentCssInjection({
124
+ testId: "salt-combo-box",
125
+ css: css_248z,
126
+ window: targetWindow
127
+ });
128
+ const {
129
+ a11yProps: { "aria-labelledby": formFieldLabelledBy } = {},
130
+ disabled: formFieldDisabled,
131
+ readOnly: formFieldReadOnly
132
+ } = useFormFieldProps();
133
+ const disabled = Boolean(disabledProp) || formFieldDisabled;
134
+ const readOnly = Boolean(readOnlyProp) || formFieldReadOnly;
135
+ const inputRef = useRef(null);
136
+ const listControl = useComboBox({
137
+ open,
138
+ defaultOpen,
139
+ onOpenChange,
140
+ multiselect,
141
+ defaultSelected,
142
+ selected,
143
+ onSelectionChange,
144
+ value,
145
+ defaultValue,
146
+ disabled,
147
+ readOnly,
148
+ valueToString
149
+ });
150
+ const {
151
+ activeState,
152
+ setActive,
153
+ openState,
154
+ setOpen,
155
+ openKey,
156
+ getOptionAtIndex,
157
+ getIndexOfOption,
158
+ getOptionsMatching,
159
+ options,
160
+ selectedState,
161
+ select,
162
+ clear,
163
+ focusVisibleState,
164
+ setFocusVisibleState,
165
+ focusedState,
166
+ setFocusedState,
167
+ listRef,
168
+ valueState,
169
+ setValueState
170
+ } = listControl;
171
+ const handleOpenChange = (newOpen, _event, reason) => {
172
+ var _a2;
173
+ const focusNotBlur = reason === "focus" && newOpen;
174
+ if (reason == "focus") {
175
+ setFocusedState(newOpen);
176
+ }
177
+ if (reason == "focus" && !newOpen) {
178
+ setFocusVisibleState(false);
179
+ }
180
+ if (readOnly || focusNotBlur)
181
+ return;
182
+ setOpen(newOpen);
183
+ if (newOpen) {
184
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
185
+ }
186
+ };
187
+ const { x, y, strategy, elements, floating, reference, context } = useFloatingUI({
188
+ open: openState && !readOnly && children != void 0,
189
+ onOpenChange: handleOpenChange,
190
+ placement: "bottom-start",
191
+ strategy: "fixed",
192
+ middleware: [
193
+ size({
194
+ apply({ rects, elements: elements2, availableHeight }) {
195
+ Object.assign(elements2.floating.style, {
196
+ minWidth: `${rects.reference.width}px`,
197
+ maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`
198
+ });
199
+ }
200
+ }),
201
+ flip({ fallbackStrategy: "initialPlacement" })
202
+ ]
203
+ });
204
+ const { getReferenceProps, getFloatingProps } = useInteractions([
205
+ useDismiss(context),
206
+ useFocus(context),
207
+ useClick(context, { keyboardHandlers: false, toggle: false })
208
+ ]);
209
+ const handleRef = useForkRef(reference, ref);
210
+ const handleButtonClick = (event) => {
211
+ if (!readOnly) {
212
+ event.stopPropagation();
213
+ setFocusVisibleState(false);
214
+ setOpen(!openState, "manual");
215
+ }
216
+ };
217
+ const handleButtonFocus = () => {
218
+ var _a2;
219
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
220
+ };
221
+ const handleKeyDown = (event) => {
222
+ const currentIndex = activeState ? getIndexOfOption(activeState) : -1;
223
+ const count = options.length - 1;
224
+ if (readOnly) {
225
+ return;
226
+ }
227
+ if (!openState) {
228
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
229
+ setOpen(true, void 0, event.key);
230
+ return;
231
+ }
232
+ }
233
+ let newActive;
234
+ switch (event.key) {
235
+ case "ArrowDown":
236
+ newActive = getOptionAtIndex(Math.min(count, currentIndex + 1));
237
+ break;
238
+ case "ArrowUp":
239
+ newActive = getOptionAtIndex(Math.max(0, currentIndex - 1));
240
+ break;
241
+ case "Home":
242
+ newActive = getOptionAtIndex(0);
243
+ break;
244
+ case "End":
245
+ newActive = getOptionAtIndex(count);
246
+ break;
247
+ case "PageUp":
248
+ newActive = getOptionAtIndex(Math.max(0, currentIndex - 10));
249
+ break;
250
+ case "PageDown":
251
+ newActive = getOptionAtIndex(Math.min(count, currentIndex + 10));
252
+ break;
253
+ case "Enter":
254
+ if (openState && (activeState == null ? void 0 : activeState.disabled)) {
255
+ event.preventDefault();
256
+ return;
257
+ }
258
+ if (!openState || !activeState) {
259
+ return;
260
+ }
261
+ select(event, activeState);
262
+ if (!multiselect) {
263
+ event.preventDefault();
264
+ }
265
+ break;
266
+ case "Tab":
267
+ if (!multiselect && activeState) {
268
+ select(event, activeState);
269
+ }
270
+ break;
271
+ }
272
+ if (newActive) {
273
+ setFocusVisibleState(true);
274
+ }
275
+ if (newActive && (newActive == null ? void 0 : newActive.id) != (activeState == null ? void 0 : activeState.id)) {
276
+ event.preventDefault();
277
+ setActive(newActive);
278
+ }
279
+ onKeyDown == null ? void 0 : onKeyDown(event);
280
+ };
281
+ const handleFocus = (event) => {
282
+ setFocusedState(true);
283
+ onFocus == null ? void 0 : onFocus(event);
284
+ };
285
+ const handleChange = (event) => {
286
+ if (!openState) {
287
+ setOpen(true, "input");
288
+ }
289
+ if (event.target.value === "" && !multiselect) {
290
+ clear(event);
291
+ }
292
+ setValueState(event.target.value);
293
+ queueMicrotask(() => {
294
+ if (event.target.value !== "") {
295
+ const newOption = getOptionAtIndex(0);
296
+ if (newOption) {
297
+ setActive(newOption);
298
+ }
299
+ } else {
300
+ setActive(void 0);
301
+ }
302
+ });
303
+ onChange == null ? void 0 : onChange(event);
304
+ };
305
+ const handlePillRemove = (event, index) => {
306
+ event.stopPropagation();
307
+ const removed = selectedState[index];
308
+ select(event, getOptionsMatching((option) => option.value === removed)[0]);
309
+ };
310
+ const handleListMouseOver = () => {
311
+ setFocusVisibleState(false);
312
+ };
313
+ const handleListMouseLeave = () => {
314
+ setActive(void 0);
315
+ };
316
+ const handleFocusInput = () => {
317
+ var _a2;
318
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
319
+ };
320
+ useEffect(() => {
321
+ const activeIndex = activeState ? getIndexOfOption(activeState) : -1;
322
+ let newActive = void 0;
323
+ if (activeIndex > -1) {
324
+ return;
325
+ }
326
+ if (!openState) {
327
+ setActive(void 0);
328
+ return;
329
+ }
330
+ if (selectedState.length > 0) {
331
+ newActive = getOptionsMatching(
332
+ (option) => option.value === selectedState[0]
333
+ ).pop();
334
+ }
335
+ if (!newActive) {
336
+ if (openKey.current === "ArrowDown") {
337
+ newActive = getOptionAtIndex(0);
338
+ setFocusVisibleState(true);
339
+ } else if (openKey.current === "ArrowUp") {
340
+ newActive = getOptionAtIndex(options.length - 1);
341
+ setFocusVisibleState(true);
342
+ }
343
+ }
344
+ if (!newActive) {
345
+ newActive = getOptionAtIndex(0);
346
+ }
347
+ setActive(newActive);
348
+ }, [openState, children]);
349
+ const buttonId = useId();
350
+ const listId = useId();
351
+ const handleListRef = useForkRef(listRef, floating);
352
+ return /* @__PURE__ */ jsxs(ListControlContext.Provider, {
353
+ value: listControl,
354
+ children: [
355
+ /* @__PURE__ */ jsx(PillInput, {
356
+ tabIndex: -1,
357
+ className: clsx(
358
+ withBaseName(),
359
+ {
360
+ [withBaseName("focused")]: focusedState,
361
+ [withBaseName("focusVisible")]: focusVisibleState
362
+ },
363
+ className
364
+ ),
365
+ endAdornment: /* @__PURE__ */ jsxs(Fragment, {
366
+ children: [
367
+ endAdornment,
368
+ !readOnly ? /* @__PURE__ */ jsx(Button, {
369
+ "aria-labelledby": clsx(buttonId, formFieldLabelledBy),
370
+ "aria-label": "Show options",
371
+ "aria-expanded": openState,
372
+ "aria-controls": openState ? listId : void 0,
373
+ "aria-haspopup": "listbox",
374
+ disabled,
375
+ variant: "secondary",
376
+ onClick: handleButtonClick,
377
+ onFocus: handleButtonFocus,
378
+ tabIndex: -1,
379
+ children: openState ? /* @__PURE__ */ jsx(ChevronUpIcon, {
380
+ "aria-hidden": true
381
+ }) : /* @__PURE__ */ jsx(ChevronDownIcon, {
382
+ "aria-hidden": true
383
+ })
384
+ }) : void 0
385
+ ]
386
+ }),
387
+ onChange: handleChange,
388
+ role: "combobox",
389
+ disabled,
390
+ readOnly,
391
+ inputProps: {
392
+ role: "combobox",
393
+ "aria-expanded": openState,
394
+ "aria-multiselectable": multiselect,
395
+ "aria-controls": openState ? listId : void 0,
396
+ onKeyDown: handleKeyDown,
397
+ ...inputPropsProp
398
+ },
399
+ "aria-activedescendant": activeState == null ? void 0 : activeState.id,
400
+ variant,
401
+ inputRef,
402
+ value: valueState,
403
+ ref: handleRef,
404
+ ...getReferenceProps({
405
+ onBlur,
406
+ onFocus: handleFocus,
407
+ ...rest
408
+ }),
409
+ pills: multiselect ? selectedState.map((item) => valueToString(item)) : [],
410
+ truncate: truncate && !focusedState && !openState,
411
+ onPillRemove: handlePillRemove,
412
+ hidePillClose: !focusedState || readOnly,
413
+ emptyReadOnlyMarker: readOnly && selectedState.length > 0 ? "" : void 0
414
+ }),
415
+ /* @__PURE__ */ jsx(OptionList, {
416
+ open: (openState || focusedState) && !readOnly && children != void 0,
417
+ collapsed: !openState,
418
+ ref: handleListRef,
419
+ id: listId,
420
+ tabIndex: -1,
421
+ ...getFloatingProps({
422
+ onMouseOver: handleListMouseOver,
423
+ onFocus: handleFocusInput,
424
+ onClick: handleFocusInput,
425
+ onMouseLeave: handleListMouseLeave
426
+ }),
427
+ left: x != null ? x : 0,
428
+ top: y != null ? y : 0,
429
+ position: strategy,
430
+ width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
431
+ height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
432
+ children
433
+ })
434
+ ]
435
+ });
436
+ });
437
+
438
+ export { ComboBox };
439
+ //# sourceMappingURL=ComboBox.js.map