@purpurds/drawer 6.12.0 → 6.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LICENSE.txt +4 -4
- package/dist/drawer.cjs.js +7 -7
- package/dist/drawer.cjs.js.map +1 -1
- package/dist/drawer.es.js +5 -5
- package/dist/drawer.es.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +7 -7
- package/src/drawer-container.module.scss +27 -5
- package/src/drawer-content.tsx +1 -1
package/dist/drawer.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.es.js","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.5_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-portal@1.1.4_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-portal/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-focus-guards@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../../../common/temp/node_modules/.pnpm/tslib@2.7.0/node_modules/tslib/tslib.es6.mjs","../../../common/temp/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../../common/temp/node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.0.10_react@19.0.0/node_modules/use-callback-ref/dist/es2015/assignRef.js","../../../common/temp/node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.0.10_react@19.0.0/node_modules/use-callback-ref/dist/es2015/useRef.js","../../../common/temp/node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.0.10_react@19.0.0/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../../common/temp/node_modules/.pnpm/use-sidecar@1.1.3_@types+react@19.0.10_react@19.0.0/node_modules/use-sidecar/dist/es2015/medium.js","../../../common/temp/node_modules/.pnpm/use-sidecar@1.1.3_@types+react@19.0.10_react@19.0.0/node_modules/use-sidecar/dist/es2015/exports.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/medium.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/UI.js","../../../common/temp/node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js","../../../common/temp/node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.0.10_react@19.0.0/node_modules/react-style-singleton/dist/es2015/singleton.js","../../../common/temp/node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.0.10_react@19.0.0/node_modules/react-style-singleton/dist/es2015/hook.js","../../../common/temp/node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.0.10_react@19.0.0/node_modules/react-style-singleton/dist/es2015/component.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/Combination.js","../../../common/temp/node_modules/.pnpm/aria-hidden@1.2.4/node_modules/aria-hidden/dist/es2015/index.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-dialog@1.1.6_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-dialog/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/drawer.context.ts","../src/drawer-container.tsx","../src/use-swipe-tracking.hook.ts","../src/drawer-handle.tsx","../../button/dist/button.es.js","../../heading/dist/heading.es.js","../../icon/dist/icon-CbdbqC3C.mjs","../../icon/dist/components/arrow-left.es.js","../../icon/dist/components/close.es.js","../../visually-hidden/dist/visually-hidden.es.js","../src/drawer-header.tsx","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+number@1.1.0/node_modules/@radix-ui/number/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../src/drawer-scroll-area.tsx","../src/drawer-frame.tsx","../src/use-swipe-to-dismiss.hook.ts","../src/drawer-content.tsx","../src/drawer-trigger.tsx","../src/drawer.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 return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\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/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\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","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\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/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, 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 const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { 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-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/dismissable-layer.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","\"use client\";\n\n// packages/react/focus-scope/src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\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","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\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}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-guards/src/FocusGuards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\nexport {\n FocusGuards,\n Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(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}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","\"use client\";\n\n// packages/react/dialog/src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { createContext } from \"react\";\n\nimport { OpenHandlerFunction } from \"./types\";\n\nexport const DrawerContext = createContext<OpenHandlerFunction | null>(null);\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-container.module.scss\";\nconst cx = c.bind(styles);\n\nexport type DrawerContainerProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n stickyFooter: boolean;\n variant?: \"header\" | \"body\" | \"footer\";\n};\n\nconst rootClassName = \"purpur-drawer-container\";\n\nexport const DrawerContainer = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-container\",\n children,\n className,\n variant = \"body\",\n stickyFooter,\n ...props\n }: DrawerContainerProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([\n className,\n rootClassName,\n {\n [`${rootClassName}--${variant}`]: variant,\n },\n {\n [`${rootClassName}--sticky`]: stickyFooter,\n },\n ]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {children}\n </div>\n );\n }\n);\n\nDrawerContainer.displayName = \"DrawerContainer\";\n","import React from \"react\";\n\nimport { SwipeEvent } from \"./types\";\n\ntype UseSwipeTracking = {\n onPointerDown(event: React.PointerEvent): void;\n onPointerMove(event: React.PointerEvent): void;\n onPointerUp(event: React.PointerEvent): void;\n};\n\nexport const useSwipeTracking = (\n pointerStartRef: React.MutableRefObject<{ y: number } | null>,\n swipeDeltaRef: React.MutableRefObject<{ y: number } | null>,\n onSwipeStart: () => void,\n onSwipeMove: (event: SwipeEvent) => void,\n onSwipeCancel: () => void,\n onSwipeEnd: (event: SwipeEvent) => void\n): UseSwipeTracking => {\n const onPointerDown = (event: React.PointerEvent) => {\n pointerStartRef.current = { y: event.clientY };\n };\n const onPointerMove = (event: React.PointerEvent) => {\n if (!pointerStartRef.current) {\n return;\n }\n const y = event.clientY - pointerStartRef.current.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n const clampedY = Math.max(0, y);\n const moveStartBuffer = event.pointerType === \"touch\" ? 10 : 2;\n const delta = { y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.current = delta;\n onSwipeMove(eventDetail);\n } else if (isDeltaInDirection(delta, 0)) {\n swipeDeltaRef.current = delta;\n onSwipeStart();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n } else if (Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef.current = null;\n }\n };\n const onPointerUp = (event: React.PointerEvent) => {\n const delta = swipeDeltaRef.current;\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef.current = null;\n pointerStartRef.current = null;\n if (delta) {\n const swipeHandle = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (isDeltaInDirection(delta, 0) && delta.y > 200) {\n onSwipeEnd(eventDetail);\n } else {\n onSwipeCancel();\n }\n // Prevent click event from triggering on items within the drawer when\n // pointer up is part of a swipe gesture\n swipeHandle.addEventListener(\"click\", (event) => event.preventDefault(), {\n once: true,\n });\n }\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n };\n};\n\nconst isDeltaInDirection = (delta: { y: number }, threshold = 0) => {\n const deltaY = Math.abs(delta.y);\n return deltaY > threshold;\n};\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-handle.module.scss\";\nimport { SwipeEvent } from \"./types\";\nimport { useSwipeTracking } from \"./use-swipe-tracking.hook\";\nconst cx = c.bind(styles);\n\nexport type DrawerHandleProps = {\n [\"data-testid\"]?: string;\n className?: string;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n};\n\nconst rootClassName = \"purpur-drawer-handle\";\n\nexport const DrawerHandle = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-handle\",\n className,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n ...props\n }: DrawerHandleProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([className, rootClassName]);\n const pointerStartRef = React.useRef<{ y: number } | null>(null);\n const swipeDeltaRef = React.useRef<{ y: number } | null>(null);\n const { onPointerDown, onPointerMove, onPointerUp } = useSwipeTracking(\n swipeDeltaRef,\n pointerStartRef,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd\n );\n\n return (\n <div\n className={classes}\n data-testid={dataTestId}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nDrawerHandle.displayName = \"DrawerHandle\";\n","import { jsx as c, jsxs as z } from \"react/jsx-runtime\";\nimport { forwardRef as E } from \"react\";\nconst N = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\"\n}, O = {\n LG: \"lg\"\n};\nfunction T(u) {\n return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, \"default\") ? u.default : u;\n}\nvar m = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar w;\nfunction R() {\n return w || (w = 1, function(u) {\n (function() {\n var o = {}.hasOwnProperty;\n function n() {\n for (var t = \"\", r = 0; r < arguments.length; r++) {\n var e = arguments[r];\n e && (t = s(t, p(e)));\n }\n return t;\n }\n function p(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return n.apply(null, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var r = \"\";\n for (var e in t)\n o.call(t, e) && t[e] && (r = s(r, e));\n return r;\n }\n function s(t, r) {\n return r ? t ? t + \" \" + r : t + r : t;\n }\n u.exports ? (n.default = n, u.exports = n) : window.classNames = n;\n })();\n }(m)), m.exports;\n}\nvar A = R();\nconst g = /* @__PURE__ */ T(A), B = \"_rotate_1xozj_1\", P = \"_dash_1xozj_1\", _ = {\n \"purpur-spinner\": \"_purpur-spinner_1xozj_1\",\n rotate: B,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_1xozj_4\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_1xozj_8\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_1xozj_12\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_1xozj_16\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_1xozj_20\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_1xozj_24\",\n dash: P,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_1xozj_33\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_1xozj_36\"\n}, a = \"purpur-spinner\", C = {\n SM: \"sm\"\n}, I = ({\n [\"data-testid\"]: u,\n disabled: o = !1,\n negative: n = !1,\n size: p = C.SM,\n ...s\n}) => /* @__PURE__ */ c(\n \"div\",\n {\n className: g([_[a], _[`${a}--${p}`]]),\n \"data-testid\": u,\n ...s,\n children: /* @__PURE__ */ c(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ c(\n \"circle\",\n {\n className: g(_[`${a}__circle`], {\n [_[`${a}__circle--disabled`]]: o,\n [_[`${a}__circle--negative`]]: n\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nfunction M(u) {\n return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, \"default\") ? u.default : u;\n}\nvar d = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar h;\nfunction V() {\n return h || (h = 1, function(u) {\n (function() {\n var o = {}.hasOwnProperty;\n function n() {\n for (var t = \"\", r = 0; r < arguments.length; r++) {\n var e = arguments[r];\n e && (t = s(t, p.call(this, e)));\n }\n return t;\n }\n function p(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return n.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var r = \"\";\n for (var e in t)\n o.call(t, e) && t[e] && (r = s(r, this && this[e] || e));\n return r;\n }\n function s(t, r) {\n return r ? t ? t + \" \" + r : t + r : t;\n }\n u.exports ? (n.default = n, u.exports = n) : window.classNames = n;\n })();\n }(d)), d.exports;\n}\nvar D = V();\nconst U = /* @__PURE__ */ M(D), Y = {\n \"purpur-button\": \"_purpur-button_w455q_1\",\n \"purpur-button--xs\": \"_purpur-button--xs_w455q_33\",\n \"purpur-button--icon-only\": \"_purpur-button--icon-only_w455q_36\",\n \"purpur-button--sm\": \"_purpur-button--sm_w455q_39\",\n \"purpur-button--md\": \"_purpur-button--md_w455q_45\",\n \"purpur-button--lg\": \"_purpur-button--lg_w455q_51\",\n \"purpur-button--full-width\": \"_purpur-button--full-width_w455q_57\",\n \"purpur-button--primary\": \"_purpur-button--primary_w455q_60\",\n \"purpur-button--disabled\": \"_purpur-button--disabled_w455q_64\",\n \"purpur-button--primary-negative\": \"_purpur-button--primary-negative_w455q_70\",\n \"purpur-button--secondary\": \"_purpur-button--secondary_w455q_82\",\n \"purpur-button--secondary-negative\": \"_purpur-button--secondary-negative_w455q_93\",\n \"purpur-button--expressive\": \"_purpur-button--expressive_w455q_104\",\n \"purpur-button--expressive-negative\": \"_purpur-button--expressive-negative_w455q_114\",\n \"purpur-button--negative\": \"_purpur-button--negative_w455q_126\",\n \"purpur-button--destructive\": \"_purpur-button--destructive_w455q_133\",\n \"purpur-button--destructive-negative\": \"_purpur-button--destructive-negative_w455q_143\",\n \"purpur-button--tertiary-purple\": \"_purpur-button--tertiary-purple_w455q_153\",\n \"purpur-button--tertiary-purple-negative\": \"_purpur-button--tertiary-purple-negative_w455q_166\",\n \"purpur-button--text-negative\": \"_purpur-button--text-negative_w455q_181\",\n \"purpur-button--text\": \"_purpur-button--text_w455q_181\"\n}, L = {\n ...N,\n DESTRUCTIVE: \"destructive\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TEXT: \"text\"\n}, K = Object.values(L), G = U.bind(Y), i = \"purpur-button\", Q = [\"button\", \"submit\", \"reset\"], X = ({\n children: u,\n className: o,\n [\"data-testid\"]: n,\n disabled: p = !1,\n fullWidth: s = !1,\n iconOnly: t,\n loading: r = !1,\n negative: e = !1,\n onClick: b,\n size: f = \"md\",\n variant: l,\n type: q = \"button\",\n ...v\n}, j) => {\n if (t && l === \"destructive\")\n return null;\n const S = G(\n [\n i,\n `${i}--${e ? `${l}-negative` : l}`,\n `${i}--${f}`\n ],\n {\n [`${i}--icon-only`]: t,\n [`${i}--negative`]: e,\n [`${i}--full-width`]: s,\n [`${i}--disabled`]: p || r\n },\n o\n ), $ = (y) => {\n p || r ? y.preventDefault() : b && b(y);\n }, x = !!v[\"aria-disabled\"] || p || r;\n return /* @__PURE__ */ z(\n \"button\",\n {\n className: S,\n \"data-testid\": n,\n type: q,\n ref: j,\n \"aria-disabled\": x,\n onClick: $,\n ...v,\n children: [\n r && /* @__PURE__ */ c(I, { size: f === O.LG ? \"xs\" : \"xxs\", negative: e, disabled: x }),\n \" \",\n u\n ]\n }\n );\n}, F = E(X);\nF.displayName = \"Button\";\nexport {\n Q as BUTTON_TYPES,\n L as BUTTON_VARIANT,\n F as Button,\n K as buttonVariants\n};\n//# sourceMappingURL=button.es.js.map\n","import { jsx as _ } from \"react/jsx-runtime\";\nfunction f(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar l = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar d;\nfunction g() {\n return d || (d = 1, function(t) {\n (function() {\n var s = {}.hasOwnProperty;\n function n() {\n for (var e = \"\", r = 0; r < arguments.length; r++) {\n var i = arguments[r];\n i && (e = p(e, h(i)));\n }\n return e;\n }\n function h(e) {\n if (typeof e == \"string\" || typeof e == \"number\")\n return e;\n if (typeof e != \"object\")\n return \"\";\n if (Array.isArray(e))\n return n.apply(null, e);\n if (e.toString !== Object.prototype.toString && !e.toString.toString().includes(\"[native code]\"))\n return e.toString();\n var r = \"\";\n for (var i in e)\n s.call(e, i) && e[i] && (r = p(r, i));\n return r;\n }\n function p(e, r) {\n return r ? e ? e + \" \" + r : e + r : e;\n }\n t.exports ? (n.default = n, t.exports = n) : window.classNames = n;\n })();\n }(l)), l.exports;\n}\nvar c = g();\nconst y = /* @__PURE__ */ f(c), u = {\n \"purpur-heading\": \"_purpur-heading_k9fhq_1\",\n \"purpur-heading--hyphens\": \"_purpur-heading--hyphens_k9fhq_8\",\n \"purpur-heading--negative\": \"_purpur-heading--negative_k9fhq_11\",\n \"purpur-heading--subsection-100\": \"_purpur-heading--subsection-100_k9fhq_14\",\n \"purpur-heading--title-100\": \"_purpur-heading--title-100_k9fhq_20\",\n \"purpur-heading--title-200\": \"_purpur-heading--title-200_k9fhq_26\",\n \"purpur-heading--title-300\": \"_purpur-heading--title-300_k9fhq_32\",\n \"purpur-heading--title-400\": \"_purpur-heading--title-400_k9fhq_38\",\n \"purpur-heading--title-500\": \"_purpur-heading--title-500_k9fhq_44\",\n \"purpur-heading--title-600\": \"_purpur-heading--title-600_k9fhq_50\",\n \"purpur-heading--title-700\": \"_purpur-heading--title-700_k9fhq_56\",\n \"purpur-heading--display-25\": \"_purpur-heading--display-25_k9fhq_62\",\n \"purpur-heading--display-50\": \"_purpur-heading--display-50_k9fhq_68\",\n \"purpur-heading--display-100\": \"_purpur-heading--display-100_k9fhq_74\",\n \"purpur-heading--display-200\": \"_purpur-heading--display-200_k9fhq_80\"\n}, k = {\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\"\n}, T = {\n TITLE100: \"title-100\",\n TITLE200: \"title-200\",\n TITLE300: \"title-300\",\n TITLE400: \"title-400\",\n TITLE500: \"title-500\",\n TITLE600: \"title-600\",\n TITLE700: \"title-700\",\n SUBSECTION100: \"subsection-100\"\n}, I = {\n DISPLAY25: \"display-25\",\n DISPLAY50: \"display-50\",\n DISPLAY100: \"display-100\",\n DISPLAY200: \"display-200\"\n}, a = \"purpur-heading\", q = ({\n children: t,\n className: s = \"\",\n enableHyphenation: n = !1,\n negative: h = !1,\n tag: p,\n variant: e = T.TITLE100,\n ...r\n}) => {\n const i = p, o = y([\n s,\n u[a],\n u[`${a}--${e}`],\n {\n [u[`${a}--hyphens`]]: n,\n [u[`${a}--negative`]]: h\n }\n ]);\n return /* @__PURE__ */ _(i, { className: o, ...r, children: t });\n};\nq.displayName = \"Heading\";\nexport {\n I as DisplayVariant,\n q as Heading,\n k as HeadingTag,\n T as TitleVariant\n};\n//# sourceMappingURL=heading.es.js.map\n","import { jsx as l } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function o() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var s = arguments[n];\n s && (t = i(t, u.call(this, s)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return o.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var s in t)\n e.call(t, s) && t[s] && (n = i(n, this && this[s] || s));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (o.default = o, r.exports = o) : window.classNames = o;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, g = d.bind(v), a = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ content: r = \"\", title: e } = {}) => {\n const o = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(o)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: o\n }), s = g(u, a, `${a}--${i}`);\n return /* @__PURE__ */ l(\n \"span\",\n {\n \"aria-label\": o,\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n y as I\n};\n//# sourceMappingURL=icon-CbdbqC3C.mjs.map\n","import { jsx as r } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-CbdbqC3C.mjs\";\nconst t = {\n name: \"arrow-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.1 12a.9.9 0 0 1 .264-.636l5.5-5.5a.9.9 0 0 1 1.272 1.272L6.173 11.1H20a.9.9 0 0 1 0 1.8H6.173l3.963 3.964a.9.9 0 1 1-1.272 1.272l-5.5-5.5A.9.9 0 0 1 3.1 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"arrow-left\"],\n category: \"utility\"\n}, l = (o) => /* @__PURE__ */ r(e, { ...o, svg: t });\nl.displayName = \"IconArrowLeft\";\nexport {\n l as IconArrowLeft\n};\n//# sourceMappingURL=arrow-left.es.js.map\n","import { jsx as l } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-CbdbqC3C.mjs\";\nconst s = {\n name: \"close\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M4.864 4.864a.9.9 0 0 1 1.273 0L12 10.727l5.864-5.863a.9.9 0 0 1 1.272 1.272L13.273 12l5.863 5.864a.9.9 0 1 1-1.272 1.272L12 13.273l-5.863 5.863a.9.9 0 0 1-1.273-1.272L10.727 12 4.864 6.136a.9.9 0 0 1 0-1.272Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"close\"],\n category: \"utility\"\n}, r = (o) => /* @__PURE__ */ l(e, { ...o, svg: s });\nr.displayName = \"IconClose\";\nexport {\n r as IconClose\n};\n//# sourceMappingURL=close.es.js.map\n","import { jsx as c, Fragment as y } from \"react/jsx-runtime\";\nimport * as l from \"react\";\nimport \"react-dom\";\nfunction u(e, r) {\n if (typeof e == \"function\")\n return e(r);\n e != null && (e.current = r);\n}\nfunction h(...e) {\n return (r) => {\n let n = !1;\n const t = e.map((i) => {\n const o = u(i, r);\n return !n && typeof o == \"function\" && (n = !0), o;\n });\n if (n)\n return () => {\n for (let i = 0; i < t.length; i++) {\n const o = t[i];\n typeof o == \"function\" ? o() : u(e[i], null);\n }\n };\n };\n}\nvar d = l.forwardRef((e, r) => {\n const { children: n, ...t } = e, i = l.Children.toArray(n), o = i.find(v);\n if (o) {\n const s = o.props.children, a = i.map((p) => p === o ? l.Children.count(s) > 1 ? l.Children.only(null) : l.isValidElement(s) ? s.props.children : null : p);\n return /* @__PURE__ */ c(f, { ...t, ref: r, children: l.isValidElement(s) ? l.cloneElement(s, void 0, a) : null });\n }\n return /* @__PURE__ */ c(f, { ...t, ref: r, children: n });\n});\nd.displayName = \"Slot\";\nvar f = l.forwardRef((e, r) => {\n const { children: n, ...t } = e;\n if (l.isValidElement(n)) {\n const i = R(n), o = w(t, n.props);\n return n.type !== l.Fragment && (o.ref = r ? h(r, i) : i), l.cloneElement(n, o);\n }\n return l.Children.count(n) > 1 ? l.Children.only(null) : null;\n});\nf.displayName = \"SlotClone\";\nvar g = ({ children: e }) => /* @__PURE__ */ c(y, { children: e });\nfunction v(e) {\n return l.isValidElement(e) && e.type === g;\n}\nfunction w(e, r) {\n const n = { ...r };\n for (const t in r) {\n const i = e[t], o = r[t];\n /^on[A-Z]/.test(t) ? i && o ? n[t] = (...a) => {\n o(...a), i(...a);\n } : i && (n[t] = i) : t === \"style\" ? n[t] = { ...i, ...o } : t === \"className\" && (n[t] = [i, o].filter(Boolean).join(\" \"));\n }\n return { ...e, ...n };\n}\nfunction R(e) {\n var t, i;\n let r = (t = Object.getOwnPropertyDescriptor(e.props, \"ref\")) == null ? void 0 : t.get, n = r && \"isReactWarning\" in r && r.isReactWarning;\n return n ? e.ref : (r = (i = Object.getOwnPropertyDescriptor(e, \"ref\")) == null ? void 0 : i.get, n = r && \"isReactWarning\" in r && r.isReactWarning, n ? e.props.ref : e.props.ref || e.ref);\n}\nvar C = [\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], b = C.reduce((e, r) => {\n const n = l.forwardRef((t, i) => {\n const { asChild: o, ...s } = t, a = o ? d : r;\n return typeof window < \"u\" && (window[Symbol.for(\"radix-ui\")] = !0), /* @__PURE__ */ c(a, { ...s, ref: i });\n });\n return n.displayName = `Primitive.${r}`, { ...e, [r]: n };\n}, {}), E = \"VisuallyHidden\", m = l.forwardRef(\n (e, r) => /* @__PURE__ */ c(\n b.span,\n {\n ...e,\n ref: r,\n style: {\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...e.style\n }\n }\n )\n);\nm.displayName = E;\nvar N = m;\nconst P = ({\n asChild: e,\n children: r,\n className: n = \"\",\n [\"data-testid\"]: t\n}) => /* @__PURE__ */ c(N, { asChild: e, \"data-testid\": t, className: n, children: r });\nexport {\n P as VisuallyHidden\n};\n//# sourceMappingURL=visually-hidden.es.js.map\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport { Button, BUTTON_VARIANT } from \"@purpurds/button\";\nimport { Heading, TitleVariant } from \"@purpurds/heading\";\nimport { IconArrowLeft } from \"@purpurds/icon/arrow-left\";\nimport { IconClose } from \"@purpurds/icon/close\";\nimport { VisuallyHidden } from \"@purpurds/visually-hidden\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-header.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerHeaderProps = {\n [\"data-testid\"]?: string;\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n className?: string;\n closeButtonText: string;\n headerContent?: React.ReactNode;\n onBackButtonClick?: () => void;\n title: string;\n};\n\nconst rootClassName = \"purpur-drawer-header\";\n\nexport const DrawerHeader = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-header\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n className,\n closeButtonText,\n headerContent,\n onBackButtonClick,\n title,\n ...props\n }: DrawerHeaderProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([className, rootClassName]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx([\n `${rootClassName}__row`,\n {\n [`${rootClassName}__row--with-back-button`]:\n backButton && backButtonText && onBackButtonClick,\n },\n ])}\n data-testid={`${dataTestId}-row`}\n >\n <div className={cx(`${rootClassName}__left`)}>\n {backButton && backButtonText && onBackButtonClick ? (\n <Button\n aria-label={backButtonOnlyIcon ? backButtonText : \"\"}\n className={cx([\n `${rootClassName}__back-button`,\n {\n [`${rootClassName}__back-button--only-icon`]: backButtonOnlyIcon,\n },\n ])}\n data-testid={`${dataTestId}-back-button`}\n iconOnly={backButtonOnlyIcon}\n onClick={onBackButtonClick}\n size=\"sm\"\n variant={backButtonOnlyIcon ? BUTTON_VARIANT.TERTIARY_PURPLE : BUTTON_VARIANT.TEXT}\n >\n <IconArrowLeft size=\"sm\" />\n {!backButtonOnlyIcon && backButtonText}\n </Button>\n ) : headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title asChild>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n data-testid={`${dataTestId}-title`}\n tag=\"h2\"\n variant={TitleVariant.TITLE200}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n )}\n </div>\n\n <div className={cx(`${rootClassName}__right`)}>\n <RadixDialog.Close asChild>\n <Button\n aria-label={closeButtonText}\n className={cx(`${rootClassName}__close-button`)}\n iconOnly\n size=\"sm\"\n variant={BUTTON_VARIANT.TERTIARY_PURPLE}\n >\n <IconClose size=\"sm\" />\n </Button>\n </RadixDialog.Close>\n </div>\n </div>\n {backButton &&\n backButtonText &&\n onBackButtonClick &&\n (headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title asChild>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n data-testid={`${dataTestId}-title-with-back-button`}\n tag=\"h2\"\n variant={TitleVariant.TITLE200}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n ))}\n </div>\n );\n }\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/scroll-area/src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// packages/react/scroll-area/src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/scroll-area/src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport * as RadixScrollArea from \"@radix-ui/react-scroll-area\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-scroll-area.module.scss\";\nconst cx = c.bind(styles);\n\nexport type DrawerScrollAreaProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n fitToContent?: boolean;\n};\n\nconst rootClassName = \"purpur-drawer-scroll-area\";\n\nexport const DrawerScrollArea = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-scroll-area\",\n children,\n className,\n fitToContent = false,\n ...props\n }: DrawerScrollAreaProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([className, rootClassName]);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <RadixScrollArea.Root\n className={cx(`${rootClassName}__root`, {\n [`${rootClassName}__root--fit-to-content`]: fitToContent,\n })}\n >\n <RadixScrollArea.Viewport className={cx(`${rootClassName}__viewport`)}>\n {children}\n </RadixScrollArea.Viewport>\n <RadixScrollArea.Scrollbar\n className={cx(`${rootClassName}__scrollbar`)}\n orientation=\"vertical\"\n >\n <RadixScrollArea.Thumb className={cx(`${rootClassName}__thumb`)} />\n </RadixScrollArea.Scrollbar>\n </RadixScrollArea.Root>\n </div>\n );\n }\n);\n\nDrawerScrollArea.displayName = \"DrawerScrollArea\";\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContainer } from \"./drawer-container\";\nimport styles from \"./drawer-frame.module.scss\";\nimport { DrawerHandle } from \"./drawer-handle\";\nimport { DrawerHeader } from \"./drawer-header\";\nimport { DrawerScrollArea } from \"./drawer-scroll-area\";\nimport { SwipeEvent } from \"./types\";\nconst cx = c.bind(styles);\n\nexport type DrawerFrameProps = {\n [\"data-testid\"]?: string;\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n children: ReactNode;\n className?: string;\n closeButtonText: string;\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n onAnimationEnd: (event: React.AnimationEvent<HTMLDivElement>) => void;\n onBackButtonClick?: () => void;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n stickyFooter: boolean;\n title: string;\n};\n\nconst rootClassName = \"purpur-drawer-frame\";\n\nexport const DrawerFrame = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-frame\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n children,\n className,\n closeButtonText,\n fitToContent = false,\n footerContent,\n headerContent,\n onAnimationEnd,\n onBackButtonClick,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n title,\n stickyFooter,\n ...props\n }: DrawerFrameProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([\n className,\n rootClassName,\n {\n [`${rootClassName}--fit-to-content`]: fitToContent,\n [`${rootClassName}--sticky-footer`]: stickyFooter,\n },\n ]);\n\n return (\n <div\n className={classes}\n data-testid={dataTestId}\n ref={ref}\n onAnimationEnd={onAnimationEnd}\n {...props}\n >\n <DrawerHandle\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n />\n <DrawerContainer\n className={cx(`${rootClassName}__header`)}\n variant=\"header\"\n stickyFooter={stickyFooter}\n >\n <DrawerHeader\n title={title}\n headerContent={headerContent}\n backButtonOnlyIcon={backButtonOnlyIcon}\n backButton={backButton}\n backButtonText={backButtonText}\n closeButtonText={closeButtonText}\n onBackButtonClick={onBackButtonClick}\n />\n </DrawerContainer>\n {stickyFooter ? (\n <>\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-sticky-footer-scroll-area`}\n fitToContent={fitToContent}\n >\n <DrawerContainer stickyFooter>{children}</DrawerContainer>\n </DrawerScrollArea>\n {footerContent && (\n <DrawerContainer\n className={cx(`${rootClassName}__footer`)}\n data-testid={`${dataTestId}-sticky-footer`}\n variant=\"footer\"\n stickyFooter={stickyFooter}\n >\n {footerContent}\n </DrawerContainer>\n )}\n </>\n ) : (\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-scroll-area`}\n fitToContent={fitToContent}\n >\n <div\n className={cx([\n `${rootClassName}__content-container`,\n { [`${rootClassName}__content-container--no-footer`]: !footerContent },\n ])}\n >\n <DrawerContainer stickyFooter={stickyFooter}>{children}</DrawerContainer>\n {footerContent && (\n <DrawerContainer\n data-testid={`${dataTestId}-footer`}\n stickyFooter={stickyFooter}\n variant=\"footer\"\n >\n {footerContent}\n </DrawerContainer>\n )}\n </div>\n </DrawerScrollArea>\n )}\n </div>\n );\n }\n);\n\nDrawerFrame.displayName = \"DrawerFrame\";\n","import React from \"react\";\n\nimport { SwipeEvent } from \"./types\";\n\ntype UseSwipeToDismiss = {\n onAnimationEnd(event: React.AnimationEvent<HTMLDivElement>): void;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n};\n\nexport const useSwipeToDismiss = <T extends HTMLElement>(\n containerRef: React.MutableRefObject<T | null>,\n handleOpenChange: (open: boolean) => void\n): UseSwipeToDismiss => {\n const onSwipeStart = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"start\");\n };\n const onSwipeMove = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"move\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-move-y\", `${y}px`);\n };\n const onSwipeCancel = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"cancel\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-end-y\");\n };\n const onSwipeEnd = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"end\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-end-y\", `${y}px`);\n };\n const onAnimationEnd = (event: React.AnimationEvent<HTMLDivElement>) => {\n if (event.currentTarget.getAttribute(\"data-swipe\") === \"end\") {\n handleOpenChange(false);\n }\n };\n return {\n onAnimationEnd,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n };\n};\n","import React, { ForwardedRef, forwardRef, ReactNode, useContext, useRef } from \"react\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport styles from \"./drawer-content.module.scss\";\nimport { DrawerFrame } from \"./drawer-frame\";\nimport { OpenHandlerFunction } from \"./types\";\nimport { useSwipeToDismiss } from \"./use-swipe-to-dismiss.hook\";\nconst cx = c.bind(styles);\n\nexport type WithBackButton = {\n backButton: boolean;\n backButtonText: string;\n backButtonOnlyIcon?: boolean;\n onBackButtonClick: () => void;\n};\n\nexport type WithoutBackButton = {\n backButton?: never;\n backButtonText?: never;\n backButtonOnlyIcon?: never;\n onBackButtonClick?: never;\n};\n\nexport type DrawerContentProps = {\n [\"data-testid\"]?: string;\n bodyText?: string;\n children: ReactNode;\n className?: string;\n closeButtonText: string;\n disableCloseOnClickOutside?: boolean;\n /**\n * If true, the drawer height will fit to its content on small screens.\n */\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n stickyFooter?: boolean;\n title: string;\n zIndex?: number;\n} & (WithoutBackButton | WithBackButton);\n\nconst rootClassName = \"purpur-drawer-content\";\n\nexport const DrawerContent = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-content\",\n backButton = false,\n backButtonText,\n backButtonOnlyIcon = false,\n bodyText,\n children,\n className,\n closeButtonText,\n disableCloseOnClickOutside = false,\n fitToContent = false,\n footerContent,\n headerContent,\n onBackButtonClick,\n stickyFooter = false,\n title,\n zIndex,\n ...props\n }: DrawerContentProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([\n className,\n rootClassName,\n { [`${rootClassName}--fit-to-content`]: fitToContent },\n ]);\n\n const drawerFrameRef = useRef<HTMLDivElement>(null);\n const onOpenChange = useContext(DrawerContext);\n const { onAnimationEnd, onSwipeStart, onSwipeMove, onSwipeCancel, onSwipeEnd } =\n useSwipeToDismiss(drawerFrameRef, onOpenChange as OpenHandlerFunction);\n\n const handlePointerDownOutside = (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n if (disableCloseOnClickOutside) {\n event.preventDefault();\n }\n };\n\n return (\n <RadixDialog.Portal>\n <RadixDialog.Overlay\n className={cx(\"purpur-drawer-overlay\")}\n style={zIndex ? { zIndex } : undefined}\n data-testid={`${dataTestId}-overlay`}\n >\n <RadixDialog.Content\n onPointerDownOutside={handlePointerDownOutside}\n className={classes}\n data-testid={dataTestId}\n ref={ref}\n aria-describedby={undefined}\n {...props}\n >\n <DrawerFrame\n backButton={backButton}\n backButtonText={backButtonText}\n backButtonOnlyIcon={backButtonOnlyIcon}\n closeButtonText={closeButtonText}\n className={cx(`${rootClassName}__drawer-frame`)}\n fitToContent={fitToContent}\n footerContent={footerContent}\n headerContent={headerContent}\n ref={drawerFrameRef}\n onAnimationEnd={onAnimationEnd}\n onBackButtonClick={onBackButtonClick}\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n stickyFooter={stickyFooter}\n title={title}\n >\n {bodyText ? (\n <div className={cx(`${rootClassName}__content-container`)}>\n <RadixDialog.Description\n className={cx(`${rootClassName}__description`)}\n data-testid={`${dataTestId}-description`}\n >\n {bodyText}\n </RadixDialog.Description>\n <div>{children}</div>\n </div>\n ) : (\n children\n )}\n </DrawerFrame>\n </RadixDialog.Content>\n </RadixDialog.Overlay>\n </RadixDialog.Portal>\n );\n }\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\n\nexport type DrawerTriggerProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n};\n\nexport const DrawerTrigger = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-trigger\",\n children,\n className,\n ...props\n }: DrawerTriggerProps,\n ref: ForwardedRef<HTMLButtonElement>\n ) => {\n return (\n <RadixDialog.Trigger\n asChild\n className={className}\n data-testid={dataTestId}\n ref={ref}\n {...props}\n >\n {children}\n </RadixDialog.Trigger>\n );\n }\n);\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n","import React, { ReactNode, useEffect } from \"react\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport styles from \"./drawer.module.scss\";\nimport { DrawerContent } from \"./drawer-content\";\nimport { DrawerTrigger } from \"./drawer-trigger\";\nconst cx = c.bind(styles);\n\nexport type DrawerProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n onOpenChange?: (open: boolean) => void;\n open: boolean;\n};\n\nconst rootClassName = \"purpur-drawer\";\n\nexport type DrawerComponent<P> = React.FunctionComponent<P> & {\n Trigger: typeof DrawerTrigger;\n Content: typeof DrawerContent;\n};\n\nexport const Drawer: DrawerComponent<DrawerProps> = ({\n [\"data-testid\"]: dataTestId = \"purpur-drawer\",\n children,\n className,\n onOpenChange,\n open = false,\n ...props\n}: DrawerProps) => {\n const [_open, _setOpen] = React.useState(open);\n const classes = cx([className, rootClassName]);\n\n const handleOpenChange = (newOpen: boolean) => {\n _setOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n useEffect(() => {\n _setOpen(open);\n }, [open]);\n\n return (\n <DrawerContext.Provider value={handleOpenChange}>\n <div className={classes} data-testid={dataTestId} {...props}>\n <RadixDialog.Root open={_open} onOpenChange={handleOpenChange}>\n {children}\n </RadixDialog.Root>\n </div>\n </DrawerContext.Provider>\n );\n};\n\nDrawer.Trigger = DrawerTrigger;\nDrawer.Content = DrawerContent;\nDrawer.displayName = \"Drawer\";\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","i","useComposedRefs","React","createContext2","rootComponentName","defaultContext","Context","Provider","props","children","context","jsx","useContext2","consumerName","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","index","scope","_a","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","useCallbackRef","callback","callbackRef","args","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","element","getter","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","target","ReactDOM","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","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","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FOCUS_SCOPE_NAME","FocusScope","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","container","setContainer","onMountAutoFocus","onUnmountAutoFocus","lastFocusedElementRef","focusScope","handleFocusIn2","focus","handleFocusOut2","relatedTarget","handleMutations2","mutations","mutation","mutationObserver","focusScopesStack","previouslyFocusedElement","mountEvent","focusFirst","removeLinks","getTabbableCandidates","unmountEvent","isTabKey","focusedElement","container2","first","last","getTabbableEdges","candidates","select","candidate","findVisible","nodes","walker","isHiddenInput","elements","isHidden","upTo","isSelectableInput","createFocusScopesStack","stack","activeFocusScope","arrayRemove","array","item","updatedArray","items","PORTAL_NAME","Portal","containerProp","portalProps","mounted","setMounted","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","useFocusGuards","edgeGuards","createFocusGuard","__assign","t","s","n","p","__rest","e","__spreadArray","to","from","pack","l","ar","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","initialValue","useState","useIsomorphicLayoutEffect","currentValues","useMergeRefs","defaultValue","newValue","oldValue","prevRefs_1","nextRefs_1","current_1","ItoI","a","innerCreateMedium","defaults","middleware","buffer","assigned","medium","data","x","cb","cbs","pendingQueue","executeQueue","cycle","filter","createSidecarMedium","options","SideCar","sideCar","rest","Target","exportSidecar","exported","effectCar","nothing","RemoveScroll","parentRef","callbacks","setCallbacks","forwardProps","className","removeScrollBar","enabled","shards","noIsolation","inert","allowPinchZoom","Container","gapMode","containerRef","containerProps","getNonce","makeStyleTag","tag","nonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","style","styleHookSingleton","sheet","isDynamic","styleSingleton","useStyle","Sheet","dynamic","zeroGap","parse","getOffset","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth","Style","lockAttribute","getStyles","allowRelative","important","gap","getCurrentUseCounter","useLockAttribute","newCounter","RemoveScrollBar","noRelative","noImportant","passiveSupported","nonPassive","alwaysContainsScroll","elementCanBeScrolled","overflow","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","axis","current","isScrollable","elementCouldBeScrolled","getScrollVariables","scrollHeight","clientHeight","getVScrollVariables","scrollTop","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","direction","handleScroll","endTarget","sourceDelta","noOverscroll","directionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","position","scroll_1","capacity","elementScroll","getTouchXY","getDeltaXY","extractRef","deltaCompare","y","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","el","shouldCancelEvent","parent","touch","touchStart","deltaX","deltaY","currentAxis","moveDirection","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","shardNodes","shouldStop","shouldCancel","should","getOutermostShadowParent","scrollTouchStart","scrollWheel","scrollTouchMove","inst","shadowParent","ReactRemoveScroll","getDefaultParent","originalTarget","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","applyAttributeToOthers","parentNode","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","DIALOG_NAME","createDialogContext","createDialogScope","DialogProvider","useDialogContext","Dialog","__scopeDialog","openProp","defaultOpen","onOpenChange","modal","triggerRef","contentRef","open","setOpen","prevOpen","TRIGGER_NAME","DialogTrigger","triggerProps","composedTriggerRef","getState","PortalProvider","usePortalContext","DialogPortal","forceMount","PortalPrimitive","OVERLAY_NAME","DialogOverlay","portalContext","overlayProps","DialogOverlayImpl","CONTENT_NAME","DialogContent","contentProps","DialogContentModal","DialogContentNonModal","content","DialogContentImpl","originalEvent","ctrlLeftClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","trapFocus","onOpenAutoFocus","onCloseAutoFocus","jsxs","Fragment","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","DESCRIPTION_NAME","DialogDescription","descriptionProps","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","createContext","titleId","titleWarningContext","MESSAGE","DESCRIPTION_WARNING_NAME","descriptionId","describedById","Root","Trigger","Overlay","Content","Title","Description","Close","hasOwn","classNames","classes","arg","appendClass","parseValue","key","newClass","module","DrawerContext","cx","c","rootClassName","DrawerContainer","forwardRef","dataTestId","variant","stickyFooter","useSwipeTracking","pointerStartRef","swipeDeltaRef","onSwipeStart","onSwipeMove","onSwipeCancel","onSwipeEnd","hasSwipeMoveStarted","clampedY","moveStartBuffer","isDeltaInDirection","swipeHandle","threshold","DrawerHandle","onPointerDown","onPointerMove","onPointerUp","O","T","u","m","w","R","o","r","A","g","B","P","_","C","I","M","d","h","V","D","U","Y","L","G","X","b","f","q","j","S","$","z","F","E","v","N","DrawerHeader","backButton","backButtonText","backButtonOnlyIcon","closeButtonText","headerContent","onBackButtonClick","title","Button","BUTTON_VARIANT","IconArrowLeft","VisuallyHidden","RadixDialog.Title","Heading","TitleVariant","RadixDialog.Close","IconClose","DirectionContext","useDirection","localDir","globalDir","clamp","min","max","SCROLL_AREA_NAME","createScrollAreaContext","createScrollAreaScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","VIEWPORT_NAME","ScrollAreaViewport","viewportProps","SCROLLBAR_NAME","ScrollAreaScrollbar","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","debounceScrollEnd","useDebounceCallback","scrollDirection","prevScrollPos","scrollPos","handleResize","isOverflowX","isOverflowY","useResizeObserver","orientation","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","commonProps","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","offset","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","handleThumbPositionChange","handleDragScroll","handleWheel","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","width2","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","input","output","prevPosition","rAF","isHorizontalScroll","isVerticalScroll","delay","handleCallback","debounceTimerRef","resizeObserver","Viewport","Scrollbar","Thumb","DrawerScrollArea","fitToContent","RadixScrollArea.Root","RadixScrollArea.Viewport","RadixScrollArea.Scrollbar","RadixScrollArea.Thumb","DrawerFrame","footerContent","onAnimationEnd","useSwipeToDismiss","handleOpenChange","DrawerContent","bodyText","disableCloseOnClickOutside","zIndex","drawerFrameRef","useRef","useContext","RadixDialog.Portal","RadixDialog.Overlay","RadixDialog.Content","RadixDialog.Description","DrawerTrigger","RadixDialog.Trigger","Drawer","_open","_setOpen","newOpen","useEffect","RadixDialog.Root"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,49,50,51]}
|
|
1
|
+
{"version":3,"file":"drawer.es.js","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.5_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-portal@1.1.4_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-portal/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-focus-guards@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../../../common/temp/node_modules/.pnpm/tslib@2.7.0/node_modules/tslib/tslib.es6.mjs","../../../common/temp/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../../common/temp/node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.0.10_react@19.0.0/node_modules/use-callback-ref/dist/es2015/assignRef.js","../../../common/temp/node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.0.10_react@19.0.0/node_modules/use-callback-ref/dist/es2015/useRef.js","../../../common/temp/node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.0.10_react@19.0.0/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../../common/temp/node_modules/.pnpm/use-sidecar@1.1.3_@types+react@19.0.10_react@19.0.0/node_modules/use-sidecar/dist/es2015/medium.js","../../../common/temp/node_modules/.pnpm/use-sidecar@1.1.3_@types+react@19.0.10_react@19.0.0/node_modules/use-sidecar/dist/es2015/exports.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/medium.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/UI.js","../../../common/temp/node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js","../../../common/temp/node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.0.10_react@19.0.0/node_modules/react-style-singleton/dist/es2015/singleton.js","../../../common/temp/node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.0.10_react@19.0.0/node_modules/react-style-singleton/dist/es2015/hook.js","../../../common/temp/node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.0.10_react@19.0.0/node_modules/react-style-singleton/dist/es2015/component.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../../common/temp/node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@19.0.10_react@19.0.0/node_modules/react-remove-scroll/dist/es2015/Combination.js","../../../common/temp/node_modules/.pnpm/aria-hidden@1.2.4/node_modules/aria-hidden/dist/es2015/index.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-dialog@1.1.6_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-dialog/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/drawer.context.ts","../src/drawer-container.tsx","../src/use-swipe-tracking.hook.ts","../src/drawer-handle.tsx","../../button/dist/button.es.js","../../heading/dist/heading.es.js","../../icon/dist/icon-CbdbqC3C.mjs","../../icon/dist/components/arrow-left.es.js","../../icon/dist/components/close.es.js","../../visually-hidden/dist/visually-hidden.es.js","../src/drawer-header.tsx","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+number@1.1.0/node_modules/@radix-ui/number/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../src/drawer-scroll-area.tsx","../src/drawer-frame.tsx","../src/use-swipe-to-dismiss.hook.ts","../src/drawer-content.tsx","../src/drawer-trigger.tsx","../src/drawer.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 return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\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/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\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","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\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/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, 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 const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { 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-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/dismissable-layer.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","\"use client\";\n\n// packages/react/focus-scope/src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\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","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\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}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-guards/src/FocusGuards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\nexport {\n FocusGuards,\n Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(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}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","\"use client\";\n\n// packages/react/dialog/src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { createContext } from \"react\";\n\nimport { OpenHandlerFunction } from \"./types\";\n\nexport const DrawerContext = createContext<OpenHandlerFunction | null>(null);\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-container.module.scss\";\nconst cx = c.bind(styles);\n\nexport type DrawerContainerProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n stickyFooter: boolean;\n variant?: \"header\" | \"body\" | \"footer\";\n};\n\nconst rootClassName = \"purpur-drawer-container\";\n\nexport const DrawerContainer = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-container\",\n children,\n className,\n variant = \"body\",\n stickyFooter,\n ...props\n }: DrawerContainerProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([\n className,\n rootClassName,\n {\n [`${rootClassName}--${variant}`]: variant,\n },\n {\n [`${rootClassName}--sticky`]: stickyFooter,\n },\n ]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {children}\n </div>\n );\n }\n);\n\nDrawerContainer.displayName = \"DrawerContainer\";\n","import React from \"react\";\n\nimport { SwipeEvent } from \"./types\";\n\ntype UseSwipeTracking = {\n onPointerDown(event: React.PointerEvent): void;\n onPointerMove(event: React.PointerEvent): void;\n onPointerUp(event: React.PointerEvent): void;\n};\n\nexport const useSwipeTracking = (\n pointerStartRef: React.MutableRefObject<{ y: number } | null>,\n swipeDeltaRef: React.MutableRefObject<{ y: number } | null>,\n onSwipeStart: () => void,\n onSwipeMove: (event: SwipeEvent) => void,\n onSwipeCancel: () => void,\n onSwipeEnd: (event: SwipeEvent) => void\n): UseSwipeTracking => {\n const onPointerDown = (event: React.PointerEvent) => {\n pointerStartRef.current = { y: event.clientY };\n };\n const onPointerMove = (event: React.PointerEvent) => {\n if (!pointerStartRef.current) {\n return;\n }\n const y = event.clientY - pointerStartRef.current.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n const clampedY = Math.max(0, y);\n const moveStartBuffer = event.pointerType === \"touch\" ? 10 : 2;\n const delta = { y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.current = delta;\n onSwipeMove(eventDetail);\n } else if (isDeltaInDirection(delta, 0)) {\n swipeDeltaRef.current = delta;\n onSwipeStart();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n } else if (Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef.current = null;\n }\n };\n const onPointerUp = (event: React.PointerEvent) => {\n const delta = swipeDeltaRef.current;\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef.current = null;\n pointerStartRef.current = null;\n if (delta) {\n const swipeHandle = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (isDeltaInDirection(delta, 0) && delta.y > 200) {\n onSwipeEnd(eventDetail);\n } else {\n onSwipeCancel();\n }\n // Prevent click event from triggering on items within the drawer when\n // pointer up is part of a swipe gesture\n swipeHandle.addEventListener(\"click\", (event) => event.preventDefault(), {\n once: true,\n });\n }\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n };\n};\n\nconst isDeltaInDirection = (delta: { y: number }, threshold = 0) => {\n const deltaY = Math.abs(delta.y);\n return deltaY > threshold;\n};\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-handle.module.scss\";\nimport { SwipeEvent } from \"./types\";\nimport { useSwipeTracking } from \"./use-swipe-tracking.hook\";\nconst cx = c.bind(styles);\n\nexport type DrawerHandleProps = {\n [\"data-testid\"]?: string;\n className?: string;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n};\n\nconst rootClassName = \"purpur-drawer-handle\";\n\nexport const DrawerHandle = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-handle\",\n className,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n ...props\n }: DrawerHandleProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([className, rootClassName]);\n const pointerStartRef = React.useRef<{ y: number } | null>(null);\n const swipeDeltaRef = React.useRef<{ y: number } | null>(null);\n const { onPointerDown, onPointerMove, onPointerUp } = useSwipeTracking(\n swipeDeltaRef,\n pointerStartRef,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd\n );\n\n return (\n <div\n className={classes}\n data-testid={dataTestId}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nDrawerHandle.displayName = \"DrawerHandle\";\n","import { jsx as c, jsxs as z } from \"react/jsx-runtime\";\nimport { forwardRef as E } from \"react\";\nconst N = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\"\n}, O = {\n LG: \"lg\"\n};\nfunction T(u) {\n return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, \"default\") ? u.default : u;\n}\nvar m = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar w;\nfunction R() {\n return w || (w = 1, function(u) {\n (function() {\n var o = {}.hasOwnProperty;\n function n() {\n for (var t = \"\", r = 0; r < arguments.length; r++) {\n var e = arguments[r];\n e && (t = s(t, p(e)));\n }\n return t;\n }\n function p(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return n.apply(null, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var r = \"\";\n for (var e in t)\n o.call(t, e) && t[e] && (r = s(r, e));\n return r;\n }\n function s(t, r) {\n return r ? t ? t + \" \" + r : t + r : t;\n }\n u.exports ? (n.default = n, u.exports = n) : window.classNames = n;\n })();\n }(m)), m.exports;\n}\nvar A = R();\nconst g = /* @__PURE__ */ T(A), B = \"_rotate_1xozj_1\", P = \"_dash_1xozj_1\", _ = {\n \"purpur-spinner\": \"_purpur-spinner_1xozj_1\",\n rotate: B,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_1xozj_4\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_1xozj_8\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_1xozj_12\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_1xozj_16\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_1xozj_20\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_1xozj_24\",\n dash: P,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_1xozj_33\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_1xozj_36\"\n}, a = \"purpur-spinner\", C = {\n SM: \"sm\"\n}, I = ({\n [\"data-testid\"]: u,\n disabled: o = !1,\n negative: n = !1,\n size: p = C.SM,\n ...s\n}) => /* @__PURE__ */ c(\n \"div\",\n {\n className: g([_[a], _[`${a}--${p}`]]),\n \"data-testid\": u,\n ...s,\n children: /* @__PURE__ */ c(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ c(\n \"circle\",\n {\n className: g(_[`${a}__circle`], {\n [_[`${a}__circle--disabled`]]: o,\n [_[`${a}__circle--negative`]]: n\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nfunction M(u) {\n return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, \"default\") ? u.default : u;\n}\nvar d = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar h;\nfunction V() {\n return h || (h = 1, function(u) {\n (function() {\n var o = {}.hasOwnProperty;\n function n() {\n for (var t = \"\", r = 0; r < arguments.length; r++) {\n var e = arguments[r];\n e && (t = s(t, p.call(this, e)));\n }\n return t;\n }\n function p(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return n.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var r = \"\";\n for (var e in t)\n o.call(t, e) && t[e] && (r = s(r, this && this[e] || e));\n return r;\n }\n function s(t, r) {\n return r ? t ? t + \" \" + r : t + r : t;\n }\n u.exports ? (n.default = n, u.exports = n) : window.classNames = n;\n })();\n }(d)), d.exports;\n}\nvar D = V();\nconst U = /* @__PURE__ */ M(D), Y = {\n \"purpur-button\": \"_purpur-button_w455q_1\",\n \"purpur-button--xs\": \"_purpur-button--xs_w455q_33\",\n \"purpur-button--icon-only\": \"_purpur-button--icon-only_w455q_36\",\n \"purpur-button--sm\": \"_purpur-button--sm_w455q_39\",\n \"purpur-button--md\": \"_purpur-button--md_w455q_45\",\n \"purpur-button--lg\": \"_purpur-button--lg_w455q_51\",\n \"purpur-button--full-width\": \"_purpur-button--full-width_w455q_57\",\n \"purpur-button--primary\": \"_purpur-button--primary_w455q_60\",\n \"purpur-button--disabled\": \"_purpur-button--disabled_w455q_64\",\n \"purpur-button--primary-negative\": \"_purpur-button--primary-negative_w455q_70\",\n \"purpur-button--secondary\": \"_purpur-button--secondary_w455q_82\",\n \"purpur-button--secondary-negative\": \"_purpur-button--secondary-negative_w455q_93\",\n \"purpur-button--expressive\": \"_purpur-button--expressive_w455q_104\",\n \"purpur-button--expressive-negative\": \"_purpur-button--expressive-negative_w455q_114\",\n \"purpur-button--negative\": \"_purpur-button--negative_w455q_126\",\n \"purpur-button--destructive\": \"_purpur-button--destructive_w455q_133\",\n \"purpur-button--destructive-negative\": \"_purpur-button--destructive-negative_w455q_143\",\n \"purpur-button--tertiary-purple\": \"_purpur-button--tertiary-purple_w455q_153\",\n \"purpur-button--tertiary-purple-negative\": \"_purpur-button--tertiary-purple-negative_w455q_166\",\n \"purpur-button--text-negative\": \"_purpur-button--text-negative_w455q_181\",\n \"purpur-button--text\": \"_purpur-button--text_w455q_181\"\n}, L = {\n ...N,\n DESTRUCTIVE: \"destructive\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TEXT: \"text\"\n}, K = Object.values(L), G = U.bind(Y), i = \"purpur-button\", Q = [\"button\", \"submit\", \"reset\"], X = ({\n children: u,\n className: o,\n [\"data-testid\"]: n,\n disabled: p = !1,\n fullWidth: s = !1,\n iconOnly: t,\n loading: r = !1,\n negative: e = !1,\n onClick: b,\n size: f = \"md\",\n variant: l,\n type: q = \"button\",\n ...v\n}, j) => {\n if (t && l === \"destructive\")\n return null;\n const S = G(\n [\n i,\n `${i}--${e ? `${l}-negative` : l}`,\n `${i}--${f}`\n ],\n {\n [`${i}--icon-only`]: t,\n [`${i}--negative`]: e,\n [`${i}--full-width`]: s,\n [`${i}--disabled`]: p || r\n },\n o\n ), $ = (y) => {\n p || r ? y.preventDefault() : b && b(y);\n }, x = !!v[\"aria-disabled\"] || p || r;\n return /* @__PURE__ */ z(\n \"button\",\n {\n className: S,\n \"data-testid\": n,\n type: q,\n ref: j,\n \"aria-disabled\": x,\n onClick: $,\n ...v,\n children: [\n r && /* @__PURE__ */ c(I, { size: f === O.LG ? \"xs\" : \"xxs\", negative: e, disabled: x }),\n \" \",\n u\n ]\n }\n );\n}, F = E(X);\nF.displayName = \"Button\";\nexport {\n Q as BUTTON_TYPES,\n L as BUTTON_VARIANT,\n F as Button,\n K as buttonVariants\n};\n//# sourceMappingURL=button.es.js.map\n","import { jsx as _ } from \"react/jsx-runtime\";\nfunction f(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar l = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar d;\nfunction g() {\n return d || (d = 1, function(t) {\n (function() {\n var s = {}.hasOwnProperty;\n function n() {\n for (var e = \"\", r = 0; r < arguments.length; r++) {\n var i = arguments[r];\n i && (e = p(e, h(i)));\n }\n return e;\n }\n function h(e) {\n if (typeof e == \"string\" || typeof e == \"number\")\n return e;\n if (typeof e != \"object\")\n return \"\";\n if (Array.isArray(e))\n return n.apply(null, e);\n if (e.toString !== Object.prototype.toString && !e.toString.toString().includes(\"[native code]\"))\n return e.toString();\n var r = \"\";\n for (var i in e)\n s.call(e, i) && e[i] && (r = p(r, i));\n return r;\n }\n function p(e, r) {\n return r ? e ? e + \" \" + r : e + r : e;\n }\n t.exports ? (n.default = n, t.exports = n) : window.classNames = n;\n })();\n }(l)), l.exports;\n}\nvar c = g();\nconst y = /* @__PURE__ */ f(c), u = {\n \"purpur-heading\": \"_purpur-heading_k9fhq_1\",\n \"purpur-heading--hyphens\": \"_purpur-heading--hyphens_k9fhq_8\",\n \"purpur-heading--negative\": \"_purpur-heading--negative_k9fhq_11\",\n \"purpur-heading--subsection-100\": \"_purpur-heading--subsection-100_k9fhq_14\",\n \"purpur-heading--title-100\": \"_purpur-heading--title-100_k9fhq_20\",\n \"purpur-heading--title-200\": \"_purpur-heading--title-200_k9fhq_26\",\n \"purpur-heading--title-300\": \"_purpur-heading--title-300_k9fhq_32\",\n \"purpur-heading--title-400\": \"_purpur-heading--title-400_k9fhq_38\",\n \"purpur-heading--title-500\": \"_purpur-heading--title-500_k9fhq_44\",\n \"purpur-heading--title-600\": \"_purpur-heading--title-600_k9fhq_50\",\n \"purpur-heading--title-700\": \"_purpur-heading--title-700_k9fhq_56\",\n \"purpur-heading--display-25\": \"_purpur-heading--display-25_k9fhq_62\",\n \"purpur-heading--display-50\": \"_purpur-heading--display-50_k9fhq_68\",\n \"purpur-heading--display-100\": \"_purpur-heading--display-100_k9fhq_74\",\n \"purpur-heading--display-200\": \"_purpur-heading--display-200_k9fhq_80\"\n}, k = {\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\"\n}, T = {\n TITLE100: \"title-100\",\n TITLE200: \"title-200\",\n TITLE300: \"title-300\",\n TITLE400: \"title-400\",\n TITLE500: \"title-500\",\n TITLE600: \"title-600\",\n TITLE700: \"title-700\",\n SUBSECTION100: \"subsection-100\"\n}, I = {\n DISPLAY25: \"display-25\",\n DISPLAY50: \"display-50\",\n DISPLAY100: \"display-100\",\n DISPLAY200: \"display-200\"\n}, a = \"purpur-heading\", q = ({\n children: t,\n className: s = \"\",\n enableHyphenation: n = !1,\n negative: h = !1,\n tag: p,\n variant: e = T.TITLE100,\n ...r\n}) => {\n const i = p, o = y([\n s,\n u[a],\n u[`${a}--${e}`],\n {\n [u[`${a}--hyphens`]]: n,\n [u[`${a}--negative`]]: h\n }\n ]);\n return /* @__PURE__ */ _(i, { className: o, ...r, children: t });\n};\nq.displayName = \"Heading\";\nexport {\n I as DisplayVariant,\n q as Heading,\n k as HeadingTag,\n T as TitleVariant\n};\n//# sourceMappingURL=heading.es.js.map\n","import { jsx as l } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function o() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var s = arguments[n];\n s && (t = i(t, u.call(this, s)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return o.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var s in t)\n e.call(t, s) && t[s] && (n = i(n, this && this[s] || s));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (o.default = o, r.exports = o) : window.classNames = o;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, g = d.bind(v), a = \"purpur-icon\", x = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), b = ({ content: r = \"\", title: e } = {}) => {\n const o = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(o)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: o,\n className: u,\n size: i = x,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: o\n }), s = g(u, a, `${a}--${i}`);\n return /* @__PURE__ */ l(\n \"span\",\n {\n \"aria-label\": o,\n className: s,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n y as I\n};\n//# sourceMappingURL=icon-CbdbqC3C.mjs.map\n","import { jsx as r } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-CbdbqC3C.mjs\";\nconst t = {\n name: \"arrow-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.1 12a.9.9 0 0 1 .264-.636l5.5-5.5a.9.9 0 0 1 1.272 1.272L6.173 11.1H20a.9.9 0 0 1 0 1.8H6.173l3.963 3.964a.9.9 0 1 1-1.272 1.272l-5.5-5.5A.9.9 0 0 1 3.1 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"arrow-left\"],\n category: \"utility\"\n}, l = (o) => /* @__PURE__ */ r(e, { ...o, svg: t });\nl.displayName = \"IconArrowLeft\";\nexport {\n l as IconArrowLeft\n};\n//# sourceMappingURL=arrow-left.es.js.map\n","import { jsx as l } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-CbdbqC3C.mjs\";\nconst s = {\n name: \"close\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M4.864 4.864a.9.9 0 0 1 1.273 0L12 10.727l5.864-5.863a.9.9 0 0 1 1.272 1.272L13.273 12l5.863 5.864a.9.9 0 1 1-1.272 1.272L12 13.273l-5.863 5.863a.9.9 0 0 1-1.273-1.272L10.727 12 4.864 6.136a.9.9 0 0 1 0-1.272Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"close\"],\n category: \"utility\"\n}, r = (o) => /* @__PURE__ */ l(e, { ...o, svg: s });\nr.displayName = \"IconClose\";\nexport {\n r as IconClose\n};\n//# sourceMappingURL=close.es.js.map\n","import { jsx as c, Fragment as y } from \"react/jsx-runtime\";\nimport * as l from \"react\";\nimport \"react-dom\";\nfunction u(e, r) {\n if (typeof e == \"function\")\n return e(r);\n e != null && (e.current = r);\n}\nfunction h(...e) {\n return (r) => {\n let n = !1;\n const t = e.map((i) => {\n const o = u(i, r);\n return !n && typeof o == \"function\" && (n = !0), o;\n });\n if (n)\n return () => {\n for (let i = 0; i < t.length; i++) {\n const o = t[i];\n typeof o == \"function\" ? o() : u(e[i], null);\n }\n };\n };\n}\nvar d = l.forwardRef((e, r) => {\n const { children: n, ...t } = e, i = l.Children.toArray(n), o = i.find(v);\n if (o) {\n const s = o.props.children, a = i.map((p) => p === o ? l.Children.count(s) > 1 ? l.Children.only(null) : l.isValidElement(s) ? s.props.children : null : p);\n return /* @__PURE__ */ c(f, { ...t, ref: r, children: l.isValidElement(s) ? l.cloneElement(s, void 0, a) : null });\n }\n return /* @__PURE__ */ c(f, { ...t, ref: r, children: n });\n});\nd.displayName = \"Slot\";\nvar f = l.forwardRef((e, r) => {\n const { children: n, ...t } = e;\n if (l.isValidElement(n)) {\n const i = R(n), o = w(t, n.props);\n return n.type !== l.Fragment && (o.ref = r ? h(r, i) : i), l.cloneElement(n, o);\n }\n return l.Children.count(n) > 1 ? l.Children.only(null) : null;\n});\nf.displayName = \"SlotClone\";\nvar g = ({ children: e }) => /* @__PURE__ */ c(y, { children: e });\nfunction v(e) {\n return l.isValidElement(e) && e.type === g;\n}\nfunction w(e, r) {\n const n = { ...r };\n for (const t in r) {\n const i = e[t], o = r[t];\n /^on[A-Z]/.test(t) ? i && o ? n[t] = (...a) => {\n o(...a), i(...a);\n } : i && (n[t] = i) : t === \"style\" ? n[t] = { ...i, ...o } : t === \"className\" && (n[t] = [i, o].filter(Boolean).join(\" \"));\n }\n return { ...e, ...n };\n}\nfunction R(e) {\n var t, i;\n let r = (t = Object.getOwnPropertyDescriptor(e.props, \"ref\")) == null ? void 0 : t.get, n = r && \"isReactWarning\" in r && r.isReactWarning;\n return n ? e.ref : (r = (i = Object.getOwnPropertyDescriptor(e, \"ref\")) == null ? void 0 : i.get, n = r && \"isReactWarning\" in r && r.isReactWarning, n ? e.props.ref : e.props.ref || e.ref);\n}\nvar C = [\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], b = C.reduce((e, r) => {\n const n = l.forwardRef((t, i) => {\n const { asChild: o, ...s } = t, a = o ? d : r;\n return typeof window < \"u\" && (window[Symbol.for(\"radix-ui\")] = !0), /* @__PURE__ */ c(a, { ...s, ref: i });\n });\n return n.displayName = `Primitive.${r}`, { ...e, [r]: n };\n}, {}), E = \"VisuallyHidden\", m = l.forwardRef(\n (e, r) => /* @__PURE__ */ c(\n b.span,\n {\n ...e,\n ref: r,\n style: {\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...e.style\n }\n }\n )\n);\nm.displayName = E;\nvar N = m;\nconst P = ({\n asChild: e,\n children: r,\n className: n = \"\",\n [\"data-testid\"]: t\n}) => /* @__PURE__ */ c(N, { asChild: e, \"data-testid\": t, className: n, children: r });\nexport {\n P as VisuallyHidden\n};\n//# sourceMappingURL=visually-hidden.es.js.map\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport { Button, BUTTON_VARIANT } from \"@purpurds/button\";\nimport { Heading, TitleVariant } from \"@purpurds/heading\";\nimport { IconArrowLeft } from \"@purpurds/icon/arrow-left\";\nimport { IconClose } from \"@purpurds/icon/close\";\nimport { VisuallyHidden } from \"@purpurds/visually-hidden\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-header.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerHeaderProps = {\n [\"data-testid\"]?: string;\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n className?: string;\n closeButtonText: string;\n headerContent?: React.ReactNode;\n onBackButtonClick?: () => void;\n title: string;\n};\n\nconst rootClassName = \"purpur-drawer-header\";\n\nexport const DrawerHeader = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-header\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n className,\n closeButtonText,\n headerContent,\n onBackButtonClick,\n title,\n ...props\n }: DrawerHeaderProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([className, rootClassName]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx([\n `${rootClassName}__row`,\n {\n [`${rootClassName}__row--with-back-button`]:\n backButton && backButtonText && onBackButtonClick,\n },\n ])}\n data-testid={`${dataTestId}-row`}\n >\n <div className={cx(`${rootClassName}__left`)}>\n {backButton && backButtonText && onBackButtonClick ? (\n <Button\n aria-label={backButtonOnlyIcon ? backButtonText : \"\"}\n className={cx([\n `${rootClassName}__back-button`,\n {\n [`${rootClassName}__back-button--only-icon`]: backButtonOnlyIcon,\n },\n ])}\n data-testid={`${dataTestId}-back-button`}\n iconOnly={backButtonOnlyIcon}\n onClick={onBackButtonClick}\n size=\"sm\"\n variant={backButtonOnlyIcon ? BUTTON_VARIANT.TERTIARY_PURPLE : BUTTON_VARIANT.TEXT}\n >\n <IconArrowLeft size=\"sm\" />\n {!backButtonOnlyIcon && backButtonText}\n </Button>\n ) : headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title asChild>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n data-testid={`${dataTestId}-title`}\n tag=\"h2\"\n variant={TitleVariant.TITLE200}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n )}\n </div>\n\n <div className={cx(`${rootClassName}__right`)}>\n <RadixDialog.Close asChild>\n <Button\n aria-label={closeButtonText}\n className={cx(`${rootClassName}__close-button`)}\n iconOnly\n size=\"sm\"\n variant={BUTTON_VARIANT.TERTIARY_PURPLE}\n >\n <IconClose size=\"sm\" />\n </Button>\n </RadixDialog.Close>\n </div>\n </div>\n {backButton &&\n backButtonText &&\n onBackButtonClick &&\n (headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title asChild>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n data-testid={`${dataTestId}-title-with-back-button`}\n tag=\"h2\"\n variant={TitleVariant.TITLE200}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n ))}\n </div>\n );\n }\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/scroll-area/src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// packages/react/scroll-area/src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/scroll-area/src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport * as RadixScrollArea from \"@radix-ui/react-scroll-area\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-scroll-area.module.scss\";\nconst cx = c.bind(styles);\n\nexport type DrawerScrollAreaProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n fitToContent?: boolean;\n};\n\nconst rootClassName = \"purpur-drawer-scroll-area\";\n\nexport const DrawerScrollArea = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-scroll-area\",\n children,\n className,\n fitToContent = false,\n ...props\n }: DrawerScrollAreaProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([className, rootClassName]);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <RadixScrollArea.Root\n className={cx(`${rootClassName}__root`, {\n [`${rootClassName}__root--fit-to-content`]: fitToContent,\n })}\n >\n <RadixScrollArea.Viewport className={cx(`${rootClassName}__viewport`)}>\n {children}\n </RadixScrollArea.Viewport>\n <RadixScrollArea.Scrollbar\n className={cx(`${rootClassName}__scrollbar`)}\n orientation=\"vertical\"\n >\n <RadixScrollArea.Thumb className={cx(`${rootClassName}__thumb`)} />\n </RadixScrollArea.Scrollbar>\n </RadixScrollArea.Root>\n </div>\n );\n }\n);\n\nDrawerScrollArea.displayName = \"DrawerScrollArea\";\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContainer } from \"./drawer-container\";\nimport styles from \"./drawer-frame.module.scss\";\nimport { DrawerHandle } from \"./drawer-handle\";\nimport { DrawerHeader } from \"./drawer-header\";\nimport { DrawerScrollArea } from \"./drawer-scroll-area\";\nimport { SwipeEvent } from \"./types\";\nconst cx = c.bind(styles);\n\nexport type DrawerFrameProps = {\n [\"data-testid\"]?: string;\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n children: ReactNode;\n className?: string;\n closeButtonText: string;\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n onAnimationEnd: (event: React.AnimationEvent<HTMLDivElement>) => void;\n onBackButtonClick?: () => void;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n stickyFooter: boolean;\n title: string;\n};\n\nconst rootClassName = \"purpur-drawer-frame\";\n\nexport const DrawerFrame = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-frame\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n children,\n className,\n closeButtonText,\n fitToContent = false,\n footerContent,\n headerContent,\n onAnimationEnd,\n onBackButtonClick,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n title,\n stickyFooter,\n ...props\n }: DrawerFrameProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([\n className,\n rootClassName,\n {\n [`${rootClassName}--fit-to-content`]: fitToContent,\n [`${rootClassName}--sticky-footer`]: stickyFooter,\n },\n ]);\n\n return (\n <div\n className={classes}\n data-testid={dataTestId}\n ref={ref}\n onAnimationEnd={onAnimationEnd}\n {...props}\n >\n <DrawerHandle\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n />\n <DrawerContainer\n className={cx(`${rootClassName}__header`)}\n variant=\"header\"\n stickyFooter={stickyFooter}\n >\n <DrawerHeader\n title={title}\n headerContent={headerContent}\n backButtonOnlyIcon={backButtonOnlyIcon}\n backButton={backButton}\n backButtonText={backButtonText}\n closeButtonText={closeButtonText}\n onBackButtonClick={onBackButtonClick}\n />\n </DrawerContainer>\n {stickyFooter ? (\n <>\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-sticky-footer-scroll-area`}\n fitToContent={fitToContent}\n >\n <DrawerContainer stickyFooter>{children}</DrawerContainer>\n </DrawerScrollArea>\n {footerContent && (\n <DrawerContainer\n className={cx(`${rootClassName}__footer`)}\n data-testid={`${dataTestId}-sticky-footer`}\n variant=\"footer\"\n stickyFooter={stickyFooter}\n >\n {footerContent}\n </DrawerContainer>\n )}\n </>\n ) : (\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-scroll-area`}\n fitToContent={fitToContent}\n >\n <div\n className={cx([\n `${rootClassName}__content-container`,\n { [`${rootClassName}__content-container--no-footer`]: !footerContent },\n ])}\n >\n <DrawerContainer stickyFooter={stickyFooter}>{children}</DrawerContainer>\n {footerContent && (\n <DrawerContainer\n data-testid={`${dataTestId}-footer`}\n stickyFooter={stickyFooter}\n variant=\"footer\"\n >\n {footerContent}\n </DrawerContainer>\n )}\n </div>\n </DrawerScrollArea>\n )}\n </div>\n );\n }\n);\n\nDrawerFrame.displayName = \"DrawerFrame\";\n","import React from \"react\";\n\nimport { SwipeEvent } from \"./types\";\n\ntype UseSwipeToDismiss = {\n onAnimationEnd(event: React.AnimationEvent<HTMLDivElement>): void;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n};\n\nexport const useSwipeToDismiss = <T extends HTMLElement>(\n containerRef: React.MutableRefObject<T | null>,\n handleOpenChange: (open: boolean) => void\n): UseSwipeToDismiss => {\n const onSwipeStart = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"start\");\n };\n const onSwipeMove = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"move\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-move-y\", `${y}px`);\n };\n const onSwipeCancel = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"cancel\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-end-y\");\n };\n const onSwipeEnd = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"end\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-end-y\", `${y}px`);\n };\n const onAnimationEnd = (event: React.AnimationEvent<HTMLDivElement>) => {\n if (event.currentTarget.getAttribute(\"data-swipe\") === \"end\") {\n handleOpenChange(false);\n }\n };\n return {\n onAnimationEnd,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n };\n};\n","import React, { ForwardedRef, forwardRef, ReactNode, useContext, useRef } from \"react\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport styles from \"./drawer-content.module.scss\";\nimport { DrawerFrame } from \"./drawer-frame\";\nimport { OpenHandlerFunction } from \"./types\";\nimport { useSwipeToDismiss } from \"./use-swipe-to-dismiss.hook\";\nconst cx = c.bind(styles);\n\nexport type WithBackButton = {\n backButton: boolean;\n backButtonText: string;\n backButtonOnlyIcon?: boolean;\n onBackButtonClick: () => void;\n};\n\nexport type WithoutBackButton = {\n backButton?: never;\n backButtonText?: never;\n backButtonOnlyIcon?: never;\n onBackButtonClick?: never;\n};\n\nexport type DrawerContentProps = {\n [\"data-testid\"]?: string;\n bodyText?: string;\n children: ReactNode;\n className?: string;\n closeButtonText: string;\n disableCloseOnClickOutside?: boolean;\n /**\n * If true, the drawer height will fit to its content on small screens.\n */\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n stickyFooter?: boolean;\n title: string;\n zIndex?: number;\n} & (WithoutBackButton | WithBackButton);\n\nconst rootClassName = \"purpur-drawer-content\";\n\nexport const DrawerContent = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-content\",\n backButton = false,\n backButtonText,\n backButtonOnlyIcon = false,\n bodyText,\n children,\n className,\n closeButtonText,\n disableCloseOnClickOutside = false,\n fitToContent = false,\n footerContent,\n headerContent,\n onBackButtonClick,\n stickyFooter = false,\n title,\n zIndex,\n ...props\n }: DrawerContentProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classes = cx([\n className,\n rootClassName,\n { [`${rootClassName}--fit-to-content`]: fitToContent },\n ]);\n\n const drawerFrameRef = useRef<HTMLDivElement>(null);\n const onOpenChange = useContext(DrawerContext);\n const { onAnimationEnd, onSwipeStart, onSwipeMove, onSwipeCancel, onSwipeEnd } =\n useSwipeToDismiss(drawerFrameRef, onOpenChange as OpenHandlerFunction);\n\n const handlePointerDownOutside = (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n if (disableCloseOnClickOutside) {\n event.preventDefault();\n }\n };\n\n return (\n <RadixDialog.Portal>\n <RadixDialog.Overlay\n className={cx(\"purpur-drawer-overlay\")}\n style={zIndex ? { zIndex } : undefined}\n data-testid={`${dataTestId}-overlay`}\n >\n <RadixDialog.Content\n onPointerDownOutside={handlePointerDownOutside}\n className={classes}\n data-testid={dataTestId}\n ref={ref}\n {...(!bodyText && { [\"aria-describedby\"]: undefined })}\n {...props}\n >\n <DrawerFrame\n backButton={backButton}\n backButtonText={backButtonText}\n backButtonOnlyIcon={backButtonOnlyIcon}\n closeButtonText={closeButtonText}\n className={cx(`${rootClassName}__drawer-frame`)}\n fitToContent={fitToContent}\n footerContent={footerContent}\n headerContent={headerContent}\n ref={drawerFrameRef}\n onAnimationEnd={onAnimationEnd}\n onBackButtonClick={onBackButtonClick}\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n stickyFooter={stickyFooter}\n title={title}\n >\n {bodyText ? (\n <div className={cx(`${rootClassName}__content-container`)}>\n <RadixDialog.Description\n className={cx(`${rootClassName}__description`)}\n data-testid={`${dataTestId}-description`}\n >\n {bodyText}\n </RadixDialog.Description>\n <div>{children}</div>\n </div>\n ) : (\n children\n )}\n </DrawerFrame>\n </RadixDialog.Content>\n </RadixDialog.Overlay>\n </RadixDialog.Portal>\n );\n }\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n","import React, { ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\n\nexport type DrawerTriggerProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n};\n\nexport const DrawerTrigger = forwardRef(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-trigger\",\n children,\n className,\n ...props\n }: DrawerTriggerProps,\n ref: ForwardedRef<HTMLButtonElement>\n ) => {\n return (\n <RadixDialog.Trigger\n asChild\n className={className}\n data-testid={dataTestId}\n ref={ref}\n {...props}\n >\n {children}\n </RadixDialog.Trigger>\n );\n }\n);\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n","import React, { ReactNode, useEffect } from \"react\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport styles from \"./drawer.module.scss\";\nimport { DrawerContent } from \"./drawer-content\";\nimport { DrawerTrigger } from \"./drawer-trigger\";\nconst cx = c.bind(styles);\n\nexport type DrawerProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n className?: string;\n onOpenChange?: (open: boolean) => void;\n open: boolean;\n};\n\nconst rootClassName = \"purpur-drawer\";\n\nexport type DrawerComponent<P> = React.FunctionComponent<P> & {\n Trigger: typeof DrawerTrigger;\n Content: typeof DrawerContent;\n};\n\nexport const Drawer: DrawerComponent<DrawerProps> = ({\n [\"data-testid\"]: dataTestId = \"purpur-drawer\",\n children,\n className,\n onOpenChange,\n open = false,\n ...props\n}: DrawerProps) => {\n const [_open, _setOpen] = React.useState(open);\n const classes = cx([className, rootClassName]);\n\n const handleOpenChange = (newOpen: boolean) => {\n _setOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n useEffect(() => {\n _setOpen(open);\n }, [open]);\n\n return (\n <DrawerContext.Provider value={handleOpenChange}>\n <div className={classes} data-testid={dataTestId} {...props}>\n <RadixDialog.Root open={_open} onOpenChange={handleOpenChange}>\n {children}\n </RadixDialog.Root>\n </div>\n </DrawerContext.Provider>\n );\n};\n\nDrawer.Trigger = DrawerTrigger;\nDrawer.Content = DrawerContent;\nDrawer.displayName = \"Drawer\";\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","i","useComposedRefs","React","createContext2","rootComponentName","defaultContext","Context","Provider","props","children","context","jsx","useContext2","consumerName","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","index","scope","_a","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","useCallbackRef","callback","callbackRef","args","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","element","getter","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","target","ReactDOM","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","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","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FOCUS_SCOPE_NAME","FocusScope","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","container","setContainer","onMountAutoFocus","onUnmountAutoFocus","lastFocusedElementRef","focusScope","handleFocusIn2","focus","handleFocusOut2","relatedTarget","handleMutations2","mutations","mutation","mutationObserver","focusScopesStack","previouslyFocusedElement","mountEvent","focusFirst","removeLinks","getTabbableCandidates","unmountEvent","isTabKey","focusedElement","container2","first","last","getTabbableEdges","candidates","select","candidate","findVisible","nodes","walker","isHiddenInput","elements","isHidden","upTo","isSelectableInput","createFocusScopesStack","stack","activeFocusScope","arrayRemove","array","item","updatedArray","items","PORTAL_NAME","Portal","containerProp","portalProps","mounted","setMounted","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","useFocusGuards","edgeGuards","createFocusGuard","__assign","t","s","n","p","__rest","e","__spreadArray","to","from","pack","l","ar","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","initialValue","useState","useIsomorphicLayoutEffect","currentValues","useMergeRefs","defaultValue","newValue","oldValue","prevRefs_1","nextRefs_1","current_1","ItoI","a","innerCreateMedium","defaults","middleware","buffer","assigned","medium","data","x","cb","cbs","pendingQueue","executeQueue","cycle","filter","createSidecarMedium","options","SideCar","sideCar","rest","Target","exportSidecar","exported","effectCar","nothing","RemoveScroll","parentRef","callbacks","setCallbacks","forwardProps","className","removeScrollBar","enabled","shards","noIsolation","inert","allowPinchZoom","Container","gapMode","containerRef","containerProps","getNonce","makeStyleTag","tag","nonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","style","styleHookSingleton","sheet","isDynamic","styleSingleton","useStyle","Sheet","dynamic","zeroGap","parse","getOffset","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth","Style","lockAttribute","getStyles","allowRelative","important","gap","getCurrentUseCounter","useLockAttribute","newCounter","RemoveScrollBar","noRelative","noImportant","passiveSupported","nonPassive","alwaysContainsScroll","elementCanBeScrolled","overflow","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","axis","current","isScrollable","elementCouldBeScrolled","getScrollVariables","scrollHeight","clientHeight","getVScrollVariables","scrollTop","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","direction","handleScroll","endTarget","sourceDelta","noOverscroll","directionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","position","scroll_1","capacity","elementScroll","getTouchXY","getDeltaXY","extractRef","deltaCompare","y","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","el","shouldCancelEvent","parent","touch","touchStart","deltaX","deltaY","currentAxis","moveDirection","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","shardNodes","shouldStop","shouldCancel","should","getOutermostShadowParent","scrollTouchStart","scrollWheel","scrollTouchMove","inst","shadowParent","ReactRemoveScroll","getDefaultParent","originalTarget","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","applyAttributeToOthers","parentNode","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","DIALOG_NAME","createDialogContext","createDialogScope","DialogProvider","useDialogContext","Dialog","__scopeDialog","openProp","defaultOpen","onOpenChange","modal","triggerRef","contentRef","open","setOpen","prevOpen","TRIGGER_NAME","DialogTrigger","triggerProps","composedTriggerRef","getState","PortalProvider","usePortalContext","DialogPortal","forceMount","PortalPrimitive","OVERLAY_NAME","DialogOverlay","portalContext","overlayProps","DialogOverlayImpl","CONTENT_NAME","DialogContent","contentProps","DialogContentModal","DialogContentNonModal","content","DialogContentImpl","originalEvent","ctrlLeftClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","trapFocus","onOpenAutoFocus","onCloseAutoFocus","jsxs","Fragment","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","DESCRIPTION_NAME","DialogDescription","descriptionProps","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","createContext","titleId","titleWarningContext","MESSAGE","DESCRIPTION_WARNING_NAME","descriptionId","describedById","Root","Trigger","Overlay","Content","Title","Description","Close","hasOwn","classNames","classes","arg","appendClass","parseValue","key","newClass","module","DrawerContext","cx","c","rootClassName","DrawerContainer","forwardRef","dataTestId","variant","stickyFooter","useSwipeTracking","pointerStartRef","swipeDeltaRef","onSwipeStart","onSwipeMove","onSwipeCancel","onSwipeEnd","hasSwipeMoveStarted","clampedY","moveStartBuffer","isDeltaInDirection","swipeHandle","threshold","DrawerHandle","onPointerDown","onPointerMove","onPointerUp","O","T","u","m","w","R","o","r","A","g","B","P","_","C","I","M","d","h","V","D","U","Y","L","G","X","b","f","q","j","S","$","z","F","E","v","N","DrawerHeader","backButton","backButtonText","backButtonOnlyIcon","closeButtonText","headerContent","onBackButtonClick","title","Button","BUTTON_VARIANT","IconArrowLeft","VisuallyHidden","RadixDialog.Title","Heading","TitleVariant","RadixDialog.Close","IconClose","DirectionContext","useDirection","localDir","globalDir","clamp","min","max","SCROLL_AREA_NAME","createScrollAreaContext","createScrollAreaScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","VIEWPORT_NAME","ScrollAreaViewport","viewportProps","SCROLLBAR_NAME","ScrollAreaScrollbar","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","debounceScrollEnd","useDebounceCallback","scrollDirection","prevScrollPos","scrollPos","handleResize","isOverflowX","isOverflowY","useResizeObserver","orientation","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","commonProps","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","offset","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","handleThumbPositionChange","handleDragScroll","handleWheel","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","width2","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","input","output","prevPosition","rAF","isHorizontalScroll","isVerticalScroll","delay","handleCallback","debounceTimerRef","resizeObserver","Viewport","Scrollbar","Thumb","DrawerScrollArea","fitToContent","RadixScrollArea.Root","RadixScrollArea.Viewport","RadixScrollArea.Scrollbar","RadixScrollArea.Thumb","DrawerFrame","footerContent","onAnimationEnd","useSwipeToDismiss","handleOpenChange","DrawerContent","bodyText","disableCloseOnClickOutside","zIndex","drawerFrameRef","useRef","useContext","RadixDialog.Portal","RadixDialog.Overlay","RadixDialog.Content","RadixDialog.Description","DrawerTrigger","RadixDialog.Trigger","Drawer","_open","_setOpen","newOpen","useEffect","RadixDialog.Root"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,49,50,51]}
|