@stenajs-webui/modal 20.17.2 → 20.17.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.
@@ -1,6 +1,10 @@
1
1
  import * as React from "react";
2
+ import { HeadingVariant } from "@stenajs-webui/core";
3
+ import { ModalHeadingSizeVariant } from "./ModalHeading";
2
4
  export interface ModalHeaderProps {
3
5
  heading?: string;
6
+ headingSize?: ModalHeadingSizeVariant;
7
+ headingLevel?: HeadingVariant;
4
8
  onClickClose?: () => void;
5
9
  }
6
10
  export declare const ModalHeader: React.FC<ModalHeaderProps>;
@@ -1,5 +1,9 @@
1
1
  import * as React from "react";
2
+ import { HeadingVariant } from "@stenajs-webui/core";
3
+ export type ModalHeadingSizeVariant = "medium" | "large";
2
4
  export interface ModalHeadingProps {
5
+ size?: ModalHeadingSizeVariant;
3
6
  children: string;
7
+ headingLevel?: HeadingVariant;
4
8
  }
5
9
  export declare const ModalHeading: React.FC<ModalHeadingProps>;
package/dist/index.es.js CHANGED
@@ -4,16 +4,16 @@ import { jsx as l, jsxs as c, Fragment as L } from "react/jsx-runtime";
4
4
  import { useRef as v, createContext as ee, useReducer as te, useState as q, useCallback as B, useMemo as le, createElement as H, useContext as ne } from "react";
5
5
  import oe from "react-draggable";
6
6
  import a from "classnames";
7
- import { exhaustSwitchCase as re, Spacing as j, Row as y, Space as P, Heading as z, Column as M, Box as N, Indent as ae, Txt as se, Text as ce } from "@stenajs-webui/core";
7
+ import { exhaustSwitchCase as re, Spacing as j, Row as h, Space as P, Heading as z, Column as M, Box as N, Indent as ae, Txt as se, Text as ce } from "@stenajs-webui/core";
8
8
  import { Icon as J, FlatButton as ie, stenaTimes as de, Spinner as _e, CloseButton as K, CircledIcon as me } from "@stenajs-webui/elements";
9
9
  import { cssColor as ue } from "@stenajs-webui/theme";
10
10
  const Pt = (t) => {
11
11
  w.setAppElement(t);
12
- }, ge = "_overlay_5x3op_1", fe = "_fadeIn_5x3op_1", ye = "_modal_5x3op_31", he = "_content_5x3op_41", Ce = "_appear_5x3op_1", pe = "_isDraggable_5x3op_70", ve = "_footer_5x3op_101", be = "_stickyFooter_5x3op_105", b = {
12
+ }, ge = "_overlay_5x3op_1", fe = "_fadeIn_5x3op_1", he = "_modal_5x3op_31", ye = "_content_5x3op_41", Ce = "_appear_5x3op_1", pe = "_isDraggable_5x3op_70", ve = "_footer_5x3op_101", be = "_stickyFooter_5x3op_105", b = {
13
13
  overlay: ge,
14
14
  fadeIn: fe,
15
- modal: ye,
16
- content: he,
15
+ modal: he,
16
+ content: ye,
17
17
  appear: Ce,
18
18
  isDraggable: pe,
19
19
  footer: ve,
@@ -130,18 +130,18 @@ const Pt = (t) => {
130
130
  zIndex: 100,
131
131
  background: ue("--lhds-color-ui-50"),
132
132
  children: /* @__PURE__ */ c(
133
- y,
133
+ h,
134
134
  {
135
135
  justifyContent: "space-between",
136
136
  alignItems: "center",
137
137
  height: "48px",
138
138
  children: [
139
- /* @__PURE__ */ c(y, { alignItems: "center", gap: 2, children: [
139
+ /* @__PURE__ */ c(h, { alignItems: "center", gap: 2, children: [
140
140
  /* @__PURE__ */ l(P, { num: 1 }),
141
141
  o && /* @__PURE__ */ l(J, { icon: o, size: 24 }),
142
142
  /* @__PURE__ */ l(z, { variant: "h4", children: t })
143
143
  ] }),
144
- /* @__PURE__ */ c(y, { gap: 1, children: [
144
+ /* @__PURE__ */ c(h, { gap: 1, children: [
145
145
  e,
146
146
  /* @__PURE__ */ l(
147
147
  ie,
@@ -247,7 +247,7 @@ const Pt = (t) => {
247
247
  ),
248
248
  (t || e) && /* @__PURE__ */ c(L, { children: [
249
249
  /* @__PURE__ */ l(j, {}),
250
- /* @__PURE__ */ c(y, { indent: 2, children: [
250
+ /* @__PURE__ */ c(h, { indent: 2, children: [
251
251
  t && /* @__PURE__ */ c(L, { children: [
252
252
  /* @__PURE__ */ l(J, { size: 14, icon: t, color: "white" }),
253
253
  /* @__PURE__ */ l(ae, {})
@@ -263,14 +263,14 @@ const Pt = (t) => {
263
263
  headerText: n,
264
264
  closeButtonClassName: o
265
265
  }) => /* @__PURE__ */ c(
266
- y,
266
+ h,
267
267
  {
268
268
  spacing: 2,
269
269
  indent: 2,
270
270
  borderBottom: "1px solid var(--lhds-color-ui-300)",
271
271
  className: Q,
272
272
  children: [
273
- /* @__PURE__ */ c(y, { flex: 1, indent: !0, alignItems: "center", children: [
273
+ /* @__PURE__ */ c(h, { flex: 1, indent: !0, alignItems: "center", children: [
274
274
  n && /* @__PURE__ */ l(se, { className: U, size: "large", children: n }),
275
275
  e
276
276
  ] }),
@@ -331,8 +331,8 @@ function E(t, e) {
331
331
  (m) => {
332
332
  var g, f;
333
333
  return d.current = new Promise(
334
- (h, C) => {
335
- u.current = h, p.current = C;
334
+ (y, C) => {
335
+ u.current = y, p.current = C;
336
336
  }
337
337
  ), O(!1), $(!0), i(), _.current = m, e.modal ? (g = o.current) == null || g.showModal() : (f = o.current) == null || f.show(), d.current;
338
338
  },
@@ -343,8 +343,8 @@ function E(t, e) {
343
343
  O(!0), (g = o.current) == null || g.addEventListener(
344
344
  "animationend",
345
345
  () => {
346
- var f, h, C;
347
- O(!1), $(!1), (f = o.current) == null || f.close(), (h = u.current) == null || h.call(u, m), _.current = void 0, (C = e.onResolve) == null || C.call(e);
346
+ var f, y, C;
347
+ O(!1), $(!1), (f = o.current) == null || f.close(), (y = u.current) == null || y.call(u, m), _.current = void 0, (C = e.onResolve) == null || C.call(e);
348
348
  },
349
349
  { once: !0 }
350
350
  );
@@ -356,8 +356,8 @@ function E(t, e) {
356
356
  O(!0), (g = o.current) == null || g.addEventListener(
357
357
  "animationend",
358
358
  () => {
359
- var f, h, C;
360
- O(!1), $(!1), (f = o.current) == null || f.close(), (h = p.current) == null || h.call(p, m), (C = e.onReject) == null || C.call(e), _.current = void 0;
359
+ var f, y, C;
360
+ O(!1), $(!1), (f = o.current) == null || f.close(), (y = p.current) == null || y.call(p, m), (C = e.onReject) == null || C.call(e), _.current = void 0;
361
361
  },
362
362
  { once: !0 }
363
363
  );
@@ -425,7 +425,7 @@ function Zt(t, e) {
425
425
  className: a(e == null ? void 0 : e.className, A.alertDialog)
426
426
  });
427
427
  }
428
- const st = "_drawerDialog_11g6r_1", ct = "_left_11g6r_13", it = "_right_11g6r_14", dt = "_contentWrapper_11g6r_19", _t = "_slideInLeft_11g6r_1", mt = "_closing_11g6r_36", ut = "_slideOutLeft_11g6r_1", gt = "_slideInRight_11g6r_1", ft = "_slideOutRight_11g6r_1", yt = "_top_11g6r_54", ht = "_bottom_11g6r_55", Ct = "_slideInTop_11g6r_1", pt = "_slideOutTop_11g6r_1", vt = "_slideInBottom_11g6r_1", bt = "_slideOutBottom_11g6r_1", D = {
428
+ const st = "_drawerDialog_11g6r_1", ct = "_left_11g6r_13", it = "_right_11g6r_14", dt = "_contentWrapper_11g6r_19", _t = "_slideInLeft_11g6r_1", mt = "_closing_11g6r_36", ut = "_slideOutLeft_11g6r_1", gt = "_slideInRight_11g6r_1", ft = "_slideOutRight_11g6r_1", ht = "_top_11g6r_54", yt = "_bottom_11g6r_55", Ct = "_slideInTop_11g6r_1", pt = "_slideOutTop_11g6r_1", vt = "_slideInBottom_11g6r_1", bt = "_slideOutBottom_11g6r_1", D = {
429
429
  drawerDialog: st,
430
430
  left: ct,
431
431
  right: it,
@@ -435,8 +435,8 @@ const st = "_drawerDialog_11g6r_1", ct = "_left_11g6r_13", it = "_right_11g6r_14
435
435
  slideOutLeft: ut,
436
436
  slideInRight: gt,
437
437
  slideOutRight: ft,
438
- top: yt,
439
- bottom: ht,
438
+ top: ht,
439
+ bottom: yt,
440
440
  slideInTop: Ct,
441
441
  slideOutTop: pt,
442
442
  slideInBottom: vt,
@@ -476,7 +476,11 @@ function tl(t, e) {
476
476
  className: a(e == null ? void 0 : e.className, S.modalDialog)
477
477
  });
478
478
  }
479
- const Y = ({ children: t }) => /* @__PURE__ */ l(z, { variant: "h3", as: "h2", children: t }), xt = "_modalActionButtons_s27nj_1", Ft = {
479
+ const Y = ({
480
+ headingLevel: t = "h2",
481
+ size: e = "medium",
482
+ children: n
483
+ }) => /* @__PURE__ */ l(z, { variant: e === "medium" ? "h3" : "h1", as: t, children: n }), xt = "_modalActionButtons_s27nj_1", Ft = {
480
484
  modalActionButtons: xt
481
485
  }, Bt = ({
482
486
  buttons: t
@@ -508,10 +512,12 @@ const Y = ({ children: t }) => /* @__PURE__ */ l(z, { variant: "h3", as: "h2", c
508
512
  }
509
513
  ), nl = ({ children: t }) => /* @__PURE__ */ l(M, { flex: 1, height: "100%", justifyContent: "space-between", children: t }), ol = ({
510
514
  heading: t,
511
- onClickClose: e
512
- }) => /* @__PURE__ */ c(y, { justifyContent: "space-between", children: [
513
- t && /* @__PURE__ */ l(Y, { children: t }),
514
- /* @__PURE__ */ l(K, { onClick: e })
515
+ headingLevel: e,
516
+ headingSize: n,
517
+ onClickClose: o
518
+ }) => /* @__PURE__ */ c(h, { justifyContent: "space-between", children: [
519
+ t && /* @__PURE__ */ l(Y, { headingLevel: e, size: n, children: t }),
520
+ /* @__PURE__ */ l(K, { onClick: o })
515
521
  ] }), Rt = "_modalFooter_112wr_1", At = "_sticky_112wr_10", V = {
516
522
  modalFooter: Rt,
517
523
  sticky: At
@@ -520,7 +526,7 @@ const Y = ({ children: t }) => /* @__PURE__ */ l(z, { variant: "h3", as: "h2", c
520
526
  sticky: e,
521
527
  zIndex: n = 4
522
528
  }) => /* @__PURE__ */ l(
523
- y,
529
+ h,
524
530
  {
525
531
  className: a(V.modalFooter, e && V.sticky),
526
532
  shadow: "var(--swui-sticky-footer-shadow)",
@@ -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\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\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 { 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 ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext } from \"./DialogContext\";\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 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 options: DialogOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = options.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 const [contentVisible, setContentVisible] = useState(false);\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 setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (options.modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, options.modal]\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n setClosing(true);\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 options.onResolve?.();\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n options.onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const dialogElement = useMemo<ReactNode>(\n () => (\n <DialogContext.Provider value={{ resolve, reject }}>\n <dialog\n onClick={\n options.disableCloseOnClickOutside ? undefined : () => reject()\n }\n ref={currentRef}\n className={cx(options.className, closing && options.closingClassName)}\n style={options.dialogStyle}\n >\n {options.disableCloseOnClickOutside ? (\n <>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </>\n ) : (\n <div\n style={options.contentWrapperStyle}\n className={options.contentWrapperClassName}\n onClick={\n options.disableCloseOnClickOutside\n ? undefined\n : (ev) => ev.stopPropagation()\n }\n >\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </div>\n )}\n </dialog>\n </DialogContext.Provider>\n ),\n [\n resolve,\n reject,\n options.disableCloseOnClickOutside,\n options.className,\n options.closingClassName,\n options.dialogStyle,\n options.contentWrapperStyle,\n options.contentWrapperClassName,\n currentRef,\n closing,\n contentVisible,\n Comp,\n key,\n ]\n );\n\n return [dialogElement, { 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 } from \"@stenajs-webui/core\";\n\nexport interface ModalHeadingProps {\n children: string;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({ children }) => {\n return (\n <Heading variant={\"h3\"} as={\"h2\"}>\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 { Row } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && <ModalHeading>{heading}</ModalHeading>}\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","options","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","contentVisible","setContentVisible","useState","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","_c","error","useMemo","createElement","ev","useDialogPromise","context","useContext","useAlertDialog","useDrawerDialog","useModalDialog","ModalHeading","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalContainer","ModalHeader","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/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\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\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 { 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 ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext } from \"./DialogContext\";\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 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 options: DialogOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = options.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 const [contentVisible, setContentVisible] = useState(false);\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 setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (options.modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, options.modal]\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n setClosing(true);\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 options.onResolve?.();\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n options.onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const dialogElement = useMemo<ReactNode>(\n () => (\n <DialogContext.Provider value={{ resolve, reject }}>\n <dialog\n onClick={\n options.disableCloseOnClickOutside ? undefined : () => reject()\n }\n ref={currentRef}\n className={cx(options.className, closing && options.closingClassName)}\n style={options.dialogStyle}\n >\n {options.disableCloseOnClickOutside ? (\n <>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </>\n ) : (\n <div\n style={options.contentWrapperStyle}\n className={options.contentWrapperClassName}\n onClick={\n options.disableCloseOnClickOutside\n ? undefined\n : (ev) => ev.stopPropagation()\n }\n >\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </div>\n )}\n </dialog>\n </DialogContext.Provider>\n ),\n [\n resolve,\n reject,\n options.disableCloseOnClickOutside,\n options.className,\n options.closingClassName,\n options.dialogStyle,\n options.contentWrapperStyle,\n options.contentWrapperClassName,\n currentRef,\n closing,\n contentVisible,\n Comp,\n key,\n ]\n );\n\n return [dialogElement, { 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","options","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","contentVisible","setContentVisible","useState","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","_c","error","useMemo","createElement","ev","useDialogPromise","context","useContext","useAlertDialog","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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"}
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:-webkit-sticky;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:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_r9tkq_96{position:static;box-shadow:none}}._overlay_1rolx_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_1rolx_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1rolx_1{background-color:#fff}}._overlay_1rolx_1 ._modal_1rolx_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_1rolx_1 ._modal_1rolx_31{width:100%}}._overlay_1rolx_1 ._content_1rolx_41{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)}@media (max-width: 768px){._overlay_1rolx_1 ._content_1rolx_41{border-radius:0;width:100%;max-width:100%;height:100vh}}._overlay_1rolx_1 ._content_1rolx_41{animation:_appear_1rolx_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1rolx_1 ._content_1rolx_41{box-shadow:none;top:0}}._overlay_1rolx_1 ._content_1rolx_41 :focus{outline:0}._overlay_1rolx_1 ._content_1rolx_41._isDraggable_1rolx_71 .draggable-modal-handle{cursor:move}._overlay_1rolx_1 ._content_1rolx_41._isDraggable_1rolx_71 .draggable-modal-handle .draggable-modal-cancel,._overlay_1rolx_1 ._content_1rolx_41._isDraggable_1rolx_71 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1rolx_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1rolx_1{0%{opacity:0}to{opacity:1}}._footer_1rolx_102{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1rolx_106{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1rolx_106{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:-webkit-fit-content;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:-webkit-fit-content;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_1cbj8_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_1cbj8_1{border-radius:var(--swui-border-radius-large)}}._modalDialog_1cbj8_1:not([open]){display:none}._modalDialog_1cbj8_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1cbj8_1 .25s forwards}._modalDialog_1cbj8_1._closing_1cbj8_25[open]{animation:_slideOut_1cbj8_1 .25s forwards}@media (max-width: 768px){._modalDialog_1cbj8_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1cbj8_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1cbj8_1 .25s forwards}._modalDialog_1cbj8_1._closing_1cbj8_25::backdrop{animation:_fadeOut_1cbj8_1 .25s forwards}@keyframes _fadeIn_1cbj8_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1cbj8_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1cbj8_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1cbj8_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_1cbj8_89{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:-webkit-sticky;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 b=require("react-modal"),t=require("react/jsx-runtime"),a=require("react"),J=require("react-draggable"),c=require("classnames"),l=require("@stenajs-webui/core"),y=require("@stenajs-webui/elements"),K=require("@stenajs-webui/theme"),Q=s=>{b.setAppElement(s)},U="_overlay_5x3op_1",X="_fadeIn_5x3op_1",Y="_modal_5x3op_31",Z="_content_5x3op_41",ee="_appear_5x3op_1",te="_isDraggable_5x3op_70",se="_footer_5x3op_101",oe="_stickyFooter_5x3op_105",w={overlay:U,fadeIn:X,modal:Y,content:Z,appear:ee,isDraggable:te,footer:se,stickyFooter:oe},M="draggable-modal-handle",S="draggable-modal-cancel",q=({width:s,maxWidth:e,draggable:o=!1,children:n,...r})=>{const d=a.useRef(null);return t.jsx(b,{overlayClassName:w.overlay,className:w.modal,...r,children:t.jsx(J,{handle:`.${M}`,cancel:`.${S}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!o,nodeRef:d,children:t.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":e},className:c(w.content,{[w.isDraggable]:o}),ref:d,children:n})})})},le="_portal_17ze5_1",ne="_overlay_17ze5_4",ae="_content_17ze5_9",re="_floating_17ze5_15",ce="_slideFromLeft_17ze5_29",ie="_slideFromRight_17ze5_30",de="_afterOpen_17ze5_36",_e="_beforeClose_17ze5_40",ue="_slideFromTop_17ze5_45",me="_slideFromBottom_17ze5_46",i={portal:le,overlay:ne,content:ae,floating:re,slideFromLeft:ce,slideFromRight:ie,afterOpen:de,beforeClose:_e,slideFromTop:ue,slideFromBottom:me},ge=({background:s,zIndex:e,children:o,slideFrom:n="left",portalTarget:r,floating:d,..._})=>{const{height:g,width:u}=_;return t.jsx(b,{closeTimeoutMS:250,portalClassName:i.portal,overlayClassName:{base:i.overlay,afterOpen:i.afterOpen,beforeClose:i.beforeClose},className:{base:c(i.content,fe(n),d&&i.floating),afterOpen:i.afterOpen,beforeClose:i.beforeClose},style:{content:{width:u,height:g,background:s},overlay:{zIndex:e}},parentSelector:r?()=>r:void 0,..._,children:o})},fe=s=>{switch(s){case"left":return i.slideFromLeft;case"right":return i.slideFromRight;case"top":return i.slideFromTop;case"bottom":return i.slideFromBottom;default:return l.exhaustSwitchCase(s,i.slideFromLeft)}},xe=({header:s,contentRight:e,onRequestClose:o,icon:n})=>t.jsx(l.Spacing,{position:"sticky",top:0,zIndex:100,background:K.cssColor("--lhds-color-ui-50"),children:t.jsxs(l.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[t.jsxs(l.Row,{alignItems:"center",gap:2,children:[t.jsx(l.Space,{num:1}),n&&t.jsx(y.Icon,{icon:n,size:24}),t.jsx(l.Heading,{variant:"h4",children:s})]}),t.jsxs(l.Row,{gap:1,children:[e,t.jsx(y.FlatButton,{leftIcon:y.stenaTimes,onClick:o,variant:"danger"}),t.jsx(l.Space,{num:.5})]})]})}),ye="_overlay_r9tkq_1",he="_fadeIn_r9tkq_1",Ce="_modal_r9tkq_31",je="_content_r9tkq_38",we="_appear_r9tkq_1",be="_isDraggable_r9tkq_61",ve="_footer_r9tkq_92",Ne="_stickyFooter_r9tkq_96",F={overlay:ye,fadeIn:he,modal:Ce,content:je,appear:we,isDraggable:be,footer:ve,stickyFooter:Ne},pe={overlay:{justifyContent:"center"}},De=({children:s,...e})=>t.jsx(b,{overlayClassName:F.overlay,className:F.modal,style:pe,...e,children:t.jsx("div",{className:F.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Ie="_overlay_1rolx_1",Oe="_fadeIn_1rolx_1",ke="_modal_1rolx_31",$e="_content_1rolx_41",Fe="_appear_1rolx_1",Re="_isDraggable_1rolx_71",Ae="_footer_1rolx_102",Be="_stickyFooter_1rolx_106",R={overlay:Ie,fadeIn:Oe,modal:ke,content:$e,appear:Fe,isDraggable:Re,footer:Ae,stickyFooter:Be},Me={overlay:{justifyContent:"center"}},Se=({children:s,...e})=>t.jsx(b,{overlayClassName:R.overlay,className:R.modal,style:Me,...e,children:t.jsx("div",{className:R.content,style:{"--swui-modal-width":"fit-content"},children:s})}),We="_modal_4fwgb_1",Le="_overlay_4fwgb_13",E={modal:We,overlay:Le},Ee=({headerIconLeft:s,headerText:e,shouldCloseOnOverlayClick:o=!1,shouldCloseOnEsc:n=!1,...r})=>t.jsx(b,{...r,isOpen:!0,shouldCloseOnOverlayClick:o,shouldCloseOnEsc:n,className:E.modal,overlayClassName:E.overlay,children:t.jsxs(l.Column,{spacing:2,alignItems:"center",children:[t.jsx(l.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:t.jsx(y.Spinner,{size:"small"})}),(s||e)&&t.jsxs(t.Fragment,{children:[t.jsx(l.Spacing,{}),t.jsxs(l.Row,{indent:2,children:[s&&t.jsxs(t.Fragment,{children:[t.jsx(y.Icon,{size:14,icon:s,color:"white"}),t.jsx(l.Indent,{})]}),e&&t.jsx(l.Heading,{variant:"h4",color:"white",children:e})]})]})]})}),H=({onRequestClose:s,header:e,headerText:o,closeButtonClassName:n})=>t.jsxs(l.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:M,children:[t.jsxs(l.Row,{flex:1,indent:!0,alignItems:"center",children:[o&&t.jsx(l.Txt,{className:S,size:"large",children:o}),e]}),t.jsx(l.Box,{alignSelf:"flex-start",children:t.jsx(y.CloseButton,{className:n,onClick:s})})]}),ze=({header:s,headerText:e,children:o,spacing:n,indent:r,draggable:d=!1,onRequestClose:_,closeButtonClassName:g,footer:u,disableStickyFooter:j=!1,...v})=>{const N=typeof n=="number"?n:1,D=typeof r=="number"?r:1;return t.jsxs(q,{...v,onRequestClose:_,draggable:d,children:[t.jsx(H,{onRequestClose:_,header:s,headerText:e,closeButtonClassName:g}),t.jsx(l.Box,{spacing:N,indent:D,children:o}),u&&t.jsx(l.Box,{className:c(w.footer,{[w.stickyFooter]:!j}),children:u})]})},qe=({children:s})=>t.jsx(l.Column,{indent:2,spacing:2,children:s}),T=a.createContext(void 0);function k(s,e){const o=a.useRef(null),n=e.ref??o,[r,d]=a.useReducer(m=>m+1,0),_=a.useRef(),g=a.useRef(),u=a.useRef(),j=a.useRef(),[v,N]=a.useState(!1),[D,p]=a.useState(!1),$=s,V=a.useCallback(m=>{var f,x;return _.current=new Promise((h,C)=>{g.current=h,j.current=C}),p(!1),N(!0),d(),u.current=m,e.modal?(f=n.current)==null||f.showModal():(x=n.current)==null||x.show(),_.current},[n,e.modal]),L=a.useCallback(m=>{var f;p(!0),(f=n.current)==null||f.addEventListener("animationend",()=>{var x,h,C;p(!1),N(!1),(x=n.current)==null||x.close(),(h=g.current)==null||h.call(g,m),u.current=void 0,(C=e.onResolve)==null||C.call(e)},{once:!0})},[n,e]),I=a.useCallback(m=>{var f;p(!0),(f=n.current)==null||f.addEventListener("animationend",()=>{var x,h,C;p(!1),N(!1),(x=n.current)==null||x.close(),(h=j.current)==null||h.call(j,m),(C=e.onReject)==null||C.call(e),u.current=void 0},{once:!0})},[n,e]);return[a.useMemo(()=>t.jsx(T.Provider,{value:{resolve:L,reject:I},children:t.jsx("dialog",{onClick:e.disableCloseOnClickOutside?void 0:()=>I(),ref:n,className:c(e.className,D&&e.closingClassName),style:e.dialogStyle,children:e.disableCloseOnClickOutside?t.jsx(t.Fragment,{children:v&&a.createElement($,{...u.current,key:r})}):t.jsx("div",{style:e.contentWrapperStyle,className:e.contentWrapperClassName,onClick:e.disableCloseOnClickOutside?void 0:m=>m.stopPropagation(),children:v&&a.createElement($,{...u.current,key:r})})})}),[L,I,e.disableCloseOnClickOutside,e.className,e.closingClassName,e.dialogStyle,e.contentWrapperStyle,e.contentWrapperClassName,n,D,v,$,r]),{show:V,reject:I}]}const He=()=>{const s=a.useContext(T);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},Te="_alertDialog_14t8t_1",Ge="_slideIn_14t8t_1",Pe="_closing_14t8t_22",Ve="_slideOut_14t8t_1",Je="_fadeIn_14t8t_1",Ke="_fadeOut_14t8t_1",A={alertDialog:Te,slideIn:Ge,closing:Pe,slideOut:Ve,fadeIn:Je,fadeOut:Ke};function Qe(s,e){return k(s,{...e,modal:!0,closingClassName:c(e==null?void 0:e.closingClassName,A.closing),contentWrapperClassName:c(e==null?void 0:e.contentWrapperClassName,A.contentWrapper),className:c(e==null?void 0:e.className,A.alertDialog)})}const Ue="_drawerDialog_11g6r_1",Xe="_left_11g6r_13",Ye="_right_11g6r_14",Ze="_contentWrapper_11g6r_19",et="_slideInLeft_11g6r_1",tt="_closing_11g6r_36",st="_slideOutLeft_11g6r_1",ot="_slideInRight_11g6r_1",lt="_slideOutRight_11g6r_1",nt="_top_11g6r_54",at="_bottom_11g6r_55",rt="_slideInTop_11g6r_1",ct="_slideOutTop_11g6r_1",it="_slideInBottom_11g6r_1",dt="_slideOutBottom_11g6r_1",O={drawerDialog:Ue,left:Xe,right:Ye,contentWrapper:Ze,slideInLeft:et,closing:tt,slideOutLeft:st,slideInRight:ot,slideOutRight:lt,top:nt,bottom:at,slideInTop:rt,slideOutTop:ct,slideInBottom:it,slideOutBottom:dt};function _t(s,e="left",o){return k(s,{...o,disableCloseOnClickOutside:!0,modal:!1,closingClassName:c(o==null?void 0:o.closingClassName,O.closing),contentWrapperClassName:c(o==null?void 0:o.contentWrapperClassName,O.contentWrapper),className:c(o==null?void 0:o.className,O.drawerDialog,O[e])})}const ut="_modalDialog_1cbj8_1",mt="_slideIn_1cbj8_1",gt="_closing_1cbj8_25",ft="_slideOut_1cbj8_1",xt="_fadeIn_1cbj8_1",yt="_fadeOut_1cbj8_1",ht="_contentWrapper_1cbj8_89",B={modalDialog:ut,slideIn:mt,closing:gt,slideOut:ft,fadeIn:xt,fadeOut:yt,contentWrapper:ht};function Ct(s,e){return k(s,{...e,modal:!0,closingClassName:c(e==null?void 0:e.closingClassName,B.closing),contentWrapperClassName:c(e==null?void 0:e.contentWrapperClassName,B.contentWrapper),className:c(e==null?void 0:e.className,B.modalDialog)})}const W=({children:s})=>t.jsx(l.Heading,{variant:"h3",as:"h2",children:s}),jt="_modalActionButtons_s27nj_1",wt={modalActionButtons:jt},G=({buttons:s})=>t.jsxs(l.Box,{width:"100%",children:[t.jsx(l.Spacing,{}),t.jsx("div",{className:wt.modalActionButtons,children:s})]}),P=({gap:s=3,...e})=>t.jsx(l.Box,{indent:3,spacing:3,gap:s,...e}),bt=({icon:s,buttons:e,heading:o,text:n,children:r,maxWidth:d,minWidth:_})=>t.jsxs(P,{flexDirection:"column",alignItems:"center",maxWidth:d,minWidth:_,children:[s&&t.jsx(y.CircledIcon,{icon:s,size:"large"}),t.jsx(W,{children:o}),n&&t.jsx(l.Text,{textAlign:"center",children:n}),r,e&&t.jsx(G,{buttons:e})]}),vt=({children:s})=>t.jsx(l.Column,{flex:1,height:"100%",justifyContent:"space-between",children:s}),Nt=({heading:s,onClickClose:e})=>t.jsxs(l.Row,{justifyContent:"space-between",children:[s&&t.jsx(W,{children:s}),t.jsx(y.CloseButton,{onClick:e})]}),pt="_modalFooter_112wr_1",Dt="_sticky_112wr_10",z={modalFooter:pt,sticky:Dt},It=({children:s,sticky:e,zIndex:o=4})=>t.jsx(l.Row,{className:c(z.modalFooter,e&&z.sticky),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,children:s});exports.Alert=De;exports.BaseWindow=q;exports.DRAGGABLE_CANCEL_CLASSNAME=S;exports.DRAGGABLE_HANDLE_CLASSNAME=M;exports.Drawer=ge;exports.DrawerHeader=xe;exports.InfoAlert=bt;exports.LoadingModal=Ee;exports.Modal=Se;exports.ModalActionButtons=G;exports.ModalBody=P;exports.ModalContainer=vt;exports.ModalFooter=It;exports.ModalHeader=Nt;exports.ModalHeading=W;exports.Window=ze;exports.WindowFooter=qe;exports.WindowHeader=H;exports.setupDeclarativeModals=Q;exports.useAlertDialog=Qe;exports.useDialog=k;exports.useDialogPromise=He;exports.useDrawerDialog=_t;exports.useModalDialog=Ct;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react-modal"),t=require("react/jsx-runtime"),a=require("react"),J=require("react-draggable"),c=require("classnames"),n=require("@stenajs-webui/core"),y=require("@stenajs-webui/elements"),K=require("@stenajs-webui/theme"),Q=s=>{b.setAppElement(s)},U="_overlay_5x3op_1",X="_fadeIn_5x3op_1",Y="_modal_5x3op_31",Z="_content_5x3op_41",ee="_appear_5x3op_1",te="_isDraggable_5x3op_70",se="_footer_5x3op_101",oe="_stickyFooter_5x3op_105",w={overlay:U,fadeIn:X,modal:Y,content:Z,appear:ee,isDraggable:te,footer:se,stickyFooter:oe},M="draggable-modal-handle",S="draggable-modal-cancel",q=({width:s,maxWidth:e,draggable:o=!1,children:l,...r})=>{const d=a.useRef(null);return t.jsx(b,{overlayClassName:w.overlay,className:w.modal,...r,children:t.jsx(J,{handle:`.${M}`,cancel:`.${S}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!o,nodeRef:d,children:t.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":e},className:c(w.content,{[w.isDraggable]:o}),ref:d,children:l})})})},le="_portal_17ze5_1",ne="_overlay_17ze5_4",ae="_content_17ze5_9",re="_floating_17ze5_15",ce="_slideFromLeft_17ze5_29",ie="_slideFromRight_17ze5_30",de="_afterOpen_17ze5_36",_e="_beforeClose_17ze5_40",ue="_slideFromTop_17ze5_45",me="_slideFromBottom_17ze5_46",i={portal:le,overlay:ne,content:ae,floating:re,slideFromLeft:ce,slideFromRight:ie,afterOpen:de,beforeClose:_e,slideFromTop:ue,slideFromBottom:me},ge=({background:s,zIndex:e,children:o,slideFrom:l="left",portalTarget:r,floating:d,..._})=>{const{height:g,width:u}=_;return t.jsx(b,{closeTimeoutMS:250,portalClassName:i.portal,overlayClassName:{base:i.overlay,afterOpen:i.afterOpen,beforeClose:i.beforeClose},className:{base:c(i.content,fe(l),d&&i.floating),afterOpen:i.afterOpen,beforeClose:i.beforeClose},style:{content:{width:u,height:g,background:s},overlay:{zIndex:e}},parentSelector:r?()=>r:void 0,..._,children:o})},fe=s=>{switch(s){case"left":return i.slideFromLeft;case"right":return i.slideFromRight;case"top":return i.slideFromTop;case"bottom":return i.slideFromBottom;default:return n.exhaustSwitchCase(s,i.slideFromLeft)}},xe=({header:s,contentRight:e,onRequestClose:o,icon:l})=>t.jsx(n.Spacing,{position:"sticky",top:0,zIndex:100,background:K.cssColor("--lhds-color-ui-50"),children:t.jsxs(n.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[t.jsxs(n.Row,{alignItems:"center",gap:2,children:[t.jsx(n.Space,{num:1}),l&&t.jsx(y.Icon,{icon:l,size:24}),t.jsx(n.Heading,{variant:"h4",children:s})]}),t.jsxs(n.Row,{gap:1,children:[e,t.jsx(y.FlatButton,{leftIcon:y.stenaTimes,onClick:o,variant:"danger"}),t.jsx(n.Space,{num:.5})]})]})}),ye="_overlay_r9tkq_1",he="_fadeIn_r9tkq_1",Ce="_modal_r9tkq_31",je="_content_r9tkq_38",we="_appear_r9tkq_1",be="_isDraggable_r9tkq_61",ve="_footer_r9tkq_92",Ne="_stickyFooter_r9tkq_96",F={overlay:ye,fadeIn:he,modal:Ce,content:je,appear:we,isDraggable:be,footer:ve,stickyFooter:Ne},pe={overlay:{justifyContent:"center"}},De=({children:s,...e})=>t.jsx(b,{overlayClassName:F.overlay,className:F.modal,style:pe,...e,children:t.jsx("div",{className:F.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Ie="_overlay_1rolx_1",Oe="_fadeIn_1rolx_1",ke="_modal_1rolx_31",$e="_content_1rolx_41",Fe="_appear_1rolx_1",Re="_isDraggable_1rolx_71",Ae="_footer_1rolx_102",Be="_stickyFooter_1rolx_106",R={overlay:Ie,fadeIn:Oe,modal:ke,content:$e,appear:Fe,isDraggable:Re,footer:Ae,stickyFooter:Be},Me={overlay:{justifyContent:"center"}},Se=({children:s,...e})=>t.jsx(b,{overlayClassName:R.overlay,className:R.modal,style:Me,...e,children:t.jsx("div",{className:R.content,style:{"--swui-modal-width":"fit-content"},children:s})}),We="_modal_4fwgb_1",Le="_overlay_4fwgb_13",E={modal:We,overlay:Le},Ee=({headerIconLeft:s,headerText:e,shouldCloseOnOverlayClick:o=!1,shouldCloseOnEsc:l=!1,...r})=>t.jsx(b,{...r,isOpen:!0,shouldCloseOnOverlayClick:o,shouldCloseOnEsc:l,className:E.modal,overlayClassName:E.overlay,children:t.jsxs(n.Column,{spacing:2,alignItems:"center",children:[t.jsx(n.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:t.jsx(y.Spinner,{size:"small"})}),(s||e)&&t.jsxs(t.Fragment,{children:[t.jsx(n.Spacing,{}),t.jsxs(n.Row,{indent:2,children:[s&&t.jsxs(t.Fragment,{children:[t.jsx(y.Icon,{size:14,icon:s,color:"white"}),t.jsx(n.Indent,{})]}),e&&t.jsx(n.Heading,{variant:"h4",color:"white",children:e})]})]})]})}),H=({onRequestClose:s,header:e,headerText:o,closeButtonClassName:l})=>t.jsxs(n.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:M,children:[t.jsxs(n.Row,{flex:1,indent:!0,alignItems:"center",children:[o&&t.jsx(n.Txt,{className:S,size:"large",children:o}),e]}),t.jsx(n.Box,{alignSelf:"flex-start",children:t.jsx(y.CloseButton,{className:l,onClick:s})})]}),ze=({header:s,headerText:e,children:o,spacing:l,indent:r,draggable:d=!1,onRequestClose:_,closeButtonClassName:g,footer:u,disableStickyFooter:j=!1,...v})=>{const N=typeof l=="number"?l:1,D=typeof r=="number"?r:1;return t.jsxs(q,{...v,onRequestClose:_,draggable:d,children:[t.jsx(H,{onRequestClose:_,header:s,headerText:e,closeButtonClassName:g}),t.jsx(n.Box,{spacing:N,indent:D,children:o}),u&&t.jsx(n.Box,{className:c(w.footer,{[w.stickyFooter]:!j}),children:u})]})},qe=({children:s})=>t.jsx(n.Column,{indent:2,spacing:2,children:s}),T=a.createContext(void 0);function k(s,e){const o=a.useRef(null),l=e.ref??o,[r,d]=a.useReducer(m=>m+1,0),_=a.useRef(),g=a.useRef(),u=a.useRef(),j=a.useRef(),[v,N]=a.useState(!1),[D,p]=a.useState(!1),$=s,V=a.useCallback(m=>{var f,x;return _.current=new Promise((h,C)=>{g.current=h,j.current=C}),p(!1),N(!0),d(),u.current=m,e.modal?(f=l.current)==null||f.showModal():(x=l.current)==null||x.show(),_.current},[l,e.modal]),L=a.useCallback(m=>{var f;p(!0),(f=l.current)==null||f.addEventListener("animationend",()=>{var x,h,C;p(!1),N(!1),(x=l.current)==null||x.close(),(h=g.current)==null||h.call(g,m),u.current=void 0,(C=e.onResolve)==null||C.call(e)},{once:!0})},[l,e]),I=a.useCallback(m=>{var f;p(!0),(f=l.current)==null||f.addEventListener("animationend",()=>{var x,h,C;p(!1),N(!1),(x=l.current)==null||x.close(),(h=j.current)==null||h.call(j,m),(C=e.onReject)==null||C.call(e),u.current=void 0},{once:!0})},[l,e]);return[a.useMemo(()=>t.jsx(T.Provider,{value:{resolve:L,reject:I},children:t.jsx("dialog",{onClick:e.disableCloseOnClickOutside?void 0:()=>I(),ref:l,className:c(e.className,D&&e.closingClassName),style:e.dialogStyle,children:e.disableCloseOnClickOutside?t.jsx(t.Fragment,{children:v&&a.createElement($,{...u.current,key:r})}):t.jsx("div",{style:e.contentWrapperStyle,className:e.contentWrapperClassName,onClick:e.disableCloseOnClickOutside?void 0:m=>m.stopPropagation(),children:v&&a.createElement($,{...u.current,key:r})})})}),[L,I,e.disableCloseOnClickOutside,e.className,e.closingClassName,e.dialogStyle,e.contentWrapperStyle,e.contentWrapperClassName,l,D,v,$,r]),{show:V,reject:I}]}const He=()=>{const s=a.useContext(T);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},Te="_alertDialog_14t8t_1",Ge="_slideIn_14t8t_1",Pe="_closing_14t8t_22",Ve="_slideOut_14t8t_1",Je="_fadeIn_14t8t_1",Ke="_fadeOut_14t8t_1",A={alertDialog:Te,slideIn:Ge,closing:Pe,slideOut:Ve,fadeIn:Je,fadeOut:Ke};function Qe(s,e){return k(s,{...e,modal:!0,closingClassName:c(e==null?void 0:e.closingClassName,A.closing),contentWrapperClassName:c(e==null?void 0:e.contentWrapperClassName,A.contentWrapper),className:c(e==null?void 0:e.className,A.alertDialog)})}const Ue="_drawerDialog_11g6r_1",Xe="_left_11g6r_13",Ye="_right_11g6r_14",Ze="_contentWrapper_11g6r_19",et="_slideInLeft_11g6r_1",tt="_closing_11g6r_36",st="_slideOutLeft_11g6r_1",ot="_slideInRight_11g6r_1",lt="_slideOutRight_11g6r_1",nt="_top_11g6r_54",at="_bottom_11g6r_55",rt="_slideInTop_11g6r_1",ct="_slideOutTop_11g6r_1",it="_slideInBottom_11g6r_1",dt="_slideOutBottom_11g6r_1",O={drawerDialog:Ue,left:Xe,right:Ye,contentWrapper:Ze,slideInLeft:et,closing:tt,slideOutLeft:st,slideInRight:ot,slideOutRight:lt,top:nt,bottom:at,slideInTop:rt,slideOutTop:ct,slideInBottom:it,slideOutBottom:dt};function _t(s,e="left",o){return k(s,{...o,disableCloseOnClickOutside:!0,modal:!1,closingClassName:c(o==null?void 0:o.closingClassName,O.closing),contentWrapperClassName:c(o==null?void 0:o.contentWrapperClassName,O.contentWrapper),className:c(o==null?void 0:o.className,O.drawerDialog,O[e])})}const ut="_modalDialog_1cbj8_1",mt="_slideIn_1cbj8_1",gt="_closing_1cbj8_25",ft="_slideOut_1cbj8_1",xt="_fadeIn_1cbj8_1",yt="_fadeOut_1cbj8_1",ht="_contentWrapper_1cbj8_89",B={modalDialog:ut,slideIn:mt,closing:gt,slideOut:ft,fadeIn:xt,fadeOut:yt,contentWrapper:ht};function Ct(s,e){return k(s,{...e,modal:!0,closingClassName:c(e==null?void 0:e.closingClassName,B.closing),contentWrapperClassName:c(e==null?void 0:e.contentWrapperClassName,B.contentWrapper),className:c(e==null?void 0:e.className,B.modalDialog)})}const W=({headingLevel:s="h2",size:e="medium",children:o})=>t.jsx(n.Heading,{variant:e==="medium"?"h3":"h1",as:s,children:o}),jt="_modalActionButtons_s27nj_1",wt={modalActionButtons:jt},G=({buttons:s})=>t.jsxs(n.Box,{width:"100%",children:[t.jsx(n.Spacing,{}),t.jsx("div",{className:wt.modalActionButtons,children:s})]}),P=({gap:s=3,...e})=>t.jsx(n.Box,{indent:3,spacing:3,gap:s,...e}),bt=({icon:s,buttons:e,heading:o,text:l,children:r,maxWidth:d,minWidth:_})=>t.jsxs(P,{flexDirection:"column",alignItems:"center",maxWidth:d,minWidth:_,children:[s&&t.jsx(y.CircledIcon,{icon:s,size:"large"}),t.jsx(W,{children:o}),l&&t.jsx(n.Text,{textAlign:"center",children:l}),r,e&&t.jsx(G,{buttons:e})]}),vt=({children:s})=>t.jsx(n.Column,{flex:1,height:"100%",justifyContent:"space-between",children:s}),Nt=({heading:s,headingLevel:e,headingSize:o,onClickClose:l})=>t.jsxs(n.Row,{justifyContent:"space-between",children:[s&&t.jsx(W,{headingLevel:e,size:o,children:s}),t.jsx(y.CloseButton,{onClick:l})]}),pt="_modalFooter_112wr_1",Dt="_sticky_112wr_10",z={modalFooter:pt,sticky:Dt},It=({children:s,sticky:e,zIndex:o=4})=>t.jsx(n.Row,{className:c(z.modalFooter,e&&z.sticky),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,children:s});exports.Alert=De;exports.BaseWindow=q;exports.DRAGGABLE_CANCEL_CLASSNAME=S;exports.DRAGGABLE_HANDLE_CLASSNAME=M;exports.Drawer=ge;exports.DrawerHeader=xe;exports.InfoAlert=bt;exports.LoadingModal=Ee;exports.Modal=Se;exports.ModalActionButtons=G;exports.ModalBody=P;exports.ModalContainer=vt;exports.ModalFooter=It;exports.ModalHeader=Nt;exports.ModalHeading=W;exports.Window=ze;exports.WindowFooter=qe;exports.WindowHeader=H;exports.setupDeclarativeModals=Q;exports.useAlertDialog=Qe;exports.useDialog=k;exports.useDialogPromise=He;exports.useDrawerDialog=_t;exports.useModalDialog=Ct;
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\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\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 { 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 ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext } from \"./DialogContext\";\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 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 options: DialogOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = options.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 const [contentVisible, setContentVisible] = useState(false);\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 setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (options.modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, options.modal]\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n setClosing(true);\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 options.onResolve?.();\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n options.onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const dialogElement = useMemo<ReactNode>(\n () => (\n <DialogContext.Provider value={{ resolve, reject }}>\n <dialog\n onClick={\n options.disableCloseOnClickOutside ? undefined : () => reject()\n }\n ref={currentRef}\n className={cx(options.className, closing && options.closingClassName)}\n style={options.dialogStyle}\n >\n {options.disableCloseOnClickOutside ? (\n <>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </>\n ) : (\n <div\n style={options.contentWrapperStyle}\n className={options.contentWrapperClassName}\n onClick={\n options.disableCloseOnClickOutside\n ? undefined\n : (ev) => ev.stopPropagation()\n }\n >\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </div>\n )}\n </dialog>\n </DialogContext.Provider>\n ),\n [\n resolve,\n reject,\n options.disableCloseOnClickOutside,\n options.className,\n options.closingClassName,\n options.dialogStyle,\n options.contentWrapperStyle,\n options.contentWrapperClassName,\n currentRef,\n closing,\n contentVisible,\n Comp,\n key,\n ]\n );\n\n return [dialogElement, { 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 } from \"@stenajs-webui/core\";\n\nexport interface ModalHeadingProps {\n children: string;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({ children }) => {\n return (\n <Heading variant={\"h3\"} as={\"h2\"}>\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 { Row } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && <ModalHeading>{heading}</ModalHeading>}\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","options","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","contentVisible","setContentVisible","useState","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","_c","error","useMemo","createElement","ev","useDialogPromise","context","useContext","useAlertDialog","useDrawerDialog","useModalDialog","ModalHeading","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalContainer","ModalHeader","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/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\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\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 { 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 ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext } from \"./DialogContext\";\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 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 options: DialogOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = options.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 const [contentVisible, setContentVisible] = useState(false);\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 setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (options.modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, options.modal]\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n setClosing(true);\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 options.onResolve?.();\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n options.onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const dialogElement = useMemo<ReactNode>(\n () => (\n <DialogContext.Provider value={{ resolve, reject }}>\n <dialog\n onClick={\n options.disableCloseOnClickOutside ? undefined : () => reject()\n }\n ref={currentRef}\n className={cx(options.className, closing && options.closingClassName)}\n style={options.dialogStyle}\n >\n {options.disableCloseOnClickOutside ? (\n <>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </>\n ) : (\n <div\n style={options.contentWrapperStyle}\n className={options.contentWrapperClassName}\n onClick={\n options.disableCloseOnClickOutside\n ? undefined\n : (ev) => ev.stopPropagation()\n }\n >\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </div>\n )}\n </dialog>\n </DialogContext.Provider>\n ),\n [\n resolve,\n reject,\n options.disableCloseOnClickOutside,\n options.className,\n options.closingClassName,\n options.dialogStyle,\n options.contentWrapperStyle,\n options.contentWrapperClassName,\n currentRef,\n closing,\n contentVisible,\n Comp,\n key,\n ]\n );\n\n return [dialogElement, { 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","options","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","contentVisible","setContentVisible","useState","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","_c","error","useMemo","createElement","ev","useDialogPromise","context","useContext","useAlertDialog","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stenajs-webui/modal",
3
- "version": "20.17.2",
3
+ "version": "20.17.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": "20.17.2",
37
- "@stenajs-webui/elements": "20.17.2",
38
- "@stenajs-webui/theme": "20.17.2",
36
+ "@stenajs-webui/core": "20.17.3",
37
+ "@stenajs-webui/elements": "20.17.3",
38
+ "@stenajs-webui/theme": "20.17.3",
39
39
  "@types/react-modal": "^3.13.1",
40
40
  "classnames": "^2.3.1",
41
41
  "react-draggable": "^4.4.5",
@@ -65,5 +65,5 @@
65
65
  "files": [
66
66
  "dist"
67
67
  ],
68
- "gitHead": "73014d7b11ac683c4757f9160dc58ae3963b502a"
68
+ "gitHead": "7b63f30a562ea92be2d40f5b07e9fe5d6ccc5dc1"
69
69
  }