@telegraph/modal 0.0.49 → 0.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../../../node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../../node_modules/@radix-ui/react-portal/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../src/Modal/Modal.helpers.tsx","../../src/Modal/ModalStacking.tsx","../../src/Modal/Modal.tsx"],"sourcesContent":["// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/portal/src/Portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import {\n DismissableLayer,\n type DismissableLayerProps,\n} from \"@radix-ui/react-dismissable-layer\";\n\ntype DismissableWrapperProps = DismissableLayerProps & {\n id: string;\n layers: Array<string>;\n children: React.ReactNode;\n};\n\n//\n// Handles the logic for when a global action like \"esc\" or clicking outside\n// should close the modal. When stacking modals, we don't want to close the\n// modal if we are not on the top-most layer.\n//\nconst DismissableWrapper = ({\n id,\n layers,\n children,\n ...props\n}: DismissableWrapperProps) => {\n const isTopLayer = id === layers[layers.length - 1];\n\n if (isTopLayer) {\n return <DismissableLayer {...props}>{children}</DismissableLayer>;\n }\n\n return <>{children}</>;\n};\n\nexport { DismissableWrapper };\n","import React from \"react\";\n\ntype AddLayerOptions = {\n layer?: number;\n};\n\nconst ModalStackingContext = React.createContext<{\n layers: Array<string>;\n setLayers: React.Dispatch<React.SetStateAction<Array<string>>>;\n addLayer: (id: string, options: AddLayerOptions) => void;\n removeLayer: (id: string) => void;\n removeTopLayer: () => void;\n}>({\n layers: [],\n setLayers: () => {},\n addLayer: () => {},\n removeLayer: () => {},\n removeTopLayer: () => {},\n});\n\ntype ModalStackingProviderProps = {\n children: React.ReactNode;\n};\n\nconst ModalStackingProvider = ({ children }: ModalStackingProviderProps) => {\n const [layers, setLayers] = React.useState<Array<string>>([]);\n\n const addLayer = (id: string, options: AddLayerOptions = {}) => {\n const { layer } = options;\n\n // If a layer is specified, insert the layer at the specified index\n // so that the modal renders at the correct layer in the stack.\n if (typeof layer === \"number\") {\n return setLayers((current) => {\n if (current.length - 1 < layer) {\n return [...current, id];\n }\n\n return [...current.slice(0, layer), id, ...current.slice(layer)];\n });\n } else {\n setLayers((current) => [...current, id]);\n }\n };\n\n const removeLayer = (id: string) => {\n setLayers(layers.filter((layer) => layer !== id));\n };\n\n const removeTopLayer = () => {\n const id = layers[layers.length - 1];\n if (!id) return;\n removeLayer(id);\n };\n\n return (\n <ModalStackingContext.Provider\n value={{ layers, setLayers, addLayer, removeLayer, removeTopLayer }}\n >\n {children}\n </ModalStackingContext.Provider>\n );\n};\n\nconst useModalStacking = () => {\n return React.useContext(ModalStackingContext);\n};\n\nexport { ModalStackingProvider, useModalStacking };\n","import * as Dialog from \"@radix-ui/react-dialog\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport * as Portal from \"@radix-ui/react-portal\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button } from \"@telegraph/button\";\nimport { RefToTgphRef } from \"@telegraph/helpers\";\nimport type {\n PolymorphicProps,\n TgphComponentProps,\n TgphElement,\n} from \"@telegraph/helpers\";\nimport { Lucide } from \"@telegraph/icon\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { DismissableWrapper } from \"./Modal.helpers\";\nimport { useModalStacking } from \"./ModalStacking\";\n\ntype RootProps = Omit<\n React.ComponentPropsWithoutRef<typeof Dialog.Root>,\n \"modal\"\n> &\n React.ComponentPropsWithoutRef<typeof FocusScope> &\n TgphComponentProps<typeof Stack> & {\n a11yTitle: string;\n a11yDescription?: string;\n layer?: number;\n };\n\nconst Root = ({\n defaultOpen: defaultOpenProp,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n ...props\n}: RootProps) => {\n const [open, onOpenChange] = useControllableState({\n prop: openProp,\n onChange: onOpenChangeProp,\n defaultProp: defaultOpenProp,\n });\n\n // Prevent rendering anything within the modal if it is not open\n if (!open) return;\n\n return <RootComponent open={open} onOpenChange={onOpenChange} {...props} />;\n};\n\ntype RootComponentProps = RootProps & {\n open: boolean;\n onOpenChange: (value: boolean) => void;\n};\n\nconst RootComponent = ({\n open,\n onOpenChange,\n a11yTitle,\n a11yDescription,\n children,\n layer: layerProp,\n // Focus scope props\n trapped,\n onMountAutoFocus,\n onUnmountAutoFocus,\n ...props\n}: RootComponentProps) => {\n // We use the a11yTitle as the id for the modal as it is unique\n // and can be used to identify the modal in the stacking context.\n // Without the need to generate a random id and manage between\n // different modal rendering patterns.\n const id = a11yTitle;\n const stacking = useModalStacking();\n React.useEffect(() => {\n if (!stacking || !open || stacking.layers.includes(id)) return;\n stacking.addLayer(id, { layer: layerProp });\n }, [id, layerProp, stacking, open]);\n\n const layer = stacking.layers?.indexOf(id) || 0;\n const layersLength = stacking.layers?.length || 0;\n const isStacked = layer !== 0;\n const isTopLayer = id === stacking.layers[stacking.layers.length - 1];\n\n return (\n <DismissableWrapper\n id={id}\n layers={stacking.layers}\n onEscapeKeyDown={(event) => {\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n onPointerDownOutside={(event) => {\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n >\n <Dialog.Root\n open={open}\n onOpenChange={(value) => {\n const hasLayers = stacking?.layers?.length > 0;\n\n if (hasLayers) {\n if (\n value === false &&\n id === stacking.layers[stacking.layers.length - 1]\n ) {\n stacking.removeLayer(id);\n return onOpenChange(false);\n }\n // If the modal is not the top layer, do not call onOpenChange\n // when we are stacking the modals\n return;\n }\n\n onOpenChange(value);\n }}\n key={id}\n >\n <VisuallyHidden.Root>\n <Dialog.Title>{a11yTitle}</Dialog.Title>\n {a11yDescription && (\n <Dialog.Description>{a11yDescription}</Dialog.Description>\n )}\n </VisuallyHidden.Root>\n <AnimatePresence>\n {open && (\n // We add the className \"tgph\" here so that styles within\n // the portal get scoped properly to telegraph\n <Portal.Root className=\"tgph\">\n <Overlay layer={layer}>\n <FocusScope\n trapped={typeof trapped === \"boolean\" ? trapped : isTopLayer}\n onMountAutoFocus={onMountAutoFocus}\n onUnmountAutoFocus={onUnmountAutoFocus}\n asChild\n >\n <RefToTgphRef>\n <Stack\n as={motion.div}\n initial={{\n top: `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layersLength - 1})`,\n }}\n animate={{\n top: isStacked\n ? `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layer} )`\n : \"var(--tgph-spacing-16)\",\n }}\n exit={{ top: 0 }}\n transition={{ type: \"spring\", duration: 0.3, bounce: 0 }}\n w=\"full\"\n justify=\"center\"\n style={{\n position: \"fixed\",\n left: 0,\n maxHeight: \"calc(100vh - var(--tgph-spacing-32))\",\n maxWidth: \"calc(100vw - var(--tgph-spacing-8))\",\n zIndex: `calc(var(--tgph-zIndex-modal) + ${layer})`,\n }}\n key={`container-${id}`}\n >\n <Stack\n direction=\"column\"\n as={motion.div}\n animate={{\n scale: 1.02 - Math.abs(layersLength - layer) * 0.02,\n transformOrigin: \"center center\",\n }}\n transition={{\n duration: 0.2,\n bounce: 0,\n type: \"spring\",\n }}\n maxW={props.maxW ?? \"160\"}\n w={props.w ?? \"full\"}\n bg=\"surface-1\"\n border=\"px\"\n rounded=\"4\"\n shadow=\"3\"\n key={`content-${id}`}\n {...props}\n >\n {children}\n </Stack>\n </Stack>\n </RefToTgphRef>\n </FocusScope>\n </Overlay>\n </Portal.Root>\n )}\n </AnimatePresence>\n </Dialog.Root>\n </DismissableWrapper>\n );\n};\n\ntype OverlayProps = TgphComponentProps<typeof Box> & {\n layer: number;\n};\n\nconst Overlay = ({ layer, children }: OverlayProps) => {\n // If the layer is greater than 0, we don't want to show this\n // overlay as to not stack the overlays on top of each other.\n if (layer > 0) return children;\n return (\n <Dialog.Overlay>\n <Box\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, bounce: 0, type: \"spring\" }}\n bg=\"alpha-black-6\"\n w=\"full\"\n h=\"full\"\n zIndex=\"overlay\"\n style={{\n position: \"fixed\",\n cursor: \"pointer\",\n inset: \"0px\",\n }}\n />\n {children}\n </Dialog.Overlay>\n );\n};\n\ntype ContentProps = React.ComponentPropsWithoutRef<typeof Dialog.Content> &\n TgphComponentProps<typeof Stack>;\ntype ContentRef = React.ElementRef<typeof Dialog.Content>;\n\nconst Content = React.forwardRef<ContentRef, ContentProps>(\n ({ children, ...props }, forwardedRef) => {\n return (\n <Dialog.Content ref={forwardedRef} asChild {...props}>\n <Stack direction=\"column\" h=\"full\" {...props}>\n {children}\n </Stack>\n </Dialog.Content>\n );\n },\n);\n\ntype CloseProps<T extends TgphElement> = TgphComponentProps<typeof Button<T>> &\n Omit<React.ComponentPropsWithoutRef<typeof Dialog.Close>, \"color\">;\nconst Close = <T extends TgphElement>({\n size = \"1\",\n variant = \"ghost\",\n ...props\n}: CloseProps<T>) => {\n return (\n <Dialog.Close asChild>\n <Button\n icon={{ icon: Lucide.X, alt: \"Close Modal\" }}\n variant={variant}\n size={size}\n {...props}\n />\n </Dialog.Close>\n );\n};\n\ntype BodyProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Body = <T extends TgphElement>({\n style,\n children,\n ...props\n}: BodyProps<T>) => {\n return (\n <Stack\n direction=\"column\"\n px=\"6\"\n py=\"4\"\n style={{\n overflowY: \"auto\",\n ...style,\n }}\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype HeaderProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Header = <T extends TgphElement>({\n children,\n ...props\n}: HeaderProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n justify=\"space-between\"\n align=\"center\"\n px=\"6\"\n py=\"4\"\n borderBottom=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype FooterProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Footer = <T extends TgphElement>({\n children,\n ...props\n}: FooterProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n align=\"center\"\n justify=\"flex-end\"\n gap=\"2\"\n px=\"6\"\n py=\"4\"\n borderTop=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\nconst Modal = {} as {\n Root: typeof Root;\n Content: typeof Content;\n Close: typeof Close;\n Body: typeof Body;\n Header: typeof Header;\n Footer: typeof Footer;\n};\n\nObject.assign(Modal, {\n Root,\n Content,\n Close,\n Body,\n Header,\n Footer,\n});\n\nexport { Modal };\n"],"names":["setRef","ref","value","composeRefs","refs","node","Slot","React","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","SlotClone","childrenRef","getElementRef","mergeProps","Slottable","Fragment","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","_a","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","useLayoutEffect2","PORTAL_NAME","Portal","containerProp","portalProps","mounted","setMounted","useLayoutEffect","container","ReactDOM","Root","useCallbackRef","callback","callbackRef","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","dispatchDiscreteCustomEvent","target","useComposedRefs","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","context","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","index","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","name","handler","detail","discrete","DismissableWrapper","id","ModalStackingContext","ModalStackingProvider","setLayers","addLayer","options","layer","current","removeLayer","removeTopLayer","useModalStacking","defaultOpenProp","openProp","onOpenChangeProp","open","onOpenChange","RootComponent","a11yTitle","a11yDescription","layerProp","trapped","onMountAutoFocus","onUnmountAutoFocus","stacking","layersLength","isStacked","isTopLayer","jsxs","Dialog","VisuallyHidden","AnimatePresence","Portal.Root","Overlay","FocusScope","RefToTgphRef","Stack","motion","Box","Content","Close","size","variant","Button","Lucide","Body","style","Header","Footer","Modal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../src/Modal/ModalStacking.tsx","../../src/Modal/Modal.tsx"],"sourcesContent":["// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","import React from \"react\";\n\nconst ModalStackingContext = React.createContext<{\n layers: Array<string>;\n setLayers: React.Dispatch<React.SetStateAction<Array<string>>>;\n addLayer: (id: string) => void;\n removeLayer: (id: string) => void;\n removeTopLayer: () => void;\n}>({\n layers: [],\n setLayers: () => {},\n addLayer: () => {},\n removeLayer: () => {},\n removeTopLayer: () => {},\n});\n\ntype ModalStackingProviderProps = {\n children: React.ReactNode;\n};\n\nconst ModalStackingProvider = ({ children }: ModalStackingProviderProps) => {\n const [layers, setLayers] = React.useState<Array<string>>([]);\n\n const addLayer = (id: string) => {\n setLayers((current) => [...current, id]);\n };\n\n const removeLayer = (id: string) => {\n setLayers(layers.filter((layer) => layer !== id));\n };\n\n const removeTopLayer = () => {\n const id = layers[layers.length - 1];\n if (!id) return;\n removeLayer(id);\n };\n\n return (\n <ModalStackingContext.Provider\n value={{ layers, setLayers, addLayer, removeLayer, removeTopLayer }}\n >\n {children}\n </ModalStackingContext.Provider>\n );\n};\n\nconst useModalStacking = () => {\n return React.useContext(ModalStackingContext);\n};\n\nexport { ModalStackingProvider, useModalStacking };\n","import * as Dialog from \"@radix-ui/react-dialog\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport * as Portal from \"@radix-ui/react-portal\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button } from \"@telegraph/button\";\nimport { RefToTgphRef } from \"@telegraph/helpers\";\nimport type {\n PolymorphicProps,\n TgphComponentProps,\n TgphElement,\n} from \"@telegraph/helpers\";\nimport { Lucide } from \"@telegraph/icon\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { useModalStacking } from \"./ModalStacking\";\n\ntype RootProps = Omit<\n React.ComponentPropsWithoutRef<typeof Dialog.Root>,\n \"modal\"\n> &\n React.ComponentPropsWithoutRef<typeof FocusScope> &\n TgphComponentProps<typeof Stack> & {\n a11yTitle: string;\n a11yDescription?: string;\n layer?: number;\n };\n\nconst Root = ({\n defaultOpen: defaultOpenProp,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n ...props\n}: RootProps) => {\n const [open, onOpenChange] = useControllableState({\n prop: openProp,\n onChange: onOpenChangeProp,\n defaultProp: defaultOpenProp,\n });\n\n const stacking = useModalStacking();\n const id = props.a11yTitle;\n\n React.useEffect(() => {\n if (!open && stacking.layers.includes(id)) {\n console.log(\"HERE REMOVE\", id, open);\n stacking.removeLayer(id);\n }\n }, [id, stacking, open]);\n\n // Prevent rendering anything within the modal if it is not open\n if (!open) return;\n\n return <RootComponent open={open} onOpenChange={onOpenChange} {...props} />;\n};\n\ntype RootComponentProps = RootProps & {\n open: boolean;\n onOpenChange: (value: boolean) => void;\n};\n\nconst RootComponent = ({\n open,\n onOpenChange,\n a11yTitle,\n a11yDescription,\n children,\n // Focus scope props\n trapped,\n onMountAutoFocus,\n onUnmountAutoFocus,\n ...props\n}: RootComponentProps) => {\n // We use the a11yTitle as the id for the modal as it is unique\n // and can be used to identify the modal in the stacking context.\n // Without the need to generate a random id and manage between\n // different modal rendering patterns.\n const id = a11yTitle;\n const stacking = useModalStacking();\n React.useEffect(() => {\n if (!stacking || !open || stacking.layers.includes(id)) return;\n stacking.addLayer(id);\n }, [id, stacking, open]);\n\n const layer = stacking.layers?.indexOf(id) || 0;\n const layersLength = stacking.layers?.length || 0;\n const isStacked = layer !== 0;\n const isTopLayer = id === stacking.layers[stacking.layers.length - 1];\n\n return (\n <DismissableLayer\n onEscapeKeyDown={(event) => {\n if (!isTopLayer) return;\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n onPointerDownOutside={(event) => {\n if (!isTopLayer) return;\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n >\n <Dialog.Root\n open={open}\n onOpenChange={(value) => {\n const hasLayers = stacking?.layers?.length > 0;\n\n if (hasLayers) {\n if (\n value === false &&\n id === stacking.layers[stacking.layers.length - 1]\n ) {\n stacking.removeLayer(id);\n return onOpenChange(false);\n }\n // If the modal is not the top layer, do not call onOpenChange\n // when we are stacking the modals\n return;\n }\n\n onOpenChange(value);\n }}\n key={id}\n >\n <VisuallyHidden.Root>\n <Dialog.Title>{a11yTitle}</Dialog.Title>\n {a11yDescription && (\n <Dialog.Description>{a11yDescription}</Dialog.Description>\n )}\n </VisuallyHidden.Root>\n <AnimatePresence>\n {open && (\n // We add the className \"tgph\" here so that styles within\n // the portal get scoped properly to telegraph\n <Portal.Root className=\"tgph\">\n <Overlay layer={layer}>\n <FocusScope\n trapped={typeof trapped === \"boolean\" ? trapped : isTopLayer}\n onMountAutoFocus={onMountAutoFocus}\n onUnmountAutoFocus={onUnmountAutoFocus}\n asChild\n >\n <RefToTgphRef>\n <Stack\n as={motion.div}\n initial={{\n top: `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layersLength - 1})`,\n }}\n animate={{\n top: isStacked\n ? `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layer} )`\n : \"var(--tgph-spacing-16)\",\n }}\n exit={{ top: 0 }}\n transition={{ type: \"spring\", duration: 0.3, bounce: 0 }}\n w=\"full\"\n justify=\"center\"\n style={{\n position: \"fixed\",\n left: 0,\n maxHeight: \"calc(100vh - var(--tgph-spacing-32))\",\n maxWidth: \"calc(100vw - var(--tgph-spacing-8))\",\n zIndex: `calc(var(--tgph-zIndex-modal) + ${layer})`,\n }}\n key={`container-${id}`}\n >\n <Stack\n direction=\"column\"\n as={motion.div}\n animate={{\n scale: 1.02 - Math.abs(layersLength - layer) * 0.02,\n transformOrigin: \"center center\",\n }}\n transition={{\n duration: 0.2,\n bounce: 0,\n type: \"spring\",\n }}\n maxW={props.maxW ?? \"160\"}\n w={props.w ?? \"full\"}\n bg=\"surface-1\"\n border=\"px\"\n rounded=\"4\"\n shadow=\"3\"\n key={`content-${id}`}\n {...props}\n >\n {children}\n </Stack>\n </Stack>\n </RefToTgphRef>\n </FocusScope>\n </Overlay>\n </Portal.Root>\n )}\n </AnimatePresence>\n </Dialog.Root>\n </DismissableLayer>\n );\n};\n\ntype OverlayProps = TgphComponentProps<typeof Box> & {\n layer: number;\n};\n\nconst Overlay = ({ layer, children }: OverlayProps) => {\n // If the layer is greater than 0, we don't want to show this\n // overlay as to not stack the overlays on top of each other.\n if (layer > 0) return children;\n return (\n <Dialog.Overlay>\n <Box\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, bounce: 0, type: \"spring\" }}\n bg=\"alpha-black-6\"\n w=\"full\"\n h=\"full\"\n zIndex=\"overlay\"\n style={{\n position: \"fixed\",\n cursor: \"pointer\",\n inset: \"0px\",\n }}\n />\n {children}\n </Dialog.Overlay>\n );\n};\n\ntype ContentProps = React.ComponentPropsWithoutRef<typeof Dialog.Content> &\n TgphComponentProps<typeof Stack>;\ntype ContentRef = React.ElementRef<typeof Dialog.Content>;\n\nconst Content = React.forwardRef<ContentRef, ContentProps>(\n ({ children, ...props }, forwardedRef) => {\n return (\n <Dialog.Content ref={forwardedRef} asChild {...props}>\n <Stack direction=\"column\" h=\"full\" {...props}>\n {children}\n </Stack>\n </Dialog.Content>\n );\n },\n);\n\ntype CloseProps<T extends TgphElement> = TgphComponentProps<typeof Button<T>> &\n Omit<React.ComponentPropsWithoutRef<typeof Dialog.Close>, \"color\">;\nconst Close = <T extends TgphElement>({\n size = \"1\",\n variant = \"ghost\",\n ...props\n}: CloseProps<T>) => {\n return (\n <Dialog.Close asChild>\n <Button\n icon={{ icon: Lucide.X, alt: \"Close Modal\" }}\n variant={variant}\n size={size}\n {...props}\n />\n </Dialog.Close>\n );\n};\n\ntype BodyProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Body = <T extends TgphElement>({\n style,\n children,\n ...props\n}: BodyProps<T>) => {\n return (\n <Stack\n direction=\"column\"\n px=\"6\"\n py=\"4\"\n style={{\n overflowY: \"auto\",\n ...style,\n }}\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype HeaderProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Header = <T extends TgphElement>({\n children,\n ...props\n}: HeaderProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n justify=\"space-between\"\n align=\"center\"\n px=\"6\"\n py=\"4\"\n borderBottom=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype FooterProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Footer = <T extends TgphElement>({\n children,\n ...props\n}: FooterProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n align=\"center\"\n justify=\"flex-end\"\n gap=\"2\"\n px=\"6\"\n py=\"4\"\n borderTop=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\nconst Modal = {} as {\n Root: typeof Root;\n Content: typeof Content;\n Close: typeof Close;\n Body: typeof Body;\n Header: typeof Header;\n Footer: typeof Footer;\n};\n\nObject.assign(Modal, {\n Root,\n Content,\n Close,\n Body,\n Header,\n Footer,\n});\n\nexport { Modal };\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","Slot","React","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","SlotClone","childrenRef","getElementRef","mergeProps","Slottable","Fragment","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","_a","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","target","ReactDOM","useComposedRefs","useCallbackRef","callback","callbackRef","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","context","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","index","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","name","handler","detail","discrete","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","ModalStackingContext","ModalStackingProvider","setLayers","addLayer","id","current","removeLayer","layer","removeTopLayer","useModalStacking","Root","defaultOpenProp","openProp","onOpenChangeProp","open","onOpenChange","stacking","RootComponent","a11yTitle","a11yDescription","trapped","onMountAutoFocus","onUnmountAutoFocus","layersLength","isStacked","isTopLayer","jsxs","Dialog","VisuallyHidden","AnimatePresence","Portal","Overlay","FocusScope","RefToTgphRef","Stack","motion","Box","Content","Close","size","variant","Button","Lucide","Body","style","Header","Footer","Modal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,SAAS,GAAG,IAAI,CACnB,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,EAClD,OAAO,CACR,GACC,KAAK,CAAC,wBAAwB,CAAC,OAAO,UAAU,CAAC,GACjD,kBAAkB,CAAC,OAAO,KAAK,CAAC,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,QAAA,MAAM,IAAI,+FAKP,SAAS,wDAWX,CAAC;AAqLF,KAAK,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,GACvE,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAGnC,QAAA,MAAM,OAAO,kGAUZ,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI,kBAAkB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAC3E,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,QAAA,MAAM,KAAK,GAAI,CAAC,SAAS,WAAW,+BAIjC,UAAU,CAAC,CAAC,CAAC,4CAWf,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,SAAS,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,GACzD,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,IAAI,GAAI,CAAC,SAAS,WAAW,iCAIhC,SAAS,CAAC,CAAC,CAAC,4CAed,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAC3D,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,0BAGlC,WAAW,CAAC,CAAC,CAAC,4CAchB,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAC3D,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,0BAGlC,WAAW,CAAC,CAAC,CAAC,4CAehB,CAAC;AAEF,QAAA,MAAM,KAAK,EAAS;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB,CAAC;AAWF,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,KAAK,SAAS,GAAG,IAAI,CACnB,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,EAClD,OAAO,CACR,GACC,KAAK,CAAC,wBAAwB,CAAC,OAAO,UAAU,CAAC,GACjD,kBAAkB,CAAC,OAAO,KAAK,CAAC,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,QAAA,MAAM,IAAI,+FAKP,SAAS,wDAqBX,CAAC;AAoLF,KAAK,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,GACvE,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAGnC,QAAA,MAAM,OAAO,kGAUZ,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI,kBAAkB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAC3E,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,QAAA,MAAM,KAAK,GAAI,CAAC,SAAS,WAAW,+BAIjC,UAAU,CAAC,CAAC,CAAC,4CAWf,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,SAAS,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,GACzD,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,IAAI,GAAI,CAAC,SAAS,WAAW,iCAIhC,SAAS,CAAC,CAAC,CAAC,4CAed,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAC3D,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,0BAGlC,WAAW,CAAC,CAAC,CAAC,4CAchB,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAC3D,kBAAkB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,0BAGlC,WAAW,CAAC,CAAC,CAAC,4CAehB,CAAC;AAEF,QAAA,MAAM,KAAK,EAAS;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB,CAAC;AAWF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,8 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- type AddLayerOptions = {
4
- layer?: number;
5
- };
6
3
  type ModalStackingProviderProps = {
7
4
  children: React.ReactNode;
8
5
  };
