@salt-ds/core 1.3.0 → 1.5.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 (181) hide show
  1. package/dist-cjs/packages/core/src/avatar/Avatar.js +11 -3
  2. package/dist-cjs/packages/core/src/avatar/Avatar.js.map +1 -1
  3. package/dist-cjs/packages/core/src/avatar/useAvatarImage.js +38 -0
  4. package/dist-cjs/packages/core/src/avatar/useAvatarImage.js.map +1 -0
  5. package/dist-cjs/packages/core/src/card/Card.css.js +1 -1
  6. package/dist-cjs/packages/core/src/card/Card.js +1 -1
  7. package/dist-cjs/packages/core/src/card/Card.js.map +1 -1
  8. package/dist-cjs/packages/core/src/card/InteractableCard.css.js +9 -0
  9. package/dist-cjs/packages/core/src/card/InteractableCard.css.js.map +1 -0
  10. package/dist-cjs/packages/core/src/card/InteractableCard.js +57 -0
  11. package/dist-cjs/packages/core/src/card/InteractableCard.js.map +1 -0
  12. package/dist-cjs/packages/core/src/card/useInteractableCard.js +63 -0
  13. package/dist-cjs/packages/core/src/card/useInteractableCard.js.map +1 -0
  14. package/dist-cjs/packages/core/src/checkbox/Checkbox.css.js +9 -0
  15. package/dist-cjs/packages/core/src/checkbox/Checkbox.css.js.map +1 -0
  16. package/dist-cjs/packages/core/src/checkbox/Checkbox.js +95 -0
  17. package/dist-cjs/packages/core/src/checkbox/Checkbox.js.map +1 -0
  18. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.css.js +9 -0
  19. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.css.js.map +1 -0
  20. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.js +62 -0
  21. package/dist-cjs/packages/core/src/checkbox/CheckboxGroup.js.map +1 -0
  22. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.css.js +9 -0
  23. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.css.js.map +1 -0
  24. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.js +48 -0
  25. package/dist-cjs/packages/core/src/checkbox/CheckboxIcon.js.map +1 -0
  26. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js +33 -0
  27. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js.map +1 -0
  28. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js +32 -0
  29. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js.map +1 -0
  30. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js +37 -0
  31. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js.map +1 -0
  32. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js +26 -0
  33. package/dist-cjs/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js.map +1 -0
  34. package/dist-cjs/packages/core/src/checkbox/internal/CheckboxGroupContext.js +13 -0
  35. package/dist-cjs/packages/core/src/checkbox/internal/CheckboxGroupContext.js.map +1 -0
  36. package/dist-cjs/packages/core/src/checkbox/internal/useCheckboxGroup.js +13 -0
  37. package/dist-cjs/packages/core/src/checkbox/internal/useCheckboxGroup.js.map +1 -0
  38. package/dist-cjs/packages/core/src/flex-item/FlexItem.css.js +1 -1
  39. package/dist-cjs/packages/core/src/flex-item/FlexItem.js +3 -0
  40. package/dist-cjs/packages/core/src/flex-item/FlexItem.js.map +1 -1
  41. package/dist-cjs/packages/core/src/index.js +18 -0
  42. package/dist-cjs/packages/core/src/index.js.map +1 -1
  43. package/dist-cjs/packages/core/src/link/Link.css.js +1 -1
  44. package/dist-cjs/packages/core/src/link/Link.js +1 -1
  45. package/dist-cjs/packages/core/src/link/Link.js.map +1 -1
  46. package/dist-cjs/packages/core/src/panel/Panel.css.js +1 -1
  47. package/dist-cjs/packages/core/src/radio-button/RadioButton.css.js +9 -0
  48. package/dist-cjs/packages/core/src/radio-button/RadioButton.css.js.map +1 -0
  49. package/dist-cjs/packages/core/src/radio-button/RadioButton.js +86 -0
  50. package/dist-cjs/packages/core/src/radio-button/RadioButton.js.map +1 -0
  51. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.css.js +9 -0
  52. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.css.js.map +1 -0
  53. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.js +61 -0
  54. package/dist-cjs/packages/core/src/radio-button/RadioButtonGroup.js.map +1 -0
  55. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.css.js +9 -0
  56. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.css.js.map +1 -0
  57. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.js +48 -0
  58. package/dist-cjs/packages/core/src/radio-button/RadioButtonIcon.js.map +1 -0
  59. package/dist-cjs/packages/core/src/radio-button/internal/RadioGroupContext.js +18 -0
  60. package/dist-cjs/packages/core/src/radio-button/internal/RadioGroupContext.js.map +1 -0
  61. package/dist-cjs/packages/core/src/radio-button/internal/useRadioGroup.js +13 -0
  62. package/dist-cjs/packages/core/src/radio-button/internal/useRadioGroup.js.map +1 -0
  63. package/dist-cjs/packages/core/src/spinner/Spinner.css.js +1 -1
  64. package/dist-cjs/packages/core/src/text/Text.css.js +1 -1
  65. package/dist-cjs/packages/core/src/tooltip/Tooltip.css.js +1 -1
  66. package/dist-cjs/packages/core/src/tooltip/Tooltip.js +12 -6
  67. package/dist-cjs/packages/core/src/tooltip/Tooltip.js.map +1 -1
  68. package/dist-cjs/packages/core/src/tooltip/useTooltip.js +1 -0
  69. package/dist-cjs/packages/core/src/tooltip/useTooltip.js.map +1 -1
  70. package/dist-cjs/packages/core/src/utils/capitalize.js +10 -0
  71. package/dist-cjs/packages/core/src/utils/capitalize.js.map +1 -0
  72. package/dist-cjs/packages/core/src/utils/useFloatingUI.js.map +1 -1
  73. package/dist-es/packages/core/src/avatar/Avatar.js +11 -3
  74. package/dist-es/packages/core/src/avatar/Avatar.js.map +1 -1
  75. package/dist-es/packages/core/src/avatar/useAvatarImage.js +34 -0
  76. package/dist-es/packages/core/src/avatar/useAvatarImage.js.map +1 -0
  77. package/dist-es/packages/core/src/card/Card.css.js +1 -1
  78. package/dist-es/packages/core/src/card/Card.js +1 -1
  79. package/dist-es/packages/core/src/card/Card.js.map +1 -1
  80. package/dist-es/packages/core/src/card/InteractableCard.css.js +7 -0
  81. package/dist-es/packages/core/src/card/InteractableCard.css.js.map +1 -0
  82. package/dist-es/packages/core/src/card/InteractableCard.js +53 -0
  83. package/dist-es/packages/core/src/card/InteractableCard.js.map +1 -0
  84. package/dist-es/packages/core/src/card/useInteractableCard.js +59 -0
  85. package/dist-es/packages/core/src/card/useInteractableCard.js.map +1 -0
  86. package/dist-es/packages/core/src/checkbox/Checkbox.css.js +7 -0
  87. package/dist-es/packages/core/src/checkbox/Checkbox.css.js.map +1 -0
  88. package/dist-es/packages/core/src/checkbox/Checkbox.js +91 -0
  89. package/dist-es/packages/core/src/checkbox/Checkbox.js.map +1 -0
  90. package/dist-es/packages/core/src/checkbox/CheckboxGroup.css.js +7 -0
  91. package/dist-es/packages/core/src/checkbox/CheckboxGroup.css.js.map +1 -0
  92. package/dist-es/packages/core/src/checkbox/CheckboxGroup.js +58 -0
  93. package/dist-es/packages/core/src/checkbox/CheckboxGroup.js.map +1 -0
  94. package/dist-es/packages/core/src/checkbox/CheckboxIcon.css.js +7 -0
  95. package/dist-es/packages/core/src/checkbox/CheckboxIcon.css.js.map +1 -0
  96. package/dist-es/packages/core/src/checkbox/CheckboxIcon.js +44 -0
  97. package/dist-es/packages/core/src/checkbox/CheckboxIcon.js.map +1 -0
  98. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js +29 -0
  99. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIcon.js.map +1 -0
  100. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js +28 -0
  101. package/dist-es/packages/core/src/checkbox/assets/CheckboxCheckedIconHD.js.map +1 -0
  102. package/dist-es/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js +33 -0
  103. package/dist-es/packages/core/src/checkbox/assets/CheckboxIndeterminateIcon.js.map +1 -0
  104. package/dist-es/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js +22 -0
  105. package/dist-es/packages/core/src/checkbox/assets/CheckboxUncheckedIcon.js.map +1 -0
  106. package/dist-es/packages/core/src/checkbox/internal/CheckboxGroupContext.js +9 -0
  107. package/dist-es/packages/core/src/checkbox/internal/CheckboxGroupContext.js.map +1 -0
  108. package/dist-es/packages/core/src/checkbox/internal/useCheckboxGroup.js +9 -0
  109. package/dist-es/packages/core/src/checkbox/internal/useCheckboxGroup.js.map +1 -0
  110. package/dist-es/packages/core/src/flex-item/FlexItem.css.js +1 -1
  111. package/dist-es/packages/core/src/flex-item/FlexItem.js +3 -0
  112. package/dist-es/packages/core/src/flex-item/FlexItem.js.map +1 -1
  113. package/dist-es/packages/core/src/index.js +9 -0
  114. package/dist-es/packages/core/src/index.js.map +1 -1
  115. package/dist-es/packages/core/src/link/Link.css.js +1 -1
  116. package/dist-es/packages/core/src/link/Link.js +1 -1
  117. package/dist-es/packages/core/src/link/Link.js.map +1 -1
  118. package/dist-es/packages/core/src/panel/Panel.css.js +1 -1
  119. package/dist-es/packages/core/src/radio-button/RadioButton.css.js +7 -0
  120. package/dist-es/packages/core/src/radio-button/RadioButton.css.js.map +1 -0
  121. package/dist-es/packages/core/src/radio-button/RadioButton.js +82 -0
  122. package/dist-es/packages/core/src/radio-button/RadioButton.js.map +1 -0
  123. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.css.js +7 -0
  124. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.css.js.map +1 -0
  125. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.js +57 -0
  126. package/dist-es/packages/core/src/radio-button/RadioButtonGroup.js.map +1 -0
  127. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.css.js +7 -0
  128. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.css.js.map +1 -0
  129. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.js +44 -0
  130. package/dist-es/packages/core/src/radio-button/RadioButtonIcon.js.map +1 -0
  131. package/dist-es/packages/core/src/radio-button/internal/RadioGroupContext.js +14 -0
  132. package/dist-es/packages/core/src/radio-button/internal/RadioGroupContext.js.map +1 -0
  133. package/dist-es/packages/core/src/radio-button/internal/useRadioGroup.js +9 -0
  134. package/dist-es/packages/core/src/radio-button/internal/useRadioGroup.js.map +1 -0
  135. package/dist-es/packages/core/src/spinner/Spinner.css.js +1 -1
  136. package/dist-es/packages/core/src/text/Text.css.js +1 -1
  137. package/dist-es/packages/core/src/tooltip/Tooltip.css.js +1 -1
  138. package/dist-es/packages/core/src/tooltip/Tooltip.js +12 -6
  139. package/dist-es/packages/core/src/tooltip/Tooltip.js.map +1 -1
  140. package/dist-es/packages/core/src/tooltip/useTooltip.js +1 -0
  141. package/dist-es/packages/core/src/tooltip/useTooltip.js.map +1 -1
  142. package/dist-es/packages/core/src/utils/capitalize.js +6 -0
  143. package/dist-es/packages/core/src/utils/capitalize.js.map +1 -0
  144. package/dist-es/packages/core/src/utils/useFloatingUI.js.map +1 -1
  145. package/dist-types/avatar/index.d.ts +1 -0
  146. package/dist-types/avatar/useAvatarImage.d.ts +2 -0
  147. package/dist-types/card/Card.d.ts +4 -4
  148. package/dist-types/card/InteractableCard.d.ts +14 -0
  149. package/dist-types/card/index.d.ts +1 -0
  150. package/dist-types/card/useInteractableCard.d.ts +21 -0
  151. package/dist-types/checkbox/Checkbox.d.ts +56 -0
  152. package/dist-types/checkbox/CheckboxGroup.d.ts +30 -0
  153. package/dist-types/checkbox/CheckboxIcon.d.ts +10 -0
  154. package/dist-types/checkbox/assets/CheckboxCheckedIcon.d.ts +4 -0
  155. package/dist-types/checkbox/assets/CheckboxCheckedIconHD.d.ts +4 -0
  156. package/dist-types/checkbox/assets/CheckboxIndeterminateIcon.d.ts +4 -0
  157. package/dist-types/checkbox/assets/CheckboxUncheckedIcon.d.ts +4 -0
  158. package/dist-types/checkbox/assets/index.d.ts +4 -0
  159. package/dist-types/checkbox/index.d.ts +3 -0
  160. package/dist-types/checkbox/internal/CheckboxGroupContext.d.ts +9 -0
  161. package/dist-types/checkbox/internal/useCheckboxGroup.d.ts +2 -0
  162. package/dist-types/flex-item/FlexItem.d.ts +7 -4
  163. package/dist-types/index.d.ts +2 -0
  164. package/dist-types/link/Link.d.ts +1 -1
  165. package/dist-types/radio-button/RadioButton.d.ts +45 -0
  166. package/dist-types/radio-button/RadioButtonGroup.d.ts +29 -0
  167. package/dist-types/radio-button/RadioButtonIcon.d.ts +11 -0
  168. package/dist-types/radio-button/index.d.ts +3 -0
  169. package/dist-types/radio-button/internal/RadioGroupContext.d.ts +7 -0
  170. package/dist-types/radio-button/internal/useRadioGroup.d.ts +1 -0
  171. package/dist-types/tooltip/Tooltip.d.ts +10 -10
  172. package/dist-types/tooltip/useTooltip.d.ts +19 -1
  173. package/dist-types/utils/capitalize.d.ts +1 -0
  174. package/dist-types/utils/index.d.ts +1 -0
  175. package/dist-types/utils/useFloatingUI.d.ts +3 -3
  176. package/package.json +2 -2
  177. package/dist-cjs/packages/core/src/avatar/internal/useLoaded.js +0 -30
  178. package/dist-cjs/packages/core/src/avatar/internal/useLoaded.js.map +0 -1
  179. package/dist-es/packages/core/src/avatar/internal/useLoaded.js +0 -26
  180. package/dist-es/packages/core/src/avatar/internal/useLoaded.js.map +0 -1
  181. package/dist-types/avatar/internal/useLoaded.d.ts +0 -2
