@stenajs-webui/modal 22.7.2 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalCloseButton.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<HTMLDivElement>(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 as React.RefObject<HTMLElement>}\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\nexport interface 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\nexport interface 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 { useEventCallback } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps\n extends Omit<ReactModal.Props, \"className\" | \"overlayClassName\"> {\n background?: string;\n onRequestClose?: () => void;\n className?: string;\n overlayClassName?: string;\n}\n\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n className,\n overlayClassName,\n ...reactModalProps\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const [scrollbarGutter, setScrollbarGutter] = useState<\n \"auto\" | \"stable\" | undefined\n >(isSafari ? \"auto\" : undefined);\n\n const style = {\n overlay: { justifyContent: \"center\" },\n content: {\n \"--swui-modal-content-bg-color\": background,\n } as CSSProperties,\n };\n\n const updateScrollbarGutter = useEventCallback(() => {\n if (!isSafari) {\n return;\n }\n\n const container = ref.current;\n if (container) {\n setScrollbarGutter(\n container.scrollHeight > container.clientHeight ? \"stable\" : \"auto\",\n );\n }\n });\n\n /**\n * Applying scrollbar-gutter fixes a glitch in Safari where redraw\n * sometimes makes the modal change width (with or without gutter included in size calculation).\n * This causes the modal to jump around when hovering with mouse or resizing window.\n *\n * If this glitch is fixed in Safari, this code can be removed.\n */\n\n useEffect(() => {\n window.addEventListener(\"resize\", updateScrollbarGutter);\n document.addEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n return () => {\n window.removeEventListener(\"resize\", updateScrollbarGutter);\n document.removeEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n };\n }, [updateScrollbarGutter]);\n\n return (\n <ReactModal\n overlayClassName={{\n base: cx(overlayClassName, styles.overlay),\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: cx(className, styles.modal),\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n onAfterOpen={updateScrollbarGutter}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{\n [\"--swui-modal-width\" as string]: \"fit-content\",\n scrollbarGutter,\n }}\n ref={ref}\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 ReactEventHandler,\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 elementId?: string;\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 | null>;\n onResolve?: () => void;\n onReject?: () => void;\n /**\n * Sets aria-label on modal or dialog element.\n */\n label?: string;\n /**\n * Sets aria-labelledby on modal or dialog element.\n */\n labelledby?: string;\n /**\n * Sets aria-describedby on modal or dialog element.\n */\n describedby?: string;\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 elementId,\n onResolve,\n onReject,\n className,\n background,\n label,\n labelledby,\n describedby,\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>>(null);\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>(null);\n const modalComponentProps = useRef<TProps>(undefined);\n const closedByPromiseRef = useRef<boolean>(false);\n const rejectRef = useRef<RejectCommand | undefined>(null);\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 closedByPromiseRef.current = false;\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 closedByPromiseRef.current = true;\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n (ev) => {\n ev.stopPropagation();\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 reject = useCallback<RejectCommand>(\n (error) => {\n closedByPromiseRef.current = true;\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n (ev) => {\n ev.stopPropagation();\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 onClose = useCallback<ReactEventHandler<HTMLDialogElement>>(\n (ev) => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n ev.stopPropagation();\n if (!closedByPromiseRef.current) {\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }\n },\n [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\n isOpen={isOpen}\n onRequestClose={reject}\n background={background}\n contentLabel={label}\n id={elementId}\n aria={{ modal: true, labelledby, describedby }}\n >\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 id={elementId}\n className={cx(className, closing && closingClassName)}\n aria-label={label}\n aria-labelledby={labelledby}\n aria-describedby={describedby}\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 label,\n elementId,\n labelledby,\n describedby,\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 { PropsWithChildren } from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps extends PropsWithChildren {}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n children,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{children}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport styles from \"./ModalBody.module.css\";\nimport cx from \"classnames\";\n\nexport type ModalBodyVariant = \"normal\" | \"relaxed\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {\n variant?: ModalBodyVariant;\n}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({\n gap = 3,\n variant = \"normal\",\n className,\n ...props\n}) => {\n return (\n <Column\n className={cx(styles.modalBody, styles[variant], className)}\n indent={variant === \"relaxed\" ? 5 : 3}\n spacing={variant === \"relaxed\" ? 5 : 3}\n gap={gap}\n {...props}\n />\n );\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}</ModalActionButtons>}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport {\n FlatButton,\n FlatButtonProps,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\n\nexport interface ModalCloseButtonProps extends FlatButtonProps {}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = (props) => {\n return (\n <FlatButton\n size={\"large\"}\n variant={\"danger\"}\n leftIcon={stenaTimesThick}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { Column, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { ModalCloseButton } from \"./ModalCloseButton\";\n\nexport type ModalHeaderProps =\n | ModalHeaderWithCloseButtonProps\n | ModalHeaderWithNoCloseButtonProps;\n\nexport interface ModalHeaderCommonProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n}\n\nexport interface ModalHeaderWithCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose?: never;\n closeButtonAriaLabel?: never;\n}\n\nexport interface ModalHeaderWithNoCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose: () => void;\n closeButtonAriaLabel: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n closeButtonAriaLabel,\n}) => {\n return (\n <Column>\n <Row justifyContent={\"space-between\"} alignItems={\"center\"} gap={2}>\n {heading ? (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n ) : (\n <div />\n )}\n {onClickClose ? (\n <ModalCloseButton\n onClick={onClickClose}\n size={headingSize}\n aria-label={closeButtonAriaLabel}\n />\n ) : null}\n </Row>\n </Column>\n );\n};\n","import { BoxProps, Row } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./ModalFooter.module.css\";\n\nexport interface ModalFooterProps extends BoxProps {\n sticky?: boolean;\n gap?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n sticky,\n zIndex = 4,\n gap = 2,\n className,\n ...boxProps\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky, className)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n gap={gap}\n {...boxProps}\n />\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","isSafari","Modal","className","overlayClassName","ref","scrollbarGutter","setScrollbarGutter","useState","updateScrollbarGutter","useEventCallback","container","useEffect","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","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","elementId","onResolve","onReject","label","labelledby","describedby","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","closedByPromiseRef","rejectRef","isOpen","setIsOpen","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","value","ev","error","onClose","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","ModalBody","gap","variant","ModalContainer","InfoAlert","buttons","heading","text","minWidth","CircledIcon","Text","ModalCloseButton","stenaTimesThick","ModalHeader","headingSize","onClickClose","closeButtonAriaLabel","ModalFooter","sticky","boxProps"],"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/ModalCloseButton.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx","../src/toasts/notification/UnreadDot.tsx","../src/toasts/notification/NotificationHeader.tsx","../src/toasts/notification/Notification.tsx","../src/toasts/notification/NotificationList.tsx","../src/toasts/toast/Toast.tsx","../src/toasts/toast/ToastBox.tsx","../src/toasts/toast-container/ToastContainer.tsx","../src/toasts/toast-container/util/showToast.ts"],"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<HTMLDivElement>(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 as React.RefObject<HTMLElement>}\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\nexport interface 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\nexport interface 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 { useEventCallback } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps\n extends Omit<ReactModal.Props, \"className\" | \"overlayClassName\"> {\n background?: string;\n onRequestClose?: () => void;\n className?: string;\n overlayClassName?: string;\n}\n\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n className,\n overlayClassName,\n ...reactModalProps\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const [scrollbarGutter, setScrollbarGutter] = useState<\n \"auto\" | \"stable\" | undefined\n >(isSafari ? \"auto\" : undefined);\n\n const style = {\n overlay: { justifyContent: \"center\" },\n content: {\n \"--swui-modal-content-bg-color\": background,\n } as CSSProperties,\n };\n\n const updateScrollbarGutter = useEventCallback(() => {\n if (!isSafari) {\n return;\n }\n\n const container = ref.current;\n if (container) {\n setScrollbarGutter(\n container.scrollHeight > container.clientHeight ? \"stable\" : \"auto\",\n );\n }\n });\n\n /**\n * Applying scrollbar-gutter fixes a glitch in Safari where redraw\n * sometimes makes the modal change width (with or without gutter included in size calculation).\n * This causes the modal to jump around when hovering with mouse or resizing window.\n *\n * If this glitch is fixed in Safari, this code can be removed.\n */\n\n useEffect(() => {\n window.addEventListener(\"resize\", updateScrollbarGutter);\n document.addEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n return () => {\n window.removeEventListener(\"resize\", updateScrollbarGutter);\n document.removeEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n };\n }, [updateScrollbarGutter]);\n\n return (\n <ReactModal\n overlayClassName={{\n base: cx(overlayClassName, styles.overlay),\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: cx(className, styles.modal),\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n onAfterOpen={updateScrollbarGutter}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{\n [\"--swui-modal-width\" as string]: \"fit-content\",\n scrollbarGutter,\n }}\n ref={ref}\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 ReactEventHandler,\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 elementId?: string;\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 | null>;\n onResolve?: () => void;\n onReject?: () => void;\n /**\n * Sets aria-label on modal or dialog element.\n */\n label?: string;\n /**\n * Sets aria-labelledby on modal or dialog element.\n */\n labelledby?: string;\n /**\n * Sets aria-describedby on modal or dialog element.\n */\n describedby?: string;\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 elementId,\n onResolve,\n onReject,\n className,\n background,\n label,\n labelledby,\n describedby,\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>>(null);\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>(null);\n const modalComponentProps = useRef<TProps>(undefined);\n const closedByPromiseRef = useRef<boolean>(false);\n const rejectRef = useRef<RejectCommand | undefined>(null);\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 closedByPromiseRef.current = false;\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 closedByPromiseRef.current = true;\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n (ev) => {\n ev.stopPropagation();\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 reject = useCallback<RejectCommand>(\n (error) => {\n closedByPromiseRef.current = true;\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n (ev) => {\n ev.stopPropagation();\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 onClose = useCallback<ReactEventHandler<HTMLDialogElement>>(\n (ev) => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n ev.stopPropagation();\n if (!closedByPromiseRef.current) {\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }\n },\n [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\n isOpen={isOpen}\n onRequestClose={reject}\n background={background}\n contentLabel={label}\n id={elementId}\n aria={{ modal: true, labelledby, describedby }}\n >\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 id={elementId}\n className={cx(className, closing && closingClassName)}\n aria-label={label}\n aria-labelledby={labelledby}\n aria-describedby={describedby}\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 label,\n elementId,\n labelledby,\n describedby,\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 { PropsWithChildren } from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps extends PropsWithChildren {}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n children,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{children}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport styles from \"./ModalBody.module.css\";\nimport cx from \"classnames\";\n\nexport type ModalBodyVariant = \"normal\" | \"relaxed\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {\n variant?: ModalBodyVariant;\n}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({\n gap = 3,\n variant = \"normal\",\n className,\n ...props\n}) => {\n return (\n <Column\n className={cx(styles.modalBody, styles[variant], className)}\n indent={variant === \"relaxed\" ? 5 : 3}\n spacing={variant === \"relaxed\" ? 5 : 3}\n gap={gap}\n {...props}\n />\n );\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}</ModalActionButtons>}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport {\n FlatButton,\n FlatButtonProps,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\n\nexport interface ModalCloseButtonProps extends FlatButtonProps {}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = (props) => {\n return (\n <FlatButton\n size={\"large\"}\n variant={\"danger\"}\n leftIcon={stenaTimesThick}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { Column, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { ModalCloseButton } from \"./ModalCloseButton\";\n\nexport type ModalHeaderProps =\n | ModalHeaderWithCloseButtonProps\n | ModalHeaderWithNoCloseButtonProps;\n\nexport interface ModalHeaderCommonProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n}\n\nexport interface ModalHeaderWithCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose?: never;\n closeButtonAriaLabel?: never;\n}\n\nexport interface ModalHeaderWithNoCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose: () => void;\n closeButtonAriaLabel: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n closeButtonAriaLabel,\n}) => {\n return (\n <Column>\n <Row justifyContent={\"space-between\"} alignItems={\"center\"} gap={2}>\n {heading ? (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n ) : (\n <div />\n )}\n {onClickClose ? (\n <ModalCloseButton\n onClick={onClickClose}\n size={headingSize}\n aria-label={closeButtonAriaLabel}\n />\n ) : null}\n </Row>\n </Column>\n );\n};\n","import { BoxProps, Row } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./ModalFooter.module.css\";\n\nexport interface ModalFooterProps extends BoxProps {\n sticky?: boolean;\n gap?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n sticky,\n zIndex = 4,\n gap = 2,\n className,\n ...boxProps\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky, className)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n gap={gap}\n {...boxProps}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./UnreadDot.module.css\";\n\nexport interface UnreadDotProps {\n children: ReactNode;\n}\n\nexport const UnreadDot: React.FC<UnreadDotProps> = ({ children }) => {\n return (\n <div className={styles.unreadDot}>\n {children}\n <div className={styles.dot} />\n </div>\n );\n};\n","import { Box, Column, Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { CircledIcon, CloseButton, MediumIcon } from \"@stenajs-webui/elements\";\nimport { cssColor, CssPropColor } from \"@stenajs-webui/theme\";\nimport { UnreadDot } from \"./UnreadDot\";\nimport { NotificationVariant } from \"./Notification\";\nimport styles from \"./NotificationHeader.module.css\";\n\nexport interface NotificationHeaderProps {\n /** Text. */\n text: string;\n /** Timestamp. */\n timestamp?: string;\n /** Icon. */\n icon?: MediumIcon;\n /** Icon description for accessibility. */\n iconAriaLabel?: string;\n /** Left content instead of icon. */\n contentLeft?: React.ReactNode;\n /** Right content. */\n contentRight?: React.ReactNode;\n /** What happens on clicking close. */\n onClickClose?: () => void;\n /** Mark the notification as unread */\n unread?: boolean;\n /** Notification variant. Will affect icon bg color */\n variant?: NotificationVariant;\n /** Icon background color. Will override other icon bg color */\n iconBackgroundColor?: CssPropColor;\n /** Force alignment of text for close button. This is used with toastify, which adds close button outside of the header. */\n forceCloseButtonAlignment?: boolean;\n}\n\nexport const NotificationHeader: React.FC<NotificationHeaderProps> = ({\n text,\n timestamp,\n icon,\n iconAriaLabel,\n contentLeft,\n contentRight,\n onClickClose,\n unread = false,\n variant,\n iconBackgroundColor,\n forceCloseButtonAlignment,\n}) => {\n const circledIcon = icon ? (\n <CircledIcon\n size={\"small\"}\n icon={icon}\n aria-label={iconAriaLabel}\n variant={\"whiteBg\"}\n backgroundColor={\n iconBackgroundColor\n ? iconBackgroundColor\n : getIconBgColorFromVariant(unread, variant)\n }\n />\n ) : undefined;\n\n return (\n <Row\n alignItems={\"flex-start\"}\n justifyContent={\"space-between\"}\n data-comp={\"NotificationHeader\"}\n className={styles.notificationHeader}\n gap={2}\n >\n <Row gap={2} alignItems={\"flex-start\"}>\n {contentLeft && (\n <Column justifyContent={\"center\"}>{contentLeft}</Column>\n )}\n {!contentLeft && circledIcon && (\n <Row alignItems={\"center\"} height={\"40px\"}>\n {unread ? <UnreadDot>{circledIcon}</UnreadDot> : circledIcon}\n </Row>\n )}\n <Box minHeight={20} justifyContent={\"center\"} flex={1} gap={0.5}>\n {icon || onClickClose || forceCloseButtonAlignment ? (\n <Space num={0.5} />\n ) : null}\n <Text variant={\"bold\"}>{text}</Text>\n {timestamp && (\n <div className={styles.timestamp}>\n <Text\n size={\"small\"}\n color={cssColor(\n unread ? \"--lhds-color-blue-600\" : \"--lhds-color-ui-600\",\n )}\n >\n {timestamp}\n </Text>\n </div>\n )}\n </Box>\n </Row>\n {contentRight && (\n <Column justifyContent={\"center\"}>{contentRight}</Column>\n )}\n {onClickClose && (\n <Row alignItems={\"center\"} height={\"40px\"} width={\"40px\"}>\n <CloseButton onClick={onClickClose} />\n </Row>\n )}\n </Row>\n );\n};\n\nexport const getIconBgColorFromVariant = (\n unread: boolean,\n variant?: NotificationVariant,\n): CssPropColor | undefined => {\n if (!unread && variant === \"standard\") {\n return undefined;\n }\n return \"--lhds-color-ui-50\";\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n NotificationHeader,\n NotificationHeaderProps,\n} from \"./NotificationHeader\";\nimport styles from \"./Notification.module.css\";\nimport cx from \"classnames\";\n\nexport type NotificationVariant = \"standard\" | \"danger\";\n\nexport interface NotificationProps extends NotificationHeaderProps {\n children?: ReactNode;\n}\n\nexport const Notification: React.FC<NotificationProps> = ({\n variant = \"standard\",\n children,\n unread,\n ...headerProps\n}) => (\n <div\n data-comp={\"Notification\"}\n className={cx(\n styles.notification,\n styles[variant],\n unread && styles.unread,\n )}\n >\n <NotificationHeader {...headerProps} unread={unread} variant={variant} />\n {children && <Column className={styles.body}>{children}</Column>}\n </div>\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./NotificationList.module.css\";\n\nexport interface NotificationListProps {\n children?: ReactNode;\n}\n\nexport const NotificationList: React.FC<NotificationListProps> = ({\n children,\n}) => {\n return (\n <div data-comp={\"NotificationList\"} className={styles.notificationList}>\n {children}\n <div />\n </div>\n );\n};\n","import { Box, BoxProps } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport styles from \"./Toast.module.css\";\nimport {\n NotificationHeader,\n NotificationHeaderProps,\n} from \"../notification/NotificationHeader\";\n\nexport interface ToastProps\n extends Pick<BoxProps, \"children\" | \"width\" | \"maxWidth\">,\n Omit<NotificationHeaderProps, \"contentRight\"> {}\n\nexport const Toast: React.FC<ToastProps> = ({\n children,\n width = 364,\n maxWidth,\n ...headerProps\n}) => (\n <Box\n className={styles.toast}\n data-comp={\"Toast\"}\n width={width}\n maxWidth={maxWidth}\n >\n <NotificationHeader forceCloseButtonAlignment {...headerProps} />\n {children && <div className={styles.body}>{children}</div>}\n </Box>\n);\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport styles from \"./ToastBox.module.css\";\n\nexport interface ToastBoxProps extends BoxProps {}\n\nexport const ToastBox: React.FC<ToastBoxProps> = (props) => {\n return (\n <Box\n as={props.onClick ? \"button\" : undefined}\n className={cx(styles.toastBox, props.onClick && styles.clickable)}\n data-comp={\"Toast\"}\n role={\"alert\"}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport {\n ToastContainer as ToastifyToastContainer,\n ToastContainerProps as ToastifyToastContainerProps,\n} from \"react-toastify\";\nimport styles from \"./ToastContainer.module.css\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport type ToastContainerProps = ToastifyToastContainerProps;\n\nexport const ToastContainer: React.FC<ToastContainerProps> = ({ ...props }) => {\n return (\n <ToastifyToastContainer\n className={styles.toastContainer}\n closeButton={({ closeToast }) => <CloseButton onClick={closeToast} />}\n hideProgressBar={true}\n pauseOnFocusLoss={false}\n pauseOnHover={true}\n draggable={false}\n {...props}\n />\n );\n};\n","import { toast, ToastContent, ToastOptions } from \"react-toastify\";\n\nexport const showToast = <T>(\n content: ToastContent<T>,\n options?: ToastOptions<T> | undefined,\n) => toast<T>(content, options);\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","isSafari","Modal","className","overlayClassName","ref","scrollbarGutter","setScrollbarGutter","useState","updateScrollbarGutter","useEventCallback","container","useEffect","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","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","elementId","onResolve","onReject","label","labelledby","describedby","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","closedByPromiseRef","rejectRef","isOpen","setIsOpen","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","value","ev","error","onClose","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","ModalBody","gap","variant","ModalContainer","InfoAlert","buttons","heading","text","minWidth","CircledIcon","Text","ModalCloseButton","stenaTimesThick","ModalHeader","headingSize","onClickClose","closeButtonAriaLabel","ModalFooter","sticky","boxProps","UnreadDot","NotificationHeader","timestamp","iconAriaLabel","contentLeft","unread","iconBackgroundColor","forceCloseButtonAlignment","circledIcon","getIconBgColorFromVariant","Notification","headerProps","NotificationList","Toast","ToastBox","ToastContainer","ToastifyToastContainer","closeToast","showToast","content","toast"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_quvmp_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;inset: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_quvmp_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1{background-color:#fff}}._overlay_quvmp_1 ._modal_quvmp_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_quvmp_1 ._modal_quvmp_31{width:100%}}._overlay_quvmp_1 ._content_quvmp_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_quvmp_1 ._content_quvmp_41{top:0;width:100%;max-width:100%}}._overlay_quvmp_1 ._content_quvmp_41{animation:_appear_quvmp_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1 ._content_quvmp_41{box-shadow:none;top:0}}._overlay_quvmp_1 ._content_quvmp_41:focus{outline:0}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle{cursor:move}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_quvmp_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_quvmp_1{0%{opacity:0}to{opacity:1}}._footer_quvmp_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_quvmp_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_quvmp_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;inset: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_1gix5_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;inset: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_1gix5_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1{background-color:#fff}}._overlay_1gix5_1 ._modal_1gix5_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_1gix5_1 ._content_1gix5_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_1gix5_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1 ._content_1gix5_38{box-shadow:none;top:0}}._overlay_1gix5_1 ._content_1gix5_38:focus{outline:0}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle{cursor:move}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1gix5_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1gix5_1{0%{opacity:0}to{opacity:1}}._footer_1gix5_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1gix5_96{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1gix5_96{position:static;box-shadow:none}}._overlay_nbrrn_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;inset:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_nbrrn_1._afterOpen_nbrrn_24:not(._beforeClose_nbrrn_24){animation:_fadeIn_nbrrn_1 var(--swui-modal-animation-time) forwards}._overlay_nbrrn_1._beforeClose_nbrrn_24{animation:_fadeOut_nbrrn_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_nbrrn_1{background-color:#fff}}._overlay_nbrrn_1 ._modal_nbrrn_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_nbrrn_1 ._modal_nbrrn_36{padding:0;width:100%}}._overlay_nbrrn_1 ._modal_nbrrn_36._afterOpen_nbrrn_24:not(._beforeClose_nbrrn_24){animation:_slideIn_nbrrn_1 var(--swui-modal-animation-time) forwards}._overlay_nbrrn_1 ._modal_nbrrn_36._beforeClose_nbrrn_24{animation:_slideOut_nbrrn_1 var(--swui-modal-animation-time) forwards}._overlay_nbrrn_1 ._content_nbrrn_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_nbrrn_1 ._content_nbrrn_59{border-radius:0;width:100%;max-width:100%;min-height:100dvh}}@media (min-width: 769px){._overlay_nbrrn_1 ._content_nbrrn_59{border-radius:var(--swui-border-radius-large)}._overlay_nbrrn_1 ._content_nbrrn_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box;min-height:40px}._overlay_nbrrn_1 ._content_nbrrn_59::-webkit-scrollbar{width:16px}}@media print{._overlay_nbrrn_1 ._content_nbrrn_59{box-shadow:none;top:0}}._overlay_nbrrn_1 ._content_nbrrn_59:focus{outline:0}@keyframes _fadeIn_nbrrn_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_nbrrn_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_nbrrn_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_nbrrn_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_nbrrn_149{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_nbrrn_153{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_nbrrn_153{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;inset:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;inset: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;inset:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-webkit-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-webkit-fit-content;height: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_iw29e_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_iw29e_1{border-radius:var(--swui-border-radius-large)}._modalDialog_iw29e_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box;min-height:40px}._modalDialog_iw29e_1::-webkit-scrollbar{width:16px}}._modalDialog_iw29e_1:not([open]){display:none}._modalDialog_iw29e_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_iw29e_1 .25s forwards}._modalDialog_iw29e_1._closing_iw29e_37[open]{animation:_slideOut_iw29e_1 .25s forwards}@media (max-width: 768px){._modalDialog_iw29e_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_iw29e_1::backdrop{position:fixed;inset:0;background-color:#0d0e1080;animation:_fadeIn_iw29e_1 .25s forwards}._modalDialog_iw29e_1._closing_iw29e_37::backdrop{animation:_fadeOut_iw29e_1 .25s forwards}@keyframes _fadeIn_iw29e_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_iw29e_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_iw29e_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_iw29e_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_iw29e_101{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}}@media (max-width: 768px){._modalBody_ozynq_1._modalBody_ozynq_1{padding:calc(var(--swui-metrics-space) * 2)}}._modalFooter_1ypno_1._modalFooter_1ypno_1{align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:calc((var(--swui-metrics-spacing) * 2)) calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_1ypno_1._modalFooter_1ypno_1._sticky_1ypno_10{position:-webkit-sticky;position:sticky;bottom:0}")),document.head.appendChild(o)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("react-modal"),e=require("react/jsx-runtime"),l=require("react"),xe=require("react-draggable"),i=require("classnames"),n=require("@stenajs-webui/core"),C=require("@stenajs-webui/elements"),he=require("@stenajs-webui/theme"),Ce=t=>{B.setAppElement(t)},ye="_overlay_quvmp_1",je="_modal_quvmp_31",ve="_content_quvmp_41",we="_isDraggable_quvmp_70",be="_footer_quvmp_101",Ne="_stickyFooter_quvmp_105",D={overlay:ye,modal:je,content:ve,isDraggable:we,footer:be,stickyFooter:Ne},X="draggable-modal-handle",Y="draggable-modal-cancel",ae=({width:t,maxWidth:o,draggable:s=!1,children:r,...a})=>{const d=l.useRef(null);return e.jsx(B,{overlayClassName:D.overlay,className:D.modal,...a,children:e.jsx(xe,{handle:`.${X}`,cancel:`.${Y}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!s,nodeRef:d,children:e.jsx("div",{style:{"--swui-modal-width":t,"--swui-modal-max-width":o},className:i(D.content,{[D.isDraggable]:s}),ref:d,children:r})})})},De="_portal_17ze5_1",Be="_overlay_17ze5_4",Re="_content_17ze5_9",Ae="_floating_17ze5_15",Me="_slideFromLeft_17ze5_29",Fe="_slideFromRight_17ze5_30",Le="_afterOpen_17ze5_36",Oe="_beforeClose_17ze5_40",Se="_slideFromTop_17ze5_45",$e="_slideFromBottom_17ze5_46",m={portal:De,overlay:Be,content:Re,floating:Ae,slideFromLeft:Me,slideFromRight:Fe,afterOpen:Le,beforeClose:Oe,slideFromTop:Se,slideFromBottom:$e},ke=({background:t,zIndex:o,children:s,slideFrom:r="left",portalTarget:a,floating:d,..._})=>{const{height:g,width:x}=_;return e.jsx(B,{closeTimeoutMS:250,portalClassName:m.portal,overlayClassName:{base:m.overlay,afterOpen:m.afterOpen,beforeClose:m.beforeClose},className:{base:i(m.content,Ee(r),d&&m.floating),afterOpen:m.afterOpen,beforeClose:m.beforeClose},style:{content:{width:x,height:g,background:t},overlay:{zIndex:o}},parentSelector:a?()=>a:void 0,..._,children:s})},Ee=t=>{switch(t){case"left":return m.slideFromLeft;case"right":return m.slideFromRight;case"top":return m.slideFromTop;case"bottom":return m.slideFromBottom;default:return n.exhaustSwitchCase(t,m.slideFromLeft)}},Ie=({header:t,contentRight:o,onRequestClose:s,icon:r})=>e.jsx(n.Spacing,{position:"sticky",top:0,zIndex:100,background:he.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(C.Icon,{icon:r,size:24}),e.jsx(n.Heading,{variant:"h4",children:t})]}),e.jsxs(n.Row,{gap:1,children:[o,e.jsx(C.FlatButton,{leftIcon:C.stenaTimes,onClick:s,variant:"danger"}),e.jsx(n.Space,{num:.5})]})]})}),ze="_overlay_1gix5_1",We="_modal_1gix5_31",Te="_content_1gix5_38",G={overlay:ze,modal:We,content:Te},qe={overlay:{justifyContent:"center"}},He=({children:t,...o})=>e.jsx(B,{overlayClassName:G.overlay,className:G.modal,style:qe,...o,children:e.jsx("div",{className:G.content,style:{"--swui-modal-width":"fit-content"},children:t})}),Ge="_overlay_nbrrn_1",Pe="_afterOpen_nbrrn_24",Ve="_beforeClose_nbrrn_24",Xe="_modal_nbrrn_36",Ye="_content_nbrrn_59",b={overlay:Ge,afterOpen:Pe,beforeClose:Ve,modal:Xe,content:Ye},se=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),ce=({children:t,background:o,className:s,overlayClassName:r,...a})=>{const d=l.useRef(null),[_,g]=l.useState(se?"auto":void 0),x={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":o}},f=n.useEventCallback(()=>{if(!se)return;const h=d.current;h&&g(h.scrollHeight>h.clientHeight?"stable":"auto")});return l.useEffect(()=>(window.addEventListener("resize",f),document.addEventListener("DOMContentLoaded",f),()=>{window.removeEventListener("resize",f),document.removeEventListener("DOMContentLoaded",f)}),[f]),e.jsx(B,{overlayClassName:{base:i(r,b.overlay),beforeClose:b.beforeClose,afterOpen:b.afterOpen},className:{base:i(s,b.modal),beforeClose:b.beforeClose,afterOpen:b.afterOpen},style:x,closeTimeoutMS:250,onAfterOpen:f,...a,children:e.jsx("div",{className:b.content,style:{"--swui-modal-width":"fit-content",scrollbarGutter:_},ref:d,children:t})})},Je="_modal_4fwgb_1",Ke="_overlay_4fwgb_13",ne={modal:Je,overlay:Ke},Qe=({headerIconLeft:t,headerText:o,shouldCloseOnOverlayClick:s=!1,shouldCloseOnEsc:r=!1,...a})=>e.jsx(B,{...a,isOpen:!0,shouldCloseOnOverlayClick:s,shouldCloseOnEsc:r,className:ne.modal,overlayClassName:ne.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(C.Spinner,{size:"small"})}),(t||o)&&e.jsxs(e.Fragment,{children:[e.jsx(n.Spacing,{}),e.jsxs(n.Row,{indent:2,children:[t&&e.jsxs(e.Fragment,{children:[e.jsx(C.Icon,{size:14,icon:t,color:"white"}),e.jsx(n.Indent,{})]}),o&&e.jsx(n.Heading,{variant:"h4",color:"white",children:o})]})]})]})}),ie=({onRequestClose:t,header:o,headerText:s,closeButtonClassName:r})=>e.jsxs(n.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:X,children:[e.jsxs(n.Row,{flex:1,indent:!0,alignItems:"center",children:[s&&e.jsx(n.Txt,{className:Y,size:"large",children:s}),o]}),e.jsx(n.Box,{alignSelf:"flex-start",children:e.jsx(C.CloseButton,{className:r,onClick:t})})]}),Ue=({header:t,headerText:o,children:s,spacing:r,indent:a,draggable:d=!1,onRequestClose:_,closeButtonClassName:g,footer:x,disableStickyFooter:f=!1,...h})=>{const v=typeof r=="number"?r:1,R=typeof a=="number"?a:1;return e.jsxs(ae,{...h,onRequestClose:_,draggable:d,children:[e.jsx(ie,{onRequestClose:_,header:t,headerText:o,closeButtonClassName:g}),e.jsx(n.Box,{spacing:v,indent:R,children:s}),x&&e.jsx(n.Box,{className:i(D.footer,{[D.stickyFooter]:!f}),children:x})]})},Ze=({children:t})=>e.jsx(n.Column,{indent:2,spacing:2,children:t}),O=l.createContext(void 0);function S(t,{ref:o,modal:s,contentWrapperClassName:r,closingClassName:a,contentWrapperStyle:d,dialogStyle:_,divInsteadOfDialog:g,disableCloseOnClickOutside:x,elementId:f,onResolve:h,onReject:v,className:R,background:$,label:k,labelledby:E,describedby:I}){const ge=l.useRef(null),u=o??ge,[z,fe]=l.useReducer(c=>c+1,0),K=l.useRef(null),W=l.useRef(null),y=l.useRef(void 0),A=l.useRef(!1),M=l.useRef(null),[Q,F]=l.useState(!1),[T,N]=l.useState(!1),[U,j]=l.useState(!1),q=t,pe=l.useCallback(c=>(K.current=new Promise((p,oe)=>{W.current=p,M.current=oe}),j(!1),F(!0),N(!0),fe(),A.current=!1,y.current=c,s?u.current?.showModal():u.current?.show(),K.current),[u,s]),Z=l.useCallback(c=>{A.current=!0,j(!0),F(!1),g?setTimeout(()=>{j(!1),N(!1),W.current?.(c),y.current=void 0,h?.()},300):u.current?.addEventListener("animationend",p=>{p.stopPropagation(),j(!1),N(!1),u.current?.close(),W.current?.(c),y.current=void 0,h?.()},{once:!0})},[u,h,g]),w=l.useCallback(c=>{A.current=!0,j(!0),F(!1),g?setTimeout(()=>{j(!1),N(!1),M.current?.(c),v?.(),y.current=void 0},300):u.current?.addEventListener("animationend",p=>{p.stopPropagation(),j(!1),N(!1),u.current?.close(),M.current?.(c),v?.(),y.current=void 0},{once:!0})},[u,g,v]),ee=l.useCallback(c=>{c.stopPropagation(),A.current||(j(!1),F(!1),N(!1),M.current?.(),v?.(),y.current=void 0)},[v]),te=l.useCallback(c=>{if(c.target!==u.current)return;const p=u.current.getBoundingClientRect();p.top<=c.clientY&&c.clientY<=p.top+p.height&&p.left<=c.clientX&&c.clientX<=p.left+p.width||w()},[u,w]),H=l.useMemo(()=>({resolve:Z,reject:w}),[w,Z]);return[l.useMemo(()=>g?e.jsx(ce,{isOpen:Q,onRequestClose:w,background:$,contentLabel:k,id:f,aria:{modal:!0,labelledby:E,describedby:I},children:e.jsx(O.Provider,{value:H,children:T&&l.createElement(q,{...y.current,key:z})})}):e.jsx("dialog",{onClick:x?void 0:te,onClose:ee,ref:u,id:f,className:i(R,U&&a),"aria-label":k,"aria-labelledby":E,"aria-describedby":I,style:{background:$,..._},children:e.jsx("div",{style:d,className:r,children:T&&e.jsx(O.Provider,{value:H,children:l.createElement(q,{...y.current,key:z})})})}),[g,Q,w,$,k,f,E,I,H,T,q,z,x,te,ee,u,R,U,a,_,d,r]),{show:pe,reject:w}]}const et=()=>{const t=l.useContext(O);if(t==null)throw new Error("useDialogPromise is being used outside of dialog.");return t},tt="_alertDialog_14t8t_1",ot="_closing_14t8t_22",P={alertDialog:tt,closing:ot};function st(t,o){return S(t,{...o,modal:!0,closingClassName:i(o?.closingClassName,P.closing),contentWrapperClassName:i(o?.contentWrapperClassName,P.contentWrapper),className:i(o?.className,P.alertDialog)})}const nt="_drawerDialog_11g6r_1",rt="_left_11g6r_13",lt="_right_11g6r_14",at="_contentWrapper_11g6r_19",ct="_slideInLeft_11g6r_1",it="_closing_11g6r_36",dt="_slideOutLeft_11g6r_1",ut="_slideInRight_11g6r_1",mt="_slideOutRight_11g6r_1",_t="_top_11g6r_54",gt="_bottom_11g6r_55",ft="_slideInTop_11g6r_1",pt="_slideOutTop_11g6r_1",xt="_slideInBottom_11g6r_1",ht="_slideOutBottom_11g6r_1",L={drawerDialog:nt,left:rt,right:lt,contentWrapper:at,slideInLeft:ct,closing:it,slideOutLeft:dt,slideInRight:ut,slideOutRight:mt,top:_t,bottom:gt,slideInTop:ft,slideOutTop:pt,slideInBottom:xt,slideOutBottom:ht};function Ct(t,o="left",s){return S(t,{...s,disableCloseOnClickOutside:!0,modal:!1,closingClassName:i(s?.closingClassName,L.closing),contentWrapperClassName:i(s?.contentWrapperClassName,L.contentWrapper),className:i(s?.className,L.drawerDialog,L[o])})}const yt="_modalDialog_iw29e_1",jt="_closing_iw29e_37",vt="_contentWrapper_iw29e_101",V={modalDialog:yt,closing:jt,contentWrapper:vt};function wt(t,o){return S(t,{...o,modal:!0,closingClassName:i(o?.closingClassName,V.closing),contentWrapperClassName:i(o?.contentWrapperClassName,V.contentWrapper),className:i(o?.className,V.modalDialog)})}const J=({headingLevel:t="h2",size:o="medium",children:s})=>e.jsx(n.Heading,{variant:o==="medium"?"h3":"h1",as:t,children:s}),bt="_modalActionButtons_s27nj_1",Nt={modalActionButtons:bt},de=({children:t})=>e.jsxs(n.Box,{width:"100%",children:[e.jsx(n.Spacing,{}),e.jsx("div",{className:Nt.modalActionButtons,children:t})]}),Dt="_modalBody_ozynq_1",re={modalBody:Dt},ue=({gap:t=3,variant:o="normal",className:s,...r})=>e.jsx(n.Column,{className:i(re.modalBody,re[o],s),indent:o==="relaxed"?5:3,spacing:o==="relaxed"?5:3,gap:t,...r}),me=({children:t,maxWidth:o})=>e.jsx(n.Column,{flex:1,height:"100%",justifyContent:"space-between",maxWidth:o,children:t}),Bt=({icon:t,buttons:o,heading:s,text:r,children:a,maxWidth:d,minWidth:_})=>e.jsx(me,{children:e.jsxs(ue,{flexDirection:"column",alignItems:"center",maxWidth:d,minWidth:_,children:[t&&e.jsx(C.CircledIcon,{icon:t,size:"large"}),e.jsx(J,{children:s}),r&&e.jsx(n.Text,{textAlign:"center",children:r}),a,o&&e.jsx(de,{children:o})]})}),_e=t=>e.jsx(C.FlatButton,{size:"large",variant:"danger",leftIcon:C.stenaTimesThick,...t}),Rt=({heading:t,headingLevel:o,headingSize:s,onClickClose:r,closeButtonAriaLabel:a})=>e.jsx(n.Column,{children:e.jsxs(n.Row,{justifyContent:"space-between",alignItems:"center",gap:2,children:[t?e.jsx(J,{headingLevel:o,size:s,children:t}):e.jsx("div",{}),r?e.jsx(_e,{onClick:r,size:s,"aria-label":a}):null]})}),At="_modalFooter_1ypno_1",Mt="_sticky_1ypno_10",le={modalFooter:At,sticky:Mt},Ft=({sticky:t,zIndex:o=4,gap:s=2,className:r,...a})=>e.jsx(n.Row,{className:i(le.modalFooter,t&&le.sticky,r),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,gap:s,...a});exports.Alert=He;exports.BaseWindow=ae;exports.DRAGGABLE_CANCEL_CLASSNAME=Y;exports.DRAGGABLE_HANDLE_CLASSNAME=X;exports.DialogContext=O;exports.Drawer=ke;exports.DrawerHeader=Ie;exports.InfoAlert=Bt;exports.LoadingModal=Qe;exports.Modal=ce;exports.ModalActionButtons=de;exports.ModalBody=ue;exports.ModalCloseButton=_e;exports.ModalContainer=me;exports.ModalFooter=Ft;exports.ModalHeader=Rt;exports.ModalHeading=J;exports.Window=Ue;exports.WindowFooter=Ze;exports.WindowHeader=ie;exports.setupDeclarativeModals=Ce;exports.useAlertDialog=st;exports.useDialog=S;exports.useDialogPromise=et;exports.useDrawerDialog=Ct;exports.useModalDialog=wt;
1
+ (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_quvmp_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;inset: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_quvmp_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1{background-color:#fff}}._overlay_quvmp_1 ._modal_quvmp_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_quvmp_1 ._modal_quvmp_31{width:100%}}._overlay_quvmp_1 ._content_quvmp_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_quvmp_1 ._content_quvmp_41{top:0;width:100%;max-width:100%}}._overlay_quvmp_1 ._content_quvmp_41{animation:_appear_quvmp_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1 ._content_quvmp_41{box-shadow:none;top:0}}._overlay_quvmp_1 ._content_quvmp_41:focus{outline:0}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle{cursor:move}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_quvmp_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_quvmp_1{0%{opacity:0}to{opacity:1}}._footer_quvmp_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_quvmp_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_quvmp_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;inset: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_1gix5_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;inset: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_1gix5_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1{background-color:#fff}}._overlay_1gix5_1 ._modal_1gix5_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_1gix5_1 ._content_1gix5_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_1gix5_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1 ._content_1gix5_38{box-shadow:none;top:0}}._overlay_1gix5_1 ._content_1gix5_38:focus{outline:0}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle{cursor:move}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1gix5_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1gix5_1{0%{opacity:0}to{opacity:1}}._footer_1gix5_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1gix5_96{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1gix5_96{position:static;box-shadow:none}}._overlay_nbrrn_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;inset:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_nbrrn_1._afterOpen_nbrrn_24:not(._beforeClose_nbrrn_24){animation:_fadeIn_nbrrn_1 var(--swui-modal-animation-time) forwards}._overlay_nbrrn_1._beforeClose_nbrrn_24{animation:_fadeOut_nbrrn_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_nbrrn_1{background-color:#fff}}._overlay_nbrrn_1 ._modal_nbrrn_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_nbrrn_1 ._modal_nbrrn_36{padding:0;width:100%}}._overlay_nbrrn_1 ._modal_nbrrn_36._afterOpen_nbrrn_24:not(._beforeClose_nbrrn_24){animation:_slideIn_nbrrn_1 var(--swui-modal-animation-time) forwards}._overlay_nbrrn_1 ._modal_nbrrn_36._beforeClose_nbrrn_24{animation:_slideOut_nbrrn_1 var(--swui-modal-animation-time) forwards}._overlay_nbrrn_1 ._content_nbrrn_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_nbrrn_1 ._content_nbrrn_59{border-radius:0;width:100%;max-width:100%;min-height:100dvh}}@media (min-width: 769px){._overlay_nbrrn_1 ._content_nbrrn_59{border-radius:var(--swui-border-radius-large)}._overlay_nbrrn_1 ._content_nbrrn_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box;min-height:40px}._overlay_nbrrn_1 ._content_nbrrn_59::-webkit-scrollbar{width:16px}}@media print{._overlay_nbrrn_1 ._content_nbrrn_59{box-shadow:none;top:0}}._overlay_nbrrn_1 ._content_nbrrn_59:focus{outline:0}@keyframes _fadeIn_nbrrn_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_nbrrn_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_nbrrn_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_nbrrn_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_nbrrn_149{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_nbrrn_153{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_nbrrn_153{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;inset:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;inset: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;inset:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-webkit-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-webkit-fit-content;height: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_iw29e_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_iw29e_1{border-radius:var(--swui-border-radius-large)}._modalDialog_iw29e_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box;min-height:40px}._modalDialog_iw29e_1::-webkit-scrollbar{width:16px}}._modalDialog_iw29e_1:not([open]){display:none}._modalDialog_iw29e_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_iw29e_1 .25s forwards}._modalDialog_iw29e_1._closing_iw29e_37[open]{animation:_slideOut_iw29e_1 .25s forwards}@media (max-width: 768px){._modalDialog_iw29e_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_iw29e_1::backdrop{position:fixed;inset:0;background-color:#0d0e1080;animation:_fadeIn_iw29e_1 .25s forwards}._modalDialog_iw29e_1._closing_iw29e_37::backdrop{animation:_fadeOut_iw29e_1 .25s forwards}@keyframes _fadeIn_iw29e_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_iw29e_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_iw29e_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_iw29e_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_iw29e_101{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}}@media (max-width: 768px){._modalBody_ozynq_1._modalBody_ozynq_1{padding:calc(var(--swui-metrics-space) * 2)}}._modalFooter_1ypno_1._modalFooter_1ypno_1{align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:calc((var(--swui-metrics-spacing) * 2)) calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_1ypno_1._modalFooter_1ypno_1._sticky_1ypno_10{position:-webkit-sticky;position:sticky;bottom:0}._unreadDot_l8bni_1{position:relative}._unreadDot_l8bni_1 ._dot_l8bni_4{top:1px;right:1px;position:absolute;width:8px;height:8px;border-radius:var(--swui-max-border-radius);background:var(--lhds-color-blue-500)}._notificationHeader_1rl25_1 ._timestamp_1rl25_2{padding-bottom:8px}._notification_tpz0j_1{display:flex;flex-direction:column;width:100%;background:var(--lhds-color-ui-50);padding:calc(var(--swui-metrics-spacing) * 2) calc(var(--swui-metrics-indent) * 2);gap:calc(var(--swui-metrics-space) * 1)}._notification_tpz0j_1 ._body_tpz0j_10{padding-left:48px;padding-right:24px}._notification_tpz0j_1._standard_tpz0j_15._unread_tpz0j_16{background:var(--lhds-color-blue-50)}._notification_tpz0j_1._danger_tpz0j_21{background:var(--lhds-color-red-100)}._notificationList_1rkvu_1{display:flex;flex-direction:column;gap:2px;background:var(--lhds-color-ui-200)}._toast_1ifzt_1 ._body_1ifzt_2{display:flex;padding-left:48px;padding-bottom:8px}._toastBox_1lvsy_1._toastBox_1lvsy_1{display:inline-block;padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2);border-radius:var(--swui-border-radius);background:var(--lhds-color-ui-50);box-shadow:var(--swui-shadow-popover)}._toastBox_1lvsy_1._toastBox_1lvsy_1._clickable_1lvsy_8{border:1px solid transparent;cursor:pointer}._toastBox_1lvsy_1._toastBox_1lvsy_1._clickable_1lvsy_8:hover{border-color:var(--lhds-color-blue-300)}._toastContainer_1rek2_1 .Toastify__toast{align-items:flex-start}")),document.head.appendChild(o)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("react-modal"),e=require("react/jsx-runtime"),r=require("react"),De=require("react-draggable"),c=require("classnames"),s=require("@stenajs-webui/core"),p=require("@stenajs-webui/elements"),_e=require("@stenajs-webui/theme"),fe=require("react-toastify"),Re=t=>{D.setAppElement(t)},Le="_overlay_quvmp_1",Ae="_modal_quvmp_31",Fe="_content_quvmp_41",Me="_isDraggable_quvmp_70",$e="_footer_quvmp_101",ke="_stickyFooter_quvmp_105",B={overlay:Le,modal:Ae,content:Fe,isDraggable:Me,footer:$e,stickyFooter:ke},X="draggable-modal-handle",Y="draggable-modal-cancel",ge=({width:t,maxWidth:o,draggable:n=!1,children:a,...l})=>{const i=r.useRef(null);return e.jsx(D,{overlayClassName:B.overlay,className:B.modal,...l,children:e.jsx(De,{handle:`.${X}`,cancel:`.${Y}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!n,nodeRef:i,children:e.jsx("div",{style:{"--swui-modal-width":t,"--swui-modal-max-width":o},className:c(B.content,{[B.isDraggable]:n}),ref:i,children:a})})})},Ie="_portal_17ze5_1",Oe="_overlay_17ze5_4",ze="_content_17ze5_9",Te="_floating_17ze5_15",Se="_slideFromLeft_17ze5_29",Ee="_slideFromRight_17ze5_30",He="_afterOpen_17ze5_36",We="_beforeClose_17ze5_40",qe="_slideFromTop_17ze5_45",Pe="_slideFromBottom_17ze5_46",g={portal:Ie,overlay:Oe,content:ze,floating:Te,slideFromLeft:Se,slideFromRight:Ee,afterOpen:He,beforeClose:We,slideFromTop:qe,slideFromBottom:Pe},Ge=({background:t,zIndex:o,children:n,slideFrom:a="left",portalTarget:l,floating:i,...u})=>{const{height:m,width:h}=u;return e.jsx(D,{closeTimeoutMS:250,portalClassName:g.portal,overlayClassName:{base:g.overlay,afterOpen:g.afterOpen,beforeClose:g.beforeClose},className:{base:c(g.content,Ve(a),i&&g.floating),afterOpen:g.afterOpen,beforeClose:g.beforeClose},style:{content:{width:h,height:m,background:t},overlay:{zIndex:o}},parentSelector:l?()=>l:void 0,...u,children:n})},Ve=t=>{switch(t){case"left":return g.slideFromLeft;case"right":return g.slideFromRight;case"top":return g.slideFromTop;case"bottom":return g.slideFromBottom;default:return s.exhaustSwitchCase(t,g.slideFromLeft)}},Ue=({header:t,contentRight:o,onRequestClose:n,icon:a})=>e.jsx(s.Spacing,{position:"sticky",top:0,zIndex:100,background:_e.cssColor("--lhds-color-ui-50"),children:e.jsxs(s.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[e.jsxs(s.Row,{alignItems:"center",gap:2,children:[e.jsx(s.Space,{num:1}),a&&e.jsx(p.Icon,{icon:a,size:24}),e.jsx(s.Heading,{variant:"h4",children:t})]}),e.jsxs(s.Row,{gap:1,children:[o,e.jsx(p.FlatButton,{leftIcon:p.stenaTimes,onClick:n,variant:"danger"}),e.jsx(s.Space,{num:.5})]})]})}),Xe="_overlay_1gix5_1",Ye="_modal_1gix5_31",Je="_content_1gix5_38",G={overlay:Xe,modal:Ye,content:Je},Ke={overlay:{justifyContent:"center"}},Qe=({children:t,...o})=>e.jsx(D,{overlayClassName:G.overlay,className:G.modal,style:Ke,...o,children:e.jsx("div",{className:G.content,style:{"--swui-modal-width":"fit-content"},children:t})}),Ze="_overlay_nbrrn_1",et="_afterOpen_nbrrn_24",tt="_beforeClose_nbrrn_24",ot="_modal_nbrrn_36",st="_content_nbrrn_59",w={overlay:Ze,afterOpen:et,beforeClose:tt,modal:ot,content:st},ae=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),xe=({children:t,background:o,className:n,overlayClassName:a,...l})=>{const i=r.useRef(null),[u,m]=r.useState(ae?"auto":void 0),h={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":o}},_=s.useEventCallback(()=>{if(!ae)return;const j=i.current;j&&m(j.scrollHeight>j.clientHeight?"stable":"auto")});return r.useEffect(()=>(window.addEventListener("resize",_),document.addEventListener("DOMContentLoaded",_),()=>{window.removeEventListener("resize",_),document.removeEventListener("DOMContentLoaded",_)}),[_]),e.jsx(D,{overlayClassName:{base:c(a,w.overlay),beforeClose:w.beforeClose,afterOpen:w.afterOpen},className:{base:c(n,w.modal),beforeClose:w.beforeClose,afterOpen:w.afterOpen},style:h,closeTimeoutMS:250,onAfterOpen:_,...l,children:e.jsx("div",{className:w.content,style:{"--swui-modal-width":"fit-content",scrollbarGutter:u},ref:i,children:t})})},nt="_modal_4fwgb_1",at="_overlay_4fwgb_13",re={modal:nt,overlay:at},rt=({headerIconLeft:t,headerText:o,shouldCloseOnOverlayClick:n=!1,shouldCloseOnEsc:a=!1,...l})=>e.jsx(D,{...l,isOpen:!0,shouldCloseOnOverlayClick:n,shouldCloseOnEsc:a,className:re.modal,overlayClassName:re.overlay,children:e.jsxs(s.Column,{spacing:2,alignItems:"center",children:[e.jsx(s.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(p.Spinner,{size:"small"})}),(t||o)&&e.jsxs(e.Fragment,{children:[e.jsx(s.Spacing,{}),e.jsxs(s.Row,{indent:2,children:[t&&e.jsxs(e.Fragment,{children:[e.jsx(p.Icon,{size:14,icon:t,color:"white"}),e.jsx(s.Indent,{})]}),o&&e.jsx(s.Heading,{variant:"h4",color:"white",children:o})]})]})]})}),pe=({onRequestClose:t,header:o,headerText:n,closeButtonClassName:a})=>e.jsxs(s.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:X,children:[e.jsxs(s.Row,{flex:1,indent:!0,alignItems:"center",children:[n&&e.jsx(s.Txt,{className:Y,size:"large",children:n}),o]}),e.jsx(s.Box,{alignSelf:"flex-start",children:e.jsx(p.CloseButton,{className:a,onClick:t})})]}),lt=({header:t,headerText:o,children:n,spacing:a,indent:l,draggable:i=!1,onRequestClose:u,closeButtonClassName:m,footer:h,disableStickyFooter:_=!1,...j})=>{const C=typeof a=="number"?a:1,R=typeof l=="number"?l:1;return e.jsxs(ge,{...j,onRequestClose:u,draggable:i,children:[e.jsx(pe,{onRequestClose:u,header:t,headerText:o,closeButtonClassName:m}),e.jsx(s.Box,{spacing:C,indent:R,children:n}),h&&e.jsx(s.Box,{className:c(B.footer,{[B.stickyFooter]:!_}),children:h})]})},ct=({children:t})=>e.jsx(s.Column,{indent:2,spacing:2,children:t}),k=r.createContext(void 0);function I(t,{ref:o,modal:n,contentWrapperClassName:a,closingClassName:l,contentWrapperStyle:i,dialogStyle:u,divInsteadOfDialog:m,disableCloseOnClickOutside:h,elementId:_,onResolve:j,onReject:C,className:R,background:O,label:z,labelledby:T,describedby:S}){const we=r.useRef(null),f=o??we,[E,Ne]=r.useReducer(d=>d+1,0),Q=r.useRef(null),H=r.useRef(null),y=r.useRef(void 0),L=r.useRef(!1),A=r.useRef(null),[Z,F]=r.useState(!1),[W,N]=r.useState(!1),[ee,v]=r.useState(!1),q=t,Be=r.useCallback(d=>(Q.current=new Promise((x,ne)=>{H.current=x,A.current=ne}),v(!1),F(!0),N(!0),Ne(),L.current=!1,y.current=d,n?f.current?.showModal():f.current?.show(),Q.current),[f,n]),te=r.useCallback(d=>{L.current=!0,v(!0),F(!1),m?setTimeout(()=>{v(!1),N(!1),H.current?.(d),y.current=void 0,j?.()},300):f.current?.addEventListener("animationend",x=>{x.stopPropagation(),v(!1),N(!1),f.current?.close(),H.current?.(d),y.current=void 0,j?.()},{once:!0})},[f,j,m]),b=r.useCallback(d=>{L.current=!0,v(!0),F(!1),m?setTimeout(()=>{v(!1),N(!1),A.current?.(d),C?.(),y.current=void 0},300):f.current?.addEventListener("animationend",x=>{x.stopPropagation(),v(!1),N(!1),f.current?.close(),A.current?.(d),C?.(),y.current=void 0},{once:!0})},[f,m,C]),oe=r.useCallback(d=>{d.stopPropagation(),L.current||(v(!1),F(!1),N(!1),A.current?.(),C?.(),y.current=void 0)},[C]),se=r.useCallback(d=>{if(d.target!==f.current)return;const x=f.current.getBoundingClientRect();x.top<=d.clientY&&d.clientY<=x.top+x.height&&x.left<=d.clientX&&d.clientX<=x.left+x.width||b()},[f,b]),P=r.useMemo(()=>({resolve:te,reject:b}),[b,te]);return[r.useMemo(()=>m?e.jsx(xe,{isOpen:Z,onRequestClose:b,background:O,contentLabel:z,id:_,aria:{modal:!0,labelledby:T,describedby:S},children:e.jsx(k.Provider,{value:P,children:W&&r.createElement(q,{...y.current,key:E})})}):e.jsx("dialog",{onClick:h?void 0:se,onClose:oe,ref:f,id:_,className:c(R,ee&&l),"aria-label":z,"aria-labelledby":T,"aria-describedby":S,style:{background:O,...u},children:e.jsx("div",{style:i,className:a,children:W&&e.jsx(k.Provider,{value:P,children:r.createElement(q,{...y.current,key:E})})})}),[m,Z,b,O,z,_,T,S,P,W,q,E,h,se,oe,f,R,ee,l,u,i,a]),{show:Be,reject:b}]}const it=()=>{const t=r.useContext(k);if(t==null)throw new Error("useDialogPromise is being used outside of dialog.");return t},dt="_alertDialog_14t8t_1",ut="_closing_14t8t_22",V={alertDialog:dt,closing:ut};function mt(t,o){return I(t,{...o,modal:!0,closingClassName:c(o?.closingClassName,V.closing),contentWrapperClassName:c(o?.contentWrapperClassName,V.contentWrapper),className:c(o?.className,V.alertDialog)})}const _t="_drawerDialog_11g6r_1",ft="_left_11g6r_13",gt="_right_11g6r_14",xt="_contentWrapper_11g6r_19",pt="_slideInLeft_11g6r_1",ht="_closing_11g6r_36",jt="_slideOutLeft_11g6r_1",Ct="_slideInRight_11g6r_1",yt="_slideOutRight_11g6r_1",vt="_top_11g6r_54",bt="_bottom_11g6r_55",wt="_slideInTop_11g6r_1",Nt="_slideOutTop_11g6r_1",Bt="_slideInBottom_11g6r_1",Dt="_slideOutBottom_11g6r_1",M={drawerDialog:_t,left:ft,right:gt,contentWrapper:xt,slideInLeft:pt,closing:ht,slideOutLeft:jt,slideInRight:Ct,slideOutRight:yt,top:vt,bottom:bt,slideInTop:wt,slideOutTop:Nt,slideInBottom:Bt,slideOutBottom:Dt};function Rt(t,o="left",n){return I(t,{...n,disableCloseOnClickOutside:!0,modal:!1,closingClassName:c(n?.closingClassName,M.closing),contentWrapperClassName:c(n?.contentWrapperClassName,M.contentWrapper),className:c(n?.className,M.drawerDialog,M[o])})}const Lt="_modalDialog_iw29e_1",At="_closing_iw29e_37",Ft="_contentWrapper_iw29e_101",U={modalDialog:Lt,closing:At,contentWrapper:Ft};function Mt(t,o){return I(t,{...o,modal:!0,closingClassName:c(o?.closingClassName,U.closing),contentWrapperClassName:c(o?.contentWrapperClassName,U.contentWrapper),className:c(o?.className,U.modalDialog)})}const J=({headingLevel:t="h2",size:o="medium",children:n})=>e.jsx(s.Heading,{variant:o==="medium"?"h3":"h1",as:t,children:n}),$t="_modalActionButtons_s27nj_1",kt={modalActionButtons:$t},he=({children:t})=>e.jsxs(s.Box,{width:"100%",children:[e.jsx(s.Spacing,{}),e.jsx("div",{className:kt.modalActionButtons,children:t})]}),It="_modalBody_ozynq_1",le={modalBody:It},je=({gap:t=3,variant:o="normal",className:n,...a})=>e.jsx(s.Column,{className:c(le.modalBody,le[o],n),indent:o==="relaxed"?5:3,spacing:o==="relaxed"?5:3,gap:t,...a}),Ce=({children:t,maxWidth:o})=>e.jsx(s.Column,{flex:1,height:"100%",justifyContent:"space-between",maxWidth:o,children:t}),Ot=({icon:t,buttons:o,heading:n,text:a,children:l,maxWidth:i,minWidth:u})=>e.jsx(Ce,{children:e.jsxs(je,{flexDirection:"column",alignItems:"center",maxWidth:i,minWidth:u,children:[t&&e.jsx(p.CircledIcon,{icon:t,size:"large"}),e.jsx(J,{children:n}),a&&e.jsx(s.Text,{textAlign:"center",children:a}),l,o&&e.jsx(he,{children:o})]})}),ye=t=>e.jsx(p.FlatButton,{size:"large",variant:"danger",leftIcon:p.stenaTimesThick,...t}),zt=({heading:t,headingLevel:o,headingSize:n,onClickClose:a,closeButtonAriaLabel:l})=>e.jsx(s.Column,{children:e.jsxs(s.Row,{justifyContent:"space-between",alignItems:"center",gap:2,children:[t?e.jsx(J,{headingLevel:o,size:n,children:t}):e.jsx("div",{}),a?e.jsx(ye,{onClick:a,size:n,"aria-label":l}):null]})}),Tt="_modalFooter_1ypno_1",St="_sticky_1ypno_10",ce={modalFooter:Tt,sticky:St},Et=({sticky:t,zIndex:o=4,gap:n=2,className:a,...l})=>e.jsx(s.Row,{className:c(ce.modalFooter,t&&ce.sticky,a),shadow:"var(--swui-sticky-footer-shadow)",zIndex:o,gap:n,...l}),Ht="_unreadDot_l8bni_1",Wt="_dot_l8bni_4",ie={unreadDot:Ht,dot:Wt},ve=({children:t})=>e.jsxs("div",{className:ie.unreadDot,children:[t,e.jsx("div",{className:ie.dot})]}),qt="_notificationHeader_1rl25_1",Pt="_timestamp_1rl25_2",de={notificationHeader:qt,timestamp:Pt},K=({text:t,timestamp:o,icon:n,iconAriaLabel:a,contentLeft:l,contentRight:i,onClickClose:u,unread:m=!1,variant:h,iconBackgroundColor:_,forceCloseButtonAlignment:j})=>{const C=n?e.jsx(p.CircledIcon,{size:"small",icon:n,"aria-label":a,variant:"whiteBg",backgroundColor:_||be(m,h)}):void 0;return e.jsxs(s.Row,{alignItems:"flex-start",justifyContent:"space-between","data-comp":"NotificationHeader",className:de.notificationHeader,gap:2,children:[e.jsxs(s.Row,{gap:2,alignItems:"flex-start",children:[l&&e.jsx(s.Column,{justifyContent:"center",children:l}),!l&&C&&e.jsx(s.Row,{alignItems:"center",height:"40px",children:m?e.jsx(ve,{children:C}):C}),e.jsxs(s.Box,{minHeight:20,justifyContent:"center",flex:1,gap:.5,children:[n||u||j?e.jsx(s.Space,{num:.5}):null,e.jsx(s.Text,{variant:"bold",children:t}),o&&e.jsx("div",{className:de.timestamp,children:e.jsx(s.Text,{size:"small",color:_e.cssColor(m?"--lhds-color-blue-600":"--lhds-color-ui-600"),children:o})})]})]}),i&&e.jsx(s.Column,{justifyContent:"center",children:i}),u&&e.jsx(s.Row,{alignItems:"center",height:"40px",width:"40px",children:e.jsx(p.CloseButton,{onClick:u})})]})},be=(t,o)=>{if(!(!t&&o==="standard"))return"--lhds-color-ui-50"},Gt="_notification_tpz0j_1",Vt="_body_tpz0j_10",Ut="_standard_tpz0j_15",Xt="_unread_tpz0j_16",Yt="_danger_tpz0j_21",$={notification:Gt,body:Vt,standard:Ut,unread:Xt,danger:Yt},Jt=({variant:t="standard",children:o,unread:n,...a})=>e.jsxs("div",{"data-comp":"Notification",className:c($.notification,$[t],n&&$.unread),children:[e.jsx(K,{...a,unread:n,variant:t}),o&&e.jsx(s.Column,{className:$.body,children:o})]}),Kt="_notificationList_1rkvu_1",Qt={notificationList:Kt},Zt=({children:t})=>e.jsxs("div",{"data-comp":"NotificationList",className:Qt.notificationList,children:[t,e.jsx("div",{})]}),eo="_toast_1ifzt_1",to="_body_1ifzt_2",ue={toast:eo,body:to},oo=({children:t,width:o=364,maxWidth:n,...a})=>e.jsxs(s.Box,{className:ue.toast,"data-comp":"Toast",width:o,maxWidth:n,children:[e.jsx(K,{forceCloseButtonAlignment:!0,...a}),t&&e.jsx("div",{className:ue.body,children:t})]}),so="_toastBox_1lvsy_1",no="_clickable_1lvsy_8",me={toastBox:so,clickable:no},ao=t=>e.jsx(s.Box,{as:t.onClick?"button":void 0,className:c(me.toastBox,t.onClick&&me.clickable),"data-comp":"Toast",role:"alert",...t}),ro="_toastContainer_1rek2_1",lo={toastContainer:ro},co=({...t})=>e.jsx(fe.ToastContainer,{className:lo.toastContainer,closeButton:({closeToast:o})=>e.jsx(p.CloseButton,{onClick:o}),hideProgressBar:!0,pauseOnFocusLoss:!1,pauseOnHover:!0,draggable:!1,...t}),io=(t,o)=>fe.toast(t,o);exports.Alert=Qe;exports.BaseWindow=ge;exports.DRAGGABLE_CANCEL_CLASSNAME=Y;exports.DRAGGABLE_HANDLE_CLASSNAME=X;exports.DialogContext=k;exports.Drawer=Ge;exports.DrawerHeader=Ue;exports.InfoAlert=Ot;exports.LoadingModal=rt;exports.Modal=xe;exports.ModalActionButtons=he;exports.ModalBody=je;exports.ModalCloseButton=ye;exports.ModalContainer=Ce;exports.ModalFooter=Et;exports.ModalHeader=zt;exports.ModalHeading=J;exports.Notification=Jt;exports.NotificationHeader=K;exports.NotificationList=Zt;exports.Toast=oo;exports.ToastBox=ao;exports.ToastContainer=co;exports.UnreadDot=ve;exports.Window=lt;exports.WindowFooter=ct;exports.WindowHeader=pe;exports.getIconBgColorFromVariant=be;exports.setupDeclarativeModals=Re;exports.showToast=io;exports.useAlertDialog=mt;exports.useDialog=I;exports.useDialogPromise=it;exports.useDrawerDialog=Rt;exports.useModalDialog=Mt;
3
3
  //# sourceMappingURL=index.js.map