@salt-ds/lab 1.0.0-alpha.5 → 1.0.0-alpha.6

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 (148) hide show
  1. package/dist-cjs/packages/lab/src/banner/Banner.css.js +1 -1
  2. package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js +1 -0
  3. package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
  4. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js +2 -2
  5. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
  6. package/dist-cjs/packages/lab/src/combo-box/ComboBox.js +1 -0
  7. package/dist-cjs/packages/lab/src/combo-box/ComboBox.js.map +1 -1
  8. package/dist-cjs/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js +1 -0
  9. package/dist-cjs/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  10. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +2 -2
  11. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  12. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +3 -2
  13. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  14. package/dist-cjs/packages/lab/src/common-hooks/useCollectionItems.js +2 -2
  15. package/dist-cjs/packages/lab/src/common-hooks/useCollectionItems.js.map +1 -1
  16. package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js +2 -2
  17. package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
  18. package/dist-cjs/packages/lab/src/dropdown/DropdownButton.js +2 -1
  19. package/dist-cjs/packages/lab/src/dropdown/DropdownButton.js.map +1 -1
  20. package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js +1 -0
  21. package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
  22. package/dist-cjs/packages/lab/src/file-drop-zone/FileDropZone.css.js +1 -1
  23. package/dist-cjs/packages/lab/src/form-field/FormField.css.js +1 -1
  24. package/dist-cjs/packages/lab/src/form-field/FormField.js +1 -0
  25. package/dist-cjs/packages/lab/src/form-field/FormField.js.map +1 -1
  26. package/dist-cjs/packages/lab/src/form-field/FormHelperText.css.js +1 -1
  27. package/dist-cjs/packages/lab/src/form-field/FormHelperText.js +1 -1
  28. package/dist-cjs/packages/lab/src/form-field/FormHelperText.js.map +1 -1
  29. package/dist-cjs/packages/lab/src/form-field-context/FormFieldContextNext.js +13 -0
  30. package/dist-cjs/packages/lab/src/form-field-context/FormFieldContextNext.js.map +1 -0
  31. package/dist-cjs/packages/lab/src/form-field-context/useFormFieldPropsNext.js +13 -0
  32. package/dist-cjs/packages/lab/src/form-field-context/useFormFieldPropsNext.js.map +1 -0
  33. package/dist-cjs/packages/lab/src/form-field-next/FormFieldHelperText.css.js +9 -0
  34. package/dist-cjs/packages/lab/src/form-field-next/FormFieldHelperText.css.js.map +1 -0
  35. package/dist-cjs/packages/lab/src/form-field-next/FormFieldHelperText.js +32 -0
  36. package/dist-cjs/packages/lab/src/form-field-next/FormFieldHelperText.js.map +1 -0
  37. package/dist-cjs/packages/lab/src/form-field-next/FormFieldLabel.css.js +9 -0
  38. package/dist-cjs/packages/lab/src/form-field-next/FormFieldLabel.css.js.map +1 -0
  39. package/dist-cjs/packages/lab/src/form-field-next/FormFieldLabel.js +26 -0
  40. package/dist-cjs/packages/lab/src/form-field-next/FormFieldLabel.js.map +1 -0
  41. package/dist-cjs/packages/lab/src/form-field-next/FormFieldNext.css.js +9 -0
  42. package/dist-cjs/packages/lab/src/form-field-next/FormFieldNext.css.js.map +1 -0
  43. package/dist-cjs/packages/lab/src/form-field-next/FormFieldNext.js +90 -0
  44. package/dist-cjs/packages/lab/src/form-field-next/FormFieldNext.js.map +1 -0
  45. package/dist-cjs/packages/lab/src/index.js +10 -0
  46. package/dist-cjs/packages/lab/src/index.js.map +1 -1
  47. package/dist-cjs/packages/lab/src/input/Input.js +1 -0
  48. package/dist-cjs/packages/lab/src/input/Input.js.map +1 -1
  49. package/dist-cjs/packages/lab/src/input-next/InputNext.css.js +9 -0
  50. package/dist-cjs/packages/lab/src/input-next/InputNext.css.js.map +1 -0
  51. package/dist-cjs/packages/lab/src/input-next/InputNext.js +126 -0
  52. package/dist-cjs/packages/lab/src/input-next/InputNext.js.map +1 -0
  53. package/dist-cjs/packages/lab/src/overlay/useOverlay.js +5 -4
  54. package/dist-cjs/packages/lab/src/overlay/useOverlay.js.map +1 -1
  55. package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
  56. package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
  57. package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js +2 -2
  58. package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
  59. package/dist-cjs/packages/lab/src/stepper-input/internal/useActivationIndicatorPosition.js +2 -0
  60. package/dist-cjs/packages/lab/src/stepper-input/internal/useActivationIndicatorPosition.js.map +1 -1
  61. package/dist-cjs/packages/lab/src/switch/Switch.js +1 -0
  62. package/dist-cjs/packages/lab/src/switch/Switch.js.map +1 -1
  63. package/dist-cjs/packages/lab/src/tabs/Tabstrip.js +1 -0
  64. package/dist-cjs/packages/lab/src/tabs/Tabstrip.js.map +1 -1
  65. package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
  66. package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
  67. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +1 -0
  68. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  69. package/dist-es/packages/lab/src/banner/Banner.css.js +1 -1
  70. package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js +1 -0
  71. package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
  72. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js +2 -2
  73. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
  74. package/dist-es/packages/lab/src/combo-box/ComboBox.js +1 -0
  75. package/dist-es/packages/lab/src/combo-box/ComboBox.js.map +1 -1
  76. package/dist-es/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js +1 -0
  77. package/dist-es/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  78. package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +2 -2
  79. package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  80. package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +3 -2
  81. package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  82. package/dist-es/packages/lab/src/common-hooks/useCollectionItems.js +2 -2
  83. package/dist-es/packages/lab/src/common-hooks/useCollectionItems.js.map +1 -1
  84. package/dist-es/packages/lab/src/dropdown/DropdownBase.js +2 -2
  85. package/dist-es/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
  86. package/dist-es/packages/lab/src/dropdown/DropdownButton.js +2 -1
  87. package/dist-es/packages/lab/src/dropdown/DropdownButton.js.map +1 -1
  88. package/dist-es/packages/lab/src/dropdown/useDropdownBase.js +1 -0
  89. package/dist-es/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
  90. package/dist-es/packages/lab/src/file-drop-zone/FileDropZone.css.js +1 -1
  91. package/dist-es/packages/lab/src/form-field/FormField.css.js +1 -1
  92. package/dist-es/packages/lab/src/form-field/FormField.js +1 -0
  93. package/dist-es/packages/lab/src/form-field/FormField.js.map +1 -1
  94. package/dist-es/packages/lab/src/form-field/FormHelperText.css.js +1 -1
  95. package/dist-es/packages/lab/src/form-field/FormHelperText.js +1 -1
  96. package/dist-es/packages/lab/src/form-field/FormHelperText.js.map +1 -1
  97. package/dist-es/packages/lab/src/form-field-context/FormFieldContextNext.js +9 -0
  98. package/dist-es/packages/lab/src/form-field-context/FormFieldContextNext.js.map +1 -0
  99. package/dist-es/packages/lab/src/form-field-context/useFormFieldPropsNext.js +9 -0
  100. package/dist-es/packages/lab/src/form-field-context/useFormFieldPropsNext.js.map +1 -0
  101. package/dist-es/packages/lab/src/form-field-next/FormFieldHelperText.css.js +7 -0
  102. package/dist-es/packages/lab/src/form-field-next/FormFieldHelperText.css.js.map +1 -0
  103. package/dist-es/packages/lab/src/form-field-next/FormFieldHelperText.js +24 -0
  104. package/dist-es/packages/lab/src/form-field-next/FormFieldHelperText.js.map +1 -0
  105. package/dist-es/packages/lab/src/form-field-next/FormFieldLabel.css.js +7 -0
  106. package/dist-es/packages/lab/src/form-field-next/FormFieldLabel.css.js.map +1 -0
  107. package/dist-es/packages/lab/src/form-field-next/FormFieldLabel.js +22 -0
  108. package/dist-es/packages/lab/src/form-field-next/FormFieldLabel.js.map +1 -0
  109. package/dist-es/packages/lab/src/form-field-next/FormFieldNext.css.js +7 -0
  110. package/dist-es/packages/lab/src/form-field-next/FormFieldNext.css.js.map +1 -0
  111. package/dist-es/packages/lab/src/form-field-next/FormFieldNext.js +86 -0
  112. package/dist-es/packages/lab/src/form-field-next/FormFieldNext.js.map +1 -0
  113. package/dist-es/packages/lab/src/index.js +6 -0
  114. package/dist-es/packages/lab/src/index.js.map +1 -1
  115. package/dist-es/packages/lab/src/input/Input.js +1 -0
  116. package/dist-es/packages/lab/src/input/Input.js.map +1 -1
  117. package/dist-es/packages/lab/src/input-next/InputNext.css.js +7 -0
  118. package/dist-es/packages/lab/src/input-next/InputNext.css.js.map +1 -0
  119. package/dist-es/packages/lab/src/input-next/InputNext.js +122 -0
  120. package/dist-es/packages/lab/src/input-next/InputNext.js.map +1 -0
  121. package/dist-es/packages/lab/src/overlay/useOverlay.js +5 -4
  122. package/dist-es/packages/lab/src/overlay/useOverlay.js.map +1 -1
  123. package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
  124. package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
  125. package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js +2 -2
  126. package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
  127. package/dist-es/packages/lab/src/stepper-input/internal/useActivationIndicatorPosition.js +2 -0
  128. package/dist-es/packages/lab/src/stepper-input/internal/useActivationIndicatorPosition.js.map +1 -1
  129. package/dist-es/packages/lab/src/switch/Switch.js +1 -0
  130. package/dist-es/packages/lab/src/switch/Switch.js.map +1 -1
  131. package/dist-es/packages/lab/src/tabs/Tabstrip.js +1 -0
  132. package/dist-es/packages/lab/src/tabs/Tabstrip.js.map +1 -1
  133. package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
  134. package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
  135. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +1 -0
  136. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  137. package/dist-types/form-field/FormField.d.ts +2 -0
  138. package/dist-types/form-field-context/FormFieldContextNext.d.ts +6 -0
  139. package/dist-types/form-field-context/index.d.ts +2 -0
  140. package/dist-types/form-field-context/useFormFieldPropsNext.d.ts +2 -0
  141. package/dist-types/form-field-next/FormFieldHelperText.d.ts +9 -0
  142. package/dist-types/form-field-next/FormFieldLabel.d.ts +14 -0
  143. package/dist-types/form-field-next/FormFieldNext.d.ts +50 -0
  144. package/dist-types/form-field-next/index.d.ts +3 -0
  145. package/dist-types/index.d.ts +2 -0
  146. package/dist-types/input-next/InputNext.d.ts +34 -0
  147. package/dist-types/input-next/index.d.ts +1 -0
  148. package/package.json +4 -4
