@navikt/ds-react 7.24.0 → 7.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/chat/Chat.js +4 -3
- package/cjs/chat/Chat.js.map +1 -1
- package/cjs/form/file-upload/parts/item/Item.d.ts +1 -1
- package/cjs/form/file-upload/parts/item/Item.js +10 -2
- package/cjs/form/file-upload/parts/item/Item.js.map +1 -1
- package/cjs/form/search/Search.js +5 -3
- package/cjs/form/search/Search.js.map +1 -1
- package/cjs/modal/ModalUtils.d.ts +2 -1
- package/cjs/modal/ModalUtils.js +21 -12
- package/cjs/modal/ModalUtils.js.map +1 -1
- package/esm/chat/Chat.js +4 -3
- package/esm/chat/Chat.js.map +1 -1
- package/esm/form/file-upload/parts/item/Item.d.ts +1 -1
- package/esm/form/file-upload/parts/item/Item.js +10 -2
- package/esm/form/file-upload/parts/item/Item.js.map +1 -1
- package/esm/form/search/Search.js +5 -3
- package/esm/form/search/Search.js.map +1 -1
- package/esm/modal/ModalUtils.d.ts +2 -1
- package/esm/modal/ModalUtils.js +20 -11
- package/esm/modal/ModalUtils.js.map +1 -1
- package/package.json +3 -3
- package/src/chat/Chat.tsx +15 -13
- package/src/form/file-upload/parts/item/Item.tsx +20 -6
- package/src/form/search/Search.tsx +5 -1
- package/src/modal/Modal.test.tsx +12 -4
- package/src/modal/ModalUtils.ts +24 -7
package/cjs/chat/Chat.js
CHANGED
|
@@ -77,10 +77,11 @@ exports.Chat = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
77
77
|
const { cn } = (0, Theme_1.useRenameCSS)();
|
|
78
78
|
return (react_1.default.createElement("div", Object.assign({ ref: ref, className: cn("navds-chat", className, `navds-chat--${position}`, `navds-chat--top-text-${toptextPosition !== null && toptextPosition !== void 0 ? toptextPosition : position}`, `navds-chat--${size}`, `navds-chat--${variant}`), "data-color": color !== null && color !== void 0 ? color : variantToColor(variant) }, rest, { "data-variant": variant }),
|
|
79
79
|
avatar && (react_1.default.createElement("div", { className: cn("navds-chat__avatar"), "aria-hidden": true }, avatar)),
|
|
80
|
-
react_1.default.createElement("
|
|
81
|
-
if (react_1.default.isValidElement(child)) {
|
|
82
|
-
return
|
|
80
|
+
react_1.default.createElement(typography_1.BodyLong, { as: "div", size: size, className: cn("navds-chat__bubble-wrapper") }, react_1.default.Children.map(children, (child, i) => {
|
|
81
|
+
if (!react_1.default.isValidElement(child)) {
|
|
82
|
+
return null;
|
|
83
83
|
}
|
|
84
|
+
return react_1.default.cloneElement(child, Object.assign({ name: name && i === 0 ? name : undefined, timestamp: timestamp && i === 0 ? timestamp : undefined, toptextHeadingLevel }, child.props));
|
|
84
85
|
}))));
|
|
85
86
|
});
|
|
86
87
|
function variantToColor(variant) {
|
package/cjs/chat/Chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0D;AAC1D,0CAA8C;AAE9C,8CAAuD;AACvD,sDAA8B;AAEjB,QAAA,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAClD,QAAA,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACvC,QAAA,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AA2DlD;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,IAAI,GAAG,IAAA,kBAAU,EAC5B,CACE,EAaY,EACZ,GAAG,EACH,EAAE;QAfF,EACE,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,OAAO,GAAG,SAAS,EACnB,eAAe,EACf,IAAI,GAAG,QAAQ,EACf,mBAAmB,GAAG,GAAG,EACzB,YAAY,EAAE,KAAK,OAET,EADP,IAAI,cAZT,+IAaC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAE9B,OAAO,CACL,qDACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,YAAY,EACZ,SAAS,EACT,eAAe,QAAQ,EAAE,EACzB,wBAAwB,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,QAAQ,EAAE,EACrD,eAAe,IAAI,EAAE,EACrB,eAAe,OAAO,EAAE,CACzB,gBACW,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,cAAc,CAAC,OAAO,CAAC,IACxC,IAAI,oBACM,OAAO;QAEpB,MAAM,IAAI,CACT,uCAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,yBACrC,MAAM,CACH,CACP;QACD,
|
|
1
|
+
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0D;AAC1D,0CAA8C;AAE9C,8CAAuD;AACvD,sDAA8B;AAEjB,QAAA,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAClD,QAAA,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACvC,QAAA,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AA2DlD;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,IAAI,GAAG,IAAA,kBAAU,EAC5B,CACE,EAaY,EACZ,GAAG,EACH,EAAE;QAfF,EACE,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,OAAO,GAAG,SAAS,EACnB,eAAe,EACf,IAAI,GAAG,QAAQ,EACf,mBAAmB,GAAG,GAAG,EACzB,YAAY,EAAE,KAAK,OAET,EADP,IAAI,cAZT,+IAaC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAE9B,OAAO,CACL,qDACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,YAAY,EACZ,SAAS,EACT,eAAe,QAAQ,EAAE,EACzB,wBAAwB,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,QAAQ,EAAE,EACrD,eAAe,IAAI,EAAE,EACrB,eAAe,OAAO,EAAE,CACzB,gBACW,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,cAAc,CAAC,OAAO,CAAC,IACxC,IAAI,oBACM,OAAO;QAEpB,MAAM,IAAI,CACT,uCAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,yBACrC,MAAM,CACH,CACP;QACD,8BAAC,qBAAQ,IACP,EAAE,EAAC,KAAK,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAE1C,eAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,eAAK,CAAC,YAAY,CAAC,KAAK,kBAC7B,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACxC,SAAS,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACvD,mBAAmB,IAChB,KAAK,CAAC,KAAK,EACd,CAAC;QACL,CAAC,CAAC,CACO,CACP,CACP,CAAC;AACJ,CAAC,CACe,CAAC;AAEnB,SAAS,cAAc,CAAC,OAA6B;IACnD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,YAAI,CAAC,MAAM,GAAG,gBAAM,CAAC;AAErB,kBAAe,YAAI,CAAC"}
|
|
@@ -45,7 +45,7 @@ export interface FileUploadItemProps extends React.HTMLAttributes<HTMLDivElement
|
|
|
45
45
|
action: "delete" | "retry";
|
|
46
46
|
onClick: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
47
47
|
id?: string;
|
|
48
|
-
};
|
|
48
|
+
} | React.ReactNode;
|
|
49
49
|
/**
|
|
50
50
|
* i18n-API for customizing texts and labels
|
|
51
51
|
*/
|
|
@@ -49,6 +49,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
50
|
exports.Item = void 0;
|
|
51
51
|
const react_1 = __importStar(require("react"));
|
|
52
|
+
const stack_1 = require("../../../../layout/stack");
|
|
52
53
|
const Theme_1 = require("../../../../theme/Theme");
|
|
53
54
|
const typography_1 = require("../../../../typography");
|
|
54
55
|
const i18n_hooks_1 = require("../../../../util/i18n/i18n.hooks");
|
|
@@ -72,6 +73,8 @@ exports.Item = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
72
73
|
}
|
|
73
74
|
return description !== null && description !== void 0 ? description : (0, format_file_size_1.formatFileSize)(file);
|
|
74
75
|
}
|
|
76
|
+
const renderButton = status === "idle" && button;
|
|
77
|
+
const renderCustomButton = isCustomButton(button);
|
|
75
78
|
return (react_1.default.createElement(Component, Object.assign({ ref: ref }, rest, { className: cn("navds-file-item", className, {
|
|
76
79
|
"navds-file-item--error": showError,
|
|
77
80
|
}) }),
|
|
@@ -81,9 +84,14 @@ exports.Item = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
81
84
|
react_1.default.createElement(ItemName_1.default, { file: file, href: href, onClick: onFileClick }),
|
|
82
85
|
react_1.default.createElement(typography_1.BodyShort, { as: "div", size: "small" }, getStatusText()),
|
|
83
86
|
react_1.default.createElement("div", { className: cn("navds-file-item__error"), "aria-relevant": "additions removals", "aria-live": "polite" }, showError && (react_1.default.createElement(typography_1.ErrorMessage, { size: "small", showIcon: true }, error)))),
|
|
84
|
-
|
|
87
|
+
renderButton && react_1.default.createElement(stack_1.Spacer, null),
|
|
88
|
+
renderButton && !renderCustomButton && (react_1.default.createElement(ItemButton_1.default, Object.assign({}, button, { title: translate(button.action === "retry"
|
|
85
89
|
? "item.retryButtonTitle"
|
|
86
|
-
: "item.deleteButtonTitle") })))
|
|
90
|
+
: "item.deleteButtonTitle") }))),
|
|
91
|
+
renderButton && renderCustomButton && button)));
|
|
87
92
|
});
|
|
93
|
+
function isCustomButton(button) {
|
|
94
|
+
return react_1.default.isValidElement(button);
|
|
95
|
+
}
|
|
88
96
|
exports.default = exports.Item;
|
|
89
97
|
//# sourceMappingURL=Item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../../src/form/file-upload/parts/item/Item.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsD;AACtD,mDAAuD;AACvD,uDAAiE;AAEjE,iEAA2D;AAE3D,iEAAoE;AAEpE,8DAAsC;AACtC,0DAAkC;AAClC,0DAAkC;AAClC,+DAA0D;
|
|
1
|
+
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../../src/form/file-upload/parts/item/Item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@ const context_1 = require("./context");
|
|
|
74
74
|
*/
|
|
75
75
|
exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
76
76
|
const { inputProps, size = "medium", inputDescriptionId, errorId, showErrorMsg, hasError, } = (0, useFormField_1.useFormField)(props, "searchfield");
|
|
77
|
-
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"]);
|
|
77
|
+
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange, onSearchClick, htmlSize, "data-color": dataColor } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange", "onSearchClick", "htmlSize", "data-color"]);
|
|
78
78
|
const { cn } = (0, Theme_1.useRenameCSS)();
|
|
79
79
|
const searchRef = (0, react_1.useRef)(null);
|
|
80
80
|
const mergedRef = (0, useMergeRefs_1.useMergeRefs)(searchRef, ref);
|
|
@@ -106,7 +106,7 @@ exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
|
106
106
|
"navds-search--error": hasError,
|
|
107
107
|
"navds-search--disabled": inputProps.disabled,
|
|
108
108
|
"navds-search--with-size": htmlSize,
|
|
109
|
-
}) },
|
|
109
|
+
}), "data-color": dataColor },
|
|
110
110
|
react_1.default.createElement(typography_1.Label, { htmlFor: inputProps.id, size: size, className: cn("navds-form-field__label", {
|
|
111
111
|
"navds-sr-only": hideLabel,
|
|
112
112
|
}) }, label),
|
|
@@ -123,7 +123,9 @@ exports.Search = (0, react_1.forwardRef)((props, ref) => {
|
|
|
123
123
|
disabled: inputProps.disabled,
|
|
124
124
|
variant,
|
|
125
125
|
handleClick,
|
|
126
|
-
} }, children
|
|
126
|
+
} }, children
|
|
127
|
+
? children
|
|
128
|
+
: variant !== "simple" && react_1.default.createElement(SearchButton_1.default, { "data-color": dataColor }))),
|
|
127
129
|
react_1.default.createElement("div", { className: cn("navds-form-field__error"), id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && (react_1.default.createElement(typography_1.ErrorMessage, { size: size, showIcon: true }, props.error)))));
|
|
128
130
|
});
|
|
129
131
|
function ClearButton({ size, clearButtonLabel, handleClear, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAKe;AACf,qDAAqE;AACrE,yCAAsC;AACtC,6CAAmE;AACnE,iDAAkE;AAClE,qCAAkC;AAClC,gEAA6D;AAC7D,2DAAqD;AACrD,kDAA+D;AAC/D,kEAAgE;AAChE,uCAA0C;AAqE1C;;;;;;;;;;;;GAYG;AACU,QAAA,MAAM,GAAG,IAAA,kBAAU,EAC9B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,MAAM,EACJ,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,QAAQ,GACT,GAAG,IAAA,2BAAY,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEvC,MAAM,EACJ,SAAS,EACT,SAAS,GAAG,IAAI,EAChB,KAAK,EACL,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,WAAW,GAAG,IAAI,EAClB,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,QAAQ,
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,6 @@ export interface MouseCoordinates {
|
|
|
6
6
|
}
|
|
7
7
|
export declare const coordsAreInside: ({ clientX, clientY }: MouseCoordinates, { left, top, right, bottom }: DOMRect) => boolean;
|
|
8
8
|
export declare function getCloseHandler(modalRef: React.RefObject<HTMLDialogElement>, header: ModalProps["header"], onBeforeClose: ModalProps["onBeforeClose"]): (() => false | void | undefined) | undefined;
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const BODY_CLASS_LEGACY = "navds-modal__document-body";
|
|
10
|
+
export declare const BODY_CLASS = "aksel-modal__document-body";
|
|
10
11
|
export declare function useBodyScrollLock(modalRef: React.RefObject<HTMLDialogElement>, portalNode: HTMLElement | null, isNested: boolean): void;
|
package/cjs/modal/ModalUtils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BODY_CLASS = exports.coordsAreInside = void 0;
|
|
6
|
+
exports.BODY_CLASS = exports.BODY_CLASS_LEGACY = exports.coordsAreInside = void 0;
|
|
7
7
|
exports.getCloseHandler = getCloseHandler;
|
|
8
8
|
exports.useBodyScrollLock = useBodyScrollLock;
|
|
9
9
|
const react_1 = __importDefault(require("react"));
|
|
@@ -23,21 +23,29 @@ function getCloseHandler(modalRef, header, onBeforeClose) {
|
|
|
23
23
|
}
|
|
24
24
|
return () => { var _a; return (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.close(); };
|
|
25
25
|
}
|
|
26
|
-
exports.
|
|
26
|
+
exports.BODY_CLASS_LEGACY = "navds-modal__document-body";
|
|
27
|
+
exports.BODY_CLASS = "aksel-modal__document-body";
|
|
27
28
|
function useBodyScrollLock(modalRef, portalNode, isNested) {
|
|
28
29
|
react_1.default.useEffect(() => {
|
|
29
|
-
if (isNested)
|
|
30
|
+
if (isNested) {
|
|
30
31
|
return;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (modalRef.current
|
|
34
|
-
|
|
32
|
+
}
|
|
33
|
+
// We check both to avoid running this twice when not using portal
|
|
34
|
+
if (!modalRef.current || !portalNode) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// In case `open` is true initially
|
|
38
|
+
if (modalRef.current.open) {
|
|
39
|
+
document.body.classList.add(exports.BODY_CLASS, exports.BODY_CLASS_LEGACY);
|
|
40
|
+
}
|
|
35
41
|
const observer = new MutationObserver(() => {
|
|
36
42
|
var _a;
|
|
37
|
-
if ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.open)
|
|
38
|
-
document.body.classList.add(exports.BODY_CLASS);
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
if ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.open) {
|
|
44
|
+
document.body.classList.add(exports.BODY_CLASS, exports.BODY_CLASS_LEGACY);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
document.body.classList.remove(exports.BODY_CLASS, exports.BODY_CLASS_LEGACY);
|
|
48
|
+
}
|
|
41
49
|
});
|
|
42
50
|
observer.observe(modalRef.current, {
|
|
43
51
|
attributes: true,
|
|
@@ -45,7 +53,8 @@ function useBodyScrollLock(modalRef, portalNode, isNested) {
|
|
|
45
53
|
});
|
|
46
54
|
return () => {
|
|
47
55
|
observer.disconnect();
|
|
48
|
-
|
|
56
|
+
// In case modal is unmounted before it's closed
|
|
57
|
+
document.body.classList.remove(exports.BODY_CLASS, exports.BODY_CLASS_LEGACY);
|
|
49
58
|
};
|
|
50
59
|
}, [modalRef, portalNode, isNested]);
|
|
51
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalUtils.js","sourceRoot":"","sources":["../../src/modal/ModalUtils.ts"],"names":[],"mappings":";;;;;;AAiBA,0CAUC;
|
|
1
|
+
{"version":3,"file":"ModalUtils.js","sourceRoot":"","sources":["../../src/modal/ModalUtils.ts"],"names":[],"mappings":";;;;;;AAiBA,0CAUC;AAKD,8CAuCC;AAvED,kDAA0B;AAQnB,MAAM,eAAe,GAAG,CAC7B,EAAE,OAAO,EAAE,OAAO,EAAoB,EACtC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAW,EACrC,EAAE;IACF,IAAI,OAAO,GAAG,IAAI,IAAI,OAAO,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,OAAO,GAAG,KAAK,IAAI,OAAO,GAAG,MAAM;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B;AAEF,SAAgB,eAAe,CAC7B,QAA4C,EAC5C,MAA4B,EAC5B,aAA0C;IAE1C,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,GAAG,EAAE,WAAC,OAAA,aAAa,EAAE,KAAK,KAAK,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,CAAA,EAAA,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,CAAC;AACzC,CAAC;AAEY,QAAA,iBAAiB,GAAG,4BAA4B,CAAC;AACjD,QAAA,UAAU,GAAG,4BAA4B,CAAC;AAEvD,SAAgB,iBAAiB,CAC/B,QAA4C,EAC5C,UAA8B,EAC9B,QAAiB;IAEjB,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAU,EAAE,yBAAiB,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;;YACzC,IAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAU,EAAE,yBAAiB,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAU,EAAE,yBAAiB,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,MAAM,CAAC;SAC1B,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,gDAAgD;YAChD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAU,EAAE,yBAAiB,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
package/esm/chat/Chat.js
CHANGED
|
@@ -38,10 +38,11 @@ export const Chat = forwardRef((_a, ref) => {
|
|
|
38
38
|
const { cn } = useRenameCSS();
|
|
39
39
|
return (React.createElement("div", Object.assign({ ref: ref, className: cn("navds-chat", className, `navds-chat--${position}`, `navds-chat--top-text-${toptextPosition !== null && toptextPosition !== void 0 ? toptextPosition : position}`, `navds-chat--${size}`, `navds-chat--${variant}`), "data-color": color !== null && color !== void 0 ? color : variantToColor(variant) }, rest, { "data-variant": variant }),
|
|
40
40
|
avatar && (React.createElement("div", { className: cn("navds-chat__avatar"), "aria-hidden": true }, avatar)),
|
|
41
|
-
React.createElement("
|
|
42
|
-
if (React.isValidElement(child)) {
|
|
43
|
-
return
|
|
41
|
+
React.createElement(BodyLong, { as: "div", size: size, className: cn("navds-chat__bubble-wrapper") }, React.Children.map(children, (child, i) => {
|
|
42
|
+
if (!React.isValidElement(child)) {
|
|
43
|
+
return null;
|
|
44
44
|
}
|
|
45
|
+
return React.cloneElement(child, Object.assign({ name: name && i === 0 ? name : undefined, timestamp: timestamp && i === 0 ? timestamp : undefined, toptextHeadingLevel }, child.props));
|
|
45
46
|
}))));
|
|
46
47
|
});
|
|
47
48
|
function variantToColor(variant) {
|
package/esm/chat/Chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAgB,MAAM,eAAe,CAAC;AACvD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACpD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AA2DlD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CACE,EAaY,EACZ,GAAG,EACH,EAAE;QAfF,EACE,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,OAAO,GAAG,SAAS,EACnB,eAAe,EACf,IAAI,GAAG,QAAQ,EACf,mBAAmB,GAAG,GAAG,EACzB,YAAY,EAAE,KAAK,OAET,EADP,IAAI,cAZT,+IAaC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9B,OAAO,CACL,2CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,YAAY,EACZ,SAAS,EACT,eAAe,QAAQ,EAAE,EACzB,wBAAwB,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,QAAQ,EAAE,EACrD,eAAe,IAAI,EAAE,EACrB,eAAe,OAAO,EAAE,CACzB,gBACW,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,cAAc,CAAC,OAAO,CAAC,IACxC,IAAI,oBACM,OAAO;QAEpB,MAAM,IAAI,CACT,6BAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,yBACrC,MAAM,CACH,CACP;QACD,
|
|
1
|
+
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAgB,MAAM,eAAe,CAAC;AACvD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACpD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AA2DlD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CACE,EAaY,EACZ,GAAG,EACH,EAAE;QAfF,EACE,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,OAAO,GAAG,SAAS,EACnB,eAAe,EACf,IAAI,GAAG,QAAQ,EACf,mBAAmB,GAAG,GAAG,EACzB,YAAY,EAAE,KAAK,OAET,EADP,IAAI,cAZT,+IAaC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9B,OAAO,CACL,2CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,YAAY,EACZ,SAAS,EACT,eAAe,QAAQ,EAAE,EACzB,wBAAwB,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,QAAQ,EAAE,EACrD,eAAe,IAAI,EAAE,EACrB,eAAe,OAAO,EAAE,CACzB,gBACW,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,cAAc,CAAC,OAAO,CAAC,IACxC,IAAI,oBACM,OAAO;QAEpB,MAAM,IAAI,CACT,6BAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,yBACrC,MAAM,CACH,CACP;QACD,oBAAC,QAAQ,IACP,EAAE,EAAC,KAAK,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAE1C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,kBAC7B,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACxC,SAAS,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACvD,mBAAmB,IAChB,KAAK,CAAC,KAAK,EACd,CAAC;QACL,CAAC,CAAC,CACO,CACP,CACP,CAAC;AACJ,CAAC,CACe,CAAC;AAEnB,SAAS,cAAc,CAAC,OAA6B;IACnD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAErB,eAAe,IAAI,CAAC"}
|
|
@@ -45,7 +45,7 @@ export interface FileUploadItemProps extends React.HTMLAttributes<HTMLDivElement
|
|
|
45
45
|
action: "delete" | "retry";
|
|
46
46
|
onClick: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
47
47
|
id?: string;
|
|
48
|
-
};
|
|
48
|
+
} | React.ReactNode;
|
|
49
49
|
/**
|
|
50
50
|
* i18n-API for customizing texts and labels
|
|
51
51
|
*/
|
|
@@ -10,6 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React, { forwardRef } from "react";
|
|
13
|
+
import { Spacer } from "../../../../layout/stack/index.js";
|
|
13
14
|
import { useRenameCSS } from "../../../../theme/Theme.js";
|
|
14
15
|
import { BodyShort, ErrorMessage } from "../../../../typography/index.js";
|
|
15
16
|
import { useI18n } from "../../../../util/i18n/i18n.hooks.js";
|
|
@@ -33,6 +34,8 @@ export const Item = forwardRef((_a, ref) => {
|
|
|
33
34
|
}
|
|
34
35
|
return description !== null && description !== void 0 ? description : formatFileSize(file);
|
|
35
36
|
}
|
|
37
|
+
const renderButton = status === "idle" && button;
|
|
38
|
+
const renderCustomButton = isCustomButton(button);
|
|
36
39
|
return (React.createElement(Component, Object.assign({ ref: ref }, rest, { className: cn("navds-file-item", className, {
|
|
37
40
|
"navds-file-item--error": showError,
|
|
38
41
|
}) }),
|
|
@@ -42,9 +45,14 @@ export const Item = forwardRef((_a, ref) => {
|
|
|
42
45
|
React.createElement(ItemName, { file: file, href: href, onClick: onFileClick }),
|
|
43
46
|
React.createElement(BodyShort, { as: "div", size: "small" }, getStatusText()),
|
|
44
47
|
React.createElement("div", { className: cn("navds-file-item__error"), "aria-relevant": "additions removals", "aria-live": "polite" }, showError && (React.createElement(ErrorMessage, { size: "small", showIcon: true }, error)))),
|
|
45
|
-
|
|
48
|
+
renderButton && React.createElement(Spacer, null),
|
|
49
|
+
renderButton && !renderCustomButton && (React.createElement(ItemButton, Object.assign({}, button, { title: translate(button.action === "retry"
|
|
46
50
|
? "item.retryButtonTitle"
|
|
47
|
-
: "item.deleteButtonTitle") })))
|
|
51
|
+
: "item.deleteButtonTitle") }))),
|
|
52
|
+
renderButton && renderCustomButton && button)));
|
|
48
53
|
});
|
|
54
|
+
function isCustomButton(button) {
|
|
55
|
+
return React.isValidElement(button);
|
|
56
|
+
}
|
|
49
57
|
export default Item;
|
|
50
58
|
//# sourceMappingURL=Item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../../src/form/file-upload/parts/item/Item.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAc,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../../src/form/file-upload/parts/item/Item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ import { SearchContext } from "./context.js";
|
|
|
35
35
|
*/
|
|
36
36
|
export const Search = forwardRef((props, ref) => {
|
|
37
37
|
const { inputProps, size = "medium", inputDescriptionId, errorId, showErrorMsg, hasError, } = useFormField(props, "searchfield");
|
|
38
|
-
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"]);
|
|
38
|
+
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange, onSearchClick, htmlSize, "data-color": dataColor } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange", "onSearchClick", "htmlSize", "data-color"]);
|
|
39
39
|
const { cn } = useRenameCSS();
|
|
40
40
|
const searchRef = useRef(null);
|
|
41
41
|
const mergedRef = useMergeRefs(searchRef, ref);
|
|
@@ -67,7 +67,7 @@ export const Search = forwardRef((props, ref) => {
|
|
|
67
67
|
"navds-search--error": hasError,
|
|
68
68
|
"navds-search--disabled": inputProps.disabled,
|
|
69
69
|
"navds-search--with-size": htmlSize,
|
|
70
|
-
}) },
|
|
70
|
+
}), "data-color": dataColor },
|
|
71
71
|
React.createElement(Label, { htmlFor: inputProps.id, size: size, className: cn("navds-form-field__label", {
|
|
72
72
|
"navds-sr-only": hideLabel,
|
|
73
73
|
}) }, label),
|
|
@@ -84,7 +84,9 @@ export const Search = forwardRef((props, ref) => {
|
|
|
84
84
|
disabled: inputProps.disabled,
|
|
85
85
|
variant,
|
|
86
86
|
handleClick,
|
|
87
|
-
} }, children
|
|
87
|
+
} }, children
|
|
88
|
+
? children
|
|
89
|
+
: variant !== "simple" && React.createElement(SearchButton, { "data-color": dataColor }))),
|
|
88
90
|
React.createElement("div", { className: cn("navds-form-field__error"), id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && (React.createElement(ErrorMessage, { size: size, showIcon: true }, props.error)))));
|
|
89
91
|
});
|
|
90
92
|
function ClearButton({ size, clearButtonLabel, handleClear, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAEZ,UAAU,EACV,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,YAAkC,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqE1C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAC9B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,MAAM,EACJ,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,QAAQ,GACT,GAAG,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEvC,MAAM,EACJ,SAAS,EACT,SAAS,GAAG,IAAI,EAChB,KAAK,EACL,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,WAAW,GAAG,IAAI,EAClB,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,QAAQ,
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,6 @@ export interface MouseCoordinates {
|
|
|
6
6
|
}
|
|
7
7
|
export declare const coordsAreInside: ({ clientX, clientY }: MouseCoordinates, { left, top, right, bottom }: DOMRect) => boolean;
|
|
8
8
|
export declare function getCloseHandler(modalRef: React.RefObject<HTMLDialogElement>, header: ModalProps["header"], onBeforeClose: ModalProps["onBeforeClose"]): (() => false | void | undefined) | undefined;
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const BODY_CLASS_LEGACY = "navds-modal__document-body";
|
|
10
|
+
export declare const BODY_CLASS = "aksel-modal__document-body";
|
|
10
11
|
export declare function useBodyScrollLock(modalRef: React.RefObject<HTMLDialogElement>, portalNode: HTMLElement | null, isNested: boolean): void;
|
package/esm/modal/ModalUtils.js
CHANGED
|
@@ -14,21 +14,29 @@ export function getCloseHandler(modalRef, header, onBeforeClose) {
|
|
|
14
14
|
}
|
|
15
15
|
return () => { var _a; return (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.close(); };
|
|
16
16
|
}
|
|
17
|
-
export const
|
|
17
|
+
export const BODY_CLASS_LEGACY = "navds-modal__document-body";
|
|
18
|
+
export const BODY_CLASS = "aksel-modal__document-body";
|
|
18
19
|
export function useBodyScrollLock(modalRef, portalNode, isNested) {
|
|
19
20
|
React.useEffect(() => {
|
|
20
|
-
if (isNested)
|
|
21
|
+
if (isNested) {
|
|
21
22
|
return;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (modalRef.current
|
|
25
|
-
|
|
23
|
+
}
|
|
24
|
+
// We check both to avoid running this twice when not using portal
|
|
25
|
+
if (!modalRef.current || !portalNode) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// In case `open` is true initially
|
|
29
|
+
if (modalRef.current.open) {
|
|
30
|
+
document.body.classList.add(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
31
|
+
}
|
|
26
32
|
const observer = new MutationObserver(() => {
|
|
27
33
|
var _a;
|
|
28
|
-
if ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.open)
|
|
29
|
-
document.body.classList.add(BODY_CLASS);
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
if ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.open) {
|
|
35
|
+
document.body.classList.add(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
document.body.classList.remove(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
39
|
+
}
|
|
32
40
|
});
|
|
33
41
|
observer.observe(modalRef.current, {
|
|
34
42
|
attributes: true,
|
|
@@ -36,7 +44,8 @@ export function useBodyScrollLock(modalRef, portalNode, isNested) {
|
|
|
36
44
|
});
|
|
37
45
|
return () => {
|
|
38
46
|
observer.disconnect();
|
|
39
|
-
|
|
47
|
+
// In case modal is unmounted before it's closed
|
|
48
|
+
document.body.classList.remove(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
40
49
|
};
|
|
41
50
|
}, [modalRef, portalNode, isNested]);
|
|
42
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalUtils.js","sourceRoot":"","sources":["../../src/modal/ModalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,EAAE,OAAO,EAAE,OAAO,EAAoB,EACtC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAW,EACrC,EAAE;IACF,IAAI,OAAO,GAAG,IAAI,IAAI,OAAO,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,OAAO,GAAG,KAAK,IAAI,OAAO,GAAG,MAAM;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,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,CAAC;QAClB,OAAO,GAAG,EAAE,WAAC,OAAA,aAAa,EAAE,KAAK,KAAK,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,CAAA,EAAA,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAEvD,MAAM,UAAU,iBAAiB,CAC/B,QAA4C,EAC5C,UAA8B,EAC9B,QAAiB;IAEjB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ;
|
|
1
|
+
{"version":3,"file":"ModalUtils.js","sourceRoot":"","sources":["../../src/modal/ModalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,EAAE,OAAO,EAAE,OAAO,EAAoB,EACtC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAW,EACrC,EAAE;IACF,IAAI,OAAO,GAAG,IAAI,IAAI,OAAO,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,OAAO,GAAG,KAAK,IAAI,OAAO,GAAG,MAAM;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,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,CAAC;QAClB,OAAO,GAAG,EAAE,WAAC,OAAA,aAAa,EAAE,KAAK,KAAK,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,CAAA,EAAA,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAC9D,MAAM,CAAC,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAEvD,MAAM,UAAU,iBAAiB,CAC/B,QAA4C,EAC5C,UAA8B,EAC9B,QAAiB;IAEjB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;;YACzC,IAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,MAAM,CAAC;SAC1B,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,gDAAgD;YAChD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.25.1",
|
|
4
4
|
"description": "React components from the Norwegian Labour and Welfare Administration.",
|
|
5
5
|
"author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -640,8 +640,8 @@
|
|
|
640
640
|
"dependencies": {
|
|
641
641
|
"@floating-ui/react": "0.27.8",
|
|
642
642
|
"@floating-ui/react-dom": "^2.0.9",
|
|
643
|
-
"@navikt/aksel-icons": "^7.
|
|
644
|
-
"@navikt/ds-tokens": "^7.
|
|
643
|
+
"@navikt/aksel-icons": "^7.25.1",
|
|
644
|
+
"@navikt/ds-tokens": "^7.25.1",
|
|
645
645
|
"clsx": "^2.1.0",
|
|
646
646
|
"date-fns": "^4.0.0",
|
|
647
647
|
"react-day-picker": "9.7.0"
|
package/src/chat/Chat.tsx
CHANGED
|
@@ -122,22 +122,24 @@ export const Chat = forwardRef<HTMLDivElement, ChatProps>(
|
|
|
122
122
|
{avatar}
|
|
123
123
|
</div>
|
|
124
124
|
)}
|
|
125
|
-
<
|
|
125
|
+
<BodyLong
|
|
126
|
+
as="div"
|
|
127
|
+
size={size}
|
|
128
|
+
className={cn("navds-chat__bubble-wrapper")}
|
|
129
|
+
>
|
|
126
130
|
{React.Children.map(children, (child, i) => {
|
|
127
|
-
if (React.isValidElement(child)) {
|
|
128
|
-
return
|
|
129
|
-
<BodyLong as="li" size={size}>
|
|
130
|
-
{React.cloneElement(child, {
|
|
131
|
-
name: name && i === 0 ? name : undefined,
|
|
132
|
-
timestamp: timestamp && i === 0 ? timestamp : undefined,
|
|
133
|
-
toptextHeadingLevel,
|
|
134
|
-
...child.props,
|
|
135
|
-
})}
|
|
136
|
-
</BodyLong>
|
|
137
|
-
);
|
|
131
|
+
if (!React.isValidElement(child)) {
|
|
132
|
+
return null;
|
|
138
133
|
}
|
|
134
|
+
|
|
135
|
+
return React.cloneElement(child, {
|
|
136
|
+
name: name && i === 0 ? name : undefined,
|
|
137
|
+
timestamp: timestamp && i === 0 ? timestamp : undefined,
|
|
138
|
+
toptextHeadingLevel,
|
|
139
|
+
...child.props,
|
|
140
|
+
});
|
|
139
141
|
})}
|
|
140
|
-
</
|
|
142
|
+
</BodyLong>
|
|
141
143
|
</div>
|
|
142
144
|
);
|
|
143
145
|
},
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { MouseEvent, forwardRef } from "react";
|
|
2
|
+
import { Spacer } from "../../../../layout/stack";
|
|
2
3
|
import { useRenameCSS } from "../../../../theme/Theme";
|
|
3
4
|
import { BodyShort, ErrorMessage } from "../../../../typography";
|
|
4
5
|
import { OverridableComponent } from "../../../../util";
|
|
@@ -51,11 +52,13 @@ export interface FileUploadItemProps
|
|
|
51
52
|
/**
|
|
52
53
|
* Props for the action button.
|
|
53
54
|
*/
|
|
54
|
-
button?:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
button?:
|
|
56
|
+
| {
|
|
57
|
+
action: "delete" | "retry";
|
|
58
|
+
onClick: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
59
|
+
id?: string;
|
|
60
|
+
}
|
|
61
|
+
| React.ReactNode;
|
|
59
62
|
/**
|
|
60
63
|
* i18n-API for customizing texts and labels
|
|
61
64
|
*/
|
|
@@ -100,6 +103,9 @@ export const Item: OverridableComponent<FileUploadItemProps, HTMLDivElement> =
|
|
|
100
103
|
return description ?? formatFileSize(file);
|
|
101
104
|
}
|
|
102
105
|
|
|
106
|
+
const renderButton = status === "idle" && button;
|
|
107
|
+
const renderCustomButton = isCustomButton(button);
|
|
108
|
+
|
|
103
109
|
return (
|
|
104
110
|
<Component
|
|
105
111
|
ref={ref}
|
|
@@ -131,8 +137,9 @@ export const Item: OverridableComponent<FileUploadItemProps, HTMLDivElement> =
|
|
|
131
137
|
)}
|
|
132
138
|
</div>
|
|
133
139
|
</div>
|
|
140
|
+
{renderButton && <Spacer />}
|
|
134
141
|
|
|
135
|
-
{
|
|
142
|
+
{renderButton && !renderCustomButton && (
|
|
136
143
|
<ItemButton
|
|
137
144
|
{...button}
|
|
138
145
|
title={translate(
|
|
@@ -142,10 +149,17 @@ export const Item: OverridableComponent<FileUploadItemProps, HTMLDivElement> =
|
|
|
142
149
|
)}
|
|
143
150
|
/>
|
|
144
151
|
)}
|
|
152
|
+
{renderButton && renderCustomButton && button}
|
|
145
153
|
</div>
|
|
146
154
|
</Component>
|
|
147
155
|
);
|
|
148
156
|
},
|
|
149
157
|
);
|
|
150
158
|
|
|
159
|
+
function isCustomButton(
|
|
160
|
+
button: FileUploadItemProps["button"],
|
|
161
|
+
): button is React.ReactNode {
|
|
162
|
+
return React.isValidElement(button);
|
|
163
|
+
}
|
|
164
|
+
|
|
151
165
|
export default Item;
|
|
@@ -121,6 +121,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
121
121
|
onChange,
|
|
122
122
|
onSearchClick,
|
|
123
123
|
htmlSize,
|
|
124
|
+
"data-color": dataColor,
|
|
124
125
|
...rest
|
|
125
126
|
} = props;
|
|
126
127
|
|
|
@@ -170,6 +171,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
170
171
|
"navds-search--with-size": htmlSize,
|
|
171
172
|
},
|
|
172
173
|
)}
|
|
174
|
+
data-color={dataColor}
|
|
173
175
|
>
|
|
174
176
|
<Label
|
|
175
177
|
htmlFor={inputProps.id}
|
|
@@ -233,7 +235,9 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
|
|
|
233
235
|
handleClick,
|
|
234
236
|
}}
|
|
235
237
|
>
|
|
236
|
-
{children
|
|
238
|
+
{children
|
|
239
|
+
? children
|
|
240
|
+
: variant !== "simple" && <SearchButton data-color={dataColor} />}
|
|
237
241
|
</SearchContext.Provider>
|
|
238
242
|
</div>
|
|
239
243
|
<div
|
package/src/modal/Modal.test.tsx
CHANGED
|
@@ -2,7 +2,7 @@ import { fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
|
2
2
|
import React, { useState } from "react";
|
|
3
3
|
import { describe, expect, test } from "vitest";
|
|
4
4
|
import { Button, Modal } from "..";
|
|
5
|
-
import { BODY_CLASS } from "./ModalUtils";
|
|
5
|
+
import { BODY_CLASS, BODY_CLASS_LEGACY } from "./ModalUtils";
|
|
6
6
|
|
|
7
7
|
const Test = () => {
|
|
8
8
|
const [open, setOpen] = useState(true);
|
|
@@ -32,11 +32,15 @@ describe("Modal", () => {
|
|
|
32
32
|
test("should toggle body class", async () => {
|
|
33
33
|
render(<Test />);
|
|
34
34
|
expect(document.body.classList).toContain(BODY_CLASS);
|
|
35
|
+
expect(document.body.classList).toContain(BODY_CLASS_LEGACY);
|
|
35
36
|
|
|
36
37
|
fireEvent.click(screen.getByText("Close"));
|
|
37
|
-
await waitFor(() =>
|
|
38
|
-
expect(document.body.classList).not.toContain(BODY_CLASS)
|
|
39
|
-
);
|
|
38
|
+
await waitFor(() => {
|
|
39
|
+
expect(document.body.classList).not.toContain(BODY_CLASS);
|
|
40
|
+
});
|
|
41
|
+
await waitFor(() => {
|
|
42
|
+
expect(document.body.classList).not.toContain(BODY_CLASS_LEGACY);
|
|
43
|
+
});
|
|
40
44
|
});
|
|
41
45
|
|
|
42
46
|
test("should toggle body class when using portal", async () => {
|
|
@@ -46,10 +50,14 @@ describe("Modal", () => {
|
|
|
46
50
|
</Modal>,
|
|
47
51
|
);
|
|
48
52
|
expect(document.body.classList).toContain(BODY_CLASS);
|
|
53
|
+
expect(document.body.classList).toContain(BODY_CLASS_LEGACY);
|
|
49
54
|
|
|
50
55
|
fireEvent.click(screen.getByRole("button"));
|
|
51
56
|
await waitFor(() =>
|
|
52
57
|
expect(document.body.classList).not.toContain(BODY_CLASS),
|
|
53
58
|
);
|
|
59
|
+
await waitFor(() =>
|
|
60
|
+
expect(document.body.classList).not.toContain(BODY_CLASS_LEGACY),
|
|
61
|
+
);
|
|
54
62
|
});
|
|
55
63
|
});
|
package/src/modal/ModalUtils.ts
CHANGED
|
@@ -27,7 +27,8 @@ export function getCloseHandler(
|
|
|
27
27
|
return () => modalRef.current?.close();
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export const
|
|
30
|
+
export const BODY_CLASS_LEGACY = "navds-modal__document-body";
|
|
31
|
+
export const BODY_CLASS = "aksel-modal__document-body";
|
|
31
32
|
|
|
32
33
|
export function useBodyScrollLock(
|
|
33
34
|
modalRef: React.RefObject<HTMLDialogElement>,
|
|
@@ -35,21 +36,37 @@ export function useBodyScrollLock(
|
|
|
35
36
|
isNested: boolean,
|
|
36
37
|
) {
|
|
37
38
|
React.useEffect(() => {
|
|
38
|
-
if (isNested)
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
if (isNested) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// We check both to avoid running this twice when not using portal
|
|
44
|
+
if (!modalRef.current || !portalNode) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// In case `open` is true initially
|
|
49
|
+
if (modalRef.current.open) {
|
|
50
|
+
document.body.classList.add(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
51
|
+
}
|
|
41
52
|
|
|
42
53
|
const observer = new MutationObserver(() => {
|
|
43
|
-
if (modalRef.current?.open)
|
|
44
|
-
|
|
54
|
+
if (modalRef.current?.open) {
|
|
55
|
+
document.body.classList.add(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
56
|
+
} else {
|
|
57
|
+
document.body.classList.remove(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
58
|
+
}
|
|
45
59
|
});
|
|
60
|
+
|
|
46
61
|
observer.observe(modalRef.current, {
|
|
47
62
|
attributes: true,
|
|
48
63
|
attributeFilter: ["open"],
|
|
49
64
|
});
|
|
65
|
+
|
|
50
66
|
return () => {
|
|
51
67
|
observer.disconnect();
|
|
52
|
-
|
|
68
|
+
// In case modal is unmounted before it's closed
|
|
69
|
+
document.body.classList.remove(BODY_CLASS, BODY_CLASS_LEGACY);
|
|
53
70
|
};
|
|
54
71
|
}, [modalRef, portalNode, isNested]);
|
|
55
72
|
}
|