@stenajs-webui/modal 20.4.3 → 20.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
import { DialogOptions, UseDialogResult } from "../UseDialog";
|
|
3
3
|
export declare function useAlertDialog<TProps, TPromiseResolve = void>(component: React.FC<TProps>, options?: Partial<DialogOptions>): UseDialogResult<TProps, TPromiseResolve>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
import { DialogOptions, UseDialogResult } from "../UseDialog";
|
|
3
3
|
export declare function useModalDialog<TProps, TPromiseResolve = void>(component: React.FC<TProps>, options?: Partial<DialogOptions>): UseDialogResult<TProps, TPromiseResolve>;
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport 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 \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\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":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","options","localRef","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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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport 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 \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\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 * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading } from \"@stenajs-webui/core\";\n\nexport interface ModalHeadingProps {\n children: string;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({ children }) => {\n return (\n <Heading variant={\"h3\"} as={\"h2\"}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\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":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","options","localRef","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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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport 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 \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\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":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","options","localRef","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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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalHeader.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport 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 \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\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 * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading } from \"@stenajs-webui/core\";\n\nexport interface ModalHeadingProps {\n children: string;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({ children }) => {\n return (\n <Heading variant={\"h3\"} as={\"h2\"}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { ReactNode } from \"react\";\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":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","Modal","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","options","localRef","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/modal",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "mattias800",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"deploy": "gh-pages -d example/build"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@stenajs-webui/core": "20.
|
|
37
|
-
"@stenajs-webui/elements": "20.
|
|
38
|
-
"@stenajs-webui/theme": "20.
|
|
36
|
+
"@stenajs-webui/core": "20.5.0",
|
|
37
|
+
"@stenajs-webui/elements": "20.5.0",
|
|
38
|
+
"@stenajs-webui/theme": "20.5.0",
|
|
39
39
|
"@types/react-modal": "^3.13.1",
|
|
40
40
|
"classnames": "^2.3.1",
|
|
41
41
|
"react-draggable": "^4.4.5",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"files": [
|
|
66
66
|
"dist"
|
|
67
67
|
],
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "55c59e8cebe66b1d925268a4285ca620cfa4f52d"
|
|
69
69
|
}
|