@@ -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":[],"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;;;;"}
@@ -0,0 +1,7 @@
1
+ import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ 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";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=Checkbox.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,91 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { clsx } from 'clsx';
3
+ import { forwardRef } from 'react';
4
+ import { makePrefixer } from '../utils/makePrefixer.js';
5
+ import { useControlled } from '../utils/useControlled.js';
6
+ import '../utils/useFloatingUI.js';
7
+ import '../utils/useId.js';
8
+ import '../salt-provider/SaltProvider.js';
9
+ import '../viewport/ViewportProvider.js';
10
+ import { CheckboxIcon } from './CheckboxIcon.js';
11
+ import './Checkbox.css.js';
12
+ import { useCheckboxGroup } from './internal/useCheckboxGroup.js';
13
+
14
+ const withBaseName = makePrefixer("saltCheckbox");
15
+ const Checkbox = forwardRef(
16
+ function Checkbox2({
17
+ checked: checkedProp,
18
+ className,
19
+ defaultChecked,
20
+ disabled,
21
+ error,
22
+ indeterminate,
23
+ inputProps,
24
+ label,
25
+ name,
26
+ onBlur,
27
+ onChange,
28
+ onFocus,
29
+ value,
30
+ ...rest
31
+ }, ref) {
32
+ var _a;
33
+ const checkboxGroup = useCheckboxGroup();
34
+ const handleChange = (event) => {
35
+ var _a2;
36
+ if (event.nativeEvent.defaultPrevented) {
37
+ return;
38
+ }
39
+ const value2 = event.target.checked;
40
+ setChecked(value2);
41
+ onChange == null ? void 0 : onChange(event);
42
+ (_a2 = checkboxGroup.onChange) == null ? void 0 : _a2.call(checkboxGroup, event);
43
+ };
44
+ const checkboxGroupChecked = checkedProp == null && value != null ? (_a = checkboxGroup.checkedValues) == null ? void 0 : _a.includes(value) : checkedProp;
45
+ const [checked, setChecked] = useControlled({
46
+ controlled: checkboxGroupChecked,
47
+ default: Boolean(defaultChecked),
48
+ name: "Checkbox",
49
+ state: "checked"
50
+ });
51
+ return /* @__PURE__ */ jsxs("label", {
52
+ className: clsx(
53
+ withBaseName(),
54
+ {
55
+ [withBaseName("disabled")]: disabled,
56
+ [withBaseName("error")]: error
57
+ },
58
+ className
59
+ ),
60
+ ref,
61
+ ...rest,
62
+ children: [
63
+ /* @__PURE__ */ jsx("input", {
64
+ "aria-checked": indeterminate ? "mixed" : void 0,
65
+ name,
66
+ value,
67
+ ...inputProps,
68
+ checked,
69
+ className: withBaseName("input"),
70
+ "data-indeterminate": indeterminate,
71
+ defaultChecked,
72
+ disabled,
73
+ onBlur,
74
+ onChange: handleChange,
75
+ onFocus,
76
+ type: "checkbox"
77
+ }),
78
+ /* @__PURE__ */ jsx(CheckboxIcon, {
79
+ checked,
80
+ disabled,
81
+ error,
82
+ indeterminate
83
+ }),
84
+ label
85
+ ]
86
+ });
87
+ }
88
+ );
89
+
90
+ export { Checkbox };
91
+ //# 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":["Checkbox","_a","value"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AA4DzC,MAAM,QAAW,GAAA,UAAA;AAAA,EACtB,SAASA,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,gBAAgB,gBAAiB,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,GAAI,aAAc,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,uBACG,IAAA,CAAA,OAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;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,wBAAC,GAAA,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,wBACC,GAAA,CAAA,YAAA,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,7 @@
1
+ import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ 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";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=CheckboxGroup.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxGroup.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,58 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { clsx } from 'clsx';
3
+ import { forwardRef } from 'react';
4
+ import { makePrefixer } from '../utils/makePrefixer.js';
5
+ import { useControlled } from '../utils/useControlled.js';
6
+ import '../utils/useFloatingUI.js';
7
+ import '../utils/useId.js';
8
+ import '../salt-provider/SaltProvider.js';
9
+ import '../viewport/ViewportProvider.js';
10
+ import { CheckboxGroupContext } from './internal/CheckboxGroupContext.js';
11
+ import './CheckboxGroup.css.js';
12
+
13
+ const withBaseName = makePrefixer("saltCheckboxGroup");
14
+ const CheckboxGroup = forwardRef(function CheckboxGroup2({
15
+ checkedValues: checkedValuesProp,
16
+ defaultCheckedValues = [],
17
+ children,
18
+ className,
19
+ direction = "vertical",
20
+ name,
21
+ onChange,
22
+ wrap,
23
+ ...other
24
+ }, ref) {
25
+ const [checkedValues, setCheckedValues] = useControlled({
26
+ controlled: checkedValuesProp,
27
+ default: defaultCheckedValues,
28
+ name: "CheckboxGroup",
29
+ state: "checkedValues"
30
+ });
31
+ const handleChange = (event) => {
32
+ setCheckedValues((oldValues = []) => {
33
+ const name2 = event.target.value;
34
+ const isSelected = oldValues.includes(name2);
35
+ return isSelected ? oldValues.filter((value) => value !== name2) : oldValues.concat(name2);
36
+ });
37
+ onChange == null ? void 0 : onChange(event);
38
+ };
39
+ return /* @__PURE__ */ jsx("fieldset", {
40
+ className: clsx(
41
+ withBaseName(),
42
+ withBaseName(direction),
43
+ {
44
+ [withBaseName("noWrap")]: !wrap
45
+ },
46
+ className
47
+ ),
48
+ ref,
49
+ ...other,
50
+ children: /* @__PURE__ */ jsx(CheckboxGroupContext.Provider, {
51
+ value: { name, onChange: handleChange, checkedValues },
52
+ children
53
+ })
54
+ });
55
+ });
56
+
57
+ export { CheckboxGroup };
58
+ //# 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":["CheckboxGroup","name"],"mappings":";;;;;;;;;;;;AAyCA,MAAM,YAAA,GAAe,aAAa,mBAAmB,CAAA,CAAA;AAExC,MAAA,aAAA,GAAgB,UAG3B,CAAA,SAASA,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,GAAI,aAAc,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,uBACG,GAAA,CAAA,UAAA,EAAA;AAAA,IACC,SAAW,EAAA,IAAA;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,kBAAA,GAAA,CAAC,qBAAqB,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,7 @@
1
+ import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ 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-emphasize);\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";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=CheckboxIcon.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxIcon.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,44 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { clsx } from 'clsx';
3
+ import 'react';
4
+ import { makePrefixer } from '../utils/makePrefixer.js';
5
+ import '../utils/useFloatingUI.js';
6
+ import '../utils/useId.js';
7
+ import { useDensity } from '../salt-provider/SaltProvider.js';
8
+ import '../viewport/ViewportProvider.js';
9
+ import { CheckboxUncheckedIcon } from './assets/CheckboxUncheckedIcon.js';
10
+ import { CheckboxCheckedIcon } from './assets/CheckboxCheckedIcon.js';
11
+ import { CheckboxCheckedIconHD } from './assets/CheckboxCheckedIconHD.js';
12
+ import { CheckboxIndeterminateIcon } from './assets/CheckboxIndeterminateIcon.js';
13
+ import './CheckboxIcon.css.js';
14
+
15
+ const withBaseName = makePrefixer("saltCheckboxIcon");
16
+ const CheckboxIcon = ({
17
+ checked = false,
18
+ className: classNameProp,
19
+ disabled,
20
+ error,
21
+ indeterminate
22
+ }) => {
23
+ const className = clsx(
24
+ withBaseName(),
25
+ {
26
+ [withBaseName("disabled")]: disabled,
27
+ [withBaseName("error")]: error
28
+ },
29
+ classNameProp
30
+ );
31
+ const density = useDensity();
32
+ return indeterminate ? /* @__PURE__ */ jsx(CheckboxIndeterminateIcon, {
33
+ className: clsx(className, withBaseName("indeterminate"))
34
+ }) : checked ? density === "high" ? /* @__PURE__ */ jsx(CheckboxCheckedIconHD, {
35
+ className: clsx(className, withBaseName("checked"))
36
+ }) : /* @__PURE__ */ jsx(CheckboxCheckedIcon, {
37
+ className: clsx(className, withBaseName("checked"))
38
+ }) : /* @__PURE__ */ jsx(CheckboxUncheckedIcon, {
39
+ className
40
+ });
41
+ };
42
+
43
+ export { CheckboxIcon };
44
+ //# sourceMappingURL=CheckboxIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxIcon.js","sources":["../src/checkbox/CheckboxIcon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { makePrefixer } from \"../utils\";\nimport {\n CheckboxCheckedIcon,\n CheckboxCheckedIconHD,\n CheckboxIndeterminateIcon,\n CheckboxUncheckedIcon,\n} from \"./assets\";\n\nimport \"./CheckboxIcon.css\";\nimport { useDensity } from \"../salt-provider\";\n\nexport interface CheckboxIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n error?: boolean;\n indeterminate?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltCheckboxIcon\");\n\nexport const CheckboxIcon = ({\n checked = false,\n className: classNameProp,\n disabled,\n error,\n indeterminate,\n}: CheckboxIconProps): JSX.Element => {\n const className = clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"error\")]: error,\n },\n classNameProp\n );\n\n // A different CheckboxCheckedIcon is rendered if the density is set to high\n const density = useDensity();\n\n return indeterminate ? (\n <CheckboxIndeterminateIcon\n className={clsx(className, withBaseName(\"indeterminate\"))}\n />\n ) : checked ? (\n density === \"high\" ? (\n <CheckboxCheckedIconHD\n className={clsx(className, withBaseName(\"checked\"))}\n />\n ) : (\n <CheckboxCheckedIcon\n className={clsx(className, withBaseName(\"checked\"))}\n />\n )\n ) : (\n <CheckboxUncheckedIcon className={className} />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAoBA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA,CAAA;AAE7C,MAAM,eAAe,CAAC;AAAA,EAC3B,OAAU,GAAA,KAAA;AAAA,EACV,SAAW,EAAA,aAAA;AAAA,EACX,QAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AACF,CAAsC,KAAA;AACpC,EAAA,MAAM,SAAY,GAAA,IAAA;AAAA,IAChB,YAAa,EAAA;AAAA,IACb;AAAA,MACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,MAC5B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,KAC3B;AAAA,IACA,aAAA;AAAA,GACF,CAAA;AAGA,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAE3B,EAAA,OAAO,gCACJ,GAAA,CAAA,yBAAA,EAAA;AAAA,IACC,SAAW,EAAA,IAAA,CAAK,SAAW,EAAA,YAAA,CAAa,eAAe,CAAC,CAAA;AAAA,GAC1D,CACE,GAAA,OAAA,GACF,OAAY,KAAA,MAAA,mBACT,GAAA,CAAA,qBAAA,EAAA;AAAA,IACC,SAAW,EAAA,IAAA,CAAK,SAAW,EAAA,YAAA,CAAa,SAAS,CAAC,CAAA;AAAA,GACpD,oBAEC,GAAA,CAAA,mBAAA,EAAA;AAAA,IACC,SAAW,EAAA,IAAA,CAAK,SAAW,EAAA,YAAA,CAAa,SAAS,CAAC,CAAA;AAAA,GACpD,oBAGD,GAAA,CAAA,qBAAA,EAAA;AAAA,IAAsB,SAAA;AAAA,GAAsB,CAAA,CAAA;AAEjD;;;;"}
@@ -0,0 +1,29 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+
3
+ function CheckboxCheckedIcon({
4
+ className
5
+ }) {
6
+ return /* @__PURE__ */ jsx("svg", {
7
+ "aria-hidden": "true",
8
+ className,
9
+ focusable: "false",
10
+ shapeRendering: "geometricPrecision",
11
+ viewBox: "0 0 14 14",
12
+ children: /* @__PURE__ */ jsxs("g", {
13
+ fillRule: "evenodd",
14
+ children: [
15
+ /* @__PURE__ */ jsx("rect", {
16
+ className: `saltCheckboxIcon-box`
17
+ }),
18
+ /* @__PURE__ */ jsx("polygon", {
19
+ className: `saltCheckboxIcon-tick`,
20
+ fillRule: "nonzero",
21
+ points: "12 4.22226066 10.6259221 3 5.58277771 8.37894955 3.3179086 6.13993399 2 7.40754746 5.63993779 11"
22
+ })
23
+ ]
24
+ })
25
+ });
26
+ }
27
+
28
+ export { CheckboxCheckedIcon };
29
+ //# sourceMappingURL=CheckboxCheckedIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxCheckedIcon.js","sources":["../src/checkbox/assets/CheckboxCheckedIcon.tsx"],"sourcesContent":["export function CheckboxCheckedIcon({\n className,\n}: {\n className: string;\n}): JSX.Element {\n return (\n <svg\n aria-hidden=\"true\"\n className={className}\n focusable=\"false\"\n shapeRendering=\"geometricPrecision\"\n viewBox=\"0 0 14 14\"\n >\n <g fillRule=\"evenodd\">\n <rect className={`saltCheckboxIcon-box`} />\n <polygon\n className={`saltCheckboxIcon-tick`}\n fillRule=\"nonzero\"\n points=\"12 4.22226066 10.6259221 3 5.58277771 8.37894955 3.3179086 6.13993399 2 7.40754746 5.63993779 11\"\n />\n </g>\n </svg>\n );\n}\n"],"names":[],"mappings":";;AAAO,SAAS,mBAAoB,CAAA;AAAA,EAClC,SAAA;AACF,CAEgB,EAAA;AACd,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAA;AAAA,IACA,SAAU,EAAA,OAAA;AAAA,IACV,cAAe,EAAA,oBAAA;AAAA,IACf,OAAQ,EAAA,WAAA;AAAA,IAER,QAAC,kBAAA,IAAA,CAAA,GAAA,EAAA;AAAA,MAAE,QAAS,EAAA,SAAA;AAAA,MACV,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAW,EAAA,CAAA,oBAAA,CAAA;AAAA,SAAwB,CAAA;AAAA,wBACxC,GAAA,CAAA,SAAA,EAAA;AAAA,UACC,SAAW,EAAA,CAAA,qBAAA,CAAA;AAAA,UACX,QAAS,EAAA,SAAA;AAAA,UACT,MAAO,EAAA,kGAAA;AAAA,SACT,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,28 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+
3
+ function CheckboxCheckedIconHD({
4
+ className
5
+ }) {
6
+ return /* @__PURE__ */ jsx("svg", {
7
+ "aria-hidden": "true",
8
+ className,
9
+ focusable: "false",
10
+ shapeRendering: "geometricPrecision",
11
+ viewBox: "0 0 12 12",
12
+ children: /* @__PURE__ */ jsxs("g", {
13
+ fillRule: "evenodd",
14
+ children: [
15
+ /* @__PURE__ */ jsx("rect", {
16
+ className: `saltCheckboxIcon-box`
17
+ }),
18
+ /* @__PURE__ */ jsx("path", {
19
+ className: `saltCheckboxIcon-tick`,
20
+ d: "m10 3.70547L4.83651 9.27702L2 6.6259L2.70868 5.86766L4.78375 7.8071L9.23877 3L10 3.70547z"
21
+ })
22
+ ]
23
+ })
24
+ });
25
+ }
26
+
27
+ export { CheckboxCheckedIconHD };
28
+ //# sourceMappingURL=CheckboxCheckedIconHD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxCheckedIconHD.js","sources":["../src/checkbox/assets/CheckboxCheckedIconHD.tsx"],"sourcesContent":["// This icon is used for the high density checkbox\nexport function CheckboxCheckedIconHD({\n className,\n}: {\n className: string;\n}): JSX.Element {\n return (\n <svg\n aria-hidden=\"true\"\n className={className}\n focusable=\"false\"\n shapeRendering=\"geometricPrecision\"\n viewBox=\"0 0 12 12\"\n >\n <g fillRule=\"evenodd\">\n <rect className={`saltCheckboxIcon-box`} />\n <path\n className={`saltCheckboxIcon-tick`}\n d=\"m10 3.70547L4.83651 9.27702L2 6.6259L2.70868 5.86766L4.78375 7.8071L9.23877 3L10 3.70547z\"\n />\n </g>\n </svg>\n );\n}\n"],"names":[],"mappings":";;AACO,SAAS,qBAAsB,CAAA;AAAA,EACpC,SAAA;AACF,CAEgB,EAAA;AACd,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAA;AAAA,IACA,SAAU,EAAA,OAAA;AAAA,IACV,cAAe,EAAA,oBAAA;AAAA,IACf,OAAQ,EAAA,WAAA;AAAA,IAER,QAAC,kBAAA,IAAA,CAAA,GAAA,EAAA;AAAA,MAAE,QAAS,EAAA,SAAA;AAAA,MACV,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAW,EAAA,CAAA,oBAAA,CAAA;AAAA,SAAwB,CAAA;AAAA,wBACxC,GAAA,CAAA,MAAA,EAAA;AAAA,UACC,SAAW,EAAA,CAAA,qBAAA,CAAA;AAAA,UACX,CAAE,EAAA,2FAAA;AAAA,SACJ,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,33 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+
3
+ function CheckboxIndeterminateIcon({
4
+ className
5
+ }) {
6
+ return /* @__PURE__ */ jsx("svg", {
7
+ "aria-hidden": "true",
8
+ className,
9
+ focusable: "false",
10
+ shapeRendering: "geometricPrecision",
11
+ viewBox: "0 0 14 14",
12
+ children: /* @__PURE__ */ jsxs("g", {
13
+ fillRule: "evenodd",
14
+ strokeWidth: "1",
15
+ children: [
16
+ /* @__PURE__ */ jsx("rect", {
17
+ className: `saltCheckboxIcon-box`
18
+ }),
19
+ /* @__PURE__ */ jsx("rect", {
20
+ className: `saltCheckboxIcon-tick`,
21
+ height: "2",
22
+ strokeWidth: "0",
23
+ width: "8",
24
+ x: "3",
25
+ y: "6"
26
+ })
27
+ ]
28
+ })
29
+ });
30
+ }
31
+
32
+ export { CheckboxIndeterminateIcon };
33
+ //# sourceMappingURL=CheckboxIndeterminateIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxIndeterminateIcon.js","sources":["../src/checkbox/assets/CheckboxIndeterminateIcon.tsx"],"sourcesContent":["export function CheckboxIndeterminateIcon({\n className,\n}: {\n className: string;\n}): JSX.Element {\n return (\n <svg\n aria-hidden=\"true\"\n className={className}\n focusable=\"false\"\n shapeRendering=\"geometricPrecision\"\n viewBox=\"0 0 14 14\"\n >\n <g fillRule=\"evenodd\" strokeWidth=\"1\">\n <rect className={`saltCheckboxIcon-box`} />\n <rect\n className={`saltCheckboxIcon-tick`}\n height=\"2\"\n strokeWidth=\"0\"\n width=\"8\"\n x=\"3\"\n y=\"6\"\n />\n </g>\n </svg>\n );\n}\n"],"names":[],"mappings":";;AAAO,SAAS,yBAA0B,CAAA;AAAA,EACxC,SAAA;AACF,CAEgB,EAAA;AACd,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAA;AAAA,IACA,SAAU,EAAA,OAAA;AAAA,IACV,cAAe,EAAA,oBAAA;AAAA,IACf,OAAQ,EAAA,WAAA;AAAA,IAER,QAAC,kBAAA,IAAA,CAAA,GAAA,EAAA;AAAA,MAAE,QAAS,EAAA,SAAA;AAAA,MAAU,WAAY,EAAA,GAAA;AAAA,MAChC,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAW,EAAA,CAAA,oBAAA,CAAA;AAAA,SAAwB,CAAA;AAAA,wBACxC,GAAA,CAAA,MAAA,EAAA;AAAA,UACC,SAAW,EAAA,CAAA,qBAAA,CAAA;AAAA,UACX,MAAO,EAAA,GAAA;AAAA,UACP,WAAY,EAAA,GAAA;AAAA,UACZ,KAAM,EAAA,GAAA;AAAA,UACN,CAAE,EAAA,GAAA;AAAA,UACF,CAAE,EAAA,GAAA;AAAA,SACJ,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,22 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+
3
+ function CheckboxUncheckedIcon({
4
+ className
5
+ }) {
6
+ return /* @__PURE__ */ jsx("svg", {
7
+ "aria-hidden": "true",
8
+ className,
9
+ focusable: "false",
10
+ shapeRendering: "geometricPrecision",
11
+ viewBox: "0 0 14 14",
12
+ children: /* @__PURE__ */ jsx("g", {
13
+ fillRule: "evenodd",
14
+ children: /* @__PURE__ */ jsx("rect", {
15
+ className: `saltCheckboxIcon-box`
16
+ })
17
+ })
18
+ });
19
+ }
20
+
21
+ export { CheckboxUncheckedIcon };
22
+ //# sourceMappingURL=CheckboxUncheckedIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxUncheckedIcon.js","sources":["../src/checkbox/assets/CheckboxUncheckedIcon.tsx"],"sourcesContent":["export function CheckboxUncheckedIcon({\n className,\n}: {\n className: string;\n}): JSX.Element {\n return (\n <svg\n aria-hidden=\"true\"\n className={className}\n focusable=\"false\"\n shapeRendering=\"geometricPrecision\"\n viewBox=\"0 0 14 14\"\n >\n <g fillRule=\"evenodd\">\n <rect className={`saltCheckboxIcon-box`} />\n </g>\n </svg>\n );\n}\n"],"names":[],"mappings":";;AAAO,SAAS,qBAAsB,CAAA;AAAA,EACpC,SAAA;AACF,CAEgB,EAAA;AACd,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAA;AAAA,IACA,SAAU,EAAA,OAAA;AAAA,IACV,cAAe,EAAA,oBAAA;AAAA,IACf,OAAQ,EAAA,WAAA;AAAA,IAER,QAAC,kBAAA,GAAA,CAAA,GAAA,EAAA;AAAA,MAAE,QAAS,EAAA,SAAA;AAAA,MACV,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA;AAAA,QAAK,SAAW,EAAA,CAAA,oBAAA,CAAA;AAAA,OAAwB,CAAA;AAAA,KAC3C,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,9 @@
1
+ import { createContext } from 'react';
2
+
3
+ const CheckboxGroupContext = createContext({});
4
+ if (process.env.NODE_ENV !== "production") {
5
+ CheckboxGroupContext.displayName = "CheckboxGroupContext";
6
+ }
7
+
8
+ export { CheckboxGroupContext };
9
+ //# sourceMappingURL=CheckboxGroupContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxGroupContext.js","sources":["../src/checkbox/internal/CheckboxGroupContext.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport { CheckboxGroupProps } from \"../CheckboxGroup\";\n\nexport interface CheckboxGroupState {\n name?: CheckboxGroupProps[\"name\"];\n onChange?: CheckboxGroupProps[\"onChange\"];\n checkedValues?: CheckboxGroupProps[\"checkedValues\"];\n}\n\nconst CheckboxGroupContext = createContext<CheckboxGroupState>({});\n\nif (process.env.NODE_ENV !== \"production\") {\n CheckboxGroupContext.displayName = \"CheckboxGroupContext\";\n}\n\nexport { CheckboxGroupContext };\n"],"names":[],"mappings":";;AASM,MAAA,oBAAA,GAAuB,aAAkC,CAAA,EAAE,EAAA;AAEjE,IAAI,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,EAAA,oBAAA,CAAqB,WAAc,GAAA,sBAAA,CAAA;AACrC;;;;"}
@@ -0,0 +1,9 @@
1
+ import { useContext } from 'react';
2
+ import { CheckboxGroupContext } from './CheckboxGroupContext.js';
3
+
4
+ function useCheckboxGroup() {
5
+ return useContext(CheckboxGroupContext);
6
+ }
7
+
8
+ export { useCheckboxGroup };
9
+ //# sourceMappingURL=useCheckboxGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCheckboxGroup.js","sources":["../src/checkbox/internal/useCheckboxGroup.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport {\n CheckboxGroupContext,\n CheckboxGroupState,\n} from \"./CheckboxGroupContext\";\n\nexport function useCheckboxGroup(): CheckboxGroupState {\n return useContext(CheckboxGroupContext);\n}\n"],"names":[],"mappings":";;;AAMO,SAAS,gBAAuC,GAAA;AACrD,EAAA,OAAO,WAAW,oBAAoB,CAAA,CAAA;AACxC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
2
2
 
