@navikt/ds-react 5.3.5 → 5.4.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/_docs.json +206 -0
- package/cjs/form/search/Search.js +10 -8
- package/cjs/index.js +1 -0
- package/cjs/layout/grid/HGrid.js +1 -1
- package/cjs/layout/responsive/Responsive.js +95 -0
- package/cjs/layout/responsive/index.js +6 -0
- package/cjs/layout/responsive/package.json +6 -0
- package/cjs/layout/stack/HStack.js +1 -1
- package/cjs/layout/stack/Spacer.js +1 -1
- package/cjs/layout/stack/VStack.js +1 -1
- package/cjs/modal/Modal.js +2 -2
- package/esm/form/search/Search.js +11 -9
- package/esm/form/search/Search.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/layout/grid/HGrid.d.ts +1 -1
- package/esm/layout/grid/HGrid.js +1 -1
- package/esm/layout/responsive/Responsive.d.ts +64 -0
- package/esm/layout/responsive/Responsive.js +67 -0
- package/esm/layout/responsive/Responsive.js.map +1 -0
- package/esm/layout/responsive/index.d.ts +1 -0
- package/esm/layout/responsive/index.js +2 -0
- package/esm/layout/responsive/index.js.map +1 -0
- package/esm/layout/stack/HStack.d.ts +1 -1
- package/esm/layout/stack/HStack.js +1 -1
- package/esm/layout/stack/Spacer.d.ts +1 -1
- package/esm/layout/stack/Spacer.js +1 -1
- package/esm/layout/stack/VStack.d.ts +1 -1
- package/esm/layout/stack/VStack.js +1 -1
- package/esm/modal/Modal.js +2 -2
- package/esm/modal/Modal.js.map +1 -1
- package/package.json +2 -2
- package/src/form/search/Search.tsx +11 -24
- package/src/index.ts +1 -0
- package/src/layout/grid/HGrid.tsx +1 -1
- package/src/layout/responsive/Responsive.tsx +96 -0
- package/src/layout/responsive/hide.stories.tsx +45 -0
- package/src/layout/responsive/index.ts +1 -0
- package/src/layout/responsive/show.stories.tsx +45 -0
- package/src/layout/stack/HStack.tsx +1 -1
- package/src/layout/stack/Spacer.tsx +1 -1
- package/src/layout/stack/VStack.tsx +1 -1
- package/src/modal/Modal.tsx +1 -1
- package/src/modal/modal.stories.tsx +2 -2
package/_docs.json
CHANGED
|
@@ -16865,6 +16865,212 @@
|
|
|
16865
16865
|
}
|
|
16866
16866
|
}
|
|
16867
16867
|
},
|
|
16868
|
+
{
|
|
16869
|
+
"filePath": "src/layout/responsive/Responsive.tsx",
|
|
16870
|
+
"displayName": "Hide",
|
|
16871
|
+
"props": {
|
|
16872
|
+
"above": {
|
|
16873
|
+
"defaultValue": null,
|
|
16874
|
+
"description": "@example above='md'",
|
|
16875
|
+
"name": "above",
|
|
16876
|
+
"parent": {
|
|
16877
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16878
|
+
"name": "ResponsiveProps"
|
|
16879
|
+
},
|
|
16880
|
+
"declarations": [
|
|
16881
|
+
{
|
|
16882
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16883
|
+
"name": "ResponsiveProps"
|
|
16884
|
+
}
|
|
16885
|
+
],
|
|
16886
|
+
"required": false,
|
|
16887
|
+
"type": {
|
|
16888
|
+
"name": "\"sm\" | \"md\" | \"lg\" | \"xl\""
|
|
16889
|
+
}
|
|
16890
|
+
},
|
|
16891
|
+
"below": {
|
|
16892
|
+
"defaultValue": null,
|
|
16893
|
+
"description": "@example below='md'",
|
|
16894
|
+
"name": "below",
|
|
16895
|
+
"parent": {
|
|
16896
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16897
|
+
"name": "ResponsiveProps"
|
|
16898
|
+
},
|
|
16899
|
+
"declarations": [
|
|
16900
|
+
{
|
|
16901
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16902
|
+
"name": "ResponsiveProps"
|
|
16903
|
+
}
|
|
16904
|
+
],
|
|
16905
|
+
"required": false,
|
|
16906
|
+
"type": {
|
|
16907
|
+
"name": "\"sm\" | \"md\" | \"lg\" | \"xl\""
|
|
16908
|
+
}
|
|
16909
|
+
},
|
|
16910
|
+
"as": {
|
|
16911
|
+
"defaultValue": {
|
|
16912
|
+
"value": "\"div\""
|
|
16913
|
+
},
|
|
16914
|
+
"description": "Overrides html-tag",
|
|
16915
|
+
"name": "as",
|
|
16916
|
+
"parent": {
|
|
16917
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16918
|
+
"name": "ResponsiveProps"
|
|
16919
|
+
},
|
|
16920
|
+
"declarations": [
|
|
16921
|
+
{
|
|
16922
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16923
|
+
"name": "ResponsiveProps"
|
|
16924
|
+
}
|
|
16925
|
+
],
|
|
16926
|
+
"required": false,
|
|
16927
|
+
"type": {
|
|
16928
|
+
"name": "\"div\" | \"span\""
|
|
16929
|
+
}
|
|
16930
|
+
},
|
|
16931
|
+
"className": {
|
|
16932
|
+
"defaultValue": null,
|
|
16933
|
+
"description": "",
|
|
16934
|
+
"name": "className",
|
|
16935
|
+
"parent": {
|
|
16936
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
16937
|
+
"name": "HTMLAttributes"
|
|
16938
|
+
},
|
|
16939
|
+
"declarations": [
|
|
16940
|
+
{
|
|
16941
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
16942
|
+
"name": "HTMLAttributes"
|
|
16943
|
+
}
|
|
16944
|
+
],
|
|
16945
|
+
"required": false,
|
|
16946
|
+
"type": {
|
|
16947
|
+
"name": "string"
|
|
16948
|
+
}
|
|
16949
|
+
},
|
|
16950
|
+
"ref": {
|
|
16951
|
+
"defaultValue": null,
|
|
16952
|
+
"description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).\n@see https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom",
|
|
16953
|
+
"name": "ref",
|
|
16954
|
+
"parent": {
|
|
16955
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
16956
|
+
"name": "RefAttributes"
|
|
16957
|
+
},
|
|
16958
|
+
"declarations": [
|
|
16959
|
+
{
|
|
16960
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
16961
|
+
"name": "RefAttributes"
|
|
16962
|
+
}
|
|
16963
|
+
],
|
|
16964
|
+
"required": false,
|
|
16965
|
+
"type": {
|
|
16966
|
+
"name": "Ref<HTMLDivElement>"
|
|
16967
|
+
}
|
|
16968
|
+
}
|
|
16969
|
+
}
|
|
16970
|
+
},
|
|
16971
|
+
{
|
|
16972
|
+
"filePath": "src/layout/responsive/Responsive.tsx",
|
|
16973
|
+
"displayName": "Show",
|
|
16974
|
+
"props": {
|
|
16975
|
+
"above": {
|
|
16976
|
+
"defaultValue": null,
|
|
16977
|
+
"description": "@example above='md'",
|
|
16978
|
+
"name": "above",
|
|
16979
|
+
"parent": {
|
|
16980
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16981
|
+
"name": "ResponsiveProps"
|
|
16982
|
+
},
|
|
16983
|
+
"declarations": [
|
|
16984
|
+
{
|
|
16985
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
16986
|
+
"name": "ResponsiveProps"
|
|
16987
|
+
}
|
|
16988
|
+
],
|
|
16989
|
+
"required": false,
|
|
16990
|
+
"type": {
|
|
16991
|
+
"name": "\"sm\" | \"md\" | \"lg\" | \"xl\""
|
|
16992
|
+
}
|
|
16993
|
+
},
|
|
16994
|
+
"below": {
|
|
16995
|
+
"defaultValue": null,
|
|
16996
|
+
"description": "@example below='md'",
|
|
16997
|
+
"name": "below",
|
|
16998
|
+
"parent": {
|
|
16999
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
17000
|
+
"name": "ResponsiveProps"
|
|
17001
|
+
},
|
|
17002
|
+
"declarations": [
|
|
17003
|
+
{
|
|
17004
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
17005
|
+
"name": "ResponsiveProps"
|
|
17006
|
+
}
|
|
17007
|
+
],
|
|
17008
|
+
"required": false,
|
|
17009
|
+
"type": {
|
|
17010
|
+
"name": "\"sm\" | \"md\" | \"lg\" | \"xl\""
|
|
17011
|
+
}
|
|
17012
|
+
},
|
|
17013
|
+
"as": {
|
|
17014
|
+
"defaultValue": {
|
|
17015
|
+
"value": "\"div\""
|
|
17016
|
+
},
|
|
17017
|
+
"description": "Overrides html-tag",
|
|
17018
|
+
"name": "as",
|
|
17019
|
+
"parent": {
|
|
17020
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
17021
|
+
"name": "ResponsiveProps"
|
|
17022
|
+
},
|
|
17023
|
+
"declarations": [
|
|
17024
|
+
{
|
|
17025
|
+
"fileName": "src/layout/responsive/Responsive.tsx",
|
|
17026
|
+
"name": "ResponsiveProps"
|
|
17027
|
+
}
|
|
17028
|
+
],
|
|
17029
|
+
"required": false,
|
|
17030
|
+
"type": {
|
|
17031
|
+
"name": "\"div\" | \"span\""
|
|
17032
|
+
}
|
|
17033
|
+
},
|
|
17034
|
+
"className": {
|
|
17035
|
+
"defaultValue": null,
|
|
17036
|
+
"description": "",
|
|
17037
|
+
"name": "className",
|
|
17038
|
+
"parent": {
|
|
17039
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
17040
|
+
"name": "HTMLAttributes"
|
|
17041
|
+
},
|
|
17042
|
+
"declarations": [
|
|
17043
|
+
{
|
|
17044
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
17045
|
+
"name": "HTMLAttributes"
|
|
17046
|
+
}
|
|
17047
|
+
],
|
|
17048
|
+
"required": false,
|
|
17049
|
+
"type": {
|
|
17050
|
+
"name": "string"
|
|
17051
|
+
}
|
|
17052
|
+
},
|
|
17053
|
+
"ref": {
|
|
17054
|
+
"defaultValue": null,
|
|
17055
|
+
"description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).\n@see https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom",
|
|
17056
|
+
"name": "ref",
|
|
17057
|
+
"parent": {
|
|
17058
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
17059
|
+
"name": "RefAttributes"
|
|
17060
|
+
},
|
|
17061
|
+
"declarations": [
|
|
17062
|
+
{
|
|
17063
|
+
"fileName": "aksel/node_modules/@types/react/ts5.0/index.d.ts",
|
|
17064
|
+
"name": "RefAttributes"
|
|
17065
|
+
}
|
|
17066
|
+
],
|
|
17067
|
+
"required": false,
|
|
17068
|
+
"type": {
|
|
17069
|
+
"name": "Ref<HTMLDivElement>"
|
|
17070
|
+
}
|
|
17071
|
+
}
|
|
17072
|
+
}
|
|
17073
|
+
},
|
|
16868
17074
|
{
|
|
16869
17075
|
"filePath": "src/layout/stack/HStack.tsx",
|
|
16870
17076
|
"displayName": "HStack",
|
|
@@ -63,7 +63,6 @@ exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
|
63
63
|
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange, onSearchClick, htmlSize } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange", "onSearchClick", "htmlSize"]);
|
|
64
64
|
const searchRef = (0, react_1.useRef)(null);
|
|
65
65
|
const mergedRef = (0, react_1.useMemo)(() => (0, __1.mergeRefs)([searchRef, ref]), [ref]);
|
|
66
|
-
const [wrapperRef, setWrapperRef] = (0, react_1.useState)(null);
|
|
67
66
|
const [internalValue, setInternalValue] = (0, react_1.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : "");
|
|
68
67
|
const handleChange = (0, react_1.useCallback)((v) => {
|
|
69
68
|
value === undefined && setInternalValue(v);
|
|
@@ -75,16 +74,19 @@ exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
|
75
74
|
handleChange("");
|
|
76
75
|
searchRef.current && ((_b = (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
77
76
|
}, [handleChange, onClear]);
|
|
78
|
-
(0, __1.useEventListener)("keydown", (0, react_1.useCallback)((e) => {
|
|
79
|
-
if (e.key === "Escape") {
|
|
80
|
-
e.preventDefault();
|
|
81
|
-
handleClear({ trigger: "Escape", event: e });
|
|
82
|
-
}
|
|
83
|
-
}, [handleClear]), wrapperRef);
|
|
84
77
|
const handleClick = () => {
|
|
85
78
|
onSearchClick === null || onSearchClick === void 0 ? void 0 : onSearchClick(`${value !== null && value !== void 0 ? value : internalValue}`);
|
|
86
79
|
};
|
|
87
|
-
return (react_1.default.createElement("div", {
|
|
80
|
+
return (react_1.default.createElement("div", { onKeyDown: (e) => {
|
|
81
|
+
var _a, _b;
|
|
82
|
+
if (e.key !== "Escape") {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
((_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.value) &&
|
|
86
|
+
((_b = searchRef.current) === null || _b === void 0 ? void 0 : _b.value) !== "" &&
|
|
87
|
+
e.preventDefault();
|
|
88
|
+
handleClear({ trigger: "Escape", event: e });
|
|
89
|
+
}, className: (0, clsx_1.default)(className, "navds-form-field", `navds-form-field--${size}`, "navds-search", {
|
|
88
90
|
"navds-search--error": hasError,
|
|
89
91
|
"navds-search--disabled": !!inputProps.disabled,
|
|
90
92
|
"navds-search--with-size": !!htmlSize,
|
package/cjs/index.js
CHANGED
package/cjs/layout/grid/HGrid.js
CHANGED
|
@@ -44,7 +44,7 @@ const css_1 = require("../utilities/css");
|
|
|
44
44
|
/**
|
|
45
45
|
* Horizontal Grid Primitive with dynamic columns and gap based on breakpoints.
|
|
46
46
|
*
|
|
47
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
47
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hgrid)
|
|
48
48
|
* @see 🏷️ {@link HGridProps}
|
|
49
49
|
*
|
|
50
50
|
* @example
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
+
t[p] = s[p];
|
|
29
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
+
t[p[i]] = s[p[i]];
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.Show = exports.Hide = void 0;
|
|
41
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
42
|
+
const react_1 = __importStar(require("react"));
|
|
43
|
+
const Responsive = (0, react_1.forwardRef)((_a, ref) => {
|
|
44
|
+
var { as: Component = "div", className, above, below, variant } = _a, rest = __rest(_a, ["as", "className", "above", "below", "variant"]);
|
|
45
|
+
const aboveProp = variant === "show" ? above : below;
|
|
46
|
+
const belowProp = variant === "show" ? below : above;
|
|
47
|
+
return (react_1.default.createElement(Component, Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-responsive", className, {
|
|
48
|
+
[`navds-responsive__above--${aboveProp}`]: aboveProp,
|
|
49
|
+
[`navds-responsive__below--${belowProp}`]: belowProp,
|
|
50
|
+
}) })));
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
54
|
+
*
|
|
55
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hide)
|
|
56
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
60
|
+
* <div/>
|
|
61
|
+
* <Hide below="md">
|
|
62
|
+
* // Only visible above "md"
|
|
63
|
+
* </Hide>
|
|
64
|
+
* </HGrid>
|
|
65
|
+
* @example
|
|
66
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
67
|
+
* <div/>
|
|
68
|
+
* <Hide above="md">
|
|
69
|
+
* // Only visible below "md"
|
|
70
|
+
* </Hide>
|
|
71
|
+
* </HGrid>
|
|
72
|
+
*/
|
|
73
|
+
exports.Hide = (0, react_1.forwardRef)((props, ref) => react_1.default.createElement(Responsive, Object.assign({}, props, { ref: ref, variant: "hide" })));
|
|
74
|
+
/**
|
|
75
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
76
|
+
*
|
|
77
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/show)
|
|
78
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
82
|
+
* <div/>
|
|
83
|
+
* <Show below="md">
|
|
84
|
+
* // Only visible below "md"
|
|
85
|
+
* </Show>
|
|
86
|
+
* </HGrid>
|
|
87
|
+
* @example
|
|
88
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
89
|
+
* <div/>
|
|
90
|
+
* <Show above="md">
|
|
91
|
+
* // Only visible above "md"
|
|
92
|
+
* </Show>
|
|
93
|
+
* </HGrid>
|
|
94
|
+
*/
|
|
95
|
+
exports.Show = (0, react_1.forwardRef)((props, ref) => react_1.default.createElement(Responsive, Object.assign({}, props, { ref: ref, variant: "show" })));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Hide = exports.Show = void 0;
|
|
4
|
+
var Responsive_1 = require("./Responsive");
|
|
5
|
+
Object.defineProperty(exports, "Show", { enumerable: true, get: function () { return Responsive_1.Show; } });
|
|
6
|
+
Object.defineProperty(exports, "Hide", { enumerable: true, get: function () { return Responsive_1.Hide; } });
|
|
@@ -29,7 +29,7 @@ const Stack_1 = require("./Stack");
|
|
|
29
29
|
/**
|
|
30
30
|
* Layout-primitive for horizontal flexbox
|
|
31
31
|
*
|
|
32
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
32
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
33
33
|
* @see 🏷️ {@link HStackProps}
|
|
34
34
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
35
35
|
*
|
|
@@ -8,7 +8,7 @@ const react_1 = __importDefault(require("react"));
|
|
|
8
8
|
/**
|
|
9
9
|
* Layout-primitive for auto-spacing between elements
|
|
10
10
|
*
|
|
11
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
11
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
12
12
|
*
|
|
13
13
|
* @example
|
|
14
14
|
* <HStack gap="8">
|
|
@@ -29,7 +29,7 @@ const Stack_1 = require("./Stack");
|
|
|
29
29
|
/**
|
|
30
30
|
* Layout-primitive for vetical flexbox
|
|
31
31
|
*
|
|
32
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
32
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/vstack)
|
|
33
33
|
* @see 🏷️ {@link VStackProps}
|
|
34
34
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
35
35
|
*
|
package/cjs/modal/Modal.js
CHANGED
|
@@ -129,7 +129,7 @@ exports.Modal = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
129
129
|
}, [modalRef, portalNode, open]);
|
|
130
130
|
(0, ModalUtils_1.useBodyScrollLock)(modalRef, portalNode);
|
|
131
131
|
const isWidthPreset = typeof width === "string" && ["small", "medium"].includes(width);
|
|
132
|
-
const component = (react_1.default.createElement("dialog", Object.assign({ ref: mergedRef, className: (0, clsx_1.default)("navds-modal", className, {
|
|
132
|
+
const component = (react_1.default.createElement("dialog", Object.assign({}, rest, { ref: mergedRef, className: (0, clsx_1.default)("navds-modal", className, {
|
|
133
133
|
"navds-modal--polyfilled": dialog_polyfill_1.needPolyfill,
|
|
134
134
|
"navds-modal--autowidth": !width,
|
|
135
135
|
[`navds-modal--${width}`]: isWidthPreset,
|
|
@@ -142,7 +142,7 @@ exports.Modal = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
142
142
|
onCancel(event);
|
|
143
143
|
}, "aria-labelledby": !ariaLabelledby && !rest["aria-label"] && header
|
|
144
144
|
? ariaLabelId
|
|
145
|
-
: ariaLabelledby }
|
|
145
|
+
: ariaLabelledby }),
|
|
146
146
|
react_1.default.createElement(ModalContext_1.ModalContext.Provider, { value: {
|
|
147
147
|
closeHandler: (0, ModalUtils_1.getCloseHandler)(modalRef, header, onBeforeClose),
|
|
148
148
|
} },
|
|
@@ -12,7 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import { XMarkIcon, MagnifyingGlassIcon } from "@navikt/aksel-icons";
|
|
13
13
|
import cl from "clsx";
|
|
14
14
|
import React, { forwardRef, useCallback, useMemo, useRef, useState, } from "react";
|
|
15
|
-
import { BodyShort, ErrorMessage, Label, mergeRefs, omit
|
|
15
|
+
import { BodyShort, ErrorMessage, Label, mergeRefs, omit } from "../..";
|
|
16
16
|
import { useFormField } from "../useFormField";
|
|
17
17
|
import SearchButton from "./SearchButton";
|
|
18
18
|
export const SearchContext = React.createContext(null);
|
|
@@ -34,7 +34,6 @@ export const Search = forwardRef((props, ref) => {
|
|
|
34
34
|
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange, onSearchClick, htmlSize } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange", "onSearchClick", "htmlSize"]);
|
|
35
35
|
const searchRef = useRef(null);
|
|
36
36
|
const mergedRef = useMemo(() => mergeRefs([searchRef, ref]), [ref]);
|
|
37
|
-
const [wrapperRef, setWrapperRef] = useState(null);
|
|
38
37
|
const [internalValue, setInternalValue] = useState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : "");
|
|
39
38
|
const handleChange = useCallback((v) => {
|
|
40
39
|
value === undefined && setInternalValue(v);
|
|
@@ -46,16 +45,19 @@ export const Search = forwardRef((props, ref) => {
|
|
|
46
45
|
handleChange("");
|
|
47
46
|
searchRef.current && ((_b = (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
48
47
|
}, [handleChange, onClear]);
|
|
49
|
-
useEventListener("keydown", useCallback((e) => {
|
|
50
|
-
if (e.key === "Escape") {
|
|
51
|
-
e.preventDefault();
|
|
52
|
-
handleClear({ trigger: "Escape", event: e });
|
|
53
|
-
}
|
|
54
|
-
}, [handleClear]), wrapperRef);
|
|
55
48
|
const handleClick = () => {
|
|
56
49
|
onSearchClick === null || onSearchClick === void 0 ? void 0 : onSearchClick(`${value !== null && value !== void 0 ? value : internalValue}`);
|
|
57
50
|
};
|
|
58
|
-
return (React.createElement("div", {
|
|
51
|
+
return (React.createElement("div", { onKeyDown: (e) => {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
if (e.key !== "Escape") {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
((_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.value) &&
|
|
57
|
+
((_b = searchRef.current) === null || _b === void 0 ? void 0 : _b.value) !== "" &&
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
handleClear({ trigger: "Escape", event: e });
|
|
60
|
+
}, className: cl(className, "navds-form-field", `navds-form-field--${size}`, "navds-search", {
|
|
59
61
|
"navds-search--error": hasError,
|
|
60
62
|
"navds-search--disabled": !!inputProps.disabled,
|
|
61
63
|
"navds-search--with-size": !!htmlSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACrE,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,
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":"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"}
|
package/esm/index.d.ts
CHANGED
package/esm/index.js
CHANGED
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
|
@@ -27,7 +27,7 @@ export interface HGridProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
27
27
|
/**
|
|
28
28
|
* Horizontal Grid Primitive with dynamic columns and gap based on breakpoints.
|
|
29
29
|
*
|
|
30
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
30
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hgrid)
|
|
31
31
|
* @see 🏷️ {@link HGridProps}
|
|
32
32
|
*
|
|
33
33
|
* @example
|
package/esm/layout/grid/HGrid.js
CHANGED
|
@@ -15,7 +15,7 @@ import { getResponsiveProps, getResponsiveValue, } from "../utilities/css";
|
|
|
15
15
|
/**
|
|
16
16
|
* Horizontal Grid Primitive with dynamic columns and gap based on breakpoints.
|
|
17
17
|
*
|
|
18
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
18
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hgrid)
|
|
19
19
|
* @see 🏷️ {@link HGridProps}
|
|
20
20
|
*
|
|
21
21
|
* @example
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React, { HTMLAttributes } from "react";
|
|
2
|
+
import { BreakpointsAlias } from "../utilities/css";
|
|
3
|
+
export interface ResponsiveProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* @example
|
|
7
|
+
* above='md'
|
|
8
|
+
*/
|
|
9
|
+
above?: Exclude<BreakpointsAlias, "xs">;
|
|
10
|
+
/**
|
|
11
|
+
* @example
|
|
12
|
+
* below='md'
|
|
13
|
+
*/
|
|
14
|
+
below?: Exclude<BreakpointsAlias, "xs">;
|
|
15
|
+
/**
|
|
16
|
+
* Overrides html-tag
|
|
17
|
+
* @default "div"
|
|
18
|
+
*/
|
|
19
|
+
as?: "div" | "span";
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
23
|
+
*
|
|
24
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hide)
|
|
25
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
29
|
+
* <div/>
|
|
30
|
+
* <Hide below="md">
|
|
31
|
+
* // Only visible above "md"
|
|
32
|
+
* </Hide>
|
|
33
|
+
* </HGrid>
|
|
34
|
+
* @example
|
|
35
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
36
|
+
* <div/>
|
|
37
|
+
* <Hide above="md">
|
|
38
|
+
* // Only visible below "md"
|
|
39
|
+
* </Hide>
|
|
40
|
+
* </HGrid>
|
|
41
|
+
*/
|
|
42
|
+
export declare const Hide: React.ForwardRefExoticComponent<ResponsiveProps & React.RefAttributes<HTMLDivElement>>;
|
|
43
|
+
/**
|
|
44
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
45
|
+
*
|
|
46
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/show)
|
|
47
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
51
|
+
* <div/>
|
|
52
|
+
* <Show below="md">
|
|
53
|
+
* // Only visible below "md"
|
|
54
|
+
* </Show>
|
|
55
|
+
* </HGrid>
|
|
56
|
+
* @example
|
|
57
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
58
|
+
* <div/>
|
|
59
|
+
* <Show above="md">
|
|
60
|
+
* // Only visible above "md"
|
|
61
|
+
* </Show>
|
|
62
|
+
* </HGrid>
|
|
63
|
+
*/
|
|
64
|
+
export declare const Show: React.ForwardRefExoticComponent<ResponsiveProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import cl from "clsx";
|
|
13
|
+
import React, { forwardRef } from "react";
|
|
14
|
+
const Responsive = forwardRef((_a, ref) => {
|
|
15
|
+
var { as: Component = "div", className, above, below, variant } = _a, rest = __rest(_a, ["as", "className", "above", "below", "variant"]);
|
|
16
|
+
const aboveProp = variant === "show" ? above : below;
|
|
17
|
+
const belowProp = variant === "show" ? below : above;
|
|
18
|
+
return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl("navds-responsive", className, {
|
|
19
|
+
[`navds-responsive__above--${aboveProp}`]: aboveProp,
|
|
20
|
+
[`navds-responsive__below--${belowProp}`]: belowProp,
|
|
21
|
+
}) })));
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
25
|
+
*
|
|
26
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hide)
|
|
27
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
31
|
+
* <div/>
|
|
32
|
+
* <Hide below="md">
|
|
33
|
+
* // Only visible above "md"
|
|
34
|
+
* </Hide>
|
|
35
|
+
* </HGrid>
|
|
36
|
+
* @example
|
|
37
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
38
|
+
* <div/>
|
|
39
|
+
* <Hide above="md">
|
|
40
|
+
* // Only visible below "md"
|
|
41
|
+
* </Hide>
|
|
42
|
+
* </HGrid>
|
|
43
|
+
*/
|
|
44
|
+
export const Hide = forwardRef((props, ref) => React.createElement(Responsive, Object.assign({}, props, { ref: ref, variant: "hide" })));
|
|
45
|
+
/**
|
|
46
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
47
|
+
*
|
|
48
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/show)
|
|
49
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
53
|
+
* <div/>
|
|
54
|
+
* <Show below="md">
|
|
55
|
+
* // Only visible below "md"
|
|
56
|
+
* </Show>
|
|
57
|
+
* </HGrid>
|
|
58
|
+
* @example
|
|
59
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
60
|
+
* <div/>
|
|
61
|
+
* <Show above="md">
|
|
62
|
+
* // Only visible above "md"
|
|
63
|
+
* </Show>
|
|
64
|
+
* </HGrid>
|
|
65
|
+
*/
|
|
66
|
+
export const Show = forwardRef((props, ref) => React.createElement(Responsive, Object.assign({}, props, { ref: ref, variant: "show" })));
|
|
67
|
+
//# sourceMappingURL=Responsive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Responsive.js","sourceRoot":"","sources":["../../../src/layout/responsive/Responsive.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAsB1D,MAAM,UAAU,GAAG,UAAU,CAI3B,CACE,EAAoE,EACpE,GAAG,EACH,EAAE;QAFF,EAAE,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,OAAW,EAAN,IAAI,cAAlE,gDAAoE,CAAF;IAGlE,MAAM,SAAS,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAErD,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE;YAC3C,CAAC,4BAA4B,SAAS,EAAE,CAAC,EAAE,SAAS;YACpD,CAAC,4BAA4B,SAAS,EAAE,CAAC,EAAE,SAAS;SACrD,CAAC,IACF,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,oBAAC,UAAU,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAC,MAAM,IAAG,CACnE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,oBAAC,UAAU,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAC,MAAM,IAAG,CACnE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Show, Hide, type ResponsiveProps } from "./Responsive";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/responsive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAwB,MAAM,cAAc,CAAC"}
|
|
@@ -4,7 +4,7 @@ export type HStackProps = Omit<StackProps, "direction">;
|
|
|
4
4
|
/**
|
|
5
5
|
* Layout-primitive for horizontal flexbox
|
|
6
6
|
*
|
|
7
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
7
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
8
8
|
* @see 🏷️ {@link HStackProps}
|
|
9
9
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
10
10
|
*
|
|
@@ -3,7 +3,7 @@ import { Stack } from "./Stack";
|
|
|
3
3
|
/**
|
|
4
4
|
* Layout-primitive for horizontal flexbox
|
|
5
5
|
*
|
|
6
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
6
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
7
7
|
* @see 🏷️ {@link HStackProps}
|
|
8
8
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
9
9
|
*
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* Layout-primitive for auto-spacing between elements
|
|
4
4
|
*
|
|
5
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
5
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* <HStack gap="8">
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* Layout-primitive for auto-spacing between elements
|
|
4
4
|
*
|
|
5
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
5
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* <HStack gap="8">
|
|
@@ -4,7 +4,7 @@ export type VStackProps = Omit<StackProps, "direction" | "wrap">;
|
|
|
4
4
|
/**
|
|
5
5
|
* Layout-primitive for vetical flexbox
|
|
6
6
|
*
|
|
7
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
7
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/vstack)
|
|
8
8
|
* @see 🏷️ {@link VStackProps}
|
|
9
9
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
10
10
|
*
|
|
@@ -3,7 +3,7 @@ import { Stack } from "./Stack";
|
|
|
3
3
|
/**
|
|
4
4
|
* Layout-primitive for vetical flexbox
|
|
5
5
|
*
|
|
6
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
6
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/vstack)
|
|
7
7
|
* @see 🏷️ {@link VStackProps}
|
|
8
8
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
9
9
|
*
|
package/esm/modal/Modal.js
CHANGED
|
@@ -100,7 +100,7 @@ export const Modal = forwardRef((_a, ref) => {
|
|
|
100
100
|
}, [modalRef, portalNode, open]);
|
|
101
101
|
useBodyScrollLock(modalRef, portalNode);
|
|
102
102
|
const isWidthPreset = typeof width === "string" && ["small", "medium"].includes(width);
|
|
103
|
-
const component = (React.createElement("dialog", Object.assign({ ref: mergedRef, className: cl("navds-modal", className, {
|
|
103
|
+
const component = (React.createElement("dialog", Object.assign({}, rest, { ref: mergedRef, className: cl("navds-modal", className, {
|
|
104
104
|
"navds-modal--polyfilled": needPolyfill,
|
|
105
105
|
"navds-modal--autowidth": !width,
|
|
106
106
|
[`navds-modal--${width}`]: isWidthPreset,
|
|
@@ -113,7 +113,7 @@ export const Modal = forwardRef((_a, ref) => {
|
|
|
113
113
|
onCancel(event);
|
|
114
114
|
}, "aria-labelledby": !ariaLabelledby && !rest["aria-label"] && header
|
|
115
115
|
? ariaLabelId
|
|
116
|
-
: ariaLabelledby }
|
|
116
|
+
: ariaLabelledby }),
|
|
117
117
|
React.createElement(ModalContext.Provider, { value: {
|
|
118
118
|
closeHandler: getCloseHandler(modalRef, header, onBeforeClose),
|
|
119
119
|
} },
|
package/esm/modal/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "Aksel react-components for NAV designsystem",
|
|
5
5
|
"author": "Aksel | NAV designsystem team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@floating-ui/react": "0.24.1",
|
|
41
|
-
"@navikt/aksel-icons": "^5.
|
|
41
|
+
"@navikt/aksel-icons": "^5.4.0",
|
|
42
42
|
"@radix-ui/react-tabs": "1.0.0",
|
|
43
43
|
"@radix-ui/react-toggle-group": "1.0.0",
|
|
44
44
|
"clsx": "^1.2.1",
|
|
@@ -8,14 +8,7 @@ import React, {
|
|
|
8
8
|
useRef,
|
|
9
9
|
useState,
|
|
10
10
|
} from "react";
|
|
11
|
-
import {
|
|
12
|
-
BodyShort,
|
|
13
|
-
ErrorMessage,
|
|
14
|
-
Label,
|
|
15
|
-
mergeRefs,
|
|
16
|
-
omit,
|
|
17
|
-
useEventListener,
|
|
18
|
-
} from "../..";
|
|
11
|
+
import { BodyShort, ErrorMessage, Label, mergeRefs, omit } from "../..";
|
|
19
12
|
import { FormFieldProps, useFormField } from "../useFormField";
|
|
20
13
|
import SearchButton, { SearchButtonType } from "./SearchButton";
|
|
21
14
|
|
|
@@ -135,7 +128,6 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
135
128
|
|
|
136
129
|
const searchRef = useRef<HTMLInputElement | null>(null);
|
|
137
130
|
const mergedRef = useMemo(() => mergeRefs([searchRef, ref]), [ref]);
|
|
138
|
-
const [wrapperRef, setWrapperRef] = useState<HTMLDivElement | null>(null);
|
|
139
131
|
|
|
140
132
|
const [internalValue, setInternalValue] = useState(defaultValue ?? "");
|
|
141
133
|
|
|
@@ -156,27 +148,22 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
156
148
|
[handleChange, onClear]
|
|
157
149
|
);
|
|
158
150
|
|
|
159
|
-
useEventListener(
|
|
160
|
-
"keydown",
|
|
161
|
-
useCallback(
|
|
162
|
-
(e) => {
|
|
163
|
-
if (e.key === "Escape") {
|
|
164
|
-
e.preventDefault();
|
|
165
|
-
handleClear({ trigger: "Escape", event: e });
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
[handleClear]
|
|
169
|
-
),
|
|
170
|
-
wrapperRef
|
|
171
|
-
);
|
|
172
|
-
|
|
173
151
|
const handleClick = () => {
|
|
174
152
|
onSearchClick?.(`${value ?? internalValue}`);
|
|
175
153
|
};
|
|
176
154
|
|
|
177
155
|
return (
|
|
178
156
|
<div
|
|
179
|
-
|
|
157
|
+
onKeyDown={(e) => {
|
|
158
|
+
if (e.key !== "Escape") {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
searchRef.current?.value &&
|
|
162
|
+
searchRef.current?.value !== "" &&
|
|
163
|
+
e.preventDefault();
|
|
164
|
+
|
|
165
|
+
handleClear({ trigger: "Escape", event: e });
|
|
166
|
+
}}
|
|
180
167
|
className={cl(
|
|
181
168
|
className,
|
|
182
169
|
"navds-form-field",
|
package/src/index.ts
CHANGED
|
@@ -34,7 +34,7 @@ export interface HGridProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
34
34
|
/**
|
|
35
35
|
* Horizontal Grid Primitive with dynamic columns and gap based on breakpoints.
|
|
36
36
|
*
|
|
37
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
37
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hgrid)
|
|
38
38
|
* @see 🏷️ {@link HGridProps}
|
|
39
39
|
*
|
|
40
40
|
* @example
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import cl from "clsx";
|
|
2
|
+
import React, { forwardRef, HTMLAttributes } from "react";
|
|
3
|
+
import { BreakpointsAlias } from "../utilities/css";
|
|
4
|
+
|
|
5
|
+
export interface ResponsiveProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* @example
|
|
9
|
+
* above='md'
|
|
10
|
+
*/
|
|
11
|
+
above?: Exclude<BreakpointsAlias, "xs">;
|
|
12
|
+
/**
|
|
13
|
+
* @example
|
|
14
|
+
* below='md'
|
|
15
|
+
*/
|
|
16
|
+
below?: Exclude<BreakpointsAlias, "xs">;
|
|
17
|
+
/**
|
|
18
|
+
* Overrides html-tag
|
|
19
|
+
* @default "div"
|
|
20
|
+
*/
|
|
21
|
+
as?: "div" | "span";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const Responsive = forwardRef<
|
|
25
|
+
HTMLDivElement,
|
|
26
|
+
ResponsiveProps & { variant: "show" | "hide" }
|
|
27
|
+
>(
|
|
28
|
+
(
|
|
29
|
+
{ as: Component = "div", className, above, below, variant, ...rest },
|
|
30
|
+
ref
|
|
31
|
+
) => {
|
|
32
|
+
const aboveProp = variant === "show" ? above : below;
|
|
33
|
+
const belowProp = variant === "show" ? below : above;
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<Component
|
|
37
|
+
{...rest}
|
|
38
|
+
ref={ref}
|
|
39
|
+
className={cl("navds-responsive", className, {
|
|
40
|
+
[`navds-responsive__above--${aboveProp}`]: aboveProp,
|
|
41
|
+
[`navds-responsive__below--${belowProp}`]: belowProp,
|
|
42
|
+
})}
|
|
43
|
+
/>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
50
|
+
*
|
|
51
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hide)
|
|
52
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
56
|
+
* <div/>
|
|
57
|
+
* <Hide below="md">
|
|
58
|
+
* // Only visible above "md"
|
|
59
|
+
* </Hide>
|
|
60
|
+
* </HGrid>
|
|
61
|
+
* @example
|
|
62
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
63
|
+
* <div/>
|
|
64
|
+
* <Hide above="md">
|
|
65
|
+
* // Only visible below "md"
|
|
66
|
+
* </Hide>
|
|
67
|
+
* </HGrid>
|
|
68
|
+
*/
|
|
69
|
+
export const Hide = forwardRef<HTMLDivElement, ResponsiveProps>(
|
|
70
|
+
(props, ref) => <Responsive {...props} ref={ref} variant="hide" />
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Responsive view Primitive to show/hide elements based on breakpoints
|
|
75
|
+
*
|
|
76
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/show)
|
|
77
|
+
* @see 🏷️ {@link ResponsiveProps}
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
81
|
+
* <div/>
|
|
82
|
+
* <Show below="md">
|
|
83
|
+
* // Only visible below "md"
|
|
84
|
+
* </Show>
|
|
85
|
+
* </HGrid>
|
|
86
|
+
* @example
|
|
87
|
+
* <HGrid columns={{ xs: 1, md: 2 }} gap="4">
|
|
88
|
+
* <div/>
|
|
89
|
+
* <Show above="md">
|
|
90
|
+
* // Only visible above "md"
|
|
91
|
+
* </Show>
|
|
92
|
+
* </HGrid>
|
|
93
|
+
*/
|
|
94
|
+
export const Show = forwardRef<HTMLDivElement, ResponsiveProps>(
|
|
95
|
+
(props, ref) => <Responsive {...props} ref={ref} variant="show" />
|
|
96
|
+
);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { Meta } from "@storybook/react";
|
|
3
|
+
import { Hide } from ".";
|
|
4
|
+
import { Tag } from "../../tag";
|
|
5
|
+
import { VStack } from "../stack";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "ds-react/Responsive/Hide",
|
|
9
|
+
component: Hide,
|
|
10
|
+
} satisfies Meta<typeof Hide>;
|
|
11
|
+
|
|
12
|
+
export const Default = {
|
|
13
|
+
render: () => (
|
|
14
|
+
<VStack gap="12">
|
|
15
|
+
<VStack gap="2" align="center">
|
|
16
|
+
<Hide above="xl">
|
|
17
|
+
<Tag variant="neutral">Visible below xl</Tag>
|
|
18
|
+
</Hide>
|
|
19
|
+
<Hide above="lg">
|
|
20
|
+
<Tag variant="neutral">Visible below lg</Tag>
|
|
21
|
+
</Hide>
|
|
22
|
+
<Hide above="md">
|
|
23
|
+
<Tag variant="neutral">Visible below md</Tag>
|
|
24
|
+
</Hide>
|
|
25
|
+
<Hide above="sm">
|
|
26
|
+
<Tag variant="neutral">Visible below sm</Tag>
|
|
27
|
+
</Hide>
|
|
28
|
+
</VStack>
|
|
29
|
+
<VStack gap="2" align="center">
|
|
30
|
+
<Hide below="xl">
|
|
31
|
+
<Tag variant="alt3">Visible above xl</Tag>
|
|
32
|
+
</Hide>
|
|
33
|
+
<Hide below="lg">
|
|
34
|
+
<Tag variant="alt3">Visible above lg</Tag>
|
|
35
|
+
</Hide>
|
|
36
|
+
<Hide below="md">
|
|
37
|
+
<Tag variant="alt3">Visible above md</Tag>
|
|
38
|
+
</Hide>
|
|
39
|
+
<Hide below="sm">
|
|
40
|
+
<Tag variant="alt3">Visible above sm</Tag>
|
|
41
|
+
</Hide>
|
|
42
|
+
</VStack>
|
|
43
|
+
</VStack>
|
|
44
|
+
),
|
|
45
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Show, Hide, type ResponsiveProps } from "./Responsive";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { Meta } from "@storybook/react";
|
|
3
|
+
import { Show } from ".";
|
|
4
|
+
import { Tag } from "../../tag";
|
|
5
|
+
import { VStack } from "../stack";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "ds-react/Responsive/Show",
|
|
9
|
+
component: Show,
|
|
10
|
+
} satisfies Meta<typeof Show>;
|
|
11
|
+
|
|
12
|
+
export const Default = {
|
|
13
|
+
render: () => (
|
|
14
|
+
<VStack gap="12">
|
|
15
|
+
<VStack gap="2" align="center">
|
|
16
|
+
<Show above="xl">
|
|
17
|
+
<Tag variant="neutral">Visible above xl</Tag>
|
|
18
|
+
</Show>
|
|
19
|
+
<Show above="lg">
|
|
20
|
+
<Tag variant="neutral">Visible above lg</Tag>
|
|
21
|
+
</Show>
|
|
22
|
+
<Show above="md">
|
|
23
|
+
<Tag variant="neutral">Visible above md</Tag>
|
|
24
|
+
</Show>
|
|
25
|
+
<Show above="sm">
|
|
26
|
+
<Tag variant="neutral">Visible above sm</Tag>
|
|
27
|
+
</Show>
|
|
28
|
+
</VStack>
|
|
29
|
+
<VStack gap="2" align="center">
|
|
30
|
+
<Show below="xl">
|
|
31
|
+
<Tag variant="alt3">Visible below xl</Tag>
|
|
32
|
+
</Show>
|
|
33
|
+
<Show below="lg">
|
|
34
|
+
<Tag variant="alt3">Visible below lg</Tag>
|
|
35
|
+
</Show>
|
|
36
|
+
<Show below="md">
|
|
37
|
+
<Tag variant="alt3">Visible below md</Tag>
|
|
38
|
+
</Show>
|
|
39
|
+
<Show below="sm">
|
|
40
|
+
<Tag variant="alt3">Visible below sm</Tag>
|
|
41
|
+
</Show>
|
|
42
|
+
</VStack>
|
|
43
|
+
</VStack>
|
|
44
|
+
),
|
|
45
|
+
};
|
|
@@ -7,7 +7,7 @@ export type HStackProps = Omit<StackProps, "direction">;
|
|
|
7
7
|
/**
|
|
8
8
|
* Layout-primitive for horizontal flexbox
|
|
9
9
|
*
|
|
10
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
10
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
11
11
|
* @see 🏷️ {@link HStackProps}
|
|
12
12
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
13
13
|
*
|
|
@@ -3,7 +3,7 @@ import React from "react";
|
|
|
3
3
|
/**
|
|
4
4
|
* Layout-primitive for auto-spacing between elements
|
|
5
5
|
*
|
|
6
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
6
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/hstack)
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* <HStack gap="8">
|
|
@@ -7,7 +7,7 @@ export type VStackProps = Omit<StackProps, "direction" | "wrap">;
|
|
|
7
7
|
/**
|
|
8
8
|
* Layout-primitive for vetical flexbox
|
|
9
9
|
*
|
|
10
|
-
* @see [📝 Documentation](https://aksel.nav.no/komponenter/
|
|
10
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/primitives/vstack)
|
|
11
11
|
* @see 🏷️ {@link VStackProps}
|
|
12
12
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
13
13
|
*
|
package/src/modal/Modal.tsx
CHANGED
|
@@ -192,6 +192,7 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
|
|
|
192
192
|
|
|
193
193
|
const component = (
|
|
194
194
|
<dialog
|
|
195
|
+
{...rest}
|
|
195
196
|
ref={mergedRef}
|
|
196
197
|
className={cl("navds-modal", className, {
|
|
197
198
|
"navds-modal--polyfilled": needPolyfill,
|
|
@@ -213,7 +214,6 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
|
|
|
213
214
|
? ariaLabelId
|
|
214
215
|
: ariaLabelledby
|
|
215
216
|
}
|
|
216
|
-
{...rest}
|
|
217
217
|
>
|
|
218
218
|
<ModalContext.Provider
|
|
219
219
|
value={{
|
|
@@ -16,7 +16,7 @@ export const WithUseRef = () => {
|
|
|
16
16
|
const ref2 = useRef<HTMLDialogElement>(null);
|
|
17
17
|
|
|
18
18
|
return (
|
|
19
|
-
|
|
19
|
+
<div>
|
|
20
20
|
<Button onClick={() => ref.current?.showModal()}>Open Modal</Button>
|
|
21
21
|
<Modal
|
|
22
22
|
open={ref.current ? undefined : true /* initially open */}
|
|
@@ -80,7 +80,7 @@ export const WithUseRef = () => {
|
|
|
80
80
|
<Button variant="tertiary">Tertiary</Button>
|
|
81
81
|
</Modal.Footer>
|
|
82
82
|
</Modal>
|
|
83
|
-
|
|
83
|
+
</div>
|
|
84
84
|
);
|
|
85
85
|
};
|
|
86
86
|
WithUseRef.storyName = "With useRef";
|