@salt-ds/core 0.0.0-snapshot-20230705144029 → 0.0.0-snapshot-20230802143610

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 (252) hide show
  1. package/dist-cjs/accordion/Accordion.css.js +6 -0
  2. package/dist-cjs/accordion/Accordion.css.js.map +1 -0
  3. package/dist-cjs/accordion/Accordion.js +73 -0
  4. package/dist-cjs/accordion/Accordion.js.map +1 -0
  5. package/dist-cjs/accordion/AccordionContext.js +29 -0
  6. package/dist-cjs/accordion/AccordionContext.js.map +1 -0
  7. package/dist-cjs/accordion/AccordionGroup.css.js +6 -0
  8. package/dist-cjs/accordion/AccordionGroup.css.js.map +1 -0
  9. package/dist-cjs/accordion/AccordionGroup.js +36 -0
  10. package/dist-cjs/accordion/AccordionGroup.js.map +1 -0
  11. package/dist-cjs/accordion/AccordionHeader.css.js +6 -0
  12. package/dist-cjs/accordion/AccordionHeader.css.js.map +1 -0
  13. package/dist-cjs/accordion/AccordionHeader.js +63 -0
  14. package/dist-cjs/accordion/AccordionHeader.js.map +1 -0
  15. package/dist-cjs/accordion/AccordionPanel.css.js +6 -0
  16. package/dist-cjs/accordion/AccordionPanel.css.js.map +1 -0
  17. package/dist-cjs/accordion/AccordionPanel.js +76 -0
  18. package/dist-cjs/accordion/AccordionPanel.js.map +1 -0
  19. package/dist-cjs/button/Button.css.js +1 -1
  20. package/dist-cjs/card/InteractableCard.css.js +1 -1
  21. package/dist-cjs/card/InteractableCard.js +5 -3
  22. package/dist-cjs/card/InteractableCard.js.map +1 -1
  23. package/dist-cjs/checkbox/Checkbox.css.js +1 -1
  24. package/dist-cjs/checkbox/Checkbox.js +27 -17
  25. package/dist-cjs/checkbox/Checkbox.js.map +1 -1
  26. package/dist-cjs/checkbox/CheckboxGroup.js +5 -1
  27. package/dist-cjs/checkbox/CheckboxGroup.js.map +1 -1
  28. package/dist-cjs/checkbox/CheckboxIcon.css.js +1 -1
  29. package/dist-cjs/checkbox/CheckboxIcon.js +42 -24
  30. package/dist-cjs/checkbox/CheckboxIcon.js.map +1 -1
  31. package/dist-cjs/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  32. package/dist-cjs/drawer/Drawer.css.js +6 -0
  33. package/dist-cjs/drawer/Drawer.css.js.map +1 -0
  34. package/dist-cjs/drawer/Drawer.js +82 -0
  35. package/dist-cjs/drawer/Drawer.js.map +1 -0
  36. package/dist-cjs/drawer/useDrawer.js +36 -0
  37. package/dist-cjs/drawer/useDrawer.js.map +1 -0
  38. package/dist-cjs/form-field/FormField.css.js +1 -1
  39. package/dist-cjs/form-field/FormField.js +4 -4
  40. package/dist-cjs/form-field/FormField.js.map +1 -1
  41. package/dist-cjs/form-field/FormFieldHelperText.css.js +1 -1
  42. package/dist-cjs/form-field/FormFieldLabel.css.js +1 -1
  43. package/dist-cjs/form-field/FormFieldLabel.js +5 -4
  44. package/dist-cjs/form-field/FormFieldLabel.js.map +1 -1
  45. package/dist-cjs/index.js +27 -10
  46. package/dist-cjs/index.js.map +1 -1
  47. package/dist-cjs/input/Input.css.js +1 -1
  48. package/dist-cjs/input/Input.js +2 -11
  49. package/dist-cjs/input/Input.js.map +1 -1
  50. package/dist-cjs/multiline-input/MultilineInput.css.js +6 -0
  51. package/dist-cjs/multiline-input/MultilineInput.css.js.map +1 -0
  52. package/dist-cjs/multiline-input/MultilineInput.js +170 -0
  53. package/dist-cjs/multiline-input/MultilineInput.js.map +1 -0
  54. package/dist-cjs/radio-button/RadioButton.css.js +1 -1
  55. package/dist-cjs/radio-button/RadioButton.js +20 -9
  56. package/dist-cjs/radio-button/RadioButton.js.map +1 -1
  57. package/dist-cjs/radio-button/RadioButtonGroup.js +4 -0
  58. package/dist-cjs/radio-button/RadioButtonGroup.js.map +1 -1
  59. package/dist-cjs/radio-button/RadioButtonIcon.css.js +1 -1
  60. package/dist-cjs/radio-button/RadioButtonIcon.js +35 -21
  61. package/dist-cjs/radio-button/RadioButtonIcon.js.map +1 -1
  62. package/dist-cjs/radio-button/internal/RadioGroupContext.js.map +1 -1
  63. package/dist-cjs/status-adornment/StatusAdornment.css.js +1 -1
  64. package/dist-cjs/text/Text.css.js +1 -1
  65. package/dist-cjs/toast/Toast.css.js +6 -0
  66. package/dist-cjs/toast/Toast.css.js.map +1 -0
  67. package/dist-cjs/toast/Toast.js +50 -0
  68. package/dist-cjs/toast/Toast.js.map +1 -0
  69. package/dist-cjs/toast/ToastContent.css.js +6 -0
  70. package/dist-cjs/toast/ToastContent.css.js.map +1 -0
  71. package/dist-cjs/toast/ToastContent.js +34 -0
  72. package/dist-cjs/toast/ToastContent.js.map +1 -0
  73. package/dist-cjs/toggle-button/ToggleButton.css.js +6 -0
  74. package/dist-cjs/toggle-button/ToggleButton.css.js.map +1 -0
  75. package/dist-cjs/toggle-button/ToggleButton.js +81 -0
  76. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -0
  77. package/dist-cjs/toggle-button-group/ToggleButtonGroup.css.js +6 -0
  78. package/dist-cjs/toggle-button-group/ToggleButtonGroup.css.js.map +1 -0
  79. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +117 -0
  80. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -0
  81. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js +20 -0
  82. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -0
  83. package/dist-cjs/tooltip/Tooltip.js +52 -17
  84. package/dist-cjs/tooltip/Tooltip.js.map +1 -1
  85. package/dist-cjs/tooltip/useTooltip.js.map +1 -1
  86. package/dist-cjs/utils/useFloatingUI.js +1 -48
  87. package/dist-cjs/utils/useFloatingUI.js.map +1 -1
  88. package/dist-es/accordion/Accordion.css.js +4 -0
  89. package/dist-es/accordion/Accordion.css.js.map +1 -0
  90. package/dist-es/accordion/Accordion.js +69 -0
  91. package/dist-es/accordion/Accordion.js.map +1 -0
  92. package/dist-es/accordion/AccordionContext.js +24 -0
  93. package/dist-es/accordion/AccordionContext.js.map +1 -0
  94. package/dist-es/accordion/AccordionGroup.css.js +4 -0
  95. package/dist-es/accordion/AccordionGroup.css.js.map +1 -0
  96. package/dist-es/accordion/AccordionGroup.js +32 -0
  97. package/dist-es/accordion/AccordionGroup.js.map +1 -0
  98. package/dist-es/accordion/AccordionHeader.css.js +4 -0
  99. package/dist-es/accordion/AccordionHeader.css.js.map +1 -0
  100. package/dist-es/accordion/AccordionHeader.js +59 -0
  101. package/dist-es/accordion/AccordionHeader.js.map +1 -0
  102. package/dist-es/accordion/AccordionPanel.css.js +4 -0
  103. package/dist-es/accordion/AccordionPanel.css.js.map +1 -0
  104. package/dist-es/accordion/AccordionPanel.js +72 -0
  105. package/dist-es/accordion/AccordionPanel.js.map +1 -0
  106. package/dist-es/button/Button.css.js +1 -1
  107. package/dist-es/card/InteractableCard.css.js +1 -1
  108. package/dist-es/card/InteractableCard.js +5 -3
  109. package/dist-es/card/InteractableCard.js.map +1 -1
  110. package/dist-es/checkbox/Checkbox.css.js +1 -1
  111. package/dist-es/checkbox/Checkbox.js +27 -17
  112. package/dist-es/checkbox/Checkbox.js.map +1 -1
  113. package/dist-es/checkbox/CheckboxGroup.js +5 -1
  114. package/dist-es/checkbox/CheckboxGroup.js.map +1 -1
  115. package/dist-es/checkbox/CheckboxIcon.css.js +1 -1
  116. package/dist-es/checkbox/CheckboxIcon.js +43 -25
  117. package/dist-es/checkbox/CheckboxIcon.js.map +1 -1
  118. package/dist-es/checkbox/internal/CheckboxGroupContext.js.map +1 -1
  119. package/dist-es/drawer/Drawer.css.js +4 -0
  120. package/dist-es/drawer/Drawer.css.js.map +1 -0
  121. package/dist-es/drawer/Drawer.js +77 -0
  122. package/dist-es/drawer/Drawer.js.map +1 -0
  123. package/dist-es/drawer/useDrawer.js +32 -0
  124. package/dist-es/drawer/useDrawer.js.map +1 -0
  125. package/dist-es/form-field/FormField.css.js +1 -1
  126. package/dist-es/form-field/FormField.js +4 -4
  127. package/dist-es/form-field/FormField.js.map +1 -1
  128. package/dist-es/form-field/FormFieldHelperText.css.js +1 -1
  129. package/dist-es/form-field/FormFieldLabel.css.js +1 -1
  130. package/dist-es/form-field/FormFieldLabel.js +5 -4
  131. package/dist-es/form-field/FormFieldLabel.js.map +1 -1
  132. package/dist-es/index.js +14 -3
  133. package/dist-es/index.js.map +1 -1
  134. package/dist-es/input/Input.css.js +1 -1
  135. package/dist-es/input/Input.js +2 -11
  136. package/dist-es/input/Input.js.map +1 -1
  137. package/dist-es/multiline-input/MultilineInput.css.js +4 -0
  138. package/dist-es/multiline-input/MultilineInput.css.js.map +1 -0
  139. package/dist-es/multiline-input/MultilineInput.js +166 -0
  140. package/dist-es/multiline-input/MultilineInput.js.map +1 -0
  141. package/dist-es/radio-button/RadioButton.css.js +1 -1
  142. package/dist-es/radio-button/RadioButton.js +20 -9
  143. package/dist-es/radio-button/RadioButton.js.map +1 -1
  144. package/dist-es/radio-button/RadioButtonGroup.js +4 -0
  145. package/dist-es/radio-button/RadioButtonGroup.js.map +1 -1
  146. package/dist-es/radio-button/RadioButtonIcon.css.js +1 -1
  147. package/dist-es/radio-button/RadioButtonIcon.js +35 -21
  148. package/dist-es/radio-button/RadioButtonIcon.js.map +1 -1
  149. package/dist-es/radio-button/internal/RadioGroupContext.js.map +1 -1
  150. package/dist-es/status-adornment/StatusAdornment.css.js +1 -1
  151. package/dist-es/text/Text.css.js +1 -1
  152. package/dist-es/toast/Toast.css.js +4 -0
  153. package/dist-es/toast/Toast.css.js.map +1 -0
  154. package/dist-es/toast/Toast.js +46 -0
  155. package/dist-es/toast/Toast.js.map +1 -0
  156. package/dist-es/toast/ToastContent.css.js +4 -0
  157. package/dist-es/toast/ToastContent.css.js.map +1 -0
  158. package/dist-es/toast/ToastContent.js +30 -0
  159. package/dist-es/toast/ToastContent.js.map +1 -0
  160. package/dist-es/toggle-button/ToggleButton.css.js +4 -0
  161. package/dist-es/toggle-button/ToggleButton.css.js.map +1 -0
  162. package/dist-es/toggle-button/ToggleButton.js +77 -0
  163. package/dist-es/toggle-button/ToggleButton.js.map +1 -0
  164. package/dist-es/toggle-button-group/ToggleButtonGroup.css.js +4 -0
  165. package/dist-es/toggle-button-group/ToggleButtonGroup.css.js.map +1 -0
  166. package/dist-es/toggle-button-group/ToggleButtonGroup.js +113 -0
  167. package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -0
  168. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js +15 -0
  169. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -0
  170. package/dist-es/tooltip/Tooltip.js +52 -17
  171. package/dist-es/tooltip/Tooltip.js.map +1 -1
  172. package/dist-es/tooltip/useTooltip.js.map +1 -1
  173. package/dist-es/utils/useFloatingUI.js +3 -46
  174. package/dist-es/utils/useFloatingUI.js.map +1 -1
  175. package/dist-types/accordion/Accordion.d.ts +29 -0
  176. package/dist-types/accordion/AccordionContext.d.ts +11 -0
  177. package/dist-types/accordion/AccordionGroup.d.ts +3 -0
  178. package/dist-types/accordion/AccordionHeader.d.ts +3 -0
  179. package/dist-types/accordion/AccordionPanel.d.ts +3 -0
  180. package/dist-types/accordion/index.d.ts +4 -0
  181. package/dist-types/card/InteractableCard.d.ts +2 -3
  182. package/dist-types/checkbox/CheckboxGroup.d.ts +4 -0
  183. package/dist-types/checkbox/CheckboxIcon.d.ts +5 -1
  184. package/dist-types/checkbox/internal/CheckboxGroupContext.d.ts +1 -0
  185. package/dist-types/drawer/Drawer.d.ts +22 -0
  186. package/dist-types/drawer/index.d.ts +2 -0
  187. package/dist-types/drawer/useDrawer.d.ts +27 -0
  188. package/dist-types/form-field/FormField.d.ts +1 -1
  189. package/dist-types/form-field/FormFieldLabel.d.ts +10 -1
  190. package/dist-types/form-field/index.d.ts +0 -1
  191. package/dist-types/index.d.ts +7 -0
  192. package/dist-types/input/index.d.ts +0 -1
  193. package/dist-types/multiline-input/MultilineInput.d.ts +40 -0
  194. package/dist-types/multiline-input/index.d.ts +1 -0
  195. package/dist-types/radio-button/RadioButton.d.ts +6 -2
  196. package/dist-types/radio-button/RadioButtonGroup.d.ts +4 -0
  197. package/dist-types/radio-button/RadioButtonIcon.d.ts +8 -4
  198. package/dist-types/radio-button/internal/RadioGroupContext.d.ts +1 -0
  199. package/dist-types/toast/Toast.d.ts +9 -0
  200. package/dist-types/toast/ToastContent.d.ts +2 -0
  201. package/dist-types/toast/index.d.ts +2 -0
  202. package/dist-types/toggle-button/ToggleButton.d.ts +7 -0
  203. package/dist-types/toggle-button/index.d.ts +1 -0
  204. package/dist-types/toggle-button-group/ToggleButtonGroup.d.ts +25 -0
  205. package/dist-types/toggle-button-group/ToggleButtonGroupContext.d.ts +10 -0
  206. package/dist-types/toggle-button-group/index.d.ts +2 -0
  207. package/dist-types/utils/useFloatingUI.d.ts +1 -22
  208. package/package.json +8 -8
  209. package/dist-cjs/checkbox/assets/CheckboxCheckedIcon.js +0 -33
  210. package/dist-cjs/checkbox/assets/CheckboxCheckedIcon.js.map +0 -1
  211. package/dist-cjs/checkbox/assets/CheckboxCheckedIconHD.js +0 -32
  212. package/dist-cjs/checkbox/assets/CheckboxCheckedIconHD.js.map +0 -1
  213. package/dist-cjs/checkbox/assets/CheckboxIndeterminateIcon.js +0 -37
  214. package/dist-cjs/checkbox/assets/CheckboxIndeterminateIcon.js.map +0 -1
  215. package/dist-cjs/checkbox/assets/CheckboxUncheckedIcon.js +0 -26
  216. package/dist-cjs/checkbox/assets/CheckboxUncheckedIcon.js.map +0 -1
  217. package/dist-cjs/form-field/FormFieldControlWrapper.css.js +0 -6
  218. package/dist-cjs/form-field/FormFieldControlWrapper.css.js.map +0 -1
  219. package/dist-cjs/form-field/FormFieldControlWrapper.js +0 -47
  220. package/dist-cjs/form-field/FormFieldControlWrapper.js.map +0 -1
  221. package/dist-cjs/input/adornment-button/AdornmentButton.css.js +0 -6
  222. package/dist-cjs/input/adornment-button/AdornmentButton.css.js.map +0 -1
  223. package/dist-cjs/input/adornment-button/AdornmentButton.js +0 -41
  224. package/dist-cjs/input/adornment-button/AdornmentButton.js.map +0 -1
  225. package/dist-cjs/tooltip/TooltipBase.js +0 -62
  226. package/dist-cjs/tooltip/TooltipBase.js.map +0 -1
  227. package/dist-es/checkbox/assets/CheckboxCheckedIcon.js +0 -29
  228. package/dist-es/checkbox/assets/CheckboxCheckedIcon.js.map +0 -1
  229. package/dist-es/checkbox/assets/CheckboxCheckedIconHD.js +0 -28
  230. package/dist-es/checkbox/assets/CheckboxCheckedIconHD.js.map +0 -1
  231. package/dist-es/checkbox/assets/CheckboxIndeterminateIcon.js +0 -33
  232. package/dist-es/checkbox/assets/CheckboxIndeterminateIcon.js.map +0 -1
  233. package/dist-es/checkbox/assets/CheckboxUncheckedIcon.js +0 -22
  234. package/dist-es/checkbox/assets/CheckboxUncheckedIcon.js.map +0 -1
  235. package/dist-es/form-field/FormFieldControlWrapper.css.js +0 -4
  236. package/dist-es/form-field/FormFieldControlWrapper.css.js.map +0 -1
  237. package/dist-es/form-field/FormFieldControlWrapper.js +0 -41
  238. package/dist-es/form-field/FormFieldControlWrapper.js.map +0 -1
  239. package/dist-es/input/adornment-button/AdornmentButton.css.js +0 -4
  240. package/dist-es/input/adornment-button/AdornmentButton.css.js.map +0 -1
  241. package/dist-es/input/adornment-button/AdornmentButton.js +0 -37
  242. package/dist-es/input/adornment-button/AdornmentButton.js.map +0 -1
  243. package/dist-es/tooltip/TooltipBase.js +0 -58
  244. package/dist-es/tooltip/TooltipBase.js.map +0 -1
  245. package/dist-types/checkbox/assets/CheckboxCheckedIcon.d.ts +0 -4
  246. package/dist-types/checkbox/assets/CheckboxCheckedIconHD.d.ts +0 -4
  247. package/dist-types/checkbox/assets/CheckboxIndeterminateIcon.d.ts +0 -4
  248. package/dist-types/checkbox/assets/CheckboxUncheckedIcon.d.ts +0 -4
  249. package/dist-types/checkbox/assets/index.d.ts +0 -4
  250. package/dist-types/form-field/FormFieldControlWrapper.d.ts +0 -11
  251. package/dist-types/input/adornment-button/AdornmentButton.d.ts +0 -4
  252. package/dist-types/tooltip/TooltipBase.d.ts +0 -13