3
- var css_248z = "/* Default variables applied to the root element */\n.saltFlexItem {\n --saltFlexItem-alignment: auto;\n --saltFlexItem-shrink: 1;\n --saltFlexItem-grow: 0;\n}\n\n/* Style applied to the root element */\n.saltFlexItem {\n position: relative;\n align-self: var(--saltFlexItem-alignment);\n flex-grow: var(--saltFlexItem-grow);\n flex-shrink: var(--saltFlexItem-shrink);\n}\n\n.saltFlexItem-stacked {\n flex-grow: 2;\n}\n";
3
+ var css_248z = "/* Default variables applied to the root element */\n.saltFlexItem {\n --saltFlexItem-alignment: auto;\n --saltFlexItem-shrink: 1;\n --saltFlexItem-grow: 0;\n --saltFlexItem-basis: auto;\n}\n\n/* Style applied to the root element */\n.saltFlexItem {\n position: relative;\n align-self: var(--saltFlexItem-alignment);\n flex-grow: var(--saltFlexItem-grow);\n flex-shrink: var(--saltFlexItem-shrink);\n flex-basis: var(--saltFlexItem-basis);\n}\n\n.saltFlexItem-stacked {\n flex-grow: 2;\n}\n";
4
4
  styleInject(css_248z);
