@salt-ds/core 1.22.0 → 1.24.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 (461) hide show
  1. package/css/salt-core.css +201 -96
  2. package/dist-cjs/accordion/Accordion.js +9 -2
  3. package/dist-cjs/accordion/Accordion.js.map +1 -1
  4. package/dist-cjs/accordion/AccordionContext.js +9 -2
  5. package/dist-cjs/accordion/AccordionContext.js.map +1 -1
  6. package/dist-cjs/accordion/AccordionGroup.js +9 -2
  7. package/dist-cjs/accordion/AccordionGroup.js.map +1 -1
  8. package/dist-cjs/accordion/AccordionHeader.js +10 -2
  9. package/dist-cjs/accordion/AccordionHeader.js.map +1 -1
  10. package/dist-cjs/accordion/AccordionPanel.js +9 -2
  11. package/dist-cjs/accordion/AccordionPanel.js.map +1 -1
  12. package/dist-cjs/aria-announcer/useAriaAnnouncer.js +9 -2
  13. package/dist-cjs/aria-announcer/useAriaAnnouncer.js.map +1 -1
  14. package/dist-cjs/avatar/Avatar.js +9 -2
  15. package/dist-cjs/avatar/Avatar.js.map +1 -1
  16. package/dist-cjs/avatar/useAvatarImage.js +9 -2
  17. package/dist-cjs/avatar/useAvatarImage.js.map +1 -1
  18. package/dist-cjs/badge/Badge.js +9 -2
  19. package/dist-cjs/badge/Badge.js.map +1 -1
  20. package/dist-cjs/banner/Banner.js +9 -2
  21. package/dist-cjs/banner/Banner.js.map +1 -1
  22. package/dist-cjs/banner/BannerActions.js +9 -2
  23. package/dist-cjs/banner/BannerActions.js.map +1 -1
  24. package/dist-cjs/banner/BannerContent.js +9 -2
  25. package/dist-cjs/banner/BannerContent.js.map +1 -1
  26. package/dist-cjs/border-item/BorderItem.js +9 -2
  27. package/dist-cjs/border-item/BorderItem.js.map +1 -1
  28. package/dist-cjs/border-layout/BorderLayout.js +9 -2
  29. package/dist-cjs/border-layout/BorderLayout.js.map +1 -1
  30. package/dist-cjs/button/Button.js +9 -2
  31. package/dist-cjs/button/Button.js.map +1 -1
  32. package/dist-cjs/card/Card.css.js +1 -1
  33. package/dist-cjs/card/Card.js +9 -2
  34. package/dist-cjs/card/Card.js.map +1 -1
  35. package/dist-cjs/checkbox/Checkbox.js +10 -3
  36. package/dist-cjs/checkbox/Checkbox.js.map +1 -1
  37. package/dist-cjs/checkbox/CheckboxGroup.js +9 -2
  38. package/dist-cjs/checkbox/CheckboxGroup.js.map +1 -1
  39. package/dist-cjs/checkbox/CheckboxIcon.js +9 -2
  40. package/dist-cjs/checkbox/CheckboxIcon.js.map +1 -1
  41. package/dist-cjs/checkbox/internal/CheckboxGroupContext.js +9 -2
  42. package/dist-cjs/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  43. package/dist-cjs/combo-box/ComboBox.js +8 -1
  44. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  45. package/dist-cjs/combo-box/useComboBox.js +9 -2
  46. package/dist-cjs/combo-box/useComboBox.js.map +1 -1
  47. package/dist-cjs/dialog/Dialog.js +10 -3
  48. package/dist-cjs/dialog/Dialog.js.map +1 -1
  49. package/dist-cjs/dialog/DialogActions.js +9 -2
  50. package/dist-cjs/dialog/DialogActions.js.map +1 -1
  51. package/dist-cjs/dialog/DialogCloseButton.js +12 -3
  52. package/dist-cjs/dialog/DialogCloseButton.js.map +1 -1
  53. package/dist-cjs/dialog/DialogContent.js +9 -2
  54. package/dist-cjs/dialog/DialogContent.js.map +1 -1
  55. package/dist-cjs/dialog/DialogHeader.js +9 -2
  56. package/dist-cjs/dialog/DialogHeader.js.map +1 -1
  57. package/dist-cjs/drawer/Drawer.js +8 -1
  58. package/dist-cjs/drawer/Drawer.js.map +1 -1
  59. package/dist-cjs/drawer/DrawerCloseButton.js +9 -2
  60. package/dist-cjs/drawer/DrawerCloseButton.js.map +1 -1
  61. package/dist-cjs/dropdown/Dropdown.js +9 -2
  62. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  63. package/dist-cjs/file-drop-zone/FileDropZone.js +9 -2
  64. package/dist-cjs/file-drop-zone/FileDropZone.js.map +1 -1
  65. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js +9 -2
  66. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  67. package/dist-cjs/flex-item/FlexItem.js +9 -2
  68. package/dist-cjs/flex-item/FlexItem.js.map +1 -1
  69. package/dist-cjs/flex-layout/FlexLayout.js +9 -2
  70. package/dist-cjs/flex-layout/FlexLayout.js.map +1 -1
  71. package/dist-cjs/form-field/FormField.js +9 -2
  72. package/dist-cjs/form-field/FormField.js.map +1 -1
  73. package/dist-cjs/form-field/FormFieldHelperText.js +9 -2
  74. package/dist-cjs/form-field/FormFieldHelperText.js.map +1 -1
  75. package/dist-cjs/form-field/FormFieldLabel.js +9 -2
  76. package/dist-cjs/form-field/FormFieldLabel.js.map +1 -1
  77. package/dist-cjs/form-field-context/FormFieldContext.js +9 -2
  78. package/dist-cjs/form-field-context/FormFieldContext.js.map +1 -1
  79. package/dist-cjs/grid-item/GridItem.js +9 -2
  80. package/dist-cjs/grid-item/GridItem.js.map +1 -1
  81. package/dist-cjs/grid-layout/GridLayout.js +9 -2
  82. package/dist-cjs/grid-layout/GridLayout.js.map +1 -1
  83. package/dist-cjs/index.js +19 -2
  84. package/dist-cjs/index.js.map +1 -1
  85. package/dist-cjs/input/Input.js +9 -2
  86. package/dist-cjs/input/Input.js.map +1 -1
  87. package/dist-cjs/interactable-card/InteractableCard.css.js +6 -0
  88. package/dist-cjs/interactable-card/InteractableCard.js +201 -0
  89. package/dist-cjs/interactable-card/InteractableCard.js.map +1 -0
  90. package/dist-cjs/interactable-card/InteractableCardGroup.css.js +6 -0
  91. package/dist-cjs/interactable-card/InteractableCardGroup.css.js.map +1 -0
  92. package/dist-cjs/interactable-card/InteractableCardGroup.js +232 -0
  93. package/dist-cjs/interactable-card/InteractableCardGroup.js.map +1 -0
  94. package/dist-cjs/interactable-card/InteractableCardGroupContext.js +107 -0
  95. package/dist-cjs/interactable-card/InteractableCardGroupContext.js.map +1 -0
  96. package/dist-cjs/{card → interactable-card}/useInteractableCard.js +5 -2
  97. package/dist-cjs/interactable-card/useInteractableCard.js.map +1 -0
  98. package/dist-cjs/link/Link.js +9 -2
  99. package/dist-cjs/link/Link.js.map +1 -1
  100. package/dist-cjs/link-card/LinkCard.css.js +1 -1
  101. package/dist-cjs/link-card/LinkCard.js +9 -2
  102. package/dist-cjs/link-card/LinkCard.js.map +1 -1
  103. package/dist-cjs/list-control/ListControlContext.js +9 -2
  104. package/dist-cjs/list-control/ListControlContext.js.map +1 -1
  105. package/dist-cjs/list-control/ListControlState.js +9 -2
  106. package/dist-cjs/list-control/ListControlState.js.map +1 -1
  107. package/dist-cjs/multiline-input/MultilineInput.js +9 -2
  108. package/dist-cjs/multiline-input/MultilineInput.js.map +1 -1
  109. package/dist-cjs/navigation-item/NavigationItem.js +9 -2
  110. package/dist-cjs/navigation-item/NavigationItem.js.map +1 -1
  111. package/dist-cjs/option/Option.js +9 -2
  112. package/dist-cjs/option/Option.js.map +1 -1
  113. package/dist-cjs/option/OptionGroup.js +9 -2
  114. package/dist-cjs/option/OptionGroup.js.map +1 -1
  115. package/dist-cjs/option/OptionList.js +9 -2
  116. package/dist-cjs/option/OptionList.js.map +1 -1
  117. package/dist-cjs/option/OptionListBase.js +9 -2
  118. package/dist-cjs/option/OptionListBase.js.map +1 -1
  119. package/dist-cjs/overlay/Overlay.js +164 -0
  120. package/dist-cjs/overlay/Overlay.js.map +1 -0
  121. package/dist-cjs/overlay/OverlayContext.js +127 -0
  122. package/dist-cjs/overlay/OverlayContext.js.map +1 -0
  123. package/dist-cjs/overlay/OverlayPanel.css.js +6 -0
  124. package/dist-cjs/overlay/OverlayPanel.css.js.map +1 -0
  125. package/dist-cjs/overlay/OverlayPanel.js +166 -0
  126. package/dist-cjs/overlay/OverlayPanel.js.map +1 -0
  127. package/dist-cjs/overlay/OverlayPanelCloseButton.css.js +6 -0
  128. package/dist-cjs/overlay/OverlayPanelCloseButton.css.js.map +1 -0
  129. package/dist-cjs/overlay/OverlayPanelCloseButton.js +129 -0
  130. package/dist-cjs/overlay/OverlayPanelCloseButton.js.map +1 -0
  131. package/dist-cjs/overlay/OverlayPanelContent.css.js +6 -0
  132. package/dist-cjs/overlay/OverlayPanelContent.css.js.map +1 -0
  133. package/dist-cjs/{card/InteractableCard.js → overlay/OverlayPanelContent.js} +24 -44
  134. package/dist-cjs/overlay/OverlayPanelContent.js.map +1 -0
  135. package/dist-cjs/overlay/OverlayTrigger.js +123 -0
  136. package/dist-cjs/overlay/OverlayTrigger.js.map +1 -0
  137. package/dist-cjs/pagination/CompactInput.js +9 -2
  138. package/dist-cjs/pagination/CompactInput.js.map +1 -1
  139. package/dist-cjs/pagination/CompactPaginator.js +9 -2
  140. package/dist-cjs/pagination/CompactPaginator.js.map +1 -1
  141. package/dist-cjs/pagination/GoToInput.js +9 -2
  142. package/dist-cjs/pagination/GoToInput.js.map +1 -1
  143. package/dist-cjs/pagination/PageButton.js +9 -2
  144. package/dist-cjs/pagination/PageButton.js.map +1 -1
  145. package/dist-cjs/pagination/PageRanges.js +9 -2
  146. package/dist-cjs/pagination/PageRanges.js.map +1 -1
  147. package/dist-cjs/pagination/Pagination.js +9 -2
  148. package/dist-cjs/pagination/Pagination.js.map +1 -1
  149. package/dist-cjs/pagination/Paginator.js +9 -2
  150. package/dist-cjs/pagination/Paginator.js.map +1 -1
  151. package/dist-cjs/panel/Panel.js +9 -2
  152. package/dist-cjs/panel/Panel.js.map +1 -1
  153. package/dist-cjs/pill/Pill.js +10 -2
  154. package/dist-cjs/pill/Pill.js.map +1 -1
  155. package/dist-cjs/pill-input/PillInput.js +9 -2
  156. package/dist-cjs/pill-input/PillInput.js.map +1 -1
  157. package/dist-cjs/progress/CircularProgress/CircularProgress.js +9 -2
  158. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  159. package/dist-cjs/progress/LinearProgress/LinearProgress.js +11 -4
  160. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  161. package/dist-cjs/radio-button/RadioButton.js +10 -3
  162. package/dist-cjs/radio-button/RadioButton.js.map +1 -1
  163. package/dist-cjs/radio-button/RadioButtonGroup.js +9 -2
  164. package/dist-cjs/radio-button/RadioButtonGroup.js.map +1 -1
  165. package/dist-cjs/radio-button/RadioButtonIcon.js +9 -2
  166. package/dist-cjs/radio-button/RadioButtonIcon.js.map +1 -1
  167. package/dist-cjs/radio-button/internal/RadioGroupContext.js +9 -2
  168. package/dist-cjs/radio-button/internal/RadioGroupContext.js.map +1 -1
  169. package/dist-cjs/salt-provider/SaltProvider.js +9 -2
  170. package/dist-cjs/salt-provider/SaltProvider.js.map +1 -1
  171. package/dist-cjs/scrim/Scrim.js +9 -2
  172. package/dist-cjs/scrim/Scrim.js.map +1 -1
  173. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.css.js +6 -0
  174. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.css.js.map +1 -0
  175. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.js +118 -0
  176. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.js.map +1 -0
  177. package/dist-cjs/spinner/Spinner.js +9 -2
  178. package/dist-cjs/spinner/Spinner.js.map +1 -1
  179. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js +9 -2
  180. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  181. package/dist-cjs/split-layout/SplitLayout.js +9 -2
  182. package/dist-cjs/split-layout/SplitLayout.js.map +1 -1
  183. package/dist-cjs/stack-layout/StackLayout.js +9 -2
  184. package/dist-cjs/stack-layout/StackLayout.js.map +1 -1
  185. package/dist-cjs/status-adornment/StatusAdornment.js +9 -2
  186. package/dist-cjs/status-adornment/StatusAdornment.js.map +1 -1
  187. package/dist-cjs/status-indicator/StatusIndicator.js +9 -2
  188. package/dist-cjs/status-indicator/StatusIndicator.js.map +1 -1
  189. package/dist-cjs/switch/Switch.js +10 -2
  190. package/dist-cjs/switch/Switch.js.map +1 -1
  191. package/dist-cjs/text/Text.js +9 -2
  192. package/dist-cjs/text/Text.js.map +1 -1
  193. package/dist-cjs/toast/Toast.js +9 -2
  194. package/dist-cjs/toast/Toast.js.map +1 -1
  195. package/dist-cjs/toast/ToastContent.js +9 -2
  196. package/dist-cjs/toast/ToastContent.js.map +1 -1
  197. package/dist-cjs/toggle-button/ToggleButton.js +10 -2
  198. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
  199. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +9 -2
  200. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  201. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js +9 -2
  202. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  203. package/dist-cjs/tooltip/Tooltip.css.js +1 -1
  204. package/dist-cjs/tooltip/Tooltip.js +15 -3
  205. package/dist-cjs/tooltip/Tooltip.js.map +1 -1
  206. package/dist-cjs/tooltip/TooltipBase.js +9 -2
  207. package/dist-cjs/tooltip/TooltipBase.js.map +1 -1
  208. package/dist-cjs/tooltip/useAriaAnnounce.js +9 -2
  209. package/dist-cjs/tooltip/useAriaAnnounce.js.map +1 -1
  210. package/dist-cjs/tooltip/useTooltip.js +8 -1
  211. package/dist-cjs/tooltip/useTooltip.js.map +1 -1
  212. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js +3 -5
  213. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  214. package/dist-cjs/utils/useValueEffect.js +9 -2
  215. package/dist-cjs/utils/useValueEffect.js.map +1 -1
  216. package/dist-cjs/viewport/ViewportProvider.js +9 -2
  217. package/dist-cjs/viewport/ViewportProvider.js.map +1 -1
  218. package/dist-es/accordion/Accordion.js +9 -2
  219. package/dist-es/accordion/Accordion.js.map +1 -1
  220. package/dist-es/accordion/AccordionContext.js +9 -2
  221. package/dist-es/accordion/AccordionContext.js.map +1 -1
  222. package/dist-es/accordion/AccordionGroup.js +9 -2
  223. package/dist-es/accordion/AccordionGroup.js.map +1 -1
  224. package/dist-es/accordion/AccordionHeader.js +10 -2
  225. package/dist-es/accordion/AccordionHeader.js.map +1 -1
  226. package/dist-es/accordion/AccordionPanel.js +9 -2
  227. package/dist-es/accordion/AccordionPanel.js.map +1 -1
  228. package/dist-es/aria-announcer/useAriaAnnouncer.js +9 -2
  229. package/dist-es/aria-announcer/useAriaAnnouncer.js.map +1 -1
  230. package/dist-es/avatar/Avatar.js +9 -2
  231. package/dist-es/avatar/Avatar.js.map +1 -1
  232. package/dist-es/avatar/useAvatarImage.js +9 -2
  233. package/dist-es/avatar/useAvatarImage.js.map +1 -1
  234. package/dist-es/badge/Badge.js +9 -2
  235. package/dist-es/badge/Badge.js.map +1 -1
  236. package/dist-es/banner/Banner.js +9 -2
  237. package/dist-es/banner/Banner.js.map +1 -1
  238. package/dist-es/banner/BannerActions.js +9 -2
  239. package/dist-es/banner/BannerActions.js.map +1 -1
  240. package/dist-es/banner/BannerContent.js +9 -2
  241. package/dist-es/banner/BannerContent.js.map +1 -1
  242. package/dist-es/border-item/BorderItem.js +9 -2
  243. package/dist-es/border-item/BorderItem.js.map +1 -1
  244. package/dist-es/border-layout/BorderLayout.js +9 -2
  245. package/dist-es/border-layout/BorderLayout.js.map +1 -1
  246. package/dist-es/button/Button.js +9 -2
  247. package/dist-es/button/Button.js.map +1 -1
  248. package/dist-es/card/Card.css.js +1 -1
  249. package/dist-es/card/Card.js +9 -2
  250. package/dist-es/card/Card.js.map +1 -1
  251. package/dist-es/checkbox/Checkbox.js +10 -3
  252. package/dist-es/checkbox/Checkbox.js.map +1 -1
  253. package/dist-es/checkbox/CheckboxGroup.js +9 -2
  254. package/dist-es/checkbox/CheckboxGroup.js.map +1 -1
  255. package/dist-es/checkbox/CheckboxIcon.js +9 -2
  256. package/dist-es/checkbox/CheckboxIcon.js.map +1 -1
  257. package/dist-es/checkbox/internal/CheckboxGroupContext.js +9 -2
  258. package/dist-es/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  259. package/dist-es/combo-box/ComboBox.js +8 -1
  260. package/dist-es/combo-box/ComboBox.js.map +1 -1
  261. package/dist-es/combo-box/useComboBox.js +9 -2
  262. package/dist-es/combo-box/useComboBox.js.map +1 -1
  263. package/dist-es/dialog/Dialog.js +10 -3
  264. package/dist-es/dialog/Dialog.js.map +1 -1
  265. package/dist-es/dialog/DialogActions.js +9 -2
  266. package/dist-es/dialog/DialogActions.js.map +1 -1
  267. package/dist-es/dialog/DialogCloseButton.js +12 -3
  268. package/dist-es/dialog/DialogCloseButton.js.map +1 -1
  269. package/dist-es/dialog/DialogContent.js +9 -2
  270. package/dist-es/dialog/DialogContent.js.map +1 -1
  271. package/dist-es/dialog/DialogHeader.js +9 -2
  272. package/dist-es/dialog/DialogHeader.js.map +1 -1
  273. package/dist-es/drawer/Drawer.js +8 -1
  274. package/dist-es/drawer/Drawer.js.map +1 -1
  275. package/dist-es/drawer/DrawerCloseButton.js +9 -2
  276. package/dist-es/drawer/DrawerCloseButton.js.map +1 -1
  277. package/dist-es/dropdown/Dropdown.js +9 -2
  278. package/dist-es/dropdown/Dropdown.js.map +1 -1
  279. package/dist-es/file-drop-zone/FileDropZone.js +9 -2
  280. package/dist-es/file-drop-zone/FileDropZone.js.map +1 -1
  281. package/dist-es/file-drop-zone/FileDropZoneTrigger.js +9 -2
  282. package/dist-es/file-drop-zone/FileDropZoneTrigger.js.map +1 -1
  283. package/dist-es/flex-item/FlexItem.js +9 -2
  284. package/dist-es/flex-item/FlexItem.js.map +1 -1
  285. package/dist-es/flex-layout/FlexLayout.js +9 -2
  286. package/dist-es/flex-layout/FlexLayout.js.map +1 -1
  287. package/dist-es/form-field/FormField.js +9 -2
  288. package/dist-es/form-field/FormField.js.map +1 -1
  289. package/dist-es/form-field/FormFieldHelperText.js +9 -2
  290. package/dist-es/form-field/FormFieldHelperText.js.map +1 -1
  291. package/dist-es/form-field/FormFieldLabel.js +9 -2
  292. package/dist-es/form-field/FormFieldLabel.js.map +1 -1
  293. package/dist-es/form-field-context/FormFieldContext.js +9 -2
  294. package/dist-es/form-field-context/FormFieldContext.js.map +1 -1
  295. package/dist-es/grid-item/GridItem.js +9 -2
  296. package/dist-es/grid-item/GridItem.js.map +1 -1
  297. package/dist-es/grid-layout/GridLayout.js +9 -2
  298. package/dist-es/grid-layout/GridLayout.js.map +1 -1
  299. package/dist-es/index.js +9 -1
  300. package/dist-es/index.js.map +1 -1
  301. package/dist-es/input/Input.js +9 -2
  302. package/dist-es/input/Input.js.map +1 -1
  303. package/dist-es/interactable-card/InteractableCard.css.js +4 -0
  304. package/dist-es/interactable-card/InteractableCard.js +197 -0
  305. package/dist-es/interactable-card/InteractableCard.js.map +1 -0
  306. package/dist-es/interactable-card/InteractableCardGroup.css.js +4 -0
  307. package/dist-es/interactable-card/InteractableCardGroup.css.js.map +1 -0
  308. package/dist-es/interactable-card/InteractableCardGroup.js +228 -0
  309. package/dist-es/interactable-card/InteractableCardGroup.js.map +1 -0
  310. package/dist-es/interactable-card/InteractableCardGroupContext.js +102 -0
  311. package/dist-es/interactable-card/InteractableCardGroupContext.js.map +1 -0
  312. package/dist-es/{card → interactable-card}/useInteractableCard.js +5 -2
  313. package/dist-es/interactable-card/useInteractableCard.js.map +1 -0
  314. package/dist-es/link/Link.js +9 -2
  315. package/dist-es/link/Link.js.map +1 -1
  316. package/dist-es/link-card/LinkCard.css.js +1 -1
  317. package/dist-es/link-card/LinkCard.js +9 -2
  318. package/dist-es/link-card/LinkCard.js.map +1 -1
  319. package/dist-es/list-control/ListControlContext.js +9 -2
  320. package/dist-es/list-control/ListControlContext.js.map +1 -1
  321. package/dist-es/list-control/ListControlState.js +9 -2
  322. package/dist-es/list-control/ListControlState.js.map +1 -1
  323. package/dist-es/multiline-input/MultilineInput.js +9 -2
  324. package/dist-es/multiline-input/MultilineInput.js.map +1 -1
  325. package/dist-es/navigation-item/NavigationItem.js +9 -2
  326. package/dist-es/navigation-item/NavigationItem.js.map +1 -1
  327. package/dist-es/option/Option.js +9 -2
  328. package/dist-es/option/Option.js.map +1 -1
  329. package/dist-es/option/OptionGroup.js +9 -2
  330. package/dist-es/option/OptionGroup.js.map +1 -1
  331. package/dist-es/option/OptionList.js +9 -2
  332. package/dist-es/option/OptionList.js.map +1 -1
  333. package/dist-es/option/OptionListBase.js +9 -2
  334. package/dist-es/option/OptionListBase.js.map +1 -1
  335. package/dist-es/overlay/Overlay.js +160 -0
  336. package/dist-es/overlay/Overlay.js.map +1 -0
  337. package/dist-es/overlay/OverlayContext.js +122 -0
  338. package/dist-es/overlay/OverlayContext.js.map +1 -0
  339. package/dist-es/overlay/OverlayPanel.css.js +4 -0
  340. package/dist-es/overlay/OverlayPanel.css.js.map +1 -0
  341. package/dist-es/overlay/OverlayPanel.js +162 -0
  342. package/dist-es/overlay/OverlayPanel.js.map +1 -0
  343. package/dist-es/overlay/OverlayPanelCloseButton.css.js +4 -0
  344. package/dist-es/overlay/OverlayPanelCloseButton.css.js.map +1 -0
  345. package/dist-es/overlay/OverlayPanelCloseButton.js +121 -0
  346. package/dist-es/overlay/OverlayPanelCloseButton.js.map +1 -0
  347. package/dist-es/overlay/OverlayPanelContent.css.js +4 -0
  348. package/dist-es/overlay/OverlayPanelContent.css.js.map +1 -0
  349. package/dist-es/overlay/OverlayPanelContent.js +115 -0
  350. package/dist-es/overlay/OverlayPanelContent.js.map +1 -0
  351. package/dist-es/overlay/OverlayTrigger.js +119 -0
  352. package/dist-es/overlay/OverlayTrigger.js.map +1 -0
  353. package/dist-es/pagination/CompactInput.js +9 -2
  354. package/dist-es/pagination/CompactInput.js.map +1 -1
  355. package/dist-es/pagination/CompactPaginator.js +9 -2
  356. package/dist-es/pagination/CompactPaginator.js.map +1 -1
  357. package/dist-es/pagination/GoToInput.js +9 -2
  358. package/dist-es/pagination/GoToInput.js.map +1 -1
  359. package/dist-es/pagination/PageButton.js +9 -2
  360. package/dist-es/pagination/PageButton.js.map +1 -1
  361. package/dist-es/pagination/PageRanges.js +9 -2
  362. package/dist-es/pagination/PageRanges.js.map +1 -1
  363. package/dist-es/pagination/Pagination.js +9 -2
  364. package/dist-es/pagination/Pagination.js.map +1 -1
  365. package/dist-es/pagination/Paginator.js +9 -2
  366. package/dist-es/pagination/Paginator.js.map +1 -1
  367. package/dist-es/panel/Panel.js +9 -2
  368. package/dist-es/panel/Panel.js.map +1 -1
  369. package/dist-es/pill/Pill.js +10 -2
  370. package/dist-es/pill/Pill.js.map +1 -1
  371. package/dist-es/pill-input/PillInput.js +9 -2
  372. package/dist-es/pill-input/PillInput.js.map +1 -1
  373. package/dist-es/progress/CircularProgress/CircularProgress.js +9 -2
  374. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  375. package/dist-es/progress/LinearProgress/LinearProgress.js +11 -4
  376. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  377. package/dist-es/radio-button/RadioButton.js +10 -3
  378. package/dist-es/radio-button/RadioButton.js.map +1 -1
  379. package/dist-es/radio-button/RadioButtonGroup.js +9 -2
  380. package/dist-es/radio-button/RadioButtonGroup.js.map +1 -1
  381. package/dist-es/radio-button/RadioButtonIcon.js +9 -2
  382. package/dist-es/radio-button/RadioButtonIcon.js.map +1 -1
  383. package/dist-es/radio-button/internal/RadioGroupContext.js +9 -2
  384. package/dist-es/radio-button/internal/RadioGroupContext.js.map +1 -1
  385. package/dist-es/salt-provider/SaltProvider.js +9 -2
  386. package/dist-es/salt-provider/SaltProvider.js.map +1 -1
  387. package/dist-es/scrim/Scrim.js +9 -2
  388. package/dist-es/scrim/Scrim.js.map +1 -1
  389. package/dist-es/segmented-button-group/SegmentedButtonGroup.css.js +4 -0
  390. package/dist-es/segmented-button-group/SegmentedButtonGroup.css.js.map +1 -0
  391. package/dist-es/{card/InteractableCard.js → segmented-button-group/SegmentedButtonGroup.js} +20 -45
  392. package/dist-es/segmented-button-group/SegmentedButtonGroup.js.map +1 -0
  393. package/dist-es/spinner/Spinner.js +9 -2
  394. package/dist-es/spinner/Spinner.js.map +1 -1
  395. package/dist-es/spinner/svgSpinners/SpinnerSVG.js +9 -2
  396. package/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  397. package/dist-es/split-layout/SplitLayout.js +9 -2
  398. package/dist-es/split-layout/SplitLayout.js.map +1 -1
  399. package/dist-es/stack-layout/StackLayout.js +9 -2
  400. package/dist-es/stack-layout/StackLayout.js.map +1 -1
  401. package/dist-es/status-adornment/StatusAdornment.js +9 -2
  402. package/dist-es/status-adornment/StatusAdornment.js.map +1 -1
  403. package/dist-es/status-indicator/StatusIndicator.js +9 -2
  404. package/dist-es/status-indicator/StatusIndicator.js.map +1 -1
  405. package/dist-es/switch/Switch.js +10 -2
  406. package/dist-es/switch/Switch.js.map +1 -1
  407. package/dist-es/text/Text.js +9 -2
  408. package/dist-es/text/Text.js.map +1 -1
  409. package/dist-es/toast/Toast.js +9 -2
  410. package/dist-es/toast/Toast.js.map +1 -1
  411. package/dist-es/toast/ToastContent.js +9 -2
  412. package/dist-es/toast/ToastContent.js.map +1 -1
  413. package/dist-es/toggle-button/ToggleButton.js +10 -2
  414. package/dist-es/toggle-button/ToggleButton.js.map +1 -1
  415. package/dist-es/toggle-button-group/ToggleButtonGroup.js +9 -2
  416. package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  417. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js +9 -2
  418. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  419. package/dist-es/tooltip/Tooltip.css.js +1 -1
  420. package/dist-es/tooltip/Tooltip.js +15 -3
  421. package/dist-es/tooltip/Tooltip.js.map +1 -1
  422. package/dist-es/tooltip/TooltipBase.js +9 -2
  423. package/dist-es/tooltip/TooltipBase.js.map +1 -1
  424. package/dist-es/tooltip/useAriaAnnounce.js +9 -2
  425. package/dist-es/tooltip/useAriaAnnounce.js.map +1 -1
  426. package/dist-es/tooltip/useTooltip.js +8 -1
  427. package/dist-es/tooltip/useTooltip.js.map +1 -1
  428. package/dist-es/utils/useFloatingUI/useFloatingUI.js +3 -5
  429. package/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  430. package/dist-es/utils/useValueEffect.js +9 -2
  431. package/dist-es/utils/useValueEffect.js.map +1 -1
  432. package/dist-es/viewport/ViewportProvider.js +9 -2
  433. package/dist-es/viewport/ViewportProvider.js.map +1 -1
  434. package/dist-types/card/index.d.ts +0 -1
  435. package/dist-types/index.d.ts +3 -0
  436. package/dist-types/{card → interactable-card}/InteractableCard.d.ts +15 -1
  437. package/dist-types/interactable-card/InteractableCardGroup.d.ts +27 -0
  438. package/dist-types/interactable-card/InteractableCardGroupContext.d.ts +12 -0
  439. package/dist-types/interactable-card/index.d.ts +3 -0
  440. package/dist-types/overlay/Overlay.d.ts +13 -0
  441. package/dist-types/overlay/OverlayContext.d.ts +21 -0
  442. package/dist-types/overlay/OverlayPanel.d.ts +8 -0
  443. package/dist-types/overlay/OverlayPanelCloseButton.d.ts +2 -0
  444. package/dist-types/overlay/OverlayPanelContent.d.ts +8 -0
  445. package/dist-types/overlay/OverlayTrigger.d.ts +5 -0
  446. package/dist-types/overlay/index.d.ts +5 -0
  447. package/dist-types/segmented-button-group/SegmentedButtonGroup.d.ts +4 -0
  448. package/dist-types/segmented-button-group/index.d.ts +1 -0
  449. package/dist-types/tooltip/Tooltip.d.ts +2 -1
  450. package/dist-types/tooltip/TooltipBase.d.ts +2 -2
  451. package/dist-types/utils/useFloatingUI/useFloatingUI.d.ts +1 -1
  452. package/package.json +2 -2
  453. package/dist-cjs/card/InteractableCard.css.js +0 -6
  454. package/dist-cjs/card/InteractableCard.js.map +0 -1
  455. package/dist-cjs/card/useInteractableCard.js.map +0 -1
  456. package/dist-es/card/InteractableCard.css.js +0 -4
  457. package/dist-es/card/InteractableCard.js.map +0 -1
  458. package/dist-es/card/useInteractableCard.js.map +0 -1
  459. /package/dist-cjs/{card → interactable-card}/InteractableCard.css.js.map +0 -0
  460. /package/dist-es/{card → interactable-card}/InteractableCard.css.js.map +0 -0
  461. /package/dist-types/{card → interactable-card}/useInteractableCard.d.ts +0 -0