@@ -10,7 +7,7 @@ declare const ModalStackingProvider: ({ children }: ModalStackingProviderProps)
10
7
  declare const useModalStacking: () => {
11
8
  layers: Array<string>;
12
9
  setLayers: React.Dispatch<React.SetStateAction<Array<string>>>;
13
- addLayer: (id: string, options: AddLayerOptions) => void;
10
+ addLayer: (id: string) => void;
14
11
  removeLayer: (id: string) => void;
15
12
  removeTopLayer: () => void;
16
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ModalStacking.d.ts","sourceRoot":"","sources":["../../../src/Modal/ModalStacking.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAgBF,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,qBAAqB,iBAAkB,0BAA0B,4CAsCtE,CAAC;AAEF,QAAA,MAAM,gBAAgB;YAzDZ,KAAK,CAAC,MAAM,CAAC;eACV,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;cACpD,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI;iBAC3C,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;oBACjB,MAAM,IAAI;CAuD3B,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"ModalStacking.d.ts","sourceRoot":"","sources":["../../../src/Modal/ModalStacking.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,qBAAqB,iBAAkB,0BAA0B,4CAwBtE,CAAC;AAEF,QAAA,MAAM,gBAAgB;YA3CZ,KAAK,CAAC,MAAM,CAAC;eACV,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;cACpD,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;iBACjB,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;oBACjB,MAAM,IAAI;CAyC3B,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telegraph/modal",
3
- "version": "0.0.49",
3
+ "version": "0.0.51",
4
4
  "repository": "https://github.com/knocklabs/telegraph/tree/main/packages/modal",
5
5
  "author": "@knocklabs",
6
6
  "license": "MIT",
@@ -31,6 +31,7 @@
31
31
  "dependencies": {
32
32
  "@radix-ui/react-dialog": "^1.1.1",
33
33
  "@radix-ui/react-focus-scope": "^1.1.0",
34
+ "@radix-ui/react-portal": "^1.1.2",
34
35
  "@radix-ui/react-visually-hidden": "^1.1.0",
35
36
  "@telegraph/button": "^0.0.52",
36
37
  "@telegraph/helpers": "^0.0.7",
@@ -1,10 +0,0 @@
1
- import { DismissableLayerProps } from '@radix-ui/react-dismissable-layer';
2
-
3
- type DismissableWrapperProps = DismissableLayerProps & {
4
- id: string;
5
- layers: Array<string>;
6
- children: React.ReactNode;
7
- };
8
- declare const DismissableWrapper: ({ id, layers, children, ...props }: DismissableWrapperProps) => import("react/jsx-runtime").JSX.Element;
9
- export { DismissableWrapper };
10
- //# sourceMappingURL=Modal.helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.helpers.d.ts","sourceRoot":"","sources":["../../../src/Modal/Modal.helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAE3C,KAAK,uBAAuB,GAAG,qBAAqB,GAAG;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAOF,QAAA,MAAM,kBAAkB,uCAKrB,uBAAuB,4CAQzB,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}