{"version":3,"names":["dynamic","omit","composeRefs","userRef","mergeRootProps","resolveClassStyle","useScrollAreaRootContext","useScrollAreaScrollbarContext","ScrollAreaScrollbarCssVars","ScrollAreaThumbDataAttributes","ScrollAreaThumb","props","root","scrollbar","userStyling","orientation","userProps","localRef","el","thumbYRef","current","thumbXRef","internalSlot","onPointerDown","event","handlePointerDown","onPointerMove","handlePointerMove","onPointerUp","setScrollingY","setScrollingX","handlePointerUp","style","base","hasMeasuredScrollbar","visibility","height","scrollAreaThumbHeight","width","scrollAreaThumbWidth","styledUserProps","merged","Tag","as"],"sources":["scroll-area-thumb.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { omit } from \"solid-js\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useScrollAreaRootContext } from \"../root/scroll-area-root-context.ts\";\nimport { useScrollAreaScrollbarContext } from \"../scrollbar/scroll-area-scrollbar-context.ts\";\nimport { ScrollAreaScrollbarCssVars } from \"../scrollbar/scroll-area-scrollbar-css-vars.ts\";\nimport { ScrollAreaThumbDataAttributes } from \"./scroll-area-thumb-data-attributes.ts\";\n\nexport interface ScrollAreaThumbState {\n\t/** The thumb's orientation. */\n\torientation?: \"horizontal\" | \"vertical\" | undefined;\n}\n\nexport interface ScrollAreaThumbProps\n\textends BaseUIComponentProps<\"div\", ScrollAreaThumbState> {\n\t/** Tag/component to render. Defaults to `\"div\"`. */\n\tas?: ValidComponent;\n}\n\n/**\n * The draggable thumb of the scrollbar. Renders a `<div>` element (or `as`\n * override).\n *\n * §1 wave 3: replaces `renderElement` with `dynamic(() => props.as ?? \"div\")`.\n * The legacy `stateAttributesMapping` (which projected `orientation`) is\n * inlined as a reactive getter on the internal slot bag.\n */\nexport function ScrollAreaThumb(props: ScrollAreaThumbProps): JSX.Element {\n\tconst root = useScrollAreaRootContext();\n\tconst scrollbar = useScrollAreaScrollbarContext();\n\n\tconst userStyling = resolveClassStyle(props, () => ({\n\t\torientation: scrollbar.orientation,\n\t}));\n\n\tconst userProps = omit(props, \"class\", \"style\", \"attrs\", \"as\");\n\n\tconst localRef = (el: HTMLDivElement | null): void => {\n\t\tif (scrollbar.orientation === \"vertical\") {\n\t\t\troot.thumbYRef.current = el;\n\t\t} else {\n\t\t\troot.thumbXRef.current = el;\n\t\t}\n\t};\n\n\tconst internalSlot = {\n\t\t[ScrollAreaThumbDataAttributes.orientation]: scrollbar.orientation,\n\t\tonPointerDown: (event: PointerEvent) => {\n\t\t\troot.handlePointerDown(event);\n\t\t},\n\t\tonPointerMove: (event: PointerEvent) => {\n\t\t\troot.handlePointerMove(event);\n\t\t},\n\t\tonPointerUp: (event: PointerEvent) => {\n\t\t\tif (scrollbar.orientation === \"vertical\") {\n\t\t\t\troot.setScrollingY(false);\n\t\t\t} else {\n\t\t\t\troot.setScrollingX(false);\n\t\t\t}\n\t\t\troot.handlePointerUp(event);\n\t\t},\n\t\tget style(): JSX.CSSProperties {\n\t\t\tconst base: JSX.CSSProperties = {};\n\t\t\tif (!root.hasMeasuredScrollbar()) {\n\t\t\t\tbase.visibility = \"hidden\";\n\t\t\t}\n\t\t\tif (scrollbar.orientation === \"vertical\") {\n\t\t\t\tbase.height = `var(${ScrollAreaScrollbarCssVars.scrollAreaThumbHeight})`;\n\t\t\t} else {\n\t\t\t\tbase.width = `var(${ScrollAreaScrollbarCssVars.scrollAreaThumbWidth})`;\n\t\t\t}\n\t\t\treturn base;\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 <Tag {...merged} ref={composeRefs(localRef, userRef(props))} />;\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASC,IAAI,QAAQ,UAAU;AAC/B,SAASC,WAAW,EAAEC,OAAO,QAAQ,8BAA8B;AACnE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,wBAAwB,QAAQ,qCAAqC;AAC9E,SAASC,6BAA6B,QAAQ,+CAA+C;AAC7F,SAASC,0BAA0B,QAAQ,gDAAgD;AAC3F,SAASC,6BAA6B,QAAQ,wCAAwC;AAatF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,KAA2B,EAAe;EACzE,MAAMC,IAAI,GAAGN,wBAAwB,CAAC,CAAC;EACvC,MAAMO,SAAS,GAAGN,6BAA6B,CAAC,CAAC;EAEjD,MAAMO,WAAW,GAAGT,iBAAiB,CAACM,KAAK,EAAE,OAAO;IACnDI,WAAW,EAAEF,SAAS,CAACE;EACxB,CAAC,CAAC,CAAC;EAEH,MAAMC,SAAS,GAAGf,IAAI,CAACU,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;EAE9D,MAAMM,QAAQ,GAAIC,EAAyB,IAAW;IACrD,IAAIL,SAAS,CAACE,WAAW,KAAK,UAAU,EAAE;MACzCH,IAAI,CAACO,SAAS,CAACC,OAAO,GAAGF,EAAE;IAC5B,CAAC,MAAM;MACNN,IAAI,CAACS,SAAS,CAACD,OAAO,GAAGF,EAAE;IAC5B;EACD,CAAC;EAED,MAAMI,YAAY,GAAG;IACpB,CAACb,6BAA6B,CAACM,WAAW,GAAGF,SAAS,CAACE,WAAW;IAClEQ,aAAa,EAAGC,KAAmB,IAAK;MACvCZ,IAAI,CAACa,iBAAiB,CAACD,KAAK,CAAC;IAC9B,CAAC;IACDE,aAAa,EAAGF,KAAmB,IAAK;MACvCZ,IAAI,CAACe,iBAAiB,CAACH,KAAK,CAAC;IAC9B,CAAC;IACDI,WAAW,EAAGJ,KAAmB,IAAK;MACrC,IAAIX,SAAS,CAACE,WAAW,KAAK,UAAU,EAAE;QACzCH,IAAI,CAACiB,aAAa,CAAC,KAAK,CAAC;MAC1B,CAAC,MAAM;QACNjB,IAAI,CAACkB,aAAa,CAAC,KAAK,CAAC;MAC1B;MACAlB,IAAI,CAACmB,eAAe,CAACP,KAAK,CAAC;IAC5B,CAAC;IACD,IAAIQ,KAAKA,CAAA,EAAsB;MAC9B,MAAMC,IAAuB,GAAG,CAAC,CAAC;MAClC,IAAI,CAACrB,IAAI,CAACsB,oBAAoB,CAAC,CAAC,EAAE;QACjCD,IAAI,CAACE,UAAU,GAAG,QAAQ;MAC3B;MACA,IAAItB,SAAS,CAACE,WAAW,KAAK,UAAU,EAAE;QACzCkB,IAAI,CAACG,MAAM,GAAG,OAAO5B,0BAA0B,CAAC6B,qBAAqB,GAAG;MACzE,CAAC,MAAM;QACNJ,IAAI,CAACK,KAAK,GAAG,OAAO9B,0BAA0B,CAAC+B,oBAAoB,GAAG;MACvE;MACA,OAAON,IAAI;IACZ;EACD,CAAC;EAED,MAAMO,eAAe,GAAGpC,cAAc,CAACU,WAAW,EAAEE,SAAS,CAAC;EAE9D,MAAMyB,MAAM,GAAGrC,cAAc,CAACkB,YAAY,EAAEkB,eAAe,CAAC;EAE5D,MAAME,GAAG,GAAG1C,OAAO,CAAC,MAAMW,KAAK,CAACgC,EAAE,IAAI,KAAK,CAAC;EAC5C,OAAO,CAAC,GAAG,CAAC,IAAIF,MAAM,CAAC,CAAC,GAAG,CAAC,CAACvC,WAAW,CAACe,QAAQ,EAAEd,OAAO,CAACQ,KAAK,CAAC,CAAC,CAAC,GAAG;AACvE","ignoreList":[]}