@@ -0,0 +1,27 @@
1
+ import { ComponentPropsWithoutRef, SyntheticEvent } from "react";
2
+ import { InteractableCardValue } from "./InteractableCardGroupContext";
3
+ export interface InteractableCardGroupProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
4
+ /**
5
+ * The default value. Use when the component is not controlled. Should be an array when `multiSelect` is true.
6
+ */
7
+ defaultValue?: InteractableCardValue;
8
+ /**
9
+ * If `true`, the Interactable Card Group will be disabled.
10
+ */
11
+ disabled?: boolean;
12
+ /**
13
+ * The value. Use when the component is controlled. Should be an array when `multiSelect` is true.
14
+ */
15
+ value?: InteractableCardValue;
16
+ /**
17
+ * If `true` the Interactable Card Group will allow multiple selection functionality, with keyboard interactions matching those of a checkbox.
18
+ * By default the group allows mutually exclusive selection with keyboard interactions matching radio buttons.
19
+ */
20
+ multiSelect?: boolean;
21
+ /**
22
+ * Callback fired when the selection changes.
23
+ * @param event
24
+ */
25
+ onChange?: (event: SyntheticEvent<HTMLDivElement>, value: InteractableCardValue) => void;
26
+ }
27
+ export declare const InteractableCardGroup: import("react").ForwardRefExoticComponent<InteractableCardGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,12 @@
1
+ import { SyntheticEvent } from "react";
2
+ export declare type InteractableCardValue = string | readonly string[] | undefined;
3
+ export interface InteractableCardGroupContextValue {
4
+ disabled?: boolean;
5
+ select: (event: SyntheticEvent<HTMLDivElement>, value: InteractableCardValue) => void;
6
+ isSelected: (id: InteractableCardValue) => boolean;
7
+ isFirstChild: (value: InteractableCardValue) => boolean;
8
+ multiSelect?: boolean;
9
+ value: InteractableCardValue;
10
+ }
11
+ export declare const InteractableCardGroupContext: import("react").Context<InteractableCardGroupContextValue | undefined>;
12
+ export declare function useInteractableCardGroup(): InteractableCardGroupContextValue | undefined;
@@ -0,0 +1,3 @@
1
+ export * from "./InteractableCard";
2
+ export * from "./InteractableCardGroup";
3
+ export * from "./InteractableCardGroupContext";
@@ -0,0 +1,13 @@
1
+ import { ComponentPropsWithoutRef } from "react";
2
+ export interface OverlayProps extends ComponentPropsWithoutRef<"div"> {
3
+ /**
4
+ * Display or hide the component.
5
+ */
6
+ open?: boolean;
7
+ /**
8
+ * Callback function triggered when open state changes.
9
+ */
10
+ onOpenChange?: (open: boolean) => void;
11
+ placement?: "top" | "bottom" | "left" | "right";
12
+ }
13
+ export declare const Overlay: ({ children, open, onOpenChange, placement: placementProp, }: OverlayProps) => JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { FloatingArrowProps, FloatingContext, ReferenceType, Strategy } from "@floating-ui/react";
2
+ declare type FloatingStyleProps = {
3
+ top: number;
4
+ left: number;
5
+ position: Strategy;
6
+ width?: number;
7
+ height?: number;
8
+ };
9
+ export interface OverlayContextValue {
10
+ openState: boolean;
11
+ floatingStyles: FloatingStyleProps;
12
+ arrowProps: FloatingArrowProps;
13
+ context: FloatingContext;
14
+ reference?: (node: ReferenceType | null) => void;
15
+ floating?: (node: HTMLElement | null) => void;
16
+ getFloatingProps: (userProps?: React.HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
17
+ getReferenceProps: (userProps?: React.HTMLProps<Element> | undefined) => Record<string, unknown>;
18
+ }
19
+ export declare const OverlayContext: import("react").Context<OverlayContextValue>;
20
+ export declare function useOverlayContext(): OverlayContextValue;
21
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ export interface OverlayPanelProps extends ComponentPropsWithoutRef<"div"> {
3
+ /**
4
+ * The content of Overlay Panel
5
+ */
6
+ children?: ReactNode;
7
+ }
8
+ export declare const OverlayPanel: import("react").ForwardRefExoticComponent<OverlayPanelProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ import { ButtonProps } from "../button";
2
+ export declare const OverlayPanelCloseButton: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,8 @@
1
+ import { ReactNode, ComponentPropsWithoutRef } from "react";
2
+ export interface OverlayPanelContentProps extends ComponentPropsWithoutRef<"div"> {
3
+ /**
4
+ * The content of Overlay Panel Content
5
+ */
6
+ children?: ReactNode;
7
+ }
8
+ export declare const OverlayPanelContent: import("react").ForwardRefExoticComponent<OverlayPanelContentProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from "react";
2
+ export interface OverlayTriggerProps {
3
+ children?: ReactNode;
4
+ }
5
+ export declare function OverlayTrigger(props: OverlayTriggerProps): JSX.Element;
@@ -0,0 +1,5 @@
1
+ export * from "./Overlay";
2
+ export * from "./OverlayTrigger";
3
+ export * from "./OverlayPanel";
4
+ export * from "./OverlayPanelCloseButton";
5
+ export * from "./OverlayPanelContent";
@@ -0,0 +1,4 @@
1
+ import { ComponentPropsWithoutRef } from "react";
2
+ export interface SegmentedButtonGroupProps extends ComponentPropsWithoutRef<"div"> {
3
+ }
4
+ export declare const SegmentedButtonGroup: import("react").ForwardRefExoticComponent<SegmentedButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export * from "./SegmentedButtonGroup";
@@ -12,6 +12,7 @@ export interface TooltipProps extends Pick<UseFloatingUIProps, "open" | "onOpenC
12
12
  hideArrow?: boolean;
13
13
  /**
14
14
  * Whether to hide the status icon within the Tooltip. Defaults to `false`.
15
+ * If no status is provided, icon will also be hidden.
15
16
  */
16
17
  hideIcon?: boolean;
17
18
  /**
@@ -19,7 +20,7 @@ export interface TooltipProps extends Pick<UseFloatingUIProps, "open" | "onOpenC
19
20
  */
20
21
  content: ReactNode;
21
22
  /**
22
- * A string to determine the status of the Tooltip. Defaults to `info`.
23
+ * Optional string to determine the status of the Tooltip.
23
24
  */
24
25
  status?: ValidationStatus;
25
26
  /**
@@ -4,9 +4,9 @@ import { TooltipProps } from "./Tooltip";
4
4
  interface TooltipBaseProps extends Omit<TooltipProps, "children"> {
5
5
  arrowProps: FloatingArrowProps;
6
6
  /**
7
- * A string to determine the status of the Tooltip. Defaults to `info`.
7
+ * Optional string to determine the status of the Tooltip.
8
8
  */
9
- status: ValidationStatus;
9
+ status?: ValidationStatus;
10
10
  }
11
11
  export declare const TooltipBase: (props: TooltipBaseProps) => JSX.Element;
12
12
  export {};
@@ -31,7 +31,7 @@ export interface FloatingComponentProviderProps extends FloatingComponentContext
31
31
  }
32
32
  export declare function FloatingComponentProvider(props: FloatingComponentProviderProps): JSX.Element;
33
33
  export declare function useFloatingComponent(): FloatingComponentContextType;
34
- export interface UseFloatingUIProps extends Pick<UseFloatingOptions, "placement" | "strategy" | "open" | "onOpenChange"> {
34
+ export interface UseFloatingUIProps extends Pick<UseFloatingOptions, "placement" | "strategy" | "open" | "onOpenChange" | "nodeId"> {
35
35
  /**
36
36
  * Function to update the default middleware used to extend or replace it
37
37
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salt-ds/core",
3
- "version": "1.22.0",
3
+ "version": "1.24.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,7 +15,7 @@
15
15
  "clsx": "^2.0.0",
16
16
  "@salt-ds/window": "^0.1.1",
17
17
  "@salt-ds/styles": "^0.2.1",
18
- "@salt-ds/icons": "^1.9.1"
18
+ "@salt-ds/icons": "^1.11.0"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "@types/react": ">=16.14.0",
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = "/* Styles applied to InteractableCard */\n.saltInteractableCard {\n box-shadow: var(--saltCard-boxShadow, var(--salt-overlayable-shadow));\n border-width: var(--saltCard-borderWidth, var(--card-borderWidth));\n border-style: var(--saltCard-borderStyle, var(--salt-container-borderStyle));\n border-color: var(--saltCard-borderColor, var(--salt-accent-borderColor));\n border-radius: var(--saltCard-borderRadius, var(--salt-palette-corner, 0));\n display: block;\n transition: box-shadow var(--salt-duration-instant) cubic-bezier(0.4, 0, 0.2, 1);\n padding: var(--saltCard-padding, var(--salt-spacing-300));\n}\n\n/* Styles applied to InteractableCard when variant=\"primary\" */\n.saltInteractableCard-primary {\n background: var(--saltCard-background, var(--salt-container-primary-background));\n}\n\n/* Styles applied to InteractableCard when variant=\"secondary\" */\n.saltInteractableCard-secondary {\n background: var(--saltCard-background, var(--salt-container-secondary-background));\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"bottom\"` (default) */\n.saltInteractableCard-accentBottom {\n --card-borderWidth: 0 0 var(--salt-size-accent) 0;\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"left\"` */\n.saltInteractableCard-accentLeft {\n --card-borderWidth: 0 0 0 var(--salt-size-accent);\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"top\"` */\n.saltInteractableCard-accentTop {\n --card-borderWidth: var(--salt-size-accent) 0 0 0;\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"right\"` */\n.saltInteractableCard-accentRight {\n --card-borderWidth: 0 var(--salt-size-accent) 0 0;\n}\n\n/* Styles applied to InteractableCard on focus */\na:focus-visible .saltInteractableCard,\n.saltInteractableCard:focus-visible {\n cursor: var(--saltCard-interactable-cursor-focus, var(--salt-selectable-cursor-hover));\n box-shadow: var(--saltCard-interactable-shadow-focus, var(--salt-overlayable-shadow-hover));\n color: var(--saltCard-color-focus, var(--salt-content-primary-foreground));\n outline-color: var(--salt-focused-outlineColor);\n outline-style: var(--salt-focused-outlineStyle);\n outline-width: var(--salt-focused-outlineWidth);\n outline-offset: var(--salt-focused-outlineOffset);\n}\n\na:link .saltInteractableCard * {\n text-decoration: none;\n}\n\n/* Styles applied on active state to InteractableCard */\n.saltInteractableCard:active {\n cursor: var(--saltCard-interactable-cursor-active, var(--salt-selectable-cursor-active));\n box-shadow: var(--saltCard-interactable-shadow-active, var(--salt-overlayable-shadow-hover));\n}\n\n/* Styles applied on hover state to InteractableCard */\n.saltInteractableCard:hover {\n cursor: var(--saltCard-interactable-cursor-hover, var(--salt-selectable-cursor-hover));\n box-shadow: var(--saltCard-interactable-shadow-hover, var(--salt-overlayable-shadow-hover));\n}\n\n/* Styles applied to InteractableCard if `disabled={true}` */\n.saltInteractableCard-disabled,\n.saltInteractableCard-disabled:focus,\n.saltInteractableCard-disabled:hover,\n.saltInteractableCard-disabled:active {\n box-shadow: var(--saltCard-interactable-shadow, var(--salt-overlayable-shadow));\n color: var(--saltCard-color-disabled, var(--salt-content-primary-foreground-disabled));\n cursor: var(--saltCard-interactable-cursor-disabled, var(--salt-selectable-cursor-disabled));\n outline: none;\n}\n\n/* Styles applied to InteractableCard primary variant if `disabled={true}` */\n.saltInteractableCard-primary.saltInteractableCard-disabled,\n.saltInteractableCard-primary.saltInteractableCard-disabled:focus,\n.saltInteractableCard-primary.saltInteractableCard-disabled:hover,\n.saltInteractableCard-primary.saltInteractableCard-disabled:active {\n border-color: var(--saltCard-borderColor-disabled, var(--salt-container-primary-borderColor-disabled));\n background: var(--saltCard-background-disabled, var(--salt-container-primary-background-disabled));\n}\n\n/* Styles applied to InteractableCard secondary variant if `disabled={true}` */\n.saltInteractableCard-secondary.saltInteractableCard-disabled,\n.saltInteractableCard-secondary.saltInteractableCard-disabled:focus,\n.saltInteractableCard-secondary.saltInteractableCard-disabled:hover,\n.saltInteractableCard-secondary.saltInteractableCard-disabled:active {\n border-color: var(--saltCard-borderColor-disabled, var(--salt-container-secondary-borderColor-disabled));\n background: var(--saltCard-background-disabled, var(--salt-container-secondary-background));\n}\n\n/* Styles applied to nested divs in InteractableCard if `disabled={true}` */\n.saltInteractableCard-disabled div {\n pointer-events: none;\n}\n\n/* Class that can be used for anchor tags wrapping InteractableCard */\n.saltInteractableCard-link {\n color: var(--saltCard-link-color, var(--salt-content-primary-foreground));\n inset: var(--salt-focused-outlineInset);\n outline-color: var(--salt-focused-outlineColor);\n outline-offset: var(--salt-focused-outlineOffset);\n outline-style: var(--salt-focused-outlineStyle);\n outline-width: var(--salt-focused-outlineWidth);\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=InteractableCard.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractableCard.js","sources":["../src/card/InteractableCard.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport { capitalize, makePrefixer } from \"../utils\";\nimport { useInteractableCard } from \"./useInteractableCard\";\n\nimport interactableCardCss from \"./InteractableCard.css\";\n\nconst withBaseName = makePrefixer(\"saltInteractableCard\");\n\n// TODO: Remove omissions when Card props deprecated\nexport interface InteractableCardProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Accent border position: defaults to \"bottom\"\n */\n accentPlacement?: \"bottom\" | \"top\" | \"left\" | \"right\";\n /**\n * If `true`, the card will be disabled.\n */\n disabled?: boolean;\n /**\n * Styling variant; defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n}\n\nexport const InteractableCard = forwardRef<\n HTMLDivElement,\n InteractableCardProps\n>(function InteractableCard(props, ref) {\n const {\n accentPlacement = \"bottom\",\n children,\n className,\n variant = \"primary\",\n disabled,\n onBlur,\n onClick,\n onKeyUp,\n onKeyDown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-interactable-card\",\n css: interactableCardCss,\n window: targetWindow,\n });\n\n const { active, cardProps } = useInteractableCard({\n disabled,\n onKeyUp,\n onKeyDown,\n onBlur,\n onClick,\n });\n // for now, we do not want to spread tab index here as users may be wrapping in a link\n const { tabIndex, ...restCardProps } = cardProps;\n\n return (\n <div\n {...restCardProps}\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n withBaseName(`accent${capitalize(accentPlacement)}`),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"active\")]: active,\n },\n className\n )}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","InteractableCard","useWindow","useComponentCssInjection","interactableCardCss","useInteractableCard","jsx","clsx","capitalize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAeA,0BAAa,sBAAsB,CAAA,CAAA;AAkBjD,MAAM,gBAAmB,GAAAC,gBAAA,CAG9B,SAASC,iBAAAA,CAAiB,OAAO,GAAK,EAAA;AACtC,EAAM,MAAA;AAAA,IACJ,eAAkB,GAAA,QAAA;AAAA,IAClB,QAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAU,GAAA,SAAA;AAAA,IACV,QAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACG,GAAA,IAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,wBAAA;AAAA,IACR,GAAK,EAAAC,kBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAU,EAAA,GAAIC,uCAAoB,CAAA;AAAA,IAChD,QAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,QAAa,EAAA,GAAA,aAAA,EAAkB,GAAA,SAAA,CAAA;AAEvC,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,aAAA;AAAA,IACJ,SAAW,EAAAC,SAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb,aAAa,OAAO,CAAA;AAAA,MACpB,YAAa,CAAA,CAAA,MAAA,EAASC,qBAAW,CAAA,eAAe,CAAG,CAAA,CAAA,CAAA;AAAA,MACnD;AAAA,QACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,OAC5B;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IACJ,GAAA;AAAA,IAEC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInteractableCard.js","sources":["../src/card/useInteractableCard.ts"],"sourcesContent":["import {\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n useEffect,\n useState,\n} from \"react\";\n\nexport interface CardHookProps<T extends Element> {\n disabled?: boolean;\n onKeyUp?: (event: KeyboardEvent<T>) => void;\n onKeyDown?: (event: KeyboardEvent<T>) => void;\n onClick?: (event: MouseEvent<T>) => void;\n onBlur?: (event: FocusEvent<T>) => void;\n}\n\nexport interface CardHookResult<T extends Element> {\n active: boolean;\n cardProps: {\n \"aria-disabled\"?: boolean;\n disabled?: boolean;\n tabIndex: number;\n onBlur: (event: FocusEvent<T>) => void;\n onClick?: (event: MouseEvent<T>) => void;\n onKeyDown: (event: KeyboardEvent<T>) => void;\n onKeyUp: (event: KeyboardEvent<T>) => void;\n };\n}\n\nexport const useInteractableCard = <T extends Element>({\n disabled,\n onKeyUp,\n onKeyDown,\n onClick,\n onBlur,\n}: CardHookProps<T>): CardHookResult<T> => {\n const [keyIsDown, setkeyIsDown] = useState(\"\");\n const [active, setActive] = useState(false);\n\n const enter = \"Enter\";\n\n useEffect(() => {\n const t = setTimeout(() => {\n // This key state check is to stop continual visual state change when using Enter Key, which the browser treats as both key and click events on a Button-like component\n // This key state check also fixes Firefox Button where Space key is pressed but button fails to be in active state\n if (keyIsDown !== enter) {\n setActive(false);\n }\n }, 0);\n\n return () => {\n clearTimeout(t);\n };\n }, [active, keyIsDown]);\n\n const handleKeyUp = (event: KeyboardEvent<T>) => {\n setkeyIsDown(\"\");\n setActive(false);\n onKeyUp?.(event);\n };\n\n const handleClick = (event: MouseEvent<T>) => {\n setActive(true);\n onClick?.(event);\n };\n\n const handleBlur = (event: FocusEvent<T>) => {\n setActive(false);\n onBlur?.(event);\n };\n\n const handleKeyDown = (event: KeyboardEvent<T>) => {\n if (event.key === enter) {\n setkeyIsDown(event.key);\n setActive(true);\n }\n\n onKeyDown?.(event);\n };\n\n const cardProps = {\n \"aria-disabled\": disabled ? true : undefined,\n disabled: disabled,\n tabIndex: disabled ? -1 : 0,\n onBlur: handleBlur,\n onClick: !disabled ? handleClick : undefined,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n };\n\n return {\n active,\n cardProps,\n };\n};\n"],"names":["useState","useEffect"],"mappings":";;;;;;AA6BO,MAAM,sBAAsB,CAAoB;AAAA,EACrD,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AACF,CAA2C,KAAA;AACzC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,eAAS,EAAE,CAAA,CAAA;AAC7C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,EAAAC,eAAA,CAAU,MAAM;AACd,IAAM,MAAA,CAAA,GAAI,WAAW,MAAM;AAGzB,MAAA,IAAI,cAAc,KAAO,EAAA;AACvB,QAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,OACjB;AAAA,OACC,CAAC,CAAA,CAAA;AAEJ,IAAA,OAAO,MAAM;AACX,MAAA,YAAA,CAAa,CAAC,CAAA,CAAA;AAAA,KAChB,CAAA;AAAA,GACC,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,WAAA,GAAc,CAAC,KAA4B,KAAA;AAC/C,IAAA,YAAA,CAAa,EAAE,CAAA,CAAA;AACf,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAAyB,KAAA;AAC5C,IAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AACd,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAM,MAAA,UAAA,GAAa,CAAC,KAAyB,KAAA;AAC3C,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,IAAS,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACX,CAAA;AAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,KAA4B,KAAA;AACjD,IAAI,IAAA,KAAA,CAAM,QAAQ,KAAO,EAAA;AACvB,MAAA,YAAA,CAAa,MAAM,GAAG,CAAA,CAAA;AACtB,MAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,KAChB;AAEA,IAAY,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACd,CAAA;AAEA,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,eAAA,EAAiB,WAAW,IAAO,GAAA,KAAA,CAAA;AAAA,IACnC,QAAA;AAAA,IACA,QAAA,EAAU,WAAW,CAAK,CAAA,GAAA,CAAA;AAAA,IAC1B,MAAQ,EAAA,UAAA;AAAA,IACR,OAAA,EAAS,CAAC,QAAA,GAAW,WAAc,GAAA,KAAA,CAAA;AAAA,IACnC,SAAW,EAAA,aAAA;AAAA,IACX,OAAS,EAAA,WAAA;AAAA,GACX,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -1,4 +0,0 @@
1
- var css_248z = "/* Styles applied to InteractableCard */\n.saltInteractableCard {\n box-shadow: var(--saltCard-boxShadow, var(--salt-overlayable-shadow));\n border-width: var(--saltCard-borderWidth, var(--card-borderWidth));\n border-style: var(--saltCard-borderStyle, var(--salt-container-borderStyle));\n border-color: var(--saltCard-borderColor, var(--salt-accent-borderColor));\n border-radius: var(--saltCard-borderRadius, var(--salt-palette-corner, 0));\n display: block;\n transition: box-shadow var(--salt-duration-instant) cubic-bezier(0.4, 0, 0.2, 1);\n padding: var(--saltCard-padding, var(--salt-spacing-300));\n}\n\n/* Styles applied to InteractableCard when variant=\"primary\" */\n.saltInteractableCard-primary {\n background: var(--saltCard-background, var(--salt-container-primary-background));\n}\n\n/* Styles applied to InteractableCard when variant=\"secondary\" */\n.saltInteractableCard-secondary {\n background: var(--saltCard-background, var(--salt-container-secondary-background));\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"bottom\"` (default) */\n.saltInteractableCard-accentBottom {\n --card-borderWidth: 0 0 var(--salt-size-accent) 0;\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"left\"` */\n.saltInteractableCard-accentLeft {\n --card-borderWidth: 0 0 0 var(--salt-size-accent);\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"top\"` */\n.saltInteractableCard-accentTop {\n --card-borderWidth: var(--salt-size-accent) 0 0 0;\n}\n\n/* Styles applied to InteractableCard if `accentPlacement=\"right\"` */\n.saltInteractableCard-accentRight {\n --card-borderWidth: 0 var(--salt-size-accent) 0 0;\n}\n\n/* Styles applied to InteractableCard on focus */\na:focus-visible .saltInteractableCard,\n.saltInteractableCard:focus-visible {\n cursor: var(--saltCard-interactable-cursor-focus, var(--salt-selectable-cursor-hover));\n box-shadow: var(--saltCard-interactable-shadow-focus, var(--salt-overlayable-shadow-hover));\n color: var(--saltCard-color-focus, var(--salt-content-primary-foreground));\n outline-color: var(--salt-focused-outlineColor);\n outline-style: var(--salt-focused-outlineStyle);\n outline-width: var(--salt-focused-outlineWidth);\n outline-offset: var(--salt-focused-outlineOffset);\n}\n\na:link .saltInteractableCard * {\n text-decoration: none;\n}\n\n/* Styles applied on active state to InteractableCard */\n.saltInteractableCard:active {\n cursor: var(--saltCard-interactable-cursor-active, var(--salt-selectable-cursor-active));\n box-shadow: var(--saltCard-interactable-shadow-active, var(--salt-overlayable-shadow-hover));\n}\n\n/* Styles applied on hover state to InteractableCard */\n.saltInteractableCard:hover {\n cursor: var(--saltCard-interactable-cursor-hover, var(--salt-selectable-cursor-hover));\n box-shadow: var(--saltCard-interactable-shadow-hover, var(--salt-overlayable-shadow-hover));\n}\n\n/* Styles applied to InteractableCard if `disabled={true}` */\n.saltInteractableCard-disabled,\n.saltInteractableCard-disabled:focus,\n.saltInteractableCard-disabled:hover,\n.saltInteractableCard-disabled:active {\n box-shadow: var(--saltCard-interactable-shadow, var(--salt-overlayable-shadow));\n color: var(--saltCard-color-disabled, var(--salt-content-primary-foreground-disabled));\n cursor: var(--saltCard-interactable-cursor-disabled, var(--salt-selectable-cursor-disabled));\n outline: none;\n}\n\n/* Styles applied to InteractableCard primary variant if `disabled={true}` */\n.saltInteractableCard-primary.saltInteractableCard-disabled,\n.saltInteractableCard-primary.saltInteractableCard-disabled:focus,\n.saltInteractableCard-primary.saltInteractableCard-disabled:hover,\n.saltInteractableCard-primary.saltInteractableCard-disabled:active {\n border-color: var(--saltCard-borderColor-disabled, var(--salt-container-primary-borderColor-disabled));\n background: var(--saltCard-background-disabled, var(--salt-container-primary-background-disabled));\n}\n\n/* Styles applied to InteractableCard secondary variant if `disabled={true}` */\n.saltInteractableCard-secondary.saltInteractableCard-disabled,\n.saltInteractableCard-secondary.saltInteractableCard-disabled:focus,\n.saltInteractableCard-secondary.saltInteractableCard-disabled:hover,\n.saltInteractableCard-secondary.saltInteractableCard-disabled:active {\n border-color: var(--saltCard-borderColor-disabled, var(--salt-container-secondary-borderColor-disabled));\n background: var(--saltCard-background-disabled, var(--salt-container-secondary-background));\n}\n\n/* Styles applied to nested divs in InteractableCard if `disabled={true}` */\n.saltInteractableCard-disabled div {\n pointer-events: none;\n}\n\n/* Class that can be used for anchor tags wrapping InteractableCard */\n.saltInteractableCard-link {\n color: var(--saltCard-link-color, var(--salt-content-primary-foreground));\n inset: var(--salt-focused-outlineInset);\n outline-color: var(--salt-focused-outlineColor);\n outline-offset: var(--salt-focused-outlineOffset);\n outline-style: var(--salt-focused-outlineStyle);\n outline-width: var(--salt-focused-outlineWidth);\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=InteractableCard.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractableCard.js","sources":["../src/card/InteractableCard.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport { capitalize, makePrefixer } from \"../utils\";\nimport { useInteractableCard } from \"./useInteractableCard\";\n\nimport interactableCardCss from \"./InteractableCard.css\";\n\nconst withBaseName = makePrefixer(\"saltInteractableCard\");\n\n// TODO: Remove omissions when Card props deprecated\nexport interface InteractableCardProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Accent border position: defaults to \"bottom\"\n */\n accentPlacement?: \"bottom\" | \"top\" | \"left\" | \"right\";\n /**\n * If `true`, the card will be disabled.\n */\n disabled?: boolean;\n /**\n * Styling variant; defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n}\n\nexport const InteractableCard = forwardRef<\n HTMLDivElement,\n InteractableCardProps\n>(function InteractableCard(props, ref) {\n const {\n accentPlacement = \"bottom\",\n children,\n className,\n variant = \"primary\",\n disabled,\n onBlur,\n onClick,\n onKeyUp,\n onKeyDown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-interactable-card\",\n css: interactableCardCss,\n window: targetWindow,\n });\n\n const { active, cardProps } = useInteractableCard({\n disabled,\n onKeyUp,\n onKeyDown,\n onBlur,\n onClick,\n });\n // for now, we do not want to spread tab index here as users may be wrapping in a link\n const { tabIndex, ...restCardProps } = cardProps;\n\n return (\n <div\n {...restCardProps}\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n withBaseName(`accent${capitalize(accentPlacement)}`),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"active\")]: active,\n },\n className\n )}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n"],"names":["InteractableCard","interactableCardCss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,sBAAsB,CAAA,CAAA;AAkBjD,MAAM,gBAAmB,GAAA,UAAA,CAG9B,SAASA,iBAAAA,CAAiB,OAAO,GAAK,EAAA;AACtC,EAAM,MAAA;AAAA,IACJ,eAAkB,GAAA,QAAA;AAAA,IAClB,QAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAU,GAAA,SAAA;AAAA,IACV,QAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACG,GAAA,IAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,wBAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAU,EAAA,GAAI,mBAAoB,CAAA;AAAA,IAChD,QAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,QAAa,EAAA,GAAA,aAAA,EAAkB,GAAA,SAAA,CAAA;AAEvC,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,aAAA;AAAA,IACJ,SAAW,EAAA,IAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb,aAAa,OAAO,CAAA;AAAA,MACpB,YAAa,CAAA,CAAA,MAAA,EAAS,UAAW,CAAA,eAAe,CAAG,CAAA,CAAA,CAAA;AAAA,MACnD;AAAA,QACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,OAC5B;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IACJ,GAAA;AAAA,IAEC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInteractableCard.js","sources":["../src/card/useInteractableCard.ts"],"sourcesContent":["import {\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n useEffect,\n useState,\n} from \"react\";\n\nexport interface CardHookProps<T extends Element> {\n disabled?: boolean;\n onKeyUp?: (event: KeyboardEvent<T>) => void;\n onKeyDown?: (event: KeyboardEvent<T>) => void;\n onClick?: (event: MouseEvent<T>) => void;\n onBlur?: (event: FocusEvent<T>) => void;\n}\n\nexport interface CardHookResult<T extends Element> {\n active: boolean;\n cardProps: {\n \"aria-disabled\"?: boolean;\n disabled?: boolean;\n tabIndex: number;\n onBlur: (event: FocusEvent<T>) => void;\n onClick?: (event: MouseEvent<T>) => void;\n onKeyDown: (event: KeyboardEvent<T>) => void;\n onKeyUp: (event: KeyboardEvent<T>) => void;\n };\n}\n\nexport const useInteractableCard = <T extends Element>({\n disabled,\n onKeyUp,\n onKeyDown,\n onClick,\n onBlur,\n}: CardHookProps<T>): CardHookResult<T> => {\n const [keyIsDown, setkeyIsDown] = useState(\"\");\n const [active, setActive] = useState(false);\n\n const enter = \"Enter\";\n\n useEffect(() => {\n const t = setTimeout(() => {\n // This key state check is to stop continual visual state change when using Enter Key, which the browser treats as both key and click events on a Button-like component\n // This key state check also fixes Firefox Button where Space key is pressed but button fails to be in active state\n if (keyIsDown !== enter) {\n setActive(false);\n }\n }, 0);\n\n return () => {\n clearTimeout(t);\n };\n }, [active, keyIsDown]);\n\n const handleKeyUp = (event: KeyboardEvent<T>) => {\n setkeyIsDown(\"\");\n setActive(false);\n onKeyUp?.(event);\n };\n\n const handleClick = (event: MouseEvent<T>) => {\n setActive(true);\n onClick?.(event);\n };\n\n const handleBlur = (event: FocusEvent<T>) => {\n setActive(false);\n onBlur?.(event);\n };\n\n const handleKeyDown = (event: KeyboardEvent<T>) => {\n if (event.key === enter) {\n setkeyIsDown(event.key);\n setActive(true);\n }\n\n onKeyDown?.(event);\n };\n\n const cardProps = {\n \"aria-disabled\": disabled ? true : undefined,\n disabled: disabled,\n tabIndex: disabled ? -1 : 0,\n onBlur: handleBlur,\n onClick: !disabled ? handleClick : undefined,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n };\n\n return {\n active,\n cardProps,\n };\n};\n"],"names":[],"mappings":";;AA6BO,MAAM,sBAAsB,CAAoB;AAAA,EACrD,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AACF,CAA2C,KAAA;AACzC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,EAAE,CAAA,CAAA;AAC7C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,CAAA,GAAI,WAAW,MAAM;AAGzB,MAAA,IAAI,cAAc,KAAO,EAAA;AACvB,QAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,OACjB;AAAA,OACC,CAAC,CAAA,CAAA;AAEJ,IAAA,OAAO,MAAM;AACX,MAAA,YAAA,CAAa,CAAC,CAAA,CAAA;AAAA,KAChB,CAAA;AAAA,GACC,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,WAAA,GAAc,CAAC,KAA4B,KAAA;AAC/C,IAAA,YAAA,CAAa,EAAE,CAAA,CAAA;AACf,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAAyB,KAAA;AAC5C,IAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AACd,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAM,MAAA,UAAA,GAAa,CAAC,KAAyB,KAAA;AAC3C,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,IAAS,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACX,CAAA;AAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,KAA4B,KAAA;AACjD,IAAI,IAAA,KAAA,CAAM,QAAQ,KAAO,EAAA;AACvB,MAAA,YAAA,CAAa,MAAM,GAAG,CAAA,CAAA;AACtB,MAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,KAChB;AAEA,IAAY,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACd,CAAA;AAEA,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,eAAA,EAAiB,WAAW,IAAO,GAAA,KAAA,CAAA;AAAA,IACnC,QAAA;AAAA,IACA,QAAA,EAAU,WAAW,CAAK,CAAA,GAAA,CAAA;AAAA,IAC1B,MAAQ,EAAA,UAAA;AAAA,IACR,OAAA,EAAS,CAAC,QAAA,GAAW,WAAc,GAAA,KAAA,CAAA;AAAA,IACnC,SAAW,EAAA,aAAA;AAAA,IACX,OAAS,EAAA,WAAA;AAAA,GACX,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}