@navikt/ds-react 0.11.0 → 0.11.4
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/accordion/AccordionContent.js +1 -7
- package/cjs/accordion/AccordionHeader.js +1 -1
- package/cjs/accordion/AccordionItem.js +0 -3
- package/cjs/form/checkbox/CheckboxGroup.js +11 -5
- package/cjs/form/checkbox/useCheckbox.js +1 -1
- package/cjs/help-text/HelpText.js +2 -3
- package/cjs/loader/Loader.js +2 -2
- package/cjs/popover/Popover.js +1 -1
- package/esm/accordion/AccordionContent.js +1 -7
- package/esm/accordion/AccordionContent.js.map +1 -1
- package/esm/accordion/AccordionHeader.js +1 -1
- package/esm/accordion/AccordionHeader.js.map +1 -1
- package/esm/accordion/AccordionItem.d.ts +0 -2
- package/esm/accordion/AccordionItem.js +0 -3
- package/esm/accordion/AccordionItem.js.map +1 -1
- package/esm/form/checkbox/CheckboxGroup.d.ts +1 -1
- package/esm/form/checkbox/CheckboxGroup.js +12 -6
- package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
- package/esm/form/checkbox/useCheckbox.js +1 -1
- package/esm/form/checkbox/useCheckbox.js.map +1 -1
- package/esm/help-text/HelpText.js +3 -4
- package/esm/help-text/HelpText.js.map +1 -1
- package/esm/loader/Loader.js +2 -2
- package/esm/loader/Loader.js.map +1 -1
- package/esm/popover/Popover.js +1 -1
- package/esm/popover/Popover.js.map +1 -1
- package/package.json +2 -2
- package/src/accordion/AccordionContent.tsx +1 -15
- package/src/accordion/AccordionHeader.tsx +0 -1
- package/src/accordion/AccordionItem.tsx +0 -5
- package/src/form/checkbox/Checkbox.test.tsx +60 -1
- package/src/form/checkbox/CheckboxGroup.tsx +16 -18
- package/src/form/checkbox/useCheckbox.ts +1 -1
- package/src/help-text/HelpText.tsx +1 -4
- package/src/loader/Loader.tsx +2 -2
- package/src/popover/Popover.tsx +0 -1
|
@@ -36,16 +36,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
const classnames_1 = __importDefault(require("classnames"));
|
|
37
37
|
const react_1 = __importStar(require("react"));
|
|
38
38
|
const react_collapse_1 = require("react-collapse");
|
|
39
|
-
const util_1 = require("../util");
|
|
40
39
|
const AccordionItem_1 = require("./AccordionItem");
|
|
41
40
|
const AccordionContent = (0, react_1.forwardRef)((_a, ref) => {
|
|
42
41
|
var { children, className, id } = _a, rest = __rest(_a, ["children", "className", "id"]);
|
|
43
42
|
const context = (0, react_1.useContext)(AccordionItem_1.AccordionItemContext);
|
|
44
|
-
const newId = (0, util_1.useId)(id);
|
|
45
|
-
const setContentId = context && context.setContentId;
|
|
46
|
-
(0, util_1.useClientLayoutEffect)(() => {
|
|
47
|
-
setContentId && setContentId(id ? newId : `accordionContent-${newId}`);
|
|
48
|
-
}, [setContentId, newId]);
|
|
49
43
|
if (context === null) {
|
|
50
44
|
console.error("<Accordion.Content> has to be used within an <Accordion.Item>");
|
|
51
45
|
return null;
|
|
@@ -53,7 +47,7 @@ const AccordionContent = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
53
47
|
const CollapseComponent = context.renderContentWhenClosed
|
|
54
48
|
? react_collapse_1.Collapse
|
|
55
49
|
: react_collapse_1.UnmountClosed;
|
|
56
|
-
return (react_1.default.createElement("div", Object.assign({ ref: ref,
|
|
50
|
+
return (react_1.default.createElement("div", Object.assign({ ref: ref, role: "region", "aria-labelledby": context.buttonId }, rest),
|
|
57
51
|
react_1.default.createElement(CollapseComponent, { isOpened: context.open },
|
|
58
52
|
react_1.default.createElement("div", { className: (0, classnames_1.default)("navds-accordion__content", className) }, children))));
|
|
59
53
|
});
|
|
@@ -54,7 +54,7 @@ const AccordionHeader = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
54
54
|
context.toggleOpen();
|
|
55
55
|
onClick && onClick(e);
|
|
56
56
|
};
|
|
57
|
-
return (react_1.default.createElement("button", Object.assign({ ref: ref, id: context.buttonId, className: (0, classnames_1.default)("navds-accordion__header", className, "navds-heading", "navds-heading--small"), onClick: handleClick
|
|
57
|
+
return (react_1.default.createElement("button", Object.assign({ ref: ref, id: context.buttonId, className: (0, classnames_1.default)("navds-accordion__header", className, "navds-heading", "navds-heading--small"), onClick: handleClick }, rest),
|
|
58
58
|
children,
|
|
59
59
|
react_1.default.createElement(ds_icons_1.Expand, { focusable: "false", role: "img", "aria-label": context.open ? "Lukk panel ikon" : "Åpne panel ikon", className: (0, classnames_1.default)("navds-accordion__expand-icon", {
|
|
60
60
|
"navds-accordion__expand-icon--flip": context.open,
|
|
@@ -41,7 +41,6 @@ const AccordionItem = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
41
41
|
var { children, className, open, defaultOpen = false, renderContentWhenClosed = false, onClick, id } = _a, rest = __rest(_a, ["children", "className", "open", "defaultOpen", "renderContentWhenClosed", "onClick", "id"]);
|
|
42
42
|
const [internalOpen, setInternalOpen] = (0, react_1.useState)(defaultOpen);
|
|
43
43
|
const [buttonId, setButtonId] = (0, react_1.useState)("");
|
|
44
|
-
const [contentId, setContentId] = (0, react_1.useState)("");
|
|
45
44
|
return (react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)("navds-accordion__item", className, {
|
|
46
45
|
"navds-accordion__item--open": open !== null && open !== void 0 ? open : internalOpen,
|
|
47
46
|
}), ref: ref }, rest),
|
|
@@ -55,8 +54,6 @@ const AccordionItem = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
55
54
|
renderContentWhenClosed,
|
|
56
55
|
setButtonId,
|
|
57
56
|
buttonId,
|
|
58
|
-
setContentId,
|
|
59
|
-
contentId,
|
|
60
57
|
} }, children)));
|
|
61
58
|
});
|
|
62
59
|
exports.default = AccordionItem;
|
|
@@ -40,16 +40,22 @@ const __1 = require("..");
|
|
|
40
40
|
exports.CheckboxGroupContext = (0, react_1.createContext)(null);
|
|
41
41
|
const CheckboxGroup = (0, react_1.forwardRef)((_a, ref) => {
|
|
42
42
|
var _b, _c;
|
|
43
|
-
var { value, defaultValue
|
|
44
|
-
const state = value !== null && value !== void 0 ? value : [];
|
|
43
|
+
var { value, defaultValue, onChange = () => { }, children, className } = _a, rest = __rest(_a, ["value", "defaultValue", "onChange", "children", "className"]);
|
|
45
44
|
const fieldset = (0, react_1.useContext)(__1.FieldsetContext);
|
|
45
|
+
const [state, setState] = (0, react_1.useState)([]);
|
|
46
|
+
const handleChange = (v) => {
|
|
47
|
+
const newValue = value ? value : state;
|
|
48
|
+
const newState = newValue.includes(v)
|
|
49
|
+
? newValue.filter((x) => x !== v)
|
|
50
|
+
: [...newValue, v];
|
|
51
|
+
value === undefined && setState(newState);
|
|
52
|
+
onChange(newState);
|
|
53
|
+
};
|
|
46
54
|
return (react_1.default.createElement(__1.Fieldset, Object.assign({}, rest, { ref: ref, className: (0, classnames_1.default)(className, "navds-checkbox-group", `navds-checkbox-group--${(_c = (_b = rest.size) !== null && _b !== void 0 ? _b : fieldset === null || fieldset === void 0 ? void 0 : fieldset.size) !== null && _c !== void 0 ? _c : "medium"}`) }),
|
|
47
55
|
react_1.default.createElement(exports.CheckboxGroupContext.Provider, { value: {
|
|
48
56
|
value,
|
|
49
57
|
defaultValue,
|
|
50
|
-
toggleValue: (value) =>
|
|
51
|
-
? state.filter((v) => v !== value)
|
|
52
|
-
: [...state, value]),
|
|
58
|
+
toggleValue: (value) => handleChange(value),
|
|
53
59
|
} },
|
|
54
60
|
react_1.default.createElement("div", { className: "navds-checkboxes" }, children))));
|
|
55
61
|
});
|
|
@@ -31,7 +31,7 @@ const useCheckbox = (_a) => {
|
|
|
31
31
|
}
|
|
32
32
|
return Object.assign(Object.assign({}, rest), { inputProps: Object.assign(Object.assign({}, inputProps), { type: "checkbox", checked: (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.value)
|
|
33
33
|
? checkboxGroup.value.includes(props.value)
|
|
34
|
-
: props.checked, defaultChecked: checkboxGroup
|
|
34
|
+
: props.checked, defaultChecked: (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.defaultValue)
|
|
35
35
|
? checkboxGroup.defaultValue.includes(props.value)
|
|
36
36
|
: props.defaultChecked, onChange: (e) => {
|
|
37
37
|
props.onChange && props.onChange(e);
|
|
@@ -45,7 +45,6 @@ const HelpText = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
45
45
|
const popoverRef = (0, react_1.useRef)(null);
|
|
46
46
|
const wrapperRef = (0, react_1.useRef)(null);
|
|
47
47
|
const [open, setOpen] = (0, react_1.useState)(false);
|
|
48
|
-
const popoverId = `popover-${(0, __1.useId)()}`;
|
|
49
48
|
(0, react_1.useEffect)(() => {
|
|
50
49
|
var _a;
|
|
51
50
|
open && ((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.focus());
|
|
@@ -55,10 +54,10 @@ const HelpText = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
55
54
|
rest.onClick && rest.onClick(e);
|
|
56
55
|
};
|
|
57
56
|
return (react_1.default.createElement("div", { className: "navds-help-text", ref: wrapperRef },
|
|
58
|
-
react_1.default.createElement("button", Object.assign({}, rest, { ref: mergedRef, onClick: (e) => handleClick(e), className: (0, classnames_1.default)(className, "navds-help-text__button"), type: "button", "aria-expanded": open, "aria-
|
|
57
|
+
react_1.default.createElement("button", Object.assign({}, rest, { ref: mergedRef, onClick: (e) => handleClick(e), className: (0, classnames_1.default)(className, "navds-help-text__button"), type: "button", "aria-expanded": open, "aria-haspopup": "dialog", title: title }),
|
|
59
58
|
react_1.default.createElement(ds_icons_1.Helptext, { className: "navds-help-text__icon" }),
|
|
60
59
|
react_1.default.createElement("span", { className: "navds-sr-only" }, title)),
|
|
61
|
-
react_1.default.createElement(__1.Popover, { ref: popoverRef, onClose: () => setOpen(false), className: "navds-help-text__popover", open: open, role: "tooltip", anchorEl: buttonRef.current,
|
|
60
|
+
react_1.default.createElement(__1.Popover, { ref: popoverRef, onClose: () => setOpen(false), className: "navds-help-text__popover", open: open, role: "tooltip", anchorEl: buttonRef.current, placement: placement },
|
|
62
61
|
react_1.default.createElement(__1.Popover.Content, null, children))));
|
|
63
62
|
});
|
|
64
63
|
exports.default = HelpText;
|
package/cjs/loader/Loader.js
CHANGED
|
@@ -38,8 +38,8 @@ const classnames_1 = __importDefault(require("classnames"));
|
|
|
38
38
|
const __1 = require("..");
|
|
39
39
|
const Loader = (0, react_1.forwardRef)((_a, ref) => {
|
|
40
40
|
var { children, className, size = "medium", title = "venter...", transparent = false, variant = "neutral", id } = _a, rest = __rest(_a, ["children", "className", "size", "title", "transparent", "variant", "id"]);
|
|
41
|
-
const internalId = (0, __1.useId)(
|
|
42
|
-
return (react_1.default.createElement("svg", Object.assign({ "aria-labelledby": internalId
|
|
41
|
+
const internalId = (0, __1.useId)();
|
|
42
|
+
return (react_1.default.createElement("svg", Object.assign({ "aria-labelledby": id !== null && id !== void 0 ? id : `loader-${internalId}`, ref: ref, className: (0, classnames_1.default)("navds-loader", className, `navds-loader--${size}`, `navds-loader--${variant}`, {
|
|
43
43
|
"navds-loader--transparent": transparent,
|
|
44
44
|
}), focusable: "false", viewBox: "0 0 50 50", preserveAspectRatio: "xMidYMid" }, rest),
|
|
45
45
|
react_1.default.createElement("title", { id: id !== null && id !== void 0 ? id : `loader-${internalId}` }, title),
|
package/cjs/popover/Popover.js
CHANGED
|
@@ -83,7 +83,7 @@ const Popover = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
83
83
|
}, [open, update]);
|
|
84
84
|
return (react_1.default.createElement("div", Object.assign({ ref: mergedRef, className: (0, classnames_1.default)("navds-popover", className, {
|
|
85
85
|
"navds-popover--hidden": !open || !anchorEl,
|
|
86
|
-
}), "aria-
|
|
86
|
+
}), "aria-hidden": !open || !anchorEl, tabIndex: -1 }, attributes.popper, rest, { style: styles.popper }),
|
|
87
87
|
children,
|
|
88
88
|
arrow && (react_1.default.createElement("div", { "data-popper-arrow": true, style: styles.arrow, className: "navds-popover__arrow" }))));
|
|
89
89
|
});
|
|
@@ -12,16 +12,10 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import cl from "classnames";
|
|
13
13
|
import React, { forwardRef, useContext } from "react";
|
|
14
14
|
import { Collapse, UnmountClosed } from "react-collapse";
|
|
15
|
-
import { useClientLayoutEffect, useId } from "../util";
|
|
16
15
|
import { AccordionItemContext } from "./AccordionItem";
|
|
17
16
|
const AccordionContent = forwardRef((_a, ref) => {
|
|
18
17
|
var { children, className, id } = _a, rest = __rest(_a, ["children", "className", "id"]);
|
|
19
18
|
const context = useContext(AccordionItemContext);
|
|
20
|
-
const newId = useId(id);
|
|
21
|
-
const setContentId = context && context.setContentId;
|
|
22
|
-
useClientLayoutEffect(() => {
|
|
23
|
-
setContentId && setContentId(id ? newId : `accordionContent-${newId}`);
|
|
24
|
-
}, [setContentId, newId]);
|
|
25
19
|
if (context === null) {
|
|
26
20
|
console.error("<Accordion.Content> has to be used within an <Accordion.Item>");
|
|
27
21
|
return null;
|
|
@@ -29,7 +23,7 @@ const AccordionContent = forwardRef((_a, ref) => {
|
|
|
29
23
|
const CollapseComponent = context.renderContentWhenClosed
|
|
30
24
|
? Collapse
|
|
31
25
|
: UnmountClosed;
|
|
32
|
-
return (React.createElement("div", Object.assign({ ref: ref,
|
|
26
|
+
return (React.createElement("div", Object.assign({ ref: ref, role: "region", "aria-labelledby": context.buttonId }, rest),
|
|
33
27
|
React.createElement(CollapseComponent, { isOpened: context.open },
|
|
34
28
|
React.createElement("div", { className: cl("navds-accordion__content", className) }, children))));
|
|
35
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionContent.js","sourceRoot":"","sources":["../../src/accordion/AccordionContent.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AccordionContent.js","sourceRoot":"","sources":["../../src/accordion/AccordionContent.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAcvD,MAAM,gBAAgB,GAAyB,UAAU,CACvD,CAAC,EAAoC,EAAE,GAAG,EAAE,EAAE;QAA7C,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAW,EAAN,IAAI,cAAlC,+BAAoC,CAAF;IACjC,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,KAAK,CACX,+DAA+D,CAChE,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,uBAAuB;QACvD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,aAAa,CAAC;IAElB,OAAO,CACL,2CAAK,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,QAAQ,qBAAkB,OAAO,CAAC,QAAQ,IAAM,IAAI;QACtE,oBAAC,iBAAiB,IAAC,QAAQ,EAAE,OAAO,CAAC,IAAI;YACvC,6BAAK,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,IACtD,QAAQ,CACL,CACY,CAChB,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -30,7 +30,7 @@ const AccordionHeader = forwardRef((_a, ref) => {
|
|
|
30
30
|
context.toggleOpen();
|
|
31
31
|
onClick && onClick(e);
|
|
32
32
|
};
|
|
33
|
-
return (React.createElement("button", Object.assign({ ref: ref, id: context.buttonId, className: cl("navds-accordion__header", className, "navds-heading", "navds-heading--small"), onClick: handleClick
|
|
33
|
+
return (React.createElement("button", Object.assign({ ref: ref, id: context.buttonId, className: cl("navds-accordion__header", className, "navds-heading", "navds-heading--small"), onClick: handleClick }, rest),
|
|
34
34
|
children,
|
|
35
35
|
React.createElement(Expand, { focusable: "false", role: "img", "aria-label": context.open ? "Lukk panel ikon" : "Åpne panel ikon", className: cl("navds-accordion__expand-icon", {
|
|
36
36
|
"navds-accordion__expand-icon--flip": context.open,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionHeader.js","sourceRoot":"","sources":["../../src/accordion/AccordionHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAclD,MAAM,eAAe,GAAwB,UAAU,CACrD,CAAC,EAA6C,EAAE,GAAG,EAAE,EAAE;QAAtD,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,OAAW,EAAN,IAAI,cAA3C,0CAA6C,CAAF;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IAEnD,qBAAqB,CAAC,GAAG,EAAE;QACzB,WAAW,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzB,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,KAAK,CACX,8DAA8D,CAC/D,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,CAClB,CAAkD,EAClD,EAAE;QACF,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,CAAC,QAAQ,EACpB,SAAS,EAAE,EAAE,CACX,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,sBAAsB,CACvB,EACD,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"AccordionHeader.js","sourceRoot":"","sources":["../../src/accordion/AccordionHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAclD,MAAM,eAAe,GAAwB,UAAU,CACrD,CAAC,EAA6C,EAAE,GAAG,EAAE,EAAE;QAAtD,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,OAAW,EAAN,IAAI,cAA3C,0CAA6C,CAAF;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IAEnD,qBAAqB,CAAC,GAAG,EAAE;QACzB,WAAW,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzB,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,KAAK,CACX,8DAA8D,CAC/D,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,CAClB,CAAkD,EAClD,EAAE;QACF,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,CAAC,QAAQ,EACpB,SAAS,EAAE,EAAE,CACX,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,sBAAsB,CACvB,EACD,OAAO,EAAE,WAAW,IAChB,IAAI;QAEP,QAAQ;QACT,oBAAC,MAAM,IACL,SAAS,EAAC,OAAO,EACjB,IAAI,EAAC,KAAK,gBACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAChE,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE;gBAC5C,oCAAoC,EAAE,OAAO,CAAC,IAAI;aACnD,CAAC,GACF;QACF,oBAAC,YAAY,IACX,SAAS,EAAC,OAAO,EACjB,IAAI,EAAC,KAAK,gBACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAChE,SAAS,EAAE,EAAE,CACX,8BAA8B,EAC9B,sCAAsC,EACtC;gBACE,oCAAoC,EAAE,OAAO,CAAC,IAAI;aACnD,CACF,GACD,CACK,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -25,9 +25,7 @@ export interface AccordionItemContextProps {
|
|
|
25
25
|
open: boolean;
|
|
26
26
|
toggleOpen: () => void;
|
|
27
27
|
setButtonId: (id: string) => void;
|
|
28
|
-
setContentId: (id: string) => void;
|
|
29
28
|
buttonId: string;
|
|
30
|
-
contentId: string;
|
|
31
29
|
renderContentWhenClosed: boolean;
|
|
32
30
|
}
|
|
33
31
|
export declare const AccordionItemContext: React.Context<AccordionItemContextProps | null>;
|
|
@@ -16,7 +16,6 @@ const AccordionItem = forwardRef((_a, ref) => {
|
|
|
16
16
|
var { children, className, open, defaultOpen = false, renderContentWhenClosed = false, onClick, id } = _a, rest = __rest(_a, ["children", "className", "open", "defaultOpen", "renderContentWhenClosed", "onClick", "id"]);
|
|
17
17
|
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
18
18
|
const [buttonId, setButtonId] = useState("");
|
|
19
|
-
const [contentId, setContentId] = useState("");
|
|
20
19
|
return (React.createElement("div", Object.assign({ className: cl("navds-accordion__item", className, {
|
|
21
20
|
"navds-accordion__item--open": open !== null && open !== void 0 ? open : internalOpen,
|
|
22
21
|
}), ref: ref }, rest),
|
|
@@ -30,8 +29,6 @@ const AccordionItem = forwardRef((_a, ref) => {
|
|
|
30
29
|
renderContentWhenClosed,
|
|
31
30
|
setButtonId,
|
|
32
31
|
buttonId,
|
|
33
|
-
setContentId,
|
|
34
|
-
contentId,
|
|
35
32
|
} }, children)));
|
|
36
33
|
});
|
|
37
34
|
export default AccordionItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../../src/accordion/AccordionItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../../src/accordion/AccordionItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAqCnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAC/C,IAAI,CACL,CAAC;AAEF,MAAM,aAAa,GAAsB,UAAU,CACjD,CACE,EASC,EACD,GAAG,EACH,EAAE;QAXF,EACE,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,uBAAuB,GAAG,KAAK,EAC/B,OAAO,EACP,EAAE,OAEH,EADI,IAAI,cART,4FASC,CADQ;IAIT,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,WAAW,CAAC,CAAC;IACvE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,OAAO,CACL,2CACE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,EAAE;YAChD,6BAA6B,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY;SACpD,CAAC,EACF,GAAG,EAAE,GAAG,IACJ,IAAI;QAER,oBAAC,oBAAoB,CAAC,QAAQ,IAC5B,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY;gBAC1B,UAAU,EAAE,GAAG,EAAE;oBACf,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;qBACpC;gBACH,CAAC;gBACD,uBAAuB;gBACvB,WAAW;gBACX,QAAQ;aACT,IAEA,QAAQ,CACqB,CAC5B,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FieldsetProps } from "..";
|
|
3
3
|
export interface CheckboxGroupState {
|
|
4
|
-
readonly defaultValue
|
|
4
|
+
readonly defaultValue?: readonly string[];
|
|
5
5
|
readonly value?: readonly string[];
|
|
6
6
|
toggleValue(value: string): void;
|
|
7
7
|
}
|
|
@@ -9,22 +9,28 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React, { createContext, forwardRef, useContext } from "react";
|
|
12
|
+
import React, { createContext, forwardRef, useContext, useState } from "react";
|
|
13
13
|
import cl from "classnames";
|
|
14
14
|
import { Fieldset, FieldsetContext } from "..";
|
|
15
15
|
export const CheckboxGroupContext = createContext(null);
|
|
16
16
|
const CheckboxGroup = forwardRef((_a, ref) => {
|
|
17
17
|
var _b, _c;
|
|
18
|
-
var { value, defaultValue
|
|
19
|
-
const state = value !== null && value !== void 0 ? value : [];
|
|
18
|
+
var { value, defaultValue, onChange = () => { }, children, className } = _a, rest = __rest(_a, ["value", "defaultValue", "onChange", "children", "className"]);
|
|
20
19
|
const fieldset = useContext(FieldsetContext);
|
|
20
|
+
const [state, setState] = useState([]);
|
|
21
|
+
const handleChange = (v) => {
|
|
22
|
+
const newValue = value ? value : state;
|
|
23
|
+
const newState = newValue.includes(v)
|
|
24
|
+
? newValue.filter((x) => x !== v)
|
|
25
|
+
: [...newValue, v];
|
|
26
|
+
value === undefined && setState(newState);
|
|
27
|
+
onChange(newState);
|
|
28
|
+
};
|
|
21
29
|
return (React.createElement(Fieldset, Object.assign({}, rest, { ref: ref, className: cl(className, "navds-checkbox-group", `navds-checkbox-group--${(_c = (_b = rest.size) !== null && _b !== void 0 ? _b : fieldset === null || fieldset === void 0 ? void 0 : fieldset.size) !== null && _c !== void 0 ? _c : "medium"}`) }),
|
|
22
30
|
React.createElement(CheckboxGroupContext.Provider, { value: {
|
|
23
31
|
value,
|
|
24
32
|
defaultValue,
|
|
25
|
-
toggleValue: (value) =>
|
|
26
|
-
? state.filter((v) => v !== value)
|
|
27
|
-
: [...state, value]),
|
|
33
|
+
toggleValue: (value) => handleChange(value),
|
|
28
34
|
} },
|
|
29
35
|
React.createElement("div", { className: "navds-checkboxes" }, children))));
|
|
30
36
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../../../src/form/checkbox/CheckboxGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../../../src/form/checkbox/CheckboxGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAiB,eAAe,EAAE,MAAM,IAAI,CAAC;AAQ9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAC/C,IAAI,CACL,CAAC;AAqBF,MAAM,aAAa,GAAG,UAAU,CAC9B,CACE,EAA0E,EAC1E,GAAG,EACH,EAAE;;QAFF,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,OAAW,EAAN,IAAI,cAAxE,8DAA0E,CAAF;IAGxE,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;QAErB,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,QAAQ,oBACH,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,SAAS,EACT,sBAAsB,EACtB,yBAAyB,MAAA,MAAA,IAAI,CAAC,IAAI,mCAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,QAAQ,EAAE,CACnE;QAED,oBAAC,oBAAoB,CAAC,QAAQ,IAC5B,KAAK,EAAE;gBACL,KAAK;gBACL,YAAY;gBACZ,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;aACpD;YAED,6BAAK,SAAS,EAAC,kBAAkB,IAAE,QAAQ,CAAO,CACpB,CACvB,CACZ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -29,7 +29,7 @@ const useCheckbox = (_a) => {
|
|
|
29
29
|
}
|
|
30
30
|
return Object.assign(Object.assign({}, rest), { inputProps: Object.assign(Object.assign({}, inputProps), { type: "checkbox", checked: (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.value)
|
|
31
31
|
? checkboxGroup.value.includes(props.value)
|
|
32
|
-
: props.checked, defaultChecked: checkboxGroup
|
|
32
|
+
: props.checked, defaultChecked: (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.defaultValue)
|
|
33
33
|
? checkboxGroup.defaultValue.includes(props.value)
|
|
34
34
|
: props.defaultChecked, onChange: (e) => {
|
|
35
35
|
props.onChange && props.onChange(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckbox.js","sourceRoot":"","sources":["../../../src/form/checkbox/useCheckbox.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,EAAqC,EAAE,EAAE;QAAzC,EAAE,QAAQ,OAA2B,EAAtB,KAAK,cAApB,YAAsB,CAAF;IACvC,MAAM,aAAa,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEvD,MAAM,KAA0B,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,EAAzD,EAAE,UAAU,OAA6C,EAAxC,IAAI,cAArB,cAAuB,CAAkC,CAAC;IAEhE,IAAI,aAAa,EAAE;QACjB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,IAAI,CACV,8IAA8I,CAC/I,CAAC;SACH;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAC7B,OAAO,CAAC,IAAI,CACV,4EAA4E,CAC7E,CAAC;SACH;KACF;IAED,uCACK,IAAI,KACP,UAAU,kCACL,UAAU,KACb,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK;gBAC3B,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAe,CAAC;gBACrD,CAAC,CAAC,KAAK,CAAC,OAAO,EACjB,cAAc,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"useCheckbox.js","sourceRoot":"","sources":["../../../src/form/checkbox/useCheckbox.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,EAAqC,EAAE,EAAE;QAAzC,EAAE,QAAQ,OAA2B,EAAtB,KAAK,cAApB,YAAsB,CAAF;IACvC,MAAM,aAAa,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEvD,MAAM,KAA0B,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,EAAzD,EAAE,UAAU,OAA6C,EAAxC,IAAI,cAArB,cAAuB,CAAkC,CAAC;IAEhE,IAAI,aAAa,EAAE;QACjB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,IAAI,CACV,8IAA8I,CAC/I,CAAC;SACH;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAC7B,OAAO,CAAC,IAAI,CACV,4EAA4E,CAC7E,CAAC;SACH;KACF;IAED,uCACK,IAAI,KACP,UAAU,kCACL,UAAU,KACb,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK;gBAC3B,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAe,CAAC;gBACrD,CAAC,CAAC,KAAK,CAAC,OAAO,EACjB,cAAc,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY;gBACzC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAe,CAAC;gBAC5D,CAAC,CAAC,KAAK,CAAC,cAAc,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACpC,aAAa,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;YACpE,CAAC,OAEH;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -13,7 +13,7 @@ import { Helptext as HelpTextIcon } from "@navikt/ds-icons";
|
|
|
13
13
|
import cl from "classnames";
|
|
14
14
|
import React, { forwardRef, useEffect, useRef, useState } from "react";
|
|
15
15
|
import mergeRefs from "react-merge-refs";
|
|
16
|
-
import { Popover
|
|
16
|
+
import { Popover } from "..";
|
|
17
17
|
const HelpText = forwardRef((_a, ref) => {
|
|
18
18
|
var { className, children, placement = "top", title = "hjelp" } = _a, rest = __rest(_a, ["className", "children", "placement", "title"]);
|
|
19
19
|
const buttonRef = useRef(null);
|
|
@@ -21,7 +21,6 @@ const HelpText = forwardRef((_a, ref) => {
|
|
|
21
21
|
const popoverRef = useRef(null);
|
|
22
22
|
const wrapperRef = useRef(null);
|
|
23
23
|
const [open, setOpen] = useState(false);
|
|
24
|
-
const popoverId = `popover-${useId()}`;
|
|
25
24
|
useEffect(() => {
|
|
26
25
|
var _a;
|
|
27
26
|
open && ((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.focus());
|
|
@@ -31,10 +30,10 @@ const HelpText = forwardRef((_a, ref) => {
|
|
|
31
30
|
rest.onClick && rest.onClick(e);
|
|
32
31
|
};
|
|
33
32
|
return (React.createElement("div", { className: "navds-help-text", ref: wrapperRef },
|
|
34
|
-
React.createElement("button", Object.assign({}, rest, { ref: mergedRef, onClick: (e) => handleClick(e), className: cl(className, "navds-help-text__button"), type: "button", "aria-expanded": open, "aria-
|
|
33
|
+
React.createElement("button", Object.assign({}, rest, { ref: mergedRef, onClick: (e) => handleClick(e), className: cl(className, "navds-help-text__button"), type: "button", "aria-expanded": open, "aria-haspopup": "dialog", title: title }),
|
|
35
34
|
React.createElement(HelpTextIcon, { className: "navds-help-text__icon" }),
|
|
36
35
|
React.createElement("span", { className: "navds-sr-only" }, title)),
|
|
37
|
-
React.createElement(Popover, { ref: popoverRef, onClose: () => setOpen(false), className: "navds-help-text__popover", open: open, role: "tooltip", anchorEl: buttonRef.current,
|
|
36
|
+
React.createElement(Popover, { ref: popoverRef, onClose: () => setOpen(false), className: "navds-help-text__popover", open: open, role: "tooltip", anchorEl: buttonRef.current, placement: placement },
|
|
38
37
|
React.createElement(Popover.Content, null, children))));
|
|
39
38
|
});
|
|
40
39
|
export default HelpText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpText.js","sourceRoot":"","sources":["../../src/help-text/HelpText.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HelpText.js","sourceRoot":"","sources":["../../src/help-text/HelpText.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAe7B,MAAM,QAAQ,GAAG,UAAU,CACzB,CACE,EAAoE,EACpE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,OAAW,EAAN,IAAI,cAAlE,+CAAoE,CAAF;IAGlE,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEvD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;;QACb,IAAI,KAAI,MAAA,UAAU,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,CAAC;IACtC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,WAAW,GAAG,CAClB,CAAkD,EAClD,EAAE;QACF,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,iBAAiB,EAAC,GAAG,EAAE,UAAU;QAC9C,gDACM,IAAI,IACR,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAC9B,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,yBAAyB,CAAC,EACnD,IAAI,EAAC,QAAQ,mBACE,IAAI,mBACL,QAAQ,EACtB,KAAK,EAAE,KAAK;YAEZ,oBAAC,YAAY,IAAC,SAAS,EAAC,uBAAuB,GAAG;YAClD,8BAAM,SAAS,EAAC,eAAe,IAAE,KAAK,CAAQ,CACvC;QACT,oBAAC,OAAO,IACN,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,SAAS,EAAC,0BAA0B,EACpC,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,SAAS,EACd,QAAQ,EAAE,SAAS,CAAC,OAAO,EAC3B,SAAS,EAAE,SAAS;YAEpB,oBAAC,OAAO,CAAC,OAAO,QAAE,QAAQ,CAAmB,CACrC,CACN,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/esm/loader/Loader.js
CHANGED
|
@@ -14,8 +14,8 @@ import cl from "classnames";
|
|
|
14
14
|
import { useId } from "..";
|
|
15
15
|
const Loader = forwardRef((_a, ref) => {
|
|
16
16
|
var { children, className, size = "medium", title = "venter...", transparent = false, variant = "neutral", id } = _a, rest = __rest(_a, ["children", "className", "size", "title", "transparent", "variant", "id"]);
|
|
17
|
-
const internalId = useId(
|
|
18
|
-
return (React.createElement("svg", Object.assign({ "aria-labelledby": internalId
|
|
17
|
+
const internalId = useId();
|
|
18
|
+
return (React.createElement("svg", Object.assign({ "aria-labelledby": id !== null && id !== void 0 ? id : `loader-${internalId}`, ref: ref, className: cl("navds-loader", className, `navds-loader--${size}`, `navds-loader--${variant}`, {
|
|
19
19
|
"navds-loader--transparent": transparent,
|
|
20
20
|
}), focusable: "false", viewBox: "0 0 50 50", preserveAspectRatio: "xMidYMid" }, rest),
|
|
21
21
|
React.createElement("title", { id: id !== null && id !== void 0 ? id : `loader-${internalId}` }, title),
|
package/esm/loader/Loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../src/loader/Loader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAY,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAyB3B,MAAM,MAAM,GAAG,UAAU,CACvB,CACE,EASC,EACD,GAAG,EACH,EAAE;QAXF,EACE,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,WAAW,EACnB,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,SAAS,EACnB,EAAE,OAEH,EADI,IAAI,cART,0EASC,CADQ;IAIT,MAAM,UAAU,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../src/loader/Loader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAY,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAyB3B,MAAM,MAAM,GAAG,UAAU,CACvB,CACE,EASC,EACD,GAAG,EACH,EAAE;QAXF,EACE,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,WAAW,EACnB,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,SAAS,EACnB,EAAE,OAEH,EADI,IAAI,cART,0EASC,CADQ;IAIT,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC;IAE3B,OAAO,CACL,8DACmB,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,UAAU,UAAU,EAAE,EAC7C,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,cAAc,EACd,SAAS,EACT,iBAAiB,IAAI,EAAE,EACvB,iBAAiB,OAAO,EAAE,EAC1B;YACE,2BAA2B,EAAE,WAAW;SACzC,CACF,EACD,SAAS,EAAC,OAAO,EACjB,OAAO,EAAC,WAAW,EACnB,mBAAmB,EAAC,UAAU,IAC1B,IAAI;QAER,+BAAO,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,UAAU,UAAU,EAAE,IAAG,KAAK,CAAS;QACxD,gCACE,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAC,4BAA4B,EAClC,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,IAAI,EACN,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,GAAG,GACf;QACF,gCACE,SAAS,EAAC,0BAA0B,EACpC,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,IAAI,EACN,MAAM,EAAE,4BAA4B,EACpC,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,GAAG,EACf,eAAe,EAAC,QAAQ,EACxB,aAAa,EAAC,OAAO,GACrB,CACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/esm/popover/Popover.js
CHANGED
|
@@ -59,7 +59,7 @@ const Popover = forwardRef((_a, ref) => {
|
|
|
59
59
|
}, [open, update]);
|
|
60
60
|
return (React.createElement("div", Object.assign({ ref: mergedRef, className: cl("navds-popover", className, {
|
|
61
61
|
"navds-popover--hidden": !open || !anchorEl,
|
|
62
|
-
}), "aria-
|
|
62
|
+
}), "aria-hidden": !open || !anchorEl, tabIndex: -1 }, attributes.popper, rest, { style: styles.popper }),
|
|
63
63
|
children,
|
|
64
64
|
arrow && (React.createElement("div", { "data-popper-arrow": true, style: styles.arrow, className: "navds-popover__arrow" }))));
|
|
65
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/popover/Popover.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/popover/Popover.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": "0.11.
|
|
3
|
+
"version": "0.11.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "NAV designsystem react components",
|
|
6
6
|
"author": "NAV Designsystem team",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"react": "^16.8.0 || ^17.0.0"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "ed937f68c5babb709de0e5e2657a95e3b9117138"
|
|
67
67
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import cl from "classnames";
|
|
2
2
|
import React, { forwardRef, useContext } from "react";
|
|
3
3
|
import { Collapse, UnmountClosed } from "react-collapse";
|
|
4
|
-
import { useClientLayoutEffect, useId } from "../util";
|
|
5
4
|
import { AccordionItemContext } from "./AccordionItem";
|
|
6
5
|
|
|
7
6
|
export interface AccordionContentProps
|
|
@@ -20,13 +19,6 @@ const AccordionContent: AccordionContentType = forwardRef(
|
|
|
20
19
|
({ children, className, id, ...rest }, ref) => {
|
|
21
20
|
const context = useContext(AccordionItemContext);
|
|
22
21
|
|
|
23
|
-
const newId = useId(id);
|
|
24
|
-
const setContentId = context && context.setContentId;
|
|
25
|
-
|
|
26
|
-
useClientLayoutEffect(() => {
|
|
27
|
-
setContentId && setContentId(id ? newId : `accordionContent-${newId}`);
|
|
28
|
-
}, [setContentId, newId]);
|
|
29
|
-
|
|
30
22
|
if (context === null) {
|
|
31
23
|
console.error(
|
|
32
24
|
"<Accordion.Content> has to be used within an <Accordion.Item>"
|
|
@@ -39,13 +31,7 @@ const AccordionContent: AccordionContentType = forwardRef(
|
|
|
39
31
|
: UnmountClosed;
|
|
40
32
|
|
|
41
33
|
return (
|
|
42
|
-
<div
|
|
43
|
-
ref={ref}
|
|
44
|
-
id={context.contentId}
|
|
45
|
-
role="region"
|
|
46
|
-
aria-labelledby={context.buttonId}
|
|
47
|
-
{...rest}
|
|
48
|
-
>
|
|
34
|
+
<div ref={ref} role="region" aria-labelledby={context.buttonId} {...rest}>
|
|
49
35
|
<CollapseComponent isOpened={context.open}>
|
|
50
36
|
<div className={cl("navds-accordion__content", className)}>
|
|
51
37
|
{children}
|
|
@@ -32,9 +32,7 @@ export interface AccordionItemContextProps {
|
|
|
32
32
|
open: boolean;
|
|
33
33
|
toggleOpen: () => void;
|
|
34
34
|
setButtonId: (id: string) => void;
|
|
35
|
-
setContentId: (id: string) => void;
|
|
36
35
|
buttonId: string;
|
|
37
|
-
contentId: string;
|
|
38
36
|
renderContentWhenClosed: boolean;
|
|
39
37
|
}
|
|
40
38
|
|
|
@@ -58,7 +56,6 @@ const AccordionItem: AccordionItemType = forwardRef(
|
|
|
58
56
|
) => {
|
|
59
57
|
const [internalOpen, setInternalOpen] = useState<boolean>(defaultOpen);
|
|
60
58
|
const [buttonId, setButtonId] = useState("");
|
|
61
|
-
const [contentId, setContentId] = useState("");
|
|
62
59
|
|
|
63
60
|
return (
|
|
64
61
|
<div
|
|
@@ -79,8 +76,6 @@ const AccordionItem: AccordionItemType = forwardRef(
|
|
|
79
76
|
renderContentWhenClosed,
|
|
80
77
|
setButtonId,
|
|
81
78
|
buttonId,
|
|
82
|
-
setContentId,
|
|
83
|
-
contentId,
|
|
84
79
|
}}
|
|
85
80
|
>
|
|
86
81
|
{children}
|
|
@@ -4,6 +4,8 @@ import userEvent from "@testing-library/user-event";
|
|
|
4
4
|
import faker from "faker";
|
|
5
5
|
import { Checkbox, CheckboxGroup } from ".";
|
|
6
6
|
|
|
7
|
+
const firstArgumentOfFirstCall = (fn: jest.Mock) => fn.mock.calls[0][0];
|
|
8
|
+
|
|
7
9
|
test("checkbox group chains onChange calls", () => {
|
|
8
10
|
const onGroupChange = jest.fn();
|
|
9
11
|
const onChange = jest.fn();
|
|
@@ -26,4 +28,61 @@ test("checkbox group chains onChange calls", () => {
|
|
|
26
28
|
expect(firstArgumentOfFirstCall(onChange).target.checked).toBe(true);
|
|
27
29
|
});
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
describe("Checkbox handles controlled-state correctly", () => {
|
|
32
|
+
const CheckboxComponent = ({
|
|
33
|
+
onChange = () => null,
|
|
34
|
+
value,
|
|
35
|
+
}) => (
|
|
36
|
+
<CheckboxGroup legend="legend" onChange={onChange} value={value}>
|
|
37
|
+
<Checkbox value={"value1"}>label1</Checkbox>
|
|
38
|
+
<Checkbox value={"value2"}>label2</Checkbox>
|
|
39
|
+
</CheckboxGroup>
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
test("Checkbox is still checked after click when controlled", () => {
|
|
43
|
+
render(<CheckboxComponent value={["value1", "value2"]} />);
|
|
44
|
+
userEvent.click(screen.getByLabelText("label1"));
|
|
45
|
+
userEvent.click(screen.getByLabelText("label2"));
|
|
46
|
+
|
|
47
|
+
expect((screen.getByLabelText("label1") as HTMLInputElement).checked).toBe(
|
|
48
|
+
true
|
|
49
|
+
);
|
|
50
|
+
expect((screen.getByLabelText("label2") as HTMLInputElement).checked).toBe(
|
|
51
|
+
true
|
|
52
|
+
);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test("onChange called with expected values", () => {
|
|
56
|
+
const onGroupChange = jest.fn();
|
|
57
|
+
|
|
58
|
+
render(<CheckboxComponent onChange={onGroupChange} value={["value1", "value2"]} />);
|
|
59
|
+
|
|
60
|
+
userEvent.click(screen.getByLabelText("label1"));
|
|
61
|
+
|
|
62
|
+
expect(onGroupChange).lastCalledWith(["value2"]);
|
|
63
|
+
|
|
64
|
+
userEvent.click(screen.getByLabelText("label2"));
|
|
65
|
+
|
|
66
|
+
expect(onGroupChange).lastCalledWith(["value1"]);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test("Checkboxes updates after value-prop change", () => {
|
|
70
|
+
const { rerender } = render(<CheckboxComponent value={[]} />);
|
|
71
|
+
|
|
72
|
+
expect((screen.getByLabelText("label1") as HTMLInputElement).checked).toBe(
|
|
73
|
+
false
|
|
74
|
+
);
|
|
75
|
+
expect((screen.getByLabelText("label2") as HTMLInputElement).checked).toBe(
|
|
76
|
+
false
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
rerender(<CheckboxComponent value={["value1", "value2"]} />);
|
|
80
|
+
|
|
81
|
+
expect((screen.getByLabelText("label1") as HTMLInputElement).checked).toBe(
|
|
82
|
+
true
|
|
83
|
+
);
|
|
84
|
+
expect((screen.getByLabelText("label2") as HTMLInputElement).checked).toBe(
|
|
85
|
+
true
|
|
86
|
+
);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React, { createContext, forwardRef, useContext } from "react";
|
|
1
|
+
import React, { createContext, forwardRef, useContext, useState } from "react";
|
|
2
2
|
import cl from "classnames";
|
|
3
3
|
import { Fieldset, FieldsetProps, FieldsetContext } from "..";
|
|
4
4
|
|
|
5
5
|
export interface CheckboxGroupState {
|
|
6
|
-
readonly defaultValue
|
|
6
|
+
readonly defaultValue?: readonly string[];
|
|
7
7
|
readonly value?: readonly string[];
|
|
8
8
|
toggleValue(value: string): void;
|
|
9
9
|
}
|
|
@@ -33,20 +33,23 @@ export interface CheckboxGroupProps extends Omit<FieldsetProps, "onChange"> {
|
|
|
33
33
|
|
|
34
34
|
const CheckboxGroup = forwardRef<HTMLFieldSetElement, CheckboxGroupProps>(
|
|
35
35
|
(
|
|
36
|
-
{
|
|
37
|
-
value,
|
|
38
|
-
defaultValue = [],
|
|
39
|
-
onChange = () => {},
|
|
40
|
-
children,
|
|
41
|
-
className,
|
|
42
|
-
...rest
|
|
43
|
-
},
|
|
36
|
+
{ value, defaultValue, onChange = () => {}, children, className, ...rest },
|
|
44
37
|
ref
|
|
45
38
|
) => {
|
|
46
|
-
const state = value ?? [];
|
|
47
|
-
|
|
48
39
|
const fieldset = useContext(FieldsetContext);
|
|
49
40
|
|
|
41
|
+
const [state, setState] = useState<string[]>([]);
|
|
42
|
+
|
|
43
|
+
const handleChange = (v: string) => {
|
|
44
|
+
const newValue = value ? value : state;
|
|
45
|
+
const newState = newValue.includes(v)
|
|
46
|
+
? newValue.filter((x) => x !== v)
|
|
47
|
+
: [...newValue, v];
|
|
48
|
+
|
|
49
|
+
value === undefined && setState(newState);
|
|
50
|
+
onChange(newState);
|
|
51
|
+
};
|
|
52
|
+
|
|
50
53
|
return (
|
|
51
54
|
<Fieldset
|
|
52
55
|
{...rest}
|
|
@@ -61,12 +64,7 @@ const CheckboxGroup = forwardRef<HTMLFieldSetElement, CheckboxGroupProps>(
|
|
|
61
64
|
value={{
|
|
62
65
|
value,
|
|
63
66
|
defaultValue,
|
|
64
|
-
toggleValue: (value: string) =>
|
|
65
|
-
onChange(
|
|
66
|
-
state.includes(value)
|
|
67
|
-
? state.filter((v) => v !== value)
|
|
68
|
-
: [...state, value]
|
|
69
|
-
),
|
|
67
|
+
toggleValue: (value: string) => handleChange(value),
|
|
70
68
|
}}
|
|
71
69
|
>
|
|
72
70
|
<div className="navds-checkboxes">{children}</div>
|
|
@@ -32,7 +32,7 @@ const useCheckbox = ({ children, ...props }: CheckboxProps) => {
|
|
|
32
32
|
checked: checkboxGroup?.value
|
|
33
33
|
? checkboxGroup.value.includes(props.value as string)
|
|
34
34
|
: props.checked,
|
|
35
|
-
defaultChecked: checkboxGroup
|
|
35
|
+
defaultChecked: checkboxGroup?.defaultValue
|
|
36
36
|
? checkboxGroup.defaultValue.includes(props.value as string)
|
|
37
37
|
: props.defaultChecked,
|
|
38
38
|
onChange: (e) => {
|
|
@@ -3,7 +3,7 @@ import { Placement } from "@popperjs/core";
|
|
|
3
3
|
import cl from "classnames";
|
|
4
4
|
import React, { forwardRef, useEffect, useRef, useState } from "react";
|
|
5
5
|
import mergeRefs from "react-merge-refs";
|
|
6
|
-
import { Popover
|
|
6
|
+
import { Popover } from "..";
|
|
7
7
|
|
|
8
8
|
export interface HelpTextProps
|
|
9
9
|
extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
@@ -29,7 +29,6 @@ const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
|
|
|
29
29
|
const wrapperRef = useRef<HTMLDivElement | null>(null);
|
|
30
30
|
|
|
31
31
|
const [open, setOpen] = useState(false);
|
|
32
|
-
const popoverId = `popover-${useId()}`;
|
|
33
32
|
|
|
34
33
|
useEffect(() => {
|
|
35
34
|
open && popoverRef.current?.focus();
|
|
@@ -51,7 +50,6 @@ const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
|
|
|
51
50
|
className={cl(className, "navds-help-text__button")}
|
|
52
51
|
type="button"
|
|
53
52
|
aria-expanded={open}
|
|
54
|
-
aria-controls={popoverId}
|
|
55
53
|
aria-haspopup="dialog"
|
|
56
54
|
title={title}
|
|
57
55
|
>
|
|
@@ -65,7 +63,6 @@ const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
|
|
|
65
63
|
open={open}
|
|
66
64
|
role="tooltip"
|
|
67
65
|
anchorEl={buttonRef.current}
|
|
68
|
-
id={popoverId}
|
|
69
66
|
placement={placement}
|
|
70
67
|
>
|
|
71
68
|
<Popover.Content>{children}</Popover.Content>
|
package/src/loader/Loader.tsx
CHANGED
|
@@ -39,11 +39,11 @@ const Loader = forwardRef<SVGSVGElement, LoaderProps>(
|
|
|
39
39
|
},
|
|
40
40
|
ref
|
|
41
41
|
) => {
|
|
42
|
-
const internalId = useId(
|
|
42
|
+
const internalId = useId();
|
|
43
43
|
|
|
44
44
|
return (
|
|
45
45
|
<svg
|
|
46
|
-
aria-labelledby={internalId}
|
|
46
|
+
aria-labelledby={id ?? `loader-${internalId}`}
|
|
47
47
|
ref={ref}
|
|
48
48
|
className={cl(
|
|
49
49
|
"navds-loader",
|
package/src/popover/Popover.tsx
CHANGED
|
@@ -150,7 +150,6 @@ const Popover = forwardRef<HTMLDivElement, PopoverProps>(
|
|
|
150
150
|
className={cl("navds-popover", className, {
|
|
151
151
|
"navds-popover--hidden": !open || !anchorEl,
|
|
152
152
|
})}
|
|
153
|
-
aria-live="polite"
|
|
154
153
|
aria-hidden={!open || !anchorEl}
|
|
155
154
|
tabIndex={-1}
|
|
156
155
|
{...attributes.popper}
|