@salt-ds/core 1.72.0 → 1.74.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 (375) hide show
  1. package/CHANGELOG.md +178 -0
  2. package/css/salt-core.css +533 -147
  3. package/dist-cjs/accordion/AccordionHeader.css.js +1 -1
  4. package/dist-cjs/border-layout/BorderLayout.js.map +1 -1
  5. package/dist-cjs/breadcrumbs/Breadcrumb.js +5 -6
  6. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
  7. package/dist-cjs/button/Button.css.js +1 -1
  8. package/dist-cjs/card/CardContent.css.js +1 -1
  9. package/dist-cjs/card/hasCardSection.js +11 -3
  10. package/dist-cjs/card/hasCardSection.js.map +1 -1
  11. package/dist-cjs/checkbox/CheckboxIcon.js.map +1 -1
  12. package/dist-cjs/collapsible/CollapsiblePanel.css.js +1 -1
  13. package/dist-cjs/collapsible/CollapsiblePanel.js +15 -15
  14. package/dist-cjs/collapsible/CollapsiblePanel.js.map +1 -1
  15. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  16. package/dist-cjs/dialog/DialogHeader.js +2 -0
  17. package/dist-cjs/dialog/DialogHeader.js.map +1 -1
  18. package/dist-cjs/drawer/Drawer.css.js +1 -1
  19. package/dist-cjs/drawer/Drawer.js +54 -6
  20. package/dist-cjs/drawer/Drawer.js.map +1 -1
  21. package/dist-cjs/drawer/DrawerContext.js +2 -0
  22. package/dist-cjs/drawer/DrawerContext.js.map +1 -1
  23. package/dist-cjs/drawer/DrawerFooter.css.js +1 -1
  24. package/dist-cjs/drawer/DrawerHeader.css.js +1 -1
  25. package/dist-cjs/drawer/DrawerHeader.js +8 -3
  26. package/dist-cjs/drawer/DrawerHeader.js.map +1 -1
  27. package/dist-cjs/drawer/internal/DrawerResizeGuide.css.js +6 -0
  28. package/dist-cjs/drawer/internal/DrawerResizeGuide.css.js.map +1 -0
  29. package/dist-cjs/drawer/internal/DrawerResizeGuide.js +44 -0
  30. package/dist-cjs/drawer/internal/DrawerResizeGuide.js.map +1 -0
  31. package/dist-cjs/drawer/internal/DrawerResizeHandle.css.js +6 -0
  32. package/dist-cjs/drawer/internal/DrawerResizeHandle.css.js.map +1 -0
  33. package/dist-cjs/drawer/internal/DrawerResizeHandle.js +43 -0
  34. package/dist-cjs/drawer/internal/DrawerResizeHandle.js.map +1 -0
  35. package/dist-cjs/drawer/internal/useDrawerResize.js +519 -0
  36. package/dist-cjs/drawer/internal/useDrawerResize.js.map +1 -0
  37. package/dist-cjs/dropdown/Dropdown.css.js +1 -1
  38. package/dist-cjs/dropdown/Dropdown.js +1 -1
  39. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  40. package/dist-cjs/form-field/FormField.js +2 -2
  41. package/dist-cjs/form-field/FormField.js.map +1 -1
  42. package/dist-cjs/form-field/FormFieldHelperText.js +2 -0
  43. package/dist-cjs/form-field/FormFieldHelperText.js.map +1 -1
  44. package/dist-cjs/form-field/FormFieldLabel.css.js +1 -1
  45. package/dist-cjs/form-field/FormFieldLabel.js +2 -0
  46. package/dist-cjs/form-field/FormFieldLabel.js.map +1 -1
  47. package/dist-cjs/form-field-context/FormFieldContext.js.map +1 -1
  48. package/dist-cjs/index.js +11 -0
  49. package/dist-cjs/index.js.map +1 -1
  50. package/dist-cjs/input/Input.css.js +1 -1
  51. package/dist-cjs/link/Link.js +2 -0
  52. package/dist-cjs/link/Link.js.map +1 -1
  53. package/dist-cjs/link/LinkAction.js +3 -2
  54. package/dist-cjs/link/LinkAction.js.map +1 -1
  55. package/dist-cjs/link-button/LinkButton.css.js +1 -1
  56. package/dist-cjs/link-button/LinkButton.js +3 -2
  57. package/dist-cjs/link-button/LinkButton.js.map +1 -1
  58. package/dist-cjs/list-box/ListBox.js +1 -1
  59. package/dist-cjs/list-box/ListBox.js.map +1 -1
  60. package/dist-cjs/list-control/ListControlContext.js.map +1 -1
  61. package/dist-cjs/list-control/ListControlOptionContext.js.map +1 -1
  62. package/dist-cjs/mega-menu/MegaMenuGroupHeading.css.js +1 -1
  63. package/dist-cjs/mega-menu/MegaMenuListItem.css.js +1 -1
  64. package/dist-cjs/menu/MenuAlignmentContext.js +55 -0
  65. package/dist-cjs/menu/MenuAlignmentContext.js.map +1 -0
  66. package/dist-cjs/menu/MenuBase.js +9 -3
  67. package/dist-cjs/menu/MenuBase.js.map +1 -1
  68. package/dist-cjs/menu/MenuGroup.css.js +1 -1
  69. package/dist-cjs/menu/MenuGroup.js +42 -3
  70. package/dist-cjs/menu/MenuGroup.js.map +1 -1
  71. package/dist-cjs/menu/MenuGroupContext.js +27 -0
  72. package/dist-cjs/menu/MenuGroupContext.js.map +1 -0
  73. package/dist-cjs/menu/MenuItem.css.js +1 -1
  74. package/dist-cjs/menu/MenuItem.js +176 -50
  75. package/dist-cjs/menu/MenuItem.js.map +1 -1
  76. package/dist-cjs/menu/MenuPanel.js +12 -3
  77. package/dist-cjs/menu/MenuPanel.js.map +1 -1
  78. package/dist-cjs/menu/MenuPanelContext.js +3 -1
  79. package/dist-cjs/menu/MenuPanelContext.js.map +1 -1
  80. package/dist-cjs/multiline-input/MultilineInput.css.js +1 -1
  81. package/dist-cjs/navigation-item/NavigationItem.css.js +1 -1
  82. package/dist-cjs/number-input/NumberInput.css.js +1 -1
  83. package/dist-cjs/on-solid-button/OnSolidButton.css.js +6 -0
  84. package/dist-cjs/on-solid-button/OnSolidButton.css.js.map +1 -0
  85. package/dist-cjs/on-solid-button/OnSolidButton.js +68 -0
  86. package/dist-cjs/on-solid-button/OnSolidButton.js.map +1 -0
  87. package/dist-cjs/option/Option.css.js +1 -1
  88. package/dist-cjs/option/Option.js +7 -1
  89. package/dist-cjs/option/Option.js.map +1 -1
  90. package/dist-cjs/option/OptionGroup.css.js +1 -1
  91. package/dist-cjs/overlay/OverlayHeader.js +2 -0
  92. package/dist-cjs/overlay/OverlayHeader.js.map +1 -1
  93. package/dist-cjs/overlay/OverlayPanelCloseButton.js +1 -1
  94. package/dist-cjs/overlay/OverlayPanelCloseButton.js.map +1 -1
  95. package/dist-cjs/pagination/CompactPaginator.js +2 -0
  96. package/dist-cjs/pagination/CompactPaginator.js.map +1 -1
  97. package/dist-cjs/pagination/GoToInput.js +2 -0
  98. package/dist-cjs/pagination/GoToInput.js.map +1 -1
  99. package/dist-cjs/pill/PillCheckIcon.js.map +1 -1
  100. package/dist-cjs/pill-input/PillInput.css.js +1 -1
  101. package/dist-cjs/progress/CircularProgress/CircularProgress.js +2 -0
  102. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  103. package/dist-cjs/progress/LinearProgress/LinearProgress.js +2 -0
  104. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  105. package/dist-cjs/salt-provider/ThemeApplicator.js +10 -6
  106. package/dist-cjs/salt-provider/ThemeApplicator.js.map +1 -1
  107. package/dist-cjs/side-panel/SidePanelTitle.js +2 -0
  108. package/dist-cjs/side-panel/SidePanelTitle.js.map +1 -1
  109. package/dist-cjs/side-panel/SidePanelTrigger.js.map +1 -1
  110. package/dist-cjs/side-panel/internal/useIsScrollable.js.map +1 -1
  111. package/dist-cjs/side-panel/useSidePanel.js +4 -9
  112. package/dist-cjs/side-panel/useSidePanel.js.map +1 -1
  113. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +2 -2
  114. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  115. package/dist-cjs/slider/internal/SliderThumb.js.map +1 -1
  116. package/dist-cjs/slider/internal/SliderTooltip.js +2 -0
  117. package/dist-cjs/slider/internal/SliderTooltip.js.map +1 -1
  118. package/dist-cjs/slider/internal/SliderTrack.js +2 -0
  119. package/dist-cjs/slider/internal/SliderTrack.js.map +1 -1
  120. package/dist-cjs/slider/internal/useRangeSliderThumb.js.map +1 -1
  121. package/dist-cjs/slider/internal/useSliderThumb.js.map +1 -1
  122. package/dist-cjs/slider/internal/utils.js.map +1 -1
  123. package/dist-cjs/stepper/Stepper.js +1 -1
  124. package/dist-cjs/stepper/Stepper.js.map +1 -1
  125. package/dist-cjs/stepper/internal/StepText.css.js +1 -1
  126. package/dist-cjs/stepper/internal/StepText.js +2 -0
  127. package/dist-cjs/stepper/internal/StepText.js.map +1 -1
  128. package/dist-cjs/table/Table.css.js +1 -1
  129. package/dist-cjs/tabs/Tabs.js +1 -1
  130. package/dist-cjs/tabs/Tabs.js.map +1 -1
  131. package/dist-cjs/tabs/internal/overflow/useOverflow.js.map +1 -1
  132. package/dist-cjs/tabs/internal/overflow/useRenderedTabWidth.js.map +1 -1
  133. package/dist-cjs/text/Code.js +1 -1
  134. package/dist-cjs/text/Code.js.map +1 -1
  135. package/dist-cjs/text/Editorial.js +32 -0
  136. package/dist-cjs/text/Editorial.js.map +1 -0
  137. package/dist-cjs/text/Eyebrow.js +12 -0
  138. package/dist-cjs/text/Eyebrow.js.map +1 -0
  139. package/dist-cjs/text/Text.css.js +1 -1
  140. package/dist-cjs/text/Text.js +6 -2
  141. package/dist-cjs/text/Text.js.map +1 -1
  142. package/dist-cjs/toggle-button/ToggleButton.css.js +1 -1
  143. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
  144. package/dist-cjs/toolbar/ToolbarOverflow.js +8 -4
  145. package/dist-cjs/toolbar/ToolbarOverflow.js.map +1 -1
  146. package/dist-cjs/toolbar/toolbarUtils.js.map +1 -1
  147. package/dist-cjs/tooltip/useAriaAnnounce.js +4 -2
  148. package/dist-cjs/tooltip/useAriaAnnounce.js.map +1 -1
  149. package/dist-cjs/tooltip/useTooltip.js.map +1 -1
  150. package/dist-cjs/tree/TreeContext.js.map +1 -1
  151. package/dist-cjs/tree/TreeNodeTrigger.css.js +1 -1
  152. package/dist-cjs/tree/TreeNodeTrigger.js +0 -1
  153. package/dist-cjs/tree/TreeNodeTrigger.js.map +1 -1
  154. package/dist-cjs/utils/forkRef.js +34 -0
  155. package/dist-cjs/utils/forkRef.js.map +1 -0
  156. package/dist-cjs/utils/getRefFromChildren.js.map +1 -1
  157. package/dist-cjs/utils/marginMiddleware.js.map +1 -1
  158. package/dist-cjs/utils/setRef.js.map +1 -1
  159. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  160. package/dist-cjs/utils/useForkRef.js +3 -6
  161. package/dist-cjs/utils/useForkRef.js.map +1 -1
  162. package/dist-cjs/utils/useResizeObserver.js.map +1 -1
  163. package/dist-cjs/vertical-navigation/VerticalNavigationSubMenu.css.js +1 -1
  164. package/dist-es/accordion/AccordionHeader.css.js +1 -1
  165. package/dist-es/border-layout/BorderLayout.js.map +1 -1
  166. package/dist-es/breadcrumbs/Breadcrumb.js +5 -6
  167. package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
  168. package/dist-es/button/Button.css.js +1 -1
  169. package/dist-es/card/CardContent.css.js +1 -1
  170. package/dist-es/card/hasCardSection.js +11 -3
  171. package/dist-es/card/hasCardSection.js.map +1 -1
  172. package/dist-es/checkbox/CheckboxIcon.js.map +1 -1
  173. package/dist-es/collapsible/CollapsiblePanel.css.js +1 -1
  174. package/dist-es/collapsible/CollapsiblePanel.js +16 -16
  175. package/dist-es/collapsible/CollapsiblePanel.js.map +1 -1
  176. package/dist-es/combo-box/ComboBox.js.map +1 -1
  177. package/dist-es/dialog/DialogHeader.js +2 -0
  178. package/dist-es/dialog/DialogHeader.js.map +1 -1
  179. package/dist-es/drawer/Drawer.css.js +1 -1
  180. package/dist-es/drawer/Drawer.js +54 -6
  181. package/dist-es/drawer/Drawer.js.map +1 -1
  182. package/dist-es/drawer/DrawerContext.js +2 -0
  183. package/dist-es/drawer/DrawerContext.js.map +1 -1
  184. package/dist-es/drawer/DrawerFooter.css.js +1 -1
  185. package/dist-es/drawer/DrawerHeader.css.js +1 -1
  186. package/dist-es/drawer/DrawerHeader.js +8 -3
  187. package/dist-es/drawer/DrawerHeader.js.map +1 -1
  188. package/dist-es/drawer/internal/DrawerResizeGuide.css.js +4 -0
  189. package/dist-es/drawer/internal/DrawerResizeGuide.css.js.map +1 -0
  190. package/dist-es/drawer/internal/DrawerResizeGuide.js +42 -0
  191. package/dist-es/drawer/internal/DrawerResizeGuide.js.map +1 -0
  192. package/dist-es/drawer/internal/DrawerResizeHandle.css.js +4 -0
  193. package/dist-es/drawer/internal/DrawerResizeHandle.css.js.map +1 -0
  194. package/dist-es/drawer/internal/DrawerResizeHandle.js +41 -0
  195. package/dist-es/drawer/internal/DrawerResizeHandle.js.map +1 -0
  196. package/dist-es/drawer/internal/useDrawerResize.js +517 -0
  197. package/dist-es/drawer/internal/useDrawerResize.js.map +1 -0
  198. package/dist-es/dropdown/Dropdown.css.js +1 -1
  199. package/dist-es/dropdown/Dropdown.js +1 -1
  200. package/dist-es/dropdown/Dropdown.js.map +1 -1
  201. package/dist-es/form-field/FormField.js +2 -2
  202. package/dist-es/form-field/FormField.js.map +1 -1
  203. package/dist-es/form-field/FormFieldHelperText.js +2 -0
  204. package/dist-es/form-field/FormFieldHelperText.js.map +1 -1
  205. package/dist-es/form-field/FormFieldLabel.css.js +1 -1
  206. package/dist-es/form-field/FormFieldLabel.js +2 -0
  207. package/dist-es/form-field/FormFieldLabel.js.map +1 -1
  208. package/dist-es/form-field-context/FormFieldContext.js.map +1 -1
  209. package/dist-es/index.js +3 -0
  210. package/dist-es/index.js.map +1 -1
  211. package/dist-es/input/Input.css.js +1 -1
  212. package/dist-es/link/Link.js +2 -0
  213. package/dist-es/link/Link.js.map +1 -1
  214. package/dist-es/link/LinkAction.js +3 -2
  215. package/dist-es/link/LinkAction.js.map +1 -1
  216. package/dist-es/link-button/LinkButton.css.js +1 -1
  217. package/dist-es/link-button/LinkButton.js +3 -2
  218. package/dist-es/link-button/LinkButton.js.map +1 -1
  219. package/dist-es/list-box/ListBox.js +1 -1
  220. package/dist-es/list-box/ListBox.js.map +1 -1
  221. package/dist-es/list-control/ListControlContext.js.map +1 -1
  222. package/dist-es/list-control/ListControlOptionContext.js.map +1 -1
  223. package/dist-es/mega-menu/MegaMenuGroupHeading.css.js +1 -1
  224. package/dist-es/mega-menu/MegaMenuListItem.css.js +1 -1
  225. package/dist-es/menu/MenuAlignmentContext.js +50 -0
  226. package/dist-es/menu/MenuAlignmentContext.js.map +1 -0
  227. package/dist-es/menu/MenuBase.js +9 -3
  228. package/dist-es/menu/MenuBase.js.map +1 -1
  229. package/dist-es/menu/MenuGroup.css.js +1 -1
  230. package/dist-es/menu/MenuGroup.js +44 -5
  231. package/dist-es/menu/MenuGroup.js.map +1 -1
  232. package/dist-es/menu/MenuGroupContext.js +23 -0
  233. package/dist-es/menu/MenuGroupContext.js.map +1 -0
  234. package/dist-es/menu/MenuItem.css.js +1 -1
  235. package/dist-es/menu/MenuItem.js +177 -51
  236. package/dist-es/menu/MenuItem.js.map +1 -1
  237. package/dist-es/menu/MenuPanel.js +12 -3
  238. package/dist-es/menu/MenuPanel.js.map +1 -1
  239. package/dist-es/menu/MenuPanelContext.js +3 -1
  240. package/dist-es/menu/MenuPanelContext.js.map +1 -1
  241. package/dist-es/multiline-input/MultilineInput.css.js +1 -1
  242. package/dist-es/navigation-item/NavigationItem.css.js +1 -1
  243. package/dist-es/number-input/NumberInput.css.js +1 -1
  244. package/dist-es/on-solid-button/OnSolidButton.css.js +4 -0
  245. package/dist-es/on-solid-button/OnSolidButton.css.js.map +1 -0
  246. package/dist-es/on-solid-button/OnSolidButton.js +66 -0
  247. package/dist-es/on-solid-button/OnSolidButton.js.map +1 -0
  248. package/dist-es/option/Option.css.js +1 -1
  249. package/dist-es/option/Option.js +7 -1
  250. package/dist-es/option/Option.js.map +1 -1
  251. package/dist-es/option/OptionGroup.css.js +1 -1
  252. package/dist-es/overlay/OverlayHeader.js +2 -0
  253. package/dist-es/overlay/OverlayHeader.js.map +1 -1
  254. package/dist-es/overlay/OverlayPanelCloseButton.js +1 -1
  255. package/dist-es/overlay/OverlayPanelCloseButton.js.map +1 -1
  256. package/dist-es/pagination/CompactPaginator.js +2 -0
  257. package/dist-es/pagination/CompactPaginator.js.map +1 -1
  258. package/dist-es/pagination/GoToInput.js +2 -0
  259. package/dist-es/pagination/GoToInput.js.map +1 -1
  260. package/dist-es/pill/PillCheckIcon.js.map +1 -1
  261. package/dist-es/pill-input/PillInput.css.js +1 -1
  262. package/dist-es/progress/CircularProgress/CircularProgress.js +2 -0
  263. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  264. package/dist-es/progress/LinearProgress/LinearProgress.js +2 -0
  265. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  266. package/dist-es/salt-provider/ThemeApplicator.js +10 -6
  267. package/dist-es/salt-provider/ThemeApplicator.js.map +1 -1
  268. package/dist-es/side-panel/SidePanelTitle.js +2 -0
  269. package/dist-es/side-panel/SidePanelTitle.js.map +1 -1
  270. package/dist-es/side-panel/SidePanelTrigger.js.map +1 -1
  271. package/dist-es/side-panel/internal/useIsScrollable.js.map +1 -1
  272. package/dist-es/side-panel/useSidePanel.js +4 -9
  273. package/dist-es/side-panel/useSidePanel.js.map +1 -1
  274. package/dist-es/skip-link/internal/useManageFocusOnTarget.js +2 -2
  275. package/dist-es/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  276. package/dist-es/slider/internal/SliderThumb.js.map +1 -1
  277. package/dist-es/slider/internal/SliderTooltip.js +2 -0
  278. package/dist-es/slider/internal/SliderTooltip.js.map +1 -1
  279. package/dist-es/slider/internal/SliderTrack.js +2 -0
  280. package/dist-es/slider/internal/SliderTrack.js.map +1 -1
  281. package/dist-es/slider/internal/useRangeSliderThumb.js.map +1 -1
  282. package/dist-es/slider/internal/useSliderThumb.js.map +1 -1
  283. package/dist-es/slider/internal/utils.js.map +1 -1
  284. package/dist-es/stepper/Stepper.js +1 -1
  285. package/dist-es/stepper/Stepper.js.map +1 -1
  286. package/dist-es/stepper/internal/StepText.css.js +1 -1
  287. package/dist-es/stepper/internal/StepText.js +2 -0
  288. package/dist-es/stepper/internal/StepText.js.map +1 -1
  289. package/dist-es/table/Table.css.js +1 -1
  290. package/dist-es/tabs/Tabs.js +1 -1
  291. package/dist-es/tabs/Tabs.js.map +1 -1
  292. package/dist-es/tabs/internal/overflow/useOverflow.js.map +1 -1
  293. package/dist-es/tabs/internal/overflow/useRenderedTabWidth.js.map +1 -1
  294. package/dist-es/text/Code.js +1 -1
  295. package/dist-es/text/Code.js.map +1 -1
  296. package/dist-es/text/Editorial.js +25 -0
  297. package/dist-es/text/Editorial.js.map +1 -0
  298. package/dist-es/text/Eyebrow.js +10 -0
  299. package/dist-es/text/Eyebrow.js.map +1 -0
  300. package/dist-es/text/Text.css.js +1 -1
  301. package/dist-es/text/Text.js +6 -2
  302. package/dist-es/text/Text.js.map +1 -1
  303. package/dist-es/toggle-button/ToggleButton.css.js +1 -1
  304. package/dist-es/toggle-button/ToggleButton.js.map +1 -1
  305. package/dist-es/toolbar/ToolbarOverflow.js +8 -4
  306. package/dist-es/toolbar/ToolbarOverflow.js.map +1 -1
  307. package/dist-es/toolbar/toolbarUtils.js.map +1 -1
  308. package/dist-es/tooltip/useAriaAnnounce.js +4 -2
  309. package/dist-es/tooltip/useAriaAnnounce.js.map +1 -1
  310. package/dist-es/tooltip/useTooltip.js.map +1 -1
  311. package/dist-es/tree/TreeContext.js.map +1 -1
  312. package/dist-es/tree/TreeNodeTrigger.css.js +1 -1
  313. package/dist-es/tree/TreeNodeTrigger.js +0 -1
  314. package/dist-es/tree/TreeNodeTrigger.js.map +1 -1
  315. package/dist-es/utils/forkRef.js +32 -0
  316. package/dist-es/utils/forkRef.js.map +1 -0
  317. package/dist-es/utils/getRefFromChildren.js.map +1 -1
  318. package/dist-es/utils/marginMiddleware.js.map +1 -1
  319. package/dist-es/utils/setRef.js.map +1 -1
  320. package/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  321. package/dist-es/utils/useForkRef.js +3 -6
  322. package/dist-es/utils/useForkRef.js.map +1 -1
  323. package/dist-es/utils/useResizeObserver.js.map +1 -1
  324. package/dist-es/vertical-navigation/VerticalNavigationSubMenu.css.js +1 -1
  325. package/dist-types/checkbox/CheckboxIcon.d.ts +2 -1
  326. package/dist-types/collapsible/CollapsiblePanel.d.ts +8 -1
  327. package/dist-types/combo-box/ComboBox.d.ts +2 -2
  328. package/dist-types/drawer/Drawer.d.ts +6 -0
  329. package/dist-types/drawer/DrawerContext.d.ts +3 -0
  330. package/dist-types/drawer/DrawerHeader.d.ts +1 -1
  331. package/dist-types/drawer/internal/DrawerResizeGuide.d.ts +7 -0
  332. package/dist-types/drawer/internal/DrawerResizeHandle.d.ts +8 -0
  333. package/dist-types/drawer/internal/index.d.ts +3 -0
  334. package/dist-types/drawer/internal/useDrawerResize.d.ts +34 -0
  335. package/dist-types/dropdown/Dropdown.d.ts +2 -2
  336. package/dist-types/form-field/FormFieldHelperText.d.ts +1 -1
  337. package/dist-types/form-field/FormFieldLabel.d.ts +1 -1
  338. package/dist-types/form-field-context/FormFieldContext.d.ts +1 -1
  339. package/dist-types/index.d.ts +1 -0
  340. package/dist-types/list-box/ListBox.d.ts +2 -2
  341. package/dist-types/list-control/ListControlContext.d.ts +1 -1
  342. package/dist-types/list-control/ListControlOptionContext.d.ts +1 -1
  343. package/dist-types/menu/MenuAlignmentContext.d.ts +14 -0
  344. package/dist-types/menu/MenuGroup.d.ts +26 -4
  345. package/dist-types/menu/MenuGroupContext.d.ts +10 -0
  346. package/dist-types/menu/MenuItem.d.ts +4 -0
  347. package/dist-types/menu/MenuPanelContext.d.ts +2 -0
  348. package/dist-types/on-solid-button/OnSolidButton.d.ts +12 -0
  349. package/dist-types/on-solid-button/index.d.ts +1 -0
  350. package/dist-types/pill/PillCheckIcon.d.ts +2 -1
  351. package/dist-types/registerClassNameInjection.d.ts +0 -2
  352. package/dist-types/salt-provider/SaltProvider.d.ts +1 -1
  353. package/dist-types/side-panel/internal/useIsScrollable.d.ts +1 -1
  354. package/dist-types/skip-link/internal/useManageFocusOnTarget.d.ts +1 -1
  355. package/dist-types/slider/internal/SliderThumb.d.ts +2 -2
  356. package/dist-types/slider/internal/SliderTrack.d.ts +2 -2
  357. package/dist-types/slider/internal/useRangeSliderThumb.d.ts +1 -1
  358. package/dist-types/slider/internal/useSliderThumb.d.ts +1 -1
  359. package/dist-types/slider/internal/utils.d.ts +1 -1
  360. package/dist-types/tabs/internal/overflow/useOverflow.d.ts +2 -2
  361. package/dist-types/tabs/internal/overflow/useRenderedTabWidth.d.ts +1 -1
  362. package/dist-types/text/Editorial.d.ts +7 -0
  363. package/dist-types/text/Eyebrow.d.ts +2 -0
  364. package/dist-types/text/Text.d.ts +9 -2
  365. package/dist-types/text/index.d.ts +2 -0
  366. package/dist-types/toggle-button/ToggleButton.d.ts +1 -1
  367. package/dist-types/tooltip/useTooltip.d.ts +12 -26
  368. package/dist-types/tree/TreeContext.d.ts +1 -1
  369. package/dist-types/utils/forkRef.d.ts +11 -0
  370. package/dist-types/utils/inferElementType.d.ts +1 -2
  371. package/dist-types/utils/marginMiddleware.d.ts +1 -1
  372. package/dist-types/utils/setRef.d.ts +4 -0
  373. package/dist-types/utils/useFloatingUI/useFloatingUI.d.ts +1 -5
  374. package/dist-types/utils/useResizeObserver.d.ts +1 -1
  375. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnSolidButton.js","sources":["../src/on-solid-button/OnSolidButton.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { useButton } from \"../button\";\nimport { makePrefixer } from \"../utils\";\n\nimport onSolidButtonCss from \"./OnSolidButton.css\";\n\nconst withBaseName = makePrefixer(\"saltOnSolidButton\");\n\nexport interface OnSolidButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n /**\n * If `true`, the button will be disabled.\n */\n disabled?: boolean;\n /**\n * If `true`, the button will be focusable when disabled.\n */\n focusableWhenDisabled?: boolean;\n}\n\nexport const OnSolidButton = forwardRef<HTMLButtonElement, OnSolidButtonProps>(\n function OnSolidButton(\n {\n children,\n className,\n disabled,\n focusableWhenDisabled,\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n type = \"button\",\n ...rest\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-on-solid-button\",\n css: onSolidButtonCss,\n window: targetWindow,\n });\n\n const { active, buttonProps } = useButton<HTMLButtonElement>({\n disabled,\n focusableWhenDisabled,\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n });\n\n const { tabIndex: _tabIndex, ...restButtonProps } = buttonProps;\n\n return (\n <button\n {...restButtonProps}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"disabled\")]: disabled,\n },\n className,\n )}\n {...rest}\n ref={ref}\n type={type}\n >\n {children}\n </button>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OnSolidButton","useWindow","useComponentCssInjection","onSolidButtonCss","useButton","jsx","clsx"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA;AAa9C,MAAM,aAAA,GAAgBC,gBAAA;AAAA,EAC3B,SAASC,cAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,qBAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAKC,eAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,MAAA,EAAQ,WAAA,EAAY,GAAIC,mBAAA,CAA6B;AAAA,MAC3D,QAAA;AAAA,MACA,qBAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,iBAAgB,GAAI,WAAA;AAEpD,IAAA,uBACEC,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACE,GAAG,eAAA;AAAA,QACJ,SAAA,EAAWC,SAAA;AAAA,UACT,YAAA,EAAa;AAAA,UACb;AAAA,YACE,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG,MAAA;AAAA,YAC1B,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG;AAAA,WAC9B;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltOption {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-spacing-100);\n position: relative;\n cursor: var(--salt-cursor-hover);\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.saltOption-active {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltOption-focusVisible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-size-fixed-100) * -2);\n}\n\n.saltOption:hover {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltOption[aria-disabled=\"true\"] {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n opacity: 0.4;\n\n cursor: var(--salt-cursor-disabled);\n}\n\n.saltOption[aria-selected=\"true\"] {\n z-index: var(--salt-zIndex-default);\n background: var(--salt-selectable-background-selected);\n box-shadow:\n calc(var(--salt-size-fixed-100) * -2) 0 0 0 var(--salt-selectable-background-hover),\n calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-size-fixed-100) var(--salt-selectable-borderColor-selected),\n 0 calc(var(--salt-size-fixed-100) * -1) 0 var(--salt-selectable-borderColor-selected);\n}\n\n/* TODO: Find a better way of doing this */\n.saltOption .saltIcon:not(.saltCheckboxIcon-icon) {\n min-height: var(--salt-text-lineHeight);\n}\n";
3
+ var css_248z = ".saltOption {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-spacing-100);\n position: relative;\n cursor: var(--salt-cursor-hover);\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.saltOption-active {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltOption-focusVisible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-size-fixed-100) * -2);\n}\n\n.saltOption:hover {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltOption[aria-disabled=\"true\"] {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n opacity: 0.4;\n\n cursor: var(--salt-cursor-disabled);\n}\n\n.saltOption[aria-selected=\"true\"] {\n z-index: var(--salt-zIndex-default);\n background: var(--salt-selectable-background-selected);\n box-shadow:\n calc(var(--salt-size-fixed-100) * -2) 0 0 0 var(--salt-selectable-background-hover),\n calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-size-fixed-100) var(--salt-selectable-borderColor-selected),\n 0 calc(var(--salt-size-fixed-100) * -1) 0 var(--salt-selectable-borderColor-selected);\n}\n\n/* Align the checkbox with the first line of text */\n.saltOption-checkbox {\n margin: calc((var(--salt-text-lineHeight) - var(--salt-size-selectable)) / 2) 0;\n}\n\n/* TODO: Find a better way of doing this */\n.saltOption .saltIcon:not(.saltCheckboxIcon-icon) {\n min-height: var(--salt-text-lineHeight);\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=Option.css.js.map
@@ -117,7 +117,13 @@ const OptionComponent = React.forwardRef(
117
117
  tabIndex: -1,
118
118
  ...rest,
119
119
  children: [
120
- multiselect && /* @__PURE__ */ jsxRuntime.jsx(CheckboxIcon.CheckboxIcon, { checked: selected }),
120
+ multiselect && /* @__PURE__ */ jsxRuntime.jsx(
121
+ CheckboxIcon.CheckboxIcon,
122
+ {
123
+ checked: selected,
124
+ className: withBaseName("checkbox")
125
+ }
126
+ ),
121
127
  children ?? valueToString(value)
122
128
  ]
123
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sources":["../src/option/Option.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEvent,\n memo,\n type ReactNode,\n useMemo,\n useRef,\n} from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { CheckboxIcon } from \"../checkbox\";\nimport type { OptionValue } from \"../list-control/ListControlContext\";\nimport { useListControlOptionContext } from \"../list-control/ListControlOptionContext\";\nimport {\n hasOptionState,\n OPTION_STATE_ACTIVE,\n OPTION_STATE_FOCUS_VISIBLE,\n OPTION_STATE_SELECTED,\n} from \"../list-control/ListControlOptionStore\";\nimport {\n makePrefixer,\n useForkRef,\n useId,\n useIsomorphicLayoutEffect,\n} from \"../utils\";\nimport optionCss from \"./Option.css\";\n\nexport interface OptionProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * If `true`, the option will be disabled.\n */\n disabled?: boolean;\n /**\n * The value of the option.\n */\n value: unknown;\n /**\n * The content of the option.\n */\n children?: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltOption\");\n\nconst OptionComponent = forwardRef<HTMLDivElement, OptionProps>(\n function Option(props, ref) {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n id: idProp,\n value,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-option\",\n css: optionCss,\n window: targetWindow,\n });\n\n const optionRef = useRef(null);\n const id = useId(idProp);\n\n const {\n setActive,\n multiselect,\n select,\n register,\n optionStateStore,\n valueToString,\n disabled: listDisabled,\n listRef,\n } = useListControlOptionContext();\n\n const disabled = disabledProp || listDisabled;\n\n const optionId = String(id);\n const { getSnapshot, optionValue, subscribe } = useMemo(() => {\n const nextOptionValue: OptionValue<unknown> = {\n id: optionId,\n disabled: Boolean(disabled),\n value,\n };\n return {\n getSnapshot: () =>\n optionStateStore.getSnapshot(optionId, nextOptionValue),\n optionValue: nextOptionValue,\n subscribe: (listener: () => void) =>\n optionStateStore.subscribe(optionId, listener),\n };\n }, [optionId, disabled, value, optionStateStore]);\n const optionState = useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n );\n const selected = hasOptionState(optionState, OPTION_STATE_SELECTED);\n const active = hasOptionState(optionState, OPTION_STATE_ACTIVE);\n const focusVisible = hasOptionState(\n optionState,\n OPTION_STATE_FOCUS_VISIBLE,\n );\n\n const handleClick = (event: MouseEvent<HTMLDivElement>) => {\n if (disabled || id === undefined) {\n return;\n }\n\n listRef?.current?.focus({ preventScroll: true });\n // set active descendent\n setActive(optionValue);\n\n // handle selection\n select(event, optionValue);\n\n onClick?.(event);\n };\n\n const handleMouseOver = () => {\n setActive(optionValue);\n };\n\n useIsomorphicLayoutEffect(() => {\n if (id && optionRef.current) {\n return register(optionValue, optionRef.current);\n }\n }, [optionValue, id, register]);\n\n const handleRef = useForkRef(optionRef, ref);\n\n return (\n // biome-ignore lint/a11y/useKeyWithClickEvents: The click event is handled by the parent list control, which manages keyboard interactions.\n <div\n aria-disabled={disabled ? \"true\" : undefined}\n aria-selected={selected}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"focusVisible\")]: focusVisible,\n },\n className,\n )}\n ref={handleRef}\n role=\"option\"\n id={id}\n onClick={handleClick}\n onMouseOver={handleMouseOver}\n tabIndex={-1}\n {...rest}\n >\n {multiselect && <CheckboxIcon checked={selected} />}\n {children ?? valueToString(value)}\n </div>\n );\n },\n);\n\n// Context isolation makes this bailout effective for unchanged option props.\nexport const Option = memo(OptionComponent) as typeof OptionComponent;\n"],"names":["makePrefixer","forwardRef","Option","useWindow","useComponentCssInjection","optionCss","useRef","useId","useListControlOptionContext","useMemo","useSyncExternalStore","hasOptionState","OPTION_STATE_SELECTED","OPTION_STATE_ACTIVE","OPTION_STATE_FOCUS_VISIBLE","useIsomorphicLayoutEffect","useForkRef","jsxs","clsx","jsx","CheckboxIcon","memo"],"mappings":"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"}
1
+ {"version":3,"file":"Option.js","sources":["../src/option/Option.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEvent,\n memo,\n type ReactNode,\n useMemo,\n useRef,\n} from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { CheckboxIcon } from \"../checkbox\";\nimport type { OptionValue } from \"../list-control/ListControlContext\";\nimport { useListControlOptionContext } from \"../list-control/ListControlOptionContext\";\nimport {\n hasOptionState,\n OPTION_STATE_ACTIVE,\n OPTION_STATE_FOCUS_VISIBLE,\n OPTION_STATE_SELECTED,\n} from \"../list-control/ListControlOptionStore\";\nimport {\n makePrefixer,\n useForkRef,\n useId,\n useIsomorphicLayoutEffect,\n} from \"../utils\";\nimport optionCss from \"./Option.css\";\n\nexport interface OptionProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * If `true`, the option will be disabled.\n */\n disabled?: boolean;\n /**\n * The value of the option.\n */\n value: unknown;\n /**\n * The content of the option.\n */\n children?: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltOption\");\n\n// biome-ignore lint/plugin/named-component-functions: exported as memo(OptionComponent) under the name Option.\nconst OptionComponent = forwardRef<HTMLDivElement, OptionProps>(\n function Option(props, ref) {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n id: idProp,\n value,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-option\",\n css: optionCss,\n window: targetWindow,\n });\n\n const optionRef = useRef(null);\n const id = useId(idProp);\n\n const {\n setActive,\n multiselect,\n select,\n register,\n optionStateStore,\n valueToString,\n disabled: listDisabled,\n listRef,\n } = useListControlOptionContext();\n\n const disabled = disabledProp || listDisabled;\n\n const optionId = String(id);\n const { getSnapshot, optionValue, subscribe } = useMemo(() => {\n const nextOptionValue: OptionValue<unknown> = {\n id: optionId,\n disabled: Boolean(disabled),\n value,\n };\n return {\n getSnapshot: () =>\n optionStateStore.getSnapshot(optionId, nextOptionValue),\n optionValue: nextOptionValue,\n subscribe: (listener: () => void) =>\n optionStateStore.subscribe(optionId, listener),\n };\n }, [optionId, disabled, value, optionStateStore]);\n const optionState = useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n );\n const selected = hasOptionState(optionState, OPTION_STATE_SELECTED);\n const active = hasOptionState(optionState, OPTION_STATE_ACTIVE);\n const focusVisible = hasOptionState(\n optionState,\n OPTION_STATE_FOCUS_VISIBLE,\n );\n\n const handleClick = (event: MouseEvent<HTMLDivElement>) => {\n if (disabled || id === undefined) {\n return;\n }\n\n listRef?.current?.focus({ preventScroll: true });\n // set active descendent\n setActive(optionValue);\n\n // handle selection\n select(event, optionValue);\n\n onClick?.(event);\n };\n\n const handleMouseOver = () => {\n setActive(optionValue);\n };\n\n useIsomorphicLayoutEffect(() => {\n if (id && optionRef.current) {\n return register(optionValue, optionRef.current);\n }\n }, [optionValue, id, register]);\n\n const handleRef = useForkRef(optionRef, ref);\n\n return (\n // biome-ignore lint/a11y/useKeyWithClickEvents: The click event is handled by the parent list control, which manages keyboard interactions.\n <div\n aria-disabled={disabled ? \"true\" : undefined}\n aria-selected={selected}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"focusVisible\")]: focusVisible,\n },\n className,\n )}\n ref={handleRef}\n role=\"option\"\n id={id}\n onClick={handleClick}\n onMouseOver={handleMouseOver}\n tabIndex={-1}\n {...rest}\n >\n {multiselect && (\n <CheckboxIcon\n checked={selected}\n className={withBaseName(\"checkbox\")}\n />\n )}\n {children ?? valueToString(value)}\n </div>\n );\n },\n);\n\n// Context isolation makes this bailout effective for unchanged option props.\nexport const Option = memo(OptionComponent) as typeof OptionComponent;\n"],"names":["makePrefixer","forwardRef","Option","useWindow","useComponentCssInjection","optionCss","useRef","useId","useListControlOptionContext","useMemo","useSyncExternalStore","hasOptionState","OPTION_STATE_SELECTED","OPTION_STATE_ACTIVE","OPTION_STATE_FOCUS_VISIBLE","useIsomorphicLayoutEffect","useForkRef","jsxs","clsx","jsx","CheckboxIcon","memo"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltOptionGroup-label {\n background: var(--salt-container-primary-background);\n color: var(--salt-content-secondary-foreground);\n font-size: var(--salt-text-label-fontSize);\n font-weight: var(--salt-text-label-fontWeight-strong);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-label-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);\n display: flex;\n box-sizing: border-box;\n}\n\n.saltOptionGroup {\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-separable-tertiary-borderColor);\n}\n\n.saltOptionGroup:first-of-type {\n border-top: 0;\n}\n";
3
+ var css_248z = ".saltOptionGroup-label {\n background: var(--salt-container-primary-background);\n color: var(--salt-content-secondary-foreground);\n font-size: var(--salt-text-label-fontSize);\n font-weight: var(--salt-text-label-fontWeight-bolder);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-label-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);\n display: flex;\n box-sizing: border-box;\n}\n\n.saltOptionGroup {\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-separable-tertiary-borderColor);\n}\n\n.saltOptionGroup:first-of-type {\n border-top: 0;\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=OptionGroup.css.js.map
@@ -7,6 +7,8 @@ var clsx = require('clsx');
7
7
  var React = require('react');