@@ -1,4 +1,4 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { clsx } from 'clsx';
3
3
  import { useComponentCssInjection } from '@salt-ds/styles';
4
4
  import { useWindow } from '@salt-ds/window';
@@ -8,20 +8,34 @@ import { makePrefixer } from '../utils/makePrefixer.js';
8
8
  import '../utils/useFloatingUI.js';
9
9
  import '../utils/useId.js';
10
10
  import '../viewport/ViewportProvider.js';
11
- import { CheckboxUncheckedIcon } from './assets/CheckboxUncheckedIcon.js';
12
- import { CheckboxCheckedIcon } from './assets/CheckboxCheckedIcon.js';
13
- import { CheckboxCheckedIconHD } from './assets/CheckboxCheckedIconHD.js';
14
- import { CheckboxIndeterminateIcon } from './assets/CheckboxIndeterminateIcon.js';
15
11
  import css_248z from './CheckboxIcon.css.js';
12
+ import { SuccessSmallSolidIcon, SuccessSolidIcon, SuccessSmallIcon, SuccessIcon } from '@salt-ds/icons';
16
13
 
17
14
  const withBaseName = makePrefixer("saltCheckboxIcon");
15
+ function CheckedIcon(props) {
16
+ const density = useDensity();
17
+ return density === "high" ? /* @__PURE__ */ jsx(SuccessSmallSolidIcon, {
18
+ ...props
19
+ }) : /* @__PURE__ */ jsx(SuccessSolidIcon, {
20
+ ...props
21
+ });
22
+ }
23
+ function CheckedReadOnlyIcon(props) {
24
+ const density = useDensity();
25
+ return density === "high" ? /* @__PURE__ */ jsx(SuccessSmallIcon, {
26
+ ...props
27
+ }) : /* @__PURE__ */ jsx(SuccessIcon, {
28
+ ...props
29
+ });
30
+ }
18
31
  const CheckboxIcon = ({
19
32
  checked = false,
20
- className: classNameProp,
33
+ className,
21
34
  disabled,
22
35
  error,
23
36
  indeterminate,
24
- validationStatus
37
+ validationStatus,
38
+ readOnly
25
39
  }) => {
26
40
  const targetWindow = useWindow();
27
41
  useComponentCssInjection({
@@ -29,24 +43,28 @@ const CheckboxIcon = ({
29
43
  css: css_248z,
30
44
  window: targetWindow
31
45
  });
32
- const className = clsx(
33
- withBaseName(),
34
- {
35
- [withBaseName("disabled")]: disabled,
36
- [withBaseName("error")]: error,
37
- [withBaseName(validationStatus || "")]: validationStatus
38
- },
39
- classNameProp
40
- );
41
- const density = useDensity();
42
- return indeterminate ? /* @__PURE__ */ jsx(CheckboxIndeterminateIcon, {
43
- className: clsx(className, withBaseName("indeterminate"))
44
- }) : checked ? density === "high" ? /* @__PURE__ */ jsx(CheckboxCheckedIconHD, {
45
- className: clsx(className, withBaseName("checked"))
46
- }) : /* @__PURE__ */ jsx(CheckboxCheckedIcon, {
47
- className: clsx(className, withBaseName("checked"))
48
- }) : /* @__PURE__ */ jsx(CheckboxUncheckedIcon, {
49
- className
46
+ return /* @__PURE__ */ jsxs("div", {
47
+ "aria-hidden": "true",
48
+ className: clsx(
49
+ withBaseName(),
50
+ {
51
+ [withBaseName("checked")]: checked,
52
+ [withBaseName("disabled")]: disabled,
53
+ [withBaseName("error")]: error,
54
+ [withBaseName(validationStatus || "")]: validationStatus,
55
+ [withBaseName("indeterminate")]: indeterminate,
56
+ [withBaseName("readOnly")]: readOnly
57
+ },
58
+ className
59
+ ),
60
+ children: [
61
+ checked && !indeterminate && !readOnly && /* @__PURE__ */ jsx(CheckedIcon, {
62
+ className: withBaseName("icon")
63
+ }),
64
+ checked && !indeterminate && readOnly && /* @__PURE__ */ jsx(CheckedReadOnlyIcon, {
65
+ className: withBaseName("icon")
66
+ })
67
+ ]
50
68
  });
51
69
  };
52
70
 
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxIcon.js","sources":["../src/checkbox/CheckboxIcon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useDensity } from \"../salt-provider\";\nimport { AdornmentValidationStatus } from \"../status-adornment\";\nimport { makePrefixer } from \"../utils\";\nimport {\n CheckboxCheckedIcon,\n CheckboxCheckedIconHD,\n CheckboxIndeterminateIcon,\n CheckboxUncheckedIcon,\n} from \"./assets\";\nimport checkboxIconCss from \"./CheckboxIcon.css\";\n\nexport interface CheckboxIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n error?: boolean /* **Deprecated**: replaced with validationStatus */;\n indeterminate?: boolean;\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst withBaseName = makePrefixer(\"saltCheckboxIcon\");\n\nexport const CheckboxIcon = ({\n checked = false,\n className: classNameProp,\n disabled,\n error,\n indeterminate,\n validationStatus,\n}: CheckboxIconProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-icon\",\n css: checkboxIconCss,\n window: targetWindow,\n });\n const className = clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"error\")]: error,\n [withBaseName(validationStatus || \"\")]: validationStatus,\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":["checkboxIconCss"],"mappings":";;;;;;;;;;;;;;;;AAuBA,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;AAAA,EACA,gBAAA;AACF,CAAsC,KAAA;AACpC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AACD,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,MACzB,CAAC,YAAA,CAAa,gBAAoB,IAAA,EAAE,CAAI,GAAA,gBAAA;AAAA,KAC1C;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;;;;"}
1
+ {"version":3,"file":"CheckboxIcon.js","sources":["../src/checkbox/CheckboxIcon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useDensity } from \"../salt-provider\";\nimport { AdornmentValidationStatus } from \"../status-adornment\";\nimport { makePrefixer } from \"../utils\";\nimport checkboxIconCss from \"./CheckboxIcon.css\";\nimport {\n IconProps,\n SuccessIcon,\n SuccessSmallIcon,\n SuccessSmallSolidIcon,\n SuccessSolidIcon,\n} from \"@salt-ds/icons\";\n\nexport interface CheckboxIconProps {\n checked?: boolean;\n className?: string;\n disabled?: boolean;\n /**\n * @deprecated Use validationStatus instead\n */\n error?: boolean;\n indeterminate?: boolean;\n readOnly?: boolean;\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst withBaseName = makePrefixer(\"saltCheckboxIcon\");\n\nfunction CheckedIcon(props: IconProps) {\n const density = useDensity();\n return density === \"high\" ? (\n <SuccessSmallSolidIcon {...props} />\n ) : (\n <SuccessSolidIcon {...props} />\n );\n}\n\nfunction CheckedReadOnlyIcon(props: IconProps) {\n const density = useDensity();\n return density === \"high\" ? (\n <SuccessSmallIcon {...props} />\n ) : (\n <SuccessIcon {...props} />\n );\n}\n\nexport const CheckboxIcon = ({\n checked = false,\n className,\n disabled,\n error,\n indeterminate,\n validationStatus,\n readOnly,\n}: CheckboxIconProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-icon\",\n css: checkboxIconCss,\n window: targetWindow,\n });\n\n return (\n <div\n aria-hidden=\"true\"\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"error\")]: error,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n [withBaseName(\"indeterminate\")]: indeterminate,\n [withBaseName(\"readOnly\")]: readOnly,\n },\n className\n )}\n >\n {checked && !indeterminate && !readOnly && (\n <CheckedIcon className={withBaseName(\"icon\")} />\n )}\n {checked && !indeterminate && readOnly && (\n <CheckedReadOnlyIcon className={withBaseName(\"icon\")} />\n )}\n </div>\n );\n};\n"],"names":["checkboxIconCss"],"mappings":";;;;;;;;;;;;;AA4BA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA,CAAA;AAEpD,SAAS,YAAY,KAAkB,EAAA;AACrC,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAO,OAAA,OAAA,KAAY,yBAChB,GAAA,CAAA,qBAAA,EAAA;AAAA,IAAuB,GAAG,KAAA;AAAA,GAAO,oBAEjC,GAAA,CAAA,gBAAA,EAAA;AAAA,IAAkB,GAAG,KAAA;AAAA,GAAO,CAAA,CAAA;AAEjC,CAAA;AAEA,SAAS,oBAAoB,KAAkB,EAAA;AAC7C,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAO,OAAA,OAAA,KAAY,yBAChB,GAAA,CAAA,gBAAA,EAAA;AAAA,IAAkB,GAAG,KAAA;AAAA,GAAO,oBAE5B,GAAA,CAAA,WAAA,EAAA;AAAA,IAAa,GAAG,KAAA;AAAA,GAAO,CAAA,CAAA;AAE5B,CAAA;AAEO,MAAM,eAAe,CAAC;AAAA,EAC3B,OAAU,GAAA,KAAA;AAAA,EACV,SAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,QAAA;AACF,CAAsC,KAAA;AACpC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAW,EAAA,IAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb;AAAA,QACE,CAAC,YAAa,CAAA,SAAS,CAAI,GAAA,OAAA;AAAA,QAC3B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,QACzB,CAAC,YAAA,CAAa,gBAAoB,IAAA,EAAE,CAAI,GAAA,gBAAA;AAAA,QACxC,CAAC,YAAa,CAAA,eAAe,CAAI,GAAA,aAAA;AAAA,QACjC,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,OAC9B;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IAEC,QAAA,EAAA;AAAA,MAAA,OAAA,IAAW,CAAC,aAAA,IAAiB,CAAC,QAAA,oBAC5B,GAAA,CAAA,WAAA,EAAA;AAAA,QAAY,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,OAAG,CAAA;AAAA,MAE/C,OAAW,IAAA,CAAC,aAAiB,IAAA,QAAA,oBAC3B,GAAA,CAAA,mBAAA,EAAA;AAAA,QAAoB,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,OAAG,CAAA;AAAA,KAAA;AAAA,GAE1D,CAAA,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxGroupContext.js","sources":["../src/checkbox/internal/CheckboxGroupContext.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport { a11yValueAriaProps } from \"../../form-field-context\";\nimport { AdornmentValidationStatus } from \"../../status-adornment\";\nimport { CheckboxGroupProps } from \"../CheckboxGroup\";\n\nexport interface CheckboxGroupState {\n a11yProps?: a11yValueAriaProps;\n disabled?: boolean;\n name?: CheckboxGroupProps[\"name\"];\n onChange?: CheckboxGroupProps[\"onChange\"];\n checkedValues?: CheckboxGroupProps[\"checkedValues\"];\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst CheckboxGroupContext = createContext<CheckboxGroupState>({});\n\nif (process.env.NODE_ENV !== \"production\") {\n CheckboxGroupContext.displayName = \"CheckboxGroupContext\";\n}\n\nexport { CheckboxGroupContext };\n"],"names":[],"mappings":";;AAcM,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;;;;"}
1
+ {"version":3,"file":"CheckboxGroupContext.js","sources":["../src/checkbox/internal/CheckboxGroupContext.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport { a11yValueAriaProps } from \"../../form-field-context\";\nimport { AdornmentValidationStatus } from \"../../status-adornment\";\nimport { CheckboxGroupProps } from \"../CheckboxGroup\";\n\nexport interface CheckboxGroupState {\n a11yProps?: a11yValueAriaProps;\n disabled?: boolean;\n name?: CheckboxGroupProps[\"name\"];\n onChange?: CheckboxGroupProps[\"onChange\"];\n checkedValues?: CheckboxGroupProps[\"checkedValues\"];\n readOnly?: boolean;\n validationStatus?: AdornmentValidationStatus;\n}\n\nconst CheckboxGroupContext = createContext<CheckboxGroupState>({});\n\nif (process.env.NODE_ENV !== \"production\") {\n CheckboxGroupContext.displayName = \"CheckboxGroupContext\";\n}\n\nexport { CheckboxGroupContext };\n"],"names":[],"mappings":";;AAeM,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,4 @@
1
+ var css_248z = "/* Styles applied to Drawer component */\n.saltDrawer {\n background: var(--drawer-background);\n display: flex;\n flex-direction: column;\n max-height: 100%;\n max-width: 100%;\n overflow: auto;\n padding: var(--salt-spacing-300);\n box-shadow: var(--salt-overlayable-shadow-modal);\n z-index: calc(var(--salt-zIndex-appHeader) - 1);\n position: fixed;\n top: 0;\n}\n\n.saltDrawer-overlay {\n background: var(--salt-overlayable-background);\n z-index: var(--salt-zIndex-drawer);\n}\n\n/* Styles applied when variant = \"primary\" */\n.saltDrawer-primary {\n --drawer-background: var(--salt-container-primary-background);\n}\n\n/* Styles applied when variant = \"secondary\" */\n.saltDrawer-secondary {\n --drawer-background: var(--salt-container-secondary-background);\n}\n\n/* Styles applied when position = \"top\" */\n.saltDrawer-top {\n left: 0;\n right: 0;\n bottom: auto;\n}\n\n/* Styles applied when position = \"top\" and the component mounts */\n.saltDrawer-top.saltDrawer-enterAnimation {\n animation: var(--salt-animation-slide-in-bottom);\n}\n\n/* Styles applied when position = \"top\" and the component unmounts */\n.saltDrawer-top.saltDrawer-exitAnimation {\n animation: var(--salt-animation-slide-out-bottom);\n}\n\n/* Styles applied when position = \"right\" or position = \"left\" */\n.saltDrawer-right,\n.saltDrawer-left {\n width: calc(10 * var(--salt-size-base));\n}\n\n/* Styles applied when position = \"right\" */\n.saltDrawer-right {\n left: auto;\n right: 0;\n height: 100%;\n}\n\n/* Styles applied when position = \"right\" and the component mounts */\n.saltDrawer-right.saltDrawer-enterAnimation {\n animation: var(--salt-animation-slide-in-right);\n}\n\n/* Styles applied when position = \"right\" and the component unmounts */\n.saltDrawer-right.saltDrawer-exitAnimation {\n animation: var(--salt-animation-slide-out-right);\n}\n\n/* Styles applied when position = \"left\" */\n.saltDrawer-left {\n left: 0;\n right: auto;\n height: 100%;\n}\n\n/* Styles applied when position = \"left\" and the component mounts */\n.saltDrawer-left.saltDrawer-enterAnimation {\n animation: var(--salt-animation-slide-in-left);\n}\n\n/* Styles applied when position = \"left\" and the component unmounts */\n.saltDrawer-left.saltDrawer-exitAnimation {\n animation: var(--salt-animation-slide-out-left);\n}\n\n/* Styles applied when position = \"bottom\" */\n.saltDrawer-bottom {\n left: 0;\n right: 0;\n bottom: 0;\n top: auto;\n}\n\n/* Styles applied when position = \"bottom\" and the component mounts */\n.saltDrawer-bottom.saltDrawer-enterAnimation {\n animation: var(--salt-animation-slide-in-top);\n}\n\n/* Styles applied when position = \"bottom\" and the component unmounts */\n.saltDrawer-bottom.saltDrawer-exitAnimation {\n animation: var(--salt-animation-slide-out-top);\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=Drawer.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,77 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useState, useEffect } from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { FloatingPortal, FloatingOverlay, FloatingFocusManager } from '@floating-ui/react';
5
+ import { makePrefixer } from '../utils/makePrefixer.js';
6
+ import '../utils/useFloatingUI.js';
7
+ import { useForkRef } from '../utils/useForkRef.js';
8
+ import '../utils/useId.js';
9
+ import '../salt-provider/SaltProvider.js';
10
+ import '../viewport/ViewportProvider.js';
11
+ import { useWindow } from '@salt-ds/window';
12
+ import { useComponentCssInjection } from '@salt-ds/styles';
13
+ import { useDrawer } from './useDrawer.js';
14
+ import css_248z from './Drawer.css.js';
15
+
16
+ const DRAWER_POSITIONS = ["left", "top", "right", "bottom"];
17
+ const withBaseName = makePrefixer("saltDrawer");
18
+ const Drawer = forwardRef(function Drawer2(props, ref) {
19
+ const {
20
+ children,
21
+ className,
22
+ position = "left",
23
+ open = true,
24
+ onOpenChange,
25
+ variant = "primary",
26
+ ...rest
27
+ } = props;
28
+ const targetWindow = useWindow();
29
+ useComponentCssInjection({
30
+ testId: "salt-drawer",
31
+ css: css_248z,
32
+ window: targetWindow
33
+ });
34
+ const [showComponent, setShowComponent] = useState(false);
35
+ const { floating, context } = useDrawer({
36
+ open,
37
+ onOpenChange
38
+ });
39
+ const floatingRef = useForkRef(floating, ref);
40
+ useEffect(() => {
41
+ if (open && !showComponent) {
42
+ setShowComponent(true);
43
+ }
44
+ }, [open, showComponent]);
45
+ return /* @__PURE__ */ jsx(FloatingPortal, {
46
+ children: showComponent && /* @__PURE__ */ jsx(FloatingOverlay, {
47
+ className: withBaseName("overlay"),
48
+ lockScroll: true,
49
+ children: /* @__PURE__ */ jsx(FloatingFocusManager, {
50
+ context,
51
+ children: /* @__PURE__ */ jsx("div", {
52
+ ref: floatingRef,
53
+ className: clsx(
54
+ withBaseName(),
55
+ withBaseName(position),
56
+ {
57
+ [withBaseName("enterAnimation")]: open,
58
+ [withBaseName("exitAnimation")]: !open,
59
+ [withBaseName(variant)]: variant
60
+ },
61
+ className
62
+ ),
63
+ onAnimationEnd: () => {
64
+ if (!open && showComponent) {
65
+ setShowComponent(false);
66
+ }
67
+ },
68
+ ...rest,
69
+ children
70
+ })
71
+ })
72
+ })
73
+ });
74
+ });
75
+
76
+ export { DRAWER_POSITIONS, Drawer };
77
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","sources":["../src/drawer/Drawer.tsx"],"sourcesContent":["import { forwardRef, HTMLAttributes, useEffect, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n} from \"@floating-ui/react\";\nimport { makePrefixer, useForkRef } from \"../utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useDrawer } from \"./useDrawer\";\n\nimport drawerCss from \"./Drawer.css\";\n\nexport const DRAWER_POSITIONS = [\"left\", \"top\", \"right\", \"bottom\"] as const;\n\nexport type DrawerPositions = typeof DRAWER_POSITIONS[number];\n\nexport interface DrawerProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Defines the drawer position within the screen.\n */\n position?: DrawerPositions;\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Change background color palette\n */\n variant?: \"primary\" | \"secondary\";\n}\n\nconst withBaseName = makePrefixer(\"saltDrawer\");\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(function Drawer(\n props,\n ref\n) {\n const {\n children,\n className,\n position = \"left\",\n open = true,\n onOpenChange,\n variant = \"primary\",\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-drawer\",\n css: drawerCss,\n window: targetWindow,\n });\n\n const [showComponent, setShowComponent] = useState(false);\n\n const { floating, context } = useDrawer({\n open,\n onOpenChange,\n });\n\n const floatingRef = useForkRef<HTMLDivElement>(floating, ref);\n\n useEffect(() => {\n if (open && !showComponent) {\n setShowComponent(true);\n }\n }, [open, showComponent]);\n\n return (\n <FloatingPortal>\n {showComponent && (\n <FloatingOverlay className={withBaseName(\"overlay\")} lockScroll>\n <FloatingFocusManager context={context}>\n <div\n ref={floatingRef}\n className={clsx(\n withBaseName(),\n withBaseName(position),\n {\n [withBaseName(\"enterAnimation\")]: open,\n [withBaseName(\"exitAnimation\")]: !open,\n [withBaseName(variant)]: variant,\n },\n className\n )}\n onAnimationEnd={() => {\n if (!open && showComponent) {\n setShowComponent(false);\n }\n }}\n {...rest}\n >\n {children}\n </div>\n </FloatingFocusManager>\n </FloatingOverlay>\n )}\n </FloatingPortal>\n );\n});\n"],"names":["Drawer","drawerCss"],"mappings":";;;;;;;;;;;;;;;AAcO,MAAM,gBAAmB,GAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,SAAS,QAAQ,EAAA;AAuBjE,MAAM,YAAA,GAAe,aAAa,YAAY,CAAA,CAAA;AAEvC,MAAM,MAAS,GAAA,UAAA,CAAwC,SAASA,OAAAA,CACrE,OACA,GACA,EAAA;AACA,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAW,GAAA,MAAA;AAAA,IACX,IAAO,GAAA,IAAA;AAAA,IACP,YAAA;AAAA,IACA,OAAU,GAAA,SAAA;AAAA,IACP,GAAA,IAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,aAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAExD,EAAA,MAAM,EAAE,QAAA,EAAU,OAAQ,EAAA,GAAI,SAAU,CAAA;AAAA,IACtC,IAAA;AAAA,IACA,YAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,UAA2B,CAAA,QAAA,EAAU,GAAG,CAAA,CAAA;AAE5D,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,IAAA,IAAQ,CAAC,aAAe,EAAA;AAC1B,MAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAAA,KACvB;AAAA,GACC,EAAA,CAAC,IAAM,EAAA,aAAa,CAAC,CAAA,CAAA;AAExB,EAAA,uBACG,GAAA,CAAA,cAAA,EAAA;AAAA,IACE,2CACE,GAAA,CAAA,eAAA,EAAA;AAAA,MAAgB,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,MAAG,UAAU,EAAA,IAAA;AAAA,MAC7D,QAAC,kBAAA,GAAA,CAAA,oBAAA,EAAA;AAAA,QAAqB,OAAA;AAAA,QACpB,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,UACC,GAAK,EAAA,WAAA;AAAA,UACL,SAAW,EAAA,IAAA;AAAA,YACT,YAAa,EAAA;AAAA,YACb,aAAa,QAAQ,CAAA;AAAA,YACrB;AAAA,cACE,CAAC,YAAa,CAAA,gBAAgB,CAAI,GAAA,IAAA;AAAA,cAClC,CAAC,YAAA,CAAa,eAAe,CAAA,GAAI,CAAC,IAAA;AAAA,cAClC,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,OAAA;AAAA,aAC3B;AAAA,YACA,SAAA;AAAA,WACF;AAAA,UACA,gBAAgB,MAAM;AACpB,YAAI,IAAA,CAAC,QAAQ,aAAe,EAAA;AAC1B,cAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;AAAA,aACxB;AAAA,WACF;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA;AAAA,SACH,CAAA;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,32 @@
1
+ import { useClick, useRole, useDismiss, useInteractions } from '@floating-ui/react';
2
+ import 'react';
3
+ import { useFloatingUI } from '../utils/useFloatingUI.js';
4
+ import '../utils/useId.js';
5
+ import '../salt-provider/SaltProvider.js';
6
+ import '../viewport/ViewportProvider.js';
7
+ import 'clsx';
8
+
9
+ function useDrawer(props) {
10
+ const { open, onOpenChange } = props;
11
+ const { context, floating } = useFloatingUI({
12
+ open,
13
+ onOpenChange
14
+ });
15
+ const click = useClick(context);
16
+ const role = useRole(context);
17
+ const dismiss = useDismiss(context);
18
+ const { getFloatingProps, getReferenceProps } = useInteractions([
19
+ role,
20
+ dismiss,
21
+ click
22
+ ]);
23
+ return {
24
+ getFloatingProps,
25
+ getReferenceProps,
26
+ floating,
27
+ context
28
+ };
29
+ }
30
+
31
+ export { useDrawer };
32
+ //# sourceMappingURL=useDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDrawer.js","sources":["../src/drawer/useDrawer.ts"],"sourcesContent":["import {\n useClick,\n useDismiss,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport { useFloatingUI, UseFloatingUIProps } from \"../utils\";\n\nexport type UseDrawerProps = Partial<\n Pick<UseFloatingUIProps, \"onOpenChange\" | \"open\">\n>;\n\nexport function useDrawer(props: UseDrawerProps) {\n const { open, onOpenChange } = props;\n\n const { context, floating } = useFloatingUI({\n open,\n onOpenChange,\n });\n\n const click = useClick(context);\n const role = useRole(context);\n const dismiss = useDismiss(context);\n\n const { getFloatingProps, getReferenceProps } = useInteractions([\n role,\n dismiss,\n click,\n ]);\n\n return {\n getFloatingProps,\n getReferenceProps,\n floating,\n context,\n };\n}\n"],"names":[],"mappings":";;;;;;;;AAYO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAM,MAAA,EAAE,IAAM,EAAA,YAAA,EAAiB,GAAA,KAAA,CAAA;AAE/B,EAAA,MAAM,EAAE,OAAA,EAAS,QAAS,EAAA,GAAI,aAAc,CAAA;AAAA,IAC1C,IAAA;AAAA,IACA,YAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,KAAA,GAAQ,SAAS,OAAO,CAAA,CAAA;AAC9B,EAAM,MAAA,IAAA,GAAO,QAAQ,OAAO,CAAA,CAAA;AAC5B,EAAM,MAAA,OAAA,GAAU,WAAW,OAAO,CAAA,CAAA;AAElC,EAAA,MAAM,EAAE,gBAAA,EAAkB,iBAAkB,EAAA,GAAI,eAAgB,CAAA;AAAA,IAC9D,IAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,gBAAA;AAAA,IACA,iBAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltFormField {\n display: inline-grid;\n position: relative;\n gap: var(--salt-spacing-100);\n text-align: left;\n width: var(--saltFormField-width, 100%);\n}\n\n.saltFormField-labelTop {\n grid-template-areas:\n \"label\"\n \"controls\"\n \"helperText\";\n}\n\n.saltFormField-labelLeft {\n align-self: center;\n grid-template-columns: 40% 1fr;\n grid-template-areas:\n \"label controls\"\n \"auto helperText\";\n}\n\n.saltFormField-controls {\n align-items: center;\n display: grid;\n grid-auto-columns: minmax(0, 1fr);\n grid-auto-flow: column;\n grid-column-gap: var(--salt-spacing-100);\n}\n\n.saltFormField > *,\n.saltFormFieldControlWrapper {\n grid-area: controls;\n}\n\n.saltFormFieldLabel {\n grid-area: label;\n}\n\n.saltFormFieldHelperText {\n grid-area: helperText;\n}\n\n.saltFormField-disabled {\n --saltInput-outline: none;\n --saltCheckbox-outline: none;\n --saltRadioButton-outline: none;\n}\n";
1
+ var css_248z = ".saltFormField {\n display: inline-grid;\n position: relative;\n gap: var(--salt-spacing-100);\n text-align: left;\n width: var(--saltFormField-width, 100%);\n}\n\n.saltFormField-labelTop {\n grid-template-areas:\n \"label\"\n \"controls\"\n \"helperText\";\n}\n\n.saltFormField-labelLeft {\n align-self: center;\n grid-template-columns: var(--formField-label-width, 40%) 1fr;\n grid-template-areas:\n \"label controls\"\n \"auto helperText\";\n}\n\n.saltFormField-labelRight {\n align-self: center;\n grid-template-columns: var(--formField-label-width, 40%) 1fr;\n grid-template-areas:\n \"label controls\"\n \"auto helperText\";\n}\n\n.saltFormField-labelRight .saltFormFieldLabel,\n.saltFormField-labelLeft .saltFormFieldLabel {\n padding-top: var(--salt-spacing-100);\n}\n\n.saltFormField-labelRight .saltFormFieldLabel {\n text-align: right;\n}\n\n.saltFormField-controls {\n align-items: center;\n display: grid;\n grid-auto-columns: minmax(0, 1fr);\n grid-auto-flow: column;\n grid-column-gap: var(--salt-spacing-100);\n}\n\n.saltFormFieldLabel {\n grid-area: label;\n}\n\n.saltFormFieldHelperText {\n grid-area: helperText;\n}\n\n.saltFormField-disabled {\n --saltInput-outline: none;\n --saltCheckbox-outline: none;\n --saltRadioButton-outline: none;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=FormField.css.js.map
@@ -1,6 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { clsx } from 'clsx';
3
3
  import { forwardRef } from 'react';
4
+ import { useComponentCssInjection } from '@salt-ds/styles';
5
+ import { useWindow } from '@salt-ds/window';
4
6
  import { FormFieldContext } from '../form-field-context/FormFieldContext.js';
5
7
  import { capitalize } from '../utils/capitalize.js';
6
8
  import { makePrefixer } from '../utils/makePrefixer.js';
@@ -8,8 +10,6 @@ import '../utils/useFloatingUI.js';
8
10
  import { useId } from '../utils/useId.js';
9
11
  import '../salt-provider/SaltProvider.js';
10
12
  import '../viewport/ViewportProvider.js';
11
- import { useWindow } from '@salt-ds/window';
12
- import { useComponentCssInjection } from '@salt-ds/styles';
13
13
  import css_248z from './FormField.css.js';
14
14
 
15
15
  const withBaseName = makePrefixer("saltFormField");
@@ -54,9 +54,9 @@ const FormField = forwardRef(
54
54
  "aria-describedby": helperTextId
55
55
  },
56
56
  disabled,
57
+ necessity,
57
58
  readOnly,
58
- validationStatus,
59
- necessity
59
+ validationStatus
60
60
  },
61
61
  children
62
62
  })
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.js","sources":["../src/form-field/FormField.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ForwardedRef, forwardRef, HTMLAttributes } from \"react\";\nimport { A11yValueProps, FormFieldContext } from \"../form-field-context\";\nimport { makePrefixer, useId, capitalize } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport formFieldCss from \"./FormField.css\";\n\nexport type FormFieldLabelPlacement = \"top\" | \"left\";\n\nexport interface FormFieldProps\n extends HTMLAttributes<HTMLDivElement>,\n A11yValueProps {\n /**\n * Disabled prop\n */\n disabled?: boolean;\n /**\n * Location of the label, values: 'top' (default) or 'left'\n */\n labelPlacement?: FormFieldLabelPlacement;\n /**\n * Readonly prop\n */\n readOnly?: boolean;\n /**\n * Optional id prop\n *\n * Used as suffix of FormFieldLabel id: `label-{id}`\n * Used as suffix of FormFieldHelperText id: `helperText-{id}`\n */\n id?: string;\n /**\n * Displays necessity on label\n */\n necessity?: \"required\" | \"optional\" | \"asterisk\";\n /**\n * Validation status\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n}\n\nconst withBaseName = makePrefixer(\"saltFormField\");\n\nexport const FormField = forwardRef(\n (\n {\n children,\n className,\n disabled = false,\n id: idProp,\n labelPlacement = \"top\",\n necessity,\n onBlur,\n onFocus,\n readOnly = false,\n validationStatus,\n ...restProps\n }: FormFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-form-field\",\n css: formFieldCss,\n window: targetWindow,\n });\n\n const formId = useId(idProp);\n\n const labelId = formId ? `label-${formId}` : undefined;\n const helperTextId = formId ? `helperText-${formId}` : undefined;\n\n return (\n <div\n ref={ref}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(`label${capitalize(labelPlacement)}`)]:\n labelPlacement,\n },\n className\n )}\n {...restProps}\n >\n <FormFieldContext.Provider\n value={{\n a11yProps: {\n \"aria-labelledby\": labelId,\n \"aria-describedby\": helperTextId,\n },\n disabled,\n readOnly,\n validationStatus,\n necessity,\n }}\n >\n {children}\n </FormFieldContext.Provider>\n </div>\n );\n }\n);\n"],"names":["formFieldCss"],"mappings":";;;;;;;;;;;;;;AA4CA,MAAM,YAAA,GAAe,aAAa,eAAe,CAAA,CAAA;AAE1C,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CACE;AAAA,IACE,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,EAAI,EAAA,MAAA;AAAA,IACJ,cAAiB,GAAA,KAAA;AAAA,IACjB,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,gBAAA;AAAA,IACG,GAAA,SAAA;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAA,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA,MAAA,GAAS,MAAM,MAAM,CAAA,CAAA;AAE3B,IAAM,MAAA,OAAA,GAAU,MAAS,GAAA,CAAA,MAAA,EAAS,MAAW,CAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AAC7C,IAAM,MAAA,YAAA,GAAe,MAAS,GAAA,CAAA,WAAA,EAAc,MAAW,CAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AAEvD,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,CAAA,KAAA,EAAQ,UAAW,CAAA,cAAc,GAAG,CAChD,GAAA,cAAA;AAAA,SACJ;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,SAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,iBAAiB,QAAjB,EAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,SAAW,EAAA;AAAA,YACT,iBAAmB,EAAA,OAAA;AAAA,YACnB,kBAAoB,EAAA,YAAA;AAAA,WACtB;AAAA,UACA,QAAA;AAAA,UACA,QAAA;AAAA,UACA,gBAAA;AAAA,UACA,SAAA;AAAA,SACF;AAAA,QAEC,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"FormField.js","sources":["../src/form-field/FormField.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ForwardedRef, forwardRef, HTMLAttributes } from \"react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { A11yValueProps, FormFieldContext } from \"../form-field-context\";\nimport { makePrefixer, useId, capitalize } from \"../utils\";\n\nimport formFieldCss from \"./FormField.css\";\n\nexport type FormFieldLabelPlacement = \"top\" | \"left\" | \"right\";\n\nexport interface FormFieldProps\n extends HTMLAttributes<HTMLDivElement>,\n A11yValueProps {\n /**\n * Disabled prop\n */\n disabled?: boolean;\n /**\n * Location of the label, values: 'top' (default) or 'left'\n */\n labelPlacement?: FormFieldLabelPlacement;\n /**\n * Readonly prop\n */\n readOnly?: boolean;\n /**\n * Optional id prop\n *\n * Used as suffix of FormFieldLabel id: `label-{id}`\n * Used as suffix of FormFieldHelperText id: `helperText-{id}`\n */\n id?: string;\n /**\n * Displays necessity on label\n */\n necessity?: \"required\" | \"optional\" | \"asterisk\";\n /**\n * Validation status\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n}\n\nconst withBaseName = makePrefixer(\"saltFormField\");\n\nexport const FormField = forwardRef(\n (\n {\n children,\n className,\n disabled = false,\n id: idProp,\n labelPlacement = \"top\",\n necessity,\n onBlur,\n onFocus,\n readOnly = false,\n validationStatus,\n ...restProps\n }: FormFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-form-field\",\n css: formFieldCss,\n window: targetWindow,\n });\n\n const formId = useId(idProp);\n\n const labelId = formId ? `label-${formId}` : undefined;\n const helperTextId = formId ? `helperText-${formId}` : undefined;\n\n return (\n <div\n ref={ref}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(`label${capitalize(labelPlacement)}`)]:\n labelPlacement,\n },\n className\n )}\n {...restProps}\n >\n <FormFieldContext.Provider\n value={{\n a11yProps: {\n \"aria-labelledby\": labelId,\n \"aria-describedby\": helperTextId,\n },\n disabled,\n necessity,\n readOnly,\n validationStatus,\n }}\n >\n {children}\n </FormFieldContext.Provider>\n </div>\n );\n }\n);\n"],"names":["formFieldCss"],"mappings":";;;;;;;;;;;;;;AA2CA,MAAM,YAAA,GAAe,aAAa,eAAe,CAAA,CAAA;AAE1C,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CACE;AAAA,IACE,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,EAAI,EAAA,MAAA;AAAA,IACJ,cAAiB,GAAA,KAAA;AAAA,IACjB,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,gBAAA;AAAA,IACG,GAAA,SAAA;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAA,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA,MAAA,GAAS,MAAM,MAAM,CAAA,CAAA;AAE3B,IAAM,MAAA,OAAA,GAAU,MAAS,GAAA,CAAA,MAAA,EAAS,MAAW,CAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AAC7C,IAAM,MAAA,YAAA,GAAe,MAAS,GAAA,CAAA,WAAA,EAAc,MAAW,CAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AAEvD,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,CAAA,KAAA,EAAQ,UAAW,CAAA,cAAc,GAAG,CAChD,GAAA,cAAA;AAAA,SACJ;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,SAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,iBAAiB,QAAjB,EAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,SAAW,EAAA;AAAA,YACT,iBAAmB,EAAA,OAAA;AAAA,YACnB,kBAAoB,EAAA,YAAA;AAAA,WACtB;AAAA,UACA,QAAA;AAAA,UACA,SAAA;AAAA,UACA,QAAA;AAAA,UACA,gBAAA;AAAA,SACF;AAAA,QAEC,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltFormFieldHelperText {\n cursor: default;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n\n.saltFormFieldHelperText .saltText {\n font-style: var(--saltFormField-helperText-fontStyle, var(--salt-editable-help-fontStyle));\n}\n\n.saltFormFieldHelperText-withValidation {\n column-gap: var(--salt-spacing-100);\n}\n";
1
+ var css_248z = ".saltFormFieldHelperText {\n cursor: default;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n\n.saltFormFieldHelperText .saltText {\n font-style: var(--saltFormField-helperText-fontStyle, var(--salt-editable-help-fontStyle));\n}\n\n.saltFormFieldHelperText-withValidation {\n column-gap: var(--salt-spacing-75);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=FormFieldHelperText.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltFormFieldLabel.saltText {\n font-weight: var(--saltFormField-label-fontWeight, var(--salt-text-fontWeight-strong));\n width: 100%;\n}\n\n.saltFormFieldLabel:hover + .saltFormField-controls * {\n --input-borderColor: var(--input-borderColor-hover);\n}\n\n.saltFormField-labelLeft .saltFormFieldLabel.saltText {\n align-self: baseline;\n padding-top: var(--salt-spacing-100);\n}\n\n.saltFormFieldLabel-necessityLabel {\n font-weight: var(--salt-text-fontWeight);\n font-style: var(--salt-editable-help-fontStyle);\n}\n";
1
+ var css_248z = ".saltFormFieldLabel.saltText {\n font-weight: var(--saltFormField-label-fontWeight, var(--salt-text-fontWeight-strong));\n width: 100%;\n}\n\n.saltFormFieldLabel:hover + .saltFormField-controls * {\n --input-borderColor: var(--input-borderColor-hover);\n}\n\n.saltFormField-labelLeft .saltFormFieldLabel.saltText {\n align-self: baseline;\n padding-top: var(--salt-spacing-100);\n}\n\n.saltFormFieldLabel-necessityLabel {\n font-weight: var(--salt-text-fontWeight);\n font-style: var(--salt-editable-help-fontStyle);\n}\n\n.saltFormFieldLabel-sentence.saltText {\n color: var(--salt-text-primary-foreground);\n font-size: var(--salt-text-fontSize);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=FormFieldLabel.css.js.map
@@ -1,5 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { clsx } from 'clsx';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
3
5
  import '../form-field-context/FormFieldContext.js';