@@ -82,12 +82,18 @@ var FileDropZone = require('./file-drop-zone/FileDropZone.js');
82
82
  var validators = require('./file-drop-zone/validators.js');
83
83
  var FormField = require('./form-field/FormField.js');
84
84
  var FormLabel = require('./form-field/FormLabel.js');
85
+ var FormFieldNext = require('./form-field-next/FormFieldNext.js');
86
+ require('./form-field-next/FormFieldHelperText.js');
87
+ require('./form-field-next/FormFieldLabel.js');
85
88
  var FormFieldContext = require('./form-field-context/FormFieldContext.js');
89
+ var FormFieldContextNext = require('./form-field-context/FormFieldContextNext.js');
86
90
  var useFormFieldProps = require('./form-field-context/useFormFieldProps.js');
91
+ var useFormFieldPropsNext = require('./form-field-context/useFormFieldPropsNext.js');
87
92
  var FormGroup = require('./form-group/FormGroup.js');
88
93
  var FormattedInput = require('./formatted-input/FormattedInput.js');
89
94
  var Input = require('./input/Input.js');
90
95
  var StaticInputAdornment = require('./input/StaticInputAdornment.js');
96
+ var InputNext = require('./input-next/InputNext.js');
91
97
  var LayerLayout = require('./layer-layout/LayerLayout.js');
92
98
  var Highlighter = require('./list/Highlighter.js');
93
99
  var ListItem = require('./list/ListItem.js');
@@ -242,12 +248,16 @@ exports.createTotalSizeValidator = validators.createTotalSizeValidator;
242
248
  exports.FormField = FormField.FormField;
243
249
  exports.useFormField = FormField.useFormField;
244
250
  exports.FormLabel = FormLabel.FormLabel;
251
+ exports.FormFieldNext = FormFieldNext.FormField;
245
252
  exports.FormFieldContext = FormFieldContext.FormFieldContext;
253
+ exports.FormFieldContextNext = FormFieldContextNext.FormFieldContextNext;
246
254
  exports.useFormFieldProps = useFormFieldProps.useFormFieldProps;
255
+ exports.useFormFieldPropsNext = useFormFieldPropsNext.useFormFieldPropsNext;
247
256
  exports.FormGroup = FormGroup.FormGroup;
248
257
  exports.FormattedInput = FormattedInput.FormattedInput;
249
258
  exports.Input = Input.Input;
250
259
  exports.StaticInputAdornment = StaticInputAdornment.StaticInputAdornment;
260
+ exports.InputNext = InputNext.Input;
251
261
  exports.LAYER_POSITIONS = LayerLayout.LAYER_POSITIONS;
252
262
  exports.LayerLayout = LayerLayout.LayerLayout;
253
263
  exports.Highlighter = Highlighter.Highlighter;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,6 +7,7 @@ var clsx = require('clsx');
7
7
  var React = require('react');
8
8
  var core = require('@salt-ds/core');
9
9
  require('../form-field-context/FormFieldContext.js');
10
+ require('../form-field-context/FormFieldContextNext.js');
10
11
  var useFormFieldProps = require('../form-field-context/useFormFieldProps.js');
11
12
  var useCursorOnFocus = require('./useCursorOnFocus.js');
