@salt-ds/core 0.0.0-snapshot-20230419162206

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 (487) hide show
  1. package/README.md +1 -0
  2. package/dist-cjs/node_modules/style-inject/dist/style-inject.es.js +31 -0
  3. package/dist-cjs/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  4. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnounce.js +22 -0
  5. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnounce.js.map +1 -0
  6. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerContext.js +12 -0
  7. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerContext.js.map +1 -0
  8. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerProvider.js +78 -0
  9. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerProvider.js.map +1 -0
  10. package/dist-cjs/packages/core/src/aria-announcer/useAriaAnnouncer.js +67 -0
  11. package/dist-cjs/packages/core/src/aria-announcer/useAriaAnnouncer.js.map +1 -0
  12. package/dist-cjs/packages/core/src/avatar/Avatar.css.js +9 -0
  13. package/dist-cjs/packages/core/src/avatar/Avatar.css.js.map +1 -0
  14. package/dist-cjs/packages/core/src/avatar/Avatar.js +76 -0
  15. package/dist-cjs/packages/core/src/avatar/Avatar.js.map +1 -0
  16. package/dist-cjs/packages/core/src/avatar/useAvatarImage.js +39 -0
  17. package/dist-cjs/packages/core/src/avatar/useAvatarImage.js.map +1 -0
  18. package/dist-cjs/packages/core/src/border-item/BorderItem.css.js +9 -0
  19. package/dist-cjs/packages/core/src/border-item/BorderItem.css.js.map +1 -0
  20. package/dist-cjs/packages/core/src/border-item/BorderItem.js +64 -0
  21. package/dist-cjs/packages/core/src/border-item/BorderItem.js.map +1 -0
  22. package/dist-cjs/packages/core/src/border-layout/BorderLayout.js +56 -0
  23. package/dist-cjs/packages/core/src/border-layout/BorderLayout.js.map +1 -0
  24. package/dist-cjs/packages/core/src/breakpoints/Breakpoints.js +15 -0
  25. package/dist-cjs/packages/core/src/breakpoints/Breakpoints.js.map +1 -0
  26. package/dist-cjs/packages/core/src/button/Button.css.js +9 -0
  27. package/dist-cjs/packages/core/src/button/Button.css.js.map +1 -0
  28. package/dist-cjs/packages/core/src/button/Button.js +70 -0
  29. package/dist-cjs/packages/core/src/button/Button.js.map +1 -0
  30. package/dist-cjs/packages/core/src/button/useButton.js +65 -0
  31. package/dist-cjs/packages/core/src/button/useButton.js.map +1 -0
  32. package/dist-cjs/packages/core/src/card/Card.css.js +9 -0
  33. package/dist-cjs/packages/core/src/card/Card.css.js.map +1 -0
  34. package/dist-cjs/packages/core/src/card/Card.js +45 -0
  35. package/dist-cjs/packages/core/src/card/Card.js.map +1 -0
  36. package/dist-cjs/packages/core/src/card/InteractableCard.css.js +9 -0
  37. package/dist-cjs/packages/core/src/card/InteractableCard.css.js.map +1 -0
  38. package/dist-cjs/packages/core/src/card/InteractableCard.js +57 -0
  39. package/dist-cjs/packages/core/src/card/InteractableCard.js.map +1 -0
  40. package/dist-cjs/packages/core/src/card/useInteractableCard.js +63 -0
  41. package/dist-cjs/packages/core/src/card/useInteractableCard.js.map +1 -0
  42. package/dist-cjs/packages/core/src/checkbox/Checkbox.css.js +9 -0
  43. package/dist-cjs/packages/core/src/checkbox/Checkbox.css.js.map +1 -0
  44. package/dist-cjs/packages/core/src/checkbox/Checkbox.js +95 -0
  45. package/dist-cjs/packages/core/src/checkbox/Checkbox.js.map +1 -0
  46. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.css.js +9 -0
  47. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.css.js.map +1 -0
  48. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.js +62 -0
  49. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.js.map +1 -0
  50. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.css.js +9 -0
  51. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.css.js.map +1 -0
  52. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.js +48 -0
  53. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.js.map +1 -0
  54. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js +33 -0
  55. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js.map +1 -0
  56. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js +32 -0
  57. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js.map +1 -0
  58. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js +37 -0
  59. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js.map +1 -0
  60. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js +26 -0
  61. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js.map +1 -0
  62. package/dist-cjs/packages/core/src/checkbox/internal/CheckboxGroupContext.js +13 -0
  63. package/dist-cjs/packages/core/src/checkbox/internal/CheckboxGroupContext.js.map +1 -0
  64. package/dist-cjs/packages/core/src/checkbox/internal/useCheckboxGroup.js +13 -0
  65. package/dist-cjs/packages/core/src/checkbox/internal/useCheckboxGroup.js.map +1 -0
  66. package/dist-cjs/packages/core/src/flex-item/FlexItem.css.js +9 -0
  67. package/dist-cjs/packages/core/src/flex-item/FlexItem.css.js.map +1 -0
  68. package/dist-cjs/packages/core/src/flex-item/FlexItem.js +64 -0
  69. package/dist-cjs/packages/core/src/flex-item/FlexItem.js.map +1 -0
  70. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.css.js +9 -0
  71. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.css.js.map +1 -0
  72. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.js +83 -0
  73. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.js.map +1 -0
  74. package/dist-cjs/packages/core/src/flow-layout/FlowLayout.js +22 -0
  75. package/dist-cjs/packages/core/src/flow-layout/FlowLayout.js.map +1 -0
  76. package/dist-cjs/packages/core/src/grid-item/GridItem.css.js +9 -0
  77. package/dist-cjs/packages/core/src/grid-item/GridItem.css.js.map +1 -0
  78. package/dist-cjs/packages/core/src/grid-item/GridItem.js +73 -0
  79. package/dist-cjs/packages/core/src/grid-item/GridItem.js.map +1 -0
  80. package/dist-cjs/packages/core/src/grid-layout/GridLayout.css.js +9 -0
  81. package/dist-cjs/packages/core/src/grid-layout/GridLayout.css.js.map +1 -0
  82. package/dist-cjs/packages/core/src/grid-layout/GridLayout.js +60 -0
  83. package/dist-cjs/packages/core/src/grid-layout/GridLayout.js.map +1 -0
  84. package/dist-cjs/packages/core/src/index.js +156 -0
  85. package/dist-cjs/packages/core/src/index.js.map +1 -0
  86. package/dist-cjs/packages/core/src/link/Link.css.js +9 -0
  87. package/dist-cjs/packages/core/src/link/Link.css.js.map +1 -0
  88. package/dist-cjs/packages/core/src/link/Link.js +65 -0
  89. package/dist-cjs/packages/core/src/link/Link.js.map +1 -0
  90. package/dist-cjs/packages/core/src/panel/Panel.css.js +9 -0
  91. package/dist-cjs/packages/core/src/panel/Panel.css.js.map +1 -0
  92. package/dist-cjs/packages/core/src/panel/Panel.js +34 -0
  93. package/dist-cjs/packages/core/src/panel/Panel.js.map +1 -0
  94. package/dist-cjs/packages/core/src/radio-button/RadioButton.css.js +9 -0
  95. package/dist-cjs/packages/core/src/radio-button/RadioButton.css.js.map +1 -0
  96. package/dist-cjs/packages/core/src/radio-button/RadioButton.js +86 -0
  97. package/dist-cjs/packages/core/src/radio-button/RadioButton.js.map +1 -0
  98. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.css.js +9 -0
  99. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.css.js.map +1 -0
  100. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.js +61 -0
  101. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.js.map +1 -0
  102. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.css.js +9 -0
  103. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.css.js.map +1 -0
  104. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.js +48 -0
  105. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.js.map +1 -0
  106. package/dist-cjs/packages/core/src/radio-button/internal/RadioGroupContext.js +19 -0
  107. package/dist-cjs/packages/core/src/radio-button/internal/RadioGroupContext.js.map +1 -0
  108. package/dist-cjs/packages/core/src/radio-button/internal/useRadioGroup.js +13 -0
  109. package/dist-cjs/packages/core/src/radio-button/internal/useRadioGroup.js.map +1 -0
  110. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.css.js +9 -0
  111. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.css.js.map +1 -0
  112. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.js +166 -0
  113. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.js.map +1 -0
  114. package/dist-cjs/packages/core/src/spinner/Spinner.css.js +9 -0
  115. package/dist-cjs/packages/core/src/spinner/Spinner.css.js.map +1 -0
  116. package/dist-cjs/packages/core/src/spinner/Spinner.js +89 -0
  117. package/dist-cjs/packages/core/src/spinner/Spinner.js.map +1 -0
  118. package/dist-cjs/packages/core/src/spinner/svgSpinners/SpinnerSVG.js +82 -0
  119. package/dist-cjs/packages/core/src/spinner/svgSpinners/SpinnerSVG.js.map +1 -0
  120. package/dist-cjs/packages/core/src/split-layout/SplitLayout.js +25 -0
  121. package/dist-cjs/packages/core/src/split-layout/SplitLayout.js.map +1 -0
  122. package/dist-cjs/packages/core/src/stack-layout/StackLayout.css.js +9 -0
  123. package/dist-cjs/packages/core/src/stack-layout/StackLayout.css.js.map +1 -0
  124. package/dist-cjs/packages/core/src/stack-layout/StackLayout.js +63 -0
  125. package/dist-cjs/packages/core/src/stack-layout/StackLayout.js.map +1 -0
  126. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.css.js +9 -0
  127. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.css.js.map +1 -0
  128. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.js +52 -0
  129. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.js.map +1 -0
  130. package/dist-cjs/packages/core/src/status-indicator/ValidationStatus.js +13 -0
  131. package/dist-cjs/packages/core/src/status-indicator/ValidationStatus.js.map +1 -0
  132. package/dist-cjs/packages/core/src/text/Display.js +47 -0
  133. package/dist-cjs/packages/core/src/text/Display.js.map +1 -0
  134. package/dist-cjs/packages/core/src/text/Headings.js +54 -0
  135. package/dist-cjs/packages/core/src/text/Headings.js.map +1 -0
  136. package/dist-cjs/packages/core/src/text/Label.js +19 -0
  137. package/dist-cjs/packages/core/src/text/Label.js.map +1 -0
  138. package/dist-cjs/packages/core/src/text/Text.css.js +9 -0
  139. package/dist-cjs/packages/core/src/text/Text.css.js.map +1 -0
  140. package/dist-cjs/packages/core/src/text/Text.js +58 -0
  141. package/dist-cjs/packages/core/src/text/Text.js.map +1 -0
  142. package/dist-cjs/packages/core/src/theme/Density.js +8 -0
  143. package/dist-cjs/packages/core/src/theme/Density.js.map +1 -0
  144. package/dist-cjs/packages/core/src/theme/Mode.js +8 -0
  145. package/dist-cjs/packages/core/src/theme/Mode.js.map +1 -0
  146. package/dist-cjs/packages/core/src/theme/Theme.js +19 -0
  147. package/dist-cjs/packages/core/src/theme/Theme.js.map +1 -0
  148. package/dist-cjs/packages/core/src/tooltip/Tooltip.css.js +9 -0
  149. package/dist-cjs/packages/core/src/tooltip/Tooltip.css.js.map +1 -0
  150. package/dist-cjs/packages/core/src/tooltip/Tooltip.js +115 -0
  151. package/dist-cjs/packages/core/src/tooltip/Tooltip.js.map +1 -0
  152. package/dist-cjs/packages/core/src/tooltip/useAriaAnnounce.js +95 -0
  153. package/dist-cjs/packages/core/src/tooltip/useAriaAnnounce.js.map +1 -0
  154. package/dist-cjs/packages/core/src/tooltip/useTooltip.js +109 -0
  155. package/dist-cjs/packages/core/src/tooltip/useTooltip.js.map +1 -0
  156. package/dist-cjs/packages/core/src/utils/capitalize.js +10 -0
  157. package/dist-cjs/packages/core/src/utils/capitalize.js.map +1 -0
  158. package/dist-cjs/packages/core/src/utils/createChainedFunction.js +22 -0
  159. package/dist-cjs/packages/core/src/utils/createChainedFunction.js.map +1 -0
  160. package/dist-cjs/packages/core/src/utils/createContext.js +16 -0
  161. package/dist-cjs/packages/core/src/utils/createContext.js.map +1 -0
  162. package/dist-cjs/packages/core/src/utils/debounce.js +24 -0
  163. package/dist-cjs/packages/core/src/utils/debounce.js.map +1 -0
  164. package/dist-cjs/packages/core/src/utils/makePrefixer.js +8 -0
  165. package/dist-cjs/packages/core/src/utils/makePrefixer.js.map +1 -0
  166. package/dist-cjs/packages/core/src/utils/marginMiddleware.js +22 -0
  167. package/dist-cjs/packages/core/src/utils/marginMiddleware.js.map +1 -0
  168. package/dist-cjs/packages/core/src/utils/mergeProps.js +25 -0
  169. package/dist-cjs/packages/core/src/utils/mergeProps.js.map +1 -0
  170. package/dist-cjs/packages/core/src/utils/ownerDocument.js +10 -0
  171. package/dist-cjs/packages/core/src/utils/ownerDocument.js.map +1 -0
  172. package/dist-cjs/packages/core/src/utils/ownerWindow.js +13 -0
  173. package/dist-cjs/packages/core/src/utils/ownerWindow.js.map +1 -0
  174. package/dist-cjs/packages/core/src/utils/setRef.js +14 -0
  175. package/dist-cjs/packages/core/src/utils/setRef.js.map +1 -0
  176. package/dist-cjs/packages/core/src/utils/useControlled.js +60 -0
  177. package/dist-cjs/packages/core/src/utils/useControlled.js.map +1 -0
  178. package/dist-cjs/packages/core/src/utils/useFloatingUI.js +38 -0
  179. package/dist-cjs/packages/core/src/utils/useFloatingUI.js.map +1 -0
  180. package/dist-cjs/packages/core/src/utils/useForkRef.js +21 -0
  181. package/dist-cjs/packages/core/src/utils/useForkRef.js.map +1 -0
  182. package/dist-cjs/packages/core/src/utils/useId.js +55 -0
  183. package/dist-cjs/packages/core/src/utils/useId.js.map +1 -0
  184. package/dist-cjs/packages/core/src/utils/useIsFocusVisible.js +108 -0
  185. package/dist-cjs/packages/core/src/utils/useIsFocusVisible.js.map +1 -0
  186. package/dist-cjs/packages/core/src/utils/useIsomorphicLayoutEffect.js +10 -0
  187. package/dist-cjs/packages/core/src/utils/useIsomorphicLayoutEffect.js.map +1 -0
  188. package/dist-cjs/packages/core/src/utils/usePrevious.js +16 -0
  189. package/dist-cjs/packages/core/src/utils/usePrevious.js.map +1 -0
  190. package/dist-cjs/packages/core/src/utils/useResponsiveProp.js +71 -0
  191. package/dist-cjs/packages/core/src/utils/useResponsiveProp.js.map +1 -0
  192. package/dist-cjs/packages/core/src/viewport/ViewportProvider.js +48 -0
  193. package/dist-cjs/packages/core/src/viewport/ViewportProvider.js.map +1 -0
  194. package/dist-es/node_modules/style-inject/dist/style-inject.es.js +29 -0
  195. package/dist-es/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  196. package/dist-es/packages/core/src/aria-announcer/AriaAnnounce.js +18 -0
  197. package/dist-es/packages/core/src/aria-announcer/AriaAnnounce.js.map +1 -0
  198. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerContext.js +8 -0
  199. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerContext.js.map +1 -0
  200. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerProvider.js +73 -0
  201. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerProvider.js.map +1 -0
  202. package/dist-es/packages/core/src/aria-announcer/useAriaAnnouncer.js +63 -0
  203. package/dist-es/packages/core/src/aria-announcer/useAriaAnnouncer.js.map +1 -0
  204. package/dist-es/packages/core/src/avatar/Avatar.css.js +7 -0
  205. package/dist-es/packages/core/src/avatar/Avatar.css.js.map +1 -0
  206. package/dist-es/packages/core/src/avatar/Avatar.js +72 -0
  207. package/dist-es/packages/core/src/avatar/Avatar.js.map +1 -0
  208. package/dist-es/packages/core/src/avatar/useAvatarImage.js +35 -0
  209. package/dist-es/packages/core/src/avatar/useAvatarImage.js.map +1 -0
  210. package/dist-es/packages/core/src/border-item/BorderItem.css.js +7 -0
  211. package/dist-es/packages/core/src/border-item/BorderItem.css.js.map +1 -0
  212. package/dist-es/packages/core/src/border-item/BorderItem.js +59 -0
  213. package/dist-es/packages/core/src/border-item/BorderItem.js.map +1 -0
  214. package/dist-es/packages/core/src/border-layout/BorderLayout.js +52 -0
  215. package/dist-es/packages/core/src/border-layout/BorderLayout.js.map +1 -0
  216. package/dist-es/packages/core/src/breakpoints/Breakpoints.js +11 -0
  217. package/dist-es/packages/core/src/breakpoints/Breakpoints.js.map +1 -0
  218. package/dist-es/packages/core/src/button/Button.css.js +7 -0
  219. package/dist-es/packages/core/src/button/Button.css.js.map +1 -0
  220. package/dist-es/packages/core/src/button/Button.js +65 -0
  221. package/dist-es/packages/core/src/button/Button.js.map +1 -0
  222. package/dist-es/packages/core/src/button/useButton.js +61 -0
  223. package/dist-es/packages/core/src/button/useButton.js.map +1 -0
  224. package/dist-es/packages/core/src/card/Card.css.js +7 -0
  225. package/dist-es/packages/core/src/card/Card.css.js.map +1 -0
  226. package/dist-es/packages/core/src/card/Card.js +41 -0
  227. package/dist-es/packages/core/src/card/Card.js.map +1 -0
  228. package/dist-es/packages/core/src/card/InteractableCard.css.js +7 -0
  229. package/dist-es/packages/core/src/card/InteractableCard.css.js.map +1 -0
  230. package/dist-es/packages/core/src/card/InteractableCard.js +53 -0
  231. package/dist-es/packages/core/src/card/InteractableCard.js.map +1 -0
  232. package/dist-es/packages/core/src/card/useInteractableCard.js +59 -0
  233. package/dist-es/packages/core/src/card/useInteractableCard.js.map +1 -0
  234. package/dist-es/packages/core/src/checkbox/Checkbox.css.js +7 -0
  235. package/dist-es/packages/core/src/checkbox/Checkbox.css.js.map +1 -0
  236. package/dist-es/packages/core/src/checkbox/Checkbox.js +91 -0
  237. package/dist-es/packages/core/src/checkbox/Checkbox.js.map +1 -0
  238. package/dist-es/packages/core/src/checkbox/CheckboxGroup.css.js +7 -0
  239. package/dist-es/packages/core/src/checkbox/CheckboxGroup.css.js.map +1 -0
  240. package/dist-es/packages/core/src/checkbox/CheckboxGroup.js +58 -0
  241. package/dist-es/packages/core/src/checkbox/CheckboxGroup.js.map +1 -0
  242. package/dist-es/packages/core/src/checkbox/CheckboxIcon.css.js +7 -0
  243. package/dist-es/packages/core/src/checkbox/CheckboxIcon.css.js.map +1 -0
  244. package/dist-es/packages/core/src/checkbox/CheckboxIcon.js +44 -0
  245. package/dist-es/packages/core/src/checkbox/CheckboxIcon.js.map +1 -0
  246. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js +29 -0
  247. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js.map +1 -0
  248. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js +28 -0
  249. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js.map +1 -0
  250. package/dist-es/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js +33 -0
  251. package/dist-es/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js.map +1 -0
  252. package/dist-es/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js +22 -0
  253. package/dist-es/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js.map +1 -0
  254. package/dist-es/packages/core/src/checkbox/internal/CheckboxGroupContext.js +9 -0
  255. package/dist-es/packages/core/src/checkbox/internal/CheckboxGroupContext.js.map +1 -0
  256. package/dist-es/packages/core/src/checkbox/internal/useCheckboxGroup.js +9 -0
  257. package/dist-es/packages/core/src/checkbox/internal/useCheckboxGroup.js.map +1 -0
  258. package/dist-es/packages/core/src/flex-item/FlexItem.css.js +7 -0
  259. package/dist-es/packages/core/src/flex-item/FlexItem.css.js.map +1 -0
  260. package/dist-es/packages/core/src/flex-item/FlexItem.js +59 -0
  261. package/dist-es/packages/core/src/flex-item/FlexItem.js.map +1 -0
  262. package/dist-es/packages/core/src/flex-layout/FlexLayout.css.js +7 -0
  263. package/dist-es/packages/core/src/flex-layout/FlexLayout.css.js.map +1 -0
  264. package/dist-es/packages/core/src/flex-layout/FlexLayout.js +77 -0
  265. package/dist-es/packages/core/src/flex-layout/FlexLayout.js.map +1 -0
  266. package/dist-es/packages/core/src/flow-layout/FlowLayout.js +18 -0
  267. package/dist-es/packages/core/src/flow-layout/FlowLayout.js.map +1 -0
  268. package/dist-es/packages/core/src/grid-item/GridItem.css.js +7 -0
  269. package/dist-es/packages/core/src/grid-item/GridItem.css.js.map +1 -0
  270. package/dist-es/packages/core/src/grid-item/GridItem.js +68 -0
  271. package/dist-es/packages/core/src/grid-item/GridItem.js.map +1 -0
  272. package/dist-es/packages/core/src/grid-layout/GridLayout.css.js +7 -0
  273. package/dist-es/packages/core/src/grid-layout/GridLayout.css.js.map +1 -0
  274. package/dist-es/packages/core/src/grid-layout/GridLayout.js +56 -0
  275. package/dist-es/packages/core/src/grid-layout/GridLayout.js.map +1 -0
  276. package/dist-es/packages/core/src/index.js +61 -0
  277. package/dist-es/packages/core/src/index.js.map +1 -0
  278. package/dist-es/packages/core/src/link/Link.css.js +7 -0
  279. package/dist-es/packages/core/src/link/Link.css.js.map +1 -0
  280. package/dist-es/packages/core/src/link/Link.js +61 -0
  281. package/dist-es/packages/core/src/link/Link.js.map +1 -0
  282. package/dist-es/packages/core/src/panel/Panel.css.js +7 -0
  283. package/dist-es/packages/core/src/panel/Panel.css.js.map +1 -0
  284. package/dist-es/packages/core/src/panel/Panel.js +30 -0
  285. package/dist-es/packages/core/src/panel/Panel.js.map +1 -0
  286. package/dist-es/packages/core/src/radio-button/RadioButton.css.js +7 -0
  287. package/dist-es/packages/core/src/radio-button/RadioButton.css.js.map +1 -0
  288. package/dist-es/packages/core/src/radio-button/RadioButton.js +82 -0
  289. package/dist-es/packages/core/src/radio-button/RadioButton.js.map +1 -0
  290. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.css.js +7 -0
  291. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.css.js.map +1 -0
  292. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.js +57 -0
  293. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.js.map +1 -0
  294. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.css.js +7 -0
  295. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.css.js.map +1 -0
  296. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.js +44 -0
  297. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.js.map +1 -0
  298. package/dist-es/packages/core/src/radio-button/internal/RadioGroupContext.js +15 -0
  299. package/dist-es/packages/core/src/radio-button/internal/RadioGroupContext.js.map +1 -0
  300. package/dist-es/packages/core/src/radio-button/internal/useRadioGroup.js +9 -0
  301. package/dist-es/packages/core/src/radio-button/internal/useRadioGroup.js.map +1 -0
  302. package/dist-es/packages/core/src/salt-provider/SaltProvider.css.js +7 -0
  303. package/dist-es/packages/core/src/salt-provider/SaltProvider.css.js.map +1 -0
  304. package/dist-es/packages/core/src/salt-provider/SaltProvider.js +151 -0
  305. package/dist-es/packages/core/src/salt-provider/SaltProvider.js.map +1 -0
  306. package/dist-es/packages/core/src/spinner/Spinner.css.js +7 -0
  307. package/dist-es/packages/core/src/spinner/Spinner.css.js.map +1 -0
  308. package/dist-es/packages/core/src/spinner/Spinner.js +84 -0
  309. package/dist-es/packages/core/src/spinner/Spinner.js.map +1 -0
  310. package/dist-es/packages/core/src/spinner/svgSpinners/SpinnerSVG.js +78 -0
  311. package/dist-es/packages/core/src/spinner/svgSpinners/SpinnerSVG.js.map +1 -0
  312. package/dist-es/packages/core/src/split-layout/SplitLayout.js +21 -0
  313. package/dist-es/packages/core/src/split-layout/SplitLayout.js.map +1 -0
  314. package/dist-es/packages/core/src/stack-layout/StackLayout.css.js +7 -0
  315. package/dist-es/packages/core/src/stack-layout/StackLayout.css.js.map +1 -0
  316. package/dist-es/packages/core/src/stack-layout/StackLayout.js +59 -0
  317. package/dist-es/packages/core/src/stack-layout/StackLayout.js.map +1 -0
  318. package/dist-es/packages/core/src/status-indicator/StatusIndicator.css.js +7 -0
  319. package/dist-es/packages/core/src/status-indicator/StatusIndicator.css.js.map +1 -0
  320. package/dist-es/packages/core/src/status-indicator/StatusIndicator.js +48 -0
  321. package/dist-es/packages/core/src/status-indicator/StatusIndicator.js.map +1 -0
  322. package/dist-es/packages/core/src/status-indicator/ValidationStatus.js +9 -0
  323. package/dist-es/packages/core/src/status-indicator/ValidationStatus.js.map +1 -0
  324. package/dist-es/packages/core/src/text/Display.js +41 -0
  325. package/dist-es/packages/core/src/text/Display.js.map +1 -0
  326. package/dist-es/packages/core/src/text/Headings.js +47 -0
  327. package/dist-es/packages/core/src/text/Headings.js.map +1 -0
  328. package/dist-es/packages/core/src/text/Label.js +15 -0
  329. package/dist-es/packages/core/src/text/Label.js.map +1 -0
  330. package/dist-es/packages/core/src/text/Text.css.js +7 -0
  331. package/dist-es/packages/core/src/text/Text.css.js.map +1 -0
  332. package/dist-es/packages/core/src/text/Text.js +54 -0
  333. package/dist-es/packages/core/src/text/Text.js.map +1 -0
  334. package/dist-es/packages/core/src/theme/Density.js +4 -0
  335. package/dist-es/packages/core/src/theme/Density.js.map +1 -0
  336. package/dist-es/packages/core/src/theme/Mode.js +4 -0
  337. package/dist-es/packages/core/src/theme/Mode.js.map +1 -0
  338. package/dist-es/packages/core/src/theme/Theme.js +15 -0
  339. package/dist-es/packages/core/src/theme/Theme.js.map +1 -0
  340. package/dist-es/packages/core/src/tooltip/Tooltip.css.js +7 -0
  341. package/dist-es/packages/core/src/tooltip/Tooltip.css.js.map +1 -0
  342. package/dist-es/packages/core/src/tooltip/Tooltip.js +111 -0
  343. package/dist-es/packages/core/src/tooltip/Tooltip.js.map +1 -0
  344. package/dist-es/packages/core/src/tooltip/useAriaAnnounce.js +91 -0
  345. package/dist-es/packages/core/src/tooltip/useAriaAnnounce.js.map +1 -0
  346. package/dist-es/packages/core/src/tooltip/useTooltip.js +105 -0
  347. package/dist-es/packages/core/src/tooltip/useTooltip.js.map +1 -0
  348. package/dist-es/packages/core/src/utils/capitalize.js +6 -0
  349. package/dist-es/packages/core/src/utils/capitalize.js.map +1 -0
  350. package/dist-es/packages/core/src/utils/createChainedFunction.js +18 -0
  351. package/dist-es/packages/core/src/utils/createChainedFunction.js.map +1 -0
  352. package/dist-es/packages/core/src/utils/createContext.js +12 -0
  353. package/dist-es/packages/core/src/utils/createContext.js.map +1 -0
  354. package/dist-es/packages/core/src/utils/debounce.js +20 -0
  355. package/dist-es/packages/core/src/utils/debounce.js.map +1 -0
  356. package/dist-es/packages/core/src/utils/makePrefixer.js +4 -0
  357. package/dist-es/packages/core/src/utils/makePrefixer.js.map +1 -0
  358. package/dist-es/packages/core/src/utils/marginMiddleware.js +18 -0
  359. package/dist-es/packages/core/src/utils/marginMiddleware.js.map +1 -0
  360. package/dist-es/packages/core/src/utils/mergeProps.js +21 -0
  361. package/dist-es/packages/core/src/utils/mergeProps.js.map +1 -0
  362. package/dist-es/packages/core/src/utils/ownerDocument.js +6 -0
  363. package/dist-es/packages/core/src/utils/ownerDocument.js.map +1 -0
  364. package/dist-es/packages/core/src/utils/ownerWindow.js +9 -0
  365. package/dist-es/packages/core/src/utils/ownerWindow.js.map +1 -0
  366. package/dist-es/packages/core/src/utils/setRef.js +10 -0
  367. package/dist-es/packages/core/src/utils/setRef.js.map +1 -0
  368. package/dist-es/packages/core/src/utils/useControlled.js +56 -0
  369. package/dist-es/packages/core/src/utils/useControlled.js.map +1 -0
  370. package/dist-es/packages/core/src/utils/useFloatingUI.js +33 -0
  371. package/dist-es/packages/core/src/utils/useFloatingUI.js.map +1 -0
  372. package/dist-es/packages/core/src/utils/useForkRef.js +17 -0
  373. package/dist-es/packages/core/src/utils/useForkRef.js.map +1 -0
  374. package/dist-es/packages/core/src/utils/useId.js +30 -0
  375. package/dist-es/packages/core/src/utils/useId.js.map +1 -0
  376. package/dist-es/packages/core/src/utils/useIsFocusVisible.js +103 -0
  377. package/dist-es/packages/core/src/utils/useIsFocusVisible.js.map +1 -0
  378. package/dist-es/packages/core/src/utils/useIsomorphicLayoutEffect.js +6 -0
  379. package/dist-es/packages/core/src/utils/useIsomorphicLayoutEffect.js.map +1 -0
  380. package/dist-es/packages/core/src/utils/usePrevious.js +12 -0
  381. package/dist-es/packages/core/src/utils/usePrevious.js.map +1 -0
  382. package/dist-es/packages/core/src/utils/useResponsiveProp.js +64 -0
  383. package/dist-es/packages/core/src/utils/useResponsiveProp.js.map +1 -0
  384. package/dist-es/packages/core/src/viewport/ViewportProvider.js +42 -0
  385. package/dist-es/packages/core/src/viewport/ViewportProvider.js.map +1 -0
  386. package/dist-types/aria-announcer/AriaAnnounce.d.ts +8 -0
  387. package/dist-types/aria-announcer/AriaAnnouncerContext.d.ts +6 -0
  388. package/dist-types/aria-announcer/AriaAnnouncerProvider.d.ts +10 -0
  389. package/dist-types/aria-announcer/index.d.ts +4 -0
  390. package/dist-types/aria-announcer/useAriaAnnouncer.d.ts +6 -0
  391. package/dist-types/avatar/Avatar.d.ts +26 -0
  392. package/dist-types/avatar/index.d.ts +2 -0
  393. package/dist-types/avatar/useAvatarImage.d.ts +2 -0
  394. package/dist-types/border-item/BorderItem.d.ts +26 -0
  395. package/dist-types/border-item/index.d.ts +1 -0
  396. package/dist-types/border-layout/BorderLayout.d.ts +25 -0
  397. package/dist-types/border-layout/index.d.ts +1 -0
  398. package/dist-types/breakpoints/Breakpoints.d.ts +8 -0
  399. package/dist-types/breakpoints/index.d.ts +1 -0
  400. package/dist-types/button/Button.d.ts +19 -0
  401. package/dist-types/button/index.d.ts +2 -0
  402. package/dist-types/button/useButton.d.ts +22 -0
  403. package/dist-types/card/Card.d.ts +17 -0
  404. package/dist-types/card/InteractableCard.d.ts +14 -0
  405. package/dist-types/card/index.d.ts +2 -0
  406. package/dist-types/card/useInteractableCard.d.ts +21 -0
  407. package/dist-types/checkbox/Checkbox.d.ts +56 -0
  408. package/dist-types/checkbox/CheckboxGroup.d.ts +30 -0
  409. package/dist-types/checkbox/CheckboxIcon.d.ts +10 -0
  410. package/dist-types/checkbox/assets/CheckboxCheckedIcon.d.ts +4 -0
  411. package/dist-types/checkbox/assets/CheckboxCheckedIconHD.d.ts +4 -0
  412. package/dist-types/checkbox/assets/CheckboxIndeterminateIcon.d.ts +4 -0
  413. package/dist-types/checkbox/assets/CheckboxUncheckedIcon.d.ts +4 -0
  414. package/dist-types/checkbox/assets/index.d.ts +4 -0
  415. package/dist-types/checkbox/index.d.ts +3 -0
  416. package/dist-types/checkbox/internal/CheckboxGroupContext.d.ts +9 -0
  417. package/dist-types/checkbox/internal/useCheckboxGroup.d.ts +2 -0
  418. package/dist-types/flex-item/FlexItem.d.ts +25 -0
  419. package/dist-types/flex-item/index.d.ts +1 -0
  420. package/dist-types/flex-layout/FlexLayout.d.ts +39 -0
  421. package/dist-types/flex-layout/index.d.ts +1 -0
  422. package/dist-types/flow-layout/FlowLayout.d.ts +20 -0
  423. package/dist-types/flow-layout/index.d.ts +1 -0
  424. package/dist-types/grid-item/GridItem.d.ts +26 -0
  425. package/dist-types/grid-item/index.d.ts +1 -0
  426. package/dist-types/grid-layout/GridLayout.d.ts +27 -0
  427. package/dist-types/grid-layout/index.d.ts +1 -0
  428. package/dist-types/index.d.ts +26 -0
  429. package/dist-types/link/Link.d.ts +13 -0
  430. package/dist-types/link/index.d.ts +1 -0
  431. package/dist-types/panel/Panel.d.ts +19 -0
  432. package/dist-types/panel/index.d.ts +1 -0
  433. package/dist-types/radio-button/RadioButton.d.ts +45 -0
  434. package/dist-types/radio-button/RadioButtonGroup.d.ts +29 -0
  435. package/dist-types/radio-button/RadioButtonIcon.d.ts +11 -0
  436. package/dist-types/radio-button/index.d.ts +3 -0
  437. package/dist-types/radio-button/internal/RadioGroupContext.d.ts +7 -0
  438. package/dist-types/radio-button/internal/useRadioGroup.d.ts +1 -0
  439. package/dist-types/salt-provider/SaltProvider.d.ts +38 -0
  440. package/dist-types/salt-provider/index.d.ts +1 -0
  441. package/dist-types/spinner/Spinner.d.ts +44 -0
  442. package/dist-types/spinner/index.d.ts +1 -0
  443. package/dist-types/spinner/svgSpinners/SpinnerSVG.d.ts +5 -0
  444. package/dist-types/split-layout/SplitLayout.d.ts +28 -0
  445. package/dist-types/split-layout/index.d.ts +1 -0
  446. package/dist-types/stack-layout/StackLayout.d.ts +24 -0
  447. package/dist-types/stack-layout/index.d.ts +1 -0
  448. package/dist-types/status-indicator/StatusIndicator.d.ts +10 -0
  449. package/dist-types/status-indicator/ValidationStatus.d.ts +2 -0
  450. package/dist-types/status-indicator/index.d.ts +2 -0
  451. package/dist-types/text/Display.d.ts +5 -0
  452. package/dist-types/text/Headings.d.ts +6 -0
  453. package/dist-types/text/Label.d.ts +3 -0
  454. package/dist-types/text/Text.d.ts +23 -0
  455. package/dist-types/text/index.d.ts +4 -0
  456. package/dist-types/theme/Density.d.ts +2 -0
  457. package/dist-types/theme/Mode.d.ts +2 -0
  458. package/dist-types/theme/Theme.d.ts +3 -0
  459. package/dist-types/theme/index.d.ts +3 -0
  460. package/dist-types/tooltip/Tooltip.d.ts +46 -0
  461. package/dist-types/tooltip/index.d.ts +2 -0
  462. package/dist-types/tooltip/useAriaAnnounce.d.ts +9 -0
  463. package/dist-types/tooltip/useTooltip.d.ts +56 -0
  464. package/dist-types/utils/capitalize.d.ts +1 -0
  465. package/dist-types/utils/createChainedFunction.d.ts +3 -0
  466. package/dist-types/utils/createContext.d.ts +2 -0
  467. package/dist-types/utils/debounce.d.ts +4 -0
  468. package/dist-types/utils/index.d.ts +20 -0
  469. package/dist-types/utils/inferElementType.d.ts +2 -0
  470. package/dist-types/utils/makePrefixer.d.ts +2 -0
  471. package/dist-types/utils/marginMiddleware.d.ts +2 -0
  472. package/dist-types/utils/mergeProps.d.ts +12 -0
  473. package/dist-types/utils/ownerDocument.d.ts +1 -0
  474. package/dist-types/utils/ownerWindow.d.ts +1 -0
  475. package/dist-types/utils/polymorphicTypes.d.ts +14 -0
  476. package/dist-types/utils/setRef.d.ts +2 -0
  477. package/dist-types/utils/useControlled.d.ts +24 -0
  478. package/dist-types/utils/useFloatingUI.d.ts +34 -0
  479. package/dist-types/utils/useForkRef.d.ts +2 -0
  480. package/dist-types/utils/useId.d.ts +2 -0
  481. package/dist-types/utils/useIsFocusVisible.d.ts +8 -0
  482. package/dist-types/utils/useIsomorphicLayoutEffect.d.ts +2 -0
  483. package/dist-types/utils/usePrevious.d.ts +2 -0
  484. package/dist-types/utils/useResponsiveProp.d.ts +10 -0
  485. package/dist-types/viewport/ViewportProvider.d.ts +8 -0
  486. package/dist-types/viewport/index.d.ts +1 -0
  487. package/package.json +43 -0
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
7
+ var clsx = require('clsx');
8
+ var styles = require('@salt-ds/styles');
9
+ var window = require('@salt-ds/window');
10
+ var makePrefixer = require('../utils/makePrefixer.js');
11
+ require('../utils/useFloatingUI.js');
12
+ require('../utils/useId.js');
13
+ require('../salt-provider/SaltProvider.js');
14
+ require('../viewport/ViewportProvider.js');
15
+ var Button$1 = require('./Button.css.js');
16
+ var useButton = require('./useButton.js');
17
+
18
+ const withBaseName = makePrefixer.makePrefixer("saltButton");
19
+ const ButtonVariantValues = ["primary", "secondary", "cta"];
20
+ const Button = React.forwardRef(
21
+ function Button2({
22
+ children,
23
+ className,
24
+ disabled,
25
+ focusableWhenDisabled,
26
+ onKeyUp,
27
+ onKeyDown,
28
+ onBlur,
29
+ onClick,
30
+ type = "button",
31
+ variant = "primary",
32
+ ...restProps
33
+ }, ref) {
34
+ const { active, buttonProps } = useButton.useButton({
35
+ disabled,
36
+ focusableWhenDisabled,
37
+ onKeyUp,
38
+ onKeyDown,
39
+ onBlur,
40
+ onClick
41
+ });
42
+ const { window: targetWindow } = window.useWindow();
43
+ styles.useComponentCssInjection({
44
+ id: "salt-button",
45
+ css: Button$1,
46
+ window: targetWindow
47
+ });
48
+ const { tabIndex, ...restButtonProps } = buttonProps;
49
+ return /* @__PURE__ */ jsxRuntime.jsx("button", {
50
+ ...restButtonProps,
51
+ className: clsx.clsx(
52
+ withBaseName(),
53
+ withBaseName(variant),
54
+ {
55
+ [withBaseName("disabled")]: disabled,
56
+ [withBaseName("active")]: active
57
+ },
58
+ className
59
+ ),
60
+ ...restProps,
61
+ ref,
62
+ type,
63
+ children
64
+ });
65
+ }
66
+ );
67
+
68
+ exports.Button = Button;
69
+ exports.ButtonVariantValues = ButtonVariantValues;
70
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../src/button/Button.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, forwardRef, ReactElement } from \"react\";\nimport { clsx } from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { makePrefixer } from \"../utils\";\n\nimport buttonCss from \"./Button.css\";\nimport { useButton } from \"./useButton\";\n\nconst withBaseName = makePrefixer(\"saltButton\");\n\nexport const ButtonVariantValues = [\"primary\", \"secondary\", \"cta\"] as const;\nexport type ButtonVariant = typeof ButtonVariantValues[number];\n\nexport interface ButtonProps 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 * The variant to use. Options are 'primary', 'secondary' and 'cta'.\n * 'primary' is the default value.\n */\n variant?: ButtonVariant;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(\n {\n children,\n className,\n disabled,\n focusableWhenDisabled,\n onKeyUp,\n onKeyDown,\n onBlur,\n onClick,\n type = \"button\",\n variant = \"primary\",\n ...restProps\n },\n ref?\n ): ReactElement<ButtonProps> {\n const { active, buttonProps } = useButton({\n disabled,\n focusableWhenDisabled,\n onKeyUp,\n onKeyDown,\n onBlur,\n onClick,\n });\n\n const { window: targetWindow } = useWindow();\n useComponentCssInjection({\n id: \"salt-button\",\n css: buttonCss,\n window: targetWindow,\n });\n\n // we do not want to spread tab index in this case because the button element\n // does not require tabindex=\"0\" attribute\n const { tabIndex, ...restButtonProps } = buttonProps;\n return (\n <button\n {...restButtonProps}\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"active\")]: active,\n },\n className\n )}\n {...restProps}\n ref={ref}\n type={type}\n >\n {children}\n </button>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","Button","useButton","useWindow","useComponentCssInjection","buttonCss","jsx","clsx"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,YAAY,CAAA,CAAA;AAEvC,MAAM,mBAAsB,GAAA,CAAC,SAAW,EAAA,WAAA,EAAa,KAAK,EAAA;AAmB1D,MAAM,MAAS,GAAAC,gBAAA;AAAA,EACpB,SAASC,OACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,qBAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAO,GAAA,QAAA;AAAA,IACP,OAAU,GAAA,SAAA;AAAA,IACP,GAAA,SAAA;AAAA,KAEL,GAC2B,EAAA;AAC3B,IAAA,MAAM,EAAE,MAAA,EAAQ,WAAY,EAAA,GAAIC,mBAAU,CAAA;AAAA,MACxC,QAAA;AAAA,MACA,qBAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,MAAA,EAAQ,YAAa,EAAA,GAAIC,gBAAU,EAAA,CAAA;AAC3C,IAAyBC,+BAAA,CAAA;AAAA,MACvB,EAAI,EAAA,aAAA;AAAA,MACJ,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAID,IAAM,MAAA,EAAE,QAAa,EAAA,GAAA,eAAA,EAAoB,GAAA,WAAA,CAAA;AACzC,IAAA,uBACGC,cAAA,CAAA,QAAA,EAAA;AAAA,MACE,GAAG,eAAA;AAAA,MACJ,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,aAAa,OAAO,CAAA;AAAA,QACpB;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,SAC5B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,IAAA;AAAA,MAEC,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;;"}
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ const useButton = ({
8
+ disabled,
9
+ focusableWhenDisabled,
10
+ onKeyUp,
11
+ onKeyDown,
12
+ onClick,
13
+ onBlur
14
+ }) => {
15
+ const [keyIsDown, setkeyIsDown] = React.useState("");
16
+ const [active, setActive] = React.useState(false);
17
+ const enter = "Enter";
18
+ const space = " ";
19
+ React.useEffect(() => {
20
+ const t = setTimeout(() => {
21
+ if (keyIsDown !== enter && keyIsDown !== space) {
22
+ setActive(false);
23
+ }
24
+ }, 0);
25
+ return () => {
26
+ clearTimeout(t);
27
+ };
28
+ }, [active, keyIsDown]);
29
+ const handleKeyUp = (event) => {
30
+ setkeyIsDown("");
31
+ setActive(false);
32
+ onKeyUp == null ? void 0 : onKeyUp(event);
33
+ };
34
+ const handleClick = (event) => {
35
+ setActive(true);
36
+ onClick == null ? void 0 : onClick(event);
37
+ };
38
+ const handleBlur = (event) => {
39
+ setActive(false);
40
+ onBlur == null ? void 0 : onBlur(event);
41
+ };
42
+ const handleKeyDown = (event) => {
43
+ if (event.key === enter || event.key === space) {
44
+ setkeyIsDown(event.key);
45
+ setActive(true);
46
+ }
47
+ onKeyDown == null ? void 0 : onKeyDown(event);
48
+ };
49
+ const buttonProps = {
50
+ "aria-disabled": disabled && focusableWhenDisabled ? true : void 0,
51
+ disabled: disabled && !focusableWhenDisabled,
52
+ tabIndex: disabled && !focusableWhenDisabled ? -1 : 0,
53
+ onBlur: handleBlur,
54
+ onClick: !disabled ? handleClick : void 0,
55
+ onKeyDown: handleKeyDown,
56
+ onKeyUp: handleKeyUp
57
+ };
58
+ return {
59
+ active,
60
+ buttonProps
61
+ };
62
+ };
63
+
64
+ exports.useButton = useButton;
65
+ //# sourceMappingURL=useButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useButton.js","sources":["../src/button/useButton.ts"],"sourcesContent":["import {\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n useEffect,\n useState,\n} from \"react\";\n\nexport interface ButtonHookProps<T extends Element> {\n disabled?: boolean;\n focusableWhenDisabled?: 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 ButtonHookResult<T extends Element> {\n active: boolean;\n buttonProps: {\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 useButton = <T extends Element>({\n disabled,\n focusableWhenDisabled,\n onKeyUp,\n onKeyDown,\n onClick,\n onBlur,\n}: ButtonHookProps<T>): ButtonHookResult<T> => {\n const [keyIsDown, setkeyIsDown] = useState(\"\");\n const [active, setActive] = useState(false);\n\n const enter = \"Enter\";\n const space = \" \";\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\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 && keyIsDown !== space) {\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 || event.key === space) {\n setkeyIsDown(event.key);\n setActive(true);\n }\n\n onKeyDown?.(event);\n };\n\n const buttonProps = {\n \"aria-disabled\": disabled && focusableWhenDisabled ? true : undefined,\n disabled: disabled && !focusableWhenDisabled,\n tabIndex: disabled && !focusableWhenDisabled ? -1 : 0,\n onBlur: handleBlur,\n onClick: !disabled ? handleClick : undefined,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n };\n\n return {\n active,\n buttonProps,\n };\n};\n"],"names":["useState","useEffect"],"mappings":";;;;;;AA8BO,MAAM,YAAY,CAAoB;AAAA,EAC3C,QAAA;AAAA,EACA,qBAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AACF,CAA+C,KAAA;AAC7C,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;AACd,EAAA,MAAM,KAAQ,GAAA,GAAA,CAAA;AAEd,EAAAC,eAAA,CAAU,MAAM;AACd,IAAM,MAAA,CAAA,GAAI,WAAW,MAAM;AAGzB,MAAI,IAAA,SAAA,KAAc,KAAS,IAAA,SAAA,KAAc,KAAO,EAAA;AAC9C,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,IAAA,IAAI,KAAM,CAAA,GAAA,KAAQ,KAAS,IAAA,KAAA,CAAM,QAAQ,KAAO,EAAA;AAC9C,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,WAAc,GAAA;AAAA,IAClB,eAAA,EAAiB,QAAY,IAAA,qBAAA,GAAwB,IAAO,GAAA,KAAA,CAAA;AAAA,IAC5D,QAAA,EAAU,YAAY,CAAC,qBAAA;AAAA,IACvB,QAAU,EAAA,QAAA,IAAY,CAAC,qBAAA,GAAwB,CAAK,CAAA,GAAA,CAAA;AAAA,IACpD,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,WAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = "/* Styles applied to the root element */\n.saltCard {\n background: var(--saltCard-background, var(--salt-container-primary-background));\n box-shadow: var(--saltCard-boxShadow, var(--salt-overlayable-shadow));\n color: var(--saltCard-color, var(--salt-text-primary-foreground));\n height: var(--saltCard-height, auto);\n min-height: var(--saltCard-minHeight, 100%);\n overflow: hidden;\n}\n\n/* Styles applied to Card content */\n.saltCard-content {\n height: 100%;\n padding: var(--saltCard-padding, var(--salt-size-container-spacing));\n}\n\n/*\n * **Deprecated:** The following styles are deprecated\n * Use Interactable Card component instead \n * for interactable styling \n */\n\n/* **Deprecated:** Styles applied if `interactable={true}` */\n.saltCard-interactable {\n display: block;\n transition: none;\n}\n\n/* **Deprecated:** Styles applied on hover if `interactable={true}` */\na:focus .saltCard-interactable,\n.saltCard-interactable:hover {\n box-shadow: var(--saltCard-boxShadow-hover, var(--salt-overlayable-shadow-hover));\n cursor: var(--saltCard-cursor-hover, var(--salt-selectable-cursor-hover));\n position: relative;\n}\n\n/* **Deprecated:** Styles applied on active state if `interactable={true}` */\n.saltCard-interactable:active {\n box-shadow: var(--saltCard-boxShadow-active, var(--salt-overlayable-shadow-hover));\n outline: var(--salt-focused-outline);\n outline-offset: var(--salt-focused-outlineOffset);\n}\n\n/* **Deprecated:** Styles applied on hover if `interactable={true}` and `disabled={true}` */\na:focus .saltCard-interactable.saltCard-disabled,\n.saltCard-interactable.saltCard-disabled:hover,\n.saltCard-interactable.saltCard-disabled:active {\n box-shadow: var(--saltCard-boxShadow-disabled, var(--salt-overlayable-shadow));\n}\n\n/* **Deprecated:** Styles applied if `disabled={true}` */\n.saltCard-disabled,\n.saltCard-disabled.saltCard-interactable,\na:focus .saltCard-interactable.saltCard-disabled {\n color: var(--saltCard-color-disabled, var(--salt-text-primary-foreground-disabled));\n cursor: var(--saltCard-cursor-disabled, var(--salt-selectable-cursor-disabled));\n outline: none;\n}\n\n/* **Deprecated:** Styles applied to nested divs if `disabled={true}` */\n.saltCard-disabled div {\n pointer-events: none;\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=Card.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var clsx = require('clsx');
7
+ var React = require('react');
8
+ var window = require('@salt-ds/window');
9
+ var styles = require('@salt-ds/styles');
10
+ var makePrefixer = require('../utils/makePrefixer.js');
11
+ require('../utils/useFloatingUI.js');
12
+ require('../utils/useId.js');
13
+ require('../salt-provider/SaltProvider.js');
14
+ require('../viewport/ViewportProvider.js');
15
+ var Card$1 = require('./Card.css.js');
16
+
17
+ const withBaseName = makePrefixer.makePrefixer("saltCard");
18
+ const Card = React.forwardRef(function Card2(props, ref) {
19
+ const { className, disabled, interactable, children, ...rest } = props;
20
+ const { window: targetWindow } = window.useWindow();
21
+ styles.useComponentCssInjection({
22
+ id: "salt-card",
23
+ css: Card$1,
24
+ window: targetWindow
25
+ });
26
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
27
+ className: clsx.clsx(
28
+ withBaseName(),
29
+ {
30
+ [withBaseName("disabled")]: disabled,
31
+ [withBaseName("interactable")]: interactable
32
+ },
33
+ className
34
+ ),
35
+ ref,
36
+ ...rest,
37
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
38
+ className: withBaseName("content"),
39
+ children
40
+ })
41
+ });
42
+ });
43
+
44
+ exports.Card = Card;
45
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sources":["../src/card/Card.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 { makePrefixer } from \"../utils\";\n\nimport cardCss from \"./Card.css\";\n\nconst withBaseName = makePrefixer(\"saltCard\");\nexport interface CardProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * **Deprecated:** Use the InteractableCard component instead\n *\n * If `true`, the card will be disabled.\n */\n disabled?: boolean;\n /**\n * **Deprecated:** Use the InteractableCard component instead\n *\n * If `true`, interactive styles will be applied to `Card`. These styles give prominence to certain content\n * on the page.\n */\n interactable?: boolean;\n}\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(function Card(\n props,\n ref\n) {\n const { className, disabled, interactable, children, ...rest } = props;\n\n const { window: targetWindow } = useWindow();\n useComponentCssInjection({\n id: \"salt-card\",\n css: cardCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n /* **Deprecated:** InteractableCard should be used instead for these features */\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"interactable\")]: interactable,\n },\n className\n )}\n ref={ref}\n {...rest}\n >\n <div className={withBaseName(\"content\")}>{children}</div>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","Card","useWindow","useComponentCssInjection","cardCss","jsx","clsx"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,0BAAa,UAAU,CAAA,CAAA;AAiBrC,MAAM,IAAO,GAAAC,gBAAA,CAAsC,SAASC,KAAAA,CACjE,OACA,GACA,EAAA;AACA,EAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAU,YAAc,EAAA,QAAA,EAAA,GAAa,MAAS,GAAA,KAAA,CAAA;AAEjE,EAAA,MAAM,EAAE,MAAA,EAAQ,YAAa,EAAA,GAAIC,gBAAU,EAAA,CAAA;AAC3C,EAAyBC,+BAAA,CAAA;AAAA,IACvB,EAAI,EAAA,WAAA;AAAA,IACJ,GAAK,EAAAC,MAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAW,EAAAC,SAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb;AAAA,QAEE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,OAClC;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IACA,GAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEJ,QAAC,kBAAAD,cAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,MAAI,QAAA;AAAA,KAAS,CAAA;AAAA,GACrD,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = "/* Styles applied to InteractableCard */\n.saltInteractableCard {\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, 0);\n display: block;\n transition: box-shadow var(--salt-duration-instant) cubic-bezier(0.4, 0, 0.2, 1);\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-text-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\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 border-color: var(--saltCard-borderColor-disabled, var(--salt-accent-borderColor-disabled));\n box-shadow: var(--saltCard-interactable-shadow, var(--salt-overlayable-shadow));\n background: var(--saltCard-background-disabled, var(--salt-container-primary-background-disabled));\n color: var(--saltCard-color-disabled, var(--salt-text-primary-foreground-disabled));\n cursor: var(--saltCard-interactable-cursor-disabled, var(--salt-selectable-cursor-disabled));\n outline: none;\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-text-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";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=InteractableCard.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractableCard.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var clsx = require('clsx');
7
+ var React = require('react');
8
+ var Card = require('./Card.js');
9
+ var capitalize = require('../utils/capitalize.js');
10
+ var makePrefixer = require('../utils/makePrefixer.js');
11
+ require('../utils/useFloatingUI.js');
12
+ require('../utils/useId.js');
13
+ require('../salt-provider/SaltProvider.js');
14
+ require('../viewport/ViewportProvider.js');
15
+ var useInteractableCard = require('./useInteractableCard.js');
16
+ require('./InteractableCard.css.js');
17
+
18
+ const withBaseName = makePrefixer.makePrefixer("saltInteractableCard");
19
+ const InteractableCard = React.forwardRef(function InteractableCard2(props, ref) {
20
+ const {
21
+ accentPlacement = "bottom",
22
+ children,
23
+ className,
24
+ disabled,
25
+ onBlur,
26
+ onClick,
27
+ onKeyUp,
28
+ onKeyDown,
29
+ ...rest
30
+ } = props;
31
+ const { active, cardProps } = useInteractableCard.useInteractableCard({
32
+ disabled,
33
+ onKeyUp,
34
+ onKeyDown,
35
+ onBlur,
36
+ onClick
37
+ });
38
+ const { tabIndex, ...restCardProps } = cardProps;
39
+ return /* @__PURE__ */ jsxRuntime.jsx(Card.Card, {
40
+ ...restCardProps,
41
+ className: clsx.clsx(
42
+ withBaseName(),
43
+ withBaseName(`accent${capitalize.capitalize(accentPlacement)}`),
44
+ {
45
+ [withBaseName("disabled")]: disabled,
46
+ [withBaseName("active")]: active
47
+ },
48
+ className
49
+ ),
50
+ ...rest,
51
+ ref,
52
+ children
53
+ });
54
+ });
55
+
56
+ exports.InteractableCard = InteractableCard;
57
+ //# sourceMappingURL=InteractableCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractableCard.js","sources":["../src/card/InteractableCard.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { Card, CardProps } from \"./Card\";\nimport { capitalize, makePrefixer } from \"../utils\";\nimport { useInteractableCard } from \"./useInteractableCard\";\n\nimport \"./InteractableCard.css\";\n\nconst withBaseName = makePrefixer(\"saltInteractableCard\");\n\n// TODO: Remove omissions when Card props deprecated\nexport interface InteractableCardProps\n extends Omit<CardProps, \"disabled\" | \"interactable\"> {\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\nexport const InteractableCard = forwardRef<\n HTMLDivElement,\n InteractableCardProps\n>(function InteractableCard(props, ref) {\n const {\n accentPlacement = \"bottom\",\n children,\n className,\n disabled,\n onBlur,\n onClick,\n onKeyUp,\n onKeyDown,\n ...rest\n } = props;\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 <Card\n {...restCardProps}\n className={clsx(\n withBaseName(),\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 </Card>\n );\n});\n"],"names":["makePrefixer","forwardRef","InteractableCard","useInteractableCard","jsx","Card","clsx","capitalize"],"mappings":";;;;;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAeA,0BAAa,sBAAsB,CAAA,CAAA;AAejD,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,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,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,CAAAC,SAAA,EAAA;AAAA,IACE,GAAG,aAAA;AAAA,IACJ,SAAW,EAAAC,SAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb,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;;;;"}
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ const useInteractableCard = ({
8
+ disabled,
9
+ onKeyUp,
10
+ onKeyDown,
11
+ onClick,
12
+ onBlur
13
+ }) => {
14
+ const [keyIsDown, setkeyIsDown] = React.useState("");
15
+ const [active, setActive] = React.useState(false);
16
+ const enter = "Enter";
17
+ React.useEffect(() => {
18
+ const t = setTimeout(() => {
19
+ if (keyIsDown !== enter) {
20
+ setActive(false);
21
+ }
22
+ }, 0);
23
+ return () => {
24
+ clearTimeout(t);
25
+ };
26
+ }, [active, keyIsDown]);
27
+ const handleKeyUp = (event) => {
28
+ setkeyIsDown("");
29
+ setActive(false);
30
+ onKeyUp == null ? void 0 : onKeyUp(event);
31
+ };
32
+ const handleClick = (event) => {
33
+ setActive(true);
34
+ onClick == null ? void 0 : onClick(event);
35
+ };
36
+ const handleBlur = (event) => {
37
+ setActive(false);
38
+ onBlur == null ? void 0 : onBlur(event);
39
+ };
40
+ const handleKeyDown = (event) => {
41
+ if (event.key === enter) {
42
+ setkeyIsDown(event.key);
43
+ setActive(true);
44
+ }
45
+ onKeyDown == null ? void 0 : onKeyDown(event);
46
+ };
47
+ const cardProps = {
48
+ "aria-disabled": disabled ? true : void 0,
49
+ disabled,
50
+ tabIndex: disabled ? -1 : 0,
51
+ onBlur: handleBlur,
52
+ onClick: !disabled ? handleClick : void 0,
53
+ onKeyDown: handleKeyDown,
54
+ onKeyUp: handleKeyUp
55
+ };
56
+ return {
57
+ active,
58
+ cardProps
59
+ };
60
+ };
61
+
62
+ exports.useInteractableCard = useInteractableCard;
63
+ //# sourceMappingURL=useInteractableCard.js.map
@@ -0,0 +1 @@
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;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = "/* Styles applied to root component */\n\n.saltCheckbox {\n cursor: var(--salt-selectable-cursor-hover);\n background: var(--saltCheckbox-background, none);\n display: flex;\n gap: var(--saltCheckbox-gap, var(--salt-size-adornmentGap));\n position: relative;\n width: fit-content;\n}\n\n/* Styles applied to root component if `disabled={true}` */\n.saltCheckbox-disabled {\n pointer-events: visible;\n color: var(--salt-text-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n/* Styles applied to the icon component if focused */\n.saltCheckbox-input:focus-visible + .saltCheckboxIcon {\n outline-offset: var(--salt-focused-outlineOffset);\n outline: var(--salt-focused-outline);\n}\n\n/* Styles applied to input element */\n.saltCheckbox-input {\n cursor: inherit;\n left: 0;\n margin: 0;\n opacity: 0;\n padding: 0;\n position: absolute;\n top: 0;\n z-index: var(--salt-zIndex-default);\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=Checkbox.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var clsx = require('clsx');
7
+ var React = require('react');
8
+ var makePrefixer = require('../utils/makePrefixer.js');
9
+ var useControlled = require('../utils/useControlled.js');
10
+ require('../utils/useFloatingUI.js');
11
+ require('../utils/useId.js');
12
+ require('../salt-provider/SaltProvider.js');
13
+ require('../viewport/ViewportProvider.js');
14
+ var CheckboxIcon = require('./CheckboxIcon.js');
15
+ require('./Checkbox.css.js');
16
+ var useCheckboxGroup = require('./internal/useCheckboxGroup.js');
17
+
18
+ const withBaseName = makePrefixer.makePrefixer("saltCheckbox");
19
+ const Checkbox = React.forwardRef(
20
+ function Checkbox2({
21
+ checked: checkedProp,
22
+ className,
23
+ defaultChecked,
24
+ disabled,
25
+ error,
26
+ indeterminate,
27
+ inputProps,
28
+ label,
29
+ name,
30
+ onBlur,
31
+ onChange,
32
+ onFocus,
33
+ value,
34
+ ...rest
35
+ }, ref) {
36
+ var _a;
37
+ const checkboxGroup = useCheckboxGroup.useCheckboxGroup();
38
+ const handleChange = (event) => {
39
+ var _a2;
40
+ if (event.nativeEvent.defaultPrevented) {
41
+ return;
42
+ }
43
+ const value2 = event.target.checked;
44
+ setChecked(value2);
45
+ onChange == null ? void 0 : onChange(event);
46
+ (_a2 = checkboxGroup.onChange) == null ? void 0 : _a2.call(checkboxGroup, event);
47
+ };
48
+ const checkboxGroupChecked = checkedProp == null && value != null ? (_a = checkboxGroup.checkedValues) == null ? void 0 : _a.includes(value) : checkedProp;
49
+ const [checked, setChecked] = useControlled.useControlled({
50
+ controlled: checkboxGroupChecked,
51
+ default: Boolean(defaultChecked),
52
+ name: "Checkbox",
53
+ state: "checked"
54
+ });
55
+ return /* @__PURE__ */ jsxRuntime.jsxs("label", {
56
+ className: clsx.clsx(
57
+ withBaseName(),
58
+ {
59
+ [withBaseName("disabled")]: disabled,
60
+ [withBaseName("error")]: error
61
+ },
62
+ className
63
+ ),
64
+ ref,
65
+ ...rest,
66
+ children: [
67
+ /* @__PURE__ */ jsxRuntime.jsx("input", {
68
+ "aria-checked": indeterminate ? "mixed" : void 0,
69
+ name,
70
+ value,
71
+ ...inputProps,
72
+ checked,
73
+ className: withBaseName("input"),
74
+ "data-indeterminate": indeterminate,
75
+ defaultChecked,
76
+ disabled,
77
+ onBlur,
78
+ onChange: handleChange,
79
+ onFocus,
80
+ type: "checkbox"
81
+ }),
82
+ /* @__PURE__ */ jsxRuntime.jsx(CheckboxIcon.CheckboxIcon, {
83
+ checked,
84
+ disabled,
85
+ error,
86
+ indeterminate
87
+ }),
88
+ label
89
+ ]
90
+ });
91
+ }
92
+ );
93
+
94
+ exports.Checkbox = Checkbox;
95
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../src/checkbox/Checkbox.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEventHandler,\n FocusEventHandler,\n forwardRef,\n InputHTMLAttributes,\n ReactNode,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"../utils\";\nimport { CheckboxIcon } from \"./CheckboxIcon\";\n\nimport \"./Checkbox.css\";\nimport { useCheckboxGroup } from \"./internal/useCheckboxGroup\";\n\nconst withBaseName = makePrefixer(\"saltCheckbox\");\n\nexport interface CheckboxProps\n extends Omit<\n InputHTMLAttributes<HTMLLabelElement>,\n \"onChange\" | \"onBlur\" | \"onFocus\"\n > {\n /**\n * If `true`, the checkbox will be checked.\n */\n checked?: boolean;\n /**\n * Whether the checkbox component is checked by default\n * This will be disregarded if checked is already set.\n */\n defaultChecked?: boolean;\n /**\n * If `true`, the checkbox will be disabled.\n */\n disabled?: boolean;\n /**\n * If `true`, the checkbox will be in the error state.\n */\n error?: boolean;\n /**\n * If true, the checkbox appears indeterminate. This does not set the native\n * input element to indeterminate due to the inconsistent behaviour across browsers\n * However, a data-indeterminate attribute is set on the input.\n */\n indeterminate?: boolean;\n /**\n * Properties applied to the input element.\n */\n inputProps?: Partial<InputHTMLAttributes<HTMLInputElement>>;\n /**\n * The label to be shown next to the checkbox.\n */\n label?: ReactNode;\n /**\n * The name applied to the input.\n */\n name?: string;\n /**\n * Callback when checkbox loses focus.\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Callback when checked state is changed.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Callback when checkbox gains focus.\n */\n onFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * The value of the checkbox.\n */\n value?: string;\n}\n\nexport const Checkbox = forwardRef<HTMLLabelElement, CheckboxProps>(\n function Checkbox(\n {\n checked: checkedProp,\n className,\n defaultChecked,\n disabled,\n error,\n indeterminate,\n inputProps,\n label,\n name,\n onBlur,\n onChange,\n onFocus,\n value,\n ...rest\n },\n ref\n ) {\n const checkboxGroup = useCheckboxGroup();\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n\n const value = event.target.checked;\n setChecked(value);\n onChange?.(event);\n checkboxGroup.onChange?.(event);\n };\n\n const checkboxGroupChecked =\n checkedProp == null && value != null\n ? checkboxGroup.checkedValues?.includes(value)\n : checkedProp;\n\n const [checked, setChecked] = useControlled({\n controlled: checkboxGroupChecked,\n default: Boolean(defaultChecked),\n name: \"Checkbox\",\n state: \"checked\",\n });\n\n return (\n <label\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"error\")]: error,\n },\n className\n )}\n ref={ref}\n {...rest}\n >\n <input\n // aria-checked only needed when indeterminate since native indeterminate behaviour is not used\n aria-checked={indeterminate ? \"mixed\" : undefined}\n name={name}\n value={value}\n {...inputProps}\n checked={checked}\n className={withBaseName(\"input\")}\n data-indeterminate={indeterminate}\n defaultChecked={defaultChecked}\n disabled={disabled}\n onBlur={onBlur}\n onChange={handleChange}\n onFocus={onFocus}\n type=\"checkbox\"\n />\n <CheckboxIcon\n checked={checked}\n disabled={disabled}\n error={error}\n indeterminate={indeterminate}\n />\n {label}\n </label>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","Checkbox","useCheckboxGroup","_a","value","useControlled","jsxs","clsx","jsx","CheckboxIcon"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAM,YAAA,GAAeA,0BAAa,cAAc,CAAA,CAAA;AA4DzC,MAAM,QAAW,GAAAC,gBAAA;AAAA,EACtB,SAASC,SACP,CAAA;AAAA,IACE,OAAS,EAAA,WAAA;AAAA,IACT,SAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACG,GAAA,IAAA;AAAA,KAEL,GACA,EAAA;AA7FJ,IAAA,IAAA,EAAA,CAAA;AA8FI,IAAA,MAAM,gBAAgBC,iCAAiB,EAAA,CAAA;AAEvC,IAAM,MAAA,YAAA,GAAqD,CAAC,KAAU,KAAA;AAhG1E,MAAAC,IAAAA,GAAAA,CAAAA;AAkGM,MAAI,IAAA,KAAA,CAAM,YAAY,gBAAkB,EAAA;AACtC,QAAA,OAAA;AAAA,OACF;AAEA,MAAMC,MAAAA,MAAAA,GAAQ,MAAM,MAAO,CAAA,OAAA,CAAA;AAC3B,MAAA,UAAA,CAAWA,MAAK,CAAA,CAAA;AAChB,MAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AACX,MAAA,CAAAD,GAAA,GAAA,aAAA,CAAc,QAAd,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAA,IAAyB,CAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAAA,KAC3B,CAAA;AAEA,IAAM,MAAA,oBAAA,GACJ,eAAe,IAAQ,IAAA,KAAA,IAAS,QAC5B,EAAc,GAAA,aAAA,CAAA,aAAA,KAAd,IAA6B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAS,KACtC,CAAA,GAAA,WAAA,CAAA;AAEN,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIE,2BAAc,CAAA;AAAA,MAC1C,UAAY,EAAA,oBAAA;AAAA,MACZ,OAAA,EAAS,QAAQ,cAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,UAAA;AAAA,MACN,KAAO,EAAA,SAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,uBACGC,eAAA,CAAA,OAAA,EAAA;AAAA,MACC,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,SAC3B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAA,OAAA,EAAA;AAAA,UAEC,cAAA,EAAc,gBAAgB,OAAU,GAAA,KAAA,CAAA;AAAA,UACxC,IAAA;AAAA,UACA,KAAA;AAAA,UACC,GAAG,UAAA;AAAA,UACJ,OAAA;AAAA,UACA,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,oBAAoB,EAAA,aAAA;AAAA,UACpB,cAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAA;AAAA,UACA,QAAU,EAAA,YAAA;AAAA,UACV,OAAA;AAAA,UACA,IAAK,EAAA,UAAA;AAAA,SACP,CAAA;AAAA,wBACCA,cAAA,CAAAC,yBAAA,EAAA;AAAA,UACC,OAAA;AAAA,UACA,QAAA;AAAA,UACA,KAAA;AAAA,UACA,aAAA;AAAA,SACF,CAAA;AAAA,QACC,KAAA;AAAA,OAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = "/* Styles applied to root component */\n.saltCheckboxGroup {\n border: none;\n margin: 0;\n padding: 0;\n}\n\n/* Styles applied to root component if `direction={\"horizontal\"}` */\n.saltCheckboxGroup-horizontal {\n display: flex;\n gap: var(--salt-size-adornmentGap);\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n/* Styles applied to root component if `direction={\"vertical\"}` */\n.saltCheckboxGroup-vertical {\n display: flex;\n gap: var(--salt-size-unit);\n flex-direction: column;\n}\n\n.saltCheckboxGroup-noWrap {\n flex-wrap: nowrap;\n}\n\n.saltCheckboxGroup-noWrap .saltCheckbox {\n white-space: break-spaces;\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=CheckboxGroup.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxGroup.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var clsx = require('clsx');
7
+ var React = require('react');
8
+ var makePrefixer = require('../utils/makePrefixer.js');
9
+ var useControlled = require('../utils/useControlled.js');
10
+ require('../utils/useFloatingUI.js');
11
+ require('../utils/useId.js');
12
+ require('../salt-provider/SaltProvider.js');
13
+ require('../viewport/ViewportProvider.js');
14
+ var CheckboxGroupContext = require('./internal/CheckboxGroupContext.js');
15
+ require('./CheckboxGroup.css.js');
16
+
17
+ const withBaseName = makePrefixer.makePrefixer("saltCheckboxGroup");
18
+ const CheckboxGroup = React.forwardRef(function CheckboxGroup2({
19
+ checkedValues: checkedValuesProp,
20
+ defaultCheckedValues = [],
21
+ children,
22
+ className,
23
+ direction = "vertical",
24
+ name,
25
+ onChange,
26
+ wrap,
27
+ ...other
28
+ }, ref) {
29
+ const [checkedValues, setCheckedValues] = useControlled.useControlled({
30
+ controlled: checkedValuesProp,
31
+ default: defaultCheckedValues,
32
+ name: "CheckboxGroup",
33
+ state: "checkedValues"
34
+ });
35
+ const handleChange = (event) => {
36
+ setCheckedValues((oldValues = []) => {
37
+ const name2 = event.target.value;
38
+ const isSelected = oldValues.includes(name2);
39
+ return isSelected ? oldValues.filter((value) => value !== name2) : oldValues.concat(name2);
40
+ });
41
+ onChange == null ? void 0 : onChange(event);
42
+ };
43
+ return /* @__PURE__ */ jsxRuntime.jsx("fieldset", {
44
+ className: clsx.clsx(
45
+ withBaseName(),
46
+ withBaseName(direction),
47
+ {
48
+ [withBaseName("noWrap")]: !wrap
49
+ },
50
+ className
51
+ ),
52
+ ref,
53
+ ...other,
54
+ children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxGroupContext.CheckboxGroupContext.Provider, {
55
+ value: { name, onChange: handleChange, checkedValues },
56
+ children
57
+ })
58
+ });
59
+ });
60
+
61
+ exports.CheckboxGroup = CheckboxGroup;
62
+ //# sourceMappingURL=CheckboxGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxGroup.js","sources":["../src/checkbox/CheckboxGroup.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"../utils\";\nimport { CheckboxGroupContext } from \"./internal/CheckboxGroupContext\";\n\nimport \"./CheckboxGroup.css\";\n\nexport interface CheckboxGroupProps\n extends Omit<ComponentPropsWithoutRef<\"fieldset\">, \"onChange\"> {\n /**\n * The current checked options.\n */\n checkedValues?: string[];\n /**\n * The default selected options for un-controlled component.\n */\n defaultCheckedValues?: string[];\n /**\n * Display group of elements in a compact row.\n */\n direction?: \"horizontal\" | \"vertical\";\n /**\n * The name used to reference the value of the control.\n */\n name?: string;\n /**\n * Callback fired when a checkbox is clicked.\n * `event.target.value` returns the value of the checkbox that was clicked.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Only for horizontal direction. When `true` the text in radio button label will wrap to fit within the container. Otherwise, the checkboxes will wrap onto the next line.\n */\n wrap?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltCheckboxGroup\");\n\nexport const CheckboxGroup = forwardRef<\n HTMLFieldSetElement,\n CheckboxGroupProps\n>(function CheckboxGroup(\n {\n checkedValues: checkedValuesProp,\n defaultCheckedValues = [],\n children,\n className,\n direction = \"vertical\",\n name,\n onChange,\n wrap,\n ...other\n },\n ref\n) {\n const [checkedValues, setCheckedValues] = useControlled({\n controlled: checkedValuesProp,\n default: defaultCheckedValues,\n name: \"CheckboxGroup\",\n state: \"checkedValues\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setCheckedValues((oldValues: string[] = []) => {\n const name = event.target.value;\n const isSelected = oldValues.includes(name);\n\n return isSelected\n ? oldValues.filter((value) => value !== name)\n : oldValues.concat(name);\n });\n\n onChange?.(event);\n };\n\n return (\n <fieldset\n className={clsx(\n withBaseName(),\n withBaseName(direction),\n {\n [withBaseName(\"noWrap\")]: !wrap,\n },\n className\n )}\n ref={ref}\n {...other}\n >\n <CheckboxGroupContext.Provider\n value={{ name, onChange: handleChange, checkedValues }}\n >\n {children}\n </CheckboxGroupContext.Provider>\n </fieldset>\n );\n});\n"],"names":["makePrefixer","forwardRef","CheckboxGroup","useControlled","name","jsx","clsx","CheckboxGroupContext"],"mappings":";;;;;;;;;;;;;;;;AAyCA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA,CAAA;AAExC,MAAA,aAAA,GAAgBC,gBAG3B,CAAA,SAASC,cACT,CAAA;AAAA,EACE,aAAe,EAAA,iBAAA;AAAA,EACf,uBAAuB,EAAC;AAAA,EACxB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAY,GAAA,UAAA;AAAA,EACZ,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACG,GAAA,KAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,2BAAc,CAAA;AAAA,IACtD,UAAY,EAAA,iBAAA;AAAA,IACZ,OAAS,EAAA,oBAAA;AAAA,IACT,IAAM,EAAA,eAAA;AAAA,IACN,KAAO,EAAA,eAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,YAAA,GAAe,CAAC,KAAyC,KAAA;AAC7D,IAAiB,gBAAA,CAAA,CAAC,SAAsB,GAAA,EAAO,KAAA;AAC7C,MAAMC,MAAAA,KAAAA,GAAO,MAAM,MAAO,CAAA,KAAA,CAAA;AAC1B,MAAM,MAAA,UAAA,GAAa,SAAU,CAAA,QAAA,CAASA,KAAI,CAAA,CAAA;AAE1C,MAAO,OAAA,UAAA,GACH,SAAU,CAAA,MAAA,CAAO,CAAC,KAAA,KAAU,UAAUA,KAAI,CAAA,GAC1C,SAAU,CAAA,MAAA,CAAOA,KAAI,CAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;AAED,IAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACb,CAAA;AAEA,EAAA,uBACGC,cAAA,CAAA,UAAA,EAAA;AAAA,IACC,SAAW,EAAAC,SAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb,aAAa,SAAS,CAAA;AAAA,MACtB;AAAA,QACE,CAAC,YAAA,CAAa,QAAQ,CAAA,GAAI,CAAC,IAAA;AAAA,OAC7B;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IACA,GAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAD,cAAA,CAACE,0CAAqB,QAArB,EAAA;AAAA,MACC,KAAO,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,cAAc,aAAc,EAAA;AAAA,MAEpD,QAAA;AAAA,KACH,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = "/* Styles applied to root component */\n\n.saltCheckboxIcon {\n --checkbox-density-bar-y: 6px;\n --checkbox-density-bar-height: 2px;\n\n --checkbox-borderWidth: var(--salt-size-border);\n --checkbox-size: var(--salt-size-selectable);\n --checkbox-box-offset: calc(var(--checkbox-borderWidth) / 2);\n /* 14px is used to match the svg's viewbox */\n --checkbox-box-size: calc(100% - var(--checkbox-borderWidth));\n --checkbox-icon-tick-fill: var(--saltCheckbox-icon-tick-color, var(--salt-selectable-primary-foreground-selected));\n\n fill: var(--saltCheckbox-icon-fill, var(--salt-selectable-background));\n height: var(--saltCheckbox-icon-size, var(--checkbox-size));\n min-height: var(--saltCheckbox-icon-size, var(--checkbox-size));\n stroke: var(--saltCheckbox-icon-stroke, var(--salt-selectable-foreground));\n stroke-width: var(--saltCheckbox-icon-strokeWidth, var(--checkbox-borderWidth));\n width: var(--saltCheckbox-icon-size, var(--checkbox-size));\n min-width: var(--saltCheckbox-icon-size, var(--checkbox-size));\n background: var(--salt-container-primary-background);\n}\n\n/* Styles applied to root component on hover */\n.saltCheckbox:hover .saltCheckboxIcon {\n stroke: var(--saltCheckbox-icon-stroke, var(--salt-selectable-foreground-hover));\n background: var(--salt-selectable-background-hover);\n}\n\n/* Styles applied if `disabled={true}` */\n.saltCheckbox-disabled:hover .saltCheckboxIcon,\n.saltCheckboxIcon-disabled {\n stroke: var(--saltCheckbox-icon-stroke-disabled, var(--salt-selectable-foreground-disabled));\n background: var(--salt-selectable-background);\n}\n\n/* Styles applied if `error={true}` */\n.saltCheckbox-error .saltCheckboxIcon,\n.saltCheckbox-error:hover .saltCheckboxIcon {\n stroke: var(--saltCheckbox-icon-stroke-error, var(--salt-status-error-foreground));\n}\n\n/* Styles applied if `error={true}` on hover */\n.saltCheckbox-error:hover .saltCheckboxIcon {\n background: var(--salt-status-error-background);\n}\n\n/* Styles applied if `error={true}` and `disabled={true}` */\n.saltCheckbox-error.saltCheckbox-disabled .saltCheckboxIcon,\n.saltCheckbox-error.saltCheckbox-disabled:hover .saltCheckboxIcon {\n stroke: var(--saltCheckbox-icon-stroke-error, var(--salt-status-error-foreground-disabled));\n background: var(--salt-selectable-background);\n}\n\n/* Styles applied if `checked={true}` */\n.saltCheckboxIcon-checked {\n fill: var(--saltCheckbox-icon-fill-checked, var(--salt-selectable-foreground-selected));\n --checkbox-borderWidth: var(--saltCheckbox-icon-borderWidth-checked, 0px);\n}\n\n/* Styles applied if `checked={true}` and `disabled={true}` */\n.saltCheckboxIcon-checked.saltCheckboxIcon-disabled {\n fill: var(--saltCheckbox-icon-fill-disabled, var(--salt-selectable-foreground-selectedDisabled));\n}\n\n/* Styles applied if `checked={true}` and `error={true}` */\n.saltCheckboxIcon-checked.saltCheckboxIcon-error {\n fill: var(--saltCheckbox-icon-stroke-error, var(--salt-status-error-foreground));\n}\n\n/* Styles applied if `checked={true}`,`error={true}` and `disabled={true}` */\n.saltCheckboxIcon-checked.saltCheckboxIcon-error.saltCheckboxIcon-disabled {\n fill: var(--saltCheckbox-icon-fill-disabled, var(--salt-status-error-foreground-disabled));\n}\n\n/* Styles applied to box */\n.saltCheckboxIcon-box {\n stroke-width: var(--checkbox-borderWidth);\n width: var(--checkbox-box-size);\n height: var(--checkbox-box-size);\n x: var(--checkbox-box-offset);\n y: var(--checkbox-box-offset);\n}\n\n/* Styles applied to icon if `indeterminate={true}` */\n.saltCheckboxIcon-indeterminate {\n stroke: var(--saltCheckbox-icon-stroke, var(--salt-selectable-foreground-selected));\n --checkbox-icon-tick-fill: var(--saltCheckbox-icon-indeterminate-bar-color, var(--salt-selectable-foreground-selected));\n}\n\n/* Styles applied to icon if `indeterminate={true}` on hover */\n.saltCheckbox:hover .saltCheckboxIcon-indeterminate {\n --checkbox-icon-tick-fill: var(--saltCheckbox-icon-stroke, var(--salt-selectable-foreground-hover));\n}\n\n/* Styles applied if `indeterminate={true}` and `disabled={true}` */\n.saltCheckboxIcon-disabled.saltCheckboxIcon-indeterminate {\n stroke: var(--saltCheckbox-icon-stroke-disabled, var(--salt-selectable-foreground-disabled));\n --checkbox-icon-tick-fill: var(--saltCheckbox-icon-indeterminate-bar-color-disabled, var(--salt-selectable-foreground-selectedDisabled));\n}\n\n/* Styles applied if `indeterminate={true}` and `error={true}` */\n.saltCheckboxIcon-error.saltCheckboxIcon-indeterminate,\n.saltCheckbox:hover .saltCheckboxIcon-error.saltCheckboxIcon-indeterminate {\n --checkbox-icon-tick-fill: var(--saltCheckbox-icon-stroke-error, var(--salt-status-error-foreground));\n}\n\n/* Styles applied if `indeterminate={true}`,`disabled={true}` and `error={true}` */\n.saltCheckboxIcon-error.saltCheckboxIcon-disabled.saltCheckboxIcon-indeterminate {\n --checkbox-icon-tick-fill: var(--saltCheckbox-icon-stroke-error, var(--salt-status-error-foreground-disabled));\n}\n\n/* Styles applied to tick */\n.saltCheckboxIcon-tick {\n fill: var(--saltCheckbox-icon-tick-fill, var(--checkbox-icon-tick-fill));\n stroke-width: 0;\n}\n\n/* Styles applied to tick if `indeterminate={true}` */\n.saltCheckboxIcon-indeterminate .saltCheckboxIcon-tick {\n height: var(--saltCheckbox-icon-indeterminate-bar-height, var(--checkbox-density-bar-height));\n y: var(--saltCheckbox-icon-indeterminate-bar-y, var(--checkbox-density-bar-y));\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=CheckboxIcon.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxIcon.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}