@salt-ds/core 1.19.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 (465) hide show
  1. package/css/salt-core.css +650 -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.css.js +6 -0
  51. package/dist-cjs/dialog/Dialog.css.js.map +1 -0
  52. package/dist-cjs/dialog/Dialog.js +194 -0
  53. package/dist-cjs/dialog/Dialog.js.map +1 -0
  54. package/dist-cjs/dialog/DialogActions.css.js +6 -0
  55. package/dist-cjs/dialog/DialogActions.css.js.map +1 -0
  56. package/dist-cjs/dialog/DialogActions.js +112 -0
  57. package/dist-cjs/dialog/DialogActions.js.map +1 -0
  58. package/dist-cjs/dialog/DialogCloseButton.css.js +6 -0
  59. package/dist-cjs/dialog/DialogCloseButton.css.js.map +1 -0
  60. package/dist-cjs/dialog/DialogCloseButton.js +117 -0
  61. package/dist-cjs/dialog/DialogCloseButton.js.map +1 -0
  62. package/dist-cjs/dialog/DialogContent.css.js +6 -0
  63. package/dist-cjs/dialog/DialogContent.css.js.map +1 -0
  64. package/dist-cjs/dialog/DialogContent.js +124 -0
  65. package/dist-cjs/dialog/DialogContent.js.map +1 -0
  66. package/dist-cjs/dialog/DialogContext.js +17 -0
  67. package/dist-cjs/dialog/DialogContext.js.map +1 -0
  68. package/dist-cjs/dialog/DialogHeader.css.js +6 -0
  69. package/dist-cjs/dialog/DialogHeader.css.js.map +1 -0
  70. package/dist-cjs/dialog/DialogHeader.js +147 -0
  71. package/dist-cjs/dialog/DialogHeader.js.map +1 -0
  72. package/dist-cjs/drawer/Drawer.js +75 -2
  73. package/dist-cjs/drawer/Drawer.js.map +1 -1
  74. package/dist-cjs/drawer/DrawerCloseButton.js +74 -1
  75. package/dist-cjs/drawer/DrawerCloseButton.js.map +1 -1
  76. package/dist-cjs/dropdown/Dropdown.css.js +6 -0
  77. package/dist-cjs/dropdown/Dropdown.css.js.map +1 -0
  78. package/dist-cjs/dropdown/Dropdown.js +412 -0
  79. package/dist-cjs/dropdown/Dropdown.js.map +1 -0
  80. package/dist-cjs/file-drop-zone/FileDropZone.js +75 -0
  81. package/dist-cjs/file-drop-zone/FileDropZone.js.map +1 -1
  82. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js +76 -0
  83. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  84. package/dist-cjs/flex-item/FlexItem.js +79 -2
  85. package/dist-cjs/flex-item/FlexItem.js.map +1 -1
  86. package/dist-cjs/flex-layout/FlexLayout.js +79 -2
  87. package/dist-cjs/flex-layout/FlexLayout.js.map +1 -1
  88. package/dist-cjs/form-field/FormField.js +74 -0
  89. package/dist-cjs/form-field/FormField.js.map +1 -1
  90. package/dist-cjs/form-field/FormFieldHelperText.js +70 -2
  91. package/dist-cjs/form-field/FormFieldHelperText.js.map +1 -1
  92. package/dist-cjs/form-field/FormFieldLabel.js +69 -0
  93. package/dist-cjs/form-field/FormFieldLabel.js.map +1 -1
  94. package/dist-cjs/form-field-context/FormFieldContext.js +78 -0
  95. package/dist-cjs/form-field-context/FormFieldContext.js.map +1 -1
  96. package/dist-cjs/grid-item/GridItem.js +79 -2
  97. package/dist-cjs/grid-item/GridItem.js.map +1 -1
  98. package/dist-cjs/grid-layout/GridLayout.js +79 -2
  99. package/dist-cjs/grid-layout/GridLayout.js.map +1 -1
  100. package/dist-cjs/index.js +30 -0
  101. package/dist-cjs/index.js.map +1 -1
  102. package/dist-cjs/input/Input.js +73 -0
  103. package/dist-cjs/input/Input.js.map +1 -1
  104. package/dist-cjs/link/Link.js +70 -2
  105. package/dist-cjs/link/Link.js.map +1 -1
  106. package/dist-cjs/link-card/LinkCard.js +75 -0
  107. package/dist-cjs/link-card/LinkCard.js.map +1 -1
  108. package/dist-cjs/list-control/ListControlContext.js +121 -0
  109. package/dist-cjs/list-control/ListControlContext.js.map +1 -0
  110. package/dist-cjs/list-control/ListControlState.js +276 -0
  111. package/dist-cjs/list-control/ListControlState.js.map +1 -0
  112. package/dist-cjs/multiline-input/MultilineInput.css.js +1 -1
  113. package/dist-cjs/multiline-input/MultilineInput.js +73 -0
  114. package/dist-cjs/multiline-input/MultilineInput.js.map +1 -1
  115. package/dist-cjs/navigation-item/NavigationItem.css.js +1 -1
  116. package/dist-cjs/navigation-item/NavigationItem.js +77 -2
  117. package/dist-cjs/navigation-item/NavigationItem.js.map +1 -1
  118. package/dist-cjs/option/Option.css.js +6 -0
  119. package/dist-cjs/option/Option.css.js.map +1 -0
  120. package/dist-cjs/option/Option.js +178 -0
  121. package/dist-cjs/option/Option.js.map +1 -0
  122. package/dist-cjs/option/OptionGroup.css.js +6 -0
  123. package/dist-cjs/option/OptionGroup.css.js.map +1 -0
  124. package/dist-cjs/option/OptionGroup.js +123 -0
  125. package/dist-cjs/option/OptionGroup.js.map +1 -0
  126. package/dist-cjs/option/OptionList.css.js +6 -0
  127. package/dist-cjs/option/OptionList.css.js.map +1 -0
  128. package/dist-cjs/option/OptionList.js +118 -0
  129. package/dist-cjs/option/OptionList.js.map +1 -0
  130. package/dist-cjs/option/OptionListBase.js +113 -0
  131. package/dist-cjs/option/OptionListBase.js.map +1 -0
  132. package/dist-cjs/pagination/CompactInput.js +76 -2
  133. package/dist-cjs/pagination/CompactInput.js.map +1 -1
  134. package/dist-cjs/pagination/CompactPaginator.js +69 -2
  135. package/dist-cjs/pagination/CompactPaginator.js.map +1 -1
  136. package/dist-cjs/pagination/GoToInput.js +68 -3
  137. package/dist-cjs/pagination/GoToInput.js.map +1 -1
  138. package/dist-cjs/pagination/PageButton.js +77 -2
  139. package/dist-cjs/pagination/PageButton.js.map +1 -1
  140. package/dist-cjs/pagination/PageRanges.js +78 -2
  141. package/dist-cjs/pagination/PageRanges.js.map +1 -1
  142. package/dist-cjs/pagination/Pagination.js +76 -2
  143. package/dist-cjs/pagination/Pagination.js.map +1 -1
  144. package/dist-cjs/pagination/Paginator.js +75 -2
  145. package/dist-cjs/pagination/Paginator.js.map +1 -1
  146. package/dist-cjs/panel/Panel.css.js +1 -1
  147. package/dist-cjs/panel/Panel.js +77 -2
  148. package/dist-cjs/panel/Panel.js.map +1 -1
  149. package/dist-cjs/pill/Pill.js +74 -0
  150. package/dist-cjs/pill/Pill.js.map +1 -1
  151. package/dist-cjs/pill-input/PillInput.css.js +6 -0
  152. package/dist-cjs/pill-input/PillInput.css.js.map +1 -0
  153. package/dist-cjs/pill-input/PillInput.js +338 -0
  154. package/dist-cjs/pill-input/PillInput.js.map +1 -0
  155. package/dist-cjs/pill-input/useTruncatePills.js +83 -0
  156. package/dist-cjs/pill-input/useTruncatePills.js.map +1 -0
  157. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
  158. package/dist-cjs/progress/CircularProgress/CircularProgress.js +138 -14
  159. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  160. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  161. package/dist-cjs/progress/LinearProgress/LinearProgress.js +89 -8
  162. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  163. package/dist-cjs/radio-button/RadioButton.js +78 -4
  164. package/dist-cjs/radio-button/RadioButton.js.map +1 -1
  165. package/dist-cjs/radio-button/RadioButtonGroup.js +77 -3
  166. package/dist-cjs/radio-button/RadioButtonGroup.js.map +1 -1
  167. package/dist-cjs/radio-button/RadioButtonIcon.js +76 -0
  168. package/dist-cjs/radio-button/RadioButtonIcon.js.map +1 -1
  169. package/dist-cjs/radio-button/internal/RadioGroupContext.js +79 -0
  170. package/dist-cjs/radio-button/internal/RadioGroupContext.js.map +1 -1
  171. package/dist-cjs/salt-provider/SaltProvider.js +78 -3
  172. package/dist-cjs/salt-provider/SaltProvider.js.map +1 -1
  173. package/dist-cjs/scrim/Scrim.js +76 -1
  174. package/dist-cjs/scrim/Scrim.js.map +1 -1
  175. package/dist-cjs/spinner/Spinner.js +76 -2
  176. package/dist-cjs/spinner/Spinner.js.map +1 -1
  177. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js +78 -0
  178. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  179. package/dist-cjs/split-layout/SplitLayout.js +76 -2
  180. package/dist-cjs/split-layout/SplitLayout.js.map +1 -1
  181. package/dist-cjs/stack-layout/StackLayout.js +78 -2
  182. package/dist-cjs/stack-layout/StackLayout.js.map +1 -1
  183. package/dist-cjs/status-adornment/StatusAdornment.js +75 -0
  184. package/dist-cjs/status-adornment/StatusAdornment.js.map +1 -1
  185. package/dist-cjs/status-indicator/StatusIndicator.js +76 -2
  186. package/dist-cjs/status-indicator/StatusIndicator.js.map +1 -1
  187. package/dist-cjs/switch/Switch.js +75 -2
  188. package/dist-cjs/switch/Switch.js.map +1 -1
  189. package/dist-cjs/text/Text.js +77 -2
  190. package/dist-cjs/text/Text.js.map +1 -1
  191. package/dist-cjs/toast/Toast.js +74 -0
  192. package/dist-cjs/toast/Toast.js.map +1 -1
  193. package/dist-cjs/toast/ToastContent.js +75 -0
  194. package/dist-cjs/toast/ToastContent.js.map +1 -1
  195. package/dist-cjs/toggle-button/ToggleButton.js +73 -0
  196. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
  197. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +74 -0
  198. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  199. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js +78 -0
  200. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  201. package/dist-cjs/tooltip/Tooltip.js +75 -1
  202. package/dist-cjs/tooltip/Tooltip.js.map +1 -1
  203. package/dist-cjs/tooltip/TooltipBase.js +75 -2
  204. package/dist-cjs/tooltip/TooltipBase.js.map +1 -1
  205. package/dist-cjs/tooltip/useAriaAnnounce.js +77 -0
  206. package/dist-cjs/tooltip/useAriaAnnounce.js.map +1 -1
  207. package/dist-cjs/tooltip/useTooltip.js +83 -2
  208. package/dist-cjs/tooltip/useTooltip.js.map +1 -1
  209. package/dist-cjs/utils/ownerWindow.js.map +1 -1
  210. package/dist-cjs/utils/useEventCallback.js +20 -0
  211. package/dist-cjs/utils/useEventCallback.js.map +1 -0
  212. package/dist-cjs/utils/useResizeObserver.js +29 -0
  213. package/dist-cjs/utils/useResizeObserver.js.map +1 -0
  214. package/dist-cjs/utils/useValueEffect.js +124 -0
  215. package/dist-cjs/utils/useValueEffect.js.map +1 -0
  216. package/dist-cjs/viewport/ViewportProvider.js +78 -0
  217. package/dist-cjs/viewport/ViewportProvider.js.map +1 -1
  218. package/dist-es/accordion/Accordion.js +75 -0
  219. package/dist-es/accordion/Accordion.js.map +1 -1
  220. package/dist-es/accordion/AccordionContext.js +79 -0
  221. package/dist-es/accordion/AccordionContext.js.map +1 -1
  222. package/dist-es/accordion/AccordionGroup.js +76 -1
  223. package/dist-es/accordion/AccordionGroup.js.map +1 -1
  224. package/dist-es/accordion/AccordionHeader.js +73 -0
  225. package/dist-es/accordion/AccordionHeader.js.map +1 -1
  226. package/dist-es/accordion/AccordionPanel.js +75 -0
  227. package/dist-es/accordion/AccordionPanel.js.map +1 -1
  228. package/dist-es/aria-announcer/useAriaAnnouncer.js +78 -0
  229. package/dist-es/aria-announcer/useAriaAnnouncer.js.map +1 -1
  230. package/dist-es/avatar/Avatar.js +74 -0
  231. package/dist-es/avatar/Avatar.js.map +1 -1
  232. package/dist-es/avatar/useAvatarImage.js +79 -0
  233. package/dist-es/avatar/useAvatarImage.js.map +1 -1
  234. package/dist-es/badge/Badge.js +75 -0
  235. package/dist-es/badge/Badge.js.map +1 -1
  236. package/dist-es/banner/Banner.js +76 -2
  237. package/dist-es/banner/Banner.js.map +1 -1
  238. package/dist-es/banner/BannerActions.js +76 -1
  239. package/dist-es/banner/BannerActions.js.map +1 -1
  240. package/dist-es/banner/BannerContent.js +76 -1
  241. package/dist-es/banner/BannerContent.js.map +1 -1
  242. package/dist-es/border-item/BorderItem.js +75 -1
  243. package/dist-es/border-item/BorderItem.js.map +1 -1
  244. package/dist-es/border-layout/BorderLayout.js +76 -0
  245. package/dist-es/border-layout/BorderLayout.js.map +1 -1
  246. package/dist-es/button/Button.js +76 -1
  247. package/dist-es/button/Button.js.map +1 -1
  248. package/dist-es/card/Card.js +75 -0
  249. package/dist-es/card/Card.js.map +1 -1
  250. package/dist-es/card/InteractableCard.js +75 -0
  251. package/dist-es/card/InteractableCard.js.map +1 -1
  252. package/dist-es/checkbox/Checkbox.js +73 -0
  253. package/dist-es/checkbox/Checkbox.js.map +1 -1
  254. package/dist-es/checkbox/CheckboxGroup.js +74 -0
  255. package/dist-es/checkbox/CheckboxGroup.js.map +1 -1
  256. package/dist-es/checkbox/CheckboxIcon.js +75 -0
  257. package/dist-es/checkbox/CheckboxIcon.js.map +1 -1
  258. package/dist-es/checkbox/internal/CheckboxGroupContext.js +79 -0
  259. package/dist-es/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  260. package/dist-es/combo-box/ComboBox.css.js +4 -0
  261. package/dist-es/combo-box/ComboBox.css.js.map +1 -0
  262. package/dist-es/combo-box/ComboBox.js +439 -0
  263. package/dist-es/combo-box/ComboBox.js.map +1 -0
  264. package/dist-es/combo-box/useComboBox.js +149 -0
  265. package/dist-es/combo-box/useComboBox.js.map +1 -0
  266. package/dist-es/dialog/Dialog.css.js +4 -0
  267. package/dist-es/dialog/Dialog.css.js.map +1 -0
  268. package/dist-es/dialog/Dialog.js +189 -0
  269. package/dist-es/dialog/Dialog.js.map +1 -0
  270. package/dist-es/dialog/DialogActions.css.js +4 -0
  271. package/dist-es/dialog/DialogActions.css.js.map +1 -0
  272. package/dist-es/dialog/DialogActions.js +108 -0
  273. package/dist-es/dialog/DialogActions.js.map +1 -0
  274. package/dist-es/dialog/DialogCloseButton.css.js +4 -0
  275. package/dist-es/dialog/DialogCloseButton.css.js.map +1 -0
  276. package/dist-es/dialog/DialogCloseButton.js +109 -0
  277. package/dist-es/dialog/DialogCloseButton.js.map +1 -0
  278. package/dist-es/dialog/DialogContent.css.js +4 -0
  279. package/dist-es/dialog/DialogContent.css.js.map +1 -0
  280. package/dist-es/dialog/DialogContent.js +120 -0
  281. package/dist-es/dialog/DialogContent.js.map +1 -0
  282. package/dist-es/dialog/DialogContext.js +12 -0
  283. package/dist-es/dialog/DialogContext.js.map +1 -0
  284. package/dist-es/dialog/DialogHeader.css.js +4 -0
  285. package/dist-es/dialog/DialogHeader.css.js.map +1 -0
  286. package/dist-es/dialog/DialogHeader.js +139 -0
  287. package/dist-es/dialog/DialogHeader.js.map +1 -0
  288. package/dist-es/drawer/Drawer.js +75 -2
  289. package/dist-es/drawer/Drawer.js.map +1 -1
  290. package/dist-es/drawer/DrawerCloseButton.js +74 -1
  291. package/dist-es/drawer/DrawerCloseButton.js.map +1 -1
  292. package/dist-es/dropdown/Dropdown.css.js +4 -0
  293. package/dist-es/dropdown/Dropdown.css.js.map +1 -0
  294. package/dist-es/dropdown/Dropdown.js +408 -0
  295. package/dist-es/dropdown/Dropdown.js.map +1 -0
  296. package/dist-es/file-drop-zone/FileDropZone.js +75 -0
  297. package/dist-es/file-drop-zone/FileDropZone.js.map +1 -1
  298. package/dist-es/file-drop-zone/FileDropZoneTrigger.js +76 -0
  299. package/dist-es/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  300. package/dist-es/flex-item/FlexItem.js +79 -2
  301. package/dist-es/flex-item/FlexItem.js.map +1 -1
  302. package/dist-es/flex-layout/FlexLayout.js +79 -2
  303. package/dist-es/flex-layout/FlexLayout.js.map +1 -1
  304. package/dist-es/form-field/FormField.js +74 -0
  305. package/dist-es/form-field/FormField.js.map +1 -1
  306. package/dist-es/form-field/FormFieldHelperText.js +70 -2
  307. package/dist-es/form-field/FormFieldHelperText.js.map +1 -1
  308. package/dist-es/form-field/FormFieldLabel.js +69 -0
  309. package/dist-es/form-field/FormFieldLabel.js.map +1 -1
  310. package/dist-es/form-field-context/FormFieldContext.js +78 -0
  311. package/dist-es/form-field-context/FormFieldContext.js.map +1 -1
  312. package/dist-es/grid-item/GridItem.js +79 -2
  313. package/dist-es/grid-item/GridItem.js.map +1 -1
  314. package/dist-es/grid-layout/GridLayout.js +79 -2
  315. package/dist-es/grid-layout/GridLayout.js.map +1 -1
  316. package/dist-es/index.js +14 -0
  317. package/dist-es/index.js.map +1 -1
  318. package/dist-es/input/Input.js +73 -0
  319. package/dist-es/input/Input.js.map +1 -1
  320. package/dist-es/link/Link.js +70 -2
  321. package/dist-es/link/Link.js.map +1 -1
  322. package/dist-es/link-card/LinkCard.js +75 -0
  323. package/dist-es/link-card/LinkCard.js.map +1 -1
  324. package/dist-es/list-control/ListControlContext.js +116 -0
  325. package/dist-es/list-control/ListControlContext.js.map +1 -0
  326. package/dist-es/list-control/ListControlState.js +271 -0
  327. package/dist-es/list-control/ListControlState.js.map +1 -0
  328. package/dist-es/multiline-input/MultilineInput.css.js +1 -1
  329. package/dist-es/multiline-input/MultilineInput.js +73 -0
  330. package/dist-es/multiline-input/MultilineInput.js.map +1 -1
  331. package/dist-es/navigation-item/NavigationItem.css.js +1 -1
  332. package/dist-es/navigation-item/NavigationItem.js +77 -2
  333. package/dist-es/navigation-item/NavigationItem.js.map +1 -1
  334. package/dist-es/option/Option.css.js +4 -0
  335. package/dist-es/option/Option.css.js.map +1 -0
  336. package/dist-es/option/Option.js +174 -0
  337. package/dist-es/option/Option.js.map +1 -0
  338. package/dist-es/option/OptionGroup.css.js +4 -0
  339. package/dist-es/option/OptionGroup.css.js.map +1 -0
  340. package/dist-es/option/OptionGroup.js +119 -0
  341. package/dist-es/option/OptionGroup.js.map +1 -0
  342. package/dist-es/option/OptionList.css.js +4 -0
  343. package/dist-es/option/OptionList.css.js.map +1 -0
  344. package/dist-es/option/OptionList.js +114 -0
  345. package/dist-es/option/OptionList.js.map +1 -0
  346. package/dist-es/option/OptionListBase.js +109 -0
  347. package/dist-es/option/OptionListBase.js.map +1 -0
  348. package/dist-es/pagination/CompactInput.js +76 -2
  349. package/dist-es/pagination/CompactInput.js.map +1 -1
  350. package/dist-es/pagination/CompactPaginator.js +69 -2
  351. package/dist-es/pagination/CompactPaginator.js.map +1 -1
  352. package/dist-es/pagination/GoToInput.js +68 -3
  353. package/dist-es/pagination/GoToInput.js.map +1 -1
  354. package/dist-es/pagination/PageButton.js +77 -2
  355. package/dist-es/pagination/PageButton.js.map +1 -1
  356. package/dist-es/pagination/PageRanges.js +78 -2
  357. package/dist-es/pagination/PageRanges.js.map +1 -1
  358. package/dist-es/pagination/Pagination.js +76 -2
  359. package/dist-es/pagination/Pagination.js.map +1 -1
  360. package/dist-es/pagination/Paginator.js +75 -2
  361. package/dist-es/pagination/Paginator.js.map +1 -1
  362. package/dist-es/panel/Panel.css.js +1 -1
  363. package/dist-es/panel/Panel.js +77 -2
  364. package/dist-es/panel/Panel.js.map +1 -1
  365. package/dist-es/pill/Pill.js +74 -0
  366. package/dist-es/pill/Pill.js.map +1 -1
  367. package/dist-es/pill-input/PillInput.css.js +4 -0
  368. package/dist-es/pill-input/PillInput.css.js.map +1 -0
  369. package/dist-es/pill-input/PillInput.js +334 -0
  370. package/dist-es/pill-input/PillInput.js.map +1 -0
  371. package/dist-es/pill-input/useTruncatePills.js +79 -0
  372. package/dist-es/pill-input/useTruncatePills.js.map +1 -0
  373. package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
  374. package/dist-es/progress/CircularProgress/CircularProgress.js +138 -14
  375. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  376. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  377. package/dist-es/progress/LinearProgress/LinearProgress.js +89 -8
  378. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  379. package/dist-es/radio-button/RadioButton.js +78 -4
  380. package/dist-es/radio-button/RadioButton.js.map +1 -1
  381. package/dist-es/radio-button/RadioButtonGroup.js +77 -3
  382. package/dist-es/radio-button/RadioButtonGroup.js.map +1 -1
  383. package/dist-es/radio-button/RadioButtonIcon.js +76 -0
  384. package/dist-es/radio-button/RadioButtonIcon.js.map +1 -1
  385. package/dist-es/radio-button/internal/RadioGroupContext.js +79 -0
  386. package/dist-es/radio-button/internal/RadioGroupContext.js.map +1 -1
  387. package/dist-es/salt-provider/SaltProvider.js +78 -3
  388. package/dist-es/salt-provider/SaltProvider.js.map +1 -1
  389. package/dist-es/scrim/Scrim.js +76 -1
  390. package/dist-es/scrim/Scrim.js.map +1 -1
  391. package/dist-es/spinner/Spinner.js +76 -2
  392. package/dist-es/spinner/Spinner.js.map +1 -1
  393. package/dist-es/spinner/svgSpinners/SpinnerSVG.js +78 -0
  394. package/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  395. package/dist-es/split-layout/SplitLayout.js +76 -2
  396. package/dist-es/split-layout/SplitLayout.js.map +1 -1
  397. package/dist-es/stack-layout/StackLayout.js +78 -2
  398. package/dist-es/stack-layout/StackLayout.js.map +1 -1
  399. package/dist-es/status-adornment/StatusAdornment.js +75 -0
  400. package/dist-es/status-adornment/StatusAdornment.js.map +1 -1
  401. package/dist-es/status-indicator/StatusIndicator.js +76 -2
  402. package/dist-es/status-indicator/StatusIndicator.js.map +1 -1
  403. package/dist-es/switch/Switch.js +75 -2
  404. package/dist-es/switch/Switch.js.map +1 -1
  405. package/dist-es/text/Text.js +77 -2
  406. package/dist-es/text/Text.js.map +1 -1
  407. package/dist-es/toast/Toast.js +74 -0
  408. package/dist-es/toast/Toast.js.map +1 -1
  409. package/dist-es/toast/ToastContent.js +75 -0
  410. package/dist-es/toast/ToastContent.js.map +1 -1
  411. package/dist-es/toggle-button/ToggleButton.js +73 -0
  412. package/dist-es/toggle-button/ToggleButton.js.map +1 -1
  413. package/dist-es/toggle-button-group/ToggleButtonGroup.js +74 -0
  414. package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  415. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js +78 -0
  416. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  417. package/dist-es/tooltip/Tooltip.js +75 -1
  418. package/dist-es/tooltip/Tooltip.js.map +1 -1
  419. package/dist-es/tooltip/TooltipBase.js +75 -2
  420. package/dist-es/tooltip/TooltipBase.js.map +1 -1
  421. package/dist-es/tooltip/useAriaAnnounce.js +77 -0
  422. package/dist-es/tooltip/useAriaAnnounce.js.map +1 -1
  423. package/dist-es/tooltip/useTooltip.js +84 -3
  424. package/dist-es/tooltip/useTooltip.js.map +1 -1
  425. package/dist-es/utils/ownerWindow.js.map +1 -1
  426. package/dist-es/utils/useEventCallback.js +16 -0
  427. package/dist-es/utils/useEventCallback.js.map +1 -0
  428. package/dist-es/utils/useResizeObserver.js +25 -0
  429. package/dist-es/utils/useResizeObserver.js.map +1 -0
  430. package/dist-es/utils/useValueEffect.js +120 -0
  431. package/dist-es/utils/useValueEffect.js.map +1 -0
  432. package/dist-es/viewport/ViewportProvider.js +78 -0
  433. package/dist-es/viewport/ViewportProvider.js.map +1 -1
  434. package/dist-types/combo-box/ComboBox.d.ts +17 -0
  435. package/dist-types/combo-box/index.d.ts +1 -0
  436. package/dist-types/combo-box/useComboBox.d.ts +30 -0
  437. package/dist-types/dialog/Dialog.d.ts +46 -0
  438. package/dist-types/dialog/DialogActions.d.ts +8 -0
  439. package/dist-types/dialog/DialogCloseButton.d.ts +2 -0
  440. package/dist-types/dialog/DialogContent.d.ts +8 -0
  441. package/dist-types/dialog/DialogContext.d.ts +8 -0
  442. package/dist-types/dialog/DialogHeader.d.ts +20 -0
  443. package/dist-types/dialog/index.d.ts +6 -0
  444. package/dist-types/dropdown/Dropdown.d.ts +99 -0
  445. package/dist-types/dropdown/index.d.ts +1 -0
  446. package/dist-types/index.d.ts +5 -0
  447. package/dist-types/list-control/ListControlContext.d.ts +21 -0
  448. package/dist-types/list-control/ListControlState.d.ts +70 -0
  449. package/dist-types/list-control/index.d.ts +1 -0
  450. package/dist-types/option/Option.d.ts +16 -0
  451. package/dist-types/option/OptionGroup.d.ts +12 -0
  452. package/dist-types/option/OptionList.d.ts +5 -0
  453. package/dist-types/option/OptionListBase.d.ts +4 -0
  454. package/dist-types/option/index.d.ts +2 -0
  455. package/dist-types/pill-input/PillInput.d.ts +48 -0
  456. package/dist-types/pill-input/index.d.ts +1 -0
  457. package/dist-types/pill-input/useTruncatePills.d.ts +8 -0
  458. package/dist-types/progress/CircularProgress/CircularProgress.d.ts +5 -0
  459. package/dist-types/progress/LinearProgress/LinearProgress.d.ts +5 -0
  460. package/dist-types/utils/index.d.ts +3 -0
  461. package/dist-types/utils/ownerWindow.d.ts +1 -1
  462. package/dist-types/utils/useEventCallback.d.ts +4 -0
  463. package/dist-types/utils/useResizeObserver.d.ts +6 -0
  464. package/dist-types/utils/useValueEffect.d.ts +4 -0
  465. package/package.json +1 -1