12
13
  require('./Input.css.js');
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../src/input/Input.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n AriaAttributes,\n ChangeEvent,\n ElementType,\n FocusEvent,\n FocusEventHandler,\n forwardRef,\n HTMLAttributes,\n InputHTMLAttributes,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled, useForkRef } from \"@salt-ds/core\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { useCursorOnFocus } from \"./useCursorOnFocus\";\n\nimport \"./Input.css\";\n\nconst withBaseName = makePrefixer(\"saltInput\");\n\n// TODO: Double confirm whether this should be extending DivElement given root is `<div>`.\n// And forwarded ref is not assigned to the root like other components.\nexport interface InputProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\"> {\n /**\n * Determines the position of the text cursor on focus of the input.\n *\n * start = place cursor at the beginning<br>\n * end = place cursor at the end<br>\n * \\# = index to place the cursor<br>\n */\n cursorPositionOnFocus?: \"start\" | \"end\" | number;\n /**\n * The value of the `input` element, required for an uncontrolled component.\n */\n defaultValue?: HTMLInputElement[\"defaultValue\"];\n /**\n * If `true`, the component is disabled.\n */\n disabled?: HTMLInputElement[\"disabled\"];\n /**\n * The marker to use in an empty read only Input.\n * Use `''` to disable this feature. Defaults to '—'.\n */\n emptyReadOnlyMarker?: string;\n /**\n * Determines what gets highlighted on focus of the input.\n *\n * If `true` all text will be highlighted.\n * If an array text between those indices will be highlighted\n * e.g. [0,1] will highlight the first character.\n */\n highlightOnFocus?: boolean | number[];\n /**\n * The HTML element to render the Input, e.g. 'input', a custom React component.\n */\n inputComponent?: ElementType;\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Callback for change event.\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>, value: string) => void;\n onFocus?: FocusEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onKeyUp?: KeyboardEventHandler<HTMLInputElement>;\n onMouseUp?: MouseEventHandler<HTMLInputElement>;\n onMouseMove?: MouseEventHandler<HTMLInputElement>;\n onMouseDown?: MouseEventHandler<HTMLInputElement>;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n *\n * Determines the alignment of the input text.\n */\n textAlign?: \"left\" | \"right\" | \"center\";\n type?: HTMLInputElement[\"type\"];\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value?: HTMLInputElement[\"value\"];\n renderSuffix?: (state: {\n disabled?: boolean;\n error?: boolean;\n focused?: boolean;\n margin?: \"dense\" | \"none\" | \"normal\";\n required?: boolean;\n startAdornment?: ReactNode;\n }) => ReactNode;\n endAdornment?: ReactNode;\n startAdornment?: ReactNode;\n}\n\nfunction mergeA11yProps(\n a11yProps: Partial<ReturnType<typeof useFormFieldProps>[\"a11yProps\"]> = {},\n inputProps: InputProps[\"inputProps\"] = {},\n misplacedAriaProps: AriaAttributes\n) {\n const ariaLabelledBy = clsx(\n a11yProps[\"aria-labelledby\"],\n inputProps[\"aria-labelledby\"]\n );\n\n return {\n ...misplacedAriaProps,\n ...a11yProps,\n ...inputProps,\n // The weird filtering is due to TokenizedInputBase\n \"aria-labelledby\": ariaLabelledBy\n ? Array.from(new Set(ariaLabelledBy.split(\" \"))).join(\" \")\n : null,\n };\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n className: classNameProp,\n cursorPositionOnFocus,\n disabled,\n emptyReadOnlyMarker = \"—\",\n endAdornment,\n highlightOnFocus,\n id,\n inputComponent: InputComponent = \"input\",\n inputProps: inputPropsProp,\n role,\n style,\n value: valueProp,\n // If we leave both value and defaultValue undefined, we will get a React warning on first edit\n // (uncontrolled to controlled warning) from the React input\n defaultValue: defaultValueProp = valueProp === undefined ? \"\" : undefined,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onKeyUp,\n onMouseUp,\n onMouseMove,\n onMouseDown,\n readOnly: readOnlyProp,\n renderSuffix,\n startAdornment,\n textAlign = \"left\",\n type = \"text\",\n ...other\n },\n ref\n) {\n const {\n a11yProps: {\n readOnly: a11yReadOnly,\n disabled: a11yDisabled,\n ...restA11y\n } = {},\n setFocused: setFormFieldFocused,\n inFormField,\n } = useFormFieldProps();\n\n const [focused, setFocused] = useState(false);\n const inputRef = useRef(null);\n const handleRef = useForkRef(inputRef, ref);\n const cursorOnFocusHelpers = useCursorOnFocus(inputRef, {\n cursorPositionOnFocus,\n highlightOnFocus,\n });\n\n const isDisabled = disabled || a11yDisabled;\n const isReadOnly = readOnlyProp || a11yReadOnly;\n const misplacedAriaProps = {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n role,\n };\n const inputProps = mergeA11yProps(\n restA11y,\n inputPropsProp,\n misplacedAriaProps\n );\n const isEmptyReadOnly = isReadOnly && !defaultValueProp && !valueProp;\n const defaultValue = isEmptyReadOnly ? emptyReadOnlyMarker : defaultValueProp;\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: \"Input\",\n state: \"value\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n setValue(value);\n onChange?.(event, value);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setFormFieldFocused?.(true);\n setFocused(true);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setFormFieldFocused?.(false);\n setFocused(false);\n };\n\n const handleMouseMove = (event: MouseEvent<HTMLInputElement>) => {\n cursorOnFocusHelpers.handleMouseMove(event);\n\n onMouseMove?.(event);\n };\n\n const handleMouseUp = (event: MouseEvent<HTMLInputElement>) => {\n cursorOnFocusHelpers.handleMouseUp();\n\n onMouseUp?.(event);\n };\n\n const handleMouseDown = (event: MouseEvent<HTMLInputElement>) => {\n cursorOnFocusHelpers.handleMouseDown();\n\n onMouseDown?.(event);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(`${textAlign}TextAlign`)]: textAlign,\n [withBaseName(\"formField\")]: inFormField,\n [withBaseName(\"focused\")]: focused && !inFormField,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"inputAdornedStart\")]: startAdornment,\n [withBaseName(\"inputAdornedEnd\")]: endAdornment,\n },\n classNameProp\n )}\n style={style}\n {...other}\n >\n {startAdornment && (\n <div className={withBaseName(\"prefixContainer\")}>{startAdornment}</div>\n )}\n <InputComponent\n type={type}\n id={id}\n {...inputProps}\n className={clsx(withBaseName(\"input\"), inputProps?.className)}\n disabled={isDisabled}\n ref={handleRef}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onFocus={handleFocus}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n onMouseMove={handleMouseMove}\n readOnly={isReadOnly}\n />\n {endAdornment && (\n <div className={withBaseName(\"suffixContainer\")}>{endAdornment}</div>\n )}\n {/* TODO: Confirm implementation of suffix */}\n {renderSuffix?.({ disabled, focused })}\n </div>\n );\n});\n"],"names":["makePrefixer","clsx","forwardRef","Input","useFormFieldProps","useState","useRef","useForkRef","useCursorOnFocus","useControlled","value","jsxs","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../src/input/Input.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n AriaAttributes,\n ChangeEvent,\n ElementType,\n FocusEvent,\n FocusEventHandler,\n forwardRef,\n HTMLAttributes,\n InputHTMLAttributes,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled, useForkRef } from \"@salt-ds/core\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { useCursorOnFocus } from \"./useCursorOnFocus\";\n\nimport \"./Input.css\";\n\nconst withBaseName = makePrefixer(\"saltInput\");\n\n// TODO: Double confirm whether this should be extending DivElement given root is `<div>`.\n// And forwarded ref is not assigned to the root like other components.\nexport interface InputProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\"> {\n /**\n * Determines the position of the text cursor on focus of the input.\n *\n * start = place cursor at the beginning<br>\n * end = place cursor at the end<br>\n * \\# = index to place the cursor<br>\n */\n cursorPositionOnFocus?: \"start\" | \"end\" | number;\n /**\n * The value of the `input` element, required for an uncontrolled component.\n */\n defaultValue?: HTMLInputElement[\"defaultValue\"];\n /**\n * If `true`, the component is disabled.\n */\n disabled?: HTMLInputElement[\"disabled\"];\n /**\n * The marker to use in an empty read only Input.\n * Use `''` to disable this feature. Defaults to '—'.\n */\n emptyReadOnlyMarker?: string;\n /**\n * Determines what gets highlighted on focus of the input.\n *\n * If `true` all text will be highlighted.\n * If an array text between those indices will be highlighted\n * e.g. [0,1] will highlight the first character.\n */\n highlightOnFocus?: boolean | number[];\n /**\n * The HTML element to render the Input, e.g. 'input', a custom React component.\n */\n inputComponent?: ElementType;\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Callback for change event.\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>, value: string) => void;\n onFocus?: FocusEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onKeyUp?: KeyboardEventHandler<HTMLInputElement>;\n onMouseUp?: MouseEventHandler<HTMLInputElement>;\n onMouseMove?: MouseEventHandler<HTMLInputElement>;\n onMouseDown?: MouseEventHandler<HTMLInputElement>;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n *\n * Determines the alignment of the input text.\n */\n textAlign?: \"left\" | \"right\" | \"center\";\n type?: HTMLInputElement[\"type\"];\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value?: HTMLInputElement[\"value\"];\n renderSuffix?: (state: {\n disabled?: boolean;\n error?: boolean;\n focused?: boolean;\n margin?: \"dense\" | \"none\" | \"normal\";\n required?: boolean;\n startAdornment?: ReactNode;\n }) => ReactNode;\n endAdornment?: ReactNode;\n startAdornment?: ReactNode;\n}\n\nfunction mergeA11yProps(\n a11yProps: Partial<ReturnType<typeof useFormFieldProps>[\"a11yProps\"]> = {},\n inputProps: InputProps[\"inputProps\"] = {},\n misplacedAriaProps: AriaAttributes\n) {\n const ariaLabelledBy = clsx(\n a11yProps[\"aria-labelledby\"],\n inputProps[\"aria-labelledby\"]\n );\n\n return {\n ...misplacedAriaProps,\n ...a11yProps,\n ...inputProps,\n // The weird filtering is due to TokenizedInputBase\n \"aria-labelledby\": ariaLabelledBy\n ? Array.from(new Set(ariaLabelledBy.split(\" \"))).join(\" \")\n : null,\n };\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n className: classNameProp,\n cursorPositionOnFocus,\n disabled,\n emptyReadOnlyMarker = \"—\",\n endAdornment,\n highlightOnFocus,\n id,\n inputComponent: InputComponent = \"input\",\n inputProps: inputPropsProp,\n role,\n style,\n value: valueProp,\n // If we leave both value and defaultValue undefined, we will get a React warning on first edit\n // (uncontrolled to controlled warning) from the React input\n defaultValue: defaultValueProp = valueProp === undefined ? \"\" : undefined,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onKeyUp,\n onMouseUp,\n onMouseMove,\n onMouseDown,\n readOnly: readOnlyProp,\n renderSuffix,\n startAdornment,\n textAlign = \"left\",\n type = \"text\",\n ...other\n },\n ref\n) {\n const {\n a11yProps: {\n readOnly: a11yReadOnly,\n disabled: a11yDisabled,\n ...restA11y\n } = {},\n setFocused: setFormFieldFocused,\n inFormField,\n } = useFormFieldProps();\n\n const [focused, setFocused] = useState(false);\n const inputRef = useRef(null);\n const handleRef = useForkRef(inputRef, ref);\n const cursorOnFocusHelpers = useCursorOnFocus(inputRef, {\n cursorPositionOnFocus,\n highlightOnFocus,\n });\n\n const isDisabled = disabled || a11yDisabled;\n const isReadOnly = readOnlyProp || a11yReadOnly;\n const misplacedAriaProps = {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n role,\n };\n const inputProps = mergeA11yProps(\n restA11y,\n inputPropsProp,\n misplacedAriaProps\n );\n const isEmptyReadOnly = isReadOnly && !defaultValueProp && !valueProp;\n const defaultValue = isEmptyReadOnly ? emptyReadOnlyMarker : defaultValueProp;\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: \"Input\",\n state: \"value\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n setValue(value);\n onChange?.(event, value);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setFormFieldFocused?.(true);\n setFocused(true);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setFormFieldFocused?.(false);\n setFocused(false);\n };\n\n const handleMouseMove = (event: MouseEvent<HTMLInputElement>) => {\n cursorOnFocusHelpers.handleMouseMove(event);\n\n onMouseMove?.(event);\n };\n\n const handleMouseUp = (event: MouseEvent<HTMLInputElement>) => {\n cursorOnFocusHelpers.handleMouseUp();\n\n onMouseUp?.(event);\n };\n\n const handleMouseDown = (event: MouseEvent<HTMLInputElement>) => {\n cursorOnFocusHelpers.handleMouseDown();\n\n onMouseDown?.(event);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(`${textAlign}TextAlign`)]: textAlign,\n [withBaseName(\"formField\")]: inFormField,\n [withBaseName(\"focused\")]: focused && !inFormField,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"inputAdornedStart\")]: startAdornment,\n [withBaseName(\"inputAdornedEnd\")]: endAdornment,\n },\n classNameProp\n )}\n style={style}\n {...other}\n >\n {startAdornment && (\n <div className={withBaseName(\"prefixContainer\")}>{startAdornment}</div>\n )}\n <InputComponent\n type={type}\n id={id}\n {...inputProps}\n className={clsx(withBaseName(\"input\"), inputProps?.className)}\n disabled={isDisabled}\n ref={handleRef}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onFocus={handleFocus}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n onMouseMove={handleMouseMove}\n readOnly={isReadOnly}\n />\n {endAdornment && (\n <div className={withBaseName(\"suffixContainer\")}>{endAdornment}</div>\n )}\n {/* TODO: Confirm implementation of suffix */}\n {renderSuffix?.({ disabled, focused })}\n </div>\n );\n});\n"],"names":["makePrefixer","clsx","forwardRef","Input","useFormFieldProps","useState","useRef","useForkRef","useCursorOnFocus","useControlled","value","jsxs","jsx"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../../../../node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = "/* Style applied to the root element */\n.saltInputNext {\n --inputNext-borderColor: var(--salt-editable-borderColor);\n --inputNext-borderStyle: var(--salt-editable-borderStyle);\n\n align-items: center;\n background: var(--saltInputNext-background, var(--inputNext-background));\n border-color: var(--saltInputNext-borderColor, var(--inputNext-borderColor));\n border-width: var(--saltInputNext-borderWidth, 0 0 var(--salt-size-border) 0);\n border-style: var(--saltInputNext-borderStyle, var(--inputNext-borderStyle));\n border-radius: var(--saltInputNext-borderRadius, 0);\n color: var(--saltInputNext-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n font-family: var(--saltInputNext-fontFamily, var(--salt-text-fontFamily));\n font-size: var(--saltInputNext-fontSize, var(--salt-text-fontSize));\n height: var(--saltInputNext-height, var(--salt-size-base));\n line-height: var(--salt-text-lineHeight);\n min-height: var(--saltInputNext-minHeight, var(--salt-size-base));\n min-width: var(--saltInputNext-minWidth, 8em);\n padding: var(--saltInputNext-padding, 0 var(--salt-size-unit));\n position: var(--saltInputNext-position, relative);\n width: 100%;\n}\n\n.saltInputNext:hover {\n --inputNext-background: var(--inputNext-background-hover);\n --inputNext-borderColor: var(--salt-editable-borderColor-hover);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-hover);\n}\n\n.saltInputNext:active {\n --inputNext-background: var(--inputNext-background-active);\n --inputNext-borderColor: var(--salt-editable-borderColor-active);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltInputNext-primary {\n --inputNext-background: var(--salt-editable-primary-background);\n --inputNext-background-active: var(--salt-editable-primary-background-active);\n --inputNext-background-hover: var(--salt-editable-primary-background-hover);\n --inputNext-background-disabled: var(--salt-editable-primary-background-disabled);\n --inputNext-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltInputNext-secondary {\n --inputNext-background: var(--salt-editable-secondary-background);\n --inputNext-background-active: var(--salt-editable-secondary-background-active);\n --inputNext-background-hover: var(--salt-editable-secondary-background-active);\n --inputNext-background-disabled: var(--salt-editable-secondary-background-disabled);\n --inputNext-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to inner input component */\n.saltInputNext-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: var(--saltInputNext-cursor, default);\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltInputNext-letterSpacing, 0);\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--saltInputNext-textAlign, left);\n width: 100%;\n}\n\n/* Style applied if `readOnly={true}` */\n.saltInputNext.saltInputNext-readOnly {\n --inputNext-background: var(--inputNext-background-readonly);\n --inputNext-background-hover: var(--inputNext-background-readonly);\n --inputNext-borderColor: var(--salt-editable-borderColor-readonly);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-readonly);\n}\n\n/* Reset in the next class */\n.saltInputNext-input:focus {\n outline: none;\n}\n\n/* Styling when focused */\n.saltInputNext-focused {\n outline-style: var(--saltInputNext-focused-outlineStyle, var(--salt-focused-outlineStyle));\n outline-width: var(--saltInputNext-focused-outlineWidth, var(--salt-focused-outlineWidth));\n outline-color: var(--saltInputNext-focused-outlineColor, var(--salt-focused-outlineColor));\n outline-offset: var(--saltInputNext-focused-outlineOffset, var(--salt-focused-outlineOffset));\n}\n\n/* Styling when focused if `disabled={true}` or `readOnly={true}` */\n.saltInputNext-focused.saltInputNext-readOnly,\n.saltInputNext-disabled .saltInputNext-focused {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltInputNext-input::selection {\n background: var(--saltInputNext-highlight-color, var(--salt-text-background-selected));\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltInputNext-disabled .saltInputNext-input::selection {\n background: none;\n}\n\n/* Style applied to input if `disabled={true}` */\n.saltInputNext-disabled .saltInputNext-input,\n.saltInputNext.saltInputNext-disabled,\n.saltInputNext.saltInputNext-disabled:hover,\n.saltInputNext.saltInputNext-disabled:active {\n --inputNext-background: var(--inputNext-background-disabled);\n --inputNext-borderColor: var(--salt-editable-borderColor-disabled);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-disabled);\n\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--saltInputNext-text-color-disabled, var(--salt-text-primary-foreground-disabled));\n}\n";
6
+ styleInject_es(css_248z);
7
+
8
+ module.exports = css_248z;
9
+ //# sourceMappingURL=InputNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,126 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var clsx = require('clsx');
7
+ var React = require('react');
8
+ var core = require('@salt-ds/core');
9
+ require('../form-field-context/FormFieldContext.js');
10
+ require('../form-field-context/FormFieldContextNext.js');
11
+ var useFormFieldPropsNext = require('../form-field-context/useFormFieldPropsNext.js');
12
+ require('./InputNext.css.js');
13
+
14
+ const withBaseName = core.makePrefixer("saltInputNext");
15
+ function mergeA11yProps(a11yProps = {}, inputProps = {}, misplacedAriaProps) {
16
+ const ariaLabelledBy = clsx.clsx(
17
+ a11yProps["aria-labelledby"],
18
+ inputProps["aria-labelledby"]
19
+ );
20
+ return {
21
+ ...misplacedAriaProps,
22
+ ...a11yProps,
23
+ ...inputProps,
24
+ "aria-label": ariaLabelledBy ? Array.from(new Set(ariaLabelledBy.split(" "))).join(" ") : void 0
25
+ };
26
+ }
27
+ const Input = React.forwardRef(function Input2({
28
+ "aria-activedescendant": ariaActiveDescendant,
29
+ "aria-expanded": ariaExpanded,
30
+ "aria-owns": ariaOwns,
31
+ className: classNameProp,
32
+ disabled,
33
+ id,
34
+ inputProps: inputPropsProp,
35
+ onChange,
36
+ readOnly: readOnlyProp,
37
+ role,
38
+ style,
39
+ type = "text",
40
+ value: valueProp,
41
+ defaultValue: defaultValueProp = valueProp === void 0 ? "" : void 0,
42
+ variant = "primary",
43
+ ...other
44
+ }, ref) {
45
+ const {
46
+ a11yProps: {
47
+ disabled: a11yDisabled,
48
+ readOnly: a11yReadOnly,
49
+ ...restA11y
50
+ } = {}
51
+ } = useFormFieldPropsNext.useFormFieldPropsNext();
52
+ const isDisabled = disabled || a11yDisabled;
53
+ const isReadOnly = readOnlyProp || a11yReadOnly;
54
+ const [focused, setFocused] = React.useState(false);
55
+ const misplacedAriaProps = {
56
+ "aria-activedescendant": ariaActiveDescendant,
57
+ "aria-expanded": ariaExpanded,
58
+ "aria-owns": ariaOwns,
59
+ role
60
+ };
61
+ const inputProps = mergeA11yProps(
62
+ restA11y,
63
+ inputPropsProp,
64
+ misplacedAriaProps
65
+ );
66
+ const {
67
+ onBlur,
68
+ onFocus,
69
+ onKeyDown,
70
+ onKeyUp,
71
+ onMouseUp,
72
+ onMouseMove,
73
+ onMouseDown,
74
+ ...restInputProps
75
+ } = inputProps;
76
+ const [value, setValue] = core.useControlled({
77
+ controlled: valueProp,
78
+ default: defaultValueProp,
79
+ name: "Input",
80
+ state: "value"
81
+ });
82
+ const handleChange = (event) => {
83
+ const value2 = event.target.value;
84
+ setValue(value2);
85
+ onChange == null ? void 0 : onChange(event, value2);
86
+ };
87
+ const handleBlur = (event) => {
88
+ onBlur == null ? void 0 : onBlur(event);
89
+ setFocused(false);
90
+ };
91
+ const handleFocus = (event) => {
92
+ onFocus == null ? void 0 : onFocus(event);
93
+ setFocused(true);
94
+ };
95
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
96
+ className: clsx.clsx(
97
+ withBaseName(),
98
+ {
99
+ [withBaseName("focused")]: !isDisabled && focused,
100
+ [withBaseName("disabled")]: isDisabled,
101
+ [withBaseName("readOnly")]: isReadOnly,
102
+ [withBaseName(variant)]: variant
103
+ },
104
+ classNameProp
105
+ ),
106
+ style,
107
+ ...other,
108
+ children: /* @__PURE__ */ jsxRuntime.jsx("input", {
109
+ type,
110
+ id,
111
+ className: clsx.clsx(withBaseName("input"), inputProps == null ? void 0 : inputProps.className),
112
+ disabled: isDisabled,
113
+ readOnly: isReadOnly,
114
+ ref,
115
+ value,
116
+ tabIndex: isReadOnly || isDisabled ? -1 : 0,
117
+ onBlur: handleBlur,
118
+ onChange: handleChange,
119
+ onFocus: !isDisabled ? handleFocus : void 0,
120
+ ...restInputProps
121
+ })
122
+ });
123
+ });
124
+
125
+ exports.Input = Input;
126
+ //# sourceMappingURL=InputNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputNext.js","sources":["../src/input-next/InputNext.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n AriaAttributes,\n ChangeEvent,\n ElementType,\n FocusEvent,\n forwardRef,\n HTMLAttributes,\n InputHTMLAttributes,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { useFormFieldPropsNext } from \"../form-field-context\";\n\nimport \"./InputNext.css\";\n\nconst withBaseName = makePrefixer(\"saltInputNext\");\n\n// TODO: Double confirm whether this should be extending DivElement given root is `<div>`.\n// And forwarded ref is not assigned to the root like other components.\nexport interface InputProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\"> {\n /**\n * The value of the `input` element, required for an uncontrolled component.\n */\n defaultValue?: HTMLInputElement[\"defaultValue\"];\n /**\n * If `true`, the component is disabled.\n */\n disabled?: HTMLInputElement[\"disabled\"];\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n /**\n * Callback for change event.\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>, value: string) => void;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n type?: HTMLInputElement[\"type\"];\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value?: HTMLInputElement[\"value\"];\n /**\n * Styling variant. Defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n}\n\nfunction mergeA11yProps(\n a11yProps: Partial<\n ReturnType<typeof useFormFieldPropsNext>[\"a11yProps\"]\n > = {},\n inputProps: InputProps[\"inputProps\"] = {},\n misplacedAriaProps: AriaAttributes\n) {\n const ariaLabelledBy = clsx(\n a11yProps[\"aria-labelledby\"],\n inputProps[\"aria-labelledby\"]\n );\n\n return {\n ...misplacedAriaProps,\n ...a11yProps,\n ...inputProps,\n // TODO: look at this - The weird filtering is due to TokenizedInputBase\n \"aria-label\": ariaLabelledBy\n ? Array.from(new Set(ariaLabelledBy.split(\" \"))).join(\" \")\n : undefined,\n };\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n className: classNameProp,\n disabled,\n id,\n inputProps: inputPropsProp,\n onChange,\n readOnly: readOnlyProp,\n role,\n style,\n type = \"text\",\n value: valueProp,\n // If we leave both value and defaultValue undefined, we will get a React warning on first edit\n // (uncontrolled to controlled warning) from the React input\n defaultValue: defaultValueProp = valueProp === undefined ? \"\" : undefined,\n variant = \"primary\",\n ...other\n },\n ref\n) {\n const {\n a11yProps: {\n disabled: a11yDisabled,\n readOnly: a11yReadOnly,\n ...restA11y\n } = {},\n } = useFormFieldPropsNext();\n\n const isDisabled = disabled || a11yDisabled;\n const isReadOnly = readOnlyProp || a11yReadOnly;\n\n const [focused, setFocused] = useState(false);\n\n const misplacedAriaProps = {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n role,\n };\n const inputProps = mergeA11yProps(\n restA11y,\n inputPropsProp,\n misplacedAriaProps\n );\n\n const {\n onBlur,\n onFocus,\n onKeyDown,\n onKeyUp,\n onMouseUp,\n onMouseMove,\n onMouseDown,\n ...restInputProps\n } = inputProps;\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValueProp,\n name: \"Input\",\n state: \"value\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n setValue(value);\n onChange?.(event, value);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setFocused(false);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setFocused(true);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"focused\")]: !isDisabled && focused,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"readOnly\")]: isReadOnly,\n [withBaseName(variant)]: variant,\n },\n classNameProp\n )}\n style={style}\n {...other}\n >\n <input\n type={type}\n id={id}\n className={clsx(withBaseName(\"input\"), inputProps?.className)}\n disabled={isDisabled}\n readOnly={isReadOnly}\n ref={ref}\n value={value}\n tabIndex={isReadOnly || isDisabled ? -1 : 0}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={!isDisabled ? handleFocus : undefined}\n {...restInputProps}\n />\n </div>\n );\n});\n"],"names":["makePrefixer","clsx","forwardRef","Input","useFormFieldPropsNext","useState","useControlled","value","jsx"],"mappings":"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"}
@@ -65,8 +65,9 @@ function useOverlay(props) {
65
65
  const arrowProps = {
66
66
  ref: handleArrowRef,
67
67
  style: {
68
- left: (_b = (_a = middlewareData.arrow) == null ? void 0 : _a.x) != null ? _b : "",
69
- top: (_d = (_c = middlewareData.arrow) == null ? void 0 : _c.y) != null ? _d : ""
68
+ position: strategy,
69
+ left: (_b = (_a = middlewareData.arrow) == null ? void 0 : _a.x) != null ? _b : 0,
70
+ top: (_d = (_c = middlewareData.arrow) == null ? void 0 : _c.y) != null ? _d : 0
70
71
  }
71
72
  };
72
73
  return {
@@ -77,8 +78,8 @@ function useOverlay(props) {
77
78
  "data-placement": placement,
78
79
  ...userProps,
79
80
  style: {
80
- top: y != null ? y : "",
81
- left: x != null ? x : "",
81
+ top: y != null ? y : 0,
82
+ left: x != null ? x : 0,
82
83
  position: strategy,
83
84
  ...(userProps == null ? void 0 : userProps.style) || {}
84
85
  },
@@ -1 +1 @@
1
- {"version":3,"file":"useOverlay.js","sources":["../src/overlay/useOverlay.ts"],"sourcesContent":["import {\n arrow,\n flip,\n limitShift,\n offset,\n shift,\n useClick,\n useDismiss,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport {\n margin,\n useControlled,\n useFloatingUI,\n UseFloatingUIProps,\n} from \"@salt-ds/core\";\nimport {\n ComponentPropsWithoutRef,\n ComponentPropsWithRef,\n JSXElementConstructor,\n useCallback,\n useRef,\n} from \"react\";\nimport { OverlayProps } from \"./Overlay\";\nimport { isDesktop } from \"../window\";\n\nexport type UseOverlayProps = Partial<\n Pick<UseFloatingUIProps, \"onOpenChange\" | \"open\" | \"placement\">\n>;\n\nexport function useOverlay(props: UseOverlayProps) {\n const { open: openProp, placement = \"right\", onOpenChange } = props;\n\n const arrowRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: false,\n name: \"Overlay\",\n state: \"open\",\n });\n const handleOpenChange = (newOpen: boolean) => {\n setOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n const middleware = isDesktop\n ? [margin(24), arrow({ element: arrowRef })]\n : [\n offset(24),\n flip(),\n shift({ limiter: limitShift() }),\n arrow({ element: arrowRef }),\n ];\n const {\n reference,\n floating,\n x,\n y,\n strategy,\n context,\n middlewareData,\n update,\n } = useFloatingUI({\n open,\n onOpenChange: handleOpenChange,\n placement,\n middleware,\n });\n\n const handleArrowRef = useCallback(\n (node: HTMLDivElement) => {\n arrowRef.current = node;\n update();\n },\n [update]\n );\n\n const { getFloatingProps, getReferenceProps } = useInteractions([\n useDismiss(context),\n useRole(context, { role: \"dialog\" }),\n useClick(context),\n ]);\n\n const getTriggerProps = <\n Element extends\n | keyof JSX.IntrinsicElements\n | JSXElementConstructor<any> = \"div\"\n >(\n userProps?: ComponentPropsWithoutRef<Element>\n ) => {\n return getReferenceProps({\n ...userProps,\n ref: reference,\n }) as ComponentPropsWithRef<Element>;\n };\n\n const getOverlayProps = (userProps?: OverlayProps) => {\n const arrowProps = {\n ref: handleArrowRef,\n style: {\n left: middlewareData.arrow?.x ?? \"\",\n top: middlewareData.arrow?.y ?? \"\",\n },\n };\n\n return {\n arrowProps,\n open,\n onOpenChange: handleOpenChange,\n ...getFloatingProps({\n // @ts-ignore\n \"data-placement\": placement,\n ...userProps,\n style: {\n top: y ?? \"\",\n left: x ?? \"\",\n position: strategy,\n ...(userProps?.style || {}),\n },\n ref: floating,\n }),\n } as OverlayProps;\n };\n\n return {\n getTriggerProps,\n getOverlayProps,\n };\n}\n"],"names":["useRef","useControlled","isDesktop","margin","arrow","offset","flip","shift","limitShift","useFloatingUI","useCallback","useInteractions","useDismiss","useRole","useClick"],"mappings":";;;;;;;;;;AA+BO,SAAS,WAAW,KAAwB,EAAA;AACjD,EAAA,MAAM,EAAE,IAAM,EAAA,QAAA,EAAU,SAAY,GAAA,OAAA,EAAS,cAAiB,GAAA,KAAA,CAAA;AAE9D,EAAM,MAAA,QAAA,GAAWA,aAA8B,IAAI,CAAA,CAAA;AAEnD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,kBAAc,CAAA;AAAA,IACpC,UAAY,EAAA,QAAA;AAAA,IACZ,OAAS,EAAA,KAAA;AAAA,IACT,IAAM,EAAA,SAAA;AAAA,IACN,KAAO,EAAA,MAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAM,MAAA,gBAAA,GAAmB,CAAC,OAAqB,KAAA;AAC7C,IAAA,OAAA,CAAQ,OAAO,CAAA,CAAA;AACf,IAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,OAAA,CAAA,CAAA;AAAA,GACjB,CAAA;AACA,EAAA,MAAM,UAAa,GAAAC,uBAAA,GACf,CAACC,WAAA,CAAO,EAAE,CAAA,EAAGC,WAAM,CAAA,EAAE,OAAS,EAAA,QAAA,EAAU,CAAC,CACzC,GAAA;AAAA,IACEC,aAAO,EAAE,CAAA;AAAA,IACTC,UAAK,EAAA;AAAA,IACLC,WAAM,CAAA,EAAE,OAAS,EAAAC,gBAAA,IAAc,CAAA;AAAA,IAC/BJ,WAAM,CAAA,EAAE,OAAS,EAAA,QAAA,EAAU,CAAA;AAAA,GAC7B,CAAA;AACJ,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,QAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,MAAA;AAAA,MACEK,kBAAc,CAAA;AAAA,IAChB,IAAA;AAAA,IACA,YAAc,EAAA,gBAAA;AAAA,IACd,SAAA;AAAA,IACA,UAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,cAAiB,GAAAC,iBAAA;AAAA,IACrB,CAAC,IAAyB,KAAA;AACxB,MAAA,QAAA,CAAS,OAAU,GAAA,IAAA,CAAA;AACnB,MAAO,MAAA,EAAA,CAAA;AAAA,KACT;AAAA,IACA,CAAC,MAAM,CAAA;AAAA,GACT,CAAA;AAEA,EAAA,MAAM,EAAE,gBAAA,EAAkB,iBAAkB,EAAA,GAAIC,qBAAgB,CAAA;AAAA,IAC9DC,iBAAW,OAAO,CAAA;AAAA,IAClBC,aAAQ,CAAA,OAAA,EAAS,EAAE,IAAA,EAAM,UAAU,CAAA;AAAA,IACnCC,eAAS,OAAO,CAAA;AAAA,GACjB,CAAA,CAAA;AAED,EAAM,MAAA,eAAA,GAAkB,CAKtB,SACG,KAAA;AACH,IAAA,OAAO,iBAAkB,CAAA;AAAA,MACvB,GAAG,SAAA;AAAA,MACH,GAAK,EAAA,SAAA;AAAA,KACN,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,SAA6B,KAAA;AAjGxD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAkGI,IAAA,MAAM,UAAa,GAAA;AAAA,MACjB,GAAK,EAAA,cAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAA,CAAe,KAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,MAAtB,IAA2B,GAAA,EAAA,GAAA,EAAA;AAAA,QACjC,GAAK,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAA,CAAe,KAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,MAAtB,IAA2B,GAAA,EAAA,GAAA,EAAA;AAAA,OAClC;AAAA,KACF,CAAA;AAEA,IAAO,OAAA;AAAA,MACL,UAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAc,EAAA,gBAAA;AAAA,MACd,GAAG,gBAAiB,CAAA;AAAA,QAElB,gBAAkB,EAAA,SAAA;AAAA,QAClB,GAAG,SAAA;AAAA,QACH,KAAO,EAAA;AAAA,UACL,KAAK,CAAK,IAAA,IAAA,GAAA,CAAA,GAAA,EAAA;AAAA,UACV,MAAM,CAAK,IAAA,IAAA,GAAA,CAAA,GAAA,EAAA;AAAA,UACX,QAAU,EAAA,QAAA;AAAA,UACV,GAAA,CAAI,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,KAAS,EAAC;AAAA,SAC3B;AAAA,QACA,GAAK,EAAA,QAAA;AAAA,OACN,CAAA;AAAA,KACH,CAAA;AAAA,GACF,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,eAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"useOverlay.js","sources":["../src/overlay/useOverlay.ts"],"sourcesContent":["import {\n arrow,\n flip,\n limitShift,\n offset,\n shift,\n useClick,\n useDismiss,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport {\n margin,\n useControlled,\n useFloatingUI,\n UseFloatingUIProps,\n} from \"@salt-ds/core\";\nimport {\n ComponentPropsWithoutRef,\n ComponentPropsWithRef,\n JSXElementConstructor,\n useCallback,\n useRef,\n} from \"react\";\nimport { OverlayProps } from \"./Overlay\";\nimport { isDesktop } from \"../window\";\n\nexport type UseOverlayProps = Partial<\n Pick<UseFloatingUIProps, \"onOpenChange\" | \"open\" | \"placement\">\n>;\n\nexport function useOverlay(props: UseOverlayProps) {\n const { open: openProp, placement = \"right\", onOpenChange } = props;\n\n const arrowRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: false,\n name: \"Overlay\",\n state: \"open\",\n });\n const handleOpenChange = (newOpen: boolean) => {\n setOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n const middleware = isDesktop\n ? [margin(24), arrow({ element: arrowRef })]\n : [\n offset(24),\n flip(),\n shift({ limiter: limitShift() }),\n arrow({ element: arrowRef }),\n ];\n const {\n reference,\n floating,\n x,\n y,\n strategy,\n context,\n middlewareData,\n update,\n } = useFloatingUI({\n open,\n onOpenChange: handleOpenChange,\n placement,\n middleware,\n });\n\n const handleArrowRef = useCallback(\n (node: HTMLDivElement) => {\n arrowRef.current = node;\n update();\n },\n [update]\n );\n\n const { getFloatingProps, getReferenceProps } = useInteractions([\n useDismiss(context),\n useRole(context, { role: \"dialog\" }),\n useClick(context),\n ]);\n\n const getTriggerProps = <\n Element extends\n | keyof JSX.IntrinsicElements\n | JSXElementConstructor<any> = \"div\"\n >(\n userProps?: ComponentPropsWithoutRef<Element>\n ) => {\n return getReferenceProps({\n ...userProps,\n ref: reference,\n }) as ComponentPropsWithRef<Element>;\n };\n\n const getOverlayProps = (userProps?: OverlayProps) => {\n const arrowProps = {\n ref: handleArrowRef,\n style: {\n position: strategy,\n left: middlewareData.arrow?.x ?? 0,\n top: middlewareData.arrow?.y ?? 0,\n },\n };\n\n return {\n arrowProps,\n open,\n onOpenChange: handleOpenChange,\n ...getFloatingProps({\n // @ts-ignore\n \"data-placement\": placement,\n ...userProps,\n style: {\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n ...(userProps?.style || {}),\n },\n ref: floating,\n }),\n } as OverlayProps;\n };\n\n return {\n getTriggerProps,\n getOverlayProps,\n };\n}\n"],"names":["useRef","useControlled","isDesktop","margin","arrow","offset","flip","shift","limitShift","useFloatingUI","useCallback","useInteractions","useDismiss","useRole","useClick"],"mappings":"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"}
@@ -13,6 +13,7 @@ require('../../tokenized-input/TokenizedInputBase.js');
13
13
  require('clipboard-copy');
14
14
  require('../../utils/useFloatingUI.js');
15
15
  require('../../form-field-context/FormFieldContext.js');
16
+ require('../../form-field-context/FormFieldContextNext.js');
16
17
 
17
18
  const withBaseName = core.makePrefixer("saltQueryInputBody");
18
19
  const QueryInputBody = React.forwardRef(
@@ -1 +1 @@
1
- {"version":3,"file":"QueryInputBody.js","sources":["../src/query-input/internal/QueryInputBody.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { FilterIcon } from \"@salt-ds/icons\";\nimport {\n ChangeEventHandler,\n FocusEventHandler,\n forwardRef,\n KeyboardEventHandler,\n Ref,\n SyntheticEvent,\n useMemo,\n} from \"react\";\n\nimport {\n ToggleButton,\n ToggleButtonGroup,\n ToggleButtonGroupChangeEventHandler,\n} from \"../../toggle-button\";\nimport {\n ChangeHandler,\n StringToItem,\n TokenizedInput,\n} from \"../../tokenized-input\";\nimport { QueryInputItem } from \"../queryInputTypes\";\nimport { BooleanOperator } from \"../useQueryInput\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputBody\");\n\nexport interface QueryInputBodyProps {\n inputRef: Ref<HTMLInputElement>;\n disabled?: boolean;\n showCategory?: boolean;\n selectedItems: QueryInputItem[];\n onBlur: FocusEventHandler<HTMLInputElement>;\n onFocus: FocusEventHandler<HTMLInputElement>;\n onInputFocus: FocusEventHandler<HTMLInputElement>;\n onInputBlur: FocusEventHandler<HTMLInputElement>;\n onInputClick: (event: SyntheticEvent) => void;\n onInputClear: () => void;\n inputValue?: string;\n onInputChange: ChangeEventHandler<HTMLInputElement>;\n isFocused?: boolean;\n onSelectedItemsChange: ChangeHandler<QueryInputItem>;\n onKeyDown: KeyboardEventHandler<HTMLInputElement | HTMLButtonElement>;\n booleanOperator: BooleanOperator;\n onBooleanOperatorChange: (newBooleanOperator: BooleanOperator) => void;\n}\n\nexport const QueryInputBody = forwardRef<HTMLDivElement, QueryInputBodyProps>(\n function QueryInputBody(props, ref) {\n const {\n inputRef,\n disabled,\n selectedItems,\n onInputFocus,\n onInputBlur,\n showCategory,\n inputValue,\n onInputChange,\n isFocused,\n onInputClear,\n onSelectedItemsChange,\n onKeyDown,\n onInputClick,\n booleanOperator,\n onBooleanOperatorChange,\n } = props;\n\n const itemToString = useMemo(() => {\n if (showCategory) {\n return (item: QueryInputItem) => [item.category, item.value].join(\": \");\n }\n return (item: QueryInputItem) => item.value;\n }, [showCategory]);\n\n const stringToItem: StringToItem<QueryInputItem> = (\n selectedItems,\n value\n ) => {\n return {\n category: null,\n value,\n };\n };\n\n const onChange: ToggleButtonGroupChangeEventHandler = (event, index) => {\n const newBooleanOperator = index === 0 ? \"and\" : \"or\";\n onBooleanOperatorChange(newBooleanOperator);\n };\n\n return (\n <div ref={ref} className={withBaseName()}>\n <FilterIcon />\n <TokenizedInput\n inputRef={inputRef}\n disabled={disabled}\n className={withBaseName(\"input\")}\n selectedItems={selectedItems}\n itemToString={itemToString as any}\n stringToItem={stringToItem as any}\n onInputFocus={onInputFocus}\n onInputBlur={onInputBlur}\n value={inputValue}\n onClick={onInputClick}\n onInputChange={onInputChange}\n expanded={isFocused}\n onClear={onInputClear}\n onChange={onSelectedItemsChange as any}\n onKeyDown={onKeyDown}\n />\n <div className={withBaseName(\"separator\")} />\n <ToggleButtonGroup\n variant=\"secondary\"\n className={withBaseName(\"buttonGroup\")}\n data-testid=\"boolean-selector\"\n selectedIndex={booleanOperator === \"and\" ? 0 : 1}\n onChange={onChange}\n >\n <ToggleButton value=\"and\">And</ToggleButton>\n <ToggleButton value=\"or\">Or</ToggleButton>\n </ToggleButtonGroup>\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","QueryInputBody","useMemo","selectedItems","jsxs","jsx","FilterIcon","TokenizedInput","ToggleButtonGroup","ToggleButton"],"mappings":"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"}
1
+ {"version":3,"file":"QueryInputBody.js","sources":["../src/query-input/internal/QueryInputBody.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { FilterIcon } from \"@salt-ds/icons\";\nimport {\n ChangeEventHandler,\n FocusEventHandler,\n forwardRef,\n KeyboardEventHandler,\n Ref,\n SyntheticEvent,\n useMemo,\n} from \"react\";\n\nimport {\n ToggleButton,\n ToggleButtonGroup,\n ToggleButtonGroupChangeEventHandler,\n} from \"../../toggle-button\";\nimport {\n ChangeHandler,\n StringToItem,\n TokenizedInput,\n} from \"../../tokenized-input\";\nimport { QueryInputItem } from \"../queryInputTypes\";\nimport { BooleanOperator } from \"../useQueryInput\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputBody\");\n\nexport interface QueryInputBodyProps {\n inputRef: Ref<HTMLInputElement>;\n disabled?: boolean;\n showCategory?: boolean;\n selectedItems: QueryInputItem[];\n onBlur: FocusEventHandler<HTMLInputElement>;\n onFocus: FocusEventHandler<HTMLInputElement>;\n onInputFocus: FocusEventHandler<HTMLInputElement>;\n onInputBlur: FocusEventHandler<HTMLInputElement>;\n onInputClick: (event: SyntheticEvent) => void;\n onInputClear: () => void;\n inputValue?: string;\n onInputChange: ChangeEventHandler<HTMLInputElement>;\n isFocused?: boolean;\n onSelectedItemsChange: ChangeHandler<QueryInputItem>;\n onKeyDown: KeyboardEventHandler<HTMLInputElement | HTMLButtonElement>;\n booleanOperator: BooleanOperator;\n onBooleanOperatorChange: (newBooleanOperator: BooleanOperator) => void;\n}\n\nexport const QueryInputBody = forwardRef<HTMLDivElement, QueryInputBodyProps>(\n function QueryInputBody(props, ref) {\n const {\n inputRef,\n disabled,\n selectedItems,\n onInputFocus,\n onInputBlur,\n showCategory,\n inputValue,\n onInputChange,\n isFocused,\n onInputClear,\n onSelectedItemsChange,\n onKeyDown,\n onInputClick,\n booleanOperator,\n onBooleanOperatorChange,\n } = props;\n\n const itemToString = useMemo(() => {\n if (showCategory) {\n return (item: QueryInputItem) => [item.category, item.value].join(\": \");\n }\n return (item: QueryInputItem) => item.value;\n }, [showCategory]);\n\n const stringToItem: StringToItem<QueryInputItem> = (\n selectedItems,\n value\n ) => {\n return {\n category: null,\n value,\n };\n };\n\n const onChange: ToggleButtonGroupChangeEventHandler = (event, index) => {\n const newBooleanOperator = index === 0 ? \"and\" : \"or\";\n onBooleanOperatorChange(newBooleanOperator);\n };\n\n return (\n <div ref={ref} className={withBaseName()}>\n <FilterIcon />\n <TokenizedInput\n inputRef={inputRef}\n disabled={disabled}\n className={withBaseName(\"input\")}\n selectedItems={selectedItems}\n itemToString={itemToString as any}\n stringToItem={stringToItem as any}\n onInputFocus={onInputFocus}\n onInputBlur={onInputBlur}\n value={inputValue}\n onClick={onInputClick}\n onInputChange={onInputChange}\n expanded={isFocused}\n onClear={onInputClear}\n onChange={onSelectedItemsChange as any}\n onKeyDown={onKeyDown}\n />\n <div className={withBaseName(\"separator\")} />\n <ToggleButtonGroup\n variant=\"secondary\"\n className={withBaseName(\"buttonGroup\")}\n data-testid=\"boolean-selector\"\n selectedIndex={booleanOperator === \"and\" ? 0 : 1}\n onChange={onChange}\n >\n <ToggleButton value=\"and\">And</ToggleButton>\n <ToggleButton value=\"or\">Or</ToggleButton>\n </ToggleButtonGroup>\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","QueryInputBody","useMemo","selectedItems","jsxs","jsx","FilterIcon","TokenizedInput","ToggleButtonGroup","ToggleButton"],"mappings":"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"}
@@ -90,8 +90,8 @@ function ValueSelector(props) {
90
90
  return /* @__PURE__ */ jsxRuntime.jsx(Portal.Portal, {
91
91
  children: /* @__PURE__ */ jsxRuntime.jsx(Window, {
92
92
  style: {
93
- top: y != null ? y : "",
94
- left: x != null ? x : "",
93
+ top: y != null ? y : 0,
94
+ left: x != null ? x : 0,
95
95
  position: strategy
96
96
  },
97
97
  ref: handleRef,
@@ -1 +1 @@
1
- {"version":3,"file":"ValueSelector.js","sources":["../src/query-input/internal/ValueSelector.tsx"],"sourcesContent":["import {\n makePrefixer,\n useFloatingUI,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { Dispatch, Ref, SetStateAction, useMemo } from \"react\";\nimport { QueryInputCategory, QueryInputItem } from \"../queryInputTypes\";\nimport { CategoryList } from \"./CategoryList\";\nimport { SearchList } from \"./SearchList\";\nimport { ValueList } from \"./ValueList\";\nimport { Portal } from \"../../portal\";\nimport { useWindow } from \"../../window\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputValueSelector\");\n\nexport interface ValueSelectorProps {\n isOpen: boolean;\n anchorElement: HTMLElement | null;\n popperRef: Ref<HTMLDivElement>;\n\n inputValue?: string;\n categories: QueryInputCategory[];\n selectedCategory: QueryInputCategory | null;\n onSelectedCategoryChange: (category: QueryInputCategory | null) => void;\n\n width: number;\n selectedItems: QueryInputItem[];\n onValueToggle: (category: QueryInputCategory, value: string) => void;\n onSearchListChange: (items: QueryInputItem[]) => void;\n\n highlightedIndex?: number;\n visibleCategories: QueryInputCategory[];\n\n highlightedCategoryIndex?: number;\n highlightedValueIndex?: number;\n setHighlightedIndex: Dispatch<SetStateAction<number>>;\n setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;\n setHighlightedValueIndex: Dispatch<SetStateAction<number>>;\n}\n\nexport function ValueSelector(props: ValueSelectorProps) {\n const {\n isOpen,\n inputValue,\n anchorElement,\n popperRef,\n categories,\n selectedCategory,\n onSelectedCategoryChange,\n width,\n selectedItems,\n onValueToggle,\n highlightedIndex,\n visibleCategories,\n highlightedCategoryIndex,\n highlightedValueIndex,\n onSearchListChange,\n setHighlightedValueIndex,\n setHighlightedCategoryIndex,\n setHighlightedIndex,\n } = props;\n\n const selectedCategoryValues = useMemo(() => {\n if (!selectedCategory) {\n return [];\n }\n return selectedItems\n .filter((item) => item.category === selectedCategory.name)\n .map(({ value }) => value);\n }, [selectedCategory, selectedItems]);\n\n const onBackToCategories = () => {\n onSelectedCategoryChange(null);\n };\n\n const renderContent = () => {\n if (inputValue) {\n return (\n <SearchList\n inputValue={inputValue}\n selectedItems={selectedItems}\n onChange={onSearchListChange}\n rootWidth={width}\n highlightedIndex={highlightedIndex}\n visibleCategories={visibleCategories}\n setHighlightedIndex={setHighlightedIndex}\n />\n );\n }\n\n if (!selectedCategory) {\n return (\n <CategoryList\n categories={categories}\n rootWidth={width}\n onCategorySelect={onSelectedCategoryChange}\n highlightedCategoryIndex={highlightedCategoryIndex}\n setHighlightedCategoryIndex={setHighlightedCategoryIndex}\n />\n );\n }\n\n return (\n <ValueList\n category={selectedCategory}\n rootWidth={width}\n onBack={onBackToCategories}\n selectedValues={selectedCategoryValues}\n onValueToggle={onValueToggle}\n highlightedValueIndex={highlightedValueIndex}\n setHighlightedValueIndex={setHighlightedValueIndex}\n />\n );\n };\n\n const Window = useWindow();\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: \"bottom\",\n });\n const handleRef = useForkRef<HTMLDivElement>(floating, popperRef);\n useIsomorphicLayoutEffect(() => {\n if (anchorElement) {\n reference(anchorElement);\n }\n }, [reference, anchorElement]);\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Portal>\n <Window\n style={{\n top: y ?? \"\",\n left: x ?? \"\",\n position: strategy,\n }}\n ref={handleRef}\n >\n <div className={withBaseName(\"content\")}>{renderContent()}</div>\n </Window>\n </Portal>\n );\n}\n"],"names":["makePrefixer","useMemo","jsx","SearchList","CategoryList","ValueList","useWindow","useFloatingUI","useForkRef","useIsomorphicLayoutEffect","Portal"],"mappings":"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"}
1
+ {"version":3,"file":"ValueSelector.js","sources":["../src/query-input/internal/ValueSelector.tsx"],"sourcesContent":["import {\n makePrefixer,\n useFloatingUI,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { Dispatch, Ref, SetStateAction, useMemo } from \"react\";\nimport { QueryInputCategory, QueryInputItem } from \"../queryInputTypes\";\nimport { CategoryList } from \"./CategoryList\";\nimport { SearchList } from \"./SearchList\";\nimport { ValueList } from \"./ValueList\";\nimport { Portal } from \"../../portal\";\nimport { useWindow } from \"../../window\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputValueSelector\");\n\nexport interface ValueSelectorProps {\n isOpen: boolean;\n anchorElement: HTMLElement | null;\n popperRef: Ref<HTMLDivElement>;\n\n inputValue?: string;\n categories: QueryInputCategory[];\n selectedCategory: QueryInputCategory | null;\n onSelectedCategoryChange: (category: QueryInputCategory | null) => void;\n\n width: number;\n selectedItems: QueryInputItem[];\n onValueToggle: (category: QueryInputCategory, value: string) => void;\n onSearchListChange: (items: QueryInputItem[]) => void;\n\n highlightedIndex?: number;\n visibleCategories: QueryInputCategory[];\n\n highlightedCategoryIndex?: number;\n highlightedValueIndex?: number;\n setHighlightedIndex: Dispatch<SetStateAction<number>>;\n setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;\n setHighlightedValueIndex: Dispatch<SetStateAction<number>>;\n}\n\nexport function ValueSelector(props: ValueSelectorProps) {\n const {\n isOpen,\n inputValue,\n anchorElement,\n popperRef,\n categories,\n selectedCategory,\n onSelectedCategoryChange,\n width,\n selectedItems,\n onValueToggle,\n highlightedIndex,\n visibleCategories,\n highlightedCategoryIndex,\n highlightedValueIndex,\n onSearchListChange,\n setHighlightedValueIndex,\n setHighlightedCategoryIndex,\n setHighlightedIndex,\n } = props;\n\n const selectedCategoryValues = useMemo(() => {\n if (!selectedCategory) {\n return [];\n }\n return selectedItems\n .filter((item) => item.category === selectedCategory.name)\n .map(({ value }) => value);\n }, [selectedCategory, selectedItems]);\n\n const onBackToCategories = () => {\n onSelectedCategoryChange(null);\n };\n\n const renderContent = () => {\n if (inputValue) {\n return (\n <SearchList\n inputValue={inputValue}\n selectedItems={selectedItems}\n onChange={onSearchListChange}\n rootWidth={width}\n highlightedIndex={highlightedIndex}\n visibleCategories={visibleCategories}\n setHighlightedIndex={setHighlightedIndex}\n />\n );\n }\n\n if (!selectedCategory) {\n return (\n <CategoryList\n categories={categories}\n rootWidth={width}\n onCategorySelect={onSelectedCategoryChange}\n highlightedCategoryIndex={highlightedCategoryIndex}\n setHighlightedCategoryIndex={setHighlightedCategoryIndex}\n />\n );\n }\n\n return (\n <ValueList\n category={selectedCategory}\n rootWidth={width}\n onBack={onBackToCategories}\n selectedValues={selectedCategoryValues}\n onValueToggle={onValueToggle}\n highlightedValueIndex={highlightedValueIndex}\n setHighlightedValueIndex={setHighlightedValueIndex}\n />\n );\n };\n\n const Window = useWindow();\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: \"bottom\",\n });\n const handleRef = useForkRef<HTMLDivElement>(floating, popperRef);\n useIsomorphicLayoutEffect(() => {\n if (anchorElement) {\n reference(anchorElement);\n }\n }, [reference, anchorElement]);\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Portal>\n <Window\n style={{\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n }}\n ref={handleRef}\n >\n <div className={withBaseName(\"content\")}>{renderContent()}</div>\n </Window>\n </Portal>\n );\n}\n"],"names":["makePrefixer","useMemo","jsx","SearchList","CategoryList","ValueList","useWindow","useFloatingUI","useForkRef","useIsomorphicLayoutEffect","Portal"],"mappings":"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"}
@@ -4,7 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var core = require('@salt-ds/core');
6
6
  require('../../form-field-context/FormFieldContext.js');
7
+ require('../../form-field-context/FormFieldContextNext.js');
7
8
  var useFormFieldProps = require('../../form-field-context/useFormFieldProps.js');
9
+ require('react');
8
10
 
9
11
  const refreshButtonWidth = {
10
12
  touch: 36,
@@ -1 +1 @@
1
- {"version":3,"file":"useActivationIndicatorPosition.js","sources":["../src/stepper-input/internal/useActivationIndicatorPosition.ts"],"sourcesContent":["import { useDensity, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { useFormFieldProps } from \"../../form-field-context\";\nimport { MutableRefObject } from \"react\";\n\nconst refreshButtonWidth = {\n touch: 36,\n low: 28,\n medium: 24,\n high: 12,\n};\n\n// The activation indicator icon is absolutely positioned by FormField,\n// and must be offset to accommodate the end adornment added by Stepper Input.\n// Ideally, we should be able to provide an 'activationIndicator' class to FormField to\n// override its default positioning instead of directly repositioning it via its ref.\nexport function useActivationIndicatorPosition(\n adornmentRef: MutableRefObject<HTMLDivElement | null>,\n refreshButtonVisible: boolean\n) {\n const formFieldProps = useFormFieldProps();\n const { ref: formFieldRef } = formFieldProps;\n const density = useDensity();\n\n useIsomorphicLayoutEffect(() => {\n let offset;\n if (adornmentRef && adornmentRef.current !== null) {\n const marginAdjustment =\n density === \"high\" || density === \"medium\" ? 2 : 4;\n\n const secondaryButtonAdjustment = refreshButtonVisible\n ? 0\n : refreshButtonWidth[density];\n\n offset =\n adornmentRef.current.getBoundingClientRect().width -\n marginAdjustment -\n secondaryButtonAdjustment;\n }\n if (formFieldRef && formFieldRef.current && offset) {\n const activationIndicator = formFieldRef.current.getElementsByClassName(\n \"saltFormActivationIndicator-icon\"\n ) as HTMLCollectionOf<HTMLElement>;\n if (activationIndicator.length > 0) {\n activationIndicator[0].style.transform = `translateX(-${offset}px)`;\n }\n }\n });\n}\n"],"names":["useFormFieldProps","useDensity","useIsomorphicLayoutEffect"],"mappings":";;;;;;;;AAIA,MAAM,kBAAqB,GAAA;AAAA,EACzB,KAAO,EAAA,EAAA;AAAA,EACP,GAAK,EAAA,EAAA;AAAA,EACL,MAAQ,EAAA,EAAA;AAAA,EACR,IAAM,EAAA,EAAA;AACR,CAAA,CAAA;AAMgB,SAAA,8BAAA,CACd,cACA,oBACA,EAAA;AACA,EAAA,MAAM,iBAAiBA,mCAAkB,EAAA,CAAA;AACzC,EAAM,MAAA,EAAE,GAAK,EAAA,YAAA,EAAiB,GAAA,cAAA,CAAA;AAC9B,EAAA,MAAM,UAAUC,eAAW,EAAA,CAAA;AAE3B,EAAAC,8BAAA,CAA0B,MAAM;AAC9B,IAAI,IAAA,MAAA,CAAA;AACJ,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,KAAY,IAAM,EAAA;AACjD,MAAA,MAAM,gBACJ,GAAA,OAAA,KAAY,MAAU,IAAA,OAAA,KAAY,WAAW,CAAI,GAAA,CAAA,CAAA;AAEnD,MAAM,MAAA,yBAAA,GAA4B,oBAC9B,GAAA,CAAA,GACA,kBAAmB,CAAA,OAAA,CAAA,CAAA;AAEvB,MAAA,MAAA,GACE,YAAa,CAAA,OAAA,CAAQ,qBAAsB,EAAA,CAAE,QAC7C,gBACA,GAAA,yBAAA,CAAA;AAAA,KACJ;AACA,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,IAAW,MAAQ,EAAA;AAClD,MAAM,MAAA,mBAAA,GAAsB,aAAa,OAAQ,CAAA,sBAAA;AAAA,QAC/C,kCAAA;AAAA,OACF,CAAA;AACA,MAAI,IAAA,mBAAA,CAAoB,SAAS,CAAG,EAAA;AAClC,QAAoB,mBAAA,CAAA,CAAA,CAAA,CAAG,KAAM,CAAA,SAAA,GAAY,CAAe,YAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAC1D;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useActivationIndicatorPosition.js","sources":["../src/stepper-input/internal/useActivationIndicatorPosition.ts"],"sourcesContent":["import { useDensity, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { useFormFieldProps } from \"../../form-field-context\";\nimport { MutableRefObject } from \"react\";\n\nconst refreshButtonWidth = {\n touch: 36,\n low: 28,\n medium: 24,\n high: 12,\n};\n\n// The activation indicator icon is absolutely positioned by FormField,\n// and must be offset to accommodate the end adornment added by Stepper Input.\n// Ideally, we should be able to provide an 'activationIndicator' class to FormField to\n// override its default positioning instead of directly repositioning it via its ref.\nexport function useActivationIndicatorPosition(\n adornmentRef: MutableRefObject<HTMLDivElement | null>,\n refreshButtonVisible: boolean\n) {\n const formFieldProps = useFormFieldProps();\n const { ref: formFieldRef } = formFieldProps;\n const density = useDensity();\n\n useIsomorphicLayoutEffect(() => {\n let offset;\n if (adornmentRef && adornmentRef.current !== null) {\n const marginAdjustment =\n density === \"high\" || density === \"medium\" ? 2 : 4;\n\n const secondaryButtonAdjustment = refreshButtonVisible\n ? 0\n : refreshButtonWidth[density];\n\n offset =\n adornmentRef.current.getBoundingClientRect().width -\n marginAdjustment -\n secondaryButtonAdjustment;\n }\n if (formFieldRef && formFieldRef.current && offset) {\n const activationIndicator = formFieldRef.current.getElementsByClassName(\n \"saltFormActivationIndicator-icon\"\n ) as HTMLCollectionOf<HTMLElement>;\n if (activationIndicator.length > 0) {\n activationIndicator[0].style.transform = `translateX(-${offset}px)`;\n }\n }\n });\n}\n"],"names":["useFormFieldProps","useDensity","useIsomorphicLayoutEffect"],"mappings":";;;;;;;;;;AAIA,MAAM,kBAAqB,GAAA;AAAA,EACzB,KAAO,EAAA,EAAA;AAAA,EACP,GAAK,EAAA,EAAA;AAAA,EACL,MAAQ,EAAA,EAAA;AAAA,EACR,IAAM,EAAA,EAAA;AACR,CAAA,CAAA;AAMgB,SAAA,8BAAA,CACd,cACA,oBACA,EAAA;AACA,EAAA,MAAM,iBAAiBA,mCAAkB,EAAA,CAAA;AACzC,EAAM,MAAA,EAAE,GAAK,EAAA,YAAA,EAAiB,GAAA,cAAA,CAAA;AAC9B,EAAA,MAAM,UAAUC,eAAW,EAAA,CAAA;AAE3B,EAAAC,8BAAA,CAA0B,MAAM;AAC9B,IAAI,IAAA,MAAA,CAAA;AACJ,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,KAAY,IAAM,EAAA;AACjD,MAAA,MAAM,gBACJ,GAAA,OAAA,KAAY,MAAU,IAAA,OAAA,KAAY,WAAW,CAAI,GAAA,CAAA,CAAA;AAEnD,MAAM,MAAA,yBAAA,GAA4B,oBAC9B,GAAA,CAAA,GACA,kBAAmB,CAAA,OAAA,CAAA,CAAA;AAEvB,MAAA,MAAA,GACE,YAAa,CAAA,OAAA,CAAQ,qBAAsB,EAAA,CAAE,QAC7C,gBACA,GAAA,yBAAA,CAAA;AAAA,KACJ;AACA,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,IAAW,MAAQ,EAAA;AAClD,MAAM,MAAA,mBAAA,GAAsB,aAAa,OAAQ,CAAA,sBAAA;AAAA,QAC/C,kCAAA;AAAA,OACF,CAAA;AACA,MAAI,IAAA,mBAAA,CAAoB,SAAS,CAAG,EAAA;AAClC,QAAoB,mBAAA,CAAA,CAAA,CAAA,CAAG,KAAM,CAAA,SAAA,GAAY,CAAe,YAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAC1D;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
@@ -8,6 +8,7 @@ var React = require('react');
8
8
  var core = require('@salt-ds/core');
9
9
  var ControlLabel = require('../control-label/ControlLabel.js');
10
10
  require('../form-field-context/FormFieldContext.js');
11
+ require('../form-field-context/FormFieldContextNext.js');
11
12
  var useFormFieldProps = require('../form-field-context/useFormFieldProps.js');
12
13
  var CheckedIcon = require('./assets/CheckedIcon.js');
13
14
  require('./Switch.css.js');
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../src/switch/Switch.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n FocusEvent,\n forwardRef,\n InputHTMLAttributes,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { ControlLabel, ControlLabelProps } from \"../control-label\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { CheckedIcon } from \"./assets/CheckedIcon\";\n\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"onChange\"> {\n label?: ControlLabelProps[\"label\"];\n LabelProps?: Partial<ControlLabelProps>;\n onChange?: (event: ChangeEvent<HTMLInputElement>, checked: boolean) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltSwitch\");\n\nexport const Switch = forwardRef<HTMLLabelElement, SwitchProps>(function Switch(\n props,\n ref\n) {\n const { a11yProps } = useFormFieldProps();\n\n const {\n checked: checkedProp,\n className,\n color,\n defaultChecked,\n disabled,\n label,\n LabelProps,\n onBlur,\n onChange,\n onFocus,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const [checked, setChecked] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: \"Switch\",\n state: \"checked\",\n });\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.checked;\n setChecked(value);\n onChange?.(event, value);\n };\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!inputRef.current) {\n inputRef.current = event.currentTarget;\n }\n\n // TODO :focus-visible not yet supported on Safari, so we'll need to use the\n // useIsFocusVisible polyfill\n if (inputRef.current?.matches(\":focus-visible\")) {\n setFocusVisible(true);\n }\n\n onFocus?.(event);\n },\n [onFocus]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setFocusVisible(false);\n onBlur?.(event);\n },\n [onBlur]\n );\n\n return (\n <ControlLabel\n {...LabelProps}\n className={clsx(\n withBaseName(\"label\"),\n { [withBaseName(\"disabled\")]: disabled },\n className\n )}\n disabled={disabled}\n label={label}\n ref={ref}\n >\n <span className={clsx(withBaseName(), className)}>\n <span\n className={clsx(withBaseName(\"base\"), {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"focusVisible\")]: focusVisible,\n })}\n >\n <span className={withBaseName(\"inputContainer\")}>\n <input\n className={withBaseName(\"input\")}\n checked={checked}\n disabled={disabled}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={inputRef}\n type=\"checkbox\"\n {...a11yProps}\n {...rest}\n />\n {checked ? (\n <CheckedIcon className={withBaseName(\"icon\")} />\n ) : (\n <span className={withBaseName(\"thumb\")} />\n )}\n </span>\n </span>\n <span className={withBaseName(\"track\")} />\n </span>\n </ControlLabel>\n );\n});\n"],"names":["makePrefixer","forwardRef","Switch","useFormFieldProps","useRef","useControlled","useState","useCallback","jsx","ControlLabel","clsx","jsxs","CheckedIcon"],"mappings":"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"}
1
+ {"version":3,"file":"Switch.js","sources":["../src/switch/Switch.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n FocusEvent,\n forwardRef,\n InputHTMLAttributes,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { ControlLabel, ControlLabelProps } from \"../control-label\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { CheckedIcon } from \"./assets/CheckedIcon\";\n\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"onChange\"> {\n label?: ControlLabelProps[\"label\"];\n LabelProps?: Partial<ControlLabelProps>;\n onChange?: (event: ChangeEvent<HTMLInputElement>, checked: boolean) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltSwitch\");\n\nexport const Switch = forwardRef<HTMLLabelElement, SwitchProps>(function Switch(\n props,\n ref\n) {\n const { a11yProps } = useFormFieldProps();\n\n const {\n checked: checkedProp,\n className,\n color,\n defaultChecked,\n disabled,\n label,\n LabelProps,\n onBlur,\n onChange,\n onFocus,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const [checked, setChecked] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: \"Switch\",\n state: \"checked\",\n });\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.checked;\n setChecked(value);\n onChange?.(event, value);\n };\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!inputRef.current) {\n inputRef.current = event.currentTarget;\n }\n\n // TODO :focus-visible not yet supported on Safari, so we'll need to use the\n // useIsFocusVisible polyfill\n if (inputRef.current?.matches(\":focus-visible\")) {\n setFocusVisible(true);\n }\n\n onFocus?.(event);\n },\n [onFocus]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setFocusVisible(false);\n onBlur?.(event);\n },\n [onBlur]\n );\n\n return (\n <ControlLabel\n {...LabelProps}\n className={clsx(\n withBaseName(\"label\"),\n { [withBaseName(\"disabled\")]: disabled },\n className\n )}\n disabled={disabled}\n label={label}\n ref={ref}\n >\n <span className={clsx(withBaseName(), className)}>\n <span\n className={clsx(withBaseName(\"base\"), {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"focusVisible\")]: focusVisible,\n })}\n >\n <span className={withBaseName(\"inputContainer\")}>\n <input\n className={withBaseName(\"input\")}\n checked={checked}\n disabled={disabled}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={inputRef}\n type=\"checkbox\"\n {...a11yProps}\n {...rest}\n />\n {checked ? (\n <CheckedIcon className={withBaseName(\"icon\")} />\n ) : (\n <span className={withBaseName(\"thumb\")} />\n )}\n </span>\n </span>\n <span className={withBaseName(\"track\")} />\n </span>\n </ControlLabel>\n );\n});\n"],"names":["makePrefixer","forwardRef","Switch","useFormFieldProps","useRef","useControlled","useState","useCallback","jsx","ControlLabel","clsx","jsxs","CheckedIcon"],"mappings":"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"}
@@ -15,6 +15,7 @@ require('../utils/useFloatingUI.js');
15
15
  var useOverflowCollectionItems = require('../responsive/useOverflowCollectionItems.js');
16
16
  var useOverflowLayout = require('../responsive/useOverflowLayout.js');
17
17
  require('../form-field-context/FormFieldContext.js');
18
+ require('../form-field-context/FormFieldContextNext.js');
18
19
  var Tab = require('./Tab.js');
19
20
  var TabActivationIndicator = require('./TabActivationIndicator.js');
20
21
  var useTabstrip = require('./useTabstrip.js');