{"version":3,"file":"Dialog.cjs","sources":["../../constants/classes.js","../../constants/dictionaries.js","../../constants/direction.js","../../context/ClassNamePrefixContext.js","../../types/card.js","../../types/shared/index.js","../../utils/ssr.js","../../hooks/styleProps.js","../../hooks/useIsomorphicLayoutEffect.js","../../hooks/useCancelEvent.js","../../hooks/useClickOutside.js","../../context/IconsContext.js","../../hooks/useScrollControl.js","useDialog.js","Dialog.js"],"sourcesContent":["export const CLASS_NAME_OPEN = 'is-open';\n//# sourceMappingURL=classes.js.map","var __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\nimport { componentColors, containers, emotionColors, textColors } from '@lmc-eu/spirit-design-tokens';\nfunction createUppercaseKeyDictionary(obj) {\n    return Object.fromEntries(Object.keys(obj).map((key) => [key.toUpperCase(), key]));\n}\nexport const AlignmentX = {\n    LEFT: 'left',\n    CENTER: 'center',\n    RIGHT: 'right',\n};\nexport const AlignmentXExtended = Object.assign({ SPACE_BETWEEN: 'space-between', STRETCH: 'stretch' }, AlignmentX);\nexport const AlignmentY = {\n    TOP: 'top',\n    CENTER: 'center',\n    BOTTOM: 'bottom',\n};\nexport const AlignmentYExtended = Object.assign({ BASELINE: 'baseline', STRETCH: 'stretch' }, AlignmentY);\nexport const TextAlignments = {\n    LEFT: 'left',\n    CENTER: 'center',\n    RIGHT: 'right',\n};\nexport const BorderColors = {\n    BASIC: 'basic',\n};\nexport const BorderRadii = {\n    0: '0',\n    100: '100',\n    200: '200',\n    300: '300',\n    400: '400',\n    500: '500',\n    FULL: 'full',\n};\nexport const BorderStyles = {\n    SOLID: 'solid',\n    DOTTED: 'dotted',\n    DASHED: 'dashed',\n};\nexport const BorderWidths = {\n    0: '0',\n    100: '100',\n    200: '200',\n};\nexport const BackgroundColors = {\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary',\n    TERTIARY: 'tertiary',\n};\nexport const ComponentButtonColors = createUppercaseKeyDictionary(componentColors.button);\nexport const EmotionColors = createUppercaseKeyDictionary(emotionColors);\nexport const LinkColors = {\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary',\n    TERTIARY: 'tertiary',\n};\nexport const TextColors = createUppercaseKeyDictionary(textColors);\nexport const Intensity = {\n    BASIC: 'basic',\n    SUBTLE: 'subtle',\n};\nexport const Emphasis = {\n    REGULAR: 'regular',\n    SEMIBOLD: 'semibold',\n    BOLD: 'bold',\n    ITALIC: 'italic',\n};\nexport const BackgroundGradients = {\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary',\n};\nexport const Placements = {\n    TOP: 'top',\n    TOP_START: 'top-start',\n    TOP_END: 'top-end',\n    BOTTOM: 'bottom',\n    BOTTOM_START: 'bottom-start',\n    BOTTOM_END: 'bottom-end',\n    LEFT: 'left',\n    LEFT_START: 'left-start',\n    LEFT_END: 'left-end',\n    RIGHT: 'right',\n    RIGHT_START: 'right-start',\n    RIGHT_END: 'right-end',\n};\nexport const Sizes = {\n    SMALL: 'small',\n    MEDIUM: 'medium',\n    LARGE: 'large',\n};\nexport const SizesExtended = Object.assign(Object.assign({ XSMALL: 'xsmall' }, Sizes), { XLARGE: 'xlarge' });\nconst _a = createUppercaseKeyDictionary(containers), { MAXWIDTH, PADDING } = _a, ContainerTokenSizes = __rest(_a, [\"MAXWIDTH\", \"PADDING\"]);\nexport { ContainerTokenSizes };\nexport const ValidationStates = {\n    SUCCESS: 'success',\n    WARNING: 'warning',\n    DANGER: 'danger',\n};\nexport const FillVariants = {\n    FILL: 'fill',\n    OUTLINE: 'outline',\n};\nexport const ShapeVariants = {\n    BOX: 'box',\n    PILL: 'pill',\n};\n//# sourceMappingURL=dictionaries.js.map","export const Direction = {\n    HORIZONTAL: 'horizontal',\n    VERTICAL: 'vertical',\n};\nexport const DirectionExtended = Object.assign(Object.assign({}, Direction), { HORIZONTAL_REVERSED: 'horizontal-reversed' });\nexport var DirectionAxis;\n(function (DirectionAxis) {\n    DirectionAxis[\"X\"] = \"x\";\n    DirectionAxis[\"Y\"] = \"y\";\n})(DirectionAxis || (DirectionAxis = {}));\nexport const isDirectionHorizontal = (direction) => direction === Direction.HORIZONTAL;\n//# sourceMappingURL=direction.js.map","'use client';\nimport { createContext } from 'react';\nconst defaultContext = undefined;\nconst ClassNamePrefixContext = createContext(defaultContext);\nconst ClassNamePrefixProvider = ClassNamePrefixContext.Provider;\nconst ClassNamePrefixConsumer = ClassNamePrefixContext.Consumer;\nexport default ClassNamePrefixContext;\nexport { ClassNamePrefixConsumer, ClassNamePrefixProvider };\n//# sourceMappingURL=ClassNamePrefixContext.js.map","import { Sizes } from \"../constants/index.js\";\nexport const CardSizes = Object.assign(Object.assign({}, Sizes), { AUTO: 'auto' });\n//# sourceMappingURL=card.js.map","export * from \"./adornments.js\";\nexport * from \"./buttons.js\";\nexport * from \"./colors.js\";\nexport * from \"./columns.js\";\nexport * from \"./dialogs.js\";\nexport * from \"./dictionaries.js\";\nexport * from \"./directions.js\";\nexport * from \"./dragAndDrop.js\";\nexport * from \"./element.js\";\nexport * from \"./events.js\";\nexport * from \"./inputs.js\";\nexport * from \"./item.js\";\nexport * from \"./positions.js\";\nexport * from \"./radii.js\";\nexport * from \"./refs.js\";\nexport * from \"./responsive.js\";\nexport * from \"./rest.js\";\nexport * from \"./sizes.js\";\nexport * from \"./style.js\";\nexport * from \"./tokens.js\";\nexport var SpiritBreakpoints;\n(function (SpiritBreakpoints) {\n    SpiritBreakpoints[\"TABLET\"] = \"tablet\";\n    SpiritBreakpoints[\"DESKTOP\"] = \"desktop\";\n})(SpiritBreakpoints || (SpiritBreakpoints = {}));\n//# sourceMappingURL=index.js.map","export const isSSR = typeof window === 'undefined';\n//# sourceMappingURL=ssr.js.map","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\nimport classNames from 'classnames';\nimport { useContext } from 'react';\nimport { warning } from \"../common/utilities/index.js\";\nimport { ThemeStyleProps } from \"../constants/index.js\";\nimport ClassNamePrefixContext from \"../context/ClassNamePrefixContext.js\";\nimport { useStyleUtilities } from \"./useStyleUtilities.js\";\nexport function useStyleProps(props, additionalUtilities) {\n    const classNamePrefix = useContext(ClassNamePrefixContext);\n    const { UNSAFE_className, UNSAFE_style } = props, otherProps = __rest(props, [\"UNSAFE_className\", \"UNSAFE_style\"]);\n    const styleUtilitiesConfig = Object.assign({ theme: ThemeStyleProps.theme }, (additionalUtilities !== null && additionalUtilities !== void 0 ? additionalUtilities : {}));\n    const { styleUtilities, props: modifiedProps } = useStyleUtilities(otherProps, classNamePrefix, styleUtilitiesConfig);\n    const style = Object.assign({}, UNSAFE_style);\n    if (modifiedProps.className) {\n        warning(false, 'The className prop is unsafe and is unsupported in Spirit Web React. ' +\n            'Please use style props with Spirit Design Tokens, or UNSAFE_className if you absolutely must do something custom. ' +\n            'Note that this may break in future versions due to DOM structure changes.');\n        delete modifiedProps.className;\n    }\n    if (modifiedProps.style) {\n        warning(false, 'The style prop is unsafe and is unsupported in Spirit Web React. ' +\n            'Please use style props with Spirit Design Tokens, or UNSAFE_style if you absolutely must do something custom. ' +\n            'Note that this may break in future versions due to DOM structure changes.');\n        delete modifiedProps.style;\n    }\n    const styleProps = {\n        style: Object.keys(style).length > 0 ? style : undefined,\n        className: classNames(UNSAFE_className, ...styleUtilities) || undefined,\n    };\n    return {\n        styleProps,\n        props: modifiedProps,\n    };\n}\n//# sourceMappingURL=styleProps.js.map","'use client';\nimport { useEffect, useLayoutEffect } from 'react';\nimport { isSSR } from \"../utils/index.js\";\nexport const useIsomorphicLayoutEffect = !isSSR ? useLayoutEffect : useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","'use client';\nimport { useCallback } from 'react';\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect.js\";\nconst EVENT_CANCEL = 'cancel';\nconst EVENT_KEYDOWN = 'keydown';\nconst EVENT_KEY = 'Escape';\nexport const useCancelEvent = (ref, callback, closeOnEscapeKeyDown = true, isOpen = false) => {\n    const handleCancel = useCallback((event) => {\n        if (!ref || !callback) {\n            return;\n        }\n        if (event.defaultPrevented) {\n            return;\n        }\n        event.preventDefault();\n        if (callback && closeOnEscapeKeyDown) {\n            callback(event);\n        }\n    }, [ref, callback, closeOnEscapeKeyDown]);\n    const handleKeyDown = useCallback((event) => {\n        if (event.key === EVENT_KEY && !closeOnEscapeKeyDown && isOpen) {\n            event.preventDefault();\n        }\n    }, [closeOnEscapeKeyDown, isOpen]);\n    useIsomorphicLayoutEffect(() => {\n        const node = ref === null || ref === void 0 ? void 0 : ref.current;\n        if (node) {\n            node.addEventListener(EVENT_CANCEL, handleCancel);\n            document.addEventListener(EVENT_KEYDOWN, handleKeyDown);\n            return () => {\n                node.removeEventListener(EVENT_CANCEL, handleCancel);\n                document.removeEventListener(EVENT_KEYDOWN, handleKeyDown);\n            };\n        }\n        return () => undefined;\n    }, [ref, handleCancel]);\n    return handleCancel;\n};\n//# sourceMappingURL=useCancelEvent.js.map","'use client';\nimport { useCallback, useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect.js\";\nexport const useClickOutside = ({ ref, callback }) => {\n    const stateRef = useRef({\n        mouseDownTarget: null,\n    });\n    const clickHandler = useCallback((event) => {\n        const state = stateRef.current;\n        if (!ref ||\n            !callback ||\n            event.defaultPrevented ||\n            (ref.current && ref.current.contains(state.mouseDownTarget))) {\n            return;\n        }\n        if (ref.current &&\n            !ref.current.contains(event === null || event === void 0 ? void 0 : event.target) &&\n            callback) {\n            callback(event);\n        }\n    }, [ref, callback]);\n    const onMouseDown = (event) => {\n        stateRef.current.mouseDownTarget = event.target;\n    };\n    useIsomorphicLayoutEffect(() => {\n        document.addEventListener('mousedown', onMouseDown, { capture: true });\n        document.addEventListener('click', clickHandler, { capture: true });\n        return () => {\n            document.removeEventListener('mousedown', onMouseDown, { capture: true });\n            document.removeEventListener('click', clickHandler, { capture: true });\n        };\n    }, [clickHandler]);\n};\n//# sourceMappingURL=useClickOutside.js.map","'use client';\nimport { createContext } from 'react';\nconst defaultContext = undefined;\nconst IconsContext = createContext(defaultContext);\nconst IconsProvider = IconsContext.Provider;\nconst IconsConsumer = IconsContext.Consumer;\nexport default IconsContext;\nexport { IconsConsumer, IconsProvider };\n//# sourceMappingURL=IconsContext.js.map","'use client';\nimport { useEffect } from 'react';\nconst CLASSNAME_SCROLLING_DISABLED = 'is-scrolling-disabled';\nconst disableScroll = () => {\n    const { body } = document;\n    const scrollBarWidth = window.innerWidth - body.clientWidth;\n    body.style.paddingRight = `${scrollBarWidth}px`;\n    body.classList.add(CLASSNAME_SCROLLING_DISABLED);\n};\nconst enableScroll = () => {\n    const { body } = document;\n    body.style.paddingRight = '';\n    body.classList.remove(CLASSNAME_SCROLLING_DISABLED);\n};\nexport const useScrollControl = (ref, isOpen) => {\n    useEffect(() => {\n        if (isOpen) {\n            disableScroll();\n        }\n        else if (ref.current && !ref.current.open) {\n            enableScroll();\n        }\n        return () => {\n            enableScroll();\n        };\n    }, [isOpen, ref]);\n};\n//# sourceMappingURL=useScrollControl.js.map","'use client';\nimport { useCallback, useEffect } from 'react';\nimport { CLASS_NAME_OPEN } from \"../../constants/index.js\";\nimport { useScrollControl } from \"../../hooks/index.js\";\nexport const useDialog = (ref, isOpen) => {\n    const handleTransitionEnd = useCallback((event) => {\n        const dialogNode = ref === null || ref === void 0 ? void 0 : ref.current;\n        if (dialogNode && event.target === dialogNode && !isOpen && dialogNode.open && dialogNode.close) {\n            dialogNode.close();\n        }\n    }, [isOpen, ref]);\n    useScrollControl(ref, isOpen);\n    const setOpenClass = useCallback((shouldAdd) => {\n        const dialogNode = ref === null || ref === void 0 ? void 0 : ref.current;\n        if (dialogNode === null || dialogNode === void 0 ? void 0 : dialogNode.classList) {\n            if (shouldAdd) {\n                dialogNode.classList.add(CLASS_NAME_OPEN);\n            }\n            else {\n                dialogNode.classList.remove(CLASS_NAME_OPEN);\n            }\n        }\n    }, [ref]);\n    useEffect(() => {\n        const dialogNode = ref === null || ref === void 0 ? void 0 : ref.current;\n        if (dialogNode) {\n            if (isOpen && !dialogNode.open && dialogNode.showModal) {\n                dialogNode.showModal();\n                setOpenClass(true);\n            }\n            else if (!isOpen && dialogNode.open) {\n                setOpenClass(false);\n            }\n        }\n    }, [isOpen, ref, setOpenClass]);\n    const openDialog = () => {\n        if ((ref === null || ref === void 0 ? void 0 : ref.current) && !ref.current.open) {\n            ref.current.showModal();\n            setOpenClass(true);\n        }\n    };\n    const closeDialog = () => {\n        const dialogNode = ref === null || ref === void 0 ? void 0 : ref.current;\n        if (dialogNode && dialogNode.open) {\n            setOpenClass(false);\n        }\n    };\n    return {\n        openDialog,\n        closeDialog,\n        onTransitionEnd: handleTransitionEnd,\n    };\n};\n//# sourceMappingURL=useDialog.js.map","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\nimport React, { Children, cloneElement, forwardRef, useRef, } from 'react';\nimport { useCancelEvent, useClickOutside } from \"../../hooks/index.js\";\nimport { useDialog } from \"./useDialog.js\";\nconst Dialog = (props, ref) => {\n    const { children, isOpen, onClose, closeOnBackdropClick = true, closeOnEscapeKeyDown } = props, restProps = __rest(props, [\"children\", \"isOpen\", \"onClose\", \"closeOnBackdropClick\", \"closeOnEscapeKeyDown\"]);\n    const dialogElementRef = useRef(ref);\n    const contentElementRef = useRef(null);\n    const { closeDialog, onTransitionEnd } = useDialog(dialogElementRef, isOpen);\n    const handleClickOutside = (event) => {\n        if (closeOnBackdropClick && event.target === dialogElementRef.current) {\n            closeDialog();\n            onClose(event);\n        }\n    };\n    useClickOutside({\n        ref: contentElementRef,\n        callback: isOpen ? handleClickOutside : undefined,\n    });\n    useCancelEvent(dialogElementRef, onClose, closeOnEscapeKeyDown, isOpen);\n    const child = Children.only(children);\n    return (React.createElement(\"dialog\", Object.assign({ ref: dialogElementRef, onTransitionEnd: onTransitionEnd }, restProps), cloneElement(child, {\n        ref: (clonedElementRef) => {\n            contentElementRef.current = clonedElementRef;\n        },\n    })));\n};\nDialog.spiritComponent = 'Dialog';\nexport default forwardRef(Dialog);\n//# sourceMappingURL=Dialog.js.map"],"names":["__rest","this","componentColors","emotionColors","textColors","containers","defaultContext","createContext","useLayoutEffect","useEffect","useCallback","useRef","Children","cloneElement","forwardRef"],"mappings":"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"}