{"version":3,"names":["dynamic","createEffect","createMemo","createSignal","omit","Show","useDirection","composeRefs","userRef","contains","getTarget","mergeRootProps","resolveClassStyle","useScrollAreaRootContext","ScrollAreaRootCssVars","ScrollAreaRootDataAttributes","getOffset","ScrollAreaScrollbarContext","ScrollAreaScrollbarCssVars","ScrollAreaScrollbarDataAttributes","ScrollAreaScrollbar","props","context","direction","orientation","keepMounted","isHidden","hiddenState","y","x","hideTrackUntilMeasured","hasMeasuredScrollbar","shouldRender","state","hidden","edges","overflowEdges","o","hovering","scrolling","scrollingY","scrollingX","hasOverflowX","hasOverflowY","overflowXStart","xStart","overflowXEnd","xEnd","overflowYStart","yStart","overflowYEnd","yEnd","cornerHidden","corner","scrollbarContextValue","scrollbarElSignal","setScrollbarElSignal","ownedWrite","render","el","scrollbarEl","handleWheel","event","viewportEl","viewportRef","current","ctrlKey","preventDefault","scrollTop","deltaY","scrollHeight","clientHeight","scrollLeft","deltaX","scrollWidth","clientWidth","addEventListener","passive","removeEventListener","userStyling","userProps","localRef","scrollbarYRef","scrollbarXRef","internalSlot","rootId","undefined","String","onPointerDown","button","target","thumb","thumbYRef","thumbXRef","thumbYEl","scrollbarYEl","handlePointerDown","thumbYOffset","scrollbarYOffset","thumbHeight","offsetHeight","trackRectY","getBoundingClientRect","clickY","clientY","top","scrollableContentHeight","viewportHeight","maxThumbOffsetY","scrollRatioY","thumbXEl","scrollbarXEl","thumbXOffset","scrollbarXOffset","thumbWidth","offsetWidth","trackRectX","clickX","clientX","left","scrollableContentWidth","viewportWidth","maxThumbOffsetX","scrollRatioX","newScrollLeft","onPointerUp","handlePointerUp","style","thumbSize","base","position","visibility","bottom","scrollAreaCornerHeight","scrollAreaThumbHeight","height","scrollAreaCornerWidth","scrollAreaThumbWidth","width","children","styledUserProps","merged","Tag","as"],"sources":["scroll-area-scrollbar.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createEffect, createMemo, createSignal, omit, Show } from \"solid-js\";\nimport { useDirection } from \"../../direction-provider/direction-provider-context.ts\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { contains } from \"../../internals/dom/contains.ts\";\nimport { getTarget } from \"../../internals/dom/get-target.ts\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport type { ScrollAreaRootState } from \"../root/scroll-area-root-context.ts\";\nimport { useScrollAreaRootContext } from \"../root/scroll-area-root-context.ts\";\nimport { ScrollAreaRootCssVars } from \"../root/scroll-area-root-css-vars.ts\";\nimport { ScrollAreaRootDataAttributes } from \"../root/scroll-area-root-data-attributes.ts\";\nimport { getOffset } from \"../utils/get-offset.ts\";\nimport {\n\tScrollAreaScrollbarContext,\n\ttype ScrollAreaScrollbarContextValue,\n} from \"./scroll-area-scrollbar-context.ts\";\nimport { ScrollAreaScrollbarCssVars } from \"./scroll-area-scrollbar-css-vars.ts\";\nimport { ScrollAreaScrollbarDataAttributes } from \"./scroll-area-scrollbar-data-attributes.ts\";\n\nexport interface ScrollAreaScrollbarState extends ScrollAreaRootState {\n\t/** Whether the scroll area is hovered. */\n\thovering: boolean;\n\t/** Whether the scroll area is currently scrolling along this axis. */\n\tscrolling: boolean;\n\t/** The scrollbar's orientation. */\n\torientation: \"vertical\" | \"horizontal\";\n}\n\nexport interface ScrollAreaScrollbarProps\n\textends BaseUIComponentProps<\"div\", ScrollAreaScrollbarState> {\n\t/** Tag/component to render. Defaults to `\"div\"`. */\n\tas?: ValidComponent;\n\t/**\n\t * Axis the scrollbar controls.\n\t * @default 'vertical'\n\t */\n\torientation?: \"vertical\" | \"horizontal\" | undefined;\n\t/**\n\t * Keep the element mounted even when the viewport isn't scrollable.\n\t * @default false\n\t */\n\tkeepMounted?: boolean | undefined;\n}\n\n/**\n * A vertical or horizontal scrollbar. Renders a `<div>` element.\n *\n * Solid 2 notes:\n *\n * - Conditionally rendered via `<Show>` when the scrollbar's axis is hidden\n *   (mirrors React's `shouldRender = keepMounted || !isHidden`).\n * - Wheel handling is added via a native listener (not an `onWheel` prop)\n *   because we need `passive: false` to call `preventDefault`.\n */\nexport function ScrollAreaScrollbar(\n\tprops: ScrollAreaScrollbarProps,\n): JSX.Element {\n\tconst context = useScrollAreaRootContext();\n\tconst direction = useDirection();\n\n\tconst orientation = (): \"vertical\" | \"horizontal\" =>\n\t\tprops.orientation ?? \"vertical\";\n\tconst keepMounted = (): boolean => props.keepMounted ?? false;\n\n\tconst isHidden = (): boolean =>\n\t\torientation() === \"vertical\"\n\t\t\t? context.hiddenState().y\n\t\t\t: context.hiddenState().x;\n\n\tconst hideTrackUntilMeasured = (): boolean =>\n\t\t!context.hasMeasuredScrollbar() && !keepMounted();\n\n\tconst shouldRender = (): boolean => keepMounted() || !isHidden();\n\n\tconst state = createMemo<ScrollAreaScrollbarState>(() => {\n\t\tconst hidden = context.hiddenState();\n\t\tconst edges = context.overflowEdges();\n\t\tconst o = orientation();\n\t\treturn {\n\t\t\thovering: context.hovering(),\n\t\t\tscrolling: o === \"vertical\" ? context.scrollingY() : context.scrollingX(),\n\t\t\torientation: o,\n\t\t\thasOverflowX: !hidden.x,\n\t\t\thasOverflowY: !hidden.y,\n\t\t\toverflowXStart: edges.xStart,\n\t\t\toverflowXEnd: edges.xEnd,\n\t\t\toverflowYStart: edges.yStart,\n\t\t\toverflowYEnd: edges.yEnd,\n\t\t\tcornerHidden: hidden.corner,\n\t\t};\n\t});\n\n\tconst scrollbarContextValue: ScrollAreaScrollbarContextValue = {\n\t\tget orientation() {\n\t\t\treturn orientation();\n\t\t},\n\t};\n\n\t// Local element signal so the wheel-listener effect retriggers when the\n\t// scrollbar mounts (context refs are imperative containers, not signals).\n\tconst [scrollbarElSignal, setScrollbarElSignal] =\n\t\tcreateSignal<HTMLDivElement | null>(null, { ownedWrite: true });\n\n\t// Native wheel listener with `passive: false` so we can call\n\t// `preventDefault` when the scroll is in-bounds.\n\tcreateEffect(\n\t\t() => ({\n\t\t\trender: shouldRender(),\n\t\t\to: orientation(),\n\t\t\tel: scrollbarElSignal(),\n\t\t}),\n\t\t({ render, o, el }) => {\n\t\t\tif (!render || !el) return;\n\t\t\tconst scrollbarEl = el;\n\n\t\t\tfunction handleWheel(event: WheelEvent): void {\n\t\t\t\tconst viewportEl = context.viewportRef.current;\n\t\t\t\tif (!viewportEl || event.ctrlKey) return;\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif (o === \"vertical\") {\n\t\t\t\t\tif (viewportEl.scrollTop === 0 && event.deltaY < 0) return;\n\t\t\t\t\tif (\n\t\t\t\t\t\tviewportEl.scrollTop ===\n\t\t\t\t\t\t\tviewportEl.scrollHeight - viewportEl.clientHeight &&\n\t\t\t\t\t\tevent.deltaY > 0\n\t\t\t\t\t)\n\t\t\t\t\t\treturn;\n\t\t\t\t\tviewportEl.scrollTop += event.deltaY;\n\t\t\t\t} else {\n\t\t\t\t\tif (viewportEl.scrollLeft === 0 && event.deltaX < 0) return;\n\t\t\t\t\tif (\n\t\t\t\t\t\tviewportEl.scrollLeft ===\n\t\t\t\t\t\t\tviewportEl.scrollWidth - viewportEl.clientWidth &&\n\t\t\t\t\t\tevent.deltaX > 0\n\t\t\t\t\t)\n\t\t\t\t\t\treturn;\n\t\t\t\t\tviewportEl.scrollLeft += event.deltaX;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tscrollbarEl.addEventListener(\"wheel\", handleWheel, { passive: false });\n\t\t\treturn () => {\n\t\t\t\tscrollbarEl.removeEventListener(\"wheel\", handleWheel);\n\t\t\t};\n\t\t},\n\t);\n\n\tconst userStyling = resolveClassStyle(props, () => state());\n\n\tconst userProps = omit(\n\t\tprops,\n\t\t\"class\",\n\t\t\"style\",\n\t\t\"attrs\",\n\t\t\"as\",\n\t\t\"children\",\n\t\t\"orientation\",\n\t\t\"keepMounted\",\n\t);\n\n\tconst localRef = (el: HTMLDivElement | null): void => {\n\t\tif (orientation() === \"vertical\") {\n\t\t\tcontext.scrollbarYRef.current = el;\n\t\t} else {\n\t\t\tcontext.scrollbarXRef.current = el;\n\t\t}\n\t\tsetScrollbarElSignal(el);\n\t};\n\n\tconst internalSlot = {\n\t\t\"data-id\": `${context.rootId}-scrollbar`,\n\t\t// Inline state-attr getters (replaces the legacy\n\t\t// `scrollbarStateAttributesMapping`). `cornerHidden` is\n\t\t// intentionally not projected.\n\t\tget [ScrollAreaRootDataAttributes.hasOverflowX](): \"\" | undefined {\n\t\t\treturn state().hasOverflowX ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaRootDataAttributes.hasOverflowY](): \"\" | undefined {\n\t\t\treturn state().hasOverflowY ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaRootDataAttributes.overflowXStart](): \"\" | undefined {\n\t\t\treturn state().overflowXStart ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaRootDataAttributes.overflowXEnd](): \"\" | undefined {\n\t\t\treturn state().overflowXEnd ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaRootDataAttributes.overflowYStart](): \"\" | undefined {\n\t\t\treturn state().overflowYStart ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaRootDataAttributes.overflowYEnd](): \"\" | undefined {\n\t\t\treturn state().overflowYEnd ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaScrollbarDataAttributes.hovering](): \"\" | undefined {\n\t\t\treturn state().hovering ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaScrollbarDataAttributes.scrolling](): \"\" | undefined {\n\t\t\treturn state().scrolling ? \"\" : undefined;\n\t\t},\n\t\tget [ScrollAreaScrollbarDataAttributes.orientation](): string {\n\t\t\treturn String(state().orientation);\n\t\t},\n\t\tonPointerDown: (event: PointerEvent) => {\n\t\t\tif (event.button !== 0) return;\n\t\t\tconst target = getTarget(event) as Element | null;\n\t\t\tconst o = orientation();\n\t\t\tconst thumb =\n\t\t\t\to === \"vertical\"\n\t\t\t\t\t? context.thumbYRef.current\n\t\t\t\t\t: context.thumbXRef.current;\n\t\t\t// Ignore clicks on the thumb.\n\t\t\tif (thumb && contains(thumb, target)) return;\n\t\t\tconst viewportEl = context.viewportRef.current;\n\t\t\tif (!viewportEl) return;\n\n\t\t\tif (o === \"vertical\") {\n\t\t\t\tconst thumbYEl = context.thumbYRef.current;\n\t\t\t\tconst scrollbarYEl = context.scrollbarYRef.current;\n\t\t\t\tif (!thumbYEl || !scrollbarYEl) {\n\t\t\t\t\tcontext.handlePointerDown(event);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst thumbYOffset = getOffset(thumbYEl, \"margin\", \"y\");\n\t\t\t\tconst scrollbarYOffset = getOffset(scrollbarYEl, \"padding\", \"y\");\n\t\t\t\tconst thumbHeight = thumbYEl.offsetHeight;\n\t\t\t\tconst trackRectY = scrollbarYEl.getBoundingClientRect();\n\t\t\t\tconst clickY =\n\t\t\t\t\tevent.clientY -\n\t\t\t\t\ttrackRectY.top -\n\t\t\t\t\tthumbHeight / 2 -\n\t\t\t\t\tscrollbarYOffset +\n\t\t\t\t\tthumbYOffset / 2;\n\t\t\t\tconst scrollableContentHeight = viewportEl.scrollHeight;\n\t\t\t\tconst viewportHeight = viewportEl.clientHeight;\n\t\t\t\tconst maxThumbOffsetY =\n\t\t\t\t\tscrollbarYEl.offsetHeight -\n\t\t\t\t\tthumbHeight -\n\t\t\t\t\tscrollbarYOffset -\n\t\t\t\t\tthumbYOffset;\n\t\t\t\tconst scrollRatioY = clickY / maxThumbOffsetY;\n\t\t\t\tviewportEl.scrollTop =\n\t\t\t\t\tscrollRatioY * (scrollableContentHeight - viewportHeight);\n\t\t\t} else {\n\t\t\t\tconst thumbXEl = context.thumbXRef.current;\n\t\t\t\tconst scrollbarXEl = context.scrollbarXRef.current;\n\t\t\t\tif (!thumbXEl || !scrollbarXEl) {\n\t\t\t\t\tcontext.handlePointerDown(event);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst thumbXOffset = getOffset(thumbXEl, \"margin\", \"x\");\n\t\t\t\tconst scrollbarXOffset = getOffset(scrollbarXEl, \"padding\", \"x\");\n\t\t\t\tconst thumbWidth = thumbXEl.offsetWidth;\n\t\t\t\tconst trackRectX = scrollbarXEl.getBoundingClientRect();\n\t\t\t\tconst clickX =\n\t\t\t\t\tevent.clientX -\n\t\t\t\t\ttrackRectX.left -\n\t\t\t\t\tthumbWidth / 2 -\n\t\t\t\t\tscrollbarXOffset +\n\t\t\t\t\tthumbXOffset / 2;\n\t\t\t\tconst scrollableContentWidth = viewportEl.scrollWidth;\n\t\t\t\tconst viewportWidth = viewportEl.clientWidth;\n\t\t\t\tconst maxThumbOffsetX =\n\t\t\t\t\tscrollbarXEl.offsetWidth -\n\t\t\t\t\tthumbWidth -\n\t\t\t\t\tscrollbarXOffset -\n\t\t\t\t\tthumbXOffset;\n\t\t\t\tconst scrollRatioX = clickX / maxThumbOffsetX;\n\t\t\t\tlet newScrollLeft: number;\n\t\t\t\tif (direction() === \"rtl\") {\n\t\t\t\t\tnewScrollLeft =\n\t\t\t\t\t\t(1 - scrollRatioX) * (scrollableContentWidth - viewportWidth);\n\t\t\t\t\tif (viewportEl.scrollLeft <= 0) {\n\t\t\t\t\t\tnewScrollLeft = -newScrollLeft;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnewScrollLeft =\n\t\t\t\t\t\tscrollRatioX * (scrollableContentWidth - viewportWidth);\n\t\t\t\t}\n\t\t\t\tviewportEl.scrollLeft = newScrollLeft;\n\t\t\t}\n\n\t\t\tcontext.handlePointerDown(event);\n\t\t},\n\t\tonPointerUp: (event: PointerEvent) => {\n\t\t\tcontext.handlePointerUp(event);\n\t\t},\n\t\tget style(): JSX.CSSProperties {\n\t\t\tconst o = orientation();\n\t\t\tconst thumb = context.thumbSize();\n\t\t\tconst base: JSX.CSSProperties = {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\t\"touch-action\": \"none\",\n\t\t\t\t\"-webkit-user-select\": \"none\",\n\t\t\t\t\"user-select\": \"none\",\n\t\t\t};\n\t\t\tif (hideTrackUntilMeasured()) {\n\t\t\t\tbase.visibility = \"hidden\";\n\t\t\t}\n\t\t\tif (o === \"vertical\") {\n\t\t\t\tbase.top = 0;\n\t\t\t\tbase.bottom = `var(${ScrollAreaRootCssVars.scrollAreaCornerHeight})`;\n\t\t\t\tbase[\"inset-inline-end\"] = 0;\n\t\t\t\tbase[ScrollAreaScrollbarCssVars.scrollAreaThumbHeight] =\n\t\t\t\t\t`${thumb.height}px`;\n\t\t\t} else {\n\t\t\t\tbase[\"inset-inline-start\"] = 0;\n\t\t\t\tbase[\"inset-inline-end\"] =\n\t\t\t\t\t`var(${ScrollAreaRootCssVars.scrollAreaCornerWidth})`;\n\t\t\t\tbase.bottom = 0;\n\t\t\t\tbase[ScrollAreaScrollbarCssVars.scrollAreaThumbWidth] =\n\t\t\t\t\t`${thumb.width}px`;\n\t\t\t}\n\t\t\treturn base;\n\t\t},\n\t\tget children() {\n\t\t\treturn (\n\t\t\t\t<ScrollAreaScrollbarContext value={scrollbarContextValue}>\n\t\t\t\t\t{props.children}\n\t\t\t\t</ScrollAreaScrollbarContext>\n\t\t\t);\n\t\t},\n\t};\n\n\tconst styledUserProps = mergeRootProps(userStyling, userProps);\n\n\tconst merged = mergeRootProps(internalSlot, styledUserProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn (\n\t\t<Show when={shouldRender()}>\n\t\t\t<Tag {...merged} ref={composeRefs(localRef, userRef(props))} />\n\t\t</Show>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}