@navikt/ds-react 4.12.1 → 5.0.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 +101 -127
- package/cjs/date/datepicker/DatePicker.js +1 -1
- package/cjs/date/hooks/useEscape.js +6 -1
- package/cjs/modal/Modal.js +85 -46
- package/cjs/modal/{ModalContent.js → ModalBody.js} +3 -3
- package/cjs/modal/ModalContext.js +8 -0
- package/cjs/modal/ModalFooter.js +46 -0
- package/cjs/modal/ModalHeader.js +56 -0
- package/cjs/modal/ModalUtils.js +40 -0
- package/cjs/modal/dialog-polyfill.js +833 -0
- package/cjs/popover/Popover.js +5 -2
- package/cjs/table/DataCell.js +1 -3
- package/cjs/table/ExpandableRow.js +2 -1
- package/cjs/table/HeaderCell.js +1 -4
- package/cjs/table/Table.js +1 -1
- package/esm/date/datepicker/DatePicker.d.ts +2 -2
- package/esm/date/datepicker/DatePicker.js +1 -1
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/hooks/useEscape.d.ts +2 -1
- package/esm/date/hooks/useEscape.js +6 -1
- package/esm/date/hooks/useEscape.js.map +1 -1
- package/esm/modal/Modal.d.ts +76 -51
- package/esm/modal/Modal.js +87 -48
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/ModalBody.d.ts +6 -0
- package/esm/modal/{ModalContent.js → ModalBody.js} +4 -4
- package/esm/modal/ModalBody.js.map +1 -0
- package/esm/modal/ModalContext.d.ts +6 -0
- package/esm/modal/ModalContext.js +3 -0
- package/esm/modal/ModalContext.js.map +1 -0
- package/esm/modal/ModalFooter.d.ts +6 -0
- package/esm/modal/ModalFooter.js +19 -0
- package/esm/modal/ModalFooter.js.map +1 -0
- package/esm/modal/ModalHeader.d.ts +11 -0
- package/esm/modal/ModalHeader.js +29 -0
- package/esm/modal/ModalHeader.js.map +1 -0
- package/esm/modal/ModalUtils.d.ts +4 -0
- package/esm/modal/ModalUtils.js +33 -0
- package/esm/modal/ModalUtils.js.map +1 -0
- package/esm/modal/dialog-polyfill.d.ts +5 -0
- package/esm/modal/dialog-polyfill.js +832 -0
- package/esm/modal/dialog-polyfill.js.map +1 -0
- package/esm/modal/index.d.ts +3 -1
- package/esm/popover/Popover.js +6 -3
- package/esm/popover/Popover.js.map +1 -1
- package/esm/provider/Provider.d.ts +1 -6
- package/esm/provider/Provider.js.map +1 -1
- package/esm/table/DataCell.js +2 -4
- package/esm/table/DataCell.js.map +1 -1
- package/esm/table/ExpandableRow.js +2 -1
- package/esm/table/ExpandableRow.js.map +1 -1
- package/esm/table/HeaderCell.js +1 -4
- package/esm/table/HeaderCell.js.map +1 -1
- package/esm/table/Table.d.ts +2 -3
- package/esm/table/Table.js +1 -1
- package/esm/table/Table.js.map +1 -1
- package/package.json +3 -5
- package/src/date/datepicker/DatePicker.tsx +3 -3
- package/src/date/hooks/useEscape.tsx +8 -3
- package/src/modal/Modal.tsx +171 -121
- package/src/modal/ModalBody.tsx +14 -0
- package/src/modal/ModalContext.ts +6 -0
- package/src/modal/ModalFooter.tsx +14 -0
- package/src/modal/ModalHeader.tsx +42 -0
- package/src/modal/ModalUtils.ts +37 -0
- package/src/modal/dialog-polyfill.ts +980 -0
- package/src/modal/index.ts +3 -1
- package/src/modal/modal.stories.tsx +142 -59
- package/src/popover/Popover.tsx +6 -2
- package/src/provider/Provider.tsx +1 -6
- package/src/table/DataCell.tsx +1 -5
- package/src/table/ExpandableRow.tsx +2 -1
- package/src/table/HeaderCell.tsx +1 -5
- package/src/table/Table.tsx +3 -4
- package/src/table/stories/table-expandable.stories.tsx +37 -1
- package/src/table/stories/table.stories.tsx +4 -1
- package/esm/modal/ModalContent.d.ts +0 -10
- package/esm/modal/ModalContent.js.map +0 -1
- package/src/modal/ModalContent.tsx +0 -26
|
@@ -0,0 +1,29 @@
|
|
|
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 React, { forwardRef, useContext } from "react";
|
|
13
|
+
import cl from "clsx";
|
|
14
|
+
import { XMarkIcon } from "@navikt/aksel-icons";
|
|
15
|
+
import { Button } from "../button";
|
|
16
|
+
import { ModalContext } from "./ModalContext";
|
|
17
|
+
const ModalHeader = forwardRef((_a, ref) => {
|
|
18
|
+
var { children, className, closeButton = true } = _a, rest = __rest(_a, ["children", "className", "closeButton"]);
|
|
19
|
+
const context = useContext(ModalContext);
|
|
20
|
+
if (context === null) {
|
|
21
|
+
console.error("<Modal.Header> has to be used within a <Modal>");
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return (React.createElement("div", Object.assign({}, rest, { ref: ref, className: cl("navds-modal__header", className) }),
|
|
25
|
+
context.closeHandler && closeButton && (React.createElement(Button, { type: "button", className: "navds-modal__button", size: "small", variant: "tertiary-neutral", onClick: context.closeHandler, icon: React.createElement(XMarkIcon, { title: "Lukk modalvindu" }) })),
|
|
26
|
+
children));
|
|
27
|
+
});
|
|
28
|
+
export default ModalHeader;
|
|
29
|
+
//# sourceMappingURL=ModalHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalHeader.js","sourceRoot":"","sources":["../../src/modal/ModalHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAW9C,MAAM,WAAW,GAAG,UAAU,CAC5B,CAAC,EAAoD,EAAE,GAAG,EAAE,EAAE;QAA7D,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,OAAW,EAAN,IAAI,cAAlD,wCAAoD,CAAF;IACjD,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,6CAAS,IAAI,IAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC;QACrE,OAAO,CAAC,YAAY,IAAI,WAAW,IAAI,CACtC,oBAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,kBAAkB,EAC1B,OAAO,EAAE,OAAO,CAAC,YAAY,EAC7B,IAAI,EAAE,oBAAC,SAAS,IAAC,KAAK,EAAC,iBAAiB,GAAG,GAC3C,CACH;QACA,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ModalProps } from "./Modal";
|
|
3
|
+
export declare function getCloseHandler(modalRef: React.RefObject<HTMLDialogElement>, header: ModalProps["header"], onBeforeClose: ModalProps["onBeforeClose"]): (() => false | void | undefined) | undefined;
|
|
4
|
+
export declare function useBodyScrollLock(modalRef: React.RefObject<HTMLDialogElement>, bodyClass: string): void;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export function getCloseHandler(modalRef, header, onBeforeClose) {
|
|
3
|
+
if (header && header.closeButton === false)
|
|
4
|
+
return undefined;
|
|
5
|
+
if (onBeforeClose) {
|
|
6
|
+
return () => { var _a; return onBeforeClose() !== false && ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.close()); };
|
|
7
|
+
}
|
|
8
|
+
return () => { var _a; return (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.close(); };
|
|
9
|
+
}
|
|
10
|
+
export function useBodyScrollLock(modalRef, bodyClass) {
|
|
11
|
+
React.useEffect(() => {
|
|
12
|
+
if (!modalRef.current)
|
|
13
|
+
return;
|
|
14
|
+
if (modalRef.current.open)
|
|
15
|
+
document.body.classList.add(bodyClass); // In case `open` is true initially
|
|
16
|
+
const observer = new MutationObserver(() => {
|
|
17
|
+
var _a;
|
|
18
|
+
if ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.open)
|
|
19
|
+
document.body.classList.add(bodyClass);
|
|
20
|
+
else
|
|
21
|
+
document.body.classList.remove(bodyClass);
|
|
22
|
+
});
|
|
23
|
+
observer.observe(modalRef.current, {
|
|
24
|
+
attributes: true,
|
|
25
|
+
attributeFilter: ["open"],
|
|
26
|
+
});
|
|
27
|
+
return () => {
|
|
28
|
+
observer.disconnect();
|
|
29
|
+
document.body.classList.remove(bodyClass); // In case modal is unmounted before it's closed
|
|
30
|
+
};
|
|
31
|
+
}, [modalRef, bodyClass]);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ModalUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalUtils.js","sourceRoot":"","sources":["../../src/modal/ModalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,UAAU,eAAe,CAC7B,QAA4C,EAC5C,MAA4B,EAC5B,aAA0C;IAE1C,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,aAAa,EAAE;QACjB,OAAO,GAAG,EAAE,WAAC,OAAA,aAAa,EAAE,KAAK,KAAK,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,CAAA,EAAA,CAAC;KACrE;IACD,OAAO,GAAG,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAA4C,EAC5C,SAAiB;IAEjB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QAC9B,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,mCAAmC;QAEtG,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;;YACzC,IAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;gBAC9D,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,MAAM,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,gDAAgD;QAC7F,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5B,CAAC"}
|