@navikt/ds-react 2.5.1 → 2.6.1
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/_docs.json +19 -0
- package/cjs/form/search/Search.js +5 -1
- package/cjs/form/search/SearchButton.js +6 -3
- package/esm/form/search/Search.d.ts +5 -0
- package/esm/form/search/Search.js +5 -1
- package/esm/form/search/Search.js.map +1 -1
- package/esm/form/search/SearchButton.js +6 -3
- package/esm/form/search/SearchButton.js.map +1 -1
- package/package.json +2 -2
- package/src/form/search/Search.tsx +11 -0
- package/src/form/search/SearchButton.tsx +6 -2
- package/src/form/search/search.stories.tsx +1 -0
package/_docs.json
CHANGED
|
@@ -12252,6 +12252,25 @@
|
|
|
12252
12252
|
"name": "((e: SearchClearEvent) => void)"
|
|
12253
12253
|
}
|
|
12254
12254
|
},
|
|
12255
|
+
"onSearchClick": {
|
|
12256
|
+
"defaultValue": null,
|
|
12257
|
+
"description": "Callback for Search-button submit",
|
|
12258
|
+
"name": "onSearchClick",
|
|
12259
|
+
"parent": {
|
|
12260
|
+
"fileName": "src/form/search/Search.tsx",
|
|
12261
|
+
"name": "SearchProps"
|
|
12262
|
+
},
|
|
12263
|
+
"declarations": [
|
|
12264
|
+
{
|
|
12265
|
+
"fileName": "src/form/search/Search.tsx",
|
|
12266
|
+
"name": "SearchProps"
|
|
12267
|
+
}
|
|
12268
|
+
],
|
|
12269
|
+
"required": false,
|
|
12270
|
+
"type": {
|
|
12271
|
+
"name": "((value: string) => void)"
|
|
12272
|
+
}
|
|
12273
|
+
},
|
|
12255
12274
|
"clearButtonLabel": {
|
|
12256
12275
|
"defaultValue": {
|
|
12257
12276
|
"value": "\"Tøm\""
|
|
@@ -47,7 +47,7 @@ const SearchButton_1 = __importDefault(require("./SearchButton"));
|
|
|
47
47
|
exports.SearchContext = react_1.default.createContext(null);
|
|
48
48
|
exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
49
49
|
const { inputProps, size = "medium", inputDescriptionId, errorId, showErrorMsg, hasError, } = (0, useFormField_1.useFormField)(props, "searchfield");
|
|
50
|
-
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange"]);
|
|
50
|
+
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange, onSearchClick } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange", "onSearchClick"]);
|
|
51
51
|
const searchRef = (0, react_1.useRef)(null);
|
|
52
52
|
const mergedRef = (0, react_1.useMemo)(() => (0, __1.mergeRefs)([searchRef, ref]), [ref]);
|
|
53
53
|
const [wrapperRef, setWrapperRef] = (0, react_1.useState)(null);
|
|
@@ -68,6 +68,9 @@ exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
|
68
68
|
handleClear({ trigger: "Escape", event: e });
|
|
69
69
|
}
|
|
70
70
|
}, [handleClear]), wrapperRef);
|
|
71
|
+
const handleClick = () => {
|
|
72
|
+
onSearchClick === null || onSearchClick === void 0 ? void 0 : onSearchClick(`${value !== null && value !== void 0 ? value : internalValue}`);
|
|
73
|
+
};
|
|
71
74
|
return (react_1.default.createElement("div", { ref: setWrapperRef, className: (0, clsx_1.default)(className, "navds-form-field", `navds-form-field--${size}`, "navds-search", {
|
|
72
75
|
"navds-search--error": hasError,
|
|
73
76
|
"navds-search--disabled": !!inputProps.disabled,
|
|
@@ -89,6 +92,7 @@ exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
|
89
92
|
size,
|
|
90
93
|
disabled: inputProps.disabled,
|
|
91
94
|
variant,
|
|
95
|
+
handleClick,
|
|
92
96
|
} }, children ? children : variant !== "simple" && react_1.default.createElement(SearchButton_1.default, null))),
|
|
93
97
|
react_1.default.createElement("div", { className: "navds-form-field__error", id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && (react_1.default.createElement(__1.ErrorMessage, { size: size }, props.error)))));
|
|
94
98
|
});
|
|
@@ -44,13 +44,16 @@ const __1 = require("../..");
|
|
|
44
44
|
const Search_1 = require("./Search");
|
|
45
45
|
const SearchButton = (0, react_1.forwardRef)((_a, ref) => {
|
|
46
46
|
var _b;
|
|
47
|
-
var { className, children, disabled } = _a, rest = __rest(_a, ["className", "children", "disabled"]);
|
|
47
|
+
var { className, children, disabled, onClick } = _a, rest = __rest(_a, ["className", "children", "disabled", "onClick"]);
|
|
48
48
|
const context = (0, react_1.useContext)(Search_1.SearchContext);
|
|
49
49
|
if (context === null) {
|
|
50
50
|
console.warn("<Search.Button> has to be wrapped in <Search />");
|
|
51
51
|
return null;
|
|
52
52
|
}
|
|
53
|
-
const { size, variant } = context;
|
|
54
|
-
return (react_1.default.createElement(__1.Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: (0, clsx_1.default)("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled,
|
|
53
|
+
const { size, variant, handleClick } = context;
|
|
54
|
+
return (react_1.default.createElement(__1.Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: (0, clsx_1.default)("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled, onClick: (e) => {
|
|
55
|
+
handleClick();
|
|
56
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
57
|
+
}, icon: react_1.default.createElement(ds_icons_1.Search, Object.assign({}, (children ? { "aria-hidden": true } : { title: "Søk" }))) }), children));
|
|
55
58
|
});
|
|
56
59
|
exports.default = SearchButton;
|
|
@@ -28,6 +28,10 @@ export interface SearchProps extends FormFieldProps, Omit<InputHTMLAttributes<HT
|
|
|
28
28
|
* Callback for click on clear-button or Escape keydown
|
|
29
29
|
*/
|
|
30
30
|
onClear?: (e: SearchClearEvent) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Callback for Search-button submit
|
|
33
|
+
*/
|
|
34
|
+
onSearchClick?: (value: string) => void;
|
|
31
35
|
/**
|
|
32
36
|
* aria-label on clear button
|
|
33
37
|
* @default "Tøm"
|
|
@@ -51,6 +55,7 @@ export interface SearchContextProps {
|
|
|
51
55
|
disabled?: boolean;
|
|
52
56
|
size: "medium" | "small";
|
|
53
57
|
variant: "primary" | "secondary" | "simple";
|
|
58
|
+
handleClick: () => void;
|
|
54
59
|
}
|
|
55
60
|
export declare const SearchContext: React.Context<SearchContextProps | null>;
|
|
56
61
|
export declare const Search: SearchComponent;
|
|
@@ -18,7 +18,7 @@ import SearchButton from "./SearchButton";
|
|
|
18
18
|
export const SearchContext = React.createContext(null);
|
|
19
19
|
export const Search = forwardRef((props, ref) => {
|
|
20
20
|
const { inputProps, size = "medium", inputDescriptionId, errorId, showErrorMsg, hasError, } = useFormField(props, "searchfield");
|
|
21
|
-
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange"]);
|
|
21
|
+
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange, onSearchClick } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange", "onSearchClick"]);
|
|
22
22
|
const searchRef = useRef(null);
|
|
23
23
|
const mergedRef = useMemo(() => mergeRefs([searchRef, ref]), [ref]);
|
|
24
24
|
const [wrapperRef, setWrapperRef] = useState(null);
|
|
@@ -39,6 +39,9 @@ export const Search = forwardRef((props, ref) => {
|
|
|
39
39
|
handleClear({ trigger: "Escape", event: e });
|
|
40
40
|
}
|
|
41
41
|
}, [handleClear]), wrapperRef);
|
|
42
|
+
const handleClick = () => {
|
|
43
|
+
onSearchClick === null || onSearchClick === void 0 ? void 0 : onSearchClick(`${value !== null && value !== void 0 ? value : internalValue}`);
|
|
44
|
+
};
|
|
42
45
|
return (React.createElement("div", { ref: setWrapperRef, className: cl(className, "navds-form-field", `navds-form-field--${size}`, "navds-search", {
|
|
43
46
|
"navds-search--error": hasError,
|
|
44
47
|
"navds-search--disabled": !!inputProps.disabled,
|
|
@@ -60,6 +63,7 @@ export const Search = forwardRef((props, ref) => {
|
|
|
60
63
|
size,
|
|
61
64
|
disabled: inputProps.disabled,
|
|
62
65
|
variant,
|
|
66
|
+
handleClick,
|
|
63
67
|
} }, children ? children : variant !== "simple" && React.createElement(SearchButton, null))),
|
|
64
68
|
React.createElement("div", { className: "navds-form-field__error", id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && (React.createElement(ErrorMessage, { size: size }, props.error)))));
|
|
65
69
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EACZ,UAAU,EAEV,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,SAAS,EACT,IAAI,EACJ,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,YAAkC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EACZ,UAAU,EAEV,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,SAAS,EACT,IAAI,EACJ,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,YAAkC,MAAM,gBAAgB,CAAC;AAkEhE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAC9C,IAAI,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAC9B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,MAAM,EACJ,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,QAAQ,GACT,GAAG,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEvC,MAAM,EACJ,SAAS,EACT,SAAS,GAAG,IAAI,EAChB,KAAK,EACL,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,WAAW,GAAG,IAAI,EAClB,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,YAAY,EACZ,QAAQ,EACR,aAAa,KAEX,KAAK,EADJ,IAAI,UACL,KAAK,EAfH,6KAeL,CAAQ,CAAC;IAEV,MAAM,SAAS,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAC;IAE1E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,CAAS,EAAE,EAAE;QACZ,KAAK,KAAK,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3C,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAC;IAChB,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAuB,EAAE,EAAE;;QAC1B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;QACjB,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,SAAS,CAAC,OAAO,KAAI,MAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,KAAK,kDAAI,CAAA,CAAC;IACpD,CAAC,EACD,CAAC,YAAY,EAAE,OAAO,CAAC,CACxB,CAAC;IAEF,gBAAgB,CACd,SAAS,EACT,WAAW,CACT,CAAC,CAAC,EAAE,EAAE;QACJ,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;SAC9C;IACH,CAAC,EACD,CAAC,WAAW,CAAC,CACd,EACD,UAAU,CACX,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,aAAa,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO,CACL,6BACE,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,EAAE,CACX,SAAS,EACT,kBAAkB,EAClB,qBAAqB,IAAI,EAAE,EAC3B,cAAc,EACd;YACE,qBAAqB,EAAE,QAAQ;YAC/B,wBAAwB,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;SAChD,CACF;QAED,oBAAC,KAAK,IACJ,OAAO,EAAE,UAAU,CAAC,EAAE,EACtB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE;gBACvC,eAAe,EAAE,SAAS;aAC3B,CAAC,IAED,KAAK,CACA;QACP,CAAC,CAAC,WAAW,IAAI,CAChB,oBAAC,SAAS,IACR,EAAE,EAAC,KAAK,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE;gBAC7C,eAAe,EAAE,SAAS;aAC3B,CAAC,EACF,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,IAAI,IAET,WAAW,CACF,CACb;QACD,6BAAK,SAAS,EAAC,uBAAuB;YACpC,6BAAK,SAAS,EAAC,6BAA6B;gBACzC,OAAO,KAAK,QAAQ,IAAI,CACvB,oBAAC,UAAU,yBAAa,SAAS,EAAC,2BAA2B,GAAG,CACjE;gBACD,6CACE,GAAG,EAAE,SAAS,IACV,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EACxC,UAAU,IACd,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,aAAa,EAC7B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,WAAW,EAChB,SAAS,EAAE,EAAE,CACX,SAAS,EACT,qBAAqB,EACrB,wBAAwB,OAAO,EAAE,EACjC,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,IAAI,EAAE,CACrB,IACD;gBACD,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,aAAa,CAAC,IAAI,WAAW,IAAI,CAC1C,gCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAC3D,SAAS,EAAC,4BAA4B;oBAEtC,8BAAM,SAAS,EAAC,eAAe,IAC5B,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CACvC;oBACP,oBAAC,KAAK,0BAAe,CACd,CACV,CACG;YACN,oBAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE;oBACL,IAAI;oBACJ,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,OAAO;oBACP,WAAW;iBACZ,IAEA,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,oBAAC,YAAY,OAAG,CACxC,CACrB;QACN,6BACE,SAAS,EAAC,yBAAyB,EACnC,EAAE,EAAE,OAAO,mBACG,oBAAoB,eACxB,QAAQ,IAEjB,YAAY,IAAI,CACf,oBAAC,YAAY,IAAC,IAAI,EAAE,IAAI,IAAG,KAAK,CAAC,KAAK,CAAgB,CACvD,CACG,CACF,CACP,CAAC;AACJ,CAAC,CACiB,CAAC;AAErB,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;AAE7B,eAAe,MAAM,CAAC"}
|
|
@@ -16,14 +16,17 @@ import { Button } from "../..";
|
|
|
16
16
|
import { SearchContext } from "./Search";
|
|
17
17
|
const SearchButton = forwardRef((_a, ref) => {
|
|
18
18
|
var _b;
|
|
19
|
-
var { className, children, disabled } = _a, rest = __rest(_a, ["className", "children", "disabled"]);
|
|
19
|
+
var { className, children, disabled, onClick } = _a, rest = __rest(_a, ["className", "children", "disabled", "onClick"]);
|
|
20
20
|
const context = useContext(SearchContext);
|
|
21
21
|
if (context === null) {
|
|
22
22
|
console.warn("<Search.Button> has to be wrapped in <Search />");
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
|
-
const { size, variant } = context;
|
|
26
|
-
return (React.createElement(Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: cl("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled,
|
|
25
|
+
const { size, variant, handleClick } = context;
|
|
26
|
+
return (React.createElement(Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: cl("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled, onClick: (e) => {
|
|
27
|
+
handleClick();
|
|
28
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
29
|
+
}, icon: React.createElement(Search, Object.assign({}, (children ? { "aria-hidden": true } : { title: "Søk" }))) }), children));
|
|
27
30
|
});
|
|
28
31
|
export default SearchButton;
|
|
29
32
|
//# sourceMappingURL=SearchButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchButton.js","sourceRoot":"","sources":["../../../src/form/search/SearchButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,MAAM,EAAe,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC,MAAM,YAAY,GAAqB,UAAU,CAC/C,CAAC,
|
|
1
|
+
{"version":3,"file":"SearchButton.js","sourceRoot":"","sources":["../../../src/form/search/SearchButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,MAAM,EAAe,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC,MAAM,YAAY,GAAqB,UAAU,CAC/C,CAAC,EAAmD,EAAE,GAAG,EAAE,EAAE;;QAA5D,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,OAAW,EAAN,IAAI,cAAjD,gDAAmD,CAAF;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAE1C,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE/C,OAAO,CACL,oBAAC,MAAM,kBACL,IAAI,EAAC,QAAQ,IACT,IAAI,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAC1D,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,EACvD,QAAQ,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,QAAQ,EACvC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,WAAW,EAAE,CAAC;YACd,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,CAAC,CAAC,CAAC;QACf,CAAC,EACD,IAAI,EACF,oBAAC,MAAM,oBACD,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAC3D,KAGH,QAAQ,CACF,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.1",
|
|
4
4
|
"description": "Aksel react-components for NAV designsystem",
|
|
5
5
|
"author": "Aksel | NAV designsystem team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@floating-ui/react": "0.17.0",
|
|
40
|
-
"@navikt/ds-icons": "^2.
|
|
40
|
+
"@navikt/ds-icons": "^2.6.1",
|
|
41
41
|
"@radix-ui/react-tabs": "1.0.0",
|
|
42
42
|
"@radix-ui/react-toggle-group": "1.0.0",
|
|
43
43
|
"clsx": "^1.2.1",
|
|
@@ -48,6 +48,10 @@ export interface SearchProps
|
|
|
48
48
|
* Callback for click on clear-button or Escape keydown
|
|
49
49
|
*/
|
|
50
50
|
onClear?: (e: SearchClearEvent) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Callback for Search-button submit
|
|
53
|
+
*/
|
|
54
|
+
onSearchClick?: (value: string) => void;
|
|
51
55
|
/**
|
|
52
56
|
* aria-label on clear button
|
|
53
57
|
* @default "Tøm"
|
|
@@ -76,6 +80,7 @@ export interface SearchContextProps {
|
|
|
76
80
|
disabled?: boolean;
|
|
77
81
|
size: "medium" | "small";
|
|
78
82
|
variant: "primary" | "secondary" | "simple";
|
|
83
|
+
handleClick: () => void;
|
|
79
84
|
}
|
|
80
85
|
|
|
81
86
|
export const SearchContext = React.createContext<SearchContextProps | null>(
|
|
@@ -106,6 +111,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
106
111
|
variant = "primary",
|
|
107
112
|
defaultValue,
|
|
108
113
|
onChange,
|
|
114
|
+
onSearchClick,
|
|
109
115
|
...rest
|
|
110
116
|
} = props;
|
|
111
117
|
|
|
@@ -146,6 +152,10 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
146
152
|
wrapperRef
|
|
147
153
|
);
|
|
148
154
|
|
|
155
|
+
const handleClick = () => {
|
|
156
|
+
onSearchClick?.(`${value ?? internalValue}`);
|
|
157
|
+
};
|
|
158
|
+
|
|
149
159
|
return (
|
|
150
160
|
<div
|
|
151
161
|
ref={setWrapperRef}
|
|
@@ -221,6 +231,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
221
231
|
size,
|
|
222
232
|
disabled: inputProps.disabled,
|
|
223
233
|
variant,
|
|
234
|
+
handleClick,
|
|
224
235
|
}}
|
|
225
236
|
>
|
|
226
237
|
{children ? children : variant !== "simple" && <SearchButton />}
|
|
@@ -17,7 +17,7 @@ export type SearchButtonType = React.ForwardRefExoticComponent<
|
|
|
17
17
|
>;
|
|
18
18
|
|
|
19
19
|
const SearchButton: SearchButtonType = forwardRef(
|
|
20
|
-
({ className, children, disabled, ...rest }, ref) => {
|
|
20
|
+
({ className, children, disabled, onClick, ...rest }, ref) => {
|
|
21
21
|
const context = useContext(SearchContext);
|
|
22
22
|
|
|
23
23
|
if (context === null) {
|
|
@@ -25,7 +25,7 @@ const SearchButton: SearchButtonType = forwardRef(
|
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
const { size, variant } = context;
|
|
28
|
+
const { size, variant, handleClick } = context;
|
|
29
29
|
|
|
30
30
|
return (
|
|
31
31
|
<Button
|
|
@@ -36,6 +36,10 @@ const SearchButton: SearchButtonType = forwardRef(
|
|
|
36
36
|
variant={variant === "secondary" ? "secondary" : "primary"}
|
|
37
37
|
className={cl("navds-search__button-search", className)}
|
|
38
38
|
disabled={context?.disabled ?? disabled}
|
|
39
|
+
onClick={(e) => {
|
|
40
|
+
handleClick();
|
|
41
|
+
onClick?.(e);
|
|
42
|
+
}}
|
|
39
43
|
icon={
|
|
40
44
|
<Search
|
|
41
45
|
{...(children ? { "aria-hidden": true } : { title: "Søk" })}
|