4
6
  import { useFormFieldProps } from '../form-field-context/useFormFieldProps.js';
5
7
  import '../text/Text.js';
@@ -13,14 +15,13 @@ import '../utils/useFloatingUI.js';
13
15
  import '../utils/useId.js';
14
16
  import '../salt-provider/SaltProvider.js';
15
17
  import '../viewport/ViewportProvider.js';
16
- import { useWindow } from '@salt-ds/window';
17
- import { useComponentCssInjection } from '@salt-ds/styles';
18
18
  import css_248z from './FormFieldLabel.css.js';
19
19
 
20
20
  const withBaseName = makePrefixer("saltFormFieldLabel");
21
21
  const FormFieldLabel = ({
22
22
  className,
23
23
  children,
24
+ intent = "label",
24
25
  ...restProps
25
26
  }) => {
26
27
  const { a11yProps, disabled, necessity } = useFormFieldProps();
@@ -30,10 +31,10 @@ const FormFieldLabel = ({
30
31
  css: css_248z,
31
32
  window: targetWindow
32
33
  });
33
- const necessityLabel = necessity ? necessity === "asterisk" ? "*" : ` (${capitalize(necessity)})` : void 0;
34
+ const necessityLabel = necessity ? necessity === "asterisk" ? " *" : ` (${capitalize(necessity)})` : void 0;
34
35
  return /* @__PURE__ */ jsxs(Label, {
35
36
  as: "label",
36
- className: clsx(withBaseName(), className),
37
+ className: clsx(withBaseName(), withBaseName(intent), className),
37
38
  id: a11yProps == null ? void 0 : a11yProps["aria-labelledby"],
38
39
  disabled,
39
40
  variant: "secondary",
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldLabel.js","sources":["../src/form-field/FormFieldLabel.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { Label, TextProps } from \"../text\";\nimport { capitalize, makePrefixer } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport formFieldLabelCss from \"./FormFieldLabel.css\";\n\nconst withBaseName = makePrefixer(\"saltFormFieldLabel\");\n\nexport const FormFieldLabel = ({\n className,\n children,\n ...restProps\n}: Omit<TextProps<\"label\">, \"variant\" | \"styleAs\">) => {\n const { a11yProps, disabled, necessity } = useFormFieldProps();\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-form-field-label\",\n css: formFieldLabelCss,\n window: targetWindow,\n });\n\n const necessityLabel = necessity\n ? necessity === \"asterisk\"\n ? \"*\"\n : ` (${capitalize(necessity)})`\n : undefined;\n\n return (\n <Label\n as=\"label\"\n className={clsx(withBaseName(), className)}\n id={a11yProps?.[\"aria-labelledby\"]}\n disabled={disabled}\n variant=\"secondary\"\n {...restProps}\n >\n {children}\n {necessityLabel && (\n <span className={withBaseName(\"necessityLabel\")}>{necessityLabel}</span>\n )}\n </Label>\n );\n};\n"],"names":["formFieldLabelCss"],"mappings":";;;;;;;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AAE/C,MAAM,iBAAiB,CAAC;AAAA,EAC7B,SAAA;AAAA,EACA,QAAA;AAAA,EACG,GAAA,SAAA;AACL,CAAuD,KAAA;AACrD,EAAA,MAAM,EAAE,SAAA,EAAW,QAAU,EAAA,SAAA,KAAc,iBAAkB,EAAA,CAAA;AAC7D,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,cAAA,GAAiB,YACnB,SAAc,KAAA,UAAA,GACZ,MACA,CAAK,EAAA,EAAA,UAAA,CAAW,SAAS,CAC3B,CAAA,CAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AAEJ,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,EAAG,EAAA,OAAA;AAAA,IACH,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,IAAI,SAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,iBAAA,CAAA;AAAA,IAChB,QAAA;AAAA,IACA,OAAQ,EAAA,WAAA;AAAA,IACP,GAAG,SAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,MACA,kCACE,GAAA,CAAA,MAAA,EAAA;AAAA,QAAK,SAAA,EAAW,aAAa,gBAAgB,CAAA;AAAA,QAAI,QAAA,EAAA,cAAA;AAAA,OAAe,CAAA;AAAA,KAAA;AAAA,GAErE,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FormFieldLabel.js","sources":["../src/form-field/FormFieldLabel.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { Label, TextProps } from \"../text\";\nimport { capitalize, makePrefixer } from \"../utils\";\n\nimport formFieldLabelCss from \"./FormFieldLabel.css\";\n\nconst withBaseName = makePrefixer(\"saltFormFieldLabel\");\n\nexport interface FormFieldLabelProps\n extends Omit<TextProps<\"label\">, \"variant\" | \"styleAs\"> {\n /**\n * Intent for the label.\n *\n * Defaults to \"label\"\n * Using \"sentence\" gives more prominent styling\n */\n intent?: \"label\" | \"sentence\";\n}\n\nexport const FormFieldLabel = ({\n className,\n children,\n intent = \"label\",\n ...restProps\n}: FormFieldLabelProps) => {\n const { a11yProps, disabled, necessity } = useFormFieldProps();\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-form-field-label\",\n css: formFieldLabelCss,\n window: targetWindow,\n });\n\n const necessityLabel = necessity\n ? necessity === \"asterisk\"\n ? \" *\"\n : ` (${capitalize(necessity)})`\n : undefined;\n\n return (\n <Label\n as=\"label\"\n className={clsx(withBaseName(), withBaseName(intent), className)}\n id={a11yProps?.[\"aria-labelledby\"]}\n disabled={disabled}\n variant=\"secondary\"\n {...restProps}\n >\n {children}\n {necessityLabel && (\n <span className={withBaseName(\"necessityLabel\")}>{necessityLabel}</span>\n )}\n </Label>\n );\n};\n"],"names":["formFieldLabelCss"],"mappings":";;;;;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AAa/C,MAAM,iBAAiB,CAAC;AAAA,EAC7B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAS,GAAA,OAAA;AAAA,EACN,GAAA,SAAA;AACL,CAA2B,KAAA;AACzB,EAAA,MAAM,EAAE,SAAA,EAAW,QAAU,EAAA,SAAA,KAAc,iBAAkB,EAAA,CAAA;AAC7D,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,cAAA,GAAiB,YACnB,SAAc,KAAA,UAAA,GACZ,OACA,CAAK,EAAA,EAAA,UAAA,CAAW,SAAS,CAC3B,CAAA,CAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AAEJ,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,EAAG,EAAA,OAAA;AAAA,IACH,WAAW,IAAK,CAAA,YAAA,IAAgB,YAAa,CAAA,MAAM,GAAG,SAAS,CAAA;AAAA,IAC/D,IAAI,SAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,iBAAA,CAAA;AAAA,IAChB,QAAA;AAAA,IACA,OAAQ,EAAA,WAAA;AAAA,IACP,GAAG,SAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,MACA,kCACE,GAAA,CAAA,MAAA,EAAA;AAAA,QAAK,SAAA,EAAW,aAAa,gBAAgB,CAAA;AAAA,QAAI,QAAA,EAAA,cAAA;AAAA,OAAe,CAAA;AAAA,KAAA;AAAA,GAErE,CAAA,CAAA;AAEJ;;;;"}
package/dist-es/index.js CHANGED
@@ -1,3 +1,7 @@
1
+ export { AccordionGroup } from './accordion/AccordionGroup.js';
2
+ export { AccordionPanel } from './accordion/AccordionPanel.js';
3
+ export { Accordion } from './accordion/Accordion.js';
4
+ export { AccordionHeader } from './accordion/AccordionHeader.js';
1
5
  export { AriaAnnouncerContext } from './aria-announcer/AriaAnnouncerContext.js';
2
6
  export { AriaAnnounce } from './aria-announcer/AriaAnnounce.js';
3
7
  export { ARIA_ANNOUNCE_DELAY, AriaAnnouncerProvider } from './aria-announcer/AriaAnnouncerProvider.js';
@@ -17,11 +21,12 @@ export { InteractableCard } from './card/InteractableCard.js';
17
21
  export { Checkbox } from './checkbox/Checkbox.js';
18
22
  export { CheckboxGroup } from './checkbox/CheckboxGroup.js';
19
23
  export { CheckboxIcon } from './checkbox/CheckboxIcon.js';
24
+ export { DRAWER_POSITIONS, Drawer } from './drawer/Drawer.js';
25
+ export { useDrawer } from './drawer/useDrawer.js';
20
26
  export { FLEX_ITEM_ALIGNMENTS, FlexItem } from './flex-item/FlexItem.js';
21
27
  export { FLEX_ALIGNMENT_BASE, FLEX_CONTENT_ALIGNMENT_BASE, FlexLayout } from './flex-layout/FlexLayout.js';
22
28
  export { FlowLayout } from './flow-layout/FlowLayout.js';
23
29
  export { FormField } from './form-field/FormField.js';
24
- export { ControlWrapperContext, FormFieldControlWrapper, useControlWrapper } from './form-field/FormFieldControlWrapper.js';
25
30
  export { FormFieldHelperText } from './form-field/FormFieldHelperText.js';
26
31
  export { FormFieldLabel } from './form-field/FormFieldLabel.js';
27
32
  export { FormFieldContext } from './form-field-context/FormFieldContext.js';
@@ -29,14 +34,15 @@ export { useFormFieldProps } from './form-field-context/useFormFieldProps.js';
29
34
  export { GRID_ALIGNMENT_BASE, GridItem } from './grid-item/GridItem.js';
30
35
  export { GridLayout } from './grid-layout/GridLayout.js';
31
36
  export { Input } from './input/Input.js';
32
- export { AdornmentButton } from './input/adornment-button/AdornmentButton.js';
33
37
  export { Link } from './link/Link.js';
38
+ export { MultilineInput } from './multiline-input/MultilineInput.js';
34
39
  export { Panel } from './panel/Panel.js';
35
40
  export { RadioButton } from './radio-button/RadioButton.js';
36
41
  export { RadioButtonGroup } from './radio-button/RadioButtonGroup.js';
37
42
  export { RadioButtonIcon } from './radio-button/RadioButtonIcon.js';
38
43
  export { Spinner, SpinnerSizeValues } from './spinner/Spinner.js';
39
44
  export { StackLayout } from './stack-layout/StackLayout.js';
45
+ export { StatusAdornment } from './status-adornment/StatusAdornment.js';
40
46
  export { StatusIndicator } from './status-indicator/StatusIndicator.js';
41
47
  export { VALIDATION_NAMED_STATUS } from './status-indicator/ValidationStatus.js';
42
48
  export { Text } from './text/Text.js';
@@ -46,8 +52,13 @@ export { Label } from './text/Label.js';
46
52
  export { DensityValues } from './theme/Density.js';
47
53
  export { getCharacteristicValue } from './theme/Theme.js';
48
54
  export { ModeValues } from './theme/Mode.js';
55
+ export { Toast } from './toast/Toast.js';
56
+ export { ToastContent } from './toast/ToastContent.js';
49
57
  export { BreakpointContext, DEFAULT_DENSITY, DensityContext, SaltProvider, ThemeContext, useBreakpoints, useDensity, useTheme } from './salt-provider/SaltProvider.js';
50
58
  export { SplitLayout } from './split-layout/SplitLayout.js';
59
+ export { ToggleButton } from './toggle-button/ToggleButton.js';
60
+ export { ToggleButtonGroup } from './toggle-button-group/ToggleButtonGroup.js';
61
+ export { useToggleButtonGroup } from './toggle-button-group/ToggleButtonGroupContext.js';
51
62
  export { Tooltip } from './tooltip/Tooltip.js';
52
63
  export { useTooltip } from './tooltip/useTooltip.js';
53
64
  export { capitalize } from './utils/capitalize.js';
@@ -60,7 +71,7 @@ export { ownerDocument } from './utils/ownerDocument.js';
60
71
  export { ownerWindow } from './utils/ownerWindow.js';
61
72
  export { setRef } from './utils/setRef.js';
62
73
  export { useControlled } from './utils/useControlled.js';
63
- export { DEFAULT_FLOATING_UI_MIDDLEWARE, FloatingComponentProvider, FloatingPlatformProvider, useFloatingComponent, useFloatingUI, usePlatform } from './utils/useFloatingUI.js';
74
+ export { DEFAULT_FLOATING_UI_MIDDLEWARE, useFloatingUI } from './utils/useFloatingUI.js';
64
75
  export { useForkRef } from './utils/useForkRef.js';
65
76
  export { useId, useIdMemo } from './utils/useId.js';
66
77
  export { teardown, useIsFocusVisible } from './utils/useIsFocusVisible.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = "/* Style applied to the root element */\n.saltInput {\n --input-borderColor: var(--salt-editable-borderColor);\n --input-borderStyle: var(--salt-editable-borderStyle);\n --input-outlineColor: var(--salt-focused-outlineColor);\n --input-borderWidth: var(--salt-size-border);\n --input-paddingLeft: var(--salt-spacing-100);\n\n align-items: center;\n background: var(--saltInput-background, var(--input-background));\n color: var(--saltInput-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltInput-fontSize, var(--salt-text-fontSize));\n height: var(--saltInput-height, var(--salt-size-base));\n line-height: var(--saltInput-lineHeight, var(--salt-text-lineHeight));\n min-height: var(--saltInput-minHeight, var(--salt-size-base));\n min-width: var(--saltInput-minWidth, 4em);\n padding-left: var(--saltInput-paddingLeft, var(--input-paddingLeft));\n padding-right: var(--saltInput-paddingRight, var(--salt-spacing-100));\n position: relative;\n width: 100%;\n}\n\n.saltInput:hover {\n --input-borderStyle: var(--salt-editable-borderStyle-hover);\n --input-borderColor: var(--salt-editable-borderColor-hover);\n\n background: var(--saltInput-background-hover, var(--input-background-hover));\n cursor: var(--salt-editable-cursor-hover);\n}\n\n.saltInput:active {\n --input-borderColor: var(--salt-editable-borderColor-active);\n --input-borderStyle: var(--salt-editable-borderStyle-active);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n background: var(--saltInput-background-active, var(--input-background-active));\n cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltInput-primary {\n --input-background: var(--salt-editable-primary-background);\n --input-background-active: var(--salt-editable-primary-background-active);\n --input-background-hover: var(--salt-editable-primary-background-hover);\n --input-background-disabled: var(--salt-editable-primary-background-disabled);\n --input-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltInput-secondary {\n --input-background: var(--salt-editable-secondary-background);\n --input-background-active: var(--salt-editable-secondary-background-active);\n --input-background-hover: var(--salt-editable-secondary-background-active);\n --input-background-disabled: var(--salt-editable-secondary-background-disabled);\n --input-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltInput-error,\n.saltInput-error:hover {\n --input-background: var(--salt-status-error-background);\n --input-background-active: var(--salt-status-error-background);\n --input-background-hover: var(--salt-status-error-background);\n --input-borderColor: var(--salt-status-error-borderColor);\n --input-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltInput-warning,\n.saltInput-warning:hover {\n --input-background: var(--salt-status-warning-background);\n --input-background-active: var(--salt-status-warning-background);\n --input-background-hover: var(--salt-status-warning-background);\n --input-borderColor: var(--salt-status-warning-borderColor);\n --input-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltInput-success,\n.saltInput-success:hover {\n --input-background: var(--salt-status-success-background);\n --input-background-active: var(--salt-status-success-background);\n --input-background-hover: var(--salt-status-success-background);\n --input-borderColor: var(--salt-status-success-borderColor);\n --input-outlineColor: var(--salt-status-success-borderColor);\n}\n\n/* Style applied to inner input component */\n.saltInput-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltInput-letterSpacing, 0);\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--input-textAlign);\n width: 100%;\n}\n\n/* Reset in the class */\n.saltInput-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltInput-input::selection {\n background: var(--salt-text-background-selected);\n}\n\n/* Styling when focused */\n.saltInput-focused {\n --input-borderColor: var(--input-outlineColor);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n outline: var(--saltInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--input-outlineColor));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltInput.saltInput-readOnly {\n --input-borderColor: var(--salt-editable-borderColor-readonly);\n --input-borderStyle: var(--salt-editable-borderStyle-readonly);\n --input-paddingLeft: 0;\n\n background: var(--input-background-readonly);\n cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` or `readOnly={true}` */\n.saltInput-focused.saltInput-readOnly,\n.saltInput-focused.saltInput-disabled {\n --input-borderWidth: var(--salt-size-border);\n outline: none;\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltInput-disabled .saltInput-input::selection {\n background: none;\n}\n\n/* Style applied to input if `disabled={true}` */\n.saltInput.saltInput-disabled,\n.saltInput.saltInput-disabled:hover,\n.saltInput.saltInput-disabled:active {\n --input-borderColor: var(--salt-editable-borderColor-disabled);\n --input-borderStyle: var(--salt-editable-borderStyle-disabled);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-disabled);\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--saltInput-color-disabled, var(--salt-text-primary-foreground-disabled));\n}\n\n.saltInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--input-borderWidth) var(--input-borderStyle) var(--input-borderColor);\n}\n\n/* Style applied to start adornments */\n.saltInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-right: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to end adornments */\n.saltInput-endAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-left: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n.saltInput-startAdornmentContainer .saltAdornmentButton.saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n.saltInput-endAdornmentContainer .saltAdornmentButton.saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n";
1
+ var css_248z = "/* Style applied to the root element */\n.saltInput {\n --input-borderColor: var(--salt-editable-borderColor);\n --input-borderStyle: var(--salt-editable-borderStyle);\n --input-outlineColor: var(--salt-focused-outlineColor);\n --input-borderWidth: var(--salt-size-border);\n --input-paddingLeft: var(--salt-spacing-100);\n\n align-items: center;\n background: var(--saltInput-background, var(--input-background));\n color: var(--saltInput-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltInput-fontSize, var(--salt-text-fontSize));\n height: var(--saltInput-height, var(--salt-size-base));\n line-height: var(--saltInput-lineHeight, var(--salt-text-lineHeight));\n min-height: var(--saltInput-minHeight, var(--salt-size-base));\n min-width: var(--saltInput-minWidth, 4em);\n padding-left: var(--saltInput-paddingLeft, var(--input-paddingLeft));\n padding-right: var(--saltInput-paddingRight, var(--salt-spacing-100));\n position: relative;\n width: 100%;\n}\n\n.saltInput:hover {\n --input-borderStyle: var(--salt-editable-borderStyle-hover);\n --input-borderColor: var(--salt-editable-borderColor-hover);\n\n background: var(--saltInput-background-hover, var(--input-background-hover));\n cursor: var(--salt-editable-cursor-hover);\n}\n\n.saltInput:active {\n --input-borderColor: var(--salt-editable-borderColor-active);\n --input-borderStyle: var(--salt-editable-borderStyle-active);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n background: var(--saltInput-background-active, var(--input-background-active));\n cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltInput-primary {\n --input-background: var(--salt-editable-primary-background);\n --input-background-active: var(--salt-editable-primary-background-active);\n --input-background-hover: var(--salt-editable-primary-background-hover);\n --input-background-disabled: var(--salt-editable-primary-background-disabled);\n --input-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltInput-secondary {\n --input-background: var(--salt-editable-secondary-background);\n --input-background-active: var(--salt-editable-secondary-background-active);\n --input-background-hover: var(--salt-editable-secondary-background-active);\n --input-background-disabled: var(--salt-editable-secondary-background-disabled);\n --input-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltInput-error,\n.saltInput-error:hover {\n --input-background: var(--salt-status-error-background);\n --input-background-active: var(--salt-status-error-background);\n --input-background-hover: var(--salt-status-error-background);\n --input-borderColor: var(--salt-status-error-borderColor);\n --input-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltInput-warning,\n.saltInput-warning:hover {\n --input-background: var(--salt-status-warning-background);\n --input-background-active: var(--salt-status-warning-background);\n --input-background-hover: var(--salt-status-warning-background);\n --input-borderColor: var(--salt-status-warning-borderColor);\n --input-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltInput-success,\n.saltInput-success:hover {\n --input-background: var(--salt-status-success-background);\n --input-background-active: var(--salt-status-success-background);\n --input-background-hover: var(--salt-status-success-background);\n --input-borderColor: var(--salt-status-success-borderColor);\n --input-outlineColor: var(--salt-status-success-borderColor);\n}\n\n/* Style applied to inner input component */\n.saltInput-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltInput-letterSpacing, 0);\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--input-textAlign);\n width: 100%;\n}\n\n/* Reset in the class */\n.saltInput-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltInput-input::selection {\n background: var(--salt-text-background-selected);\n}\n\n/* Style applied to placeholder text */\n.saltInput-input::placeholder {\n font-weight: var(--salt-text-fontWeight-small);\n}\n\n/* Styling when focused */\n.saltInput-focused {\n --input-borderColor: var(--input-outlineColor);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n outline: var(--saltInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--input-outlineColor));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltInput.saltInput-readOnly {\n --input-borderColor: var(--salt-editable-borderColor-readonly);\n --input-borderStyle: var(--salt-editable-borderStyle-readonly);\n --input-borderWidth: var(--salt-size-border);\n --input-paddingLeft: 0;\n\n background: var(--input-background-readonly);\n cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` or `readOnly={true}` */\n.saltInput-focused.saltInput-readOnly,\n.saltInput-focused.saltInput-disabled {\n --input-borderWidth: var(--salt-size-border);\n outline: none;\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltInput-disabled .saltInput-input::selection {\n background: none;\n}\n\n/* Style applied to input if `disabled={true}` */\n.saltInput.saltInput-disabled,\n.saltInput.saltInput-disabled:hover,\n.saltInput.saltInput-disabled:active {\n --input-borderColor: var(--salt-editable-borderColor-disabled);\n --input-borderStyle: var(--salt-editable-borderStyle-disabled);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-disabled);\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--saltInput-color-disabled, var(--salt-text-primary-foreground-disabled));\n}\n\n.saltInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--input-borderWidth) var(--input-borderStyle) var(--input-borderColor);\n}\n\n/* Style applied to start adornments */\n.saltInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-right: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to end adornments */\n.saltInput-endAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-left: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n.saltInput-readOnly .saltInput-startAdornmentContainer {\n margin-left: var(--salt-spacing-50);\n}\n\n.saltInput-startAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n.saltInput-endAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltInput-startAdornmentContainer .saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n.saltInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltInput .saltButton {\n --saltButton-padding: 0;\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n --saltButton-width: calc(var(--salt-size-base) - var(--salt-spacing-100));\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=Input.css.js.map
@@ -13,13 +13,6 @@ import '../salt-provider/SaltProvider.js';
13
13
  import '../viewport/ViewportProvider.js';
14
14
  import { StatusAdornment } from '../status-adornment/StatusAdornment.js';
15
15
  import css_248z from './Input.css.js';
16
- import '../form-field/FormField.js';
17
- import { useControlWrapper } from '../form-field/FormFieldControlWrapper.js';
18
- import '../status-indicator/StatusIndicator.js';
19
- import '../text/Text.js';
20
- import '../text/Display.js';
21
- import '../text/Headings.js';
22
- import '../text/Label.js';
23
16
 
24
17
  const withBaseName = makePrefixer("saltInput");
25
18
  const Input = forwardRef(function Input2({
@@ -42,7 +35,7 @@ const Input = forwardRef(function Input2({
42
35
  value: valueProp,
43
36
  defaultValue: defaultValueProp = valueProp === void 0 ? "" : void 0,
44
37
  validationStatus: validationStatusProp,
45
- variant: variantProp = "primary",
38
+ variant = "primary",
46
39
  ...other
47
40
  }, ref) {
48
41
  const targetWindow = useWindow();
@@ -61,13 +54,11 @@ const Input = forwardRef(function Input2({
61
54
  necessity: formFieldRequired,
62
55
  validationStatus: formFieldValidationStatus
63
56
  } = useFormFieldProps();
64
- const { variant: controlWrapperVariant } = useControlWrapper();
65
57
  const restA11yProps = {
66
58
  "aria-activedescendant": ariaActiveDescendant,
67
59
  "aria-expanded": ariaExpanded,
68
60
  "aria-owns": ariaOwns
69
61
  };
70
- const variant = controlWrapperVariant != null ? controlWrapperVariant : variantProp;
71
62
  const isDisabled = disabled || formFieldDisabled;
72
63
  const isReadOnly = readOnlyProp || formFieldReadOnly;
73
64
  const validationStatus = formFieldValidationStatus != null ? formFieldValidationStatus : validationStatusProp;
@@ -139,7 +130,7 @@ const Input = forwardRef(function Input2({
139
130
  tabIndex: isReadOnly || isDisabled ? -1 : 0,
140
131
  onBlur: handleBlur,
141
132
  onChange: handleChange,
142
- onFocus: !isDisabled ? handleFocus : void 0,
133
+ onFocus: !isDisabled && !isReadOnly ? handleFocus : void 0,
143
134
  placeholder,
144
135
  value,
145
136
  ...restA11yProps,