8
8
  require('../text/Code.js');
9
9
  require('../text/Display.js');
10
+ require('../text/Editorial.js');
11
+ require('../text/Eyebrow.js');
10
12
  var Headings = require('../text/Headings.js');
11
13
  require('../text/Label.js');
12
14
  var Text = require('../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayHeader.js","sources":["../src/overlay/OverlayHeader.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { H2, Text } from \"../text\";\nimport { makePrefixer, useId, useIsomorphicLayoutEffect } from \"../utils\";\nimport { useOverlayContext } from \"./OverlayContext\";\nimport overlayHeaderCss from \"./OverlayHeader.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayHeader\");\n\nexport interface OverlayHeaderProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Description text is displayed just below the header\n **/\n description?: ReactNode;\n /**\n * Actions to be displayed in header\n */\n actions?: ReactNode;\n /**\n * Header text\n */\n header?: ReactNode;\n /**\n * Preheader text is displayed just above the header\n **/\n preheader?: ReactNode;\n}\n\nexport const OverlayHeader = forwardRef<HTMLDivElement, OverlayHeaderProps>(\n function OverlayHeader(props, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-header\",\n css: overlayHeaderCss,\n window: targetWindow,\n });\n\n const { className, description, header, actions, preheader, ...rest } =\n props;\n\n const { setHeaderId, setDescriptionId } = useOverlayContext();\n\n const headingId = useId();\n const descriptionId = useId();\n const hasHeading = Boolean(header || preheader);\n const hasDescription = Boolean(description);\n const hasActions = Boolean(actions);\n\n useIsomorphicLayoutEffect(() => {\n setHeaderId?.(hasHeading ? headingId : undefined);\n\n return () => {\n setHeaderId?.(undefined);\n };\n }, [hasHeading, headingId, setHeaderId]);\n\n useIsomorphicLayoutEffect(() => {\n setDescriptionId?.(hasDescription ? descriptionId : undefined);\n\n return () => {\n setDescriptionId?.(undefined);\n };\n }, [hasDescription, descriptionId, setDescriptionId]);\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"withActions\")]: hasActions },\n className,\n )}\n {...rest}\n ref={ref}\n >\n <div className={withBaseName(\"container\")}>\n {hasHeading && (\n <H2 id={headingId} styleAs=\"h4\" className={withBaseName(\"header\")}>\n {preheader && <Text color=\"primary\">{preheader}</Text>}\n {header}\n </H2>\n )}\n {description && (\n <Text\n id={descriptionId}\n color=\"secondary\"\n className={withBaseName(\"description\")}\n >\n {description}\n </Text>\n )}\n </div>\n {hasActions && (\n <div className={withBaseName(\"actionsContainer\")}>{actions}</div>\n )}\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OverlayHeader","useWindow","useComponentCssInjection","overlayHeaderCss","useOverlayContext","useId","useIsomorphicLayoutEffect","jsxs","clsx","H2","jsx","Text"],"mappings":"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"}
1
+ {"version":3,"file":"OverlayHeader.js","sources":["../src/overlay/OverlayHeader.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { H2, Text } from \"../text\";\nimport { makePrefixer, useId, useIsomorphicLayoutEffect } from \"../utils\";\nimport { useOverlayContext } from \"./OverlayContext\";\nimport overlayHeaderCss from \"./OverlayHeader.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayHeader\");\n\nexport interface OverlayHeaderProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Description text is displayed just below the header\n **/\n description?: ReactNode;\n /**\n * Actions to be displayed in header\n */\n actions?: ReactNode;\n /**\n * Header text\n */\n header?: ReactNode;\n /**\n * Preheader text is displayed just above the header\n **/\n preheader?: ReactNode;\n}\n\nexport const OverlayHeader = forwardRef<HTMLDivElement, OverlayHeaderProps>(\n function OverlayHeader(props, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-header\",\n css: overlayHeaderCss,\n window: targetWindow,\n });\n\n const { className, description, header, actions, preheader, ...rest } =\n props;\n\n const { setHeaderId, setDescriptionId } = useOverlayContext();\n\n const headingId = useId();\n const descriptionId = useId();\n const hasHeading = Boolean(header || preheader);\n const hasDescription = Boolean(description);\n const hasActions = Boolean(actions);\n\n useIsomorphicLayoutEffect(() => {\n setHeaderId?.(hasHeading ? headingId : undefined);\n\n return () => {\n setHeaderId?.(undefined);\n };\n }, [hasHeading, headingId, setHeaderId]);\n\n useIsomorphicLayoutEffect(() => {\n setDescriptionId?.(hasDescription ? descriptionId : undefined);\n\n return () => {\n setDescriptionId?.(undefined);\n };\n }, [hasDescription, descriptionId, setDescriptionId]);\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"withActions\")]: hasActions },\n className,\n )}\n {...rest}\n ref={ref}\n >\n <div className={withBaseName(\"container\")}>\n {hasHeading && (\n <H2 id={headingId} styleAs=\"h4\" className={withBaseName(\"header\")}>\n {preheader && <Text color=\"primary\">{preheader}</Text>}\n {header}\n </H2>\n )}\n {description && (\n <Text\n id={descriptionId}\n color=\"secondary\"\n className={withBaseName(\"description\")}\n >\n {description}\n </Text>\n )}\n </div>\n {hasActions && (\n <div className={withBaseName(\"actionsContainer\")}>{actions}</div>\n )}\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","OverlayHeader","useWindow","useComponentCssInjection","overlayHeaderCss","useOverlayContext","useId","useIsomorphicLayoutEffect","jsxs","clsx","H2","jsx","Text"],"mappings":"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"}
@@ -15,7 +15,7 @@ require('../viewport/ViewportProvider.js');
15
15
  var OverlayPanelCloseButton$1 = require('./OverlayPanelCloseButton.css.js');
16
16
 
17
17
  const withBaseName = makePrefixer.makePrefixer("saltOverlayPanelCloseButton");
18
- const OverlayPanelCloseButton = React.forwardRef(function OverlayPanelButton({ className, ...rest }, ref) {
18
+ const OverlayPanelCloseButton = React.forwardRef(function OverlayPanelCloseButton2({ className, ...rest }, ref) {
19
19
  const targetWindow = window.useWindow();
20
20
  styles.useComponentCssInjection({
21
21
  testId: "salt-overlay-panel-close-button",
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayPanelCloseButton.js","sources":["../src/overlay/OverlayPanelCloseButton.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { makePrefixer } from \"../utils\";\nimport overlayPanelCloseButtonCss from \"./OverlayPanelCloseButton.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanelCloseButton\");\n\nexport const OverlayPanelCloseButton = forwardRef<\n HTMLButtonElement,\n ButtonProps\n>(function OverlayPanelButton({ className, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel-close-button\",\n css: overlayPanelCloseButtonCss,\n window: targetWindow,\n });\n const { CloseIcon } = useIcon();\n\n return (\n <div className={clsx(withBaseName(), className)}>\n <Button\n ref={ref}\n aria-label=\"Close overlay\"\n appearance=\"transparent\"\n className={withBaseName(\"button\")}\n {...rest}\n >\n <CloseIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","useWindow","useComponentCssInjection","overlayPanelCloseButtonCss","useIcon","clsx","jsx","Button"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,6BAA6B,CAAA;AAExD,MAAM,uBAAA,GAA0BC,iBAGrC,SAAS,kBAAA,CAAmB,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AACzD,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,iCAAA;AAAA,IACR,GAAA,EAAKC,yBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,MAAM,EAAE,SAAA,EAAU,GAAIC,4BAAA,EAAQ;AAE9B,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWC,UAAK,YAAA,EAAa,EAAG,SAAS,CAAA,EAC5C,QAAA,kBAAAC,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,YAAA,EAAW,eAAA;AAAA,MACX,UAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAW,aAAa,QAAQ,CAAA;AAAA,MAC/B,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAD,cAAA,CAAC,SAAA,EAAA,EAAU,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,GACzB,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"OverlayPanelCloseButton.js","sources":["../src/overlay/OverlayPanelCloseButton.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { makePrefixer } from \"../utils\";\nimport overlayPanelCloseButtonCss from \"./OverlayPanelCloseButton.css\";\n\nconst withBaseName = makePrefixer(\"saltOverlayPanelCloseButton\");\n\nexport const OverlayPanelCloseButton = forwardRef<\n HTMLButtonElement,\n ButtonProps\n>(function OverlayPanelCloseButton({ className, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-overlay-panel-close-button\",\n css: overlayPanelCloseButtonCss,\n window: targetWindow,\n });\n const { CloseIcon } = useIcon();\n\n return (\n <div className={clsx(withBaseName(), className)}>\n <Button\n ref={ref}\n aria-label=\"Close overlay\"\n appearance=\"transparent\"\n className={withBaseName(\"button\")}\n {...rest}\n >\n <CloseIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","OverlayPanelCloseButton","useWindow","useComponentCssInjection","overlayPanelCloseButtonCss","useIcon","clsx","jsx","Button"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,6BAA6B,CAAA;AAExD,MAAM,uBAAA,GAA0BC,iBAGrC,SAASC,wBAAAA,CAAwB,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC9D,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,iCAAA;AAAA,IACR,GAAA,EAAKC,yBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,MAAM,EAAE,SAAA,EAAU,GAAIC,4BAAA,EAAQ;AAE9B,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWC,UAAK,YAAA,EAAa,EAAG,SAAS,CAAA,EAC5C,QAAA,kBAAAC,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,YAAA,EAAW,eAAA;AAAA,MACX,UAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAW,aAAa,QAAQ,CAAA;AAAA,MAC/B,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAD,cAAA,CAAC,SAAA,EAAA,EAAU,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,GACzB,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -9,6 +9,8 @@ var Button = require('../button/Button.js');
9
9
  var SemanticIconProvider = require('../semantic-icon-provider/SemanticIconProvider.js');
10
10
  require('../text/Code.js');
11
11
  require('../text/Display.js');
12
+ require('../text/Editorial.js');
13
+ require('../text/Eyebrow.js');
12
14
  require('../text/Headings.js');
13
15
  require('../text/Label.js');
14
16
  var Text = require('../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"CompactPaginator.js","sources":["../src/pagination/CompactPaginator.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEventHandler,\n} from \"react\";\nimport { Button } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { Text } from \"../text\";\nimport { makePrefixer } from \"../utils\";\nimport compactPaginatorCss from \"./CompactPaginator.css\";\nimport { PageButton } from \"./PageButton\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltCompactPaginator\");\n\nexport const CompactPaginator = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(function CompactPaginator({ children, className, ...restProps }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-compact-paginator\",\n css: compactPaginatorCss,\n window: targetWindow,\n });\n\n const { NextIcon, PreviousIcon } = useIcon();\n\n const { count, page, onPageChange } = usePaginationContext();\n\n const onPreviousPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.max(1, page - 1));\n };\n\n const onNextPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.min(page + 1, count));\n };\n\n const isOnFirstPage = page === 1;\n const isOnLastPage = page === count;\n\n return (\n <div className={clsx(withBaseName(), className)} {...restProps} ref={ref}>\n <Button\n appearance=\"transparent\"\n aria-label=\"Previous Page\"\n onClick={onPreviousPage}\n disabled={isOnFirstPage}\n className={withBaseName(\"arrowButton\")}\n >\n <PreviousIcon aria-hidden />\n </Button>\n {children ? children : <PageButton page={page} disabled />}\n <Text as=\"span\" variant=\"secondary\">\n of\n </Text>\n <PageButton page={count} disabled={isOnLastPage} />\n <Button\n appearance=\"transparent\"\n aria-label=\"Next Page\"\n onClick={onNextPage}\n disabled={isOnLastPage}\n className={withBaseName(\"arrowButton\")}\n >\n <NextIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","CompactPaginator","useWindow","useComponentCssInjection","compactPaginatorCss","useIcon","usePaginationContext","jsxs","clsx","jsx","Button","PageButton","Text"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,YAAA,GAAeA,0BAAa,sBAAsB,CAAA;AAEjD,MAAM,gBAAA,GAAmBC,gBAAA,CAG9B,SAASC,iBAAAA,CAAiB,EAAE,UAAU,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,wBAAA;AAAA,IACR,GAAA,EAAKC,kBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,QAAA,EAAU,YAAA,EAAa,GAAIC,4BAAA,EAAQ;AAE3C,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,YAAA,KAAiBC,yCAAA,EAAqB;AAE3D,EAAA,MAAM,cAAA,GAAuD,CAAC,KAAA,KAAU;AACtE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,GAAO,CAAC,CAAC,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,UAAA,GAAmD,CAAC,KAAA,KAAU;AAClE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,EAC/C,CAAA;AAEA,EAAA,MAAM,gBAAgB,IAAA,KAAS,CAAA;AAC/B,EAAA,MAAM,eAAe,IAAA,KAAS,KAAA;AAE9B,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWC,SAAA,CAAK,YAAA,IAAgB,SAAS,CAAA,EAAI,GAAG,SAAA,EAAW,GAAA,EAC9D,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,eAAA;AAAA,QACX,OAAA,EAAS,cAAA;AAAA,QACT,QAAA,EAAU,aAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,YAAA,EAAA,EAAa,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,KAC5B;AAAA,IACC,WAAW,QAAA,mBAAWA,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAY,UAAQ,IAAA,EAAC,CAAA;AAAA,mCACvDC,SAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,aAAY,QAAA,EAAA,IAAA,EAEpC,CAAA;AAAA,oBACAH,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAM,KAAA,EAAO,UAAU,YAAA,EAAc,CAAA;AAAA,oBACjDF,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,UAAA;AAAA,QACT,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA;AACxB,GAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"CompactPaginator.js","sources":["../src/pagination/CompactPaginator.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEventHandler,\n} from \"react\";\nimport { Button } from \"../button\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { Text } from \"../text\";\nimport { makePrefixer } from \"../utils\";\nimport compactPaginatorCss from \"./CompactPaginator.css\";\nimport { PageButton } from \"./PageButton\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltCompactPaginator\");\n\nexport const CompactPaginator = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(function CompactPaginator({ children, className, ...restProps }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-compact-paginator\",\n css: compactPaginatorCss,\n window: targetWindow,\n });\n\n const { NextIcon, PreviousIcon } = useIcon();\n\n const { count, page, onPageChange } = usePaginationContext();\n\n const onPreviousPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.max(1, page - 1));\n };\n\n const onNextPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.min(page + 1, count));\n };\n\n const isOnFirstPage = page === 1;\n const isOnLastPage = page === count;\n\n return (\n <div className={clsx(withBaseName(), className)} {...restProps} ref={ref}>\n <Button\n appearance=\"transparent\"\n aria-label=\"Previous Page\"\n onClick={onPreviousPage}\n disabled={isOnFirstPage}\n className={withBaseName(\"arrowButton\")}\n >\n <PreviousIcon aria-hidden />\n </Button>\n {children ? children : <PageButton page={page} disabled />}\n <Text as=\"span\" variant=\"secondary\">\n of\n </Text>\n <PageButton page={count} disabled={isOnLastPage} />\n <Button\n appearance=\"transparent\"\n aria-label=\"Next Page\"\n onClick={onNextPage}\n disabled={isOnLastPage}\n className={withBaseName(\"arrowButton\")}\n >\n <NextIcon aria-hidden />\n </Button>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","CompactPaginator","useWindow","useComponentCssInjection","compactPaginatorCss","useIcon","usePaginationContext","jsxs","clsx","jsx","Button","PageButton","Text"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,YAAA,GAAeA,0BAAa,sBAAsB,CAAA;AAEjD,MAAM,gBAAA,GAAmBC,gBAAA,CAG9B,SAASC,iBAAAA,CAAiB,EAAE,UAAU,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,wBAAA;AAAA,IACR,GAAA,EAAKC,kBAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,QAAA,EAAU,YAAA,EAAa,GAAIC,4BAAA,EAAQ;AAE3C,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,YAAA,KAAiBC,yCAAA,EAAqB;AAE3D,EAAA,MAAM,cAAA,GAAuD,CAAC,KAAA,KAAU;AACtE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,GAAO,CAAC,CAAC,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,UAAA,GAAmD,CAAC,KAAA,KAAU;AAClE,IAAA,YAAA,CAAa,OAAO,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,EAC/C,CAAA;AAEA,EAAA,MAAM,gBAAgB,IAAA,KAAS,CAAA;AAC/B,EAAA,MAAM,eAAe,IAAA,KAAS,KAAA;AAE9B,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWC,SAAA,CAAK,YAAA,IAAgB,SAAS,CAAA,EAAI,GAAG,SAAA,EAAW,GAAA,EAC9D,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,eAAA;AAAA,QACX,OAAA,EAAS,cAAA;AAAA,QACT,QAAA,EAAU,aAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,YAAA,EAAA,EAAa,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,KAC5B;AAAA,IACC,WAAW,QAAA,mBAAWA,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAY,UAAQ,IAAA,EAAC,CAAA;AAAA,mCACvDC,SAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,aAAY,QAAA,EAAA,IAAA,EAEpC,CAAA;AAAA,oBACAH,cAAA,CAACE,qBAAA,EAAA,EAAW,IAAA,EAAM,KAAA,EAAO,UAAU,YAAA,EAAc,CAAA;AAAA,oBACjDF,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAW,aAAA;AAAA,QACX,YAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,UAAA;AAAA,QACT,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,QAErC,QAAA,kBAAAD,cAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA;AACxB,GAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -10,6 +10,8 @@ require('../form-field-context/FormFieldContext.js');
10
10
  require('../status-indicator/StatusIndicator.js');
11
11
  require('../text/Code.js');
12
12
  require('../text/Display.js');
13
+ require('../text/Editorial.js');
14
+ require('../text/Eyebrow.js');
13
15
  require('../text/Headings.js');
14
16
  require('../text/Label.js');
15
17
  require('../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"GoToInput.js","sources":["../src/pagination/GoToInput.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ChangeEventHandler,\n forwardRef,\n type HTMLAttributes,\n type KeyboardEventHandler,\n type Ref,\n useState,\n} from \"react\";\nimport { FormField, FormFieldLabel } from \"../form-field\";\nimport { Input } from \"../input\";\nimport { makePrefixer } from \"../utils\";\nimport goToInputCss from \"./GoToInput.css\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltGoToInput\");\nexport interface GoToInputProps extends HTMLAttributes<HTMLSpanElement> {\n /**\n * Input label.\n */\n label?: string;\n /**\n * Optional ref for the input component\n */\n inputRef?: Ref<HTMLInputElement>;\n /**\n * Change input variant.\n */\n inputVariant?: \"primary\" | \"secondary\";\n}\n\nexport const GoToInput = forwardRef<HTMLDivElement, GoToInputProps>(\n function GoToInput(\n {\n className,\n inputRef,\n inputVariant = \"primary\",\n label = \"Go to\",\n ...restProps\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-go-to-input\",\n css: goToInputCss,\n window: targetWindow,\n });\n\n const { count, onPageChange } = usePaginationContext();\n const [inputValue, setInputValue] = useState(\"\");\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n setInputValue(event.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n const pageValue = Number(inputValue);\n if (\n !inputValue.startsWith(\"0\") &&\n !Number.isNaN(pageValue) &&\n pageValue > 0 &&\n pageValue <= count\n ) {\n onPageChange(event, pageValue);\n }\n setInputValue(\"\");\n }\n };\n\n const onBlur = () => {\n setInputValue(\"\");\n };\n\n const widthCh = `${`${count}`.length}ch`;\n\n return (\n <FormField\n labelPlacement=\"left\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...restProps}\n >\n <FormFieldLabel>{label}</FormFieldLabel>\n <Input\n className={clsx(withBaseName(\"input\"), {\n [withBaseName(\"inputDefaultSize\")]: count < 100,\n })}\n ref={inputRef}\n inputProps={{\n style: { width: widthCh },\n }}\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={inputValue}\n textAlign={\"center\"}\n variant={inputVariant}\n />\n </FormField>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","GoToInput","useWindow","useComponentCssInjection","goToInputCss","usePaginationContext","useState","jsxs","FormField","clsx","jsx","FormFieldLabel","Input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,0BAAa,eAAe,CAAA;AAgB1C,MAAM,SAAA,GAAYC,gBAAA;AAAA,EACvB,SAASC,UAAAA,CACP;AAAA,IACE,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA,GAAe,SAAA;AAAA,IACf,KAAA,GAAQ,OAAA;AAAA,IACR,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAKC,WAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAa,GAAIC,yCAAA,EAAqB;AACrD,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIC,eAAS,EAAE,CAAA;AAE/C,IAAA,MAAM,QAAA,GAAiD,CAAC,KAAA,KAAU;AAChE,MAAA,aAAA,CAAc,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAM,SAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,MAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,QAAA,MAAM,SAAA,GAAY,OAAO,UAAU,CAAA;AACnC,QAAA,IACE,CAAC,UAAA,CAAW,UAAA,CAAW,GAAG,CAAA,IAC1B,CAAC,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA,IACvB,SAAA,GAAY,CAAA,IACZ,aAAa,KAAA,EACb;AACA,UAAA,YAAA,CAAa,OAAO,SAAS,CAAA;AAAA,QAC/B;AACA,QAAA,aAAA,CAAc,EAAE,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,OAAA,GAAU,CAAA,EAAG,CAAA,EAAG,KAAK,GAAG,MAAM,CAAA,EAAA,CAAA;AAEpC,IAAA,uBACEC,eAAA;AAAA,MAACC,mBAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAe,MAAA;AAAA,QACf,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACC,GAAG,SAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iCAAgB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BACvBD,cAAA;AAAA,YAACE,WAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWH,SAAA,CAAK,YAAA,CAAa,OAAO,CAAA,EAAG;AAAA,gBACrC,CAAC,YAAA,CAAa,kBAAkB,CAAC,GAAG,KAAA,GAAQ;AAAA,eAC7C,CAAA;AAAA,cACD,GAAA,EAAK,QAAA;AAAA,cACL,UAAA,EAAY;AAAA,gBACV,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA;AAAQ,eAC1B;AAAA,cACA,MAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA;AAAA,cACA,KAAA,EAAO,UAAA;AAAA,cACP,SAAA,EAAW,QAAA;AAAA,cACX,OAAA,EAAS;AAAA;AAAA;AACX;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;;;;"}
1
+ {"version":3,"file":"GoToInput.js","sources":["../src/pagination/GoToInput.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ChangeEventHandler,\n forwardRef,\n type HTMLAttributes,\n type KeyboardEventHandler,\n type Ref,\n useState,\n} from \"react\";\nimport { FormField, FormFieldLabel } from \"../form-field\";\nimport { Input } from \"../input\";\nimport { makePrefixer } from \"../utils\";\nimport goToInputCss from \"./GoToInput.css\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nconst withBaseName = makePrefixer(\"saltGoToInput\");\nexport interface GoToInputProps extends HTMLAttributes<HTMLSpanElement> {\n /**\n * Input label.\n */\n label?: string;\n /**\n * Optional ref for the input component\n */\n inputRef?: Ref<HTMLInputElement>;\n /**\n * Change input variant.\n */\n inputVariant?: \"primary\" | \"secondary\";\n}\n\nexport const GoToInput = forwardRef<HTMLDivElement, GoToInputProps>(\n function GoToInput(\n {\n className,\n inputRef,\n inputVariant = \"primary\",\n label = \"Go to\",\n ...restProps\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-go-to-input\",\n css: goToInputCss,\n window: targetWindow,\n });\n\n const { count, onPageChange } = usePaginationContext();\n const [inputValue, setInputValue] = useState(\"\");\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n setInputValue(event.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n const pageValue = Number(inputValue);\n if (\n !inputValue.startsWith(\"0\") &&\n !Number.isNaN(pageValue) &&\n pageValue > 0 &&\n pageValue <= count\n ) {\n onPageChange(event, pageValue);\n }\n setInputValue(\"\");\n }\n };\n\n const onBlur = () => {\n setInputValue(\"\");\n };\n\n const widthCh = `${`${count}`.length}ch`;\n\n return (\n <FormField\n labelPlacement=\"left\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...restProps}\n >\n <FormFieldLabel>{label}</FormFieldLabel>\n <Input\n className={clsx(withBaseName(\"input\"), {\n [withBaseName(\"inputDefaultSize\")]: count < 100,\n })}\n ref={inputRef}\n inputProps={{\n style: { width: widthCh },\n }}\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={inputValue}\n textAlign={\"center\"}\n variant={inputVariant}\n />\n </FormField>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","GoToInput","useWindow","useComponentCssInjection","goToInputCss","usePaginationContext","useState","jsxs","FormField","clsx","jsx","FormFieldLabel","Input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,0BAAa,eAAe,CAAA;AAgB1C,MAAM,SAAA,GAAYC,gBAAA;AAAA,EACvB,SAASC,UAAAA,CACP;AAAA,IACE,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA,GAAe,SAAA;AAAA,IACf,KAAA,GAAQ,OAAA;AAAA,IACR,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAKC,WAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAa,GAAIC,yCAAA,EAAqB;AACrD,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIC,eAAS,EAAE,CAAA;AAE/C,IAAA,MAAM,QAAA,GAAiD,CAAC,KAAA,KAAU;AAChE,MAAA,aAAA,CAAc,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAM,SAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,MAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,QAAA,MAAM,SAAA,GAAY,OAAO,UAAU,CAAA;AACnC,QAAA,IACE,CAAC,UAAA,CAAW,UAAA,CAAW,GAAG,CAAA,IAC1B,CAAC,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA,IACvB,SAAA,GAAY,CAAA,IACZ,aAAa,KAAA,EACb;AACA,UAAA,YAAA,CAAa,OAAO,SAAS,CAAA;AAAA,QAC/B;AACA,QAAA,aAAA,CAAc,EAAE,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,OAAA,GAAU,CAAA,EAAG,CAAA,EAAG,KAAK,GAAG,MAAM,CAAA,EAAA,CAAA;AAEpC,IAAA,uBACEC,eAAA;AAAA,MAACC,mBAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAe,MAAA;AAAA,QACf,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACC,GAAG,SAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iCAAgB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BACvBD,cAAA;AAAA,YAACE,WAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWH,SAAA,CAAK,YAAA,CAAa,OAAO,CAAA,EAAG;AAAA,gBACrC,CAAC,YAAA,CAAa,kBAAkB,CAAC,GAAG,KAAA,GAAQ;AAAA,eAC7C,CAAA;AAAA,cACD,GAAA,EAAK,QAAA;AAAA,cACL,UAAA,EAAY;AAAA,gBACV,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA;AAAQ,eAC1B;AAAA,cACA,MAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA;AAAA,cACA,KAAA,EAAO,UAAA;AAAA,cACP,SAAA,EAAW,QAAA;AAAA,cACX,OAAA,EAAS;AAAA;AAAA;AACX;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PillCheckIcon.js","sources":["../src/pill/PillCheckIcon.tsx"],"sourcesContent":["import { CheckmarkIcon, CheckmarkSolidIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../utils\";\nimport pillCheckIcon from \"./PillCheckIcon.css\";\n\nexport interface PillCheckIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n active?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltPillCheckIcon\");\n\nexport const PillCheckIcon = ({\n className,\n checked = false,\n disabled = false,\n active = false,\n}: PillCheckIconProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pill-check-icon\",\n css: pillCheckIcon,\n window: targetWindow,\n });\n\n return (\n <div\n aria-hidden=\"true\"\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"active\")]: active,\n },\n className,\n )}\n >\n {checked &&\n (active ? (\n <CheckmarkIcon className={withBaseName(\"icon\")} />\n ) : (\n <CheckmarkSolidIcon className={withBaseName(\"solidIcon\")} />\n ))}\n </div>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","pillCheckIcon","jsx","clsx","CheckmarkIcon","CheckmarkSolidIcon"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA;AAE9C,MAAM,gBAAgB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,MAAA,GAAS;AACX,CAAA,KAAuC;AACrC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,sBAAA;AAAA,IACR,GAAA,EAAKC,eAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAWC,SAAA;AAAA,QACT,YAAA,EAAa;AAAA,QACb;AAAA,UACE,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG,OAAA;AAAA,UAC3B,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,QAAA;AAAA,UAC5B,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,OAAA,KACE,MAAA,mBACCD,cAAA,CAACE,mBAAA,EAAA,EAAc,WAAW,YAAA,CAAa,MAAM,CAAA,EAAG,CAAA,mBAEhDF,cAAA,CAACG,wBAAA,EAAA,EAAmB,SAAA,EAAW,YAAA,CAAa,WAAW,CAAA,EAAG,CAAA;AAAA;AAAA,GAEhE;AAEJ;;;;"}
1
+ {"version":3,"file":"PillCheckIcon.js","sources":["../src/pill/PillCheckIcon.tsx"],"sourcesContent":["import { CheckmarkIcon, CheckmarkSolidIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { ReactElement } from \"react\";\nimport { makePrefixer } from \"../utils\";\nimport pillCheckIcon from \"./PillCheckIcon.css\";\n\nexport interface PillCheckIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n active?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltPillCheckIcon\");\n\nexport const PillCheckIcon = ({\n className,\n checked = false,\n disabled = false,\n active = false,\n}: PillCheckIconProps): ReactElement => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pill-check-icon\",\n css: pillCheckIcon,\n window: targetWindow,\n });\n\n return (\n <div\n aria-hidden=\"true\"\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"active\")]: active,\n },\n className,\n )}\n >\n {checked &&\n (active ? (\n <CheckmarkIcon className={withBaseName(\"icon\")} />\n ) : (\n <CheckmarkSolidIcon className={withBaseName(\"solidIcon\")} />\n ))}\n </div>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","pillCheckIcon","jsx","clsx","CheckmarkIcon","CheckmarkSolidIcon"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA;AAE9C,MAAM,gBAAgB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,MAAA,GAAS;AACX,CAAA,KAAwC;AACtC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,sBAAA;AAAA,IACR,GAAA,EAAKC,eAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAWC,SAAA;AAAA,QACT,YAAA,EAAa;AAAA,QACb;AAAA,UACE,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG,OAAA;AAAA,UAC3B,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,QAAA;AAAA,UAC5B,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,OAAA,KACE,MAAA,mBACCD,cAAA,CAACE,mBAAA,EAAA,EAAc,WAAW,YAAA,CAAa,MAAM,CAAA,EAAG,CAAA,mBAEhDF,cAAA,CAACG,wBAAA,EAAA,EAAmB,SAAA,EAAW,YAAA,CAAa,WAAW,CAAA,EAAG,CAAA;AAAA;AAAA,GAEhE;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = "/* Style applied to the root element */\n.saltPillInput {\n align-items: center;\n background: var(--saltPillInput-background, var(--pillInput-background));\n border-radius: var(--salt-palette-corner-weak, 0);\n color: var(--saltPillInput-color, var(--salt-content-primary-foreground));\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltPillInput-fontSize, var(--salt-text-fontSize));\n line-height: var(--saltPillInput-lineHeight, var(--salt-text-lineHeight));\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: var(--saltPillInput-minHeight, var(--salt-size-base));\n min-width: var(--saltPillInput-minWidth, 4em);\n padding-left: var(--saltPillInput-paddingLeft, var(--salt-spacing-100));\n padding-right: var(--saltPillInput-paddingRight, var(--salt-spacing-100));\n position: relative;\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.saltPillInput-truncate {\n height: var(--salt-size-base);\n}\n\n.saltPillInput-truncate .saltPillInput-inputWrapper {\n flex-wrap: nowrap;\n}\n\n.saltPillInput:hover {\n cursor: var(--salt-cursor-text);\n}\n\n/* Style applied if `bordered={true}` */\n.saltPillInput-bordered.saltPillInput {\n --pillInput-borderWidth: var(--salt-size-fixed-100);\n border: var(--pillInput-borderWidth) var(--salt-borderStyle-solid) var(--pillInput-borderColor);\n}\n\n.saltPillInput-bordered.saltPillInput:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--pillInput-borderColor-hover);\n}\n\n/* Style applied if focused or active when `bordered={true}` */\n.saltPillInput-bordered.saltPillInput-focused,\n.saltPillInput-bordered.saltPillInput-focused:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--pillInput-borderColor-active);\n}\n\n.saltPillInput-bordered.saltPillInput-readOnly,\n.saltPillInput-bordered.saltPillInput-readOnly:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--salt-editable-borderColor-readonly);\n}\n\n.saltPillInput-bordered.saltPillInput-disabled,\n.saltPillInput-bordered.saltPillInput-disabled:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--salt-editable-borderColor-disabled);\n}\n\n.saltPillInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--pillInput-borderColor);\n}\n\n.saltPillInput:hover .saltPillInput-activationIndicator {\n border-bottom-style: var(--salt-borderStyle-solid);\n border-bottom-color: var(--pillInput-borderColor-hover);\n}\n\n.saltPillInput-focused .saltPillInput-activationIndicator,\n.saltPillInput-focused:hover .saltPillInput-activationIndicator {\n border-bottom: var(--salt-size-fixed-200) var(--salt-borderStyle-solid) var(--pillInput-borderColor-active);\n}\n\n.saltPillInput-readOnly .saltPillInput-activationIndicator,\n.saltPillInput-readOnly:hover .saltPillInput-activationIndicator {\n border-bottom-style: var(--salt-borderStyle-solid);\n border-bottom-color: var(--salt-editable-borderColor-readonly);\n}\n\n.saltPillInput-disabled .saltPillInput-activationIndicator,\n.saltPillInput-disabled:hover .saltPillInput-activationIndicator {\n border-bottom-style: var(--salt-borderStyle-solid);\n border-bottom-color: var(--salt-editable-borderColor-disabled);\n}\n\n.saltPillInput-bordered .saltPillInput-activationIndicator,\n.saltPillInput-bordered.saltPillInput-readOnly .saltPillInput-activationIndicator,\n.saltPillInput-bordered.saltPillInput-disabled:hover .saltPillInput-activationIndicator {\n border-bottom-width: 0;\n}\n\n.saltPillInput-bordered.saltPillInput-focused .saltPillInput-activationIndicator {\n border-bottom-width: calc(var(--salt-size-fixed-200) - var(--pillInput-borderWidth));\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltPillInput-primary {\n --pillInput-background: var(--salt-editable-primary-background);\n --pillInput-background-disabled: var(--salt-editable-primary-background-disabled);\n --pillInput-background-readonly: var(--salt-editable-background-readonly);\n --pillInput-borderColor: var(--salt-editable-borderColor);\n --pillInput-borderColor-active: var(--salt-editable-borderColor-active);\n --pillInput-borderColor-hover: var(--salt-editable-borderColor-hover);\n --pillInput-outlineColor: var(--salt-focused-outlineColor);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltPillInput-secondary {\n --pillInput-background: var(--salt-editable-secondary-background);\n --pillInput-background-disabled: var(--salt-editable-secondary-background-disabled);\n --pillInput-background-readonly: var(--salt-editable-background-readonly);\n --pillInput-borderColor: var(--salt-editable-borderColor);\n --pillInput-borderColor-active: var(--salt-editable-borderColor-active);\n --pillInput-borderColor-hover: var(--salt-editable-borderColor-hover);\n --pillInput-outlineColor: var(--salt-focused-outlineColor);\n}\n\n/* Class applied if `variant=\"tertiary\"` */\n.saltPillInput-tertiary {\n --pillInput-background: var(--salt-editable-tertiary-background);\n --pillInput-background-readonly: var(--salt-editable-background-readonly);\n --pillInput-borderColor: var(--salt-editable-borderColor);\n --pillInput-borderColor-active: var(--salt-editable-borderColor-active);\n --pillInput-borderColor-hover: var(--salt-editable-borderColor-hover);\n --pillInput-outlineColor: var(--salt-focused-outlineColor);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltPillInput-error {\n --pillInput-background: var(--salt-status-error-background);\n --pillInput-background-readonly: var(--salt-status-error-background);\n --pillInput-borderColor: var(--salt-status-error-borderColor);\n --pillInput-borderColor-active: var(--salt-status-error-borderColor);\n --pillInput-borderColor-hover: var(--salt-status-error-borderColor);\n --pillInput-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltPillInput-warning {\n --pillInput-background: var(--salt-status-warning-background);\n --pillInput-background-readonly: var(--salt-status-warning-background);\n --pillInput-borderColor: var(--salt-status-warning-borderColor);\n --pillInput-borderColor-active: var(--salt-status-warning-borderColor);\n --pillInput-borderColor-hover: var(--salt-status-warning-borderColor);\n --pillInput-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltPillInput-success {\n --pillInput-background: var(--salt-status-success-background);\n --pillInput-background-readonly: var(--salt-status-success-background);\n --pillInput-borderColor: var(--salt-status-success-borderColor);\n --pillInput-borderColor-active: var(--salt-status-success-borderColor);\n --pillInput-borderColor-hover: var(--salt-status-success-borderColor);\n --pillInput-outlineColor: var(--salt-status-success-borderColor);\n}\n\n/* Styling when focused */\n.saltPillInput-focused,\n.saltPillInput-focused:hover {\n cursor: var(--salt-cursor-text);\n outline: var(--saltPillInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--pillInput-outlineColor));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltPillInput.saltPillInput-readOnly {\n background: var(--pillInput-background-readonly);\n cursor: var(--salt-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` */\n.saltPillInput-disabled,\n.saltPillInput-disabled:hover {\n background: var(--pillInput-background-disabled);\n cursor: var(--salt-cursor-disabled);\n color: var(--saltPillInput-color-disabled, var(--salt-content-primary-foreground-disabled));\n}\n\n/* Style applied to start adornments */\n.saltPillInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-right: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to end adornments */\n.saltPillInput-endAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-left: var(--salt-spacing-50);\n padding-top: var(--salt-spacing-50);\n column-gap: var(--salt-spacing-100);\n align-self: flex-start;\n}\n\n.saltPillInput-statusAdornmentContainer {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n height: var(--salt-size-base);\n}\n\n.saltPillInput-readOnly .saltPillInput-startAdornmentContainer {\n margin-left: var(--salt-spacing-50);\n}\n\n.saltPillInput-startAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltPillInput-endAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltPillInput-startAdornmentContainer .saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltPillInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltPillInput-startAdornmentContainer > .saltButton,\n.saltPillInput-endAdornmentContainer > .saltButton {\n --saltButton-padding: calc(var(--salt-spacing-50) - var(--button-borderWidth));\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n --saltButton-borderRadius: var(--salt-palette-corner-weaker);\n}\n\n.saltPillInput-inputWrapper {\n display: flex;\n gap: var(--salt-spacing-50);\n align-items: center;\n flex: 1;\n padding: var(--salt-spacing-50) 0;\n flex-wrap: wrap;\n max-height: inherit;\n height: inherit;\n overflow-y: auto;\n box-sizing: border-box;\n}\n\n.saltPillInput-bordered > .saltPillInput-endAdornmentContainer {\n padding-top: calc(var(--salt-spacing-50) - var(--pillInput-borderWidth));\n}\n\n.saltPillInput-bordered > .saltPillInput-inputWrapper {\n padding: calc(var(--salt-spacing-50) - var(--pillInput-borderWidth)) 0;\n}\n\n.saltPillInput-pillList {\n display: contents;\n}\n\n.saltPillInput-pillList div[role=\"listitem\"] {\n display: inline;\n}\n\n.saltPillInput-overflowIndicator {\n width: calc(var(--salt-size-base) - var(--salt-spacing-100));\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Style applied to inner input component */\n.saltPillInput-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltPillInput-letterSpacing, var(--salt-text-letterSpacing));\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--pillInput-textAlign, left);\n width: 100%;\n}\n\n/* Reset in the class */\n.saltPillInput-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltPillInput-disabled .saltPillInput-input::selection {\n background: none;\n}\n\n/* Style applied to placeholder text */\n.saltPillInput-input::placeholder {\n color: var(--salt-content-secondary-foreground);\n font-weight: var(--salt-text-fontWeight-small);\n}\n";
3
+ var css_248z = "/* Style applied to the root element */\n.saltPillInput {\n align-items: center;\n background: var(--saltPillInput-background, var(--pillInput-background));\n border-radius: var(--salt-palette-corner-weak, 0);\n color: var(--saltPillInput-color, var(--salt-content-primary-foreground));\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltPillInput-fontSize, var(--salt-text-fontSize));\n line-height: var(--saltPillInput-lineHeight, var(--salt-text-lineHeight));\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: var(--saltPillInput-minHeight, var(--salt-size-base));\n min-width: var(--saltPillInput-minWidth, 4em);\n padding-left: var(--saltPillInput-paddingLeft, var(--salt-spacing-100));\n padding-right: var(--saltPillInput-paddingRight, var(--salt-spacing-100));\n position: relative;\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.saltPillInput-truncate {\n height: var(--salt-size-base);\n}\n\n.saltPillInput-truncate .saltPillInput-inputWrapper {\n flex-wrap: nowrap;\n}\n\n.saltPillInput:hover {\n cursor: var(--salt-cursor-text);\n}\n\n/* Style applied if `bordered={true}` */\n.saltPillInput-bordered.saltPillInput {\n --pillInput-borderWidth: var(--salt-size-fixed-100);\n border: var(--pillInput-borderWidth) var(--salt-borderStyle-solid) var(--pillInput-borderColor);\n}\n\n.saltPillInput-bordered.saltPillInput:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--pillInput-borderColor-hover);\n}\n\n/* Style applied if focused or active when `bordered={true}` */\n.saltPillInput-bordered.saltPillInput-focused,\n.saltPillInput-bordered.saltPillInput-focused:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--pillInput-borderColor-active);\n}\n\n.saltPillInput-bordered.saltPillInput-readOnly,\n.saltPillInput-bordered.saltPillInput-readOnly:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--salt-editable-borderColor-readonly);\n}\n\n.saltPillInput-bordered.saltPillInput-disabled,\n.saltPillInput-bordered.saltPillInput-disabled:hover {\n border-style: var(--salt-borderStyle-solid);\n border-color: var(--salt-editable-borderColor-disabled);\n}\n\n.saltPillInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--pillInput-borderColor);\n}\n\n.saltPillInput:hover .saltPillInput-activationIndicator {\n border-bottom-style: var(--salt-borderStyle-solid);\n border-bottom-color: var(--pillInput-borderColor-hover);\n}\n\n.saltPillInput-focused .saltPillInput-activationIndicator,\n.saltPillInput-focused:hover .saltPillInput-activationIndicator {\n border-bottom: var(--salt-size-fixed-200) var(--salt-borderStyle-solid) var(--pillInput-borderColor-active);\n}\n\n.saltPillInput-readOnly .saltPillInput-activationIndicator,\n.saltPillInput-readOnly:hover .saltPillInput-activationIndicator {\n border-bottom-style: var(--salt-borderStyle-solid);\n border-bottom-color: var(--salt-editable-borderColor-readonly);\n}\n\n.saltPillInput-disabled .saltPillInput-activationIndicator,\n.saltPillInput-disabled:hover .saltPillInput-activationIndicator {\n border-bottom-style: var(--salt-borderStyle-solid);\n border-bottom-color: var(--salt-editable-borderColor-disabled);\n}\n\n.saltPillInput-bordered .saltPillInput-activationIndicator,\n.saltPillInput-bordered.saltPillInput-readOnly .saltPillInput-activationIndicator,\n.saltPillInput-bordered.saltPillInput-disabled:hover .saltPillInput-activationIndicator {\n border-bottom-width: 0;\n}\n\n.saltPillInput-bordered.saltPillInput-focused .saltPillInput-activationIndicator {\n border-bottom-width: calc(var(--salt-size-fixed-200) - var(--pillInput-borderWidth));\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltPillInput-primary {\n --pillInput-background: var(--salt-editable-primary-background);\n --pillInput-background-disabled: var(--salt-editable-primary-background-disabled);\n --pillInput-background-readonly: var(--salt-editable-background-readonly);\n --pillInput-borderColor: var(--salt-editable-borderColor);\n --pillInput-borderColor-active: var(--salt-editable-borderColor-active);\n --pillInput-borderColor-hover: var(--salt-editable-borderColor-hover);\n --pillInput-outlineColor: var(--salt-focused-outlineColor);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltPillInput-secondary {\n --pillInput-background: var(--salt-editable-secondary-background);\n --pillInput-background-disabled: var(--salt-editable-secondary-background-disabled);\n --pillInput-background-readonly: var(--salt-editable-background-readonly);\n --pillInput-borderColor: var(--salt-editable-borderColor);\n --pillInput-borderColor-active: var(--salt-editable-borderColor-active);\n --pillInput-borderColor-hover: var(--salt-editable-borderColor-hover);\n --pillInput-outlineColor: var(--salt-focused-outlineColor);\n}\n\n/* Class applied if `variant=\"tertiary\"` */\n.saltPillInput-tertiary {\n --pillInput-background: var(--salt-editable-tertiary-background);\n --pillInput-background-readonly: var(--salt-editable-background-readonly);\n --pillInput-borderColor: var(--salt-editable-borderColor);\n --pillInput-borderColor-active: var(--salt-editable-borderColor-active);\n --pillInput-borderColor-hover: var(--salt-editable-borderColor-hover);\n --pillInput-outlineColor: var(--salt-focused-outlineColor);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltPillInput-error {\n --pillInput-background: var(--salt-status-error-background);\n --pillInput-background-readonly: var(--salt-status-error-background);\n --pillInput-borderColor: var(--salt-status-error-borderColor);\n --pillInput-borderColor-active: var(--salt-status-error-borderColor);\n --pillInput-borderColor-hover: var(--salt-status-error-borderColor);\n --pillInput-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltPillInput-warning {\n --pillInput-background: var(--salt-status-warning-background);\n --pillInput-background-readonly: var(--salt-status-warning-background);\n --pillInput-borderColor: var(--salt-status-warning-borderColor);\n --pillInput-borderColor-active: var(--salt-status-warning-borderColor);\n --pillInput-borderColor-hover: var(--salt-status-warning-borderColor);\n --pillInput-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltPillInput-success {\n --pillInput-background: var(--salt-status-success-background);\n --pillInput-background-readonly: var(--salt-status-success-background);\n --pillInput-borderColor: var(--salt-status-success-borderColor);\n --pillInput-borderColor-active: var(--salt-status-success-borderColor);\n --pillInput-borderColor-hover: var(--salt-status-success-borderColor);\n --pillInput-outlineColor: var(--salt-status-success-borderColor);\n}\n\n/* Styling when focused */\n.saltPillInput-focused,\n.saltPillInput-focused:hover {\n cursor: var(--salt-cursor-text);\n outline: var(--saltPillInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--pillInput-outlineColor));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltPillInput.saltPillInput-readOnly {\n background: var(--pillInput-background-readonly);\n cursor: var(--salt-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` */\n.saltPillInput-disabled,\n.saltPillInput-disabled:hover {\n background: var(--pillInput-background-disabled);\n cursor: var(--salt-cursor-disabled);\n color: var(--saltPillInput-color-disabled, var(--salt-content-primary-foreground-disabled));\n}\n\n/* Style applied to start adornments */\n.saltPillInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-right: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to end adornments */\n.saltPillInput-endAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-left: var(--salt-spacing-50);\n padding-top: var(--salt-spacing-50);\n column-gap: var(--salt-spacing-100);\n align-self: flex-start;\n}\n\n.saltPillInput-statusAdornmentContainer {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n height: var(--salt-size-base);\n}\n\n.saltPillInput-readOnly .saltPillInput-startAdornmentContainer {\n margin-left: var(--salt-spacing-50);\n}\n\n.saltPillInput-startAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltPillInput-endAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltPillInput-startAdornmentContainer .saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltPillInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltPillInput-startAdornmentContainer > .saltButton,\n.saltPillInput-endAdornmentContainer > .saltButton {\n --saltButton-padding: calc(var(--salt-spacing-50) - var(--button-borderWidth));\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n --saltButton-borderRadius: var(--salt-palette-corner-weaker);\n}\n\n.saltPillInput-inputWrapper {\n display: flex;\n gap: var(--salt-spacing-50);\n align-items: center;\n flex: 1;\n padding: var(--salt-spacing-50) 0;\n flex-wrap: wrap;\n max-height: inherit;\n height: inherit;\n overflow-y: auto;\n box-sizing: border-box;\n}\n\n.saltPillInput-bordered > .saltPillInput-endAdornmentContainer {\n padding-top: calc(var(--salt-spacing-50) - var(--pillInput-borderWidth));\n}\n\n.saltPillInput-bordered > .saltPillInput-inputWrapper {\n padding: calc(var(--salt-spacing-50) - var(--pillInput-borderWidth)) 0;\n}\n\n.saltPillInput-pillList {\n display: contents;\n}\n\n.saltPillInput-pillList div[role=\"listitem\"] {\n display: inline;\n}\n\n.saltPillInput-overflowIndicator {\n width: calc(var(--salt-size-base) - var(--salt-spacing-100));\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Style applied to inner input component */\n.saltPillInput-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltPillInput-letterSpacing, var(--salt-text-letterSpacing));\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--pillInput-textAlign, left);\n width: 100%;\n}\n\n/* Reset in the class */\n.saltPillInput-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltPillInput-disabled .saltPillInput-input::selection {\n background: none;\n}\n\n/* Style applied to placeholder text */\n.saltPillInput-input::placeholder {\n color: var(--salt-content-secondary-foreground);\n font-weight: var(--salt-text-fontWeight-lighter);\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=PillInput.css.js.map
@@ -7,6 +7,8 @@ var clsx = require('clsx');
7
7
  var React = require('react');
8
8
  require('../../text/Code.js');
9
9
  require('../../text/Display.js');
10
+ require('../../text/Editorial.js');
11
+ require('../../text/Eyebrow.js');
10
12
  require('../../text/Headings.js');
11
13
  require('../../text/Label.js');
12
14
  var Text = require('../../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"CircularProgress.js","sources":["../src/progress/CircularProgress/CircularProgress.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type CSSProperties,\n forwardRef,\n} from \"react\";\nimport { Text } from \"../../text\";\nimport { makePrefixer } from \"../../utils\";\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":["makePrefixer","forwardRef","CircularProgress","useWindow","useComponentCssInjection","circularProgressCSS","jsxs","clsx","jsx","Text"],"mappings":"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"}
1
+ {"version":3,"file":"CircularProgress.js","sources":["../src/progress/CircularProgress/CircularProgress.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type CSSProperties,\n forwardRef,\n} from \"react\";\nimport { Text } from \"../../text\";\nimport { makePrefixer } from \"../../utils\";\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":["makePrefixer","forwardRef","CircularProgress","useWindow","useComponentCssInjection","circularProgressCSS","jsxs","clsx","jsx","Text"],"mappings":"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"}
@@ -7,6 +7,8 @@ var clsx = require('clsx');
7
7
  var React = require('react');
8
8
  require('../../text/Code.js');
9
9
  require('../../text/Display.js');
10
+ require('../../text/Editorial.js');
11
+ require('../../text/Eyebrow.js');
10
12
  require('../../text/Headings.js');
11
13
  require('../../text/Label.js');
12
14
  var Text = require('../../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"LinearProgress.js","sources":["../src/progress/LinearProgress/LinearProgress.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { Text } from \"../../text\";\nimport { makePrefixer } from \"../../utils\";\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 `min` and `max`.\n * When no `value` and `bufferValue` is passed in, show as indeterminate state.\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 `min` and `max`.\n * When no `value` and `bufferValue` is passed in, show as indeterminate state.\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,\n bufferValue,\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 isIndeterminate = value === undefined && bufferValue === undefined;\n const progress =\n value === undefined ? 0 : ((value - min) / (max - min)) * 100;\n const buffer =\n bufferValue === undefined ? 0 : ((bufferValue - min) / (max - min)) * 100;\n const barStyle = {\n width: isIndeterminate ? undefined : `${progress}%`,\n };\n const bufferStyle = {\n width: `${buffer}%`,\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={value === undefined ? undefined : Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"barContainer\")}>\n <div\n className={clsx(withBaseName(\"bar\"), {\n [withBaseName(\"indeterminate\")]: isIndeterminate,\n })}\n style={barStyle}\n />\n {bufferValue && bufferValue > 0 ? (\n <div className={withBaseName(\"buffer\")} style={bufferStyle} />\n ) : null}\n <div className={withBaseName(\"track\")} />\n </div>\n {!hideLabel && (\n <Text styleAs=\"h2\" className={withBaseName(\"progressLabel\")}>\n {isIndeterminate ? \"— %\" : `${Math.round(progress)} %`}\n </Text>\n )}\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","LinearProgress","useWindow","useComponentCssInjection","linearProgressCss","jsxs","clsx","jsx","Text"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,oBAAoB,CAAA;AA+B/C,MAAM,cAAA,GAAiBC,gBAAA;AAAA,EAC5B,SAASC,eAAAA,CACP;AAAA,IACE,SAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,GAAA,GAAM,GAAA;AAAA,IACN,GAAA,GAAM,CAAA;AAAA,IACN,KAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAKC,gBAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,eAAA,GAAkB,KAAA,KAAU,MAAA,IAAa,WAAA,KAAgB,MAAA;AAC/D,IAAA,MAAM,WACJ,KAAA,KAAU,MAAA,GAAY,KAAM,KAAA,GAAQ,GAAA,KAAQ,MAAM,GAAA,CAAA,GAAQ,GAAA;AAC5D,IAAA,MAAM,SACJ,WAAA,KAAgB,MAAA,GAAY,KAAM,WAAA,GAAc,GAAA,KAAQ,MAAM,GAAA,CAAA,GAAQ,GAAA;AACxE,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,KAAA,EAAO,eAAA,GAAkB,MAAA,GAAY,CAAA,EAAG,QAAQ,CAAA,CAAA;AAAA,KAClD;AACA,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,KAAA,EAAO,GAAG,MAAM,CAAA,CAAA;AAAA,KAClB;AAEA,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACA,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAe,GAAA;AAAA,QACf,iBAAe,KAAA,KAAU,MAAA,GAAY,MAAA,GAAY,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,QAChE,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,cAAc,CAAA,EACzC,QAAA,EAAA;AAAA,4BAAAE,cAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWD,SAAA,CAAK,YAAA,CAAa,KAAK,CAAA,EAAG;AAAA,kBACnC,CAAC,YAAA,CAAa,eAAe,CAAC,GAAG;AAAA,iBAClC,CAAA;AAAA,gBACD,KAAA,EAAO;AAAA;AAAA,aACT;AAAA,YACC,WAAA,IAAe,WAAA,GAAc,CAAA,mBAC5BC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,QAAQ,CAAA,EAAG,KAAA,EAAO,WAAA,EAAa,CAAA,GAC1D,IAAA;AAAA,4BACJA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,OAAO,CAAA,EAAG;AAAA,WAAA,EACzC,CAAA;AAAA,UACC,CAAC,SAAA,oBACAA,cAAA,CAACC,SAAA,EAAA,EAAK,OAAA,EAAQ,MAAK,SAAA,EAAW,YAAA,CAAa,eAAe,CAAA,EACvD,4BAAkB,UAAA,GAAQ,CAAA,EAAG,KAAK,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAA,CAAA,EACpD;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;;;;"}
1
+ {"version":3,"file":"LinearProgress.js","sources":["../src/progress/LinearProgress/LinearProgress.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { Text } from \"../../text\";\nimport { makePrefixer } from \"../../utils\";\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 `min` and `max`.\n * When no `value` and `bufferValue` is passed in, show as indeterminate state.\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 `min` and `max`.\n * When no `value` and `bufferValue` is passed in, show as indeterminate state.\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,\n bufferValue,\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 isIndeterminate = value === undefined && bufferValue === undefined;\n const progress =\n value === undefined ? 0 : ((value - min) / (max - min)) * 100;\n const buffer =\n bufferValue === undefined ? 0 : ((bufferValue - min) / (max - min)) * 100;\n const barStyle = {\n width: isIndeterminate ? undefined : `${progress}%`,\n };\n const bufferStyle = {\n width: `${buffer}%`,\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={value === undefined ? undefined : Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"barContainer\")}>\n <div\n className={clsx(withBaseName(\"bar\"), {\n [withBaseName(\"indeterminate\")]: isIndeterminate,\n })}\n style={barStyle}\n />\n {bufferValue && bufferValue > 0 ? (\n <div className={withBaseName(\"buffer\")} style={bufferStyle} />\n ) : null}\n <div className={withBaseName(\"track\")} />\n </div>\n {!hideLabel && (\n <Text styleAs=\"h2\" className={withBaseName(\"progressLabel\")}>\n {isIndeterminate ? \"— %\" : `${Math.round(progress)} %`}\n </Text>\n )}\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","LinearProgress","useWindow","useComponentCssInjection","linearProgressCss","jsxs","clsx","jsx","Text"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,oBAAoB,CAAA;AA+B/C,MAAM,cAAA,GAAiBC,gBAAA;AAAA,EAC5B,SAASC,eAAAA,CACP;AAAA,IACE,SAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,GAAA,GAAM,GAAA;AAAA,IACN,GAAA,GAAM,CAAA;AAAA,IACN,KAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAKC,gBAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,eAAA,GAAkB,KAAA,KAAU,MAAA,IAAa,WAAA,KAAgB,MAAA;AAC/D,IAAA,MAAM,WACJ,KAAA,KAAU,MAAA,GAAY,KAAM,KAAA,GAAQ,GAAA,KAAQ,MAAM,GAAA,CAAA,GAAQ,GAAA;AAC5D,IAAA,MAAM,SACJ,WAAA,KAAgB,MAAA,GAAY,KAAM,WAAA,GAAc,GAAA,KAAQ,MAAM,GAAA,CAAA,GAAQ,GAAA;AACxE,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,KAAA,EAAO,eAAA,GAAkB,MAAA,GAAY,CAAA,EAAG,QAAQ,CAAA,CAAA;AAAA,KAClD;AACA,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,KAAA,EAAO,GAAG,MAAM,CAAA,CAAA;AAAA,KAClB;AAEA,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACA,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAe,GAAA;AAAA,QACf,iBAAe,KAAA,KAAU,MAAA,GAAY,MAAA,GAAY,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,QAChE,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,cAAc,CAAA,EACzC,QAAA,EAAA;AAAA,4BAAAE,cAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWD,SAAA,CAAK,YAAA,CAAa,KAAK,CAAA,EAAG;AAAA,kBACnC,CAAC,YAAA,CAAa,eAAe,CAAC,GAAG;AAAA,iBAClC,CAAA;AAAA,gBACD,KAAA,EAAO;AAAA;AAAA,aACT;AAAA,YACC,WAAA,IAAe,WAAA,GAAc,CAAA,mBAC5BC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,QAAQ,CAAA,EAAG,KAAA,EAAO,WAAA,EAAa,CAAA,GAC1D,IAAA;AAAA,4BACJA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,OAAO,CAAA,EAAG;AAAA,WAAA,EACzC,CAAA;AAAA,UACC,CAAC,SAAA,oBACAA,cAAA,CAACC,SAAA,EAAA,EAAK,OAAA,EAAQ,MAAK,SAAA,EAAW,YAAA,CAAa,eAAe,CAAA,EACvD,4BAAkB,UAAA,GAAQ,CAAA,EAAG,KAAK,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAA,CAAA,EACpD;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;;;;"}
@@ -29,9 +29,11 @@ function ThemeApplicator({
29
29
  targetDocument[providerSymbol] = providerId;
30
30
  }
31
31
  if (providerId !== targetDocument[providerSymbol]) {
32
- console.warn(
33
- "Multiple providers targeting the same window. There can be only one level root level SaltProvider per window."
34
- );
32
+ if (process.env.NODE_ENV !== "production") {
33
+ console.warn(
34
+ "Multiple providers targeting the same window. There can be only one level root level SaltProvider per window."
35
+ );
36
+ }
35
37
  return;
36
38
  }
37
39
  const themeNames = theme.split(" ");
@@ -89,12 +91,14 @@ function ThemeApplicator({
89
91
  ...themeNextProps
90
92
  });
91
93
  }
92
- console.warn(
93
- `
94
+ if (process.env.NODE_ENV !== "production") {
95
+ console.warn(
96
+ `
94
97
  SaltProvider can only apply CSS classes for theming to a single nested child element of the SaltProvider.
95
98
  Either wrap elements with a single container or consider removing the applyClassesToChild prop, in which case a
96
99
  div element will wrap your child elements`
97
- );
100
+ );
101
+ }
98
102
  return children;
99
103
  }
100
104
  if (applyClassesTo === "scope") {
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeApplicator.js","sources":["../src/salt-provider/ThemeApplicator.tsx"],"sourcesContent":["import { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n} from \"react\";\nimport type {\n Accent,\n ActionFont,\n Corner,\n Density,\n HeadingFont,\n Mode,\n ThemeName,\n} from \"../theme/index\";\nimport { useId } from \"../utils/useId\";\nimport { useIsomorphicLayoutEffect } from \"../utils/useIsomorphicLayoutEffect\";\n\nexport interface ThemeApplicatorProps {\n /**\n * Either \"root\", \"scope\" or \"child\".\n * Specifies the location of salt theme class and attributes should be applied to.\n *\n * Defaults to \"root\" for a root provider, otherwise \"scope\".\n */\n applyClassesTo: \"root\" | \"scope\" | \"child\";\n /**\n * Either \"high\", \"medium\", \"low\", \"touch\" or \"mobile\".\n * Determines the amount of content that can fit on a screen based on the size and spacing of components.\n * Refer to [density](https://www.saltdesignsystem.com/salt/foundations/density) doc for more detail.\n *\n * @default \"medium\"\n */\n density: Density;\n /**\n * A string. Specifies custom theme name(s) you want to apply, similar to `className`.\n */\n theme: ThemeName;\n /**\n * Either \"light\" or \"dark\". Enable the color palette to change from light to dark.\n * Refer to [modes](https://www.saltdesignsystem.com/salt/foundations/modes) doc for more detail.\n *\n * @default \"light\"\n */\n mode: Mode;\n /**\n * Either \"sharp\" or \"rounded\".\n * Determines selected components corner radius.\n * @default \"sharp\"\n */\n corner?: Corner;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of display and heading text.\n * @default \"Open Sans\"\n */\n headingFont?: HeadingFont;\n /**\n * Either \"blue\" or \"teal\".\n * Determines accent color used across components, e.g. Accent Button, List, Calendar.\n * @default \"blue\"\n */\n accent?: Accent;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of action components, mostly Buttons.\n * @default \"Open Sans\"\n */\n actionFont?: ActionFont;\n children?: ReactNode;\n}\n\nconst providerSymbol = Symbol.for(\"salt-provider\");\n\nexport function ThemeApplicator({\n applyClassesTo,\n children,\n density,\n mode,\n theme,\n corner,\n headingFont,\n accent,\n actionFont,\n}: ThemeApplicatorProps) {\n const targetWindow = useWindow();\n\n const providerId = useId();\n\n useIsomorphicLayoutEffect(() => {\n if (applyClassesTo !== \"root\" || !targetWindow || !providerId) return;\n\n const targetDocument: Document & { [providerSymbol]?: string } =\n targetWindow.document;\n\n // Claim the document if no other provider has already. The symbol is used so the lock isn't enumerable and guarantees it won't clash with anything else.\n if (!targetDocument[providerSymbol]) {\n targetDocument[providerSymbol] = providerId;\n }\n\n if (providerId !== targetDocument[providerSymbol]) {\n console.warn(\n \"Multiple providers targeting the same window. There can be only one level root level SaltProvider per window.\",\n );\n return;\n }\n\n const themeNames = theme.split(\" \");\n\n // add the styles we want to apply\n targetDocument.documentElement.classList.add(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = mode;\n\n // Theme Next\n if (corner) targetDocument.documentElement.dataset.corner = corner;\n if (headingFont)\n targetDocument.documentElement.dataset.headingFont = headingFont;\n if (accent) targetDocument.documentElement.dataset.accent = accent;\n if (actionFont)\n targetDocument.documentElement.dataset.actionFont = actionFont;\n\n return () => {\n // Delete lock\n delete targetDocument[providerSymbol];\n\n // When unmounting/remounting, remove the applied styles from the root\n targetDocument.documentElement.classList.remove(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = undefined;\n\n // Theme Next\n delete targetDocument.documentElement.dataset.corner;\n delete targetDocument.documentElement.dataset.headingFont;\n delete targetDocument.documentElement.dataset.accent;\n delete targetDocument.documentElement.dataset.actionFont;\n };\n }, [\n providerId,\n applyClassesTo,\n density,\n mode,\n theme,\n targetWindow,\n corner,\n headingFont,\n accent,\n actionFont,\n ]);\n\n const themeNextProps = {\n \"data-corner\": corner,\n \"data-heading-font\": headingFont,\n \"data-accent\": accent,\n \"data-action-font\": actionFont,\n };\n\n if (applyClassesTo === \"child\") {\n if (isValidElement<HTMLAttributes<HTMLElement>>(children)) {\n return cloneElement(children, {\n className: clsx(\n children.props?.className,\n theme,\n `salt-density-${density}`,\n ),\n // @ts-expect-error\n \"data-mode\": mode,\n ...themeNextProps,\n });\n }\n console.warn(\n `\\nSaltProvider can only apply CSS classes for theming to a single nested child element of the SaltProvider.\n Either wrap elements with a single container or consider removing the applyClassesToChild prop, in which case a\n div element will wrap your child elements`,\n );\n return children;\n }\n\n if (applyClassesTo === \"scope\") {\n return (\n <div\n className={clsx(\"salt-provider\", theme, `salt-density-${density}`)}\n data-mode={mode}\n {...themeNextProps}\n >\n {children}\n </div>\n );\n }\n\n return children;\n}\n"],"names":["useWindow","useId","useIsomorphicLayoutEffect","isValidElement","cloneElement","clsx","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeApplicator.js","sources":["../src/salt-provider/ThemeApplicator.tsx"],"sourcesContent":["import { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n} from \"react\";\nimport type {\n Accent,\n ActionFont,\n Corner,\n Density,\n HeadingFont,\n Mode,\n ThemeName,\n} from \"../theme/index\";\nimport { useId } from \"../utils/useId\";\nimport { useIsomorphicLayoutEffect } from \"../utils/useIsomorphicLayoutEffect\";\n\nexport interface ThemeApplicatorProps {\n /**\n * Either \"root\", \"scope\" or \"child\".\n * Specifies the location of salt theme class and attributes should be applied to.\n *\n * Defaults to \"root\" for a root provider, otherwise \"scope\".\n */\n applyClassesTo: \"root\" | \"scope\" | \"child\";\n /**\n * Either \"high\", \"medium\", \"low\", \"touch\" or \"mobile\".\n * Determines the amount of content that can fit on a screen based on the size and spacing of components.\n * Refer to [density](https://www.saltdesignsystem.com/salt/foundations/density) doc for more detail.\n *\n * @default \"medium\"\n */\n density: Density;\n /**\n * A string. Specifies custom theme name(s) you want to apply, similar to `className`.\n */\n theme: ThemeName;\n /**\n * Either \"light\" or \"dark\". Enable the color palette to change from light to dark.\n * Refer to [modes](https://www.saltdesignsystem.com/salt/foundations/modes) doc for more detail.\n *\n * @default \"light\"\n */\n mode: Mode;\n /**\n * Either \"sharp\" or \"rounded\".\n * Determines selected components corner radius.\n * @default \"sharp\"\n */\n corner?: Corner;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of display and heading text.\n * @default \"Open Sans\"\n */\n headingFont?: HeadingFont;\n /**\n * Either \"blue\" or \"teal\".\n * Determines accent color used across components, e.g. Accent Button, List, Calendar.\n * @default \"blue\"\n */\n accent?: Accent;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of action components, mostly Buttons.\n * @default \"Open Sans\"\n */\n actionFont?: ActionFont;\n children?: ReactNode;\n}\n\nconst providerSymbol = Symbol.for(\"salt-provider\");\n\nexport function ThemeApplicator({\n applyClassesTo,\n children,\n density,\n mode,\n theme,\n corner,\n headingFont,\n accent,\n actionFont,\n}: ThemeApplicatorProps) {\n const targetWindow = useWindow();\n\n const providerId = useId();\n\n useIsomorphicLayoutEffect(() => {\n if (applyClassesTo !== \"root\" || !targetWindow || !providerId) return;\n\n const targetDocument: Document & { [providerSymbol]?: string } =\n targetWindow.document;\n\n // Claim the document if no other provider has already. The symbol is used so the lock isn't enumerable and guarantees it won't clash with anything else.\n if (!targetDocument[providerSymbol]) {\n targetDocument[providerSymbol] = providerId;\n }\n\n if (providerId !== targetDocument[providerSymbol]) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n \"Multiple providers targeting the same window. There can be only one level root level SaltProvider per window.\",\n );\n }\n return;\n }\n\n const themeNames = theme.split(\" \");\n\n // add the styles we want to apply\n targetDocument.documentElement.classList.add(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = mode;\n\n // Theme Next\n if (corner) targetDocument.documentElement.dataset.corner = corner;\n if (headingFont)\n targetDocument.documentElement.dataset.headingFont = headingFont;\n if (accent) targetDocument.documentElement.dataset.accent = accent;\n if (actionFont)\n targetDocument.documentElement.dataset.actionFont = actionFont;\n\n return () => {\n // Delete lock\n delete targetDocument[providerSymbol];\n\n // When unmounting/remounting, remove the applied styles from the root\n targetDocument.documentElement.classList.remove(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = undefined;\n\n // Theme Next\n delete targetDocument.documentElement.dataset.corner;\n delete targetDocument.documentElement.dataset.headingFont;\n delete targetDocument.documentElement.dataset.accent;\n delete targetDocument.documentElement.dataset.actionFont;\n };\n }, [\n providerId,\n applyClassesTo,\n density,\n mode,\n theme,\n targetWindow,\n corner,\n headingFont,\n accent,\n actionFont,\n ]);\n\n const themeNextProps = {\n \"data-corner\": corner,\n \"data-heading-font\": headingFont,\n \"data-accent\": accent,\n \"data-action-font\": actionFont,\n };\n\n if (applyClassesTo === \"child\") {\n if (isValidElement<HTMLAttributes<HTMLElement>>(children)) {\n return cloneElement(children, {\n className: clsx(\n children.props?.className,\n theme,\n `salt-density-${density}`,\n ),\n // @ts-expect-error\n \"data-mode\": mode,\n ...themeNextProps,\n });\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n `\\nSaltProvider can only apply CSS classes for theming to a single nested child element of the SaltProvider.\n Either wrap elements with a single container or consider removing the applyClassesToChild prop, in which case a\n div element will wrap your child elements`,\n );\n }\n return children;\n }\n\n if (applyClassesTo === \"scope\") {\n return (\n <div\n className={clsx(\"salt-provider\", theme, `salt-density-${density}`)}\n data-mode={mode}\n {...themeNextProps}\n >\n {children}\n </div>\n );\n }\n\n return children;\n}\n"],"names":["useWindow","useId","useIsomorphicLayoutEffect","isValidElement","cloneElement","clsx","jsx"],"mappings":"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"}
@@ -7,6 +7,8 @@ var clsx = require('clsx');
7
7
  var React = require('react');
8
8
  require('../text/Code.js');
9
9
  require('../text/Display.js');
10
+ require('../text/Editorial.js');
11
+ require('../text/Eyebrow.js');
10
12
  require('../text/Headings.js');
11
13
  require('../text/Label.js');
12
14
  var Text = require('../text/Text.js');
@@ -1 +1 @@
1
- {"version":3,"file":"SidePanelTitle.js","sources":["../src/side-panel/SidePanelTitle.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { Text, type TextProps } from \"../text\";\nimport { makePrefixer, useId, useIsomorphicLayoutEffect } from \"../utils\";\nimport { useSidePanelContext } from \"./internal\";\nimport sidePanelTitleCss from \"./SidePanelTitle.css\";\n\nconst withBaseName = makePrefixer(\"saltSidePanelTitle\");\n\nexport type SidePanelTitleProps = TextProps<\"div\">;\n\nexport const SidePanelTitle = forwardRef<HTMLDivElement, SidePanelTitleProps>(\n function SidePanelTitle(props, ref) {\n const { children, className, id, styleAs = \"h2\", ...rest } = props;\n\n const { setTitleId } = useSidePanelContext();\n const targetWindow = useWindow();\n\n useComponentCssInjection({\n testId: \"salt-side-panel-title\",\n css: sidePanelTitleCss,\n window: targetWindow,\n });\n\n const titleId = useId(id);\n\n useIsomorphicLayoutEffect(() => {\n if (titleId) {\n setTitleId(titleId);\n }\n\n return () => {\n setTitleId(undefined);\n };\n }, [titleId, setTitleId]);\n\n return (\n <Text\n ref={ref}\n id={titleId}\n styleAs={styleAs}\n className={clsx(withBaseName(), className)}\n {...rest}\n >\n {children}\n </Text>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","SidePanelTitle","useSidePanelContext","useWindow","useComponentCssInjection","sidePanelTitleCss","useId","useIsomorphicLayoutEffect","jsx","Text","clsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,oBAAoB,CAAA;AAI/C,MAAM,cAAA,GAAiBC,gBAAA;AAAA,EAC5B,SAASC,eAAAA,CAAe,KAAA,EAAO,GAAA,EAAK;AAClC,IAAA,MAAM,EAAE,UAAU,SAAA,EAAW,EAAA,EAAI,UAAU,IAAA,EAAM,GAAG,MAAK,GAAI,KAAA;AAE7D,IAAA,MAAM,EAAE,UAAA,EAAW,GAAIC,oCAAA,EAAoB;AAC3C,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAE/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAKC,gBAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,OAAA,GAAUC,YAAM,EAAE,CAAA;AAExB,IAAAC,mDAAA,CAA0B,MAAM;AAC9B,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,UAAA,CAAW,OAAO,CAAA;AAAA,MACpB;AAEA,MAAA,OAAO,MAAM;AACX,QAAA,UAAA,CAAW,MAAS,CAAA;AAAA,MACtB,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,IAAA,uBACEC,cAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,OAAA;AAAA,QACJ,OAAA;AAAA,QACA,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACxC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;;;;"}
1
+ {"version":3,"file":"SidePanelTitle.js","sources":["../src/side-panel/SidePanelTitle.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { Text, type TextProps } from \"../text\";\nimport { makePrefixer, useId, useIsomorphicLayoutEffect } from \"../utils\";\nimport { useSidePanelContext } from \"./internal\";\nimport sidePanelTitleCss from \"./SidePanelTitle.css\";\n\nconst withBaseName = makePrefixer(\"saltSidePanelTitle\");\n\nexport type SidePanelTitleProps = TextProps<\"div\">;\n\nexport const SidePanelTitle = forwardRef<HTMLDivElement, SidePanelTitleProps>(\n function SidePanelTitle(props, ref) {\n const { children, className, id, styleAs = \"h2\", ...rest } = props;\n\n const { setTitleId } = useSidePanelContext();\n const targetWindow = useWindow();\n\n useComponentCssInjection({\n testId: \"salt-side-panel-title\",\n css: sidePanelTitleCss,\n window: targetWindow,\n });\n\n const titleId = useId(id);\n\n useIsomorphicLayoutEffect(() => {\n if (titleId) {\n setTitleId(titleId);\n }\n\n return () => {\n setTitleId(undefined);\n };\n }, [titleId, setTitleId]);\n\n return (\n <Text\n ref={ref}\n id={titleId}\n styleAs={styleAs}\n className={clsx(withBaseName(), className)}\n {...rest}\n >\n {children}\n </Text>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","SidePanelTitle","useSidePanelContext","useWindow","useComponentCssInjection","sidePanelTitleCss","useId","useIsomorphicLayoutEffect","jsx","Text","clsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,oBAAoB,CAAA;AAI/C,MAAM,cAAA,GAAiBC,gBAAA;AAAA,EAC5B,SAASC,eAAAA,CAAe,KAAA,EAAO,GAAA,EAAK;AAClC,IAAA,MAAM,EAAE,UAAU,SAAA,EAAW,EAAA,EAAI,UAAU,IAAA,EAAM,GAAG,MAAK,GAAI,KAAA;AAE7D,IAAA,MAAM,EAAE,UAAA,EAAW,GAAIC,oCAAA,EAAoB;AAC3C,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAE/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAKC,gBAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,OAAA,GAAUC,YAAM,EAAE,CAAA;AAExB,IAAAC,mDAAA,CAA0B,MAAM;AAC9B,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,UAAA,CAAW,OAAO,CAAA;AAAA,MACpB;AAEA,MAAA,OAAO,MAAM;AACX,QAAA,UAAA,CAAW,MAAS,CAAA;AAAA,MACtB,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,IAAA,uBACEC,cAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,OAAA;AAAA,QACJ,OAAA;AAAA,QACA,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACxC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SidePanelTrigger.js","sources":["../src/side-panel/SidePanelTrigger.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n cloneElement,\n forwardRef,\n isValidElement,\n type MouseEvent,\n} from \"react\";\nimport { getRefFromChildren, mergeProps, useForkRef } from \"../utils\";\nimport { useSidePanelContext } from \"./internal\";\n\nexport type SidePanelTriggerProps = ComponentPropsWithoutRef<\"button\">;\n\nexport const SidePanelTrigger = forwardRef<\n HTMLButtonElement,\n SidePanelTriggerProps\n>(function SidePanelTrigger(props, ref) {\n const { children, onClick, ...rest } = props;\n const { setReference, openState, setOpen, panelId } = useSidePanelContext();\n\n const combinedRef = useForkRef(setReference, ref);\n const handleRef = useForkRef(combinedRef, getRefFromChildren(children));\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n setOpen(!openState);\n };\n\n if (!children || !isValidElement(children)) {\n return <>{children}</>;\n }\n\n const mergedProps = mergeProps(\n {\n \"aria-expanded\": openState,\n \"aria-controls\": openState ? panelId : undefined,\n onClick: handleClick,\n ...rest,\n },\n children.props,\n );\n\n return cloneElement(children, {\n ...mergedProps,\n ref: handleRef,\n });\n});\n"],"names":["forwardRef","SidePanelTrigger","useSidePanelContext","useForkRef","getRefFromChildren","isValidElement","mergeProps","cloneElement"],"mappings":";;;;;;;;;;;;;;AAYO,MAAM,gBAAA,GAAmBA,gBAAA,CAG9B,SAASC,iBAAAA,CAAiB,OAAO,GAAA,EAAK;AACtC,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,GAAG,MAAK,GAAI,KAAA;AACvC,EAAA,MAAM,EAAE,YAAA,EAAc,SAAA,EAAW,OAAA,EAAS,OAAA,KAAYC,oCAAA,EAAoB;AAE1E,EAAA,MAAM,WAAA,GAAcC,qBAAA,CAAW,YAAA,EAAc,GAAG,CAAA;AAChD,EAAA,MAAM,SAAA,GAAYA,qBAAA,CAAW,WAAA,EAAaC,qCAAA,CAAmB,QAAQ,CAAC,CAAA;AAEtE,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyC;AAC5D,IAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAU,KAAA,CAAA;AACV,IAAA,OAAA,CAAQ,CAAC,SAAS,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,IAAI,CAAC,QAAA,IAAY,CAACC,oBAAA,CAAe,QAAQ,CAAA,EAAG;AAC1C,IAAA,6DAAU,QAAA,EAAS,CAAA;AAAA,EACrB;AAEA,EAAA,MAAM,WAAA,GAAcC,qBAAA;AAAA,IAClB;AAAA,MACE,eAAA,EAAiB,SAAA;AAAA,MACjB,eAAA,EAAiB,YAAY,OAAA,GAAU,MAAA;AAAA,MACvC,OAAA,EAAS,WAAA;AAAA,MACT,GAAG;AAAA,KACL;AAAA,IACA,QAAA,CAAS;AAAA,GACX;AAEA,EAAA,OAAOC,mBAAa,QAAA,EAAU;AAAA,IAC5B,GAAG,WAAA;AAAA,IACH,GAAA,EAAK;AAAA,GACN,CAAA;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"SidePanelTrigger.js","sources":["../src/side-panel/SidePanelTrigger.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n cloneElement,\n forwardRef,\n isValidElement,\n type MouseEvent,\n type Ref,\n} from \"react\";\nimport { getRefFromChildren, mergeProps, useForkRef } from \"../utils\";\nimport { useSidePanelContext } from \"./internal\";\n\nexport type SidePanelTriggerProps = ComponentPropsWithoutRef<\"button\">;\n\nexport const SidePanelTrigger = forwardRef<\n HTMLButtonElement,\n SidePanelTriggerProps\n>(function SidePanelTrigger(props, ref) {\n const { children, onClick, ...rest } = props;\n const { setReference, openState, setOpen, panelId } = useSidePanelContext();\n\n const combinedRef = useForkRef(setReference, ref);\n const handleRef = useForkRef(combinedRef, getRefFromChildren(children));\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n setOpen(!openState);\n };\n\n if (!children || !isValidElement<{ ref?: Ref<unknown> }>(children)) {\n return <>{children}</>;\n }\n\n const mergedProps = mergeProps(\n {\n \"aria-expanded\": openState,\n \"aria-controls\": openState ? panelId : undefined,\n onClick: handleClick,\n ...rest,\n },\n children.props,\n );\n\n return cloneElement(children, {\n ...mergedProps,\n ref: handleRef,\n });\n});\n"],"names":["forwardRef","SidePanelTrigger","useSidePanelContext","useForkRef","getRefFromChildren","isValidElement","mergeProps","cloneElement"],"mappings":";;;;;;;;;;;;;;AAaO,MAAM,gBAAA,GAAmBA,gBAAA,CAG9B,SAASC,iBAAAA,CAAiB,OAAO,GAAA,EAAK;AACtC,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,GAAG,MAAK,GAAI,KAAA;AACvC,EAAA,MAAM,EAAE,YAAA,EAAc,SAAA,EAAW,OAAA,EAAS,OAAA,KAAYC,oCAAA,EAAoB;AAE1E,EAAA,MAAM,WAAA,GAAcC,qBAAA,CAAW,YAAA,EAAc,GAAG,CAAA;AAChD,EAAA,MAAM,SAAA,GAAYA,qBAAA,CAAW,WAAA,EAAaC,qCAAA,CAAmB,QAAQ,CAAC,CAAA;AAEtE,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyC;AAC5D,IAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAU,KAAA,CAAA;AACV,IAAA,OAAA,CAAQ,CAAC,SAAS,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,IAAI,CAAC,QAAA,IAAY,CAACC,oBAAA,CAAuC,QAAQ,CAAA,EAAG;AAClE,IAAA,6DAAU,QAAA,EAAS,CAAA;AAAA,EACrB;AAEA,EAAA,MAAM,WAAA,GAAcC,qBAAA;AAAA,IAClB;AAAA,MACE,eAAA,EAAiB,SAAA;AAAA,MACjB,eAAA,EAAiB,YAAY,OAAA,GAAU,MAAA;AAAA,MACvC,OAAA,EAAS,WAAA;AAAA,MACT,GAAG;AAAA,KACL;AAAA,IACA,QAAA,CAAS;AAAA,GACX;AAEA,EAAA,OAAOC,mBAAa,QAAA,EAAU;AAAA,IAC5B,GAAG,WAAA;AAAA,IACH,GAAA,EAAK;AAAA,GACN,CAAA;AACH,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsScrollable.js","sources":["../src/side-panel/internal/useIsScrollable.ts"],"sourcesContent":["import { type RefObject, useEffect, useState } from \"react\";\n\nconst observedAttributes = [\"class\", \"hidden\", \"style\"];\n\nexport function useIsScrollable(ref: RefObject<HTMLElement>) {\n const [isScrollable, setIsScrollable] = useState(false);\n\n useEffect(() => {\n const element = ref.current;\n const win = element?.ownerDocument.defaultView;\n if (!element || !win) {\n return;\n }\n\n let animationFrame: number | undefined;\n\n const checkScrollable = () => {\n animationFrame = undefined;\n const nextIsScrollable =\n element.scrollHeight > element.clientHeight ||\n element.scrollWidth > element.clientWidth;\n\n setIsScrollable((currentIsScrollable) =>\n currentIsScrollable === nextIsScrollable\n ? currentIsScrollable\n : nextIsScrollable,\n );\n };\n\n const scheduleCheck = () => {\n if (animationFrame === undefined) {\n animationFrame = win.requestAnimationFrame(checkScrollable);\n }\n };\n\n scheduleCheck();\n\n const resizeObserver = win.ResizeObserver\n ? new win.ResizeObserver(scheduleCheck)\n : undefined;\n resizeObserver?.observe(element);\n\n const mutationObserver = win.MutationObserver\n ? new win.MutationObserver(scheduleCheck)\n : undefined;\n mutationObserver?.observe(element, {\n attributeFilter: observedAttributes,\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n\n return () => {\n if (animationFrame !== undefined) {\n win.cancelAnimationFrame(animationFrame);\n }\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n };\n }, [ref]);\n\n return isScrollable;\n}\n"],"names":["useState","useEffect"],"mappings":";;;;AAEA,MAAM,kBAAA,GAAqB,CAAC,OAAA,EAAS,QAAA,EAAU,OAAO,CAAA;AAE/C,SAAS,gBAAgB,GAAA,EAA6B;AAC3D,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,eAAS,KAAK,CAAA;AAEtD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,IAAA,MAAM,GAAA,GAAM,mCAAS,aAAA,CAAc,WAAA;AACnC,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,GAAA,EAAK;AACpB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,cAAA;AAEJ,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,cAAA,GAAiB,MAAA;AACjB,MAAA,MAAM,mBACJ,OAAA,CAAQ,YAAA,GAAe,QAAQ,YAAA,IAC/B,OAAA,CAAQ,cAAc,OAAA,CAAQ,WAAA;AAEhC,MAAA,eAAA;AAAA,QAAgB,CAAC,mBAAA,KACf,mBAAA,KAAwB,gBAAA,GACpB,mBAAA,GACA;AAAA,OACN;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,QAAA,cAAA,GAAiB,GAAA,CAAI,sBAAsB,eAAe,CAAA;AAAA,MAC5D;AAAA,IACF,CAAA;AAEA,IAAA,aAAA,EAAc;AAEd,IAAA,MAAM,iBAAiB,GAAA,CAAI,cAAA,GACvB,IAAI,GAAA,CAAI,cAAA,CAAe,aAAa,CAAA,GACpC,MAAA;AACJ,IAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,OAAA,CAAQ,OAAA,CAAA;AAExB,IAAA,MAAM,mBAAmB,GAAA,CAAI,gBAAA,GACzB,IAAI,GAAA,CAAI,gBAAA,CAAiB,aAAa,CAAA,GACtC,MAAA;AACJ,IAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAkB,QAAQ,OAAA,EAAS;AAAA,MACjC,eAAA,EAAiB,kBAAA;AAAA,MACjB,UAAA,EAAY,IAAA;AAAA,MACZ,aAAA,EAAe,IAAA;AAAA,MACf,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACX,CAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,QAAA,GAAA,CAAI,qBAAqB,cAAc,CAAA;AAAA,MACzC;AACA,MAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,UAAA,EAAA;AAChB,MAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAkB,UAAA,EAAA;AAAA,IACpB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,EAAA,OAAO,YAAA;AACT;;;;"}
1
+ {"version":3,"file":"useIsScrollable.js","sources":["../src/side-panel/internal/useIsScrollable.ts"],"sourcesContent":["import { type RefObject, useEffect, useState } from \"react\";\n\nconst observedAttributes = [\"class\", \"hidden\", \"style\"];\n\nexport function useIsScrollable(ref: RefObject<HTMLElement | null>) {\n const [isScrollable, setIsScrollable] = useState(false);\n\n useEffect(() => {\n const element = ref.current;\n const win = element?.ownerDocument.defaultView;\n if (!element || !win) {\n return;\n }\n\n let animationFrame: number | undefined;\n\n const checkScrollable = () => {\n animationFrame = undefined;\n const nextIsScrollable =\n element.scrollHeight > element.clientHeight ||\n element.scrollWidth > element.clientWidth;\n\n setIsScrollable((currentIsScrollable) =>\n currentIsScrollable === nextIsScrollable\n ? currentIsScrollable\n : nextIsScrollable,\n );\n };\n\n const scheduleCheck = () => {\n if (animationFrame === undefined) {\n animationFrame = win.requestAnimationFrame(checkScrollable);\n }\n };\n\n scheduleCheck();\n\n const resizeObserver = win.ResizeObserver\n ? new win.ResizeObserver(scheduleCheck)\n : undefined;\n resizeObserver?.observe(element);\n\n const mutationObserver = win.MutationObserver\n ? new win.MutationObserver(scheduleCheck)\n : undefined;\n mutationObserver?.observe(element, {\n attributeFilter: observedAttributes,\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n\n return () => {\n if (animationFrame !== undefined) {\n win.cancelAnimationFrame(animationFrame);\n }\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n };\n }, [ref]);\n\n return isScrollable;\n}\n"],"names":["useState","useEffect"],"mappings":";;;;AAEA,MAAM,kBAAA,GAAqB,CAAC,OAAA,EAAS,QAAA,EAAU,OAAO,CAAA;AAE/C,SAAS,gBAAgB,GAAA,EAAoC;AAClE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,eAAS,KAAK,CAAA;AAEtD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,IAAA,MAAM,GAAA,GAAM,mCAAS,aAAA,CAAc,WAAA;AACnC,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,GAAA,EAAK;AACpB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,cAAA;AAEJ,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,cAAA,GAAiB,MAAA;AACjB,MAAA,MAAM,mBACJ,OAAA,CAAQ,YAAA,GAAe,QAAQ,YAAA,IAC/B,OAAA,CAAQ,cAAc,OAAA,CAAQ,WAAA;AAEhC,MAAA,eAAA;AAAA,QAAgB,CAAC,mBAAA,KACf,mBAAA,KAAwB,gBAAA,GACpB,mBAAA,GACA;AAAA,OACN;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,QAAA,cAAA,GAAiB,GAAA,CAAI,sBAAsB,eAAe,CAAA;AAAA,MAC5D;AAAA,IACF,CAAA;AAEA,IAAA,aAAA,EAAc;AAEd,IAAA,MAAM,iBAAiB,GAAA,CAAI,cAAA,GACvB,IAAI,GAAA,CAAI,cAAA,CAAe,aAAa,CAAA,GACpC,MAAA;AACJ,IAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,OAAA,CAAQ,OAAA,CAAA;AAExB,IAAA,MAAM,mBAAmB,GAAA,CAAI,gBAAA,GACzB,IAAI,GAAA,CAAI,gBAAA,CAAiB,aAAa,CAAA,GACtC,MAAA;AACJ,IAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAkB,QAAQ,OAAA,EAAS;AAAA,MACjC,eAAA,EAAiB,kBAAA;AAAA,MACjB,UAAA,EAAY,IAAA;AAAA,MACZ,aAAA,EAAe,IAAA;AAAA,MACf,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACX,CAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,QAAA,GAAA,CAAI,qBAAqB,cAAc,CAAA;AAAA,MACzC;AACA,MAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,UAAA,EAAA;AAChB,MAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAkB,UAAA,EAAA;AAAA,IACpB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,EAAA,OAAO,YAAA;AACT;;;;"}