@navikt/ds-react 6.16.3 → 6.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/form/combobox/Input/Input.d.ts +1 -1
- package/cjs/form/combobox/Input/Input.js +4 -3
- package/cjs/form/combobox/Input/Input.js.map +1 -1
- package/cjs/form/combobox/types.d.ts +1 -1
- package/esm/form/combobox/Input/Input.d.ts +1 -1
- package/esm/form/combobox/Input/Input.js +4 -3
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/form/combobox/types.d.ts +1 -1
- package/package.json +3 -3
- package/src/form/combobox/Input/Input.tsx +23 -11
- package/src/form/combobox/types.ts +11 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { InputHTMLAttributes } from "react";
|
|
2
|
-
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "disabled"> {
|
|
2
|
+
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "disabled" | "onClick" | "onInput" | "type" | "role" | "onKeyUp" | "onKeyDown" | "autoComplete"> {
|
|
3
3
|
ref: React.Ref<HTMLInputElement>;
|
|
4
4
|
inputClassName?: string;
|
|
5
5
|
shouldShowSelectedOptions?: boolean;
|
|
@@ -40,13 +40,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
40
40
|
const clsx_1 = __importDefault(require("clsx"));
|
|
41
41
|
const react_1 = __importStar(require("react"));
|
|
42
42
|
const util_1 = require("../../../util");
|
|
43
|
+
const composeEventHandlers_1 = require("../../../util/composeEventHandlers");
|
|
43
44
|
const hooks_1 = require("../../../util/hooks");
|
|
44
45
|
const filtered_options_util_1 = __importDefault(require("../FilteredOptions/filtered-options-util"));
|
|
45
46
|
const filteredOptionsContext_1 = require("../FilteredOptions/filteredOptionsContext");
|
|
46
47
|
const selectedOptionsContext_1 = require("../SelectedOptions/selectedOptionsContext");
|
|
47
48
|
const Input_context_1 = require("./Input.context");
|
|
48
49
|
const Input = (0, react_1.forwardRef)((_a, ref) => {
|
|
49
|
-
var { inputClassName, shouldShowSelectedOptions, placeholder } = _a, rest = __rest(_a, ["inputClassName", "shouldShowSelectedOptions", "placeholder"]);
|
|
50
|
+
var { inputClassName, shouldShowSelectedOptions, placeholder, onBlur } = _a, rest = __rest(_a, ["inputClassName", "shouldShowSelectedOptions", "placeholder", "onBlur"]);
|
|
50
51
|
const internalRef = (0, react_1.useRef)(null);
|
|
51
52
|
const mergedRefs = (0, hooks_1.useMergeRefs)(ref, internalRef);
|
|
52
53
|
const { clearInput, inputProps, onChange, size, value, searchTerm, setValue, hideCaret, setHideCaret, } = (0, Input_context_1.useInputContext)();
|
|
@@ -195,10 +196,10 @@ const Input = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
195
196
|
virtualFocus.moveFocusToTop();
|
|
196
197
|
onChange(newValue);
|
|
197
198
|
}, [filteredOptions.length, virtualFocus, onChange, toggleIsListOpen]);
|
|
198
|
-
return (react_1.default.createElement("input", Object.assign({}, rest, (0, util_1.omit)(inputProps, ["aria-invalid"]), { ref: mergedRefs, value: value, onBlur: ()
|
|
199
|
+
return (react_1.default.createElement("input", Object.assign({}, rest, (0, util_1.omit)(inputProps, ["aria-invalid"]), { ref: mergedRefs, type: "text", role: "combobox", value: value, onBlur: (0, composeEventHandlers_1.composeEventHandlers)(onBlur, virtualFocus.moveFocusToTop), onClick: () => {
|
|
199
200
|
setHideCaret(!!(maxSelected === null || maxSelected === void 0 ? void 0 : maxSelected.isLimitReached));
|
|
200
201
|
value !== searchTerm && onChange(value);
|
|
201
|
-
}, onInput: onChangeHandler,
|
|
202
|
+
}, onInput: onChangeHandler, onKeyUp: handleKeyUp, onKeyDown: handleKeyDown, autoComplete: "off", placeholder: selectedOptions.length ? undefined : placeholder, className: (0, clsx_1.default)(inputClassName, "navds-combobox__input", "navds-body-short", `navds-body-short--${size}`, { "navds-combobox__input--hide-caret": hideCaret }), "aria-controls": filtered_options_util_1.default.getFilteredOptionsId(inputProps.id), "aria-expanded": !!isListOpen, "aria-autocomplete": shouldAutocomplete ? "both" : "list", "aria-activedescendant": activeDecendantId, "aria-describedby": ariaDescribedBy, "aria-invalid": inputProps["aria-invalid"] })));
|
|
202
203
|
});
|
|
203
204
|
exports.default = Input;
|
|
204
205
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/Input.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAsB;AACtB,+CAKe;AACf,wCAAqC;AACrC,+CAAmD;AACnD,qGAA2E;AAC3E,sFAAsF;AACtF,sFAAsF;AACtF,mDAAkD;
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/Input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export type MaxSelected = {
|
|
|
24
24
|
*/
|
|
25
25
|
message?: string;
|
|
26
26
|
};
|
|
27
|
-
export interface ComboboxProps extends FormFieldProps, Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onChange" | "value" | "defaultValue"> {
|
|
27
|
+
export interface ComboboxProps extends FormFieldProps, Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onChange" | "value" | "defaultValue" | "onClick" | "onInput" | "type" | "role" | "onKeyUp" | "onKeyDown" | "autoComplete"> {
|
|
28
28
|
/**
|
|
29
29
|
* Combobox label.
|
|
30
30
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { InputHTMLAttributes } from "react";
|
|
2
|
-
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "disabled"> {
|
|
2
|
+
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "disabled" | "onClick" | "onInput" | "type" | "role" | "onKeyUp" | "onKeyDown" | "autoComplete"> {
|
|
3
3
|
ref: React.Ref<HTMLInputElement>;
|
|
4
4
|
inputClassName?: string;
|
|
5
5
|
shouldShowSelectedOptions?: boolean;
|
|
@@ -12,13 +12,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import cl from "clsx";
|
|
13
13
|
import React, { forwardRef, useCallback, useRef, } from "react";
|
|
14
14
|
import { omit } from "../../../util/index.js";
|
|
15
|
+
import { composeEventHandlers } from "../../../util/composeEventHandlers.js";
|
|
15
16
|
import { useMergeRefs } from "../../../util/hooks/index.js";
|
|
16
17
|
import filteredOptionsUtil from "../FilteredOptions/filtered-options-util.js";
|
|
17
18
|
import { useFilteredOptionsContext } from "../FilteredOptions/filteredOptionsContext.js";
|
|
18
19
|
import { useSelectedOptionsContext } from "../SelectedOptions/selectedOptionsContext.js";
|
|
19
20
|
import { useInputContext } from "./Input.context.js";
|
|
20
21
|
const Input = forwardRef((_a, ref) => {
|
|
21
|
-
var { inputClassName, shouldShowSelectedOptions, placeholder } = _a, rest = __rest(_a, ["inputClassName", "shouldShowSelectedOptions", "placeholder"]);
|
|
22
|
+
var { inputClassName, shouldShowSelectedOptions, placeholder, onBlur } = _a, rest = __rest(_a, ["inputClassName", "shouldShowSelectedOptions", "placeholder", "onBlur"]);
|
|
22
23
|
const internalRef = useRef(null);
|
|
23
24
|
const mergedRefs = useMergeRefs(ref, internalRef);
|
|
24
25
|
const { clearInput, inputProps, onChange, size, value, searchTerm, setValue, hideCaret, setHideCaret, } = useInputContext();
|
|
@@ -167,10 +168,10 @@ const Input = forwardRef((_a, ref) => {
|
|
|
167
168
|
virtualFocus.moveFocusToTop();
|
|
168
169
|
onChange(newValue);
|
|
169
170
|
}, [filteredOptions.length, virtualFocus, onChange, toggleIsListOpen]);
|
|
170
|
-
return (React.createElement("input", Object.assign({}, rest, omit(inputProps, ["aria-invalid"]), { ref: mergedRefs, value: value, onBlur: (
|
|
171
|
+
return (React.createElement("input", Object.assign({}, rest, omit(inputProps, ["aria-invalid"]), { ref: mergedRefs, type: "text", role: "combobox", value: value, onBlur: composeEventHandlers(onBlur, virtualFocus.moveFocusToTop), onClick: () => {
|
|
171
172
|
setHideCaret(!!(maxSelected === null || maxSelected === void 0 ? void 0 : maxSelected.isLimitReached));
|
|
172
173
|
value !== searchTerm && onChange(value);
|
|
173
|
-
}, onInput: onChangeHandler,
|
|
174
|
+
}, onInput: onChangeHandler, onKeyUp: handleKeyUp, onKeyDown: handleKeyDown, autoComplete: "off", placeholder: selectedOptions.length ? undefined : placeholder, className: cl(inputClassName, "navds-combobox__input", "navds-body-short", `navds-body-short--${size}`, { "navds-combobox__input--hide-caret": hideCaret }), "aria-controls": filteredOptionsUtil.getFilteredOptionsId(inputProps.id), "aria-expanded": !!isListOpen, "aria-autocomplete": shouldAutocomplete ? "both" : "list", "aria-activedescendant": activeDecendantId, "aria-describedby": ariaDescribedBy, "aria-invalid": inputProps["aria-invalid"] })));
|
|
174
175
|
});
|
|
175
176
|
export default Input;
|
|
176
177
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/Input.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAEZ,UAAU,EACV,WAAW,EACX,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/Input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export type MaxSelected = {
|
|
|
24
24
|
*/
|
|
25
25
|
message?: string;
|
|
26
26
|
};
|
|
27
|
-
export interface ComboboxProps extends FormFieldProps, Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onChange" | "value" | "defaultValue"> {
|
|
27
|
+
export interface ComboboxProps extends FormFieldProps, Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onChange" | "value" | "defaultValue" | "onClick" | "onInput" | "type" | "role" | "onKeyUp" | "onKeyDown" | "autoComplete"> {
|
|
28
28
|
/**
|
|
29
29
|
* Combobox label.
|
|
30
30
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.17.0",
|
|
4
4
|
"description": "React components from the Norwegian Labour and Welfare Administration.",
|
|
5
5
|
"author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -594,8 +594,8 @@
|
|
|
594
594
|
"dependencies": {
|
|
595
595
|
"@floating-ui/react": "0.25.4",
|
|
596
596
|
"@floating-ui/react-dom": "^2.0.9",
|
|
597
|
-
"@navikt/aksel-icons": "^6.
|
|
598
|
-
"@navikt/ds-tokens": "^6.
|
|
597
|
+
"@navikt/aksel-icons": "^6.17.0",
|
|
598
|
+
"@navikt/ds-tokens": "^6.17.0",
|
|
599
599
|
"clsx": "^2.1.0",
|
|
600
600
|
"date-fns": "^3.0.0",
|
|
601
601
|
"react-day-picker": "8.10.0"
|
|
@@ -6,6 +6,7 @@ import React, {
|
|
|
6
6
|
useRef,
|
|
7
7
|
} from "react";
|
|
8
8
|
import { omit } from "../../../util";
|
|
9
|
+
import { composeEventHandlers } from "../../../util/composeEventHandlers";
|
|
9
10
|
import { useMergeRefs } from "../../../util/hooks";
|
|
10
11
|
import filteredOptionsUtil from "../FilteredOptions/filtered-options-util";
|
|
11
12
|
import { useFilteredOptionsContext } from "../FilteredOptions/filteredOptionsContext";
|
|
@@ -13,7 +14,18 @@ import { useSelectedOptionsContext } from "../SelectedOptions/selectedOptionsCon
|
|
|
13
14
|
import { useInputContext } from "./Input.context";
|
|
14
15
|
|
|
15
16
|
interface InputProps
|
|
16
|
-
extends Omit<
|
|
17
|
+
extends Omit<
|
|
18
|
+
InputHTMLAttributes<HTMLInputElement>,
|
|
19
|
+
| "value"
|
|
20
|
+
| "disabled"
|
|
21
|
+
| "onClick"
|
|
22
|
+
| "onInput"
|
|
23
|
+
| "type"
|
|
24
|
+
| "role"
|
|
25
|
+
| "onKeyUp"
|
|
26
|
+
| "onKeyDown"
|
|
27
|
+
| "autoComplete"
|
|
28
|
+
> {
|
|
17
29
|
ref: React.Ref<HTMLInputElement>;
|
|
18
30
|
inputClassName?: string;
|
|
19
31
|
shouldShowSelectedOptions?: boolean;
|
|
@@ -22,7 +34,7 @@ interface InputProps
|
|
|
22
34
|
|
|
23
35
|
const Input = forwardRef<HTMLInputElement, InputProps>(
|
|
24
36
|
(
|
|
25
|
-
{ inputClassName, shouldShowSelectedOptions, placeholder, ...rest },
|
|
37
|
+
{ inputClassName, shouldShowSelectedOptions, placeholder, onBlur, ...rest },
|
|
26
38
|
ref,
|
|
27
39
|
) => {
|
|
28
40
|
const internalRef = useRef<HTMLInputElement>(null);
|
|
@@ -224,24 +236,18 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
|
|
|
224
236
|
{...rest}
|
|
225
237
|
{...omit(inputProps, ["aria-invalid"])}
|
|
226
238
|
ref={mergedRefs}
|
|
239
|
+
type="text"
|
|
240
|
+
role="combobox"
|
|
227
241
|
value={value}
|
|
228
|
-
onBlur={(
|
|
242
|
+
onBlur={composeEventHandlers(onBlur, virtualFocus.moveFocusToTop)}
|
|
229
243
|
onClick={() => {
|
|
230
244
|
setHideCaret(!!maxSelected?.isLimitReached);
|
|
231
245
|
value !== searchTerm && onChange(value);
|
|
232
246
|
}}
|
|
233
247
|
onInput={onChangeHandler}
|
|
234
|
-
type="text"
|
|
235
|
-
role="combobox"
|
|
236
248
|
onKeyUp={handleKeyUp}
|
|
237
249
|
onKeyDown={handleKeyDown}
|
|
238
|
-
aria-controls={filteredOptionsUtil.getFilteredOptionsId(inputProps.id)}
|
|
239
|
-
aria-expanded={!!isListOpen}
|
|
240
250
|
autoComplete="off"
|
|
241
|
-
aria-autocomplete={shouldAutocomplete ? "both" : "list"}
|
|
242
|
-
aria-activedescendant={activeDecendantId}
|
|
243
|
-
aria-describedby={ariaDescribedBy}
|
|
244
|
-
aria-invalid={inputProps["aria-invalid"]}
|
|
245
251
|
placeholder={selectedOptions.length ? undefined : placeholder}
|
|
246
252
|
className={cl(
|
|
247
253
|
inputClassName,
|
|
@@ -250,6 +256,12 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
|
|
|
250
256
|
`navds-body-short--${size}`,
|
|
251
257
|
{ "navds-combobox__input--hide-caret": hideCaret },
|
|
252
258
|
)}
|
|
259
|
+
aria-controls={filteredOptionsUtil.getFilteredOptionsId(inputProps.id)}
|
|
260
|
+
aria-expanded={!!isListOpen}
|
|
261
|
+
aria-autocomplete={shouldAutocomplete ? "both" : "list"}
|
|
262
|
+
aria-activedescendant={activeDecendantId}
|
|
263
|
+
aria-describedby={ariaDescribedBy}
|
|
264
|
+
aria-invalid={inputProps["aria-invalid"]}
|
|
253
265
|
/>
|
|
254
266
|
);
|
|
255
267
|
},
|
|
@@ -31,7 +31,17 @@ export interface ComboboxProps
|
|
|
31
31
|
extends FormFieldProps,
|
|
32
32
|
Omit<
|
|
33
33
|
InputHTMLAttributes<HTMLInputElement>,
|
|
34
|
-
|
|
34
|
+
| "size"
|
|
35
|
+
| "onChange"
|
|
36
|
+
| "value"
|
|
37
|
+
| "defaultValue"
|
|
38
|
+
| "onClick"
|
|
39
|
+
| "onInput"
|
|
40
|
+
| "type"
|
|
41
|
+
| "role"
|
|
42
|
+
| "onKeyUp"
|
|
43
|
+
| "onKeyDown"
|
|
44
|
+
| "autoComplete"
|
|
35
45
|
> {
|
|
36
46
|
/**
|
|
37
47
|
* Combobox label.
|