{"version":3,"file":"ScrollArea.vue_vue_type_script_setup_true_lang-Koutrh2c.js","sources":["../../node_modules/reka-ui/dist/shared/useNonce.js","../../node_modules/reka-ui/dist/shared/clamp.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaRoot.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaViewport.js","../../node_modules/reka-ui/dist/ScrollArea/utils.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbarImpl.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbarX.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbarY.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbarVisible.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbarAuto.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbarHover.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbarScroll.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaScrollbar.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaThumb.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaCornerImpl.js","../../node_modules/reka-ui/dist/ScrollArea/ScrollAreaCorner.js","../../src/components/ui/scroll-area/ScrollBar.vue","../../src/components/ui/scroll-area/ScrollArea.vue"],"sourcesContent":["import { ref, computed } from 'vue';\nimport { i as injectConfigProviderContext } from '../ConfigProvider/ConfigProvider.js';\n\nfunction useNonce(nonce) {\n const context = injectConfigProviderContext({\n nonce: ref()\n });\n return computed(() => nonce?.value || context.nonce?.value);\n}\n\nexport { useNonce as u };\n//# sourceMappingURL=useNonce.js.map\n","function clamp(value, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY) {\n return Math.min(max, Math.max(min, value));\n}\nfunction roundToStepPrecision(value, step) {\n let roundedValue = value;\n const stepString = step.toString();\n const pointIndex = stepString.indexOf(\".\");\n const precision = pointIndex >= 0 ? stepString.length - pointIndex : 0;\n if (precision > 0) {\n const pow = 10 ** precision;\n roundedValue = Math.round(roundedValue * pow) / pow;\n }\n return roundedValue;\n}\nfunction snapValueToStep(value, min, max, step) {\n min = Number(min);\n max = Number(max);\n const remainder = (value - (Number.isNaN(min) ? 0 : min)) % step;\n let snappedValue = roundToStepPrecision(Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder, step);\n if (!Number.isNaN(min)) {\n if (snappedValue < min)\n snappedValue = min;\n else if (!Number.isNaN(max) && snappedValue > max)\n snappedValue = min + Math.floor(roundToStepPrecision((max - min) / step, step)) * step;\n } else if (!Number.isNaN(max) && snappedValue > max) {\n snappedValue = Math.floor(roundToStepPrecision(max / step, step)) * step;\n }\n snappedValue = roundToStepPrecision(snappedValue, step);\n return snappedValue;\n}\n\nexport { clamp as c, snapValueToStep as s };\n//# sourceMappingURL=clamp.js.map\n","import { defineComponent, ref, toRefs, openBlock, createBlock, unref, normalizeStyle, withCtx, renderSlot } from 'vue';\nimport { u as useDirection } from '../shared/useDirection.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\nimport { c as createContext } from '../shared/createContext.js';\n\nconst [injectScrollAreaRootContext, provideScrollAreaRootContext] = createContext(\"ScrollAreaRoot\");\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaRoot\",\n props: {\n type: { default: \"hover\" },\n dir: {},\n scrollHideDelay: { default: 600 },\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props, { expose: __expose }) {\n const props = __props;\n const cornerWidth = ref(0);\n const cornerHeight = ref(0);\n const viewport = ref();\n const content = ref();\n const scrollbarX = ref();\n const scrollbarY = ref();\n const scrollbarXEnabled = ref(false);\n const scrollbarYEnabled = ref(false);\n const { type, dir: propDir, scrollHideDelay } = toRefs(props);\n const dir = useDirection(propDir);\n function scrollTop() {\n viewport.value?.scrollTo({\n top: 0\n });\n }\n function scrollTopLeft() {\n viewport.value?.scrollTo({\n top: 0,\n left: 0\n });\n }\n __expose({\n /** Viewport element within ScrollArea */\n viewport,\n /** Scroll viewport to top */\n scrollTop,\n /** Scroll viewport to top-left */\n scrollTopLeft\n });\n const { forwardRef, currentElement: scrollArea } = useForwardExpose();\n provideScrollAreaRootContext({\n type,\n dir,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: (el) => {\n viewport.value = el || undefined;\n },\n content,\n onContentChange: (el) => {\n content.value = el;\n },\n scrollbarX,\n scrollbarXEnabled,\n scrollbarY,\n scrollbarYEnabled,\n onScrollbarXChange: (scrollbar) => {\n scrollbarX.value = scrollbar || undefined;\n },\n onScrollbarYChange: (scrollbar) => {\n scrollbarY.value = scrollbar || undefined;\n },\n onScrollbarXEnabledChange: (rendered) => {\n scrollbarXEnabled.value = rendered;\n },\n onScrollbarYEnabledChange: (rendered) => {\n scrollbarYEnabled.value = rendered;\n },\n onCornerWidthChange: (width) => {\n cornerWidth.value = width;\n },\n onCornerHeightChange: (height) => {\n cornerHeight.value = height;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Primitive), {\n ref: unref(forwardRef),\n \"as-child\": props.asChild,\n as: _ctx.as,\n dir: unref(dir),\n style: normalizeStyle({\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--reka-scroll-area-corner-width\"]: `${cornerWidth.value}px`,\n [\"--reka-scroll-area-corner-height\"]: `${cornerHeight.value}px`\n })\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"as-child\", \"as\", \"dir\", \"style\"]);\n };\n }\n});\n\nexport { _sfc_main as _, injectScrollAreaRootContext as i };\n//# sourceMappingURL=ScrollAreaRoot.js.map\n","import { defineComponent, toRefs, ref, onMounted, openBlock, createElementBlock, Fragment, createElementVNode, mergeProps, unref, createVNode, normalizeStyle, withCtx, renderSlot, createTextVNode } from 'vue';\nimport { u as useNonce } from '../shared/useNonce.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"ScrollAreaViewport\",\n props: {\n nonce: {},\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props, { expose: __expose }) {\n const props = __props;\n const { nonce: propNonce } = toRefs(props);\n const nonce = useNonce(propNonce);\n const rootContext = injectScrollAreaRootContext();\n const viewportElement = ref();\n onMounted(() => {\n rootContext.onViewportChange(viewportElement.value);\n rootContext.onContentChange(contentElement.value);\n });\n __expose({\n viewportElement\n });\n const { forwardRef, currentElement: contentElement } = useForwardExpose();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"div\", mergeProps({\n ref_key: \"viewportElement\",\n ref: viewportElement,\n \"data-reka-scroll-area-viewport\": \"\",\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/overflowed#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: unref(rootContext).scrollbarXEnabled.value ? \"scroll\" : \"hidden\",\n overflowY: unref(rootContext).scrollbarYEnabled.value ? \"scroll\" : \"hidden\"\n }\n }, _ctx.$attrs, { tabindex: 0 }), [\n createVNode(unref(Primitive), {\n ref: unref(forwardRef),\n style: normalizeStyle({\n /**\n * When horizontal scrollbar is visible: this element should be at least\n * as wide as its children for size calculations to work correctly.\n *\n * When horizontal scrollbar is NOT visible: this element's width should\n * be constrained by the parent container to enable `text-overflow: ellipsis`\n */\n minWidth: unref(rootContext).scrollbarXEnabled.value ? \"fit-content\" : undefined\n }),\n \"as-child\": props.asChild,\n as: _ctx.as\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"style\", \"as-child\", \"as\"])\n ], 16),\n createVNode(unref(Primitive), {\n as: \"style\",\n nonce: unref(nonce)\n }, {\n default: withCtx(() => _cache[0] || (_cache[0] = [\n createTextVNode(\" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-scroll-area-viewport] { scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; } [data-reka-scroll-area-viewport]::-webkit-scrollbar { display:none; } \")\n ])),\n _: 1\n }, 8, [\"nonce\"])\n ], 64);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaViewport.js.map\n","import { c as clamp } from '../shared/clamp.js';\n\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1])\n 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 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 getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return Number.isNaN(ratio) ? 0 : ratio;\n}\nfunction 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)\n handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\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(\n scrollPos,\n scrollClampRange[0],\n scrollClampRange[1]\n );\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction toInt(value) {\n return value ? Number.parseInt(value, 10) : 0;\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(\n [minPointerPos, maxPointerPos],\n scrollRange\n );\n return interpolate(pointerPos);\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n\nexport { getThumbOffsetFromScroll as a, getScrollPositionFromPointer as b, getThumbSize as c, addUnlinkedScrollListener as d, getThumbRatio as g, isScrollingWithinScrollbarBounds as i, toInt as t };\n//# sourceMappingURL=utils.js.map\n","import { defineComponent, ref, onMounted, onUnmounted, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';\nimport { useResizeObserver } from '@vueuse/core';\nimport { t as toInt } from './utils.js';\nimport { i as injectScrollAreaScrollbarVisibleContext } from './ScrollAreaScrollbarVisible.js';\nimport { i as injectScrollAreaScrollbarContext } from './ScrollAreaScrollbar.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaScrollbarImpl\",\n props: {\n isHorizontal: { type: Boolean }\n },\n emits: [\"onDragScroll\", \"onWheelScroll\", \"onThumbPointerDown\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const rootContext = injectScrollAreaRootContext();\n const scrollbarVisibleContext = injectScrollAreaScrollbarVisibleContext();\n const scrollbarContext = injectScrollAreaScrollbarContext();\n const { forwardRef, currentElement: scrollbar } = useForwardExpose();\n const prevWebkitUserSelectRef = ref(\"\");\n const rectRef = ref();\n function handleDragScroll(event) {\n if (rectRef.value) {\n const x = event.clientX - rectRef.value?.left;\n const y = event.clientY - rectRef.value?.top;\n emit(\"onDragScroll\", { x, y });\n }\n }\n function handlePointerDown(event) {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.value = scrollbar.value.getBoundingClientRect();\n prevWebkitUserSelectRef.value = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (rootContext.viewport)\n rootContext.viewport.value.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }\n function handlePointerMove(event) {\n handleDragScroll(event);\n }\n function handlePointerUp(event) {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId))\n element.releasePointerCapture(event.pointerId);\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.value;\n if (rootContext.viewport)\n rootContext.viewport.value.style.scrollBehavior = \"\";\n rectRef.value = undefined;\n }\n function handleWheel(event) {\n const element = event.target;\n const isScrollbarWheel = scrollbar.value?.contains(element);\n const maxScrollPos = scrollbarVisibleContext.sizes.value.content - scrollbarVisibleContext.sizes.value.viewport;\n if (isScrollbarWheel)\n scrollbarVisibleContext.handleWheelScroll(event, maxScrollPos);\n }\n onMounted(() => {\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n });\n onUnmounted(() => {\n document.removeEventListener(\"wheel\", handleWheel);\n });\n function handleSizeChange() {\n if (!scrollbar.value)\n return;\n if (props.isHorizontal) {\n scrollbarVisibleContext.handleSizeChange({\n content: rootContext.viewport.value?.scrollWidth ?? 0,\n viewport: rootContext.viewport.value?.offsetWidth ?? 0,\n scrollbar: {\n size: scrollbar.value.clientWidth ?? 0,\n paddingStart: toInt(getComputedStyle(scrollbar.value).paddingLeft),\n paddingEnd: toInt(getComputedStyle(scrollbar.value).paddingRight)\n }\n });\n } else {\n scrollbarVisibleContext.handleSizeChange({\n content: rootContext.viewport.value?.scrollHeight ?? 0,\n viewport: rootContext.viewport.value?.offsetHeight ?? 0,\n scrollbar: {\n size: scrollbar.value?.clientHeight ?? 0,\n paddingStart: toInt(getComputedStyle(scrollbar.value).paddingLeft),\n paddingEnd: toInt(getComputedStyle(scrollbar.value).paddingRight)\n }\n });\n }\n }\n useResizeObserver(scrollbar, handleSizeChange);\n useResizeObserver(rootContext.content, handleSizeChange);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Primitive), {\n ref: unref(forwardRef),\n style: { \"position\": \"absolute\" },\n \"data-scrollbarimpl\": \"\",\n as: unref(scrollbarContext).as.value,\n \"as-child\": unref(scrollbarContext).asChild.value,\n onPointerdown: handlePointerDown,\n onPointermove: handlePointerMove,\n onPointerup: handlePointerUp\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"as\", \"as-child\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaScrollbarImpl.js.map\n","import { defineComponent, onMounted, computed, openBlock, createBlock, unref, normalizeStyle, withCtx, renderSlot } from 'vue';\nimport { _ as _sfc_main$1 } from './ScrollAreaScrollbarImpl.js';\nimport { c as getThumbSize } from './utils.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\nimport { i as injectScrollAreaScrollbarVisibleContext } from './ScrollAreaScrollbarVisible.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaScrollbarX\",\n setup(__props) {\n const rootContext = injectScrollAreaRootContext();\n const scrollbarVisibleContext = injectScrollAreaScrollbarVisibleContext();\n const { forwardRef, currentElement: scrollbarElement } = useForwardExpose();\n onMounted(() => {\n if (scrollbarElement.value)\n rootContext.onScrollbarXChange(scrollbarElement.value);\n });\n const sizes = computed(() => scrollbarVisibleContext.sizes.value);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(_sfc_main$1, {\n ref: unref(forwardRef),\n \"is-horizontal\": true,\n \"data-orientation\": \"horizontal\",\n style: normalizeStyle({\n bottom: 0,\n left: unref(rootContext).dir.value === \"rtl\" ? \"var(--reka-scroll-area-corner-width)\" : 0,\n right: unref(rootContext).dir.value === \"ltr\" ? \"var(--reka-scroll-area-corner-width)\" : 0,\n [\"--reka-scroll-area-thumb-width\"]: sizes.value ? `${unref(getThumbSize)(sizes.value)}px` : undefined\n }),\n onOnDragScroll: _cache[0] || (_cache[0] = ($event) => unref(scrollbarVisibleContext).onDragScroll($event.x))\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"style\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaScrollbarX.js.map\n","import { defineComponent, onMounted, computed, openBlock, createBlock, unref, normalizeStyle, withCtx, renderSlot } from 'vue';\nimport { _ as _sfc_main$1 } from './ScrollAreaScrollbarImpl.js';\nimport { c as getThumbSize } from './utils.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\nimport { i as injectScrollAreaScrollbarVisibleContext } from './ScrollAreaScrollbarVisible.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaScrollbarY\",\n setup(__props) {\n const rootContext = injectScrollAreaRootContext();\n const scrollbarVisibleContext = injectScrollAreaScrollbarVisibleContext();\n const { forwardRef, currentElement: scrollbarElement } = useForwardExpose();\n onMounted(() => {\n if (scrollbarElement.value)\n rootContext.onScrollbarYChange(scrollbarElement.value);\n });\n const sizes = computed(() => scrollbarVisibleContext.sizes.value);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(_sfc_main$1, {\n ref: unref(forwardRef),\n \"is-horizontal\": false,\n \"data-orientation\": \"vertical\",\n style: normalizeStyle({\n top: 0,\n right: unref(rootContext).dir.value === \"ltr\" ? 0 : undefined,\n left: unref(rootContext).dir.value === \"rtl\" ? 0 : undefined,\n bottom: \"var(--reka-scroll-area-corner-height)\",\n [\"--reka-scroll-area-thumb-height\"]: sizes.value ? `${unref(getThumbSize)(sizes.value)}px` : undefined\n }),\n onOnDragScroll: _cache[0] || (_cache[0] = ($event) => unref(scrollbarVisibleContext).onDragScroll($event.y))\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"style\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaScrollbarY.js.map\n","import { defineComponent, ref, computed, openBlock, createBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';\nimport { _ as _sfc_main$1 } from './ScrollAreaScrollbarX.js';\nimport { _ as _sfc_main$2 } from './ScrollAreaScrollbarY.js';\nimport { g as getThumbRatio, i as isScrollingWithinScrollbarBounds, a as getThumbOffsetFromScroll, b as getScrollPositionFromPointer } from './utils.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { c as createContext } from '../shared/createContext.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\nimport { i as injectScrollAreaScrollbarContext } from './ScrollAreaScrollbar.js';\n\nconst [injectScrollAreaScrollbarVisibleContext, provideScrollAreaScrollbarVisibleContext] = createContext(\"ScrollAreaScrollbarVisible\");\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaScrollbarVisible\",\n setup(__props) {\n const rootContext = injectScrollAreaRootContext();\n const scrollbarContext = injectScrollAreaScrollbarContext();\n const { forwardRef } = useForwardExpose();\n const sizes = ref({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const hasThumb = computed(() => {\n const thumbRatio = getThumbRatio(sizes.value.viewport, sizes.value.content);\n return Boolean(thumbRatio > 0 && thumbRatio < 1);\n });\n const thumbRef = ref();\n const pointerOffset = ref(0);\n function handleWheelScroll(event, payload) {\n if (isShowingScrollbarX.value) {\n const scrollPos = rootContext.viewport.value.scrollLeft + event.deltaY;\n rootContext.viewport.value.scrollLeft = scrollPos;\n if (isScrollingWithinScrollbarBounds(scrollPos, payload))\n event.preventDefault();\n } else {\n const scrollPos = rootContext.viewport.value.scrollTop + event.deltaY;\n rootContext.viewport.value.scrollTop = scrollPos;\n if (isScrollingWithinScrollbarBounds(scrollPos, payload))\n event.preventDefault();\n }\n }\n function handleThumbDown(event, payload) {\n if (isShowingScrollbarX.value)\n pointerOffset.value = payload.x;\n else pointerOffset.value = payload.y;\n }\n function handleThumbUp(event) {\n pointerOffset.value = 0;\n }\n function handleSizeChange(payload) {\n sizes.value = payload;\n }\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(\n pointerPos,\n pointerOffset.value,\n sizes.value,\n dir\n );\n }\n const isShowingScrollbarX = computed(\n () => scrollbarContext.isHorizontal.value\n );\n function onDragScroll(payload) {\n if (isShowingScrollbarX.value) {\n rootContext.viewport.value.scrollLeft = getScrollPosition(\n payload,\n rootContext.dir.value\n );\n } else {\n rootContext.viewport.value.scrollTop = getScrollPosition(payload);\n }\n }\n function onThumbPositionChange() {\n if (isShowingScrollbarX.value) {\n if (rootContext.viewport.value && thumbRef.value) {\n const scrollPos = rootContext.viewport.value.scrollLeft;\n const offset = getThumbOffsetFromScroll(\n scrollPos,\n sizes.value,\n rootContext.dir.value\n );\n thumbRef.value.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n } else {\n if (rootContext.viewport.value && thumbRef.value) {\n const scrollPos = rootContext.viewport.value.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes.value);\n thumbRef.value.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }\n }\n function onThumbChange(element) {\n thumbRef.value = element;\n }\n provideScrollAreaScrollbarVisibleContext({\n sizes,\n hasThumb,\n handleWheelScroll,\n handleThumbDown,\n handleThumbUp,\n handleSizeChange,\n onThumbPositionChange,\n onThumbChange,\n onDragScroll\n });\n return (_ctx, _cache) => {\n return isShowingScrollbarX.value ? (openBlock(), createBlock(_sfc_main$1, mergeProps({ key: 0 }, _ctx.$attrs, { ref: unref(forwardRef) }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16)) : (openBlock(), createBlock(_sfc_main$2, mergeProps({ key: 1 }, _ctx.$attrs, { ref: unref(forwardRef) }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16));\n };\n }\n});\n\nexport { _sfc_main as _, injectScrollAreaScrollbarVisibleContext as i };\n//# sourceMappingURL=ScrollAreaScrollbarVisible.js.map\n","import { defineComponent, ref, onMounted, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';\nimport { useDebounceFn, useResizeObserver } from '@vueuse/core';\nimport { _ as _sfc_main$1 } from './ScrollAreaScrollbarVisible.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Presence } from '../Presence/Presence.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\nimport { i as injectScrollAreaScrollbarContext } from './ScrollAreaScrollbar.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaScrollbarAuto\",\n props: {\n forceMount: { type: Boolean }\n },\n setup(__props) {\n const rootContext = injectScrollAreaRootContext();\n const scrollbarContext = injectScrollAreaScrollbarContext();\n const { forwardRef } = useForwardExpose();\n const visible = ref(false);\n const handleResize = useDebounceFn(() => {\n if (rootContext.viewport.value) {\n const isOverflowX = rootContext.viewport.value.offsetWidth < rootContext.viewport.value.scrollWidth;\n const isOverflowY = rootContext.viewport.value.offsetHeight < rootContext.viewport.value.scrollHeight;\n visible.value = scrollbarContext.isHorizontal.value ? isOverflowX : isOverflowY;\n }\n }, 10);\n onMounted(() => handleResize());\n useResizeObserver(rootContext.viewport, handleResize);\n useResizeObserver(rootContext.content, handleResize);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Presence), {\n present: _ctx.forceMount || visible.value\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$1, mergeProps(_ctx.$attrs, {\n ref: unref(forwardRef),\n \"data-state\": visible.value ? \"visible\" : \"hidden\"\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"data-state\"])\n ]),\n _: 3\n }, 8, [\"present\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaScrollbarAuto.js.map\n","import { defineComponent, ref, onMounted, onUnmounted, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';\nimport { _ as _sfc_main$1 } from './ScrollAreaScrollbarAuto.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Presence } from '../Presence/Presence.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"ScrollAreaScrollbarHover\",\n props: {\n forceMount: { type: Boolean }\n },\n setup(__props) {\n const rootContext = injectScrollAreaRootContext();\n const { forwardRef } = useForwardExpose();\n let timeout;\n const visible = ref(false);\n function handlePointerEnter() {\n window.clearTimeout(timeout);\n visible.value = true;\n }\n function handlePointerLeave() {\n timeout = window.setTimeout(() => {\n visible.value = false;\n }, rootContext.scrollHideDelay.value);\n }\n onMounted(() => {\n const scrollArea = rootContext.scrollArea.value;\n if (scrollArea) {\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n }\n });\n onUnmounted(() => {\n const scrollArea = rootContext.scrollArea.value;\n if (scrollArea) {\n window.clearTimeout(timeout);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Presence), {\n present: _ctx.forceMount || visible.value\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$1, mergeProps(_ctx.$attrs, {\n ref: unref(forwardRef),\n \"data-state\": visible.value ? \"visible\" : \"hidden\"\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"data-state\"])\n ]),\n _: 3\n }, 8, [\"present\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaScrollbarHover.js.map\n","import { defineComponent, watchEffect, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';\nimport { useDebounceFn } from '@vueuse/core';\nimport { u as useStateMachine } from '../shared/useStateMachine.js';\nimport { _ as _sfc_main$1 } from './ScrollAreaScrollbarVisible.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Presence } from '../Presence/Presence.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\nimport { i as injectScrollAreaScrollbarContext } from './ScrollAreaScrollbar.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaScrollbarScroll\",\n props: {\n forceMount: { type: Boolean }\n },\n setup(__props) {\n const rootContext = injectScrollAreaRootContext();\n const scrollbarContext = injectScrollAreaScrollbarContext();\n const { forwardRef } = useForwardExpose();\n const { state, dispatch } = 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 watchEffect((onCleanup) => {\n if (state.value === \"idle\") {\n const timeId = window.setTimeout(\n () => dispatch(\"HIDE\"),\n rootContext.scrollHideDelay.value\n );\n onCleanup(() => {\n window.clearTimeout(timeId);\n });\n }\n });\n const debounceScrollEnd = useDebounceFn(() => dispatch(\"SCROLL_END\"), 100);\n watchEffect((onCleanup) => {\n const viewport = rootContext.viewport.value;\n const scrollDirection = scrollbarContext.isHorizontal.value ? \"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 dispatch(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n onCleanup(() => {\n viewport.removeEventListener(\"scroll\", handleScroll);\n });\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Presence), {\n present: _ctx.forceMount || unref(state) !== \"hidden\"\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$1, mergeProps(_ctx.$attrs, { ref: unref(forwardRef) }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16)\n ]),\n _: 3\n }, 8, [\"present\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaScrollbarScroll.js.map\n","import { defineComponent, computed, watch, onUnmounted, toRefs, unref, openBlock, createBlock, mergeProps, withCtx, renderSlot, createCommentVNode } from 'vue';\nimport { _ as _sfc_main$1 } from './ScrollAreaScrollbarHover.js';\nimport { _ as _sfc_main$2 } from './ScrollAreaScrollbarScroll.js';\nimport { _ as _sfc_main$3 } from './ScrollAreaScrollbarAuto.js';\nimport { _ as _sfc_main$4 } from './ScrollAreaScrollbarVisible.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { c as createContext } from '../shared/createContext.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\n\nconst [injectScrollAreaScrollbarContext, provideScrollAreaScrollbarContext] = createContext(\"ScrollAreaScrollbar\");\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"ScrollAreaScrollbar\",\n props: {\n orientation: { default: \"vertical\" },\n forceMount: { type: Boolean },\n asChild: { type: Boolean },\n as: { default: \"div\" }\n },\n setup(__props) {\n const props = __props;\n const { forwardRef } = useForwardExpose();\n const rootContext = injectScrollAreaRootContext();\n const isHorizontal = computed(() => props.orientation === \"horizontal\");\n watch(\n isHorizontal,\n () => {\n if (isHorizontal.value)\n rootContext.onScrollbarXEnabledChange(true);\n else rootContext.onScrollbarYEnabledChange(true);\n },\n { immediate: true }\n );\n onUnmounted(() => {\n rootContext.onScrollbarXEnabledChange(false);\n rootContext.onScrollbarYEnabledChange(false);\n });\n const { orientation, forceMount, asChild, as } = toRefs(props);\n provideScrollAreaScrollbarContext({\n orientation,\n forceMount,\n isHorizontal,\n as,\n asChild\n });\n return (_ctx, _cache) => {\n return unref(rootContext).type.value === \"hover\" ? (openBlock(), createBlock(_sfc_main$1, mergeProps({ key: 0 }, _ctx.$attrs, {\n ref: unref(forwardRef),\n \"force-mount\": unref(forceMount)\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"force-mount\"])) : unref(rootContext).type.value === \"scroll\" ? (openBlock(), createBlock(_sfc_main$2, mergeProps({ key: 1 }, _ctx.$attrs, {\n ref: unref(forwardRef),\n \"force-mount\": unref(forceMount)\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"force-mount\"])) : unref(rootContext).type.value === \"auto\" ? (openBlock(), createBlock(_sfc_main$3, mergeProps({ key: 2 }, _ctx.$attrs, {\n ref: unref(forwardRef),\n \"force-mount\": unref(forceMount)\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"force-mount\"])) : unref(rootContext).type.value === \"always\" ? (openBlock(), createBlock(_sfc_main$4, mergeProps({ key: 3 }, _ctx.$attrs, {\n ref: unref(forwardRef),\n \"data-state\": \"visible\"\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16)) : createCommentVNode(\"\", true);\n };\n }\n});\n\nexport { _sfc_main as _, injectScrollAreaScrollbarContext as i };\n//# sourceMappingURL=ScrollAreaScrollbar.js.map\n","import { defineComponent, ref, computed, onUnmounted, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';\nimport { watchOnce } from '@vueuse/core';\nimport { d as addUnlinkedScrollListener } from './utils.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\nimport { i as injectScrollAreaScrollbarVisibleContext } from './ScrollAreaScrollbarVisible.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaThumb\",\n props: {\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props) {\n const props = __props;\n const rootContext = injectScrollAreaRootContext();\n const scrollbarContextVisible = injectScrollAreaScrollbarVisibleContext();\n function handlePointerDown(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 scrollbarContextVisible.handleThumbDown(event, { x, y });\n }\n function handlePointerUp(event) {\n scrollbarContextVisible.handleThumbUp(event);\n }\n const { forwardRef, currentElement: thumbElement } = useForwardExpose();\n const removeUnlinkedScrollListenerRef = ref();\n const viewport = computed(() => rootContext.viewport.value);\n function handleScroll() {\n if (!removeUnlinkedScrollListenerRef.value) {\n const listener = addUnlinkedScrollListener(\n viewport.value,\n scrollbarContextVisible.onThumbPositionChange\n );\n removeUnlinkedScrollListenerRef.value = listener;\n scrollbarContextVisible.onThumbPositionChange();\n }\n }\n const sizes = computed(() => scrollbarContextVisible.sizes.value);\n watchOnce(sizes, () => {\n scrollbarContextVisible.onThumbChange(thumbElement.value);\n if (viewport.value) {\n scrollbarContextVisible.onThumbPositionChange();\n viewport.value.addEventListener(\"scroll\", handleScroll);\n }\n });\n onUnmounted(() => {\n viewport.value.removeEventListener(\"scroll\", handleScroll);\n rootContext.viewport.value?.removeEventListener(\"scroll\", handleScroll);\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Primitive), {\n ref: unref(forwardRef),\n \"data-state\": unref(scrollbarContextVisible).hasThumb ? \"visible\" : \"hidden\",\n style: {\n width: \"var(--reka-scroll-area-thumb-width)\",\n height: \"var(--reka-scroll-area-thumb-height)\"\n },\n \"as-child\": props.asChild,\n as: _ctx.as,\n onPointerdown: handlePointerDown,\n onPointerup: handlePointerUp\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"data-state\", \"as-child\", \"as\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaThumb.js.map\n","import { defineComponent, ref, computed, watch, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot, createCommentVNode } from 'vue';\nimport { useResizeObserver } from '@vueuse/core';\nimport { P as Primitive } from '../Primitive/Primitive.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaCornerImpl\",\n setup(__props) {\n const rootContext = injectScrollAreaRootContext();\n const width = ref(0);\n const height = ref(0);\n const hasSize = computed(() => !!width.value && !!height.value);\n function setCornerHeight() {\n const offsetHeight = rootContext.scrollbarX.value?.offsetHeight || 0;\n rootContext.onCornerHeightChange(offsetHeight);\n height.value = offsetHeight;\n }\n function setCornerWidth() {\n const offsetWidth = rootContext.scrollbarY.value?.offsetWidth || 0;\n rootContext.onCornerWidthChange(offsetWidth);\n width.value = offsetWidth;\n }\n useResizeObserver(rootContext.scrollbarX.value, setCornerHeight);\n useResizeObserver(rootContext.scrollbarY.value, setCornerWidth);\n watch(() => rootContext.scrollbarX.value, setCornerHeight);\n watch(() => rootContext.scrollbarY.value, setCornerWidth);\n return (_ctx, _cache) => {\n return hasSize.value ? (openBlock(), createBlock(unref(Primitive), mergeProps({\n key: 0,\n style: {\n width: `${width.value}px`,\n height: `${height.value}px`,\n position: \"absolute\",\n right: unref(rootContext).dir.value === \"ltr\" ? 0 : undefined,\n left: unref(rootContext).dir.value === \"rtl\" ? 0 : undefined,\n bottom: 0\n }\n }, _ctx.$parent?.$props), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"style\"])) : createCommentVNode(\"\", true);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaCornerImpl.js.map\n","import { defineComponent, computed, openBlock, createBlock, mergeProps, unref, withCtx, renderSlot, createCommentVNode } from 'vue';\nimport { _ as _sfc_main$1 } from './ScrollAreaCornerImpl.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { i as injectScrollAreaRootContext } from './ScrollAreaRoot.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ScrollAreaCorner\",\n props: {\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props) {\n const props = __props;\n const { forwardRef } = useForwardExpose();\n const rootContext = injectScrollAreaRootContext();\n const hasBothScrollbarsVisible = computed(\n () => !!rootContext.scrollbarX.value && !!rootContext.scrollbarY.value\n );\n const hasCorner = computed(\n () => rootContext.type.value !== \"scroll\" && hasBothScrollbarsVisible.value\n );\n return (_ctx, _cache) => {\n return hasCorner.value ? (openBlock(), createBlock(_sfc_main$1, mergeProps({ key: 0 }, props, { ref: unref(forwardRef) }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16)) : createCommentVNode(\"\", true);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ScrollAreaCorner.js.map\n","\n\n\n \n \n \n\n","\n\n\n \n \n \n \n \n \n \n\n"],"names":["useNonce","nonce","context","injectConfigProviderContext","ref","computed","value","_a","clamp","min","Number","NEGATIVE_INFINITY","max","POSITIVE_INFINITY","Math","roundToStepPrecision","step","roundedValue","stepString","toString","pointIndex","indexOf","precision","length","pow","round","snapValueToStep","remainder","isNaN","snappedValue","abs","sign","floor","injectScrollAreaRootContext","provideScrollAreaRootContext","createContext","_sfc_main","defineComponent","__name","props","type","default","dir","scrollHideDelay","asChild","Boolean","as","setup","__props","expose","__expose","cornerWidth","cornerHeight","viewport","content","scrollbarX","scrollbarY","scrollbarXEnabled","scrollbarYEnabled","propDir","toRefs","useDirection","scrollTop","scrollTo","top","scrollTopLeft","left","forwardRef","currentElement","scrollArea","useForwardExpose","onViewportChange","el","onContentChange","onScrollbarXChange","scrollbar","onScrollbarYChange","onScrollbarXEnabledChange","rendered","onScrollbarYEnabledChange","onCornerWidthChange","width","onCornerHeightChange","height","_ctx","_cache","openBlock","createBlock","unref","Primitive","style","normalizeStyle","position","withCtx","renderSlot","$slots","_","inheritAttrs","propNonce","rootContext","viewportElement","onMounted","contentElement","createElementBlock","Fragment","createElementVNode","mergeProps","ref_key","overflowX","overflowY","$attrs","tabindex","createVNode","minWidth","createTextVNode","linearScale","input","output","ratio","getThumbSize","sizes","getThumbRatio","scrollbarPadding","paddingStart","paddingEnd","thumbSize","size","viewportSize","contentSize","getThumbOffsetFromScroll","scrollPos","thumbSizePx","maxScrollPos","maxThumbPos","scrollClampRange","scrollWithoutMomentum","interpolate","toInt","parseInt","isScrollingWithinScrollbarBounds","isHorizontal","emits","emit","__emit","scrollbarVisibleContext","injectScrollAreaScrollbarVisibleContext","scrollbarContext","injectScrollAreaScrollbarContext","prevWebkitUserSelectRef","rectRef","handleDragScroll","event","x","clientX","y","clientY","_b","handlePointerDown","button","target","setPointerCapture","pointerId","getBoundingClientRect","document","body","webkitUserSelect","scrollBehavior","handlePointerMove","handlePointerUp","element","hasPointerCapture","releasePointerCapture","handleWheel","isScrollbarWheel","contains","handleWheelScroll","handleSizeChange","scrollWidth","offsetWidth","clientWidth","getComputedStyle","paddingLeft","paddingRight","_c","scrollHeight","_d","offsetHeight","_e","clientHeight","addEventListener","passive","onUnmounted","removeEventListener","useResizeObserver","onPointerdown","onPointermove","onPointerup","scrollbarElement","_sfc_main$1","bottom","right","onOnDragScroll","$event","onDragScroll","provideScrollAreaScrollbarVisibleContext","hasThumb","thumbRatio","thumbRef","pointerOffset","getScrollPosition","pointerPos","offset","thumbOffsetFromEnd","minPointerPos","maxPointerPos","getScrollPositionFromPointer","isShowingScrollbarX","payload","scrollLeft","deltaY","preventDefault","handleThumbDown","handleThumbUp","onThumbPositionChange","transform","onThumbChange","key","_sfc_main$2","forceMount","visible","handleResize","useDebounceFn","isOverflowX","isOverflowY","Presence","present","timeout","handlePointerEnter","window","clearTimeout","handlePointerLeave","setTimeout","state","dispatch","useStateMachine","hidden","SCROLL","scrolling","SCROLL_END","POINTER_ENTER","interacting","POINTER_LEAVE","idle","HIDE","watchEffect","onCleanup","timeId","debounceScrollEnd","scrollDirection","prevScrollPos","handleScroll","provideScrollAreaScrollbarContext","orientation","watch","immediate","_sfc_main$3","_sfc_main$4","createCommentVNode","scrollbarContextVisible","thumbRect","thumbElement","removeUnlinkedScrollListenerRef","listener","node","handler","prevPosition","rAF","loop","isHorizontalScroll","isVerticalScroll","requestAnimationFrame","cancelAnimationFrame","addUnlinkedScrollListener","watchOnce","hasSize","setCornerHeight","setCornerWidth","$parent","$props","hasBothScrollbarsVisible","hasCorner","delegatedProps","class","delegated"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]}