@stenajs-webui/modal 21.21.2 → 21.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
+ import { BoxProps } from "@stenajs-webui/core";
2
3
  import { PropsWithChildren } from "react";
3
- export interface ModalContainerProps extends PropsWithChildren {
4
+ export interface ModalContainerProps extends PropsWithChildren, Pick<BoxProps, "maxWidth"> {
4
5
  }
5
6
  export declare const ModalContainer: React.FC<ModalContainerProps>;
package/dist/index.es.js CHANGED
@@ -7,7 +7,7 @@ import d from "classnames";
7
7
  import { exhaustSwitchCase as be, Spacing as Y, Row as b, Space as re, Heading as J, Column as K, Box as x, Indent as we, Txt as Ie, Text as Oe } from "@stenajs-webui/core";
8
8
  import { Icon as ce, FlatButton as Ne, stenaTimes as $e, Spinner as Fe, CloseButton as ie, CircledIcon as ke } from "@stenajs-webui/elements";
9
9
  import { cssColor as De } from "@stenajs-webui/theme";
10
- const dn = (t) => {
10
+ const _n = (t) => {
11
11
  B.setAppElement(t);
12
12
  }, xe = "_overlay_5x3op_1", Be = "_fadeIn_5x3op_1", Ae = "_modal_5x3op_31", qe = "_content_5x3op_41", Le = "_appear_5x3op_1", ze = "_isDraggable_5x3op_70", Me = "_footer_5x3op_101", We = "_stickyFooter_5x3op_105", D = {
13
13
  overlay: xe,
@@ -69,7 +69,7 @@ const dn = (t) => {
69
69
  beforeClose: Ye,
70
70
  slideFromTop: Je,
71
71
  slideFromBottom: Ke
72
- }, _n = ({
72
+ }, mn = ({
73
73
  background: t,
74
74
  zIndex: e,
75
75
  children: o,
@@ -117,7 +117,7 @@ const dn = (t) => {
117
117
  default:
118
118
  return be(t, m.slideFromLeft);
119
119
  }
120
- }, mn = ({
120
+ }, un = ({
121
121
  header: t,
122
122
  contentRight: e,
123
123
  onRequestClose: o,
@@ -166,7 +166,7 @@ const dn = (t) => {
166
166
  isDraggable: tt,
167
167
  footer: nt,
168
168
  stickyFooter: ot
169
- }, st = { overlay: { justifyContent: "center" } }, un = ({
169
+ }, st = { overlay: { justifyContent: "center" } }, fn = ({
170
170
  children: t,
171
171
  ...e
172
172
  }) => /* @__PURE__ */ n(
@@ -235,7 +235,7 @@ const dn = (t) => {
235
235
  }, pt = "_modal_4fwgb_1", yt = "_overlay_4fwgb_13", le = {
236
236
  modal: pt,
237
237
  overlay: yt
238
- }, fn = ({
238
+ }, gn = ({
239
239
  headerIconLeft: t,
240
240
  headerText: e,
241
241
  shouldCloseOnOverlayClick: o = !1,
@@ -302,7 +302,7 @@ const dn = (t) => {
302
302
  ) })
303
303
  ]
304
304
  }
305
- ), gn = ({
305
+ ), hn = ({
306
306
  header: t,
307
307
  headerText: e,
308
308
  children: o,
@@ -342,7 +342,7 @@ const dn = (t) => {
342
342
  )
343
343
  ]
344
344
  }
345
- ), hn = ({ children: t }) => /* @__PURE__ */ n(K, { indent: 2, spacing: 2, children: t }), X = pe(
345
+ ), pn = ({ children: t }) => /* @__PURE__ */ n(K, { indent: 2, spacing: 2, children: t }), X = pe(
346
346
  void 0
347
347
  );
348
348
  function Q(t, {
@@ -450,7 +450,7 @@ function Q(t, {
450
450
  ]
451
451
  ), { show: ge, reject: O }];
452
452
  }
453
- const pn = () => {
453
+ const yn = () => {
454
454
  const t = Ce(X);
455
455
  if (t == null)
456
456
  throw new Error("useDialogPromise is being used outside of dialog.");
@@ -463,7 +463,7 @@ const pn = () => {
463
463
  fadeIn: Ot,
464
464
  fadeOut: Nt
465
465
  };
466
- function yn(t, e) {
466
+ function Cn(t, e) {
467
467
  return Q(t, {
468
468
  ...e,
469
469
  modal: !0,
@@ -492,7 +492,7 @@ const $t = "_drawerDialog_11g6r_1", Ft = "_left_11g6r_13", kt = "_right_11g6r_14
492
492
  slideInBottom: Tt,
493
493
  slideOutBottom: Et
494
494
  };
495
- function Cn(t, e = "left", o) {
495
+ function vn(t, e = "left", o) {
496
496
  return Q(t, {
497
497
  ...o,
498
498
  disableCloseOnClickOutside: !0,
@@ -514,7 +514,7 @@ const Ht = "_modalDialog_1teni_1", Pt = "_slideIn_1teni_1", Gt = "_closing_1teni
514
514
  fadeOut: Yt,
515
515
  contentWrapper: Jt
516
516
  };
517
- function vn(t, e) {
517
+ function bn(t, e) {
518
518
  return Q(t, {
519
519
  ...e,
520
520
  modal: !0,
@@ -537,7 +537,19 @@ const me = ({
537
537
  }) => /* @__PURE__ */ u(x, { width: "100%", children: [
538
538
  /* @__PURE__ */ n(Y, {}),
539
539
  /* @__PURE__ */ n("div", { className: Qt.modalActionButtons, children: t })
540
- ] }), Zt = ({ gap: t = 3, ...e }) => /* @__PURE__ */ n(x, { indent: 3, spacing: 3, gap: t, ...e }), bn = ({
540
+ ] }), Zt = ({ gap: t = 3, ...e }) => /* @__PURE__ */ n(x, { indent: 3, spacing: 3, gap: t, ...e }), Rt = ({
541
+ children: t,
542
+ maxWidth: e
543
+ }) => /* @__PURE__ */ n(
544
+ K,
545
+ {
546
+ flex: 1,
547
+ height: "100%",
548
+ justifyContent: "space-between",
549
+ maxWidth: e,
550
+ children: t
551
+ }
552
+ ), wn = ({
541
553
  icon: t,
542
554
  buttons: e,
543
555
  heading: o,
@@ -545,7 +557,7 @@ const me = ({
545
557
  children: c,
546
558
  maxWidth: f,
547
559
  minWidth: g
548
- }) => /* @__PURE__ */ u(
560
+ }) => /* @__PURE__ */ n(Rt, { children: /* @__PURE__ */ u(
549
561
  Zt,
550
562
  {
551
563
  flexDirection: "column",
@@ -560,7 +572,7 @@ const me = ({
560
572
  e && /* @__PURE__ */ n(Ut, { buttons: e })
561
573
  ]
562
574
  }
563
- ), wn = ({ children: t }) => /* @__PURE__ */ n(K, { flex: 1, height: "100%", justifyContent: "space-between", children: t }), In = ({
575
+ ) }), In = ({
564
576
  heading: t,
565
577
  headingLevel: e,
566
578
  headingSize: o,
@@ -568,9 +580,9 @@ const me = ({
568
580
  }) => /* @__PURE__ */ u(b, { justifyContent: "space-between", children: [
569
581
  t && /* @__PURE__ */ n(me, { headingLevel: e, size: o, children: t }),
570
582
  /* @__PURE__ */ n(ie, { onClick: s })
571
- ] }), Rt = "_modalFooter_112wr_1", jt = "_sticky_112wr_10", ae = {
572
- modalFooter: Rt,
573
- sticky: jt
583
+ ] }), jt = "_modalFooter_112wr_1", en = "_sticky_112wr_10", ae = {
584
+ modalFooter: jt,
585
+ sticky: en
574
586
  }, On = ({
575
587
  children: t,
576
588
  sticky: e,
@@ -585,30 +597,30 @@ const me = ({
585
597
  }
586
598
  );
587
599
  export {
588
- un as Alert,
600
+ fn as Alert,
589
601
  Se as BaseWindow,
590
602
  _e as DRAGGABLE_CANCEL_CLASSNAME,
591
603
  de as DRAGGABLE_HANDLE_CLASSNAME,
592
604
  X as DialogContext,
593
- _n as Drawer,
594
- mn as DrawerHeader,
595
- bn as InfoAlert,
596
- fn as LoadingModal,
605
+ mn as Drawer,
606
+ un as DrawerHeader,
607
+ wn as InfoAlert,
608
+ gn as LoadingModal,
597
609
  ht as Modal,
598
610
  Ut as ModalActionButtons,
599
611
  Zt as ModalBody,
600
- wn as ModalContainer,
612
+ Rt as ModalContainer,
601
613
  On as ModalFooter,
602
614
  In as ModalHeader,
603
615
  me as ModalHeading,
604
- gn as Window,
605
- hn as WindowFooter,
616
+ hn as Window,
617
+ pn as WindowFooter,
606
618
  Ct as WindowHeader,
607
- dn as setupDeclarativeModals,
608
- yn as useAlertDialog,
619
+ _n as setupDeclarativeModals,
620
+ Cn as useAlertDialog,
609
621
  Q as useDialog,
610
- pn as useDialogPromise,
611
- Cn as useDrawerDialog,
612
- vn as useModalDialog
622
+ yn as useDialogPromise,
623
+ vn as useDrawerDialog,
624
+ bn as useModalDialog
613
625
  };
614
626
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalContainer.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n );\n};\n","import * as React from \"react\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps extends PropsWithChildren {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({ children }) => {\n return (\n <Column flex={1} height={\"100%\"} justifyContent={\"space-between\"}>\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalContainer","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","ModalContainer","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":"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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:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_5x3op_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;top:0;right:0;bottom:0;left:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:#fff;position:absolute;transition:transform var(--swui-animation-time-medium) ease-in-out}._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}@media (max-width: 768px){._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:0;border-radius:0}}._portal_17ze5_1 ._content_17ze5_9:focus-visible{outline:unset}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._afterOpen_17ze5_36{transform:translate(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._beforeClose_17ze5_40{transform:translate(var(--translate-x-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._afterOpen_17ze5_36{transform:translateY(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._beforeClose_17ze5_40{transform:translateY(var(--translate-y-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._overlay_r9tkq_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_r9tkq_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_r9tkq_1{background-color:#fff}}._overlay_r9tkq_1 ._modal_r9tkq_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_r9tkq_1 ._content_r9tkq_38{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);animation:_appear_r9tkq_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_r9tkq_1 ._content_r9tkq_38{box-shadow:none;top:0}}._overlay_r9tkq_1 ._content_r9tkq_38 :focus{outline:0}._overlay_r9tkq_1 ._content_r9tkq_38._isDraggable_r9tkq_61 .draggable-modal-handle{cursor:move}._overlay_r9tkq_1 ._content_r9tkq_38._isDraggable_r9tkq_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_r9tkq_1 ._content_r9tkq_38._isDraggable_r9tkq_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_r9tkq_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_r9tkq_1{0%{opacity:0}to{opacity:1}}._footer_r9tkq_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_r9tkq_96{position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_r9tkq_96{position:static;box-shadow:none}}._overlay_15dqv_1{--swui-modal-animation-time: var(--swui-animation-time-medium);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_15dqv_1._afterOpen_15dqv_24:not(._beforeClose_15dqv_24){animation:_fadeIn_15dqv_1 var(--swui-modal-animation-time) forwards}._overlay_15dqv_1._beforeClose_15dqv_24{animation:_fadeOut_15dqv_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_15dqv_1{background-color:#fff}}._overlay_15dqv_1 ._modal_15dqv_36{max-width:100%;outline:none;pointer-events:none;padding:calc(var(--swui-metrics-space) * 2);box-sizing:border-box;max-height:100%;transform:translateY(-100%)}@media (max-width: 768px){._overlay_15dqv_1 ._modal_15dqv_36{padding:0;width:100%}}._overlay_15dqv_1 ._modal_15dqv_36._afterOpen_15dqv_24:not(._beforeClose_15dqv_24){animation:_slideIn_15dqv_1 var(--swui-modal-animation-time) forwards}._overlay_15dqv_1 ._modal_15dqv_36._beforeClose_15dqv_24{animation:_slideOut_15dqv_1 var(--swui-modal-animation-time) forwards}._overlay_15dqv_1 ._content_15dqv_59{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);height:100%;overflow:hidden;overflow-y:auto}@media (max-width: 768px){._overlay_15dqv_1 ._content_15dqv_59{border-radius:0;width:100%;max-width:100%;min-height:100vh}}@media (min-width: 769px){._overlay_15dqv_1 ._content_15dqv_59{border-radius:var(--swui-border-radius-large)}._overlay_15dqv_1 ._content_15dqv_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._overlay_15dqv_1 ._content_15dqv_59::-webkit-scrollbar{width:16px}}@media print{._overlay_15dqv_1 ._content_15dqv_59{box-shadow:none;top:0}}._overlay_15dqv_1 ._content_15dqv_59 :focus{outline:0}@keyframes _fadeIn_15dqv_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_15dqv_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_15dqv_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_15dqv_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_15dqv_148{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_15dqv_152{position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_15dqv_152{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}._alertDialog_14t8t_1{border:0;outline:0;border-radius:var(--swui-border-radius-large);margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}._alertDialog_14t8t_1:not([open]){display:none}._alertDialog_14t8t_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22[open]{animation:_slideOut_14t8t_1 .25s forwards}._alertDialog_14t8t_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-moz-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-moz-fit-content;height:fit-content}}._drawerDialog_11g6r_1._top_11g6r_54{top:0;bottom:unset}._drawerDialog_11g6r_1._top_11g6r_54[open]{animation:_slideInTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54._closing_11g6r_36[open]{animation:_slideOutTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55{top:unset;bottom:0}._drawerDialog_11g6r_1._bottom_11g6r_55[open]{animation:_slideInBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55._closing_11g6r_36[open]{animation:_slideOutBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1[open]{opacity:1;pointer-events:auto}@keyframes _slideInLeft_11g6r_1{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutLeft_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(-100%);opacity:1}}@keyframes _slideInTop_11g6r_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutTop_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(-100%);opacity:1}}@keyframes _slideInRight_11g6r_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutRight_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(100%);opacity:1}}@keyframes _slideInBottom_11g6r_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutBottom_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(100%);opacity:1}}._modalDialog_1teni_1{border:0;outline:0;margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}@media (min-width: 769px){._modalDialog_1teni_1{border-radius:var(--swui-border-radius-large)}._modalDialog_1teni_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._modalDialog_1teni_1::-webkit-scrollbar{width:16px}}._modalDialog_1teni_1:not([open]){display:none}._modalDialog_1teni_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36[open]{animation:_slideOut_1teni_1 .25s forwards}@media (max-width: 768px){._modalDialog_1teni_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1teni_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36::backdrop{animation:_fadeOut_1teni_1 .25s forwards}@keyframes _fadeIn_1teni_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1teni_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1teni_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1teni_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_1teni_100{width:100%;height:100%}}._modalActionButtons_s27nj_1{display:flex;flex-direction:row;gap:16px;justify-content:center}@media (max-width: 768px){._modalActionButtons_s27nj_1{flex-direction:column;justify-content:stretch}}._modalFooter_112wr_1._modalFooter_112wr_1{display:flex;align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:0 calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_112wr_1._modalFooter_112wr_1._sticky_112wr_10{position:sticky;bottom:0}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react-modal"),e=require("react/jsx-runtime"),l=require("react"),de=require("react-draggable"),u=require("classnames"),n=require("@stenajs-webui/core"),b=require("@stenajs-webui/elements"),_e=require("@stenajs-webui/theme"),ue=s=>{F.setAppElement(s)},me="_overlay_5x3op_1",fe="_fadeIn_5x3op_1",ge="_modal_5x3op_31",xe="_content_5x3op_41",he="_appear_5x3op_1",Ce="_isDraggable_5x3op_70",ye="_footer_5x3op_101",pe="_stickyFooter_5x3op_105",$={overlay:me,fadeIn:fe,modal:ge,content:xe,appear:he,isDraggable:Ce,footer:ye,stickyFooter:pe},P="draggable-modal-handle",R="draggable-modal-cancel",te=({width:s,maxWidth:t,draggable:o=!1,children:r,...d})=>{const g=l.useRef(null);return e.jsx(F,{overlayClassName:$.overlay,className:$.modal,...d,children:e.jsx(de,{handle:`.${P}`,cancel:`.${R}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!o,nodeRef:g,children:e.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":t},className:u($.content,{[$.isDraggable]:o}),ref:g,children:r})})})},we="_portal_17ze5_1",be="_overlay_17ze5_4",ve="_content_17ze5_9",je="_floating_17ze5_15",Ie="_slideFromLeft_17ze5_29",Ne="_slideFromRight_17ze5_30",De="_afterOpen_17ze5_36",Oe="_beforeClose_17ze5_40",$e="_slideFromTop_17ze5_45",Fe="_slideFromBottom_17ze5_46",f={portal:we,overlay:be,content:ve,floating:je,slideFromLeft:Ie,slideFromRight:Ne,afterOpen:De,beforeClose:Oe,slideFromTop:$e,slideFromBottom:Fe},ke=({background:s,zIndex:t,children:o,slideFrom:r="left",portalTarget:d,floating:g,...x})=>{const{height:h,width:v}=x;return e.jsx(F,{closeTimeoutMS:250,portalClassName:f.portal,overlayClassName:{base:f.overlay,afterOpen:f.afterOpen,beforeClose:f.beforeClose},className:{base:u(f.content,Be(r),g&&f.floating),afterOpen:f.afterOpen,beforeClose:f.beforeClose},style:{content:{width:v,height:h,background:s},overlay:{zIndex:t}},parentSelector:d?()=>d:void 0,...x,children:o})},Be=s=>{switch(s){case"left":return f.slideFromLeft;case"right":return f.slideFromRight;case"top":return f.slideFromTop;case"bottom":return f.slideFromBottom;default:return n.exhaustSwitchCase(s,f.slideFromLeft)}},Ae=({header:s,contentRight:t,onRequestClose:o,icon:r})=>e.jsx(n.Spacing,{position:"sticky",top:0,zIndex:100,background:_e.cssColor("--lhds-color-ui-50"),children:e.jsxs(n.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[e.jsxs(n.Row,{alignItems:"center",gap:2,children:[e.jsx(n.Space,{num:1}),r&&e.jsx(b.Icon,{icon:r,size:24}),e.jsx(n.Heading,{variant:"h4",children:s})]}),e.jsxs(n.Row,{gap:1,children:[t,e.jsx(b.FlatButton,{leftIcon:b.stenaTimes,onClick:o,variant:"danger"}),e.jsx(n.Space,{num:.5})]})]})}),Me="_overlay_r9tkq_1",qe="_fadeIn_r9tkq_1",Le="_modal_r9tkq_31",Se="_content_r9tkq_38",We="_appear_r9tkq_1",Ee="_isDraggable_r9tkq_61",ze="_footer_r9tkq_92",Te="_stickyFooter_r9tkq_96",T={overlay:Me,fadeIn:qe,modal:Le,content:Se,appear:We,isDraggable:Ee,footer:ze,stickyFooter:Te},He={overlay:{justifyContent:"center"}},Ge=({children:s,...t})=>e.jsx(F,{overlayClassName:T.overlay,className:T.modal,style:He,...t,children:e.jsx("div",{className:T.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Pe="_overlay_15dqv_1",Re="_afterOpen_15dqv_24",Ve="_beforeClose_15dqv_24",Xe="_fadeIn_15dqv_1",Ye="_fadeOut_15dqv_1",Je="_modal_15dqv_36",Ke="_slideIn_15dqv_1",Qe="_slideOut_15dqv_1",Ue="_content_15dqv_59",Ze="_footer_15dqv_148",et="_stickyFooter_15dqv_152",D={overlay:Pe,afterOpen:Re,beforeClose:Ve,fadeIn:Xe,fadeOut:Ye,modal:Je,slideIn:Ke,slideOut:Qe,content:Ue,footer:Ze,stickyFooter:et},se=({children:s,background:t,...o})=>{const r={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":t}};return e.jsx(F,{overlayClassName:{base:D.overlay,beforeClose:D.beforeClose,afterOpen:D.afterOpen},className:{base:D.modal,beforeClose:D.beforeClose,afterOpen:D.afterOpen},style:r,closeTimeoutMS:250,...o,children:e.jsx("div",{className:D.content,style:{"--swui-modal-width":"fit-content"},children:s})})},tt="_modal_4fwgb_1",st="_overlay_4fwgb_13",Z={modal:tt,overlay:st},ot=({headerIconLeft:s,headerText:t,shouldCloseOnOverlayClick:o=!1,shouldCloseOnEsc:r=!1,...d})=>e.jsx(F,{...d,isOpen:!0,shouldCloseOnOverlayClick:o,shouldCloseOnEsc:r,className:Z.modal,overlayClassName:Z.overlay,children:e.jsxs(n.Column,{spacing:2,alignItems:"center",children:[e.jsx(n.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(b.Spinner,{size:"small"})}),(s||t)&&e.jsxs(e.Fragment,{children:[e.jsx(n.Spacing,{}),e.jsxs(n.Row,{indent:2,children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(b.Icon,{size:14,icon:s,color:"white"}),e.jsx(n.Indent,{})]}),t&&e.jsx(n.Heading,{variant:"h4",color:"white",children:t})]})]})]})}),oe=({onRequestClose:s,header:t,headerText:o,closeButtonClassName:r})=>e.jsxs(n.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:P,children:[e.jsxs(n.Row,{flex:1,indent:!0,alignItems:"center",children:[o&&e.jsx(n.Txt,{className:R,size:"large",children:o}),t]}),e.jsx(n.Box,{alignSelf:"flex-start",children:e.jsx(b.CloseButton,{className:r,onClick:s})})]}),nt=({header:s,headerText:t,children:o,spacing:r,indent:d,draggable:g=!1,onRequestClose:x,closeButtonClassName:h,footer:v,disableStickyFooter:y=!1,...m})=>{const B=typeof r=="number"?r:1,k=typeof d=="number"?d:1;return e.jsxs(te,{...m,onRequestClose:x,draggable:g,children:[e.jsx(oe,{onRequestClose:x,header:s,headerText:t,closeButtonClassName:h}),e.jsx(n.Box,{spacing:B,indent:k,children:o}),v&&e.jsx(n.Box,{className:u($.footer,{[$.stickyFooter]:!y}),children:v})]})},rt=({children:s})=>e.jsx(n.Column,{indent:2,spacing:2,children:s}),q=l.createContext(void 0);function L(s,{ref:t,modal:o,contentWrapperClassName:r,closingClassName:d,contentWrapperStyle:g,dialogStyle:x,divInsteadOfDialog:h,disableCloseOnClickOutside:v,onResolve:y,onReject:m,className:B,background:k}){const le=l.useRef(null),_=t??le,[S,ae]=l.useReducer(a=>a+1,0),X=l.useRef(),j=l.useRef(),p=l.useRef(),C=l.useRef(),[Y,A]=l.useState(!1),[W,O]=l.useState(!1),[J,w]=l.useState(!1),E=s,ce=l.useCallback(a=>{var c,i;return X.current=new Promise((N,ie)=>{j.current=N,C.current=ie}),w(!1),A(!0),O(!0),ae(),p.current=a,o?(c=_.current)==null||c.showModal():(i=_.current)==null||i.show(),X.current},[_,o]),K=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=j.current)==null||i.call(j,a),p.current=void 0,y==null||y()},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=j.current)==null||N.call(j,a),p.current=void 0,y==null||y()},{once:!0})},[_,y,h]),Q=l.useCallback(()=>{var a;w(!1),A(!1),O(!1),(a=C.current)==null||a.call(C),m==null||m(),p.current=void 0},[m]),I=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=C.current)==null||i.call(C,a),m==null||m(),p.current=void 0},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=C.current)==null||N.call(C,a),m==null||m(),p.current=void 0},{once:!0})},[_,h,m]),U=l.useCallback(a=>{if(a.target!==_.current)return;const c=_.current.getBoundingClientRect();c.top<=a.clientY&&a.clientY<=c.top+c.height&&c.left<=a.clientX&&a.clientX<=c.left+c.width||I()},[_,I]),z=l.useMemo(()=>({resolve:K,reject:I}),[I,K]);return[l.useMemo(()=>h?e.jsx(se,{isOpen:Y,onRequestClose:I,background:k,children:e.jsx(q.Provider,{value:z,children:W&&l.createElement(E,{...p.current,key:S})})}):e.jsx("dialog",{onClick:v?void 0:U,onClose:Q,ref:_,className:u(B,J&&d),style:{background:k,...x},children:e.jsx("div",{style:g,className:r,children:W&&e.jsx(q.Provider,{value:z,children:l.createElement(E,{...p.current,key:S})})})}),[h,Y,I,k,z,W,E,S,v,U,Q,_,B,J,d,x,g,r]),{show:ce,reject:I}]}const lt=()=>{const s=l.useContext(q);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},at="_alertDialog_14t8t_1",ct="_slideIn_14t8t_1",it="_closing_14t8t_22",dt="_slideOut_14t8t_1",_t="_fadeIn_14t8t_1",ut="_fadeOut_14t8t_1",H={alertDialog:at,slideIn:ct,closing:it,slideOut:dt,fadeIn:_t,fadeOut:ut};function mt(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,H.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,H.contentWrapper),className:u(t==null?void 0:t.className,H.alertDialog)})}const ft="_drawerDialog_11g6r_1",gt="_left_11g6r_13",xt="_right_11g6r_14",ht="_contentWrapper_11g6r_19",Ct="_slideInLeft_11g6r_1",yt="_closing_11g6r_36",pt="_slideOutLeft_11g6r_1",wt="_slideInRight_11g6r_1",bt="_slideOutRight_11g6r_1",vt="_top_11g6r_54",jt="_bottom_11g6r_55",It="_slideInTop_11g6r_1",Nt="_slideOutTop_11g6r_1",Dt="_slideInBottom_11g6r_1",Ot="_slideOutBottom_11g6r_1",M={drawerDialog:ft,left:gt,right:xt,contentWrapper:ht,slideInLeft:Ct,closing:yt,slideOutLeft:pt,slideInRight:wt,slideOutRight:bt,top:vt,bottom:jt,slideInTop:It,slideOutTop:Nt,slideInBottom:Dt,slideOutBottom:Ot};function $t(s,t="left",o){return L(s,{...o,disableCloseOnClickOutside:!0,modal:!1,closingClassName:u(o==null?void 0:o.closingClassName,M.closing),contentWrapperClassName:u(o==null?void 0:o.contentWrapperClassName,M.contentWrapper),className:u(o==null?void 0:o.className,M.drawerDialog,M[t])})}const Ft="_modalDialog_1teni_1",kt="_slideIn_1teni_1",Bt="_closing_1teni_36",At="_slideOut_1teni_1",Mt="_fadeIn_1teni_1",qt="_fadeOut_1teni_1",Lt="_contentWrapper_1teni_100",G={modalDialog:Ft,slideIn:kt,closing:Bt,slideOut:At,fadeIn:Mt,fadeOut:qt,contentWrapper:Lt};function St(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,G.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,G.contentWrapper),className:u(t==null?void 0:t.className,G.modalDialog)})}const V=({headingLevel:s="h2",size:t="medium",children:o})=>e.jsx(n.Heading,{variant:t==="medium"?"h3":"h1",as:s,children:o}),Wt="_modalActionButtons_s27nj_1",Et={modalActionButtons:Wt},ne=({buttons:s})=>e.jsxs(n.Box,{width:"100%",children:[e.jsx(n.Spacing,{}),e.jsx("div",{className:Et.modalActionButtons,children:s})]}),re=({gap:s=3,...t})=>e.jsx(n.Box,{indent:3,spacing:3,gap:s,...t}),zt=({icon:s,buttons:t,heading:o,text:r,children:d,maxWidth:g,minWidth:x})=>e.jsxs(re,{flexDirection:"column",alignItems:"center",maxWidth:g,minWidth:x,children:[s&&e.jsx(b.CircledIcon,{icon:s,size:"large"}),e.jsx(V,{children:o}),r&&e.jsx(n.Text,{textAlign:"center",children:r}),d,t&&e.jsx(ne,{buttons:t})]}),Tt=({children:s})=>e.jsx(n.Column,{flex:1,height:"100%",justifyContent:"space-between",children:s}),Ht=({heading:s,headingLevel:t,headingSize:o,onClickClose:r})=>e.jsxs(n.Row,{justifyContent:"space-between",children:[s&&e.jsx(V,{headingLevel:t,size:o,children:s}),e.jsx(b.CloseButton,{onClick:r})]}),Gt="_modalFooter_112wr_1",Pt="_sticky_112wr_10",ee={modalFooter:Gt,sticky:Pt},Rt=({children:s,sticky:t,zIndex:o=4})=>e.jsx(n.Row,{className:u(ee.modalFooter,t&&ee.sticky),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,children:s});exports.Alert=Ge;exports.BaseWindow=te;exports.DRAGGABLE_CANCEL_CLASSNAME=R;exports.DRAGGABLE_HANDLE_CLASSNAME=P;exports.DialogContext=q;exports.Drawer=ke;exports.DrawerHeader=Ae;exports.InfoAlert=zt;exports.LoadingModal=ot;exports.Modal=se;exports.ModalActionButtons=ne;exports.ModalBody=re;exports.ModalContainer=Tt;exports.ModalFooter=Rt;exports.ModalHeader=Ht;exports.ModalHeading=V;exports.Window=nt;exports.WindowFooter=rt;exports.WindowHeader=oe;exports.setupDeclarativeModals=ue;exports.useAlertDialog=mt;exports.useDialog=L;exports.useDialogPromise=lt;exports.useDrawerDialog=$t;exports.useModalDialog=St;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react-modal"),e=require("react/jsx-runtime"),l=require("react"),_e=require("react-draggable"),u=require("classnames"),n=require("@stenajs-webui/core"),b=require("@stenajs-webui/elements"),ue=require("@stenajs-webui/theme"),me=s=>{F.setAppElement(s)},fe="_overlay_5x3op_1",ge="_fadeIn_5x3op_1",xe="_modal_5x3op_31",he="_content_5x3op_41",Ce="_appear_5x3op_1",ye="_isDraggable_5x3op_70",pe="_footer_5x3op_101",we="_stickyFooter_5x3op_105",$={overlay:fe,fadeIn:ge,modal:xe,content:he,appear:Ce,isDraggable:ye,footer:pe,stickyFooter:we},P="draggable-modal-handle",R="draggable-modal-cancel",te=({width:s,maxWidth:t,draggable:o=!1,children:r,...d})=>{const g=l.useRef(null);return e.jsx(F,{overlayClassName:$.overlay,className:$.modal,...d,children:e.jsx(_e,{handle:`.${P}`,cancel:`.${R}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!o,nodeRef:g,children:e.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":t},className:u($.content,{[$.isDraggable]:o}),ref:g,children:r})})})},be="_portal_17ze5_1",ve="_overlay_17ze5_4",je="_content_17ze5_9",Ie="_floating_17ze5_15",Ne="_slideFromLeft_17ze5_29",De="_slideFromRight_17ze5_30",Oe="_afterOpen_17ze5_36",$e="_beforeClose_17ze5_40",Fe="_slideFromTop_17ze5_45",ke="_slideFromBottom_17ze5_46",f={portal:be,overlay:ve,content:je,floating:Ie,slideFromLeft:Ne,slideFromRight:De,afterOpen:Oe,beforeClose:$e,slideFromTop:Fe,slideFromBottom:ke},Be=({background:s,zIndex:t,children:o,slideFrom:r="left",portalTarget:d,floating:g,...x})=>{const{height:h,width:v}=x;return e.jsx(F,{closeTimeoutMS:250,portalClassName:f.portal,overlayClassName:{base:f.overlay,afterOpen:f.afterOpen,beforeClose:f.beforeClose},className:{base:u(f.content,Ae(r),g&&f.floating),afterOpen:f.afterOpen,beforeClose:f.beforeClose},style:{content:{width:v,height:h,background:s},overlay:{zIndex:t}},parentSelector:d?()=>d:void 0,...x,children:o})},Ae=s=>{switch(s){case"left":return f.slideFromLeft;case"right":return f.slideFromRight;case"top":return f.slideFromTop;case"bottom":return f.slideFromBottom;default:return n.exhaustSwitchCase(s,f.slideFromLeft)}},Me=({header:s,contentRight:t,onRequestClose:o,icon:r})=>e.jsx(n.Spacing,{position:"sticky",top:0,zIndex:100,background:ue.cssColor("--lhds-color-ui-50"),children:e.jsxs(n.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[e.jsxs(n.Row,{alignItems:"center",gap:2,children:[e.jsx(n.Space,{num:1}),r&&e.jsx(b.Icon,{icon:r,size:24}),e.jsx(n.Heading,{variant:"h4",children:s})]}),e.jsxs(n.Row,{gap:1,children:[t,e.jsx(b.FlatButton,{leftIcon:b.stenaTimes,onClick:o,variant:"danger"}),e.jsx(n.Space,{num:.5})]})]})}),qe="_overlay_r9tkq_1",Le="_fadeIn_r9tkq_1",Se="_modal_r9tkq_31",We="_content_r9tkq_38",Ee="_appear_r9tkq_1",ze="_isDraggable_r9tkq_61",Te="_footer_r9tkq_92",He="_stickyFooter_r9tkq_96",T={overlay:qe,fadeIn:Le,modal:Se,content:We,appear:Ee,isDraggable:ze,footer:Te,stickyFooter:He},Ge={overlay:{justifyContent:"center"}},Pe=({children:s,...t})=>e.jsx(F,{overlayClassName:T.overlay,className:T.modal,style:Ge,...t,children:e.jsx("div",{className:T.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Re="_overlay_15dqv_1",Ve="_afterOpen_15dqv_24",Xe="_beforeClose_15dqv_24",Ye="_fadeIn_15dqv_1",Je="_fadeOut_15dqv_1",Ke="_modal_15dqv_36",Qe="_slideIn_15dqv_1",Ue="_slideOut_15dqv_1",Ze="_content_15dqv_59",et="_footer_15dqv_148",tt="_stickyFooter_15dqv_152",D={overlay:Re,afterOpen:Ve,beforeClose:Xe,fadeIn:Ye,fadeOut:Je,modal:Ke,slideIn:Qe,slideOut:Ue,content:Ze,footer:et,stickyFooter:tt},se=({children:s,background:t,...o})=>{const r={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":t}};return e.jsx(F,{overlayClassName:{base:D.overlay,beforeClose:D.beforeClose,afterOpen:D.afterOpen},className:{base:D.modal,beforeClose:D.beforeClose,afterOpen:D.afterOpen},style:r,closeTimeoutMS:250,...o,children:e.jsx("div",{className:D.content,style:{"--swui-modal-width":"fit-content"},children:s})})},st="_modal_4fwgb_1",ot="_overlay_4fwgb_13",Z={modal:st,overlay:ot},nt=({headerIconLeft:s,headerText:t,shouldCloseOnOverlayClick:o=!1,shouldCloseOnEsc:r=!1,...d})=>e.jsx(F,{...d,isOpen:!0,shouldCloseOnOverlayClick:o,shouldCloseOnEsc:r,className:Z.modal,overlayClassName:Z.overlay,children:e.jsxs(n.Column,{spacing:2,alignItems:"center",children:[e.jsx(n.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(b.Spinner,{size:"small"})}),(s||t)&&e.jsxs(e.Fragment,{children:[e.jsx(n.Spacing,{}),e.jsxs(n.Row,{indent:2,children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(b.Icon,{size:14,icon:s,color:"white"}),e.jsx(n.Indent,{})]}),t&&e.jsx(n.Heading,{variant:"h4",color:"white",children:t})]})]})]})}),oe=({onRequestClose:s,header:t,headerText:o,closeButtonClassName:r})=>e.jsxs(n.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:P,children:[e.jsxs(n.Row,{flex:1,indent:!0,alignItems:"center",children:[o&&e.jsx(n.Txt,{className:R,size:"large",children:o}),t]}),e.jsx(n.Box,{alignSelf:"flex-start",children:e.jsx(b.CloseButton,{className:r,onClick:s})})]}),rt=({header:s,headerText:t,children:o,spacing:r,indent:d,draggable:g=!1,onRequestClose:x,closeButtonClassName:h,footer:v,disableStickyFooter:y=!1,...m})=>{const B=typeof r=="number"?r:1,k=typeof d=="number"?d:1;return e.jsxs(te,{...m,onRequestClose:x,draggable:g,children:[e.jsx(oe,{onRequestClose:x,header:s,headerText:t,closeButtonClassName:h}),e.jsx(n.Box,{spacing:B,indent:k,children:o}),v&&e.jsx(n.Box,{className:u($.footer,{[$.stickyFooter]:!y}),children:v})]})},lt=({children:s})=>e.jsx(n.Column,{indent:2,spacing:2,children:s}),q=l.createContext(void 0);function L(s,{ref:t,modal:o,contentWrapperClassName:r,closingClassName:d,contentWrapperStyle:g,dialogStyle:x,divInsteadOfDialog:h,disableCloseOnClickOutside:v,onResolve:y,onReject:m,className:B,background:k}){const ae=l.useRef(null),_=t??ae,[S,ce]=l.useReducer(a=>a+1,0),X=l.useRef(),j=l.useRef(),p=l.useRef(),C=l.useRef(),[Y,A]=l.useState(!1),[W,O]=l.useState(!1),[J,w]=l.useState(!1),E=s,ie=l.useCallback(a=>{var c,i;return X.current=new Promise((N,de)=>{j.current=N,C.current=de}),w(!1),A(!0),O(!0),ce(),p.current=a,o?(c=_.current)==null||c.showModal():(i=_.current)==null||i.show(),X.current},[_,o]),K=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=j.current)==null||i.call(j,a),p.current=void 0,y==null||y()},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=j.current)==null||N.call(j,a),p.current=void 0,y==null||y()},{once:!0})},[_,y,h]),Q=l.useCallback(()=>{var a;w(!1),A(!1),O(!1),(a=C.current)==null||a.call(C),m==null||m(),p.current=void 0},[m]),I=l.useCallback(a=>{var c;w(!0),A(!1),h?setTimeout(()=>{var i;w(!1),O(!1),(i=C.current)==null||i.call(C,a),m==null||m(),p.current=void 0},300):(c=_.current)==null||c.addEventListener("animationend",()=>{var i,N;w(!1),O(!1),(i=_.current)==null||i.close(),(N=C.current)==null||N.call(C,a),m==null||m(),p.current=void 0},{once:!0})},[_,h,m]),U=l.useCallback(a=>{if(a.target!==_.current)return;const c=_.current.getBoundingClientRect();c.top<=a.clientY&&a.clientY<=c.top+c.height&&c.left<=a.clientX&&a.clientX<=c.left+c.width||I()},[_,I]),z=l.useMemo(()=>({resolve:K,reject:I}),[I,K]);return[l.useMemo(()=>h?e.jsx(se,{isOpen:Y,onRequestClose:I,background:k,children:e.jsx(q.Provider,{value:z,children:W&&l.createElement(E,{...p.current,key:S})})}):e.jsx("dialog",{onClick:v?void 0:U,onClose:Q,ref:_,className:u(B,J&&d),style:{background:k,...x},children:e.jsx("div",{style:g,className:r,children:W&&e.jsx(q.Provider,{value:z,children:l.createElement(E,{...p.current,key:S})})})}),[h,Y,I,k,z,W,E,S,v,U,Q,_,B,J,d,x,g,r]),{show:ie,reject:I}]}const at=()=>{const s=l.useContext(q);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},ct="_alertDialog_14t8t_1",it="_slideIn_14t8t_1",dt="_closing_14t8t_22",_t="_slideOut_14t8t_1",ut="_fadeIn_14t8t_1",mt="_fadeOut_14t8t_1",H={alertDialog:ct,slideIn:it,closing:dt,slideOut:_t,fadeIn:ut,fadeOut:mt};function ft(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,H.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,H.contentWrapper),className:u(t==null?void 0:t.className,H.alertDialog)})}const gt="_drawerDialog_11g6r_1",xt="_left_11g6r_13",ht="_right_11g6r_14",Ct="_contentWrapper_11g6r_19",yt="_slideInLeft_11g6r_1",pt="_closing_11g6r_36",wt="_slideOutLeft_11g6r_1",bt="_slideInRight_11g6r_1",vt="_slideOutRight_11g6r_1",jt="_top_11g6r_54",It="_bottom_11g6r_55",Nt="_slideInTop_11g6r_1",Dt="_slideOutTop_11g6r_1",Ot="_slideInBottom_11g6r_1",$t="_slideOutBottom_11g6r_1",M={drawerDialog:gt,left:xt,right:ht,contentWrapper:Ct,slideInLeft:yt,closing:pt,slideOutLeft:wt,slideInRight:bt,slideOutRight:vt,top:jt,bottom:It,slideInTop:Nt,slideOutTop:Dt,slideInBottom:Ot,slideOutBottom:$t};function Ft(s,t="left",o){return L(s,{...o,disableCloseOnClickOutside:!0,modal:!1,closingClassName:u(o==null?void 0:o.closingClassName,M.closing),contentWrapperClassName:u(o==null?void 0:o.contentWrapperClassName,M.contentWrapper),className:u(o==null?void 0:o.className,M.drawerDialog,M[t])})}const kt="_modalDialog_1teni_1",Bt="_slideIn_1teni_1",At="_closing_1teni_36",Mt="_slideOut_1teni_1",qt="_fadeIn_1teni_1",Lt="_fadeOut_1teni_1",St="_contentWrapper_1teni_100",G={modalDialog:kt,slideIn:Bt,closing:At,slideOut:Mt,fadeIn:qt,fadeOut:Lt,contentWrapper:St};function Wt(s,t){return L(s,{...t,modal:!0,closingClassName:u(t==null?void 0:t.closingClassName,G.closing),contentWrapperClassName:u(t==null?void 0:t.contentWrapperClassName,G.contentWrapper),className:u(t==null?void 0:t.className,G.modalDialog)})}const V=({headingLevel:s="h2",size:t="medium",children:o})=>e.jsx(n.Heading,{variant:t==="medium"?"h3":"h1",as:s,children:o}),Et="_modalActionButtons_s27nj_1",zt={modalActionButtons:Et},ne=({buttons:s})=>e.jsxs(n.Box,{width:"100%",children:[e.jsx(n.Spacing,{}),e.jsx("div",{className:zt.modalActionButtons,children:s})]}),re=({gap:s=3,...t})=>e.jsx(n.Box,{indent:3,spacing:3,gap:s,...t}),le=({children:s,maxWidth:t})=>e.jsx(n.Column,{flex:1,height:"100%",justifyContent:"space-between",maxWidth:t,children:s}),Tt=({icon:s,buttons:t,heading:o,text:r,children:d,maxWidth:g,minWidth:x})=>e.jsx(le,{children:e.jsxs(re,{flexDirection:"column",alignItems:"center",maxWidth:g,minWidth:x,children:[s&&e.jsx(b.CircledIcon,{icon:s,size:"large"}),e.jsx(V,{children:o}),r&&e.jsx(n.Text,{textAlign:"center",children:r}),d,t&&e.jsx(ne,{buttons:t})]})}),Ht=({heading:s,headingLevel:t,headingSize:o,onClickClose:r})=>e.jsxs(n.Row,{justifyContent:"space-between",children:[s&&e.jsx(V,{headingLevel:t,size:o,children:s}),e.jsx(b.CloseButton,{onClick:r})]}),Gt="_modalFooter_112wr_1",Pt="_sticky_112wr_10",ee={modalFooter:Gt,sticky:Pt},Rt=({children:s,sticky:t,zIndex:o=4})=>e.jsx(n.Row,{className:u(ee.modalFooter,t&&ee.sticky),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,children:s});exports.Alert=Pe;exports.BaseWindow=te;exports.DRAGGABLE_CANCEL_CLASSNAME=R;exports.DRAGGABLE_HANDLE_CLASSNAME=P;exports.DialogContext=q;exports.Drawer=Be;exports.DrawerHeader=Me;exports.InfoAlert=Tt;exports.LoadingModal=nt;exports.Modal=se;exports.ModalActionButtons=ne;exports.ModalBody=re;exports.ModalContainer=le;exports.ModalFooter=Rt;exports.ModalHeader=Ht;exports.ModalHeading=V;exports.Window=rt;exports.WindowFooter=lt;exports.WindowHeader=oe;exports.setupDeclarativeModals=me;exports.useAlertDialog=ft;exports.useDialog=L;exports.useDialogPromise=at;exports.useDrawerDialog=Ft;exports.useModalDialog=Wt;
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalContainer.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n );\n};\n","import * as React from \"react\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps extends PropsWithChildren {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({ children }) => {\n return (\n <Column flex={1} height={\"100%\"} justifyContent={\"space-between\"}>\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalContainer","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { CSSProperties } from \"react\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const style = {\n overlay: { justifyContent: \"center\" },\n content: { \"--swui-modal-content-bg-color\": background } as CSSProperties,\n };\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal isOpen={isOpen} onRequestClose={reject} background={background}>\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{buttons}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 3, ...props }) => {\n return <Box indent={3} spacing={3} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons buttons={buttons} />}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport { HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n )}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps {\n children: ReactNode;\n sticky?: boolean;\n zIndex?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n >\n {children}\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","ref","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","useState","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","buttons","ModalBody","gap","ModalContainer","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalHeader","headingSize","onClickClose","ModalFooter","sticky"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stenajs-webui/modal",
3
- "version": "21.21.2",
3
+ "version": "21.22.0",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "author": "mattias800",
@@ -33,9 +33,9 @@
33
33
  "deploy": "gh-pages -d example/build"
34
34
  },
35
35
  "dependencies": {
36
- "@stenajs-webui/core": "21.21.2",
37
- "@stenajs-webui/elements": "21.21.2",
38
- "@stenajs-webui/theme": "21.21.2",
36
+ "@stenajs-webui/core": "21.22.0",
37
+ "@stenajs-webui/elements": "21.22.0",
38
+ "@stenajs-webui/theme": "21.22.0",
39
39
  "@types/react-modal": "^3.16.3",
40
40
  "classnames": "^2.5.1",
41
41
  "react-draggable": "4.4.6",
@@ -62,5 +62,5 @@
62
62
  "files": [
63
63
  "dist"
64
64
  ],
65
- "gitHead": "3839e3df21ec81c5c0e43b10d61468474896d73b"
65
+ "gitHead": "82f2aae5b4ef2dd9cfae3381102cf924868677e6"
66
66
  }