@@ -6,38 +6,127 @@ import '../../utils/useFloatingUI/useFloatingUI.js';
6
6
  import '../../utils/useId.js';
7
7
  import '../../salt-provider/SaltProvider.js';
8
8
  import '../../viewport/ViewportProvider.js';
9
+ import '../../accordion/AccordionGroup.js';
10
+ import '../../accordion/AccordionPanel.js';
11
+ import '../../accordion/Accordion.js';
12
+ import '../../accordion/AccordionHeader.js';
13
+ import '../../aria-announcer/AriaAnnouncerContext.js';
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/Checkbox.js';
25
+ import '../../checkbox/CheckboxGroup.js';
26
+ import { useComponentCssInjection } from '@salt-ds/styles';
27
+ import { useWindow } from '@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';
9
32
  import { Text } from '../../text/Text.js';
10
33
  import '../../text/Display.js';
11
34
  import '../../text/Headings.js';
12
35
  import '../../text/Label.js';
13
36
  import '../../text/TextNotation.js';
14
37
  import '../../text/TextAction.js';
15
- import { useWindow } from '@salt-ds/window';
16
- import { useComponentCssInjection } from '@salt-ds/styles';
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 '../LinearProgress/LinearProgress.js';
71
+ import '../../radio-button/RadioButton.js';
72
+ import '../../radio-button/RadioButtonGroup.js';
73
+ import '../../scrim/Scrim.js';
74
+ import '../../spinner/Spinner.js';
75
+ import '../../stack-layout/StackLayout.js';
76
+ import '../../status-adornment/StatusAdornment.js';
77
+ import '../../toast/Toast.js';
78
+ import '../../toast/ToastContent.js';
79
+ import '../../split-layout/SplitLayout.js';
80
+ import '../../switch/Switch.js';
81
+ import '../../toggle-button/ToggleButton.js';
82
+ import '../../toggle-button-group/ToggleButtonGroup.js';
83
+ import '../../toggle-button-group/ToggleButtonGroupContext.js';
84
+ import '../../tooltip/Tooltip.js';
85
+ import '@floating-ui/react';
17
86
  import css_248z from './CircularProgress.css.js';
18
87
 
19
88
  const withBaseName = makePrefixer("saltCircularProgress");
20
- const CircularProgress = forwardRef(function CircularProgress2({ className, hideLabel = false, max = 100, min = 0, value = 0, ...rest }, ref) {
89
+ const getRotationAngle = (bar, shift = 0) => {
90
+ return -180 + (bar - shift) / 50 * 180;
91
+ };
92
+ const CircularProgress = forwardRef(function CircularProgress2({
93
+ className,
94
+ hideLabel = false,
95
+ max = 100,
96
+ min = 0,
97
+ value = 0,
98
+ bufferValue = 0,
99
+ ...rest
100
+ }, ref) {
21
101
  const targetWindow = useWindow();
22
102
  useComponentCssInjection({
23
103
  testId: "salt-circular-progress",
24
104
  css: css_248z,
25
105
  window: targetWindow
26
106
  });
27
- const subOverlayRightStyle = {};
28
- const subOverlayLeftStyle = {};
29
- const getRotationAngle = (progress2, shift = 0) => {
30
- return -180 + (progress2 - shift) / 50 * 180;
31
- };
107
+ const bufferSubOverlayRightStyle = {};
108
+ const bufferSubOverlayLeftStyle = {};
109
+ const barSubOverlayRightStyle = {};
110
+ const barSubOverlayLeftStyle = {};
111
+ const buffer = (bufferValue - min) / (max - min) * 100;
32
112
  const progress = (value - min) / (max - min) * 100;
33
113
  if (progress <= 50) {
34
114
  const rotationAngle = getRotationAngle(progress);
35
- subOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;
36
- subOverlayLeftStyle.transform = "rotate(-180deg)";
115
+ barSubOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;
116
+ barSubOverlayLeftStyle.transform = "rotate(-180deg)";
37
117
  } else {
38
118
  const rotationAngle = getRotationAngle(progress, 50);
39
- subOverlayRightStyle.transform = "rotate(0deg)";
40
- subOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;
119
+ barSubOverlayRightStyle.transform = "rotate(0deg)";
120
+ barSubOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;
121
+ }
122
+ if (buffer <= 50) {
123
+ const rotationAngle = getRotationAngle(buffer);
124
+ bufferSubOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;
125
+ bufferSubOverlayLeftStyle.transform = "rotate(-180deg)";
126
+ } else {
127
+ const rotationAngle = getRotationAngle(buffer, 50);
128
+ bufferSubOverlayRightStyle.transform = "rotate(0deg)";
129
+ bufferSubOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;
41
130
  }
42
131
  return /* @__PURE__ */ jsxs("div", {
43
132
  className: clsx(withBaseName(), className),
@@ -54,21 +143,56 @@ const CircularProgress = forwardRef(function CircularProgress2({ className, hide
54
143
  /* @__PURE__ */ jsxs("div", {
55
144
  className: withBaseName("bars"),
56
145
  children: [
146
+ buffer > 0 && /* @__PURE__ */ jsx("div", {
147
+ className: withBaseName("bufferOverlayRight"),
148
+ children: /* @__PURE__ */ jsxs("div", {
149
+ className: clsx(withBaseName("bufferSubOverlayRight"), {
150
+ [withBaseName("bufferSubOverlay")]: buffer <= 50
151
+ }),
152
+ style: bufferSubOverlayRightStyle,
153
+ children: [
154
+ /* @__PURE__ */ jsx("div", {
155
+ className: withBaseName("bufferBackground")
156
+ }),
157
+ /* @__PURE__ */ jsx("div", {
158
+ className: withBaseName("bufferBorder")
159
+ })
160
+ ]
161
+ })
162
+ }),
57
163
  /* @__PURE__ */ jsx("div", {
58
164
  className: withBaseName("barOverlayRight"),
59
165
  children: /* @__PURE__ */ jsx("div", {
60
166
  className: withBaseName("barSubOverlayRight"),
61
- style: subOverlayRightStyle,
167
+ style: barSubOverlayRightStyle,
62
168
  children: /* @__PURE__ */ jsx("div", {
63
169
  className: withBaseName("bar")
64
170
  })
65
171
  })
66
172
  }),
173
+ buffer > 0 && /* @__PURE__ */ jsx("div", {
174
+ className: withBaseName("bufferOverlayLeft"),
175
+ children: /* @__PURE__ */ jsxs("div", {
176
+ className: clsx(
177
+ withBaseName("bufferSubOverlay"),
178
+ withBaseName("bufferSubOverlayLeft")
179
+ ),
180
+ style: bufferSubOverlayLeftStyle,
181
+ children: [
182
+ /* @__PURE__ */ jsx("div", {
183
+ className: withBaseName("bufferBorder")
184
+ }),
185
+ /* @__PURE__ */ jsx("div", {
186
+ className: withBaseName("bufferBackground")
187
+ })
188
+ ]
189
+ })
190
+ }),
67
191
  /* @__PURE__ */ jsx("div", {
68
192
  className: withBaseName("barOverlayLeft"),
69
193
  children: /* @__PURE__ */ jsx("div", {
70
194
  className: withBaseName("barSubOverlayLeft"),
71
- style: subOverlayLeftStyle,
195
+ style: barSubOverlayLeftStyle,
72
196
  children: /* @__PURE__ */ jsx("div", {
73
197
  className: withBaseName("bar")
74
198
  })
@@ -1 +1 @@
1
- {"version":3,"file":"CircularProgress.js","sources":["../src/progress/CircularProgress/CircularProgress.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, CSSProperties, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../../utils\";\nimport { Text } from \"../../text\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport circularProgressCSS from \"./CircularProgress.css\";\n\nconst withBaseName = makePrefixer(\"saltCircularProgress\");\n\nexport interface CircularProgressProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Whether to hide the text label within the progress. Defaults to `false`.\n */\n hideLabel?: boolean;\n /**\n * The value of the max progress indicator.\n * Default value is 100.\n */\n max?: number;\n /**\n * The value of the min progress indicator.\n * Default value is 0.\n */\n min?: number;\n /**\n * The value of the progress indicator.\n * Value between 0 and max.\n */\n value?: number;\n}\n\nexport const CircularProgress = forwardRef<\n HTMLDivElement,\n CircularProgressProps\n>(function CircularProgress(\n { className, hideLabel = false, max = 100, min = 0, value = 0, ...rest },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-circular-progress\",\n css: circularProgressCSS,\n window: targetWindow,\n });\n\n const subOverlayRightStyle: CSSProperties = {};\n const subOverlayLeftStyle: CSSProperties = {};\n\n const getRotationAngle = (progress: number, shift = 0) => {\n return -180 + ((progress - shift) / 50) * 180;\n };\n\n const progress = ((value - min) / (max - min)) * 100;\n\n if (progress <= 50) {\n const rotationAngle = getRotationAngle(progress);\n subOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;\n subOverlayLeftStyle.transform = \"rotate(-180deg)\";\n } else {\n const rotationAngle = getRotationAngle(progress, 50);\n subOverlayRightStyle.transform = \"rotate(0deg)\";\n subOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;\n }\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n role=\"progressbar\"\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"track\")} />\n <div className={withBaseName(\"bars\")}>\n <div className={withBaseName(\"barOverlayRight\")}>\n <div\n className={withBaseName(\"barSubOverlayRight\")}\n style={subOverlayRightStyle}\n >\n <div className={withBaseName(\"bar\")} />\n </div>\n </div>\n <div className={withBaseName(\"barOverlayLeft\")}>\n <div\n className={withBaseName(\"barSubOverlayLeft\")}\n style={subOverlayLeftStyle}\n >\n <div className={withBaseName(\"bar\")} />\n </div>\n </div>\n </div>\n {!hideLabel && (\n <Text styleAs=\"h2\" className={withBaseName(\"progressLabel\")}>\n {`${Math.round(progress)} %`}\n </Text>\n )}\n </div>\n );\n});\n"],"names":["CircularProgress","circularProgressCSS","progress"],"mappings":";;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAe,aAAa,sBAAsB,CAAA,CAAA;AAwBjD,MAAM,mBAAmB,UAG9B,CAAA,SAASA,iBACT,CAAA,EAAE,WAAW,SAAY,GAAA,KAAA,EAAO,GAAM,GAAA,GAAA,EAAK,MAAM,CAAG,EAAA,KAAA,GAAQ,CAAM,EAAA,GAAA,IAAA,IAClE,GACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,wBAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,uBAAsC,EAAC,CAAA;AAC7C,EAAA,MAAM,sBAAqC,EAAC,CAAA;AAE5C,EAAA,MAAM,gBAAmB,GAAA,CAACC,SAAkB,EAAA,KAAA,GAAQ,CAAM,KAAA;AACxD,IAAO,OAAA,CAAA,GAAA,GAAA,CAASA,SAAW,GAAA,KAAA,IAAS,EAAM,GAAA,GAAA,CAAA;AAAA,GAC5C,CAAA;AAEA,EAAA,MAAM,QAAa,GAAA,CAAA,KAAA,GAAQ,GAAQ,KAAA,GAAA,GAAM,GAAQ,CAAA,GAAA,GAAA,CAAA;AAEjD,EAAA,IAAI,YAAY,EAAI,EAAA;AAClB,IAAM,MAAA,aAAA,GAAgB,iBAAiB,QAAQ,CAAA,CAAA;AAC/C,IAAA,oBAAA,CAAqB,YAAY,CAAU,OAAA,EAAA,aAAA,CAAA,IAAA,CAAA,CAAA;AAC3C,IAAA,mBAAA,CAAoB,SAAY,GAAA,iBAAA,CAAA;AAAA,GAC3B,MAAA;AACL,IAAM,MAAA,aAAA,GAAgB,gBAAiB,CAAA,QAAA,EAAU,EAAE,CAAA,CAAA;AACnD,IAAA,oBAAA,CAAqB,SAAY,GAAA,cAAA,CAAA;AACjC,IAAA,mBAAA,CAAoB,YAAY,CAAU,OAAA,EAAA,aAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GAC5C;AAEA,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,GAAA;AAAA,IACA,IAAK,EAAA,aAAA;AAAA,IACL,eAAe,EAAA,GAAA;AAAA,IACf,eAAe,EAAA,GAAA;AAAA,IACf,eAAA,EAAe,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,IAC9B,GAAG,IAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,OAAG,CAAA;AAAA,sBACtC,IAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,QACjC,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,KAAA,EAAA;AAAA,YAAI,SAAA,EAAW,aAAa,iBAAiB,CAAA;AAAA,YAC5C,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,cACC,SAAA,EAAW,aAAa,oBAAoB,CAAA;AAAA,cAC5C,KAAO,EAAA,oBAAA;AAAA,cAEP,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,gBAAI,SAAA,EAAW,aAAa,KAAK,CAAA;AAAA,eAAG,CAAA;AAAA,aACvC,CAAA;AAAA,WACF,CAAA;AAAA,0BACC,GAAA,CAAA,KAAA,EAAA;AAAA,YAAI,SAAA,EAAW,aAAa,gBAAgB,CAAA;AAAA,YAC3C,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,cACC,SAAA,EAAW,aAAa,mBAAmB,CAAA;AAAA,cAC3C,KAAO,EAAA,mBAAA;AAAA,cAEP,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,gBAAI,SAAA,EAAW,aAAa,KAAK,CAAA;AAAA,eAAG,CAAA;AAAA,aACvC,CAAA;AAAA,WACF,CAAA;AAAA,SAAA;AAAA,OACF,CAAA;AAAA,MACC,CAAC,6BACC,GAAA,CAAA,IAAA,EAAA;AAAA,QAAK,OAAQ,EAAA,IAAA;AAAA,QAAK,SAAA,EAAW,aAAa,eAAe,CAAA;AAAA,QACvD,QAAA,EAAA,CAAA,EAAG,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA,EAAA,CAAA;AAAA,OACzB,CAAA;AAAA,KAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"CircularProgress.js","sources":["../src/progress/CircularProgress/CircularProgress.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, CSSProperties, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../../utils\";\nimport { Text } from \"../../text\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport circularProgressCSS from \"./CircularProgress.css\";\n\nconst withBaseName = makePrefixer(\"saltCircularProgress\");\n\nconst getRotationAngle = (bar: number, shift = 0) => {\n return -180 + ((bar - shift) / 50) * 180;\n};\n\nexport interface CircularProgressProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The value of the buffer indicator.\n * Value between 0 and max.\n */\n bufferValue?: number;\n /**\n * Whether to hide the text label within the progress. Defaults to `false`.\n */\n hideLabel?: boolean;\n /**\n * The value of the max progress indicator.\n * Default value is 100.\n */\n max?: number;\n /**\n * The value of the min progress indicator.\n * Default value is 0.\n */\n min?: number;\n /**\n * The value of the progress indicator.\n * Value between 0 and max.\n */\n value?: number;\n}\n\nexport const CircularProgress = forwardRef<\n HTMLDivElement,\n CircularProgressProps\n>(function CircularProgress(\n {\n className,\n hideLabel = false,\n max = 100,\n min = 0,\n value = 0,\n bufferValue = 0,\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-circular-progress\",\n css: circularProgressCSS,\n window: targetWindow,\n });\n\n const bufferSubOverlayRightStyle: CSSProperties = {};\n const bufferSubOverlayLeftStyle: CSSProperties = {};\n const barSubOverlayRightStyle: CSSProperties = {};\n const barSubOverlayLeftStyle: CSSProperties = {};\n\n const buffer = ((bufferValue - min) / (max - min)) * 100;\n const progress = ((value - min) / (max - min)) * 100;\n\n if (progress <= 50) {\n const rotationAngle = getRotationAngle(progress);\n barSubOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;\n barSubOverlayLeftStyle.transform = \"rotate(-180deg)\";\n } else {\n const rotationAngle = getRotationAngle(progress, 50);\n barSubOverlayRightStyle.transform = \"rotate(0deg)\";\n barSubOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;\n }\n if (buffer <= 50) {\n const rotationAngle = getRotationAngle(buffer);\n bufferSubOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;\n bufferSubOverlayLeftStyle.transform = \"rotate(-180deg)\";\n } else {\n const rotationAngle = getRotationAngle(buffer, 50);\n bufferSubOverlayRightStyle.transform = \"rotate(0deg)\";\n bufferSubOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;\n }\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n role=\"progressbar\"\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"track\")} />\n <div className={withBaseName(\"bars\")}>\n {buffer > 0 && (\n <div className={withBaseName(\"bufferOverlayRight\")}>\n <div\n className={clsx(withBaseName(\"bufferSubOverlayRight\"), {\n [withBaseName(\"bufferSubOverlay\")]: buffer <= 50,\n })}\n style={bufferSubOverlayRightStyle}\n >\n <div className={withBaseName(\"bufferBackground\")} />\n <div className={withBaseName(\"bufferBorder\")} />\n </div>\n </div>\n )}\n <div className={withBaseName(\"barOverlayRight\")}>\n <div\n className={withBaseName(\"barSubOverlayRight\")}\n style={barSubOverlayRightStyle}\n >\n <div className={withBaseName(\"bar\")} />\n </div>\n </div>\n {buffer > 0 && (\n <div className={withBaseName(\"bufferOverlayLeft\")}>\n <div\n className={clsx(\n withBaseName(\"bufferSubOverlay\"),\n withBaseName(\"bufferSubOverlayLeft\")\n )}\n style={bufferSubOverlayLeftStyle}\n >\n <div className={withBaseName(\"bufferBorder\")} />\n <div className={withBaseName(\"bufferBackground\")} />\n </div>\n </div>\n )}\n <div className={withBaseName(\"barOverlayLeft\")}>\n <div\n className={withBaseName(\"barSubOverlayLeft\")}\n style={barSubOverlayLeftStyle}\n >\n <div className={withBaseName(\"bar\")} />\n </div>\n </div>\n </div>\n {!hideLabel && (\n <Text styleAs=\"h2\" className={withBaseName(\"progressLabel\")}>\n {`${Math.round(progress)} %`}\n </Text>\n )}\n </div>\n );\n});\n"],"names":["CircularProgress","circularProgressCSS"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltLinearProgress {\n align-items: center;\n color: var(--salt-content-primary-foreground);\n display: flex;\n min-width: 400px;\n font-size: var(--linearProgress-fontSize);\n box-sizing: border-box;\n}\n\n.saltLinearProgress-barContainer {\n background: none;\n position: relative;\n width: 100%;\n overflow: hidden;\n height: var(--salt-size-bar-strong);\n}\n\n.saltLinearProgress-bar {\n width: 100%;\n position: absolute;\n left: 0;\n bottom: 0;\n top: 0;\n transition: transform 0.2s linear;\n transform-origin: left;\n background: var(--salt-accent-background);\n z-index: 2;\n}\n\n.saltLinearProgress-track {\n background: var(--salt-track-borderColor);\n width: 100%;\n height: var(--salt-size-bar-small);\n position: absolute;\n top: calc((var(--salt-size-bar-strong) - var(--salt-size-bar-small)) / 2);\n transition: transform 0.2s linear;\n transform-origin: left;\n}\n\n.saltLinearProgress-progressLabel {\n color: inherit;\n margin: 0;\n white-space: nowrap;\n padding-left: var(--salt-spacing-100);\n}\n";
1
+ var css_248z = ".saltLinearProgress {\n align-items: center;\n color: var(--salt-content-primary-foreground);\n display: flex;\n min-width: 400px;\n font-size: var(--linearProgress-fontSize);\n box-sizing: border-box;\n}\n\n.saltLinearProgress-barContainer {\n background: none;\n position: relative;\n width: 100%;\n overflow: hidden;\n height: var(--salt-size-bar-strong);\n}\n\n.saltLinearProgress-bar,\n.saltLinearProgress-buffer {\n position: absolute;\n left: 0;\n bottom: 0;\n top: 0;\n transition: transform 0.2s linear;\n transform-origin: left;\n}\n\n.saltLinearProgress-buffer {\n width: 0;\n background: var(--salt-container-primary-background);\n outline: solid var(--salt-size-border) var(--salt-accent-background);\n z-index: var(--salt-zIndex-default);\n outline-offset: calc(var(--salt-size-border) * -1);\n}\n\n.saltLinearProgress-bar {\n width: 100%;\n background: var(--salt-accent-background);\n z-index: calc(var(--salt-zIndex-default) * 2);\n}\n\n.saltLinearProgress-track {\n background: var(--salt-track-borderColor);\n width: 100%;\n height: var(--salt-size-bar);\n position: absolute;\n top: calc((var(--salt-size-bar-strong) - var(--salt-size-bar)) / 2);\n right: 0;\n transition: transform 0.2s linear;\n transform-origin: left;\n}\n\n.saltLinearProgress-progressLabel {\n color: inherit;\n margin: 0;\n white-space: nowrap;\n padding-left: var(--salt-spacing-100);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=LinearProgress.css.js.map
@@ -6,19 +6,96 @@ import '../../utils/useFloatingUI/useFloatingUI.js';
6
6
  import '../../utils/useId.js';
7
7
  import '../../salt-provider/SaltProvider.js';
8
8
  import '../../viewport/ViewportProvider.js';
9
+ import '../../accordion/AccordionGroup.js';
10
+ import '../../accordion/AccordionPanel.js';
11
+ import '../../accordion/Accordion.js';
12
+ import '../../accordion/AccordionHeader.js';
13
+ import '../../aria-announcer/AriaAnnouncerContext.js';
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/Checkbox.js';
25
+ import '../../checkbox/CheckboxGroup.js';
26
+ import { useComponentCssInjection } from '@salt-ds/styles';
27
+ import { useWindow } from '@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';
9
32
  import { Text } from '../../text/Text.js';
10
33
  import '../../text/Display.js';
11
34
  import '../../text/Headings.js';
12
35
  import '../../text/Label.js';
13
36
  import '../../text/TextNotation.js';
14
37
  import '../../text/TextAction.js';
15
- import { useWindow } from '@salt-ds/window';
16
- import { useComponentCssInjection } from '@salt-ds/styles';
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 '../CircularProgress/CircularProgress.js';
71
+ import '../../radio-button/RadioButton.js';
72
+ import '../../radio-button/RadioButtonGroup.js';
73
+ import '../../scrim/Scrim.js';
74
+ import '../../spinner/Spinner.js';
75
+ import '../../stack-layout/StackLayout.js';
76
+ import '../../status-adornment/StatusAdornment.js';
77
+ import '../../toast/Toast.js';
78
+ import '../../toast/ToastContent.js';
79
+ import '../../split-layout/SplitLayout.js';
80
+ import '../../switch/Switch.js';
81
+ import '../../toggle-button/ToggleButton.js';
82
+ import '../../toggle-button-group/ToggleButtonGroup.js';
83
+ import '../../toggle-button-group/ToggleButtonGroupContext.js';
84
+ import '../../tooltip/Tooltip.js';
85
+ import '@floating-ui/react';
17
86
  import css_248z from './LinearProgress.css.js';
18
87
 
19
88
  const withBaseName = makePrefixer("saltLinearProgress");
20
89
  const LinearProgress = forwardRef(
21
- function LinearProgress2({ className, hideLabel = false, max = 100, min = 0, value = 0, ...rest }, ref) {
90
+ function LinearProgress2({
91
+ className,
92
+ hideLabel = false,
93
+ max = 100,
94
+ min = 0,
95
+ value = 0,
96
+ bufferValue = 0,
97
+ ...rest
98
+ }, ref) {
22
99
  const targetWindow = useWindow();
23
100
  useComponentCssInjection({
24
101
  testId: "salt-linear-progress",
@@ -26,10 +103,11 @@ const LinearProgress = forwardRef(
26
103
  window: targetWindow
27
104
  });
28
105
  const progress = (value - min) / (max - min) * 100;
106
+ const buffer = (bufferValue - min) / (max - min) * 100;
29
107
  const barStyle = {};
30
- const trackStyle = {};
31
- barStyle.transform = `translateX(${progress - 100}%)`;
32
- trackStyle.transform = `translateX(${progress}%)`;
108
+ const bufferStyle = {};
109
+ barStyle.width = `${progress}%`;
110
+ bufferStyle.width = `${buffer}%`;
33
111
  return /* @__PURE__ */ jsxs("div", {
34
112
  className: clsx(withBaseName(), className),
35
113
  ref,
@@ -46,9 +124,12 @@ const LinearProgress = forwardRef(
46
124
  className: withBaseName("bar"),
47
125
  style: barStyle
48
126
  }),
127
+ bufferValue && /* @__PURE__ */ jsx("div", {
128
+ className: withBaseName("buffer"),
129
+ style: bufferStyle
130
+ }),
49
131
  /* @__PURE__ */ jsx("div", {
50
- className: withBaseName("track"),
51
- style: trackStyle
132
+ className: withBaseName("track")
52
133
  })
53
134
  ]
54
135
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"LinearProgress.js","sources":["../src/progress/LinearProgress/LinearProgress.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, CSSProperties, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../../utils\";\nimport { Text } from \"../../text\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport linearProgressCss from \"./LinearProgress.css\";\n\nconst withBaseName = makePrefixer(\"saltLinearProgress\");\n\nexport interface LinearProgressProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Whether to hide the text label within the progress. Defaults to `false`.\n */\n hideLabel?: boolean;\n /**\n * The value of the max progress indicator.\n * Default value is 100.\n */\n max?: number;\n /**\n * The value of the min progress indicator.\n * Default value is 0.\n */\n min?: number;\n /**\n * The value of the progress indicator.\n * Value between 0 and max.\n */\n value?: number;\n}\n\nexport const LinearProgress = forwardRef<HTMLDivElement, LinearProgressProps>(\n function LinearProgress(\n { className, hideLabel = false, max = 100, min = 0, value = 0, ...rest },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-linear-progress\",\n css: linearProgressCss,\n window: targetWindow,\n });\n\n const progress = ((value - min) / (max - min)) * 100;\n\n const barStyle: CSSProperties = {};\n const trackStyle: CSSProperties = {};\n\n barStyle.transform = `translateX(${progress - 100}%)`;\n trackStyle.transform = `translateX(${progress}%)`;\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n role=\"progressbar\"\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"barContainer\")}>\n <div className={withBaseName(\"bar\")} style={barStyle} />\n <div className={withBaseName(\"track\")} style={trackStyle} />\n </div>\n {!hideLabel && (\n <Text styleAs=\"h2\" className={withBaseName(\"progressLabel\")}>\n {`${Math.round(progress)} %`}\n </Text>\n )}\n </div>\n );\n }\n);\n"],"names":["LinearProgress","linearProgressCss"],"mappings":";;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AAwB/C,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,SAASA,eAAAA,CACP,EAAE,SAAA,EAAW,YAAY,KAAO,EAAA,GAAA,GAAM,GAAK,EAAA,GAAA,GAAM,CAAG,EAAA,KAAA,GAAQ,CAAM,EAAA,GAAA,IAAA,IAClE,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,sBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,QAAa,GAAA,CAAA,KAAA,GAAQ,GAAQ,KAAA,GAAA,GAAM,GAAQ,CAAA,GAAA,GAAA,CAAA;AAEjD,IAAA,MAAM,WAA0B,EAAC,CAAA;AACjC,IAAA,MAAM,aAA4B,EAAC,CAAA;AAEnC,IAAS,QAAA,CAAA,SAAA,GAAY,cAAc,QAAW,GAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AAC9C,IAAA,UAAA,CAAW,YAAY,CAAc,WAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA;AAErC,IAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,IAAK,EAAA,aAAA;AAAA,MACL,eAAe,EAAA,GAAA;AAAA,MACf,eAAe,EAAA,GAAA;AAAA,MACf,eAAA,EAAe,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,MAC9B,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,UACzC,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,KAAK,CAAA;AAAA,cAAG,KAAO,EAAA,QAAA;AAAA,aAAU,CAAA;AAAA,4BACrD,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,cAAG,KAAO,EAAA,UAAA;AAAA,aAAY,CAAA;AAAA,WAAA;AAAA,SAC5D,CAAA;AAAA,QACC,CAAC,6BACC,GAAA,CAAA,IAAA,EAAA;AAAA,UAAK,OAAQ,EAAA,IAAA;AAAA,UAAK,SAAA,EAAW,aAAa,eAAe,CAAA;AAAA,UACvD,QAAA,EAAA,CAAA,EAAG,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA,EAAA,CAAA;AAAA,SACzB,CAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"LinearProgress.js","sources":["../src/progress/LinearProgress/LinearProgress.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, CSSProperties, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../../utils\";\nimport { Text } from \"../../text\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport linearProgressCss from \"./LinearProgress.css\";\n\nconst withBaseName = makePrefixer(\"saltLinearProgress\");\n\nexport interface LinearProgressProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The value of the buffer indicator.\n * Value between 0 and max.\n */\n bufferValue?: number;\n /**\n * Whether to hide the text label within the progress. Defaults to `false`.\n */\n hideLabel?: boolean;\n /**\n * The value of the max progress indicator.\n * Default value is 100.\n */\n max?: number;\n /**\n * The value of the min progress indicator.\n * Default value is 0.\n */\n min?: number;\n /**\n * The value of the progress indicator.\n * Value between 0 and max.\n */\n value?: number;\n}\n\nexport const LinearProgress = forwardRef<HTMLDivElement, LinearProgressProps>(\n function LinearProgress(\n {\n className,\n hideLabel = false,\n max = 100,\n min = 0,\n value = 0,\n bufferValue = 0,\n ...rest\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-linear-progress\",\n css: linearProgressCss,\n window: targetWindow,\n });\n\n const progress = ((value - min) / (max - min)) * 100;\n const buffer = ((bufferValue - min) / (max - min)) * 100;\n const barStyle: CSSProperties = {};\n const bufferStyle: CSSProperties = {};\n\n barStyle.width = `${progress}%`;\n bufferStyle.width = `${buffer}%`;\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n role=\"progressbar\"\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"barContainer\")}>\n <div className={withBaseName(\"bar\")} style={barStyle} />\n {bufferValue && (\n <div className={withBaseName(\"buffer\")} style={bufferStyle} />\n )}\n <div className={withBaseName(\"track\")} />\n </div>\n {!hideLabel && (\n <Text styleAs=\"h2\" className={withBaseName(\"progressLabel\")}>\n {`${Math.round(progress)} %`}\n </Text>\n )}\n </div>\n );\n }\n);\n"],"names":["LinearProgress","linearProgressCss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AA6B/C,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,SAASA,eACP,CAAA;AAAA,IACE,SAAA;AAAA,IACA,SAAY,GAAA,KAAA;AAAA,IACZ,GAAM,GAAA,GAAA;AAAA,IACN,GAAM,GAAA,CAAA;AAAA,IACN,KAAQ,GAAA,CAAA;AAAA,IACR,WAAc,GAAA,CAAA;AAAA,IACX,GAAA,IAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,sBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,QAAa,GAAA,CAAA,KAAA,GAAQ,GAAQ,KAAA,GAAA,GAAM,GAAQ,CAAA,GAAA,GAAA,CAAA;AACjD,IAAA,MAAM,MAAW,GAAA,CAAA,WAAA,GAAc,GAAQ,KAAA,GAAA,GAAM,GAAQ,CAAA,GAAA,GAAA,CAAA;AACrD,IAAA,MAAM,WAA0B,EAAC,CAAA;AACjC,IAAA,MAAM,cAA6B,EAAC,CAAA;AAEpC,IAAA,QAAA,CAAS,QAAQ,CAAG,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AACpB,IAAA,WAAA,CAAY,QAAQ,CAAG,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAEvB,IAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,IAAK,EAAA,aAAA;AAAA,MACL,eAAe,EAAA,GAAA;AAAA,MACf,eAAe,EAAA,GAAA;AAAA,MACf,eAAA,EAAe,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,MAC9B,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,UACzC,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,KAAK,CAAA;AAAA,cAAG,KAAO,EAAA,QAAA;AAAA,aAAU,CAAA;AAAA,YACrD,+BACE,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,QAAQ,CAAA;AAAA,cAAG,KAAO,EAAA,WAAA;AAAA,aAAa,CAAA;AAAA,4BAE7D,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,aAAG,CAAA;AAAA,WAAA;AAAA,SACzC,CAAA;AAAA,QACC,CAAC,6BACC,GAAA,CAAA,IAAA,EAAA;AAAA,UAAK,OAAQ,EAAA,IAAA;AAAA,UAAK,SAAA,EAAW,aAAa,eAAe,CAAA;AAAA,UACvD,QAAA,EAAA,CAAA,EAAG,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA,EAAA,CAAA;AAAA,SACzB,CAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -7,13 +7,87 @@ import '../utils/useFloatingUI/useFloatingUI.js';
7
7
  import '../utils/useId.js';
8
8
  import '../salt-provider/SaltProvider.js';
9
9
  import '../viewport/ViewportProvider.js';
10
- import { useRadioGroup } from './internal/useRadioGroup.js';
11
- import { RadioButtonIcon } from './RadioButtonIcon.js';
12
- import css_248z from './RadioButton.css.js';
13
- import { useWindow } from '@salt-ds/window';
10
+ import '../accordion/AccordionGroup.js';
11
+ import '../accordion/AccordionPanel.js';
12
+ import '../accordion/Accordion.js';
13
+ import '../accordion/AccordionHeader.js';
14
+ import '../aria-announcer/AriaAnnouncerContext.js';
15
+ import '../avatar/Avatar.js';
16
+ import '../badge/Badge.js';
17
+ import '../banner/Banner.js';
18
+ import '../banner/BannerActions.js';
19
+ import '../banner/BannerContent.js';
20
+ import '../border-item/BorderItem.js';
21
+ import '../border-layout/BorderLayout.js';
22
+ import '../button/Button.js';
23
+ import '../card/Card.js';
24
+ import '../card/InteractableCard.js';
25
+ import '../checkbox/Checkbox.js';
26
+ import '../checkbox/CheckboxGroup.js';
14
27
  import { useComponentCssInjection } from '@salt-ds/styles';
28
+ import { useWindow } from '@salt-ds/window';
29
+ import '@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';
15
53
  import '../form-field-context/FormFieldContext.js';
16
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 '../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 './RadioButtonGroup.js';
75
+ import { RadioButtonIcon } from './RadioButtonIcon.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 '@floating-ui/react';
89
+ import { useRadioGroup } from './internal/useRadioGroup.js';
90
+ import css_248z from './RadioButton.css.js';
17
91
 
18
92
  const withBaseName = makePrefixer("saltRadioButton");
19
93
  const RadioButton = forwardRef(
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButton.js","sources":["../src/radio-button/RadioButton.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n FocusEventHandler,\n forwardRef,\n InputHTMLAttributes,\n ReactNode,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"../utils\";\nimport { useRadioGroup } from \"./internal/useRadioGroup\";\nimport { RadioButtonIcon } from \"./RadioButtonIcon\";\n\nimport radioButtonCss from \"./RadioButton.css\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { AdornmentValidationStatus } from \"../status-adornment\";\n\nconst withBaseName = makePrefixer(\"saltRadioButton\");\n\nexport interface RadioButtonProps\n extends Omit<\n ComponentPropsWithoutRef<\"label\">,\n \"onChange\" | \"onBlur\" | \"onFocus\"\n > {\n /**\n * Set the default selected radio button in the group\n */\n checked?: boolean;\n /**\n * Set the disabled state\n */\n disabled?: boolean;\n /**\n * **Deprecated**: Use validationStatus instead\n * Set the error state\n */\n error?: boolean;\n /**\n * Props to be passed to the radio input\n */\n inputProps?: Partial<InputHTMLAttributes<HTMLInputElement>>;\n /**\n * The label to be shown next to the radio icon\n */\n label?: ReactNode;\n /**\n * Name of the radio group\n */\n name?: string;\n /**\n * Callback for blur event\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Callback for change event\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Callback for focus event\n */\n onFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * Set the read only state.\n * **Note**: Setting a standalone radio button as read-only is not accessible. The whole radio buttton group should be set as read-only instead.\n */\n readOnly?: boolean;\n /**\n * Value of radio button\n */\n value?: string;\n /**\n * Validation status, one of \"warning\" | \"error\" | \"success\"\n *\n * RadioButton has styling variants for \"error\" and \"warning\".\n * No visual styling will be applied on \"success\" variant.\n */\n validationStatus?: AdornmentValidationStatus;\n}\n\nexport const RadioButton = forwardRef<HTMLLabelElement, RadioButtonProps>(\n function RadioButton(props, ref) {\n const {\n checked: checkedProp,\n className,\n disabled: disabledProp,\n error,\n inputProps = {},\n label,\n name: nameProp,\n onFocus,\n onBlur,\n onChange,\n readOnly: readOnlyProp,\n value,\n validationStatus: validationStatusProp,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-radio-button\",\n css: radioButtonCss,\n window: targetWindow,\n });\n\n const {\n a11yProps: formFieldA11yProps,\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n validationStatus: formFieldValidationStatus,\n } = useFormFieldProps();\n\n const radioGroup = useRadioGroup();\n\n const {\n \"aria-describedby\": inputDescribedBy,\n \"aria-labelledby\": inputLabelledBy,\n className: inputClassName,\n onChange: inputOnChange,\n ...restInputProps\n } = inputProps;\n\n const disabled = radioGroup?.disabled || formFieldDisabled || disabledProp;\n const readOnly = radioGroup?.readOnly || formFieldReadOnly || readOnlyProp;\n const validationStatus = !disabled\n ? radioGroup?.validationStatus ??\n formFieldValidationStatus ??\n validationStatusProp\n : undefined;\n\n const radioGroupChecked =\n radioGroup?.value != null && value != null\n ? radioGroup.value === value\n : checkedProp;\n const name = nameProp ?? radioGroup?.name;\n\n const [checked, setCheckedState] = useControlled({\n controlled: radioGroupChecked,\n default: Boolean(checkedProp),\n name: \"RadioBase\",\n state: \"checked\",\n });\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (readOnly) return;\n\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n\n onChange?.(event);\n inputOnChange?.(event);\n radioGroup?.onChange?.(event);\n };\n\n return (\n <label\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"readOnly\")]: readOnly,\n [withBaseName(\"error\")]: error /* **Deprecated** */,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n },\n className\n )}\n ref={ref}\n {...rest}\n >\n <input\n aria-describedby={\n clsx(\n radioGroup == undefined\n ? formFieldA11yProps?.[\"aria-describedby\"]\n : undefined,\n inputDescribedBy\n ) || undefined\n }\n aria-labelledby={\n clsx(\n radioGroup == undefined\n ? formFieldA11yProps?.[\"aria-labelledby\"]\n : undefined,\n inputLabelledBy\n ) || undefined\n }\n className={clsx(withBaseName(\"input\"), inputClassName)}\n checked={checked}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n value={value}\n onBlur={onBlur}\n onChange={handleChange}\n onFocus={onFocus}\n type=\"radio\"\n {...restInputProps}\n />\n <RadioButtonIcon\n checked={checked}\n disabled={disabled}\n readOnly={readOnly}\n validationStatus={validationStatus}\n error={error}\n />\n {label}\n </label>\n );\n }\n);\n"],"names":["RadioButton","radioButtonCss","_a"],"mappings":"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"}
1
+ {"version":3,"file":"RadioButton.js","sources":["../src/radio-button/RadioButton.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n FocusEventHandler,\n forwardRef,\n InputHTMLAttributes,\n ReactNode,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"../utils\";\nimport { useRadioGroup } from \"./internal/useRadioGroup\";\nimport { RadioButtonIcon } from \"./RadioButtonIcon\";\n\nimport radioButtonCss from \"./RadioButton.css\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { AdornmentValidationStatus } from \"../status-adornment\";\n\nconst withBaseName = makePrefixer(\"saltRadioButton\");\n\nexport interface RadioButtonProps\n extends Omit<\n ComponentPropsWithoutRef<\"label\">,\n \"onChange\" | \"onBlur\" | \"onFocus\"\n > {\n /**\n * Set the default selected radio button in the group\n */\n checked?: boolean;\n /**\n * Set the disabled state\n */\n disabled?: boolean;\n /**\n * **Deprecated**: Use validationStatus instead\n * Set the error state\n */\n error?: boolean;\n /**\n * Props to be passed to the radio input\n */\n inputProps?: Partial<InputHTMLAttributes<HTMLInputElement>>;\n /**\n * The label to be shown next to the radio icon\n */\n label?: ReactNode;\n /**\n * Name of the radio group\n */\n name?: string;\n /**\n * Callback for blur event\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Callback for change event\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Callback for focus event\n */\n onFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * Set the read only state.\n * **Note**: Setting a standalone radio button as read-only is not accessible. The whole radio buttton group should be set as read-only instead.\n */\n readOnly?: boolean;\n /**\n * Value of radio button\n */\n value?: string;\n /**\n * Validation status, one of \"warning\" | \"error\" | \"success\"\n *\n * RadioButton has styling variants for \"error\" and \"warning\".\n * No visual styling will be applied on \"success\" variant.\n */\n validationStatus?: AdornmentValidationStatus;\n}\n\nexport const RadioButton = forwardRef<HTMLLabelElement, RadioButtonProps>(\n function RadioButton(props, ref) {\n const {\n checked: checkedProp,\n className,\n disabled: disabledProp,\n error,\n inputProps = {},\n label,\n name: nameProp,\n onFocus,\n onBlur,\n onChange,\n readOnly: readOnlyProp,\n value,\n validationStatus: validationStatusProp,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-radio-button\",\n css: radioButtonCss,\n window: targetWindow,\n });\n\n const {\n a11yProps: formFieldA11yProps,\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n validationStatus: formFieldValidationStatus,\n } = useFormFieldProps();\n\n const radioGroup = useRadioGroup();\n\n const {\n \"aria-describedby\": inputDescribedBy,\n \"aria-labelledby\": inputLabelledBy,\n className: inputClassName,\n onChange: inputOnChange,\n ...restInputProps\n } = inputProps;\n\n const disabled = radioGroup?.disabled || formFieldDisabled || disabledProp;\n const readOnly = radioGroup?.readOnly || formFieldReadOnly || readOnlyProp;\n const validationStatus = !disabled\n ? radioGroup?.validationStatus ??\n formFieldValidationStatus ??\n validationStatusProp\n : undefined;\n\n const radioGroupChecked =\n radioGroup?.value != null && value != null\n ? radioGroup.value === value\n : checkedProp;\n const name = nameProp ?? radioGroup?.name;\n\n const [checked, setCheckedState] = useControlled({\n controlled: radioGroupChecked,\n default: Boolean(checkedProp),\n name: \"RadioBase\",\n state: \"checked\",\n });\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (readOnly) return;\n\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n\n onChange?.(event);\n inputOnChange?.(event);\n radioGroup?.onChange?.(event);\n };\n\n return (\n <label\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"readOnly\")]: readOnly,\n [withBaseName(\"error\")]: error /* **Deprecated** */,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n },\n className\n )}\n ref={ref}\n {...rest}\n >\n <input\n aria-describedby={\n clsx(\n radioGroup == undefined\n ? formFieldA11yProps?.[\"aria-describedby\"]\n : undefined,\n inputDescribedBy\n ) || undefined\n }\n aria-labelledby={\n clsx(\n radioGroup == undefined\n ? formFieldA11yProps?.[\"aria-labelledby\"]\n : undefined,\n inputLabelledBy\n ) || undefined\n }\n className={clsx(withBaseName(\"input\"), inputClassName)}\n checked={checked}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n value={value}\n onBlur={onBlur}\n onChange={handleChange}\n onFocus={onFocus}\n type=\"radio\"\n {...restInputProps}\n />\n <RadioButtonIcon\n checked={checked}\n disabled={disabled}\n readOnly={readOnly}\n validationStatus={validationStatus}\n error={error}\n />\n {label}\n </label>\n );\n }\n);\n"],"names":["RadioButton","radioButtonCss","_a"],"mappings":"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"}