@stenajs-webui/modal 21.21.2 → 21.21.3
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/dist/building-blocks/ModalContainer.d.ts +2 -1
- package/dist/index.es.js +42 -30
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { BoxProps } from "@stenajs-webui/core";
|
|
2
3
|
import { PropsWithChildren } from "react";
|
|
3
|
-
export interface ModalContainerProps extends PropsWithChildren {
|
|
4
|
+
export interface ModalContainerProps extends PropsWithChildren, Pick<BoxProps, "maxWidth"> {
|
|
4
5
|
}
|
|
5
6
|
export declare const ModalContainer: React.FC<ModalContainerProps>;
|
package/dist/index.es.js
CHANGED
|
@@ -7,7 +7,7 @@ import d from "classnames";
|
|
|
7
7
|
import { exhaustSwitchCase as be, Spacing as Y, Row as b, Space as re, Heading as J, Column as K, Box as x, Indent as we, Txt as Ie, Text as Oe } from "@stenajs-webui/core";
|
|
8
8
|
import { Icon as ce, FlatButton as Ne, stenaTimes as $e, Spinner as Fe, CloseButton as ie, CircledIcon as ke } from "@stenajs-webui/elements";
|
|
9
9
|
import { cssColor as De } from "@stenajs-webui/theme";
|
|
10
|
-
const
|
|
10
|
+
const _n = (t) => {
|
|
11
11
|
B.setAppElement(t);
|
|
12
12
|
}, xe = "_overlay_5x3op_1", Be = "_fadeIn_5x3op_1", Ae = "_modal_5x3op_31", qe = "_content_5x3op_41", Le = "_appear_5x3op_1", ze = "_isDraggable_5x3op_70", Me = "_footer_5x3op_101", We = "_stickyFooter_5x3op_105", D = {
|
|
13
13
|
overlay: xe,
|
|
@@ -69,7 +69,7 @@ const dn = (t) => {
|
|
|
69
69
|
beforeClose: Ye,
|
|
70
70
|
slideFromTop: Je,
|
|
71
71
|
slideFromBottom: Ke
|
|
72
|
-
},
|
|
72
|
+
}, mn = ({
|
|
73
73
|
background: t,
|
|
74
74
|
zIndex: e,
|
|
75
75
|
children: o,
|
|
@@ -117,7 +117,7 @@ const dn = (t) => {
|
|
|
117
117
|
default:
|
|
118
118
|
return be(t, m.slideFromLeft);
|
|
119
119
|
}
|
|
120
|
-
},
|
|
120
|
+
}, un = ({
|
|
121
121
|
header: t,
|
|
122
122
|
contentRight: e,
|
|
123
123
|
onRequestClose: o,
|
|
@@ -166,7 +166,7 @@ const dn = (t) => {
|
|
|
166
166
|
isDraggable: tt,
|
|
167
167
|
footer: nt,
|
|
168
168
|
stickyFooter: ot
|
|
169
|
-
}, st = { overlay: { justifyContent: "center" } },
|
|
169
|
+
}, st = { overlay: { justifyContent: "center" } }, fn = ({
|
|
170
170
|
children: t,
|
|
171
171
|
...e
|
|
172
172
|
}) => /* @__PURE__ */ n(
|
|
@@ -235,7 +235,7 @@ const dn = (t) => {
|
|
|
235
235
|
}, pt = "_modal_4fwgb_1", yt = "_overlay_4fwgb_13", le = {
|
|
236
236
|
modal: pt,
|
|
237
237
|
overlay: yt
|
|
238
|
-
},
|
|
238
|
+
}, gn = ({
|
|
239
239
|
headerIconLeft: t,
|
|
240
240
|
headerText: e,
|
|
241
241
|
shouldCloseOnOverlayClick: o = !1,
|
|
@@ -302,7 +302,7 @@ const dn = (t) => {
|
|
|
302
302
|
) })
|
|
303
303
|
]
|
|
304
304
|
}
|
|
305
|
-
),
|
|
305
|
+
), hn = ({
|
|
306
306
|
header: t,
|
|
307
307
|
headerText: e,
|
|
308
308
|
children: o,
|
|
@@ -342,7 +342,7 @@ const dn = (t) => {
|
|
|
342
342
|
)
|
|
343
343
|
]
|
|
344
344
|
}
|
|
345
|
-
),
|
|
345
|
+
), pn = ({ children: t }) => /* @__PURE__ */ n(K, { indent: 2, spacing: 2, children: t }), X = pe(
|
|
346
346
|
void 0
|
|
347
347
|
);
|
|
348
348
|
function Q(t, {
|
|
@@ -450,7 +450,7 @@ function Q(t, {
|
|
|
450
450
|
]
|
|
451
451
|
), { show: ge, reject: O }];
|
|
452
452
|
}
|
|
453
|
-
const
|
|
453
|
+
const yn = () => {
|
|
454
454
|
const t = Ce(X);
|
|
455
455
|
if (t == null)
|
|
456
456
|
throw new Error("useDialogPromise is being used outside of dialog.");
|
|
@@ -463,7 +463,7 @@ const pn = () => {
|
|
|
463
463
|
fadeIn: Ot,
|
|
464
464
|
fadeOut: Nt
|
|
465
465
|
};
|
|
466
|
-
function
|
|
466
|
+
function Cn(t, e) {
|
|
467
467
|
return Q(t, {
|
|
468
468
|
...e,
|
|
469
469
|
modal: !0,
|
|
@@ -492,7 +492,7 @@ const $t = "_drawerDialog_11g6r_1", Ft = "_left_11g6r_13", kt = "_right_11g6r_14
|
|
|
492
492
|
slideInBottom: Tt,
|
|
493
493
|
slideOutBottom: Et
|
|
494
494
|
};
|
|
495
|
-
function
|
|
495
|
+
function vn(t, e = "left", o) {
|
|
496
496
|
return Q(t, {
|
|
497
497
|
...o,
|
|
498
498
|
disableCloseOnClickOutside: !0,
|
|
@@ -514,7 +514,7 @@ const Ht = "_modalDialog_1teni_1", Pt = "_slideIn_1teni_1", Gt = "_closing_1teni
|
|
|
514
514
|
fadeOut: Yt,
|
|
515
515
|
contentWrapper: Jt
|
|
516
516
|
};
|
|
517
|
-
function
|
|
517
|
+
function bn(t, e) {
|
|
518
518
|
return Q(t, {
|
|
519
519
|
...e,
|
|
520
520
|
modal: !0,
|
|
@@ -537,7 +537,19 @@ const me = ({
|
|
|
537
537
|
}) => /* @__PURE__ */ u(x, { width: "100%", children: [
|
|
538
538
|
/* @__PURE__ */ n(Y, {}),
|
|
539
539
|
/* @__PURE__ */ n("div", { className: Qt.modalActionButtons, children: t })
|
|
540
|
-
] }), Zt = ({ gap: t = 3, ...e }) => /* @__PURE__ */ n(x, { indent: 3, spacing: 3, gap: t, ...e }),
|
|
540
|
+
] }), Zt = ({ gap: t = 3, ...e }) => /* @__PURE__ */ n(x, { indent: 3, spacing: 3, gap: t, ...e }), Rt = ({
|
|
541
|
+
children: t,
|
|
542
|
+
maxWidth: e
|
|
543
|
+
}) => /* @__PURE__ */ n(
|
|
544
|
+
K,
|
|
545
|
+
{
|
|
546
|
+
flex: 1,
|
|
547
|
+
height: "100%",
|
|
548
|
+
justifyContent: "space-between",
|
|
549
|
+
maxWidth: e,
|
|
550
|
+
children: t
|
|
551
|
+
}
|
|
552
|
+
), wn = ({
|
|
541
553
|
icon: t,
|
|
542
554
|
buttons: e,
|
|
543
555
|
heading: o,
|
|
@@ -545,7 +557,7 @@ const me = ({
|
|
|
545
557
|
children: c,
|
|
546
558
|
maxWidth: f,
|
|
547
559
|
minWidth: g
|
|
548
|
-
}) => /* @__PURE__ */ u(
|
|
560
|
+
}) => /* @__PURE__ */ n(Rt, { children: /* @__PURE__ */ u(
|
|
549
561
|
Zt,
|
|
550
562
|
{
|
|
551
563
|
flexDirection: "column",
|
|
@@ -560,7 +572,7 @@ const me = ({
|
|
|
560
572
|
e && /* @__PURE__ */ n(Ut, { buttons: e })
|
|
561
573
|
]
|
|
562
574
|
}
|
|
563
|
-
)
|
|
575
|
+
) }), In = ({
|
|
564
576
|
heading: t,
|
|
565
577
|
headingLevel: e,
|
|
566
578
|
headingSize: o,
|
|
@@ -568,9 +580,9 @@ const me = ({
|
|
|
568
580
|
}) => /* @__PURE__ */ u(b, { justifyContent: "space-between", children: [
|
|
569
581
|
t && /* @__PURE__ */ n(me, { headingLevel: e, size: o, children: t }),
|
|
570
582
|
/* @__PURE__ */ n(ie, { onClick: s })
|
|
571
|
-
] }),
|
|
572
|
-
modalFooter:
|
|
573
|
-
sticky:
|
|
583
|
+
] }), jt = "_modalFooter_112wr_1", en = "_sticky_112wr_10", ae = {
|
|
584
|
+
modalFooter: jt,
|
|
585
|
+
sticky: en
|
|
574
586
|
}, On = ({
|
|
575
587
|
children: t,
|
|
576
588
|
sticky: e,
|
|
@@ -585,30 +597,30 @@ const me = ({
|
|
|
585
597
|
}
|
|
586
598
|
);
|
|
587
599
|
export {
|
|
588
|
-
|
|
600
|
+
fn as Alert,
|
|
589
601
|
Se as BaseWindow,
|
|
590
602
|
_e as DRAGGABLE_CANCEL_CLASSNAME,
|
|
591
603
|
de as DRAGGABLE_HANDLE_CLASSNAME,
|
|
592
604
|
X as DialogContext,
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
605
|
+
mn as Drawer,
|
|
606
|
+
un as DrawerHeader,
|
|
607
|
+
wn as InfoAlert,
|
|
608
|
+
gn as LoadingModal,
|
|
597
609
|
ht as Modal,
|
|
598
610
|
Ut as ModalActionButtons,
|
|
599
611
|
Zt as ModalBody,
|
|
600
|
-
|
|
612
|
+
Rt as ModalContainer,
|
|
601
613
|
On as ModalFooter,
|
|
602
614
|
In as ModalHeader,
|
|
603
615
|
me as ModalHeading,
|
|
604
|
-
|
|
605
|
-
|
|
616
|
+
hn as Window,
|
|
617
|
+
pn as WindowFooter,
|
|
606
618
|
Ct as WindowHeader,
|
|
607
|
-
|
|
608
|
-
|
|
619
|
+
_n as setupDeclarativeModals,
|
|
620
|
+
Cn as useAlertDialog,
|
|
609
621
|
Q as useDialog,
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
622
|
+
yn as useDialogPromise,
|
|
623
|
+
vn as useDrawerDialog,
|
|
624
|
+
bn as useModalDialog
|
|
613
625
|
};
|
|
614
626
|
//# sourceMappingURL=index.es.js.map
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalContainer.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n );\n};\n","import * as React from \"react\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps extends PropsWithChildren {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({ children }) => {\n return (\n <Column flex={1} height={\"100%\"} justifyContent={\"space-between\"}>\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalContainer","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","ModalContainer","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":";;;;;;;;AAEa,MAAAA,KAAyB,CAACC,MAAsC;AAC3E,EAAAC,EAAW,cAAcD,CAAW;AACtC;;;;;;;;;GCUaE,KAA6B,0BAC7BC,KAA6B,0BAE7BC,KAAwC,CAAC;AAAA,EACpD,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAAC,IAAUC,EAAO,IAAI;AAEzB,SAAA,gBAAAC;AAAA,IAACX;AAAA,IAAA;AAAA,MACC,kBAAkBY,EAAO;AAAA,MACzB,WAAWA,EAAO;AAAA,MACjB,GAAGJ;AAAA,MAEJ,UAAA,gBAAAG;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,QAAQ,IAAIZ,EAA0B;AAAA,UACtC,QAAQ,IAAIC,EAA0B;AAAA,UACtC,QAAO;AAAA,UACP,UAAU,CAACI;AAAA,UACX,SAAAG;AAAA,UAEA,UAAA,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACJ,sBAAiCP;AAAA,gBACjC,0BAAqCC;AAAA,cACxC;AAAA,cACA,WAAWS,EAAGF,EAAO,SAAS;AAAA,gBAC5B,CAACA,EAAO,WAAW,GAAGN;AAAA,cAAA,CACvB;AAAA,cACD,KAAKG;AAAA,cAEJ,UAAAF;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;;;;;;;;;;;GCKaQ,KAAgC,CAAC;AAAA,EAC5C,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAV;AAAA,EACA,WAAAW,IAAY;AAAA,EACZ,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGZ;AACL,MAAM;AACE,QAAA,EAAE,QAAAa,GAAQ,OAAAjB,EAAU,IAAAI;AAGxB,SAAA,gBAAAG;AAAA,IAACX;AAAA,IAAA;AAAA,MACC,gBAAgB;AAAA,MAChB,iBAAiBY,EAAO;AAAA,MACxB,kBAAkB;AAAA,QAChB,MAAMA,EAAO;AAAA,QACb,WAAWA,EAAO;AAAA,QAClB,aAAaA,EAAO;AAAA,MACtB;AAAA,MACA,WAAW;AAAA,QACT,MAAME;AAAA,UACJF,EAAO;AAAA,UACPU,GAAqBJ,CAAS;AAAA,UAC9BE,KAAYR,EAAO;AAAA,QACrB;AAAA,QACA,WAAWA,EAAO;AAAA,QAClB,aAAaA,EAAO;AAAA,MACtB;AAAA,MACA,OAAO,EAAE,SAAS,EAAE,OAAAR,GAAO,QAAAiB,GAAQ,YAAAL,KAAc,SAAS,EAAE,QAAAC,IAAS;AAAA,MACrE,gBAAgBE,IAAe,MAAMA,IAAe;AAAA,MACnD,GAAGX;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,GAEMe,KAAuB,CAACJ,MAAiC;AAC7D,UAAQA,GAAW;AAAA,IACjB,KAAK;AACH,aAAON,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB;AACS,aAAAW,GAAkBL,GAAWN,EAAO,aAAa;AAAA,EAC5D;AACF,GC/FaY,KAA4C,CAAC;AAAA,EACxD,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,MAAAC;AACF,MAEI,gBAAAjB;AAAA,EAACkB;AAAA,EAAA;AAAA,IACC,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,YAAYC,GAAS,oBAAoB;AAAA,IAEzC,UAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,QAAQ;AAAA,QAER,UAAA;AAAA,UAAA,gBAAAD,EAACC,GAAI,EAAA,YAAY,UAAU,KAAK,GAC9B,UAAA;AAAA,YAAC,gBAAArB,EAAAsB,IAAA,EAAM,KAAK,EAAG,CAAA;AAAA,YACdL,KAAQ,gBAAAjB,EAACuB,IAAK,EAAA,MAAAN,GAAY,MAAM,IAAI;AAAA,YACpC,gBAAAjB,EAAAwB,GAAA,EAAQ,SAAS,MAAO,UAAOV,GAAA;AAAA,UAAA,GAClC;AAAA,UACA,gBAAAM,EAACC,GAAI,EAAA,KAAK,GACP,UAAA;AAAA,YAAAN;AAAA,YACD,gBAAAf;AAAA,cAACyB;AAAA,cAAA;AAAA,gBACC,UAAUC;AAAA,gBACV,SAASV;AAAA,gBACT,SAAS;AAAA,cAAA;AAAA,YACX;AAAA,YACA,gBAAAhB,EAACsB,IAAM,EAAA,KAAK,IAAK,CAAA;AAAA,UAAA,GACnB;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAAA;;;;;;;;;GCrCAK,KAAQ,EAAE,SAAS,EAAE,gBAAgB,SAAW,EAAA,GAEzCC,KAA8B,CAAC;AAAA,EAC1C,UAAAhC;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAG;AAAA,EAACX;AAAA,EAAA;AAAA,IACC,kBAAkBY,EAAO;AAAA,IACzB,WAAWA,EAAO;AAAA,IAClB,OAAA0B;AAAA,IACC,GAAG9B;AAAA,IAEJ,UAAA,gBAAAG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAO;AAAA,QAClB,OAAO,EAAG,sBAAiC,cAAc;AAAA,QAExD,UAAAL;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAAA;;;;;;;;;;;;GChBOiC,KAA8B,CAAC;AAAA,EAC1C,UAAAjC;AAAA,EACA,YAAAS;AAAA,EACA,GAAGR;AACL,MAAM;AACJ,QAAM8B,IAAQ;AAAA,IACZ,SAAS,EAAE,gBAAgB,SAAS;AAAA,IACpC,SAAS,EAAE,iCAAiCtB,EAAW;AAAA,EAAA;AAIvD,SAAA,gBAAAL;AAAA,IAACX;AAAA,IAAA;AAAA,MACC,kBAAkB;AAAA,QAChB,MAAMY,EAAO;AAAA,QACb,aAAaA,EAAO;AAAA,QACpB,WAAWA,EAAO;AAAA,MACpB;AAAA,MACA,WAAW;AAAA,QACT,MAAMA,EAAO;AAAA,QACb,aAAaA,EAAO;AAAA,QACpB,WAAWA,EAAO;AAAA,MACpB;AAAA,MACA,OAAA0B;AAAA,MACA,gBAAgB;AAAA,MACf,GAAG9B;AAAA,MAEJ,UAAA,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWC,EAAO;AAAA,UAClB,OAAO,EAAG,sBAAiC,cAAc;AAAA,UAExD,UAAAL;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;;;GC1BakC,KAA4C,CAAC;AAAA,EACxD,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,2BAAAC,IAA4B;AAAA,EAC5B,kBAAAC,IAAmB;AAAA,EACnB,GAAGC;AACL,MAEI,gBAAAnC;AAAA,EAACX;AAAA,EAAA;AAAA,IACE,GAAG8C;AAAA,IACJ,QAAM;AAAA,IACN,2BAAAF;AAAA,IACA,kBAAAC;AAAA,IACA,WAAWjC,GAAO;AAAA,IAClB,kBAAkBA,GAAO;AAAA,IAEzB,UAAC,gBAAAmB,EAAAgB,GAAA,EAAO,SAAS,GAAG,YAAY,UAC9B,UAAA;AAAA,MAAA,gBAAApC;AAAA,QAACqC;AAAA,QAAA;AAAA,UACC,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,QAAQ;AAAA,UAER,UAAA,gBAAArC,EAACsC,IAAQ,EAAA,MAAM,QAAS,CAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,OACEP,KAAkBC,MAEhB,gBAAAZ,EAAAmB,IAAA,EAAA,UAAA;AAAA,QAAA,gBAAAvC,EAACkB,GAAQ,EAAA;AAAA,QACT,gBAAAE,EAACC,GAAI,EAAA,QAAQ,GACV,UAAA;AAAA,UAAAU,KAEG,gBAAAX,EAAAmB,IAAA,EAAA,UAAA;AAAA,YAAA,gBAAAvC,EAACuB,MAAK,MAAM,IAAI,MAAMQ,GAAgB,OAAO,SAAS;AAAA,8BACrDS,IAAO,EAAA;AAAA,UAAA,GACV;AAAA,UAEDR,KACE,gBAAAhC,EAAAwB,GAAA,EAAQ,SAAS,MAAM,OAAO,SAC5B,UACHQ,GAAA;AAAA,QAAA,GAEJ;AAAA,MAAA,GACF;AAAA,IAAA,GAEJ;AAAA,EAAA;AAAA,GCjDOS,KAA4C,CAAC;AAAA,EACxD,gBAAAzB;AAAA,EACA,QAAAF;AAAA,EACA,YAAAkB;AAAA,EACA,sBAAAU;AACF,MAEI,gBAAAtB;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW/B;AAAA,IAEX,UAAA;AAAA,MAAA,gBAAA8B,EAACC,KAAI,MAAM,GAAG,QAAM,IAAC,YAAY,UAC9B,UAAA;AAAA,QAAAW,uBACEW,IAAI,EAAA,WAAWpD,IAA4B,MAAM,SAC/C,UACHyC,GAAA;AAAA,QAEDlB;AAAA,MAAA,GACH;AAAA,MACA,gBAAAd,EAACqC,GAAI,EAAA,WAAW,cACd,UAAA,gBAAArC;AAAA,QAAC4C;AAAA,QAAA;AAAA,UACC,WAAWF;AAAA,UACX,SAAS1B;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,IAAA;AAAA,EAAA;AAAA,GC3BO6B,KAAgC,CAAC;AAAA,EAC5C,QAAA/B;AAAA,EACA,YAAAkB;AAAA,EACA,UAAApC;AAAA,EACA,SAAAkD;AAAA,EACA,QAAAC;AAAA,EACA,WAAApD,IAAY;AAAA,EACZ,gBAAAqB;AAAA,EACA,sBAAA0B;AAAA,EACA,QAAAM;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,GAAGC;AACL,MAKI,gBAAA9B;AAAA,EAAC5B;AAAA,EAAA;AAAA,IACE,GAAG0D;AAAA,IACJ,gBAAAlC;AAAA,IACA,WAAArB;AAAA,IAEA,UAAA;AAAA,MAAA,gBAAAK;AAAA,QAACyC;AAAA,QAAA;AAAA,UACC,gBAAAzB;AAAA,UACA,QAAAF;AAAA,UACA,YAAAkB;AAAA,UACA,sBAAAU;AAAA,QAAA;AAAA,MACF;AAAA,wBACCL,GAAI,EAAA,SAfa,OAAOS,KAAY,WAAWA,IAAU,GAe7B,QAdZ,OAAOC,KAAW,WAAWA,IAAS,GAepD,UAAAnD,GACH;AAAA,MACCoD,KACC,gBAAAhD;AAAA,QAACqC;AAAA,QAAA;AAAA,UACC,WAAWlC,EAAGF,EAAO,QAAQ;AAAA,YAC3B,CAACA,EAAO,YAAY,GAAG,CAACgD;AAAA,UAAA,CACzB;AAAA,UAEA,UAAAD;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAAA,GC7CKG,KAA4C,CAAC,EAAE,UAAAvD,EAAS,MAClE,gBAAAI,EAAAoC,GAAA,EAAO,QAAQ,GAAG,SAAS,GACzB,UAAAxC,EACH,CAAA,GCDWwD,IAAgBC;AAAA,EAC3B;AACF;AC6BO,SAASC,EACdC,GACA;AAAA,EACE,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,4BAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAA7D;AACF,GAC0C;AACpC,QAAA8D,KAAWpE,EAA0B,IAAI,GACzCqE,IAAaZ,KAAOW,IACpB,CAACE,GAAKC,EAAa,IAAIC,GAAW,CAACC,MAAMA,IAAI,GAAG,CAAC,GACjDC,IAAa1E,KACb2E,IAAa3E,KACb4E,IAAsB5E,KACtB6E,IAAY7E,KAIZ,CAAC8E,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAIpC,CAACC,GAAgBC,CAAiB,IAAIF,EAAS,EAAK,GAIpD,CAACG,GAASC,CAAU,IAAIJ,EAAS,EAAK,GAEtCK,IAAO7B,GAEP8B,KAAOC;AAAA,IACX,CAACpC,MAAmB;;AAClB,aAAAuB,EAAW,UAAU,IAAI;AAAA,QACvB,CAACc,GAASC,OAAW;AACnB,UAAAd,EAAW,UAAUa,GACrBX,EAAU,UAAUY;AAAAA,QACtB;AAAA,MAAA,GAEFL,EAAW,EAAK,GAChBL,EAAU,EAAI,GACdG,EAAkB,EAAI,GACRX,MACdK,EAAoB,UAAUzB,GAC1BO,KACFgC,IAAArB,EAAW,YAAX,QAAAqB,EAAoB,eAEpBC,IAAAtB,EAAW,YAAX,QAAAsB,EAAoB,QAEfjB,EAAW;AAAA,IACpB;AAAA,IACA,CAACL,GAAYX,CAAK;AAAA,EAAA,GAGd8B,IAAUD;AAAA,IACd,CAACK,MAAU;;AAET,MAAAR,EAAW,EAAI,GACfL,EAAU,EAAK,GACVhB,IAcH,WAAW,MAAM;;AACf,QAAAqB,EAAW,EAAK,GAChBF,EAAkB,EAAK,IACvBQ,IAAAf,EAAW,YAAX,QAAAe,EAAA,KAAAf,GAAqBiB,IACrBhB,EAAoB,UAAU,QAClBX,KAAA,QAAAA;AAAA,SACX,GAAG,KAnBNyB,IAAArB,EAAW,YAAX,QAAAqB,EAAoB;AAAA,QAClB;AAAA,QACA,MAAM;;AACJ,UAAAN,EAAW,EAAK,GAChBF,EAAkB,EAAK,IACvBQ,IAAArB,EAAW,YAAX,QAAAqB,EAAoB,UACpBC,IAAAhB,EAAW,YAAX,QAAAgB,EAAA,KAAAhB,GAAqBiB,IACrBhB,EAAoB,UAAU,QAClBX,KAAA,QAAAA;AAAA,QACd;AAAA,QACA,EAAE,MAAM,GAAK;AAAA;AAAA,IAWnB;AAAA,IACA,CAACI,GAAYJ,GAAWF,CAAkB;AAAA,EAAA,GAGtC8B,KAAUN,EAAY,MAAM;;AAEhC,IAAAH,EAAW,EAAK,GAChBL,EAAU,EAAK,GACfG,EAAkB,EAAK,IACvBQ,IAAAb,EAAU,YAAV,QAAAa,EAAA,KAAAb,IACWX,KAAA,QAAAA,KACXU,EAAoB,UAAU;AAAA,EAAA,GAC7B,CAACV,CAAQ,CAAC,GAEPuB,IAASF;AAAA,IACb,CAACO,MAAU;;AAET,MAAAV,EAAW,EAAI,GACfL,EAAU,EAAK,GACVhB,IAcH,WAAW,MAAM;;AACf,QAAAqB,EAAW,EAAK,GAChBF,EAAkB,EAAK,IACvBQ,IAAAb,EAAU,YAAV,QAAAa,EAAA,KAAAb,GAAoBiB,IACT5B,KAAA,QAAAA,KACXU,EAAoB,UAAU;AAAA,SAC7B,GAAG,KAnBNc,IAAArB,EAAW,YAAX,QAAAqB,EAAoB;AAAA,QAClB;AAAA,QACA,MAAM;;AACJ,UAAAN,EAAW,EAAK,GAChBF,EAAkB,EAAK,IACvBQ,IAAArB,EAAW,YAAX,QAAAqB,EAAoB,UACpBC,IAAAd,EAAU,YAAV,QAAAc,EAAA,KAAAd,GAAoBiB,IACT5B,KAAA,QAAAA,KACXU,EAAoB,UAAU;AAAA,QAChC;AAAA,QACA,EAAE,MAAM,GAAK;AAAA;AAAA,IAWnB;AAAA,IACA,CAACP,GAAYN,GAAoBG,CAAQ;AAAA,EAAA,GAGrC6B,KAAUR;AAAA,IACd,CAACS,MAAM;AACD,UAAAA,EAAE,WAAW3B,EAAW;AAC1B;AAGI,YAAA4B,IAAO5B,EAAW,QAAQ,sBAAsB;AAQtD,MALE4B,EAAK,OAAOD,EAAE,WACdA,EAAE,WAAWC,EAAK,MAAMA,EAAK,UAC7BA,EAAK,QAAQD,EAAE,WACfA,EAAE,WAAWC,EAAK,OAAOA,EAAK,SAGvBR;IAEX;AAAA,IACA,CAACpB,GAAYoB,CAAM;AAAA,EAAA,GAGfS,IAAeC;AAAA,IACnB,OAAO,EAAE,SAAAX,GAAS,QAAAC;IAClB,CAACA,GAAQD,CAAO;AAAA,EAAA;AAoDlB,SAAO,CAjDSW;AAAA,IACd,MACEpC,IACG,gBAAA9D,EAAA6B,IAAA,EAAM,QAAAgD,GAAgB,gBAAgBW,GAAQ,YAAAnF,GAC7C,UAAA,gBAAAL,EAACoD,EAAc,UAAd,EAAuB,OAAO6C,GAC5B,UACCjB,KAAA,gBAAAmB,GAACf,GAAM,EAAA,GAAIT,EAAoB,SAAoB,KAAAN,EAAU,CAAA,GAEjE,EAAA,CACF,IAEA,gBAAArE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS+D,IAA6B,SAAY+B;AAAA,QAClD,SAAAF;AAAA,QACA,KAAKxB;AAAA,QACL,WAAWjE,EAAG+D,GAAWgB,KAAWvB,CAAgB;AAAA,QACpD,OAAO,EAAE,YAAAtD,GAAwB,GAAGwD,EAAY;AAAA,QAEhD,UAAA,gBAAA7D,EAAC,SAAI,OAAO4D,GAAqB,WAAWF,GACzC,UAAAsB,uBACE5B,EAAc,UAAd,EAAuB,OAAO6C,GAC7B,6BAACb,GAAM,EAAA,GAAIT,EAAoB,SAAoB,KAAAN,GAAU,GAC/D,EAEJ,CAAA;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ;AAAA,MACEP;AAAA,MACAe;AAAA,MACAW;AAAA,MACAnF;AAAA,MACA4F;AAAA,MACAjB;AAAA,MACAI;AAAA,MACAf;AAAA,MACAN;AAAA,MACA+B;AAAA,MACAF;AAAA,MACAxB;AAAA,MACAF;AAAA,MACAgB;AAAA,MACAvB;AAAA,MACAE;AAAA,MACAD;AAAA,MACAF;AAAA,IACF;AAAA,EAAA,GAGe,EAAE,MAAA2B,IAAM,QAAAG,EAAQ,CAAA;AACnC;ACxPO,MAAMY,KAAmB,MAEU;AAClC,QAAAC,IAAUC,GAAWlD,CAAa;AACxC,MAAIiD,KAAW;AACP,UAAA,IAAI,MAAM,mDAAmD;AAE9D,SAAAA;AACT;;;;;;;;ACNgB,SAAAE,GACdhD,GACAiD,GAC0C;AAC1C,SAAOlD,EAAmCC,GAAW;AAAA,IACnD,GAAGiD;AAAA,IACH,OAAO;AAAA,IACP,kBAAkBrG,EAAGqG,KAAA,gBAAAA,EAAS,kBAAkBvG,EAAO,OAAO;AAAA,IAC9D,yBAAyBE;AAAA,MACvBqG,KAAA,gBAAAA,EAAS;AAAA,MACTvG,EAAO;AAAA,IACT;AAAA,IACA,WAAWE,EAAGqG,KAAA,gBAAAA,EAAS,WAAWvG,EAAO,WAAW;AAAA,EAAA,CACrD;AACH;;;;;;;;;;;;;;;;;;ACVO,SAASwG,GACdlD,GACAhD,IAAuB,QACvBiG,GAC0C;AAC1C,SAAOlD,EAAmCC,GAAW;AAAA,IACnD,GAAGiD;AAAA,IACH,4BAA4B;AAAA,IAC5B,OAAO;AAAA,IACP,kBAAkBrG,EAAGqG,KAAA,gBAAAA,EAAS,kBAAkBvG,EAAO,OAAO;AAAA,IAC9D,yBAAyBE;AAAA,MACvBqG,KAAA,gBAAAA,EAAS;AAAA,MACTvG,EAAO;AAAA,IACT;AAAA,IACA,WAAWE,EAAGqG,KAAA,gBAAAA,EAAS,WAAWvG,EAAO,cAAcA,EAAOM,CAAS,CAAC;AAAA,EAAA,CACzE;AACH;;;;;;;;;;ACpBgB,SAAAmG,GACdnD,GACAiD,GAC0C;AAC1C,SAAOlD,EAAmCC,GAAW;AAAA,IACnD,GAAGiD;AAAA,IACH,OAAO;AAAA,IACP,kBAAkBrG,EAAGqG,KAAA,gBAAAA,EAAS,kBAAkBvG,EAAO,OAAO;AAAA,IAC9D,yBAAyBE;AAAA,MACvBqG,KAAA,gBAAAA,EAAS;AAAA,MACTvG,EAAO;AAAA,IACT;AAAA,IACA,WAAWE,EAAGqG,KAAA,gBAAAA,EAAS,WAAWvG,EAAO,WAAW;AAAA,EAAA,CACrD;AACH;ACRO,MAAM0G,KAA4C,CAAC;AAAA,EACxD,cAAAC,IAAe;AAAA,EACf,MAAAC,IAAO;AAAA,EACP,UAAAjH;AACF,MAEI,gBAAAI,EAACwB,KAAQ,SAASqF,MAAS,WAAW,OAAO,MAAM,IAAID,GACpD,UAAAhH,EACH,CAAA;;GCVSkH,KAAwD,CAAC;AAAA,EACpE,SAAAC;AACF,MAEI,gBAAA3F,EAACiB,GAAI,EAAA,OAAO,QACV,UAAA;AAAA,EAAA,gBAAArC,EAACkB,GAAQ,EAAA;AAAA,EACR,gBAAAlB,EAAA,OAAA,EAAI,WAAWC,GAAO,oBAAqB,UAAQ8G,GAAA;AACtD,EAAA,CAAA,GCXSC,KAAsC,CAAC,EAAE,KAAAC,IAAM,GAAG,GAAG/D,QACzD,gBAAAlD,EAACqC,KAAI,QAAQ,GAAG,SAAS,GAAG,KAAA4E,GAAW,GAAG/D,EAAO,CAAA,GCE7CgE,KAAgD,CAAC;AAAA,EAC5D,UAAAtH;AAAA,EACA,UAAAF;AACF,MAEI,gBAAAM;AAAA,EAACoC;AAAA,EAAA;AAAA,IACC,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAA1C;AAAA,IAEC,UAAAE;AAAA,EAAA;AAAA,GCAMuH,KAAsC,CAAC;AAAA,EAClD,MAAAlG;AAAA,EACA,SAAA8F;AAAA,EACA,SAAAK;AAAA,EACA,MAAAC;AAAA,EACA,UAAAzH;AAAA,EACA,UAAAF;AAAA,EACA,UAAA4H;AACF,wBAEKJ,IACC,EAAA,UAAA,gBAAA9F;AAAA,EAAC4F;AAAA,EAAA;AAAA,IACC,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,UAAAtH;AAAA,IACA,UAAA4H;AAAA,IAEC,UAAA;AAAA,MAAArG,KAAS,gBAAAjB,EAAAuH,IAAA,EAAY,MAAAtG,GAAY,MAAM,SAAS;AAAA,MACjD,gBAAAjB,EAAC2G,MAAc,UAAQS,EAAA,CAAA;AAAA,MACtBC,KAAQ,gBAAArH,EAACwH,IAAK,EAAA,WAAW,UAAW,UAAKH,GAAA;AAAA,MACzCzH;AAAA,MACAmH,KAAY,gBAAA/G,EAAA8G,IAAA,EAAmB,SAAAC,EAAkB,CAAA;AAAA,IAAA;AAAA,EAAA;AAEtD,EAAA,CAAA,GC9BSU,KAA0C,CAAC;AAAA,EACtD,SAAAL;AAAA,EACA,cAAAR;AAAA,EACA,aAAAc;AAAA,EACA,cAAAC;AACF,MAEI,gBAAAvG,EAACC,GAAI,EAAA,gBAAgB,iBAClB,UAAA;AAAA,EAAA+F,KACE,gBAAApH,EAAA2G,IAAA,EAAa,cAAAC,GAA4B,MAAMc,GAC7C,UACHN,GAAA;AAAA,EAEF,gBAAApH,EAAC4C,IAAY,EAAA,SAAS+E,EAAc,CAAA;AACtC,EAAA,CAAA;;;GCdSC,KAA0C,CAAC;AAAA,EACtD,UAAAhI;AAAA,EACA,QAAAiI;AAAA,EACA,QAAAvH,IAAS;AACX,MAEI,gBAAAN;AAAA,EAACqB;AAAA,EAAA;AAAA,IACC,WAAWlB,EAAGF,GAAO,aAAa4H,KAAU5H,GAAO,MAAM;AAAA,IACzD,QAAQ;AAAA,IACR,QAAAK;AAAA,IAEC,UAAAV;AAAA,EAAA;AAAA;"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_5x3op_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_5x3op_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1{background-color:#fff}}._overlay_5x3op_1 ._modal_5x3op_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_5x3op_1 ._modal_5x3op_31{width:100%}}._overlay_5x3op_1 ._content_5x3op_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_5x3op_1 ._content_5x3op_41{top:0;width:100%;max-width:100%}}._overlay_5x3op_1 ._content_5x3op_41{animation:_appear_5x3op_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1 ._content_5x3op_41{box-shadow:none;top:0}}._overlay_5x3op_1 ._content_5x3op_41 :focus{outline:0}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle{cursor:move}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_5x3op_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_5x3op_1{0%{opacity:0}to{opacity:1}}._footer_5x3op_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_5x3op_105{position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_5x3op_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;top:0;right:0;bottom:0;left:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:#fff;position:absolute;transition:transform var(--swui-animation-time-medium) ease-in-out}._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}@media (max-width: 768px){._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:0;border-radius:0}}._portal_17ze5_1 ._content_17ze5_9:focus-visible{outline:unset}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._afterOpen_17ze5_36{transform:translate(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._beforeClose_17ze5_40{transform:translate(var(--translate-x-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._afterOpen_17ze5_36{transform:translateY(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._beforeClose_17ze5_40{transform:translateY(var(--translate-y-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._overlay_r9tkq_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_r9tkq_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_r9tkq_1{background-color:#fff}}._overlay_r9tkq_1 ._modal_r9tkq_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_r9tkq_1 ._content_r9tkq_38{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);animation:_appear_r9tkq_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_r9tkq_1 ._content_r9tkq_38{box-shadow:none;top:0}}._overlay_r9tkq_1 ._content_r9tkq_38 :focus{outline:0}._overlay_r9tkq_1 ._content_r9tkq_38._isDraggable_r9tkq_61 .draggable-modal-handle{cursor:move}._overlay_r9tkq_1 ._content_r9tkq_38._isDraggable_r9tkq_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_r9tkq_1 ._content_r9tkq_38._isDraggable_r9tkq_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_r9tkq_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_r9tkq_1{0%{opacity:0}to{opacity:1}}._footer_r9tkq_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_r9tkq_96{position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_r9tkq_96{position:static;box-shadow:none}}._overlay_15dqv_1{--swui-modal-animation-time: var(--swui-animation-time-medium);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_15dqv_1._afterOpen_15dqv_24:not(._beforeClose_15dqv_24){animation:_fadeIn_15dqv_1 var(--swui-modal-animation-time) forwards}._overlay_15dqv_1._beforeClose_15dqv_24{animation:_fadeOut_15dqv_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_15dqv_1{background-color:#fff}}._overlay_15dqv_1 ._modal_15dqv_36{max-width:100%;outline:none;pointer-events:none;padding:calc(var(--swui-metrics-space) * 2);box-sizing:border-box;max-height:100%;transform:translateY(-100%)}@media (max-width: 768px){._overlay_15dqv_1 ._modal_15dqv_36{padding:0;width:100%}}._overlay_15dqv_1 ._modal_15dqv_36._afterOpen_15dqv_24:not(._beforeClose_15dqv_24){animation:_slideIn_15dqv_1 var(--swui-modal-animation-time) forwards}._overlay_15dqv_1 ._modal_15dqv_36._beforeClose_15dqv_24{animation:_slideOut_15dqv_1 var(--swui-modal-animation-time) forwards}._overlay_15dqv_1 ._content_15dqv_59{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);height:100%;overflow:hidden;overflow-y:auto}@media (max-width: 768px){._overlay_15dqv_1 ._content_15dqv_59{border-radius:0;width:100%;max-width:100%;min-height:100vh}}@media (min-width: 769px){._overlay_15dqv_1 ._content_15dqv_59{border-radius:var(--swui-border-radius-large)}._overlay_15dqv_1 ._content_15dqv_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._overlay_15dqv_1 ._content_15dqv_59::-webkit-scrollbar{width:16px}}@media print{._overlay_15dqv_1 ._content_15dqv_59{box-shadow:none;top:0}}._overlay_15dqv_1 ._content_15dqv_59 :focus{outline:0}@keyframes _fadeIn_15dqv_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_15dqv_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_15dqv_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_15dqv_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_15dqv_148{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_15dqv_152{position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_15dqv_152{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}._alertDialog_14t8t_1{border:0;outline:0;border-radius:var(--swui-border-radius-large);margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}._alertDialog_14t8t_1:not([open]){display:none}._alertDialog_14t8t_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22[open]{animation:_slideOut_14t8t_1 .25s forwards}._alertDialog_14t8t_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-moz-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-moz-fit-content;height:fit-content}}._drawerDialog_11g6r_1._top_11g6r_54{top:0;bottom:unset}._drawerDialog_11g6r_1._top_11g6r_54[open]{animation:_slideInTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54._closing_11g6r_36[open]{animation:_slideOutTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55{top:unset;bottom:0}._drawerDialog_11g6r_1._bottom_11g6r_55[open]{animation:_slideInBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55._closing_11g6r_36[open]{animation:_slideOutBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1[open]{opacity:1;pointer-events:auto}@keyframes _slideInLeft_11g6r_1{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutLeft_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(-100%);opacity:1}}@keyframes _slideInTop_11g6r_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutTop_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(-100%);opacity:1}}@keyframes _slideInRight_11g6r_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutRight_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(100%);opacity:1}}@keyframes _slideInBottom_11g6r_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutBottom_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(100%);opacity:1}}._modalDialog_1teni_1{border:0;outline:0;margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}@media (min-width: 769px){._modalDialog_1teni_1{border-radius:var(--swui-border-radius-large)}._modalDialog_1teni_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._modalDialog_1teni_1::-webkit-scrollbar{width:16px}}._modalDialog_1teni_1:not([open]){display:none}._modalDialog_1teni_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36[open]{animation:_slideOut_1teni_1 .25s forwards}@media (max-width: 768px){._modalDialog_1teni_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1teni_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36::backdrop{animation:_fadeOut_1teni_1 .25s forwards}@keyframes _fadeIn_1teni_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1teni_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1teni_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1teni_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_1teni_100{width:100%;height:100%}}._modalActionButtons_s27nj_1{display:flex;flex-direction:row;gap:16px;justify-content:center}@media (max-width: 768px){._modalActionButtons_s27nj_1{flex-direction:column;justify-content:stretch}}._modalFooter_112wr_1._modalFooter_112wr_1{display:flex;align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:0 calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_112wr_1._modalFooter_112wr_1._sticky_112wr_10{position:sticky;bottom:0}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react-modal"),e=require("react/jsx-runtime"),l=require("react"),de=require("react-draggable"),u=require("classnames"),n=require("@stenajs-webui/core"),b=require("@stenajs-webui/elements"),_e=require("@stenajs-webui/theme"),ue=s=>{F.setAppElement(s)},me="_overlay_5x3op_1",fe="_fadeIn_5x3op_1",ge="_modal_5x3op_31",xe="_content_5x3op_41",he="_appear_5x3op_1",Ce="_isDraggable_5x3op_70",ye="_footer_5x3op_101",pe="_stickyFooter_5x3op_105",$={overlay:me,fadeIn:fe,modal:ge,content:xe,appear:he,isDraggable:Ce,footer:ye,stickyFooter:pe},P="draggable-modal-handle",R="draggable-modal-cancel",te=({width:s,maxWidth:t,draggable:o=!1,children:r,...d})=>{const g=l.useRef(null);return e.jsx(F,{overlayClassName:$.overlay,className:$.modal,...d,children:e.jsx(de,{handle:`.${P}`,cancel:`.${R}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!o,nodeRef:g,children:e.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":t},className:u($.content,{[$.isDraggable]:o}),ref:g,children:r})})})},we="_portal_17ze5_1",be="_overlay_17ze5_4",ve="_content_17ze5_9",je="_floating_17ze5_15",Ie="_slideFromLeft_17ze5_29",Ne="_slideFromRight_17ze5_30",De="_afterOpen_17ze5_36",Oe="_beforeClose_17ze5_40",$e="_slideFromTop_17ze5_45",Fe="_slideFromBottom_17ze5_46",f={portal:we,overlay:be,content:ve,floating:je,slideFromLeft:Ie,slideFromRight:Ne,afterOpen:De,beforeClose:Oe,slideFromTop:$e,slideFromBottom:Fe},ke=({background:s,zIndex:t,children:o,slideFrom:r="left",portalTarget:d,floating:g,...x})=>{const{height:h,width:v}=x;return e.jsx(F,{closeTimeoutMS:250,portalClassName:f.portal,overlayClassName:{base:f.overlay,afterOpen:f.afterOpen,beforeClose:f.beforeClose},className:{base:u(f.content,Be(r),g&&f.floating),afterOpen:f.afterOpen,beforeClose:f.beforeClose},style:{content:{width:v,height:h,background:s},overlay:{zIndex:t}},parentSelector:d?()=>d:void 0,...x,children:o})},Be=s=>{switch(s){case"left":return f.slideFromLeft;case"right":return f.slideFromRight;case"top":return f.slideFromTop;case"bottom":return f.slideFromBottom;default:return n.exhaustSwitchCase(s,f.slideFromLeft)}},Ae=({header:s,contentRight:t,onRequestClose:o,icon:r})=>e.jsx(n.Spacing,{position:"sticky",top:0,zIndex:100,background:_e.cssColor("--lhds-color-ui-50"),children:e.jsxs(n.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[e.jsxs(n.Row,{alignItems:"center",gap:2,children:[e.jsx(n.Space,{num:1}),r&&e.jsx(b.Icon,{icon:r,size:24}),e.jsx(n.Heading,{variant:"h4",children:s})]}),e.jsxs(n.Row,{gap:1,children:[t,e.jsx(b.FlatButton,{leftIcon:b.stenaTimes,onClick:o,variant:"danger"}),e.jsx(n.Space,{num:.5})]})]})}),Me="_overlay_r9tkq_1",qe="_fadeIn_r9tkq_1",Le="_modal_r9tkq_31",Se="_content_r9tkq_38",We="_appear_r9tkq_1",Ee="_isDraggable_r9tkq_61",ze="_footer_r9tkq_92",Te="_stickyFooter_r9tkq_96",T={overlay:Me,fadeIn:qe,modal:Le,content:Se,appear:We,isDraggable:Ee,footer:ze,stickyFooter:Te},He={overlay:{justifyContent:"center"}},Ge=({children:s,...t})=>e.jsx(F,{overlayClassName:T.overlay,className:T.modal,style:He,...t,children:e.jsx("div",{className:T.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Pe="_overlay_15dqv_1",Re="_afterOpen_15dqv_24",Ve="_beforeClose_15dqv_24",Xe="_fadeIn_15dqv_1",Ye="_fadeOut_15dqv_1",Je="_modal_15dqv_36",Ke="_slideIn_15dqv_1",Qe="_slideOut_15dqv_1",Ue="_content_15dqv_59",Ze="_footer_15dqv_148",et="_stickyFooter_15dqv_152",D={overlay:Pe,afterOpen:Re,beforeClose:Ve,fadeIn:Xe,fadeOut:Ye,modal:Je,slideIn:Ke,slideOut:Qe,content:Ue,footer:Ze,stickyFooter:et},se=({children:s,background:t,...o})=>{const r={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":t}};return e.jsx(F,{overlayClassName:{base:D.overlay,beforeClose:D.beforeClose,afterOpen:D.afterOpen},className:{base:D.modal,beforeClose:D.beforeClose,afterOpen:D.afterOpen},style:r,closeTimeoutMS:250,...o,children:e.jsx("div",{className:D.content,style:{"--swui-modal-width":"fit-content"},children:s})})},tt="_modal_4fwgb_1",st="_overlay_4fwgb_13",Z={modal:tt,overlay:st},ot=({headerIconLeft:s,headerText:t,shouldCloseOnOverlayClick:o=!1,shouldCloseOnEsc:r=!1,...d})=>e.jsx(F,{...d,isOpen:!0,shouldCloseOnOverlayClick:o,shouldCloseOnEsc:r,className:Z.modal,overlayClassName:Z.overlay,children:e.jsxs(n.Column,{spacing:2,alignItems:"center",children:[e.jsx(n.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(b.Spinner,{size:"small"})}),(s||t)&&e.jsxs(e.Fragment,{children:[e.jsx(n.Spacing,{}),e.jsxs(n.Row,{indent:2,children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(b.Icon,{size:14,icon:s,color:"white"}),e.jsx(n.Indent,{})]}),t&&e.jsx(n.Heading,{variant:"h4",color:"white",children:t})]})]})]})}),oe=({onRequestClose:s,header:t,headerText:o,closeButtonClassName:r})=>e.jsxs(n.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:P,children:[e.jsxs(n.Row,{flex:1,indent:!0,alignItems:"center",children:[o&&e.jsx(n.Txt,{className:R,size:"large",children:o}),t]}),e.jsx(n.Box,{alignSelf:"flex-start",children:e.jsx(b.CloseButton,{className:r,onClick:s})})]}),nt=({header:s,headerText:t,children:o,spacing:r,indent:d,draggable:g=!1,onRequestClose:x,closeButtonClassName:h,footer:v,disableStickyFooter:y=!1,...m})=>{const B=typeof r=="number"?r:1,k=typeof d=="number"?d:1;return e.jsxs(te,{...m,onRequestClose:x,draggable:g,children:[e.jsx(oe,{onRequestClose:x,header:s,headerText:t,closeButtonClassName:h}),e.jsx(n.Box,{spacing:B,indent:k,children:o}),v&&e.jsx(n.Box,{className:u($.footer,{[$.stickyFooter]:!y}),children:v})]})},rt=({children:s})=>e.jsx(n.Column,{indent:2,spacing:2,children:s}),q=l.createContext(void 0);function L(s,{ref:t,modal:o,contentWrapperClassName:r,closingClassName:d,contentWrapperStyle:g,dialogStyle:x,divInsteadOfDialog:h,disableCloseOnClickOutside:v,onResolve:y,onReject:m,className:B,background:k}){const le=l.useRef(null),_=t??le,[S,ae]=l.useReducer(a=>a+1,0),X=l.useRef(),j=l.useRef(),p=l.useRef(),C=l.useRef(),[Y,A]=l.useState(!1),[W,O]=l.useState(!1),[J,w]=l.useState(!1),E=s,ce=l.useCallback(a=>{var c,i;return X.current=new Promise((N,ie)=>{j.current=N,C.current=ie}),w(!1),A(!0),O(!0),ae(),p.current=a,o?(c=_.current)==null||c.showModal():(i=_.current)==null||i.show(),X.current},[_,o]),K=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=j.current)==null||i.call(j,a),p.current=void 0,y==null||y()},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=j.current)==null||N.call(j,a),p.current=void 0,y==null||y()},{once:!0})},[_,y,h]),Q=l.useCallback(()=>{var a;w(!1),A(!1),O(!1),(a=C.current)==null||a.call(C),m==null||m(),p.current=void 0},[m]),I=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=C.current)==null||i.call(C,a),m==null||m(),p.current=void 0},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=C.current)==null||N.call(C,a),m==null||m(),p.current=void 0},{once:!0})},[_,h,m]),U=l.useCallback(a=>{if(a.target!==_.current)return;const c=_.current.getBoundingClientRect();c.top<=a.clientY&&a.clientY<=c.top+c.height&&c.left<=a.clientX&&a.clientX<=c.left+c.width||I()},[_,I]),z=l.useMemo(()=>({resolve:K,reject:I}),[I,K]);return[l.useMemo(()=>h?e.jsx(se,{isOpen:Y,onRequestClose:I,background:k,children:e.jsx(q.Provider,{value:z,children:W&&l.createElement(E,{...p.current,key:S})})}):e.jsx("dialog",{onClick:v?void 0:U,onClose:Q,ref:_,className:u(B,J&&d),style:{background:k,...x},children:e.jsx("div",{style:g,className:r,children:W&&e.jsx(q.Provider,{value:z,children:l.createElement(E,{...p.current,key:S})})})}),[h,Y,I,k,z,W,E,S,v,U,Q,_,B,J,d,x,g,r]),{show:ce,reject:I}]}const lt=()=>{const s=l.useContext(q);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},at="_alertDialog_14t8t_1",ct="_slideIn_14t8t_1",it="_closing_14t8t_22",dt="_slideOut_14t8t_1",_t="_fadeIn_14t8t_1",ut="_fadeOut_14t8t_1",H={alertDialog:at,slideIn:ct,closing:it,slideOut:dt,fadeIn:_t,fadeOut:ut};function mt(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,H.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,H.contentWrapper),className:u(t==null?void 0:t.className,H.alertDialog)})}const ft="_drawerDialog_11g6r_1",gt="_left_11g6r_13",xt="_right_11g6r_14",ht="_contentWrapper_11g6r_19",Ct="_slideInLeft_11g6r_1",yt="_closing_11g6r_36",pt="_slideOutLeft_11g6r_1",wt="_slideInRight_11g6r_1",bt="_slideOutRight_11g6r_1",vt="_top_11g6r_54",jt="_bottom_11g6r_55",It="_slideInTop_11g6r_1",Nt="_slideOutTop_11g6r_1",Dt="_slideInBottom_11g6r_1",Ot="_slideOutBottom_11g6r_1",M={drawerDialog:ft,left:gt,right:xt,contentWrapper:ht,slideInLeft:Ct,closing:yt,slideOutLeft:pt,slideInRight:wt,slideOutRight:bt,top:vt,bottom:jt,slideInTop:It,slideOutTop:Nt,slideInBottom:Dt,slideOutBottom:Ot};function $t(s,t="left",o){return L(s,{...o,disableCloseOnClickOutside:!0,modal:!1,closingClassName:u(o==null?void 0:o.closingClassName,M.closing),contentWrapperClassName:u(o==null?void 0:o.contentWrapperClassName,M.contentWrapper),className:u(o==null?void 0:o.className,M.drawerDialog,M[t])})}const Ft="_modalDialog_1teni_1",kt="_slideIn_1teni_1",Bt="_closing_1teni_36",At="_slideOut_1teni_1",Mt="_fadeIn_1teni_1",qt="_fadeOut_1teni_1",Lt="_contentWrapper_1teni_100",G={modalDialog:Ft,slideIn:kt,closing:Bt,slideOut:At,fadeIn:Mt,fadeOut:qt,contentWrapper:Lt};function St(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,G.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,G.contentWrapper),className:u(t==null?void 0:t.className,G.modalDialog)})}const V=({headingLevel:s="h2",size:t="medium",children:o})=>e.jsx(n.Heading,{variant:t==="medium"?"h3":"h1",as:s,children:o}),Wt="_modalActionButtons_s27nj_1",Et={modalActionButtons:Wt},ne=({buttons:s})=>e.jsxs(n.Box,{width:"100%",children:[e.jsx(n.Spacing,{}),e.jsx("div",{className:Et.modalActionButtons,children:s})]}),re=({gap:s=3,...t})=>e.jsx(n.Box,{indent:3,spacing:3,gap:s,...t}),zt=({icon:s,buttons:t,heading:o,text:r,children:d,maxWidth:g,minWidth:x})=>e.jsxs(re,{flexDirection:"column",alignItems:"center",maxWidth:g,minWidth:x,children:[s&&e.jsx(b.CircledIcon,{icon:s,size:"large"}),e.jsx(V,{children:o}),r&&e.jsx(n.Text,{textAlign:"center",children:r}),d,t&&e.jsx(ne,{buttons:t})]}),Tt=({children:s})=>e.jsx(n.Column,{flex:1,height:"100%",justifyContent:"space-between",children:s}),Ht=({heading:s,headingLevel:t,headingSize:o,onClickClose:r})=>e.jsxs(n.Row,{justifyContent:"space-between",children:[s&&e.jsx(V,{headingLevel:t,size:o,children:s}),e.jsx(b.CloseButton,{onClick:r})]}),Gt="_modalFooter_112wr_1",Pt="_sticky_112wr_10",ee={modalFooter:Gt,sticky:Pt},Rt=({children:s,sticky:t,zIndex:o=4})=>e.jsx(n.Row,{className:u(ee.modalFooter,t&&ee.sticky),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,children:s});exports.Alert=Ge;exports.BaseWindow=te;exports.DRAGGABLE_CANCEL_CLASSNAME=R;exports.DRAGGABLE_HANDLE_CLASSNAME=P;exports.DialogContext=q;exports.Drawer=ke;exports.DrawerHeader=Ae;exports.InfoAlert=zt;exports.LoadingModal=ot;exports.Modal=se;exports.ModalActionButtons=ne;exports.ModalBody=re;exports.ModalContainer=Tt;exports.ModalFooter=Rt;exports.ModalHeader=Ht;exports.ModalHeading=V;exports.Window=nt;exports.WindowFooter=rt;exports.WindowHeader=oe;exports.setupDeclarativeModals=ue;exports.useAlertDialog=mt;exports.useDialog=L;exports.useDialogPromise=lt;exports.useDrawerDialog=$t;exports.useModalDialog=St;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react-modal"),e=require("react/jsx-runtime"),l=require("react"),_e=require("react-draggable"),u=require("classnames"),n=require("@stenajs-webui/core"),b=require("@stenajs-webui/elements"),ue=require("@stenajs-webui/theme"),me=s=>{F.setAppElement(s)},fe="_overlay_5x3op_1",ge="_fadeIn_5x3op_1",xe="_modal_5x3op_31",he="_content_5x3op_41",Ce="_appear_5x3op_1",ye="_isDraggable_5x3op_70",pe="_footer_5x3op_101",we="_stickyFooter_5x3op_105",$={overlay:fe,fadeIn:ge,modal:xe,content:he,appear:Ce,isDraggable:ye,footer:pe,stickyFooter:we},P="draggable-modal-handle",R="draggable-modal-cancel",te=({width:s,maxWidth:t,draggable:o=!1,children:r,...d})=>{const g=l.useRef(null);return e.jsx(F,{overlayClassName:$.overlay,className:$.modal,...d,children:e.jsx(_e,{handle:`.${P}`,cancel:`.${R}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!o,nodeRef:g,children:e.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":t},className:u($.content,{[$.isDraggable]:o}),ref:g,children:r})})})},be="_portal_17ze5_1",ve="_overlay_17ze5_4",je="_content_17ze5_9",Ie="_floating_17ze5_15",Ne="_slideFromLeft_17ze5_29",De="_slideFromRight_17ze5_30",Oe="_afterOpen_17ze5_36",$e="_beforeClose_17ze5_40",Fe="_slideFromTop_17ze5_45",ke="_slideFromBottom_17ze5_46",f={portal:be,overlay:ve,content:je,floating:Ie,slideFromLeft:Ne,slideFromRight:De,afterOpen:Oe,beforeClose:$e,slideFromTop:Fe,slideFromBottom:ke},Be=({background:s,zIndex:t,children:o,slideFrom:r="left",portalTarget:d,floating:g,...x})=>{const{height:h,width:v}=x;return e.jsx(F,{closeTimeoutMS:250,portalClassName:f.portal,overlayClassName:{base:f.overlay,afterOpen:f.afterOpen,beforeClose:f.beforeClose},className:{base:u(f.content,Ae(r),g&&f.floating),afterOpen:f.afterOpen,beforeClose:f.beforeClose},style:{content:{width:v,height:h,background:s},overlay:{zIndex:t}},parentSelector:d?()=>d:void 0,...x,children:o})},Ae=s=>{switch(s){case"left":return f.slideFromLeft;case"right":return f.slideFromRight;case"top":return f.slideFromTop;case"bottom":return f.slideFromBottom;default:return n.exhaustSwitchCase(s,f.slideFromLeft)}},Me=({header:s,contentRight:t,onRequestClose:o,icon:r})=>e.jsx(n.Spacing,{position:"sticky",top:0,zIndex:100,background:ue.cssColor("--lhds-color-ui-50"),children:e.jsxs(n.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[e.jsxs(n.Row,{alignItems:"center",gap:2,children:[e.jsx(n.Space,{num:1}),r&&e.jsx(b.Icon,{icon:r,size:24}),e.jsx(n.Heading,{variant:"h4",children:s})]}),e.jsxs(n.Row,{gap:1,children:[t,e.jsx(b.FlatButton,{leftIcon:b.stenaTimes,onClick:o,variant:"danger"}),e.jsx(n.Space,{num:.5})]})]})}),qe="_overlay_r9tkq_1",Le="_fadeIn_r9tkq_1",Se="_modal_r9tkq_31",We="_content_r9tkq_38",Ee="_appear_r9tkq_1",ze="_isDraggable_r9tkq_61",Te="_footer_r9tkq_92",He="_stickyFooter_r9tkq_96",T={overlay:qe,fadeIn:Le,modal:Se,content:We,appear:Ee,isDraggable:ze,footer:Te,stickyFooter:He},Ge={overlay:{justifyContent:"center"}},Pe=({children:s,...t})=>e.jsx(F,{overlayClassName:T.overlay,className:T.modal,style:Ge,...t,children:e.jsx("div",{className:T.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Re="_overlay_15dqv_1",Ve="_afterOpen_15dqv_24",Xe="_beforeClose_15dqv_24",Ye="_fadeIn_15dqv_1",Je="_fadeOut_15dqv_1",Ke="_modal_15dqv_36",Qe="_slideIn_15dqv_1",Ue="_slideOut_15dqv_1",Ze="_content_15dqv_59",et="_footer_15dqv_148",tt="_stickyFooter_15dqv_152",D={overlay:Re,afterOpen:Ve,beforeClose:Xe,fadeIn:Ye,fadeOut:Je,modal:Ke,slideIn:Qe,slideOut:Ue,content:Ze,footer:et,stickyFooter:tt},se=({children:s,background:t,...o})=>{const r={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":t}};return e.jsx(F,{overlayClassName:{base:D.overlay,beforeClose:D.beforeClose,afterOpen:D.afterOpen},className:{base:D.modal,beforeClose:D.beforeClose,afterOpen:D.afterOpen},style:r,closeTimeoutMS:250,...o,children:e.jsx("div",{className:D.content,style:{"--swui-modal-width":"fit-content"},children:s})})},st="_modal_4fwgb_1",ot="_overlay_4fwgb_13",Z={modal:st,overlay:ot},nt=({headerIconLeft:s,headerText:t,shouldCloseOnOverlayClick:o=!1,shouldCloseOnEsc:r=!1,...d})=>e.jsx(F,{...d,isOpen:!0,shouldCloseOnOverlayClick:o,shouldCloseOnEsc:r,className:Z.modal,overlayClassName:Z.overlay,children:e.jsxs(n.Column,{spacing:2,alignItems:"center",children:[e.jsx(n.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(b.Spinner,{size:"small"})}),(s||t)&&e.jsxs(e.Fragment,{children:[e.jsx(n.Spacing,{}),e.jsxs(n.Row,{indent:2,children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(b.Icon,{size:14,icon:s,color:"white"}),e.jsx(n.Indent,{})]}),t&&e.jsx(n.Heading,{variant:"h4",color:"white",children:t})]})]})]})}),oe=({onRequestClose:s,header:t,headerText:o,closeButtonClassName:r})=>e.jsxs(n.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:P,children:[e.jsxs(n.Row,{flex:1,indent:!0,alignItems:"center",children:[o&&e.jsx(n.Txt,{className:R,size:"large",children:o}),t]}),e.jsx(n.Box,{alignSelf:"flex-start",children:e.jsx(b.CloseButton,{className:r,onClick:s})})]}),rt=({header:s,headerText:t,children:o,spacing:r,indent:d,draggable:g=!1,onRequestClose:x,closeButtonClassName:h,footer:v,disableStickyFooter:y=!1,...m})=>{const B=typeof r=="number"?r:1,k=typeof d=="number"?d:1;return e.jsxs(te,{...m,onRequestClose:x,draggable:g,children:[e.jsx(oe,{onRequestClose:x,header:s,headerText:t,closeButtonClassName:h}),e.jsx(n.Box,{spacing:B,indent:k,children:o}),v&&e.jsx(n.Box,{className:u($.footer,{[$.stickyFooter]:!y}),children:v})]})},lt=({children:s})=>e.jsx(n.Column,{indent:2,spacing:2,children:s}),q=l.createContext(void 0);function L(s,{ref:t,modal:o,contentWrapperClassName:r,closingClassName:d,contentWrapperStyle:g,dialogStyle:x,divInsteadOfDialog:h,disableCloseOnClickOutside:v,onResolve:y,onReject:m,className:B,background:k}){const ae=l.useRef(null),_=t??ae,[S,ce]=l.useReducer(a=>a+1,0),X=l.useRef(),j=l.useRef(),p=l.useRef(),C=l.useRef(),[Y,A]=l.useState(!1),[W,O]=l.useState(!1),[J,w]=l.useState(!1),E=s,ie=l.useCallback(a=>{var c,i;return X.current=new Promise((N,de)=>{j.current=N,C.current=de}),w(!1),A(!0),O(!0),ce(),p.current=a,o?(c=_.current)==null||c.showModal():(i=_.current)==null||i.show(),X.current},[_,o]),K=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=j.current)==null||i.call(j,a),p.current=void 0,y==null||y()},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=j.current)==null||N.call(j,a),p.current=void 0,y==null||y()},{once:!0})},[_,y,h]),Q=l.useCallback(()=>{var a;w(!1),A(!1),O(!1),(a=C.current)==null||a.call(C),m==null||m(),p.current=void 0},[m]),I=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=C.current)==null||i.call(C,a),m==null||m(),p.current=void 0},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=C.current)==null||N.call(C,a),m==null||m(),p.current=void 0},{once:!0})},[_,h,m]),U=l.useCallback(a=>{if(a.target!==_.current)return;const c=_.current.getBoundingClientRect();c.top<=a.clientY&&a.clientY<=c.top+c.height&&c.left<=a.clientX&&a.clientX<=c.left+c.width||I()},[_,I]),z=l.useMemo(()=>({resolve:K,reject:I}),[I,K]);return[l.useMemo(()=>h?e.jsx(se,{isOpen:Y,onRequestClose:I,background:k,children:e.jsx(q.Provider,{value:z,children:W&&l.createElement(E,{...p.current,key:S})})}):e.jsx("dialog",{onClick:v?void 0:U,onClose:Q,ref:_,className:u(B,J&&d),style:{background:k,...x},children:e.jsx("div",{style:g,className:r,children:W&&e.jsx(q.Provider,{value:z,children:l.createElement(E,{...p.current,key:S})})})}),[h,Y,I,k,z,W,E,S,v,U,Q,_,B,J,d,x,g,r]),{show:ie,reject:I}]}const at=()=>{const s=l.useContext(q);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},ct="_alertDialog_14t8t_1",it="_slideIn_14t8t_1",dt="_closing_14t8t_22",_t="_slideOut_14t8t_1",ut="_fadeIn_14t8t_1",mt="_fadeOut_14t8t_1",H={alertDialog:ct,slideIn:it,closing:dt,slideOut:_t,fadeIn:ut,fadeOut:mt};function ft(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,H.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,H.contentWrapper),className:u(t==null?void 0:t.className,H.alertDialog)})}const gt="_drawerDialog_11g6r_1",xt="_left_11g6r_13",ht="_right_11g6r_14",Ct="_contentWrapper_11g6r_19",yt="_slideInLeft_11g6r_1",pt="_closing_11g6r_36",wt="_slideOutLeft_11g6r_1",bt="_slideInRight_11g6r_1",vt="_slideOutRight_11g6r_1",jt="_top_11g6r_54",It="_bottom_11g6r_55",Nt="_slideInTop_11g6r_1",Dt="_slideOutTop_11g6r_1",Ot="_slideInBottom_11g6r_1",$t="_slideOutBottom_11g6r_1",M={drawerDialog:gt,left:xt,right:ht,contentWrapper:Ct,slideInLeft:yt,closing:pt,slideOutLeft:wt,slideInRight:bt,slideOutRight:vt,top:jt,bottom:It,slideInTop:Nt,slideOutTop:Dt,slideInBottom:Ot,slideOutBottom:$t};function Ft(s,t="left",o){return L(s,{...o,disableCloseOnClickOutside:!0,modal:!1,closingClassName:u(o==null?void 0:o.closingClassName,M.closing),contentWrapperClassName:u(o==null?void 0:o.contentWrapperClassName,M.contentWrapper),className:u(o==null?void 0:o.className,M.drawerDialog,M[t])})}const kt="_modalDialog_1teni_1",Bt="_slideIn_1teni_1",At="_closing_1teni_36",Mt="_slideOut_1teni_1",qt="_fadeIn_1teni_1",Lt="_fadeOut_1teni_1",St="_contentWrapper_1teni_100",G={modalDialog:kt,slideIn:Bt,closing:At,slideOut:Mt,fadeIn:qt,fadeOut:Lt,contentWrapper:St};function Wt(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,G.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,G.contentWrapper),className:u(t==null?void 0:t.className,G.modalDialog)})}const V=({headingLevel:s="h2",size:t="medium",children:o})=>e.jsx(n.Heading,{variant:t==="medium"?"h3":"h1",as:s,children:o}),Et="_modalActionButtons_s27nj_1",zt={modalActionButtons:Et},ne=({buttons:s})=>e.jsxs(n.Box,{width:"100%",children:[e.jsx(n.Spacing,{}),e.jsx("div",{className:zt.modalActionButtons,children:s})]}),re=({gap:s=3,...t})=>e.jsx(n.Box,{indent:3,spacing:3,gap:s,...t}),le=({children:s,maxWidth:t})=>e.jsx(n.Column,{flex:1,height:"100%",justifyContent:"space-between",maxWidth:t,children:s}),Tt=({icon:s,buttons:t,heading:o,text:r,children:d,maxWidth:g,minWidth:x})=>e.jsx(le,{children:e.jsxs(re,{flexDirection:"column",alignItems:"center",maxWidth:g,minWidth:x,children:[s&&e.jsx(b.CircledIcon,{icon:s,size:"large"}),e.jsx(V,{children:o}),r&&e.jsx(n.Text,{textAlign:"center",children:r}),d,t&&e.jsx(ne,{buttons:t})]})}),Ht=({heading:s,headingLevel:t,headingSize:o,onClickClose:r})=>e.jsxs(n.Row,{justifyContent:"space-between",children:[s&&e.jsx(V,{headingLevel:t,size:o,children:s}),e.jsx(b.CloseButton,{onClick:r})]}),Gt="_modalFooter_112wr_1",Pt="_sticky_112wr_10",ee={modalFooter:Gt,sticky:Pt},Rt=({children:s,sticky:t,zIndex:o=4})=>e.jsx(n.Row,{className:u(ee.modalFooter,t&&ee.sticky),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,children:s});exports.Alert=Pe;exports.BaseWindow=te;exports.DRAGGABLE_CANCEL_CLASSNAME=R;exports.DRAGGABLE_HANDLE_CLASSNAME=P;exports.DialogContext=q;exports.Drawer=Be;exports.DrawerHeader=Me;exports.InfoAlert=Tt;exports.LoadingModal=nt;exports.Modal=se;exports.ModalActionButtons=ne;exports.ModalBody=re;exports.ModalContainer=le;exports.ModalFooter=Rt;exports.ModalHeader=Ht;exports.ModalHeading=V;exports.Window=rt;exports.WindowFooter=lt;exports.WindowHeader=oe;exports.setupDeclarativeModals=me;exports.useAlertDialog=ft;exports.useDialog=L;exports.useDialogPromise=at;exports.useDrawerDialog=Ft;exports.useModalDialog=Wt;
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalContainer.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n );\n};\n","import * as React from \"react\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps extends PropsWithChildren {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({ children }) => {\n return (\n <Column flex={1} height={\"100%\"} justifyContent={\"space-between\"}>\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalContainer","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","ModalContainer","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/modal",
|
|
3
|
-
"version": "21.21.
|
|
3
|
+
"version": "21.21.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "mattias800",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"deploy": "gh-pages -d example/build"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@stenajs-webui/core": "21.21.
|
|
37
|
-
"@stenajs-webui/elements": "21.21.
|
|
38
|
-
"@stenajs-webui/theme": "21.21.
|
|
36
|
+
"@stenajs-webui/core": "21.21.3",
|
|
37
|
+
"@stenajs-webui/elements": "21.21.3",
|
|
38
|
+
"@stenajs-webui/theme": "21.21.3",
|
|
39
39
|
"@types/react-modal": "^3.16.3",
|
|
40
40
|
"classnames": "^2.5.1",
|
|
41
41
|
"react-draggable": "4.4.6",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"files": [
|
|
63
63
|
"dist"
|
|
64
64
|
],
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "ebe081ac9c3343e218d2da90f66806cc02c4d880"
|
|
66
66
|
}
|