5
5
 
6
6
  export { css_248z as default };
@@ -22,16 +22,19 @@ const FlexItem = forwardRef(
22
22
  className,
23
23
  shrink,
24
24
  grow,
25
+ basis,
25
26
  style,
26
27
  ...rest
27
28
  }, ref) => {
28
29
  const Component = as || "div";
29
30
  const flexItemShrink = useResponsiveProp(shrink, 1);
30
31
  const flexItemGrow = useResponsiveProp(grow, 0);
32
+ const flexItemBasis = useResponsiveProp(basis, "auto");
31
33
  const itemStyle = {
32
34
  "--saltFlexItem-alignment": align,
33
35
  "--saltFlexItem-shrink": flexItemShrink,
34
36
  "--saltFlexItem-grow": flexItemGrow,
37
+ "--saltFlexItem-basis": flexItemBasis,
35
38
  ...style
36
39
  };
37
40
  return /* @__PURE__ */ jsx(Component, {
@@ -1 +1 @@
1
- {"version":3,"file":"FlexItem.js","sources":["../src/flex-item/FlexItem.tsx"],"sourcesContent":["import { forwardRef, ElementType, ReactElement } from \"react\";\nimport {\n makePrefixer,\n ResponsiveProp,\n useResponsiveProp,\n PolymorphicComponentPropWithRef,\n PolymorphicRef,\n} from \"../utils\";\nimport \"./FlexItem.css\";\nimport { clsx } from \"clsx\";\n\nconst withBaseName = makePrefixer(\"saltFlexItem\");\nexport const FLEX_ITEM_ALIGNMENTS = [\n \"start\",\n \"end\",\n \"center\",\n \"stretch\",\n] as const;\n\nexport type flexItemAlignment = typeof FLEX_ITEM_ALIGNMENTS[number];\n\nexport type FlexItemProps<T extends ElementType> =\n PolymorphicComponentPropWithRef<\n T,\n {\n /**\n * Allows the alignment specified by parent to be overridden for individual items, default is \"start\".\n */\n align?: flexItemAlignment;\n /**\n * Defines the ability for an item to shrink x times more compared to it's siblings, default is 1.\n\n */\n shrink?: ResponsiveProp<number>;\n /**\n * Defines the ability for an item to grow x times more compared to it's siblings, default is 0.\n */\n grow?: ResponsiveProp<number>;\n }\n >;\n\ntype FlexItemComponent = <T extends ElementType = \"div\">(\n props: FlexItemProps<T>\n) => ReactElement | null;\n\nexport const FlexItem: FlexItemComponent = forwardRef(\n <T extends ElementType = \"div\">(\n {\n as,\n align,\n children,\n className,\n shrink,\n grow,\n style,\n ...rest\n }: FlexItemProps<T>,\n ref?: PolymorphicRef<T>\n ) => {\n const Component = as || \"div\";\n const flexItemShrink = useResponsiveProp(shrink, 1);\n const flexItemGrow = useResponsiveProp(grow, 0);\n\n const itemStyle = {\n \"--saltFlexItem-alignment\": align,\n \"--saltFlexItem-shrink\": flexItemShrink,\n \"--saltFlexItem-grow\": flexItemGrow,\n ...style,\n };\n return (\n <Component\n className={clsx(withBaseName(), className)}\n ref={ref}\n style={itemStyle}\n {...rest}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;;AAWA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AACzC,MAAM,oBAAuB,GAAA;AAAA,EAClC,OAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AACF,EAAA;AA4BO,MAAM,QAA8B,GAAA,UAAA;AAAA,EACzC,CACE;AAAA,IACE,EAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACG,GAAA,IAAA;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,YAAY,EAAM,IAAA,KAAA,CAAA;AACxB,IAAM,MAAA,cAAA,GAAiB,iBAAkB,CAAA,MAAA,EAAQ,CAAC,CAAA,CAAA;AAClD,IAAM,MAAA,YAAA,GAAe,iBAAkB,CAAA,IAAA,EAAM,CAAC,CAAA,CAAA;AAE9C,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,0BAA4B,EAAA,KAAA;AAAA,MAC5B,uBAAyB,EAAA,cAAA;AAAA,MACzB,qBAAuB,EAAA,YAAA;AAAA,MACvB,GAAG,KAAA;AAAA,KACL,CAAA;AACA,IAAA,uBACG,GAAA,CAAA,SAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,KAAO,EAAA,SAAA;AAAA,MACN,GAAG,IAAA;AAAA,MAEH,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"FlexItem.js","sources":["../src/flex-item/FlexItem.tsx"],"sourcesContent":["import { forwardRef, ElementType, ReactElement, CSSProperties } from \"react\";\nimport {\n makePrefixer,\n ResponsiveProp,\n useResponsiveProp,\n PolymorphicComponentPropWithRef,\n PolymorphicRef,\n} from \"../utils\";\nimport \"./FlexItem.css\";\nimport { clsx } from \"clsx\";\n\nconst withBaseName = makePrefixer(\"saltFlexItem\");\nexport const FLEX_ITEM_ALIGNMENTS = [\n \"start\",\n \"end\",\n \"center\",\n \"stretch\",\n] as const;\n\nexport type flexItemAlignment = typeof FLEX_ITEM_ALIGNMENTS[number];\n\nexport type FlexItemProps<T extends ElementType> =\n PolymorphicComponentPropWithRef<\n T,\n {\n /**\n * Allows the alignment specified by parent to be overridden for individual items, default is \"start\".\n */\n align?: flexItemAlignment;\n /**\n * Defines the ability for an item to shrink x times more compared to it's siblings, default is 1.\n */\n shrink?: ResponsiveProp<number>;\n /**\n * Defines the ability for an item to grow x times more compared to it's siblings, default is 0.\n */\n grow?: ResponsiveProp<number>;\n /**\n * Sets the initial main size of a flex item, default is \"auto\".\n */\n basis?: ResponsiveProp<CSSProperties[\"flexBasis\"]>;\n }\n >;\n\ntype FlexItemComponent = <T extends ElementType = \"div\">(\n props: FlexItemProps<T>\n) => ReactElement | null;\n\nexport const FlexItem: FlexItemComponent = forwardRef(\n <T extends ElementType = \"div\">(\n {\n as,\n align,\n children,\n className,\n shrink,\n grow,\n basis,\n style,\n ...rest\n }: FlexItemProps<T>,\n ref?: PolymorphicRef<T>\n ) => {\n const Component = as || \"div\";\n const flexItemShrink = useResponsiveProp(shrink, 1);\n const flexItemGrow = useResponsiveProp(grow, 0);\n const flexItemBasis = useResponsiveProp(basis, \"auto\");\n\n const itemStyle = {\n \"--saltFlexItem-alignment\": align,\n \"--saltFlexItem-shrink\": flexItemShrink,\n \"--saltFlexItem-grow\": flexItemGrow,\n \"--saltFlexItem-basis\": flexItemBasis,\n ...style,\n };\n return (\n <Component\n className={clsx(withBaseName(), className)}\n ref={ref}\n style={itemStyle}\n {...rest}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;;AAWA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AACzC,MAAM,oBAAuB,GAAA;AAAA,EAClC,OAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AACF,EAAA;AA+BO,MAAM,QAA8B,GAAA,UAAA;AAAA,EACzC,CACE;AAAA,IACE,EAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACG,GAAA,IAAA;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,YAAY,EAAM,IAAA,KAAA,CAAA;AACxB,IAAM,MAAA,cAAA,GAAiB,iBAAkB,CAAA,MAAA,EAAQ,CAAC,CAAA,CAAA;AAClD,IAAM,MAAA,YAAA,GAAe,iBAAkB,CAAA,IAAA,EAAM,CAAC,CAAA,CAAA;AAC9C,IAAM,MAAA,aAAA,GAAgB,iBAAkB,CAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAErD,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,0BAA4B,EAAA,KAAA;AAAA,MAC5B,uBAAyB,EAAA,cAAA;AAAA,MACzB,qBAAuB,EAAA,YAAA;AAAA,MACvB,sBAAwB,EAAA,aAAA;AAAA,MACxB,GAAG,KAAA;AAAA,KACL,CAAA;AACA,IAAA,uBACG,GAAA,CAAA,SAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,KAAO,EAAA,SAAA;AAAA,MACN,GAAG,IAAA;AAAA,MAEH,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -3,12 +3,17 @@ export { AriaAnnounce } from './aria-announcer/AriaAnnounce.js';
3
3
  export { ARIA_ANNOUNCE_DELAY, AriaAnnouncerProvider } from './aria-announcer/AriaAnnouncerProvider.js';
4
4
  export { useAriaAnnouncer } from './aria-announcer/useAriaAnnouncer.js';
5
5
  export { Avatar } from './avatar/Avatar.js';
6
+ export { useAvatarImage } from './avatar/useAvatarImage.js';
6
7
  export { BORDER_POSITION, BorderItem } from './border-item/BorderItem.js';
7
8
  export { BorderLayout } from './border-layout/BorderLayout.js';
8
9
  export { DEFAULT_BREAKPOINTS } from './breakpoints/Breakpoints.js';
9
10
  export { Button, ButtonVariantValues } from './button/Button.js';
10
11
  export { useButton } from './button/useButton.js';
11
12
  export { Card } from './card/Card.js';
13
+ export { InteractableCard } from './card/InteractableCard.js';
14
+ export { Checkbox } from './checkbox/Checkbox.js';
15
+ export { CheckboxGroup } from './checkbox/CheckboxGroup.js';
16
+ export { CheckboxIcon } from './checkbox/CheckboxIcon.js';
12
17
  export { FLEX_ITEM_ALIGNMENTS, FlexItem } from './flex-item/FlexItem.js';
13
18
  export { FLEX_ALIGNMENT_BASE, FLEX_CONTENT_ALIGNMENT_BASE, FlexLayout } from './flex-layout/FlexLayout.js';
14
19
  export { FlowLayout } from './flow-layout/FlowLayout.js';
@@ -16,6 +21,9 @@ export { GRID_ALIGNMENT_BASE, GridItem } from './grid-item/GridItem.js';
16
21
  export { GridLayout } from './grid-layout/GridLayout.js';
17
22
  export { Link } from './link/Link.js';
18
23
  export { Panel } from './panel/Panel.js';
24
+ export { RadioButton } from './radio-button/RadioButton.js';
25
+ export { RadioButtonGroup } from './radio-button/RadioButtonGroup.js';
26
+ export { RadioButtonIcon } from './radio-button/RadioButtonIcon.js';
19
27
  export { Spinner, SpinnerSizeValues } from './spinner/Spinner.js';
20
28
  export { StackLayout } from './stack-layout/StackLayout.js';
21
29
  export { StatusIndicator } from './status-indicator/StatusIndicator.js';
@@ -31,6 +39,7 @@ export { BreakpointContext, DEFAULT_DENSITY, DensityContext, SaltProvider, Theme
31
39
  export { SplitLayout } from './split-layout/SplitLayout.js';
32
40
  export { Tooltip } from './tooltip/Tooltip.js';
33
41
  export { useTooltip } from './tooltip/useTooltip.js';
42
+ export { capitalize } from './utils/capitalize.js';
34
43
  export { createChainedFunction } from './utils/createChainedFunction.js';
35
44
  export { createContext } from './utils/createContext.js';
36
45
  export { debounce } from './utils/debounce.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
2
2
 
3
- var css_248z = ".saltLink {\n --link-color-hover: var(--saltLink-color-hover, var(--salt-text-link-foreground-hover));\n --link-color-active: var(--saltLink-color-active, var(--salt-text-link-foreground-active));\n --link-color-visited: var(--saltLink-color-visited, var(--salt-text-link-foreground-visited));\n /* When focused, we also want hover style */\n --link-color-focus: var(--saltLink-color-focus, var(--link-color-hover));\n\n --link-textDecoration: var(--salt-text-link-textDecoration);\n --link-textDecoration-hover: var(--salt-text-link-textDecoration-hover);\n\n --link-fontFamily: var(--salt-text-fontFamily);\n --link-focus-outline: var(--salt-focused-outline);\n}\n\n/* Main css class */\n.saltLink {\n color: var(--link-color);\n letter-spacing: 0px;\n text-decoration: var(--link-textDecoration);\n font-family: var(--link-fontFamily);\n}\n\n/* Primary variant */\n.saltText-primary {\n --link-color: var(--salt-text-primary-foreground);\n}\n\n/* Secondary variant */\n.saltText-secondary {\n --link-color: var(--salt-text-secondary-foreground);\n}\n\n/* External link's icon */\n.saltLink-icon {\n margin-left: calc(var(--salt-size-unit) * 0.75);\n margin-bottom: -2px;\n}\n\n/* Set color for visited link */\n.saltLink:visited {\n --saltIcon-color: var(--link-color-visited);\n color: var(--link-color-visited);\n}\n\n/* Set color for hovered link */\n.saltLink:hover {\n --saltIcon-color: var(--link-color-hover);\n color: var(--link-color-hover);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Set color for active link */\n.saltLink:active {\n --saltIcon-color: var(--link-color-active);\n color: var(--link-color-active);\n}\n\n/* Set color for focused link */\n.saltLink:focus {\n --saltIcon-color: var(--link-color-focus);\n outline: var(--link-focus-outline);\n color: var(--link-color-focus);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Class for ADA content */\n.saltLink-externalLinkADA {\n display: block;\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n top: 0px;\n left: 0px;\n opacity: 0;\n}\n";
3
+ var css_248z = ".saltLink {\n --link-color-hover: var(--saltLink-color-hover, var(--salt-text-link-foreground-hover));\n --link-color-active: var(--saltLink-color-active, var(--salt-text-link-foreground-active));\n --link-color-visited: var(--saltLink-color-visited, var(--salt-text-link-foreground-visited));\n /* When focused, we also want hover style */\n --link-color-focus: var(--saltLink-color-focus, var(--link-color-hover));\n\n --link-textDecoration: var(--salt-text-link-textDecoration);\n --link-textDecoration-hover: var(--salt-text-link-textDecoration-hover);\n\n --link-fontFamily: var(--salt-text-fontFamily);\n --link-focus-outline: var(--salt-focused-outline);\n}\n\n/* Main css class */\n.saltLink {\n color: var(--link-color);\n letter-spacing: 0px;\n text-decoration: var(--link-textDecoration);\n font-family: var(--link-fontFamily);\n}\n\n/* Primary variant */\n.saltText-primary {\n --link-color: var(--salt-text-primary-foreground);\n}\n\n/* Secondary variant */\n.saltText-secondary {\n --link-color: var(--salt-text-secondary-foreground);\n}\n\n/* External link's icon */\n.saltLink-icon {\n margin-left: var(--salt-size-adornmentGap);\n margin-bottom: -2px;\n}\n\n/* Set color for visited link */\n.saltLink:visited {\n --saltIcon-color: var(--link-color-visited);\n color: var(--link-color-visited);\n}\n\n/* Set color for hovered link */\n.saltLink:hover {\n --saltIcon-color: var(--link-color-hover);\n color: var(--link-color-hover);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Set color for active link */\n.saltLink:active {\n --saltIcon-color: var(--link-color-active);\n color: var(--link-color-active);\n}\n\n/* Set color for focused link */\n.saltLink:focus {\n --saltIcon-color: var(--link-color-focus);\n outline: var(--link-focus-outline);\n color: var(--link-color-focus);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Class for ADA content */\n.saltLink-externalLinkADA {\n display: block;\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n top: 0px;\n left: 0px;\n opacity: 0;\n}\n";
4
4
  styleInject(css_248z);
5
5
 
6
6
  export { css_248z as default };
@@ -35,7 +35,7 @@ const Link = forwardRef(function Link2({
35
35
  children,
36
36
  target === "_blank" && /* @__PURE__ */ jsxs(Fragment, {
37
37
  children: [
38
- /* @__PURE__ */ jsx(IconComponent, {
38
+ IconComponent && /* @__PURE__ */ jsx(IconComponent, {
39
39
  className: withBaseName("icon"),
40
40
  "aria-hidden": true
41
41
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sources":["../src/link/Link.tsx"],"sourcesContent":["import { ComponentType, forwardRef, ReactElement } from \"react\";\nimport { clsx } from \"clsx\";\nimport { IconProps, TearOutIcon } from \"@salt-ds/icons\";\nimport { makePrefixer } from \"../utils\";\nimport { Text, TextProps } from \"../text\";\n\nimport \"./Link.css\";\n\nconst withBaseName = makePrefixer(\"saltLink\");\n\n/**\n * Links are a fundamental navigation element. When clicked, they take the user to an entirely different page.\n *\n * @example\n * <LinkExample to=\"#link\">Action</LinkExample>\n */\nexport interface LinkProps extends Omit<TextProps<\"a\">, \"as\" | \"disabled\"> {\n IconComponent?: ComponentType<IconProps>;\n}\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n {\n IconComponent = TearOutIcon,\n href,\n className,\n children,\n variant = \"primary\",\n target = \"_self\",\n ...rest\n },\n ref\n): ReactElement<LinkProps> {\n return (\n <Text\n as=\"a\"\n className={clsx(withBaseName(), className)}\n href={href}\n ref={ref}\n target={target}\n variant={variant}\n {...rest}\n >\n {children}\n {target === \"_blank\" && (\n <>\n <IconComponent className={withBaseName(\"icon\")} aria-hidden />\n <span className={withBaseName(\"externalLinkADA\")}>External Link</span>\n </>\n )}\n </Text>\n );\n});\n"],"names":["Link"],"mappings":";;;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA,CAAA;AAY/B,MAAA,IAAA,GAAO,UAAyC,CAAA,SAASA,KACpE,CAAA;AAAA,EACE,aAAgB,GAAA,WAAA;AAAA,EAChB,IAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAU,GAAA,SAAA;AAAA,EACV,MAAS,GAAA,OAAA;AAAA,EACN,GAAA,IAAA;AACL,CAAA,EACA,GACyB,EAAA;AACzB,EAAA,uBACG,IAAA,CAAA,IAAA,EAAA;AAAA,IACC,EAAG,EAAA,GAAA;AAAA,IACH,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,IAAA;AAAA,IACA,GAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,MACA,WAAW,QACV,oBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,QACE,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,aAAA,EAAA;AAAA,YAAc,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,YAAG,aAAW,EAAA,IAAA;AAAA,WAAC,CAAA;AAAA,0BAC3D,GAAA,CAAA,MAAA,EAAA;AAAA,YAAK,SAAA,EAAW,aAAa,iBAAiB,CAAA;AAAA,YAAG,QAAA,EAAA,eAAA;AAAA,WAAa,CAAA;AAAA,SAAA;AAAA,OACjE,CAAA;AAAA,KAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Link.js","sources":["../src/link/Link.tsx"],"sourcesContent":["import { ComponentType, forwardRef, ReactElement } from \"react\";\nimport { clsx } from \"clsx\";\nimport { IconProps, TearOutIcon } from \"@salt-ds/icons\";\nimport { makePrefixer } from \"../utils\";\nimport { Text, TextProps } from \"../text\";\n\nimport \"./Link.css\";\n\nconst withBaseName = makePrefixer(\"saltLink\");\n\n/**\n * Links are a fundamental navigation element. When clicked, they take the user to an entirely different page.\n *\n * @example\n * <LinkExample to=\"#link\">Action</LinkExample>\n */\nexport interface LinkProps extends Omit<TextProps<\"a\">, \"as\" | \"disabled\"> {\n IconComponent?: ComponentType<IconProps> | null;\n}\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n {\n IconComponent = TearOutIcon,\n href,\n className,\n children,\n variant = \"primary\",\n target = \"_self\",\n ...rest\n },\n ref\n): ReactElement<LinkProps> {\n return (\n <Text\n as=\"a\"\n className={clsx(withBaseName(), className)}\n href={href}\n ref={ref}\n target={target}\n variant={variant}\n {...rest}\n >\n {children}\n {target === \"_blank\" && (\n <>\n {IconComponent && (\n <IconComponent className={withBaseName(\"icon\")} aria-hidden />\n )}\n <span className={withBaseName(\"externalLinkADA\")}>External Link</span>\n </>\n )}\n </Text>\n );\n});\n"],"names":["Link"],"mappings":";;;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA,CAAA;AAY/B,MAAA,IAAA,GAAO,UAAyC,CAAA,SAASA,KACpE,CAAA;AAAA,EACE,aAAgB,GAAA,WAAA;AAAA,EAChB,IAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAU,GAAA,SAAA;AAAA,EACV,MAAS,GAAA,OAAA;AAAA,EACN,GAAA,IAAA;AACL,CAAA,EACA,GACyB,EAAA;AACzB,EAAA,uBACG,IAAA,CAAA,IAAA,EAAA;AAAA,IACC,EAAG,EAAA,GAAA;AAAA,IACH,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,IAAA;AAAA,IACA,GAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,MACA,WAAW,QACV,oBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,QACG,QAAA,EAAA;AAAA,UAAA,aAAA,oBACE,GAAA,CAAA,aAAA,EAAA;AAAA,YAAc,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,YAAG,aAAW,EAAA,IAAA;AAAA,WAAC,CAAA;AAAA,0BAE7D,GAAA,CAAA,MAAA,EAAA;AAAA,YAAK,SAAA,EAAW,aAAa,iBAAiB,CAAA;AAAA,YAAG,QAAA,EAAA,eAAA;AAAA,WAAa,CAAA;AAAA,SAAA;AAAA,OACjE,CAAA;AAAA,KAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
2
2
 
3
- var css_248z = "/* Styles applied to the root element when variant=\"primary\" */\n.saltPanel-primary.saltPanel {\n --panel-background: var(--salt-container-primary-background);\n}\n\n/* Styles applied to the root element when variant=\"secondary\" */\n.saltPanel-secondary.saltPanel {\n --panel-background: var(--salt-container-secondary-background);\n}\n\n/* Styles applied to the root element */\n.saltPanel {\n background: var(--saltPanel-background, var(--panel-background));\n color: var(--saltPanel-color, inherit);\n height: var(--saltPanel-height, 100%);\n overflow: auto;\n padding: var(--saltPanel-padding, calc(var(--salt-size-unit) * 3));\n width: var(--saltPanel-width, 100%);\n}\n";
3
+ var css_248z = "/* Styles applied to the root element when variant=\"primary\" */\n.saltPanel-primary.saltPanel {\n --panel-background: var(--salt-container-primary-background);\n}\n\n/* Styles applied to the root element when variant=\"secondary\" */\n.saltPanel-secondary.saltPanel {\n --panel-background: var(--salt-container-secondary-background);\n}\n\n/* Styles applied to the root element */\n.saltPanel {\n background: var(--saltPanel-background, var(--panel-background));\n color: var(--saltPanel-color, initial);\n height: var(--saltPanel-height, 100%);\n overflow: auto;\n padding: var(--saltPanel-padding, var(--salt-size-container-spacing));\n width: var(--saltPanel-width, 100%);\n}\n";
4
4
  styleInject(css_248z);
5
5
 
6
6
  export { css_248z as default };