@stenajs-webui/modal 19.0.4 → 20.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.
- package/dist/building-blocks/ModalActionButtons.d.ts +6 -0
- package/dist/building-blocks/ModalBody.d.ts +5 -0
- package/dist/building-blocks/ModalHeader.d.ts +6 -0
- package/dist/building-blocks/ModalHeading.d.ts +5 -0
- package/dist/common-types.d.ts +3 -0
- package/dist/{components → declarative-modals}/drawer/Drawer.d.ts +1 -3
- package/dist/{components/center-modal/CenterModal.d.ts → declarative-modals/modal/Modal.d.ts} +1 -1
- package/dist/{components/modal/BaseModal.d.ts → declarative-modals/window/BaseWindow.d.ts} +2 -2
- package/dist/declarative-modals/window/Window.d.ts +11 -0
- package/dist/declarative-modals/window/WindowFooter.d.ts +6 -0
- package/dist/{components/modal/ModalHeader.d.ts → declarative-modals/window/WindowHeader.d.ts} +2 -2
- package/dist/dialog/DialogCommands.d.ts +3 -0
- package/dist/dialog/DialogContext.d.ts +7 -0
- package/dist/dialog/UseDialog.d.ts +23 -0
- package/dist/dialog/UseDialogPromise.d.ts +2 -0
- package/dist/dialog/alert/UseAlertDialog.d.ts +3 -0
- package/dist/dialog/drawer/UseDrawerDialog.d.ts +7 -0
- package/dist/dialog/modal/UseModalDialog.d.ts +3 -0
- package/dist/index.d.ts +20 -8
- package/dist/index.es.js +412 -191
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/ready-made-modals/InfoAlert.d.ts +13 -0
- package/package.json +12 -5
- package/dist/components/modal/Modal.d.ts +0 -11
- package/dist/components/modal/ModalFooter.d.ts +0 -6
- /package/dist/{components → declarative-modals}/drawer/DrawerHeader.d.ts +0 -0
- /package/dist/{components → declarative-modals}/loading-modal/LoadingModal.d.ts +0 -0
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/modal/BaseModal.tsx","../src/components/drawer/Drawer.tsx","../src/components/drawer/DrawerHeader.tsx","../src/components/center-modal/CenterModal.tsx","../src/components/loading-modal/LoadingModal.tsx","../src/components/modal/ModalHeader.tsx","../src/components/modal/Modal.tsx","../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface BaseModalProps 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 BaseModal: React.FC<BaseModalProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\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 >\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 >\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\";\n\nexport type SlideFrom = SlideFromLeftRight | SlideFromTopBottom;\nexport type SlideFromLeftRight = \"left\" | \"right\";\nexport type SlideFromTopBottom = \"top\" | \"bottom\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"../modal/Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const CenterModal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\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 \"./BaseModal\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface ModalHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--swui-modal-header-border-color)\"}\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 { BaseModal, BaseModalProps } from \"./BaseModal\";\nimport { ModalHeader, ModalHeaderProps } from \"./ModalHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends BaseModalProps, ModalHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\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 <BaseModal {...props} onRequestClose={onRequestClose} draggable={draggable}>\n <ModalHeader\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 </BaseModal>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalFooterProps {\n children?: ReactNode;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseModal","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","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","CenterModal","LoadingModal","headerIconLeft","headerText","modalProps","Column","Box","Spinner","Fragment","Indent","ModalHeader","closeButtonClassName","Txt","CloseButton","Modal","spacing","indent","footer","disableStickyFooter","props","ModalFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx"],"sourcesContent":["import * as React 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 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 >\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 >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext } from \"./DialogContext\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>\n];\n\nexport interface DialogOptions {\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options: DialogOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = options.ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n const [contentVisible, setContentVisible] = useState(false);\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n }\n );\n setClosing(false);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (options?.modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, options?.modal]\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n options?.onResolve?.();\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n options?.onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const dialogElement = useMemo<ReactNode>(\n () => (\n <DialogContext.Provider value={{ resolve, reject }}>\n <dialog\n onClick={\n options?.disableCloseOnClickOutside ? undefined : () => reject()\n }\n ref={currentRef}\n className={cx(\n options?.className,\n closing && options?.closingClassName\n )}\n style={options?.dialogStyle}\n >\n {options?.disableCloseOnClickOutside ? (\n <>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </>\n ) : (\n <div\n className={options?.contentWrapperClassName}\n onClick={\n options?.disableCloseOnClickOutside\n ? undefined\n : (ev) => ev.stopPropagation()\n }\n >\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </div>\n )}\n </dialog>\n </DialogContext.Provider>\n ),\n [\n resolve,\n reject,\n options?.disableCloseOnClickOutside,\n options?.className,\n options?.closingClassName,\n options?.dialogStyle,\n options?.contentWrapperClassName,\n currentRef,\n closing,\n contentVisible,\n Comp,\n key,\n ]\n );\n\n return [dialogElement, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import 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 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 React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading } from \"@stenajs-webui/core\";\n\nexport interface ModalHeadingProps {\n children: string;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({ children }) => {\n return (\n <Heading variant={\"h3\"} as={\"h2\"}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return <div className={styles.modalActionButtons}>{buttons}</div>;\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 2, ...props }) => {\n return <Box indent={4} spacing={4} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Box, Spacing, Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { MediumIcon } from \"@stenajs-webui/elements\";\nimport { CircledIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && (\n <>\n <Box width={\"100%\"}>\n <Spacing />\n <ModalActionButtons buttons={buttons} />\n </Box>\n </>\n )}\n </ModalBody>\n );\n};\n","import * as React from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && <ModalHeading>{heading}</ModalHeading>}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","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","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","options","localRef","useRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","contentVisible","setContentVisible","useState","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","_c","error","useMemo","createElement","ev","useDialogPromise","context","useContext","useAlertDialog","useDrawerDialog","useModalDialog","ModalHeading","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalHeader","onClickClose"],"mappings":";;;;;;;;;;;;;;;;;GAaaA,IAA6B,0BAC7BC,IAA6B,0BAE7BC,KAAwC,CAAC;AAAA,EACpD,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,kBAAkBC,EAAO;AAAA,IACzB,WAAWA,EAAO;AAAA,IACjB,GAAGH;AAAA,IAEJ,UAAA,gBAAAC;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,QAAQ,IAAIX,CAA0B;AAAA,QACtC,QAAQ,IAAIC,CAA0B;AAAA,QACtC,QAAO;AAAA,QACP,UAAU,CAACI;AAAA,QAEX,UAAA,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACJ,sBAAiCL;AAAA,cACjC,0BAAqCC;AAAA,YACxC;AAAA,YACA,WAAWQ,EAAGF,EAAO,SAAS;AAAA,cAC5B,CAACA,EAAO,WAAW,GAAGL;AAAA,YAAA,CACvB;AAAA,YAEA,UAAAC;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAAA;;;;;;;;;;;GCYOO,KAAgC,CAAC;AAAA,EAC5C,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAT;AAAA,EACA,WAAAU,IAAY;AAAA,EACZ,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGX;AACL,MAAM;AACE,QAAA,EAAE,QAAAY,GAAQ,OAAAhB,EAAU,IAAAI;AAGxB,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,gBAAgB;AAAA,MAChB,iBAAiBC,EAAO;AAAA,MACxB,kBAAkB;AAAA,QAChB,MAAMA,EAAO;AAAA,QACb,WAAWA,EAAO;AAAA,QAClB,aAAaA,EAAO;AAAA,MACtB;AAAA,MACA,WAAW;AAAA,QACT,MAAME;AAAA,UACJF,EAAO;AAAA,UACPU,GAAqBJ,CAAS;AAAA,UAC9BE,KAAYR,EAAO;AAAA,QACrB;AAAA,QACA,WAAWA,EAAO;AAAA,QAClB,aAAaA,EAAO;AAAA,MACtB;AAAA,MACA,OAAO,EAAE,SAAS,EAAE,OAAAP,GAAO,QAAAgB,GAAQ,YAAAL,KAAc,SAAS,EAAE,QAAAC,IAAS;AAAA,MACrE,gBAAgBE,IAAe,MAAMA,IAAe;AAAA,MACnD,GAAGV;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,GAEMc,KAAuB,CAACJ,MAAiC;AAC7D,UAAQA,GAAW;AAAA,IACjB,KAAK;AACH,aAAON,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB;AACS,aAAAW,EAAkBL,GAAWN,EAAO,aAAa;AAAA,EAC5D;AACF,GC/FaY,KAA4C,CAAC;AAAA,EACxD,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,MAAAC;AACF,MAEI,gBAAAlB;AAAA,EAACmB;AAAA,EAAA;AAAA,IACC,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,YAAYC,GAAS,oBAAoB;AAAA,IAEzC,UAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,QAAQ;AAAA,QAER,UAAA;AAAA,UAAA,gBAAAD,EAACC,GAAI,EAAA,YAAY,UAAU,KAAK,GAC9B,UAAA;AAAA,YAAC,gBAAAtB,EAAAuB,GAAA,EAAM,KAAK,EAAG,CAAA;AAAA,YACdL,KAAQ,gBAAAlB,EAACwB,GAAK,EAAA,MAAAN,GAAY,MAAM,IAAI;AAAA,YACpC,gBAAAlB,EAAAyB,GAAA,EAAQ,SAAS,MAAO,UAAOV,GAAA;AAAA,UAAA,GAClC;AAAA,UACA,gBAAAM,EAACC,GAAI,EAAA,KAAK,GACP,UAAA;AAAA,YAAAN;AAAA,YACD,gBAAAhB;AAAA,cAAC0B;AAAA,cAAA;AAAA,gBACC,UAAUC;AAAA,gBACV,SAASV;AAAA,gBACT,SAAS;AAAA,cAAA;AAAA,YACX;AAAA,YACA,gBAAAjB,EAACuB,GAAM,EAAA,KAAK,IAAK,CAAA;AAAA,UAAA,GACnB;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAAA;;;;;;;;;GCrCAK,KAAQ,EAAE,SAAS,EAAE,gBAAgB,SAAW,EAAA,GAEzCC,KAAoC,CAAC;AAAA,EAChD,UAAA/B;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,kBAAkBC,EAAO;AAAA,IACzB,WAAWA,EAAO;AAAA,IAClB,OAAA0B;AAAA,IACC,GAAG7B;AAAA,IAEJ,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE,EAAO;AAAA,QAClB,OAAO,EAAG,sBAAiC,cAAc;AAAA,QAExD,UAAAJ;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAAA;;;GCROgC,KAA4C,CAAC;AAAA,EACxD,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,2BAAAC,IAA4B;AAAA,EAC5B,kBAAAC,IAAmB;AAAA,EACnB,GAAGC;AACL,MAEI,gBAAAnC;AAAA,EAACC;AAAA,EAAA;AAAA,IACE,GAAGkC;AAAA,IACJ,QAAM;AAAA,IACN,2BAAAF;AAAA,IACA,kBAAAC;AAAA,IACA,WAAWhC,EAAO;AAAA,IAClB,kBAAkBA,EAAO;AAAA,IAEzB,UAAC,gBAAAmB,EAAAe,GAAA,EAAO,SAAS,GAAG,YAAY,UAC9B,UAAA;AAAA,MAAA,gBAAApC;AAAA,QAACqC;AAAA,QAAA;AAAA,UACC,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,QAAQ;AAAA,UAER,UAAA,gBAAArC,EAACsC,IAAQ,EAAA,MAAM,QAAS,CAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,OACEP,KAAkBC,MAEhB,gBAAAX,EAAAkB,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAvC,EAACmB,GAAQ,EAAA;AAAA,QACT,gBAAAE,EAACC,GAAI,EAAA,QAAQ,GACV,UAAA;AAAA,UAAAS,KAEG,gBAAAV,EAAAkB,GAAA,EAAA,UAAA;AAAA,YAAA,gBAAAvC,EAACwB,KAAK,MAAM,IAAI,MAAMO,GAAgB,OAAO,SAAS;AAAA,8BACrDS,IAAO,EAAA;AAAA,UAAA,GACV;AAAA,UAEDR,KACE,gBAAAhC,EAAAyB,GAAA,EAAQ,SAAS,MAAM,OAAO,SAC5B,UACHO,GAAA;AAAA,QAAA,GAEJ;AAAA,MAAA,GACF;AAAA,IAAA,GAEJ;AAAA,EAAA;AAAA,GCjDOS,KAA4C,CAAC;AAAA,EACxD,gBAAAxB;AAAA,EACA,QAAAF;AAAA,EACA,YAAAiB;AAAA,EACA,sBAAAU;AACF,MAEI,gBAAArB;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW9B;AAAA,IAEX,UAAA;AAAA,MAAA,gBAAA6B,EAACC,KAAI,MAAM,GAAG,QAAM,IAAC,YAAY,UAC9B,UAAA;AAAA,QAAAU,uBACEW,IAAI,EAAA,WAAWlD,GAA4B,MAAM,SAC/C,UACHuC,GAAA;AAAA,QAEDjB;AAAA,MAAA,GACH;AAAA,MACA,gBAAAf,EAACqC,GAAI,EAAA,WAAW,cACd,UAAA,gBAAArC;AAAA,QAAC4C;AAAA,QAAA;AAAA,UACC,WAAWF;AAAA,UACX,SAASzB;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,IAAA;AAAA,EAAA;AAAA,GC3BO4B,KAAgC,CAAC;AAAA,EAC5C,QAAA9B;AAAA,EACA,YAAAiB;AAAA,EACA,UAAAlC;AAAA,EACA,SAAAgD;AAAA,EACA,QAAAC;AAAA,EACA,WAAAlD,IAAY;AAAA,EACZ,gBAAAoB;AAAA,EACA,sBAAAyB;AAAA,EACA,QAAAM;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,GAAGC;AACL,MAKI,gBAAA7B;AAAA,EAAC3B;AAAA,EAAA;AAAA,IACE,GAAGwD;AAAA,IACJ,gBAAAjC;AAAA,IACA,WAAApB;AAAA,IAEA,UAAA;AAAA,MAAA,gBAAAG;AAAA,QAACyC;AAAA,QAAA;AAAA,UACC,gBAAAxB;AAAA,UACA,QAAAF;AAAA,UACA,YAAAiB;AAAA,UACA,sBAAAU;AAAA,QAAA;AAAA,MACF;AAAA,wBACCL,GAAI,EAAA,SAfa,OAAOS,KAAY,WAAWA,IAAU,GAe7B,QAdZ,OAAOC,KAAW,WAAWA,IAAS,GAepD,UAAAjD,GACH;AAAA,MACCkD,KACC,gBAAAhD;AAAA,QAACqC;AAAA,QAAA;AAAA,UACC,WAAWjC,EAAGF,EAAO,QAAQ;AAAA,YAC3B,CAACA,EAAO,YAAY,GAAG,CAAC+C;AAAA,UAAA,CACzB;AAAA,UAEA,UAAAD;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAAA,GC7CKG,KAA4C,CAAC,EAAE,UAAArD,EAAS,MAClE,gBAAAE,EAAAoC,GAAA,EAAO,QAAQ,GAAG,SAAS,GACzB,UAAAtC,EACH,CAAA,GCHWsD,IAAgBC;AAAA,EAC3B;AACF;AC0BgB,SAAAC,EACdC,GACAC,GAC0C;AACpC,QAAAC,IAAWC,EAA0B,IAAI,GACzCC,IAAaH,EAAQ,OAAOC,GAC5B,CAACG,GAAKC,CAAa,IAAIC,GAAW,CAACC,MAAMA,IAAI,GAAG,CAAC,GACjDC,IAAaN,KACbO,IAAaP,KACbQ,IAAsBR,KACtBS,IAAYT,KACZ,CAACU,GAAgBC,CAAiB,IAAIC,EAAS,EAAK,GACpD,CAACC,GAASC,CAAU,IAAIF,EAAS,EAAK,GAEtCG,IAAOlB,GAEPmB,IAAOC;AAAA,IACX,CAACzB,MAAmB;;AAClB,aAAAc,EAAW,UAAU,IAAI;AAAA,QACvB,CAACY,GAASC,MAAW;AACnB,UAAAZ,EAAW,UAAUW,GACrBT,EAAU,UAAUU;AAAAA,QACtB;AAAA,MAAA,GAEFL,EAAW,EAAK,GAChBH,EAAkB,EAAI,GACRR,KACdK,EAAoB,UAAUhB,GAC1BM,KAAA,QAAAA,EAAS,SACXsB,IAAAnB,EAAW,YAAX,QAAAmB,EAAoB,eAEpBC,IAAApB,EAAW,YAAX,QAAAoB,EAAoB,QAEff,EAAW;AAAA,IACpB;AAAA,IACA,CAACL,GAAYH,KAAA,gBAAAA,EAAS,KAAK;AAAA,EAAA,GAGvBoB,IAAUD;AAAA,IACd,CAACK,MAAU;;AACT,MAAAR,EAAW,EAAI,IACfM,IAAAnB,EAAW,YAAX,QAAAmB,EAAoB;AAAA,QAClB;AAAA,QACA,MAAM;;AACJ,UAAAN,EAAW,EAAK,GAChBH,EAAkB,EAAK,IACvBS,IAAAnB,EAAW,YAAX,QAAAmB,EAAoB,UACpBC,IAAAd,EAAW,YAAX,QAAAc,EAAA,KAAAd,GAAqBe,IACrBd,EAAoB,UAAU,SAC9Be,IAAAzB,KAAA,gBAAAA,EAAS,cAAT,QAAAyB,EAAA,KAAAzB;AAAA,QACF;AAAA,QACA,EAAE,MAAM,GAAK;AAAA;AAAA,IAEjB;AAAA,IACA,CAACG,GAAYH,CAAO;AAAA,EAAA,GAGhBqB,IAASF;AAAA,IACb,CAACO,MAAU;;AACT,MAAAV,EAAW,EAAI,IACfM,IAAAnB,EAAW,YAAX,QAAAmB,EAAoB;AAAA,QAClB;AAAA,QACA,MAAM;;AACJ,UAAAN,EAAW,EAAK,GAChBH,EAAkB,EAAK,IACvBS,IAAAnB,EAAW,YAAX,QAAAmB,EAAoB,UACpBC,IAAAZ,EAAU,YAAV,QAAAY,EAAA,KAAAZ,GAAoBe,KACpBD,IAAAzB,KAAA,gBAAAA,EAAS,aAAT,QAAAyB,EAAA,KAAAzB,IACAU,EAAoB,UAAU;AAAA,QAChC;AAAA,QACA,EAAE,MAAM,GAAK;AAAA;AAAA,IAEjB;AAAA,IACA,CAACP,GAAYH,CAAO;AAAA,EAAA;AAwDtB,SAAO,CArDe2B;AAAA,IACpB,wBACG/B,EAAc,UAAd,EAAuB,OAAO,EAAE,SAAAwB,GAAS,QAAAC,KACxC,UAAA,gBAAA7E;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SACEwD,KAAA,QAAAA,EAAS,6BAA6B,SAAY,MAAMqB,EAAO;AAAA,QAEjE,KAAKlB;AAAA,QACL,WAAWvD;AAAA,UACToD,KAAA,gBAAAA,EAAS;AAAA,UACTe,MAAWf,KAAA,gBAAAA,EAAS;AAAA,QACtB;AAAA,QACA,OAAOA,KAAA,gBAAAA,EAAS;AAAA,QAEf,UAAAA,KAAA,QAAAA,EAAS,6BACR,gBAAAxD,EAAAuC,GAAA,EACG,UACC6B,KAAA,gBAAAgB,EAACX,GAAM,EAAA,GAAIP,EAAoB,SAAoB,KAAAN,EAAU,CAAA,EAEjE,CAAA,IAEA,gBAAA5D;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWwD,KAAA,gBAAAA,EAAS;AAAA,YACpB,SACEA,KAAA,QAAAA,EAAS,6BACL,SACA,CAAC6B,MAAOA,EAAG,gBAAgB;AAAA,YAGhC,eACE,gBAAAD,EAAAX,GAAA,EAAM,GAAIP,EAAoB,SAAoB,KAAAN,GAAU;AAAA,UAAA;AAAA,QAEjE;AAAA,MAAA;AAAA,IAAA,GAGN;AAAA,IAEF;AAAA,MACEgB;AAAA,MACAC;AAAA,MACArB,KAAA,gBAAAA,EAAS;AAAA,MACTA,KAAA,gBAAAA,EAAS;AAAA,MACTA,KAAA,gBAAAA,EAAS;AAAA,MACTA,KAAA,gBAAAA,EAAS;AAAA,MACTA,KAAA,gBAAAA,EAAS;AAAA,MACTG;AAAA,MACAY;AAAA,MACAH;AAAA,MACAK;AAAA,MACAb;AAAA,IACF;AAAA,EAAA,GAGqB,EAAE,MAAAc,GAAM,QAAAG,EAAQ,CAAA;AACzC;ACnKO,MAAMS,KAAmB,MAEU;AAClC,QAAAC,IAAUC,GAAWpC,CAAa;AACxC,MAAImC,KAAW;AACP,UAAA,IAAI,MAAM,mDAAmD;AAE9D,SAAAA;AACT;;;;;;;;ACNgB,SAAAE,GACdlC,GACAC,GAC0C;AAC1C,SAAOF,EAAmCC,GAAW;AAAA,IACnD,GAAGC;AAAA,IACH,OAAO;AAAA,IACP,kBAAkBpD,EAAGoD,KAAA,gBAAAA,EAAS,kBAAkBtD,EAAO,OAAO;AAAA,IAC9D,yBAAyBE;AAAA,MACvBoD,KAAA,gBAAAA,EAAS;AAAA,MACTtD,EAAO;AAAA,IACT;AAAA,IACA,WAAWE,EAAGoD,KAAA,gBAAAA,EAAS,WAAWtD,EAAO,WAAW;AAAA,EAAA,CACrD;AACH;;;;;;;;;;;;;;;;;;ACVO,SAASwF,GACdnC,GACA/C,IAAuB,QACvBgD,GAC0C;AAC1C,SAAOF,EAAmCC,GAAW;AAAA,IACnD,GAAGC;AAAA,IACH,4BAA4B;AAAA,IAC5B,OAAO;AAAA,IACP,kBAAkBpD,EAAGoD,KAAA,gBAAAA,EAAS,kBAAkBtD,EAAO,OAAO;AAAA,IAC9D,yBAAyBE;AAAA,MACvBoD,KAAA,gBAAAA,EAAS;AAAA,MACTtD,EAAO;AAAA,IACT;AAAA,IACA,WAAWE,EAAGoD,KAAA,gBAAAA,EAAS,WAAWtD,EAAO,cAAcA,EAAOM,CAAS,CAAC;AAAA,EAAA,CACzE;AACH;;;;;;;;;ACpBgB,SAAAmF,GACdpC,GACAC,GAC0C;AAC1C,SAAOF,EAAmCC,GAAW;AAAA,IACnD,GAAGC;AAAA,IACH,OAAO;AAAA,IACP,kBAAkBpD,EAAGoD,KAAA,gBAAAA,EAAS,kBAAkBtD,EAAO,OAAO;AAAA,IAC9D,yBAAyBE;AAAA,MACvBoD,KAAA,gBAAAA,EAAS;AAAA,MACTtD,EAAO;AAAA,IACT;AAAA,IACA,WAAWE,EAAGoD,KAAA,gBAAAA,EAAS,WAAWtD,EAAO,WAAW;AAAA,EAAA,CACrD;AACH;ACZO,MAAM0F,IAA4C,CAAC,EAAE,UAAA9F,0BAEvD2B,GAAQ,EAAA,SAAS,MAAM,IAAI,MACzB,UAAA3B,EACH,CAAA;;GCHS+F,KAAwD,CAAC;AAAA,EACpE,SAAAC;AACF,MACU,gBAAA9F,EAAA,OAAA,EAAI,WAAWE,GAAO,oBAAqB,UAAQ4F,EAAA,CAAA,GCNhDC,KAAsC,CAAC,EAAE,KAAAC,IAAM,GAAG,GAAG9C,QACzD,gBAAAlD,EAACqC,KAAI,QAAQ,GAAG,SAAS,GAAG,KAAA2D,GAAW,GAAG9C,EAAO,CAAA,GCa7C+C,KAAsC,CAAC;AAAA,EAClD,MAAA/E;AAAA,EACA,SAAA4E;AAAA,EACA,SAAAI;AAAA,EACA,MAAAC;AAAA,EACA,UAAArG;AAAA,EACA,UAAAF;AAAA,EACA,UAAAwG;AACF,MAEI,gBAAA/E;AAAA,EAAC0E;AAAA,EAAA;AAAA,IACC,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,UAAAnG;AAAA,IACA,UAAAwG;AAAA,IAEC,UAAA;AAAA,MAAAlF,KAAS,gBAAAlB,EAAAqG,IAAA,EAAY,MAAAnF,GAAY,MAAM,SAAS;AAAA,MACjD,gBAAAlB,EAAC4F,KAAc,UAAQM,EAAA,CAAA;AAAA,MACtBC,KAAQ,gBAAAnG,EAACsG,IAAK,EAAA,WAAW,UAAW,UAAKH,GAAA;AAAA,MACzCrG;AAAA,MACAgG,KACC,gBAAA9F,EAAAuC,GAAA,EACE,UAAC,gBAAAlB,EAAAgB,GAAA,EAAI,OAAO,QACV,UAAA;AAAA,QAAA,gBAAArC,EAACmB,GAAQ,EAAA;AAAA,QACT,gBAAAnB,EAAC6F,MAAmB,SAAAC,GAAkB;AAAA,MAAA,EAAA,CACxC,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AAAA,GCnCKS,KAA0C,CAAC;AAAA,EACtD,SAAAL;AAAA,EACA,cAAAM;AACF,MAEI,gBAAAnF,EAACC,GAAI,EAAA,gBAAgB,iBAClB,UAAA;AAAA,EAAW4E,KAAA,gBAAAlG,EAAC4F,KAAc,UAAQM,EAAA,CAAA;AAAA,EACnC,gBAAAlG,EAAC4C,GAAY,EAAA,SAAS4D,EAAc,CAAA;AACtC,EAAA,CAAA;"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(){"use strict";try{var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_5x3op_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_5x3op_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1{background-color:#fff}}._overlay_5x3op_1 ._modal_5x3op_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_5x3op_1 ._modal_5x3op_31{width:100%}}._overlay_5x3op_1 ._content_5x3op_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_5x3op_1 ._content_5x3op_41{top:0;width:100%;max-width:100%}}._overlay_5x3op_1 ._content_5x3op_41{animation:_appear_5x3op_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1 ._content_5x3op_41{box-shadow:none;top:0}}._overlay_5x3op_1 ._content_5x3op_41 :focus{outline:0}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle{cursor:move}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_5x3op_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_5x3op_1{0%{opacity:0}to{opacity:1}}._footer_5x3op_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_5x3op_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_5x3op_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;inset:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:white;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}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}")),document.head.appendChild(o)}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
-
"use strict";Object.
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_5x3op_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_5x3op_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1{background-color:#fff}}._overlay_5x3op_1 ._modal_5x3op_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_5x3op_1 ._modal_5x3op_31{width:100%}}._overlay_5x3op_1 ._content_5x3op_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_5x3op_1 ._content_5x3op_41{top:0;width:100%;max-width:100%}}._overlay_5x3op_1 ._content_5x3op_41{animation:_appear_5x3op_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1 ._content_5x3op_41{box-shadow:none;top:0}}._overlay_5x3op_1 ._content_5x3op_41 :focus{outline:0}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle{cursor:move}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_5x3op_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_5x3op_1{0%{opacity:0}to{opacity:1}}._footer_5x3op_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_5x3op_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_5x3op_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;top:0;right:0;bottom:0;left:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:#fff;position:absolute;transition:transform var(--swui-animation-time-medium) ease-in-out}._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}@media (max-width: 768px){._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:0;border-radius:0}}._portal_17ze5_1 ._content_17ze5_9:focus-visible{outline:unset}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._afterOpen_17ze5_36{transform:translate(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._beforeClose_17ze5_40{transform:translate(var(--translate-x-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._afterOpen_17ze5_36{transform:translateY(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._beforeClose_17ze5_40{transform:translateY(var(--translate-y-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._overlay_1rolx_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_1rolx_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1rolx_1{background-color:#fff}}._overlay_1rolx_1 ._modal_1rolx_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_1rolx_1 ._modal_1rolx_31{width:100%}}._overlay_1rolx_1 ._content_1rolx_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_1rolx_1 ._content_1rolx_41{border-radius:0;width:100%;max-width:100%;height:100vh}}._overlay_1rolx_1 ._content_1rolx_41{animation:_appear_1rolx_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1rolx_1 ._content_1rolx_41{box-shadow:none;top:0}}._overlay_1rolx_1 ._content_1rolx_41 :focus{outline:0}._overlay_1rolx_1 ._content_1rolx_41._isDraggable_1rolx_71 .draggable-modal-handle{cursor:move}._overlay_1rolx_1 ._content_1rolx_41._isDraggable_1rolx_71 .draggable-modal-handle .draggable-modal-cancel,._overlay_1rolx_1 ._content_1rolx_41._isDraggable_1rolx_71 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1rolx_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1rolx_1{0%{opacity:0}to{opacity:1}}._footer_1rolx_102{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1rolx_106{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1rolx_106{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}._alertDialog_14t8t_1{border:0;outline:0;border-radius:var(--swui-border-radius-large);margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}._alertDialog_14t8t_1:not([open]){display:none}._alertDialog_14t8t_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22[open]{animation:_slideOut_14t8t_1 .25s forwards}._alertDialog_14t8t_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_3e8xf_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_3e8xf_1._left_3e8xf_12,._drawerDialog_3e8xf_1._right_3e8xf_13{height:100%;top:0;bottom:0}._drawerDialog_3e8xf_1._left_3e8xf_12 ._contentWrapper_3e8xf_18,._drawerDialog_3e8xf_1._right_3e8xf_13 ._contentWrapper_3e8xf_18{height:100%}@media (max-width: 768px){._drawerDialog_3e8xf_1._left_3e8xf_12,._drawerDialog_3e8xf_1._right_3e8xf_13{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}}._drawerDialog_3e8xf_1._left_3e8xf_12{left:0;right:unset}._drawerDialog_3e8xf_1._left_3e8xf_12[open]{animation:_slideInLeft_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1._left_3e8xf_12._closing_3e8xf_35[open]{animation:_slideOutLeft_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1._right_3e8xf_13{left:unset;right:0}._drawerDialog_3e8xf_1._right_3e8xf_13[open]{animation:_slideInRight_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1._right_3e8xf_13._closing_3e8xf_35[open]{animation:_slideOutRight_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1._top_3e8xf_53,._drawerDialog_3e8xf_1._bottom_3e8xf_54{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_3e8xf_1._top_3e8xf_53,._drawerDialog_3e8xf_1._bottom_3e8xf_54{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}}._drawerDialog_3e8xf_1._top_3e8xf_53{top:0;bottom:unset}._drawerDialog_3e8xf_1._top_3e8xf_53[open]{animation:_slideInTop_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1._top_3e8xf_53._closing_3e8xf_35[open]{animation:_slideOutTop_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1._bottom_3e8xf_54{top:unset;bottom:0}._drawerDialog_3e8xf_1._bottom_3e8xf_54[open]{animation:_slideInBottom_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1._bottom_3e8xf_54._closing_3e8xf_35[open]{animation:_slideOutBottom_3e8xf_1 .25s forwards}._drawerDialog_3e8xf_1[open]{opacity:1;pointer-events:auto}@keyframes _slideInLeft_3e8xf_1{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutLeft_3e8xf_1{0%{transform:translate(0);opacity:0}to{transform:translate(-100%);opacity:1}}@keyframes _slideInTop_3e8xf_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutTop_3e8xf_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(-100%);opacity:1}}@keyframes _slideInRight_3e8xf_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutRight_3e8xf_1{0%{transform:translate(0);opacity:0}to{transform:translate(100%);opacity:1}}@keyframes _slideInBottom_3e8xf_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutBottom_3e8xf_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(100%);opacity:1}}._modalDialog_1czrs_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_1czrs_1{border-radius:var(--swui-border-radius-large)}}._modalDialog_1czrs_1:not([open]){display:none}._modalDialog_1czrs_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1czrs_1 .25s forwards}._modalDialog_1czrs_1._closing_1czrs_25[open]{animation:_slideOut_1czrs_1 .25s forwards}@media (max-width: 768px){._modalDialog_1czrs_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1czrs_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1czrs_1 .25s forwards}._modalDialog_1czrs_1._closing_1czrs_25::backdrop{animation:_fadeOut_1czrs_1 .25s forwards}@keyframes _fadeIn_1czrs_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1czrs_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1czrs_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1czrs_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._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}}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),B=require("react-modal"),V=require("react-draggable"),d=require("classnames"),r=require("@stenajs-webui/core"),x=require("@stenajs-webui/elements"),J=require("@stenajs-webui/theme"),n=require("react"),K="_overlay_5x3op_1",Q="_fadeIn_5x3op_1",U="_modal_5x3op_31",X="_content_5x3op_41",Y="_appear_5x3op_1",Z="_isDraggable_5x3op_70",p="_footer_5x3op_101",ee="_stickyFooter_5x3op_105",N={overlay:K,fadeIn:Q,modal:U,content:X,appear:Y,isDraggable:Z,footer:p,stickyFooter:ee},L="draggable-modal-handle",k="draggable-modal-cancel",E=({width:t,maxWidth:e,draggable:a=!1,children:s,...c})=>l.jsx(B,{overlayClassName:N.overlay,className:N.modal,...c,children:l.jsx(V,{handle:`.${L}`,cancel:`.${k}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!a,children:l.jsx("div",{style:{"--swui-modal-width":t,"--swui-modal-max-width":e},className:d(N.content,{[N.isDraggable]:a}),children:s})})}),le="_portal_17ze5_1",te="_overlay_17ze5_4",ae="_content_17ze5_9",se="_floating_17ze5_15",re="_slideFromLeft_17ze5_29",ne="_slideFromRight_17ze5_30",ce="_afterOpen_17ze5_36",oe="_beforeClose_17ze5_40",de="_slideFromTop_17ze5_45",ie="_slideFromBottom_17ze5_46",o={portal:le,overlay:te,content:ae,floating:se,slideFromLeft:re,slideFromRight:ne,afterOpen:ce,beforeClose:oe,slideFromTop:de,slideFromBottom:ie},_e=({background:t,zIndex:e,children:a,slideFrom:s="left",portalTarget:c,floating:h,...i})=>{const{height:m,width:_}=i;return l.jsx(B,{closeTimeoutMS:250,portalClassName:o.portal,overlayClassName:{base:o.overlay,afterOpen:o.afterOpen,beforeClose:o.beforeClose},className:{base:d(o.content,ue(s),h&&o.floating),afterOpen:o.afterOpen,beforeClose:o.beforeClose},style:{content:{width:_,height:m,background:t},overlay:{zIndex:e}},parentSelector:c?()=>c:void 0,...i,children:a})},ue=t=>{switch(t){case"left":return o.slideFromLeft;case"right":return o.slideFromRight;case"top":return o.slideFromTop;case"bottom":return o.slideFromBottom;default:return r.exhaustSwitchCase(t,o.slideFromLeft)}},me=({header:t,contentRight:e,onRequestClose:a,icon:s})=>l.jsx(r.Spacing,{position:"sticky",top:0,zIndex:100,background:J.cssColor("--lhds-color-ui-50"),children:l.jsxs(r.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[l.jsxs(r.Row,{alignItems:"center",gap:2,children:[l.jsx(r.Space,{num:1}),s&&l.jsx(x.Icon,{icon:s,size:24}),l.jsx(r.Heading,{variant:"h4",children:t})]}),l.jsxs(r.Row,{gap:1,children:[e,l.jsx(x.FlatButton,{leftIcon:x.stenaTimes,onClick:a,variant:"danger"}),l.jsx(r.Space,{num:.5})]})]})}),ge="_overlay_1rolx_1",fe="_fadeIn_1rolx_1",xe="_modal_1rolx_31",he="_content_1rolx_41",Ce="_appear_1rolx_1",je="_isDraggable_1rolx_71",ye="_footer_1rolx_102",Ne="_stickyFooter_1rolx_106",F={overlay:ge,fadeIn:fe,modal:xe,content:he,appear:Ce,isDraggable:je,footer:ye,stickyFooter:Ne},we={overlay:{justifyContent:"center"}},be=({children:t,...e})=>l.jsx(B,{overlayClassName:F.overlay,className:F.modal,style:we,...e,children:l.jsx("div",{className:F.content,style:{"--swui-modal-width":"fit-content"},children:t})}),ve="_modal_4fwgb_1",De="_overlay_4fwgb_13",W={modal:ve,overlay:De},Oe=({headerIconLeft:t,headerText:e,shouldCloseOnOverlayClick:a=!1,shouldCloseOnEsc:s=!1,...c})=>l.jsx(B,{...c,isOpen:!0,shouldCloseOnOverlayClick:a,shouldCloseOnEsc:s,className:W.modal,overlayClassName:W.overlay,children:l.jsxs(r.Column,{spacing:2,alignItems:"center",children:[l.jsx(r.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:l.jsx(x.Spinner,{size:"small"})}),(t||e)&&l.jsxs(l.Fragment,{children:[l.jsx(r.Spacing,{}),l.jsxs(r.Row,{indent:2,children:[t&&l.jsxs(l.Fragment,{children:[l.jsx(x.Icon,{size:14,icon:t,color:"white"}),l.jsx(r.Indent,{})]}),e&&l.jsx(r.Heading,{variant:"h4",color:"white",children:e})]})]})]})}),H=({onRequestClose:t,header:e,headerText:a,closeButtonClassName:s})=>l.jsxs(r.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:L,children:[l.jsxs(r.Row,{flex:1,indent:!0,alignItems:"center",children:[a&&l.jsx(r.Txt,{className:k,size:"large",children:a}),e]}),l.jsx(r.Box,{alignSelf:"flex-start",children:l.jsx(x.CloseButton,{className:s,onClick:t})})]}),Ie=({header:t,headerText:e,children:a,spacing:s,indent:c,draggable:h=!1,onRequestClose:i,closeButtonClassName:m,footer:_,disableStickyFooter:y=!1,...w})=>{const b=typeof s=="number"?s:1,D=typeof c=="number"?c:1;return l.jsxs(E,{...w,onRequestClose:i,draggable:h,children:[l.jsx(H,{onRequestClose:i,header:t,headerText:e,closeButtonClassName:m}),l.jsx(r.Box,{spacing:b,indent:D,children:a}),_&&l.jsx(r.Box,{className:d(N.footer,{[N.stickyFooter]:!y}),children:_})]})},Be=({children:t})=>l.jsx(r.Column,{indent:2,spacing:2,children:t}),T=n.createContext(void 0);function R(t,e){const a=n.useRef(null),s=e.ref??a,[c,h]=n.useReducer(u=>u+1,0),i=n.useRef(),m=n.useRef(),_=n.useRef(),y=n.useRef(),[w,b]=n.useState(!1),[D,v]=n.useState(!1),A=t,P=n.useCallback(u=>{var g,f;return i.current=new Promise((C,j)=>{m.current=C,y.current=j}),v(!1),b(!0),h(),_.current=u,e!=null&&e.modal?(g=s.current)==null||g.showModal():(f=s.current)==null||f.show(),i.current},[s,e==null?void 0:e.modal]),z=n.useCallback(u=>{var g;v(!0),(g=s.current)==null||g.addEventListener("animationend",()=>{var f,C,j;v(!1),b(!1),(f=s.current)==null||f.close(),(C=m.current)==null||C.call(m,u),_.current=void 0,(j=e==null?void 0:e.onResolve)==null||j.call(e)},{once:!0})},[s,e]),O=n.useCallback(u=>{var g;v(!0),(g=s.current)==null||g.addEventListener("animationend",()=>{var f,C,j;v(!1),b(!1),(f=s.current)==null||f.close(),(C=y.current)==null||C.call(y,u),(j=e==null?void 0:e.onReject)==null||j.call(e),_.current=void 0},{once:!0})},[s,e]);return[n.useMemo(()=>l.jsx(T.Provider,{value:{resolve:z,reject:O},children:l.jsx("dialog",{onClick:e!=null&&e.disableCloseOnClickOutside?void 0:()=>O(),ref:s,className:d(e==null?void 0:e.className,D&&(e==null?void 0:e.closingClassName)),style:e==null?void 0:e.dialogStyle,children:e!=null&&e.disableCloseOnClickOutside?l.jsx(l.Fragment,{children:w&&n.createElement(A,{..._.current,key:c})}):l.jsx("div",{className:e==null?void 0:e.contentWrapperClassName,onClick:e!=null&&e.disableCloseOnClickOutside?void 0:u=>u.stopPropagation(),children:w&&n.createElement(A,{..._.current,key:c})})})}),[z,O,e==null?void 0:e.disableCloseOnClickOutside,e==null?void 0:e.className,e==null?void 0:e.closingClassName,e==null?void 0:e.dialogStyle,e==null?void 0:e.contentWrapperClassName,s,D,w,A,c]),{show:P,reject:O}]}const Re=()=>{const t=n.useContext(T);if(t==null)throw new Error("useDialogPromise is being used outside of dialog.");return t},Ae="_alertDialog_14t8t_1",Fe="_slideIn_14t8t_1",$e="_closing_14t8t_22",Se="_slideOut_14t8t_1",Le="_fadeIn_14t8t_1",ke="_fadeOut_14t8t_1",$={alertDialog:Ae,slideIn:Fe,closing:$e,slideOut:Se,fadeIn:Le,fadeOut:ke};function Me(t,e){return R(t,{...e,modal:!0,closingClassName:d(e==null?void 0:e.closingClassName,$.closing),contentWrapperClassName:d(e==null?void 0:e.contentWrapperClassName,$.contentWrapper),className:d(e==null?void 0:e.className,$.alertDialog)})}const ze="_drawerDialog_3e8xf_1",We="_left_3e8xf_12",Ee="_right_3e8xf_13",He="_contentWrapper_3e8xf_18",Te="_slideInLeft_3e8xf_1",Ge="_closing_3e8xf_35",qe="_slideOutLeft_3e8xf_1",Pe="_slideInRight_3e8xf_1",Ve="_slideOutRight_3e8xf_1",Je="_top_3e8xf_53",Ke="_bottom_3e8xf_54",Qe="_slideInTop_3e8xf_1",Ue="_slideOutTop_3e8xf_1",Xe="_slideInBottom_3e8xf_1",Ye="_slideOutBottom_3e8xf_1",I={drawerDialog:ze,left:We,right:Ee,contentWrapper:He,slideInLeft:Te,closing:Ge,slideOutLeft:qe,slideInRight:Pe,slideOutRight:Ve,top:Je,bottom:Ke,slideInTop:Qe,slideOutTop:Ue,slideInBottom:Xe,slideOutBottom:Ye};function Ze(t,e="left",a){return R(t,{...a,disableCloseOnClickOutside:!0,modal:!1,closingClassName:d(a==null?void 0:a.closingClassName,I.closing),contentWrapperClassName:d(a==null?void 0:a.contentWrapperClassName,I.contentWrapper),className:d(a==null?void 0:a.className,I.drawerDialog,I[e])})}const pe="_modalDialog_1czrs_1",el="_slideIn_1czrs_1",ll="_closing_1czrs_25",tl="_slideOut_1czrs_1",al="_fadeIn_1czrs_1",sl="_fadeOut_1czrs_1",S={modalDialog:pe,slideIn:el,closing:ll,slideOut:tl,fadeIn:al,fadeOut:sl};function rl(t,e){return R(t,{...e,modal:!0,closingClassName:d(e==null?void 0:e.closingClassName,S.closing),contentWrapperClassName:d(e==null?void 0:e.contentWrapperClassName,S.contentWrapper),className:d(e==null?void 0:e.className,S.modalDialog)})}const M=({children:t})=>l.jsx(r.Heading,{variant:"h3",as:"h2",children:t}),nl="_modalActionButtons_s27nj_1",cl={modalActionButtons:nl},G=({buttons:t})=>l.jsx("div",{className:cl.modalActionButtons,children:t}),q=({gap:t=2,...e})=>l.jsx(r.Box,{indent:4,spacing:4,gap:t,...e}),ol=({icon:t,buttons:e,heading:a,text:s,children:c,maxWidth:h,minWidth:i})=>l.jsxs(q,{flexDirection:"column",alignItems:"center",maxWidth:h,minWidth:i,children:[t&&l.jsx(x.CircledIcon,{icon:t,size:"large"}),l.jsx(M,{children:a}),s&&l.jsx(r.Text,{textAlign:"center",children:s}),c,e&&l.jsx(l.Fragment,{children:l.jsxs(r.Box,{width:"100%",children:[l.jsx(r.Spacing,{}),l.jsx(G,{buttons:e})]})})]}),dl=({heading:t,onClickClose:e})=>l.jsxs(r.Row,{justifyContent:"space-between",children:[t&&l.jsx(M,{children:t}),l.jsx(x.CloseButton,{onClick:e})]});exports.BaseWindow=E;exports.DRAGGABLE_CANCEL_CLASSNAME=k;exports.DRAGGABLE_HANDLE_CLASSNAME=L;exports.Drawer=_e;exports.DrawerHeader=me;exports.InfoAlert=ol;exports.LoadingModal=Oe;exports.Modal=be;exports.ModalActionButtons=G;exports.ModalBody=q;exports.ModalHeader=dl;exports.ModalHeading=M;exports.Window=Ie;exports.WindowFooter=Be;exports.WindowHeader=H;exports.useAlertDialog=Me;exports.useDialog=R;exports.useDialogPromise=Re;exports.useDrawerDialog=Ze;exports.useModalDialog=rl;
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/modal/BaseModal.tsx","../src/components/drawer/Drawer.tsx","../src/components/drawer/DrawerHeader.tsx","../src/components/center-modal/CenterModal.tsx","../src/components/loading-modal/LoadingModal.tsx","../src/components/modal/ModalHeader.tsx","../src/components/modal/Modal.tsx","../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface BaseModalProps 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 BaseModal: React.FC<BaseModalProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\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 >\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 >\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\";\n\nexport type SlideFrom = SlideFromLeftRight | SlideFromTopBottom;\nexport type SlideFromLeftRight = \"left\" | \"right\";\nexport type SlideFromTopBottom = \"top\" | \"bottom\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"../modal/Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const CenterModal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\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 \"./BaseModal\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface ModalHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--swui-modal-header-border-color)\"}\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 { BaseModal, BaseModalProps } from \"./BaseModal\";\nimport { ModalHeader, ModalHeaderProps } from \"./ModalHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends BaseModalProps, ModalHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\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 <BaseModal {...props} onRequestClose={onRequestClose} draggable={draggable}>\n <ModalHeader\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 </BaseModal>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalFooterProps {\n children?: ReactNode;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseModal","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","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","CenterModal","LoadingModal","headerIconLeft","headerText","modalProps","Column","Box","Spinner","Fragment","Indent","ModalHeader","closeButtonClassName","Txt","CloseButton","Modal","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","ModalFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx"],"sourcesContent":["import * as React 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 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 >\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 >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext } from \"./DialogContext\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>\n];\n\nexport interface DialogOptions {\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement>;\n onResolve?: () => void;\n onReject?: () => void;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options: DialogOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = options.ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>();\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>();\n const modalComponentProps = useRef<TProps>();\n const rejectRef = useRef<RejectCommand | undefined>();\n const [contentVisible, setContentVisible] = useState(false);\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n }\n );\n setClosing(false);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (options?.modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, options?.modal]\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n options?.onResolve?.();\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n setClosing(true);\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n options?.onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true }\n );\n },\n [currentRef, options]\n );\n\n const dialogElement = useMemo<ReactNode>(\n () => (\n <DialogContext.Provider value={{ resolve, reject }}>\n <dialog\n onClick={\n options?.disableCloseOnClickOutside ? undefined : () => reject()\n }\n ref={currentRef}\n className={cx(\n options?.className,\n closing && options?.closingClassName\n )}\n style={options?.dialogStyle}\n >\n {options?.disableCloseOnClickOutside ? (\n <>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </>\n ) : (\n <div\n className={options?.contentWrapperClassName}\n onClick={\n options?.disableCloseOnClickOutside\n ? undefined\n : (ev) => ev.stopPropagation()\n }\n >\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </div>\n )}\n </dialog>\n </DialogContext.Provider>\n ),\n [\n resolve,\n reject,\n options?.disableCloseOnClickOutside,\n options?.className,\n options?.closingClassName,\n options?.dialogStyle,\n options?.contentWrapperClassName,\n currentRef,\n closing,\n contentVisible,\n Comp,\n key,\n ]\n );\n\n return [dialogElement, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import 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 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 React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading } from \"@stenajs-webui/core\";\n\nexport interface ModalHeadingProps {\n children: string;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({ children }) => {\n return (\n <Heading variant={\"h3\"} as={\"h2\"}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalActionButtonsProps {\n buttons: ReactNode;\n}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n buttons,\n}) => {\n return <div className={styles.modalActionButtons}>{buttons}</div>;\n};\n","import * as React from \"react\";\nimport { Box, BoxProps } from \"@stenajs-webui/core\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({ gap = 2, ...props }) => {\n return <Box indent={4} spacing={4} gap={gap} {...props} />;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Box, Spacing, Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { MediumIcon } from \"@stenajs-webui/elements\";\nimport { CircledIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && (\n <>\n <Box width={\"100%\"}>\n <Spacing />\n <ModalActionButtons buttons={buttons} />\n </Box>\n </>\n )}\n </ModalBody>\n );\n};\n","import * as React from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"./ModalHeading\";\nimport { CloseButton } from \"@stenajs-webui/elements\";\n\nexport interface ModalHeaderProps {\n heading?: string;\n onClickClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n onClickClose,\n}) => {\n return (\n <Row justifyContent={\"space-between\"}>\n {heading && <ModalHeading>{heading}</ModalHeading>}\n <CloseButton onClick={onClickClose} />\n </Row>\n );\n};\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","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","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","options","localRef","useRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","contentVisible","setContentVisible","useState","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","_c","error","useMemo","createElement","ev","useDialogPromise","context","useContext","useAlertDialog","useDrawerDialog","useModalDialog","ModalHeading","ModalActionButtons","buttons","ModalBody","gap","InfoAlert","heading","text","minWidth","CircledIcon","Text","ModalHeader","onClickClose"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { PropsWithChildren, ReactNode } from "react";
|
|
3
|
+
import { MediumIcon } from "@stenajs-webui/elements";
|
|
4
|
+
export interface InfoAlertProps extends PropsWithChildren {
|
|
5
|
+
heading: string;
|
|
6
|
+
text?: string;
|
|
7
|
+
buttons?: ReactNode;
|
|
8
|
+
icon?: MediumIcon;
|
|
9
|
+
onRequestClose?: () => void;
|
|
10
|
+
maxWidth?: string;
|
|
11
|
+
minWidth?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const InfoAlert: React.FC<InfoAlertProps>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/modal",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "",
|
|
5
6
|
"author": "mattias800",
|
|
6
7
|
"license": "MIT",
|
|
@@ -12,6 +13,11 @@
|
|
|
12
13
|
"types": "dist/index.d.ts",
|
|
13
14
|
"module": "dist/index.es.js",
|
|
14
15
|
"jsnext:main": "dist/index.es.js",
|
|
16
|
+
"exports": {
|
|
17
|
+
"require": "dist/index.js",
|
|
18
|
+
"import": "dist/index.es.js",
|
|
19
|
+
"types": "dist/index.d.ts"
|
|
20
|
+
},
|
|
15
21
|
"sideEffects": false,
|
|
16
22
|
"engines": {
|
|
17
23
|
"node": ">=8",
|
|
@@ -20,15 +26,16 @@
|
|
|
20
26
|
"scripts": {
|
|
21
27
|
"build": "yarn tsc -p tsconfig.build.json && yarn vite build",
|
|
22
28
|
"start": "yarn tsc -p tsconfig.build.json && yarn vite build --watch",
|
|
29
|
+
"test": "vitest run --passWithNoTests",
|
|
23
30
|
"clean": "rimraf dist",
|
|
24
31
|
"prepare": "yarn clean && yarn run build",
|
|
25
32
|
"predeploy": "cd example && yarn install && yarn run build",
|
|
26
33
|
"deploy": "gh-pages -d example/build"
|
|
27
34
|
},
|
|
28
35
|
"dependencies": {
|
|
29
|
-
"@stenajs-webui/core": "
|
|
30
|
-
"@stenajs-webui/elements": "
|
|
31
|
-
"@stenajs-webui/theme": "
|
|
36
|
+
"@stenajs-webui/core": "20.0.0",
|
|
37
|
+
"@stenajs-webui/elements": "20.0.0",
|
|
38
|
+
"@stenajs-webui/theme": "20.0.0",
|
|
32
39
|
"@types/react-modal": "^3.13.1",
|
|
33
40
|
"classnames": "^2.3.1",
|
|
34
41
|
"react-draggable": "^4.4.5",
|
|
@@ -58,5 +65,5 @@
|
|
|
58
65
|
"files": [
|
|
59
66
|
"dist"
|
|
60
67
|
],
|
|
61
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "44209c859186d3264a3bd136fac61c622b51d01d"
|
|
62
69
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { BaseModalProps } from "./BaseModal";
|
|
3
|
-
import { ModalHeaderProps } from "./ModalHeader";
|
|
4
|
-
export interface ModalProps extends BaseModalProps, ModalHeaderProps {
|
|
5
|
-
spacing?: number;
|
|
6
|
-
indent?: number;
|
|
7
|
-
draggable?: boolean;
|
|
8
|
-
footer?: React.ReactNode;
|
|
9
|
-
disableStickyFooter?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare const Modal: React.FC<ModalProps>;
|
|
File without changes
|
|
File without changes
|