{"version":3,"names":["dynamic","createEffect","createSignal","omit","composeRefs","userRef","mergeRootProps","resolveClassStyle","useScrollAreaRootContext","scrollAreaDataAttrs","useScrollAreaViewportContext","ScrollAreaContent","props","root","viewport","contentWrapper","setContentWrapper","ownedWrite","el","ResizeObserver","hasInitialized","ro","computeThumbPosition","observe","disconnect","userStyling","viewportState","userProps","localRef","internalSlot","role","style","styledUserProps","merged","Tag","as"],"sources":["scroll-area-content.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createEffect, createSignal, 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 {\n\ttype ScrollAreaRootState,\n\tuseScrollAreaRootContext,\n} from \"../root/scroll-area-root-context.ts\";\nimport { scrollAreaDataAttrs } from \"../utils/state-attrs.ts\";\nimport { useScrollAreaViewportContext } from \"../viewport/scroll-area-viewport-context.ts\";\n\nexport interface ScrollAreaContentState extends ScrollAreaRootState {}\n\nexport interface ScrollAreaContentProps\n\textends BaseUIComponentProps<\"div\", ScrollAreaContentState> {\n\t/** Tag/component to render. Defaults to `\"div\"`. */\n\tas?: ValidComponent;\n}\n\n/**\n * Container for the scrollable content. Renders a `<div>` element (or `as`\n * override). Runs a `ResizeObserver` on its own wrapper so size changes within\n * the content re-trigger the viewport's thumb recompute.\n *\n * §1 wave 3: replaces `renderElement` with `dynamic(() => props.as ?? \"div\")`.\n */\nexport function ScrollAreaContent(props: ScrollAreaContentProps): JSX.Element {\n\tconst root = useScrollAreaRootContext();\n\tconst viewport = useScrollAreaViewportContext();\n\n\tconst [contentWrapper, setContentWrapper] =\n\t\tcreateSignal<HTMLDivElement | null>(null, { ownedWrite: true });\n\n\tcreateEffect(\n\t\t() => contentWrapper(),\n\t\t(el) => {\n\t\t\tif (typeof ResizeObserver === \"undefined\" || !el) return;\n\t\t\tlet hasInitialized = false;\n\t\t\tconst ro = new ResizeObserver(() => {\n\t\t\t\t// Skip the initial delivery to avoid double-counting the mount\n\t\t\t\t// pass which the viewport already performed.\n\t\t\t\tif (!hasInitialized) {\n\t\t\t\t\thasInitialized = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tviewport.computeThumbPosition();\n\t\t\t});\n\t\t\tro.observe(el);\n\t\t\treturn () => {\n\t\t\t\tro.disconnect();\n\t\t\t};\n\t\t},\n\t);\n\n\tconst userStyling = resolveClassStyle(props, () => root.viewportState());\n\n\tconst userProps = omit(props, \"class\", \"style\", \"attrs\", \"as\");\n\n\tconst localRef = (el: HTMLDivElement | null): void => {\n\t\tsetContentWrapper(el);\n\t};\n\n\tconst internalSlot = {\n\t\trole: \"presentation\" as const,\n\t\tstyle: { \"min-width\": \"fit-content\" } as JSX.CSSProperties,\n\t};\n\n\tconst styledUserProps = mergeRootProps(userStyling, userProps);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tinternalSlot,\n\t\tscrollAreaDataAttrs(root.viewportState),\n\t);\n\tmerged = mergeRootProps(merged, 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,YAAY,EAAEC,YAAY,EAAEC,IAAI,QAAQ,UAAU;AAC3D,SAASC,WAAW,EAAEC,OAAO,QAAQ,8BAA8B;AACnE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAECC,wBAAwB,QAClB,qCAAqC;AAC5C,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,4BAA4B,QAAQ,6CAA6C;AAU1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,KAA6B,EAAe;EAC7E,MAAMC,IAAI,GAAGL,wBAAwB,CAAC,CAAC;EACvC,MAAMM,QAAQ,GAAGJ,4BAA4B,CAAC,CAAC;EAE/C,MAAM,CAACK,cAAc,EAAEC,iBAAiB,CAAC,GACxCd,YAAY,CAAwB,IAAI,EAAE;IAAEe,UAAU,EAAE;EAAK,CAAC,CAAC;EAEhEhB,YAAY,CACX,MAAMc,cAAc,CAAC,CAAC,EACrBG,EAAE,IAAK;IACP,IAAI,OAAOC,cAAc,KAAK,WAAW,IAAI,CAACD,EAAE,EAAE;IAClD,IAAIE,cAAc,GAAG,KAAK;IAC1B,MAAMC,EAAE,GAAG,IAAIF,cAAc,CAAC,MAAM;MACnC;MACA;MACA,IAAI,CAACC,cAAc,EAAE;QACpBA,cAAc,GAAG,IAAI;QACrB;MACD;MACAN,QAAQ,CAACQ,oBAAoB,CAAC,CAAC;IAChC,CAAC,CAAC;IACFD,EAAE,CAACE,OAAO,CAACL,EAAE,CAAC;IACd,OAAO,MAAM;MACZG,EAAE,CAACG,UAAU,CAAC,CAAC;IAChB,CAAC;EACF,CACD,CAAC;EAED,MAAMC,WAAW,GAAGlB,iBAAiB,CAACK,KAAK,EAAE,MAAMC,IAAI,CAACa,aAAa,CAAC,CAAC,CAAC;EAExE,MAAMC,SAAS,GAAGxB,IAAI,CAACS,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;EAE9D,MAAMgB,QAAQ,GAAIV,EAAyB,IAAW;IACrDF,iBAAiB,CAACE,EAAE,CAAC;EACtB,CAAC;EAED,MAAMW,YAAY,GAAG;IACpBC,IAAI,EAAE,cAAuB;IAC7BC,KAAK,EAAE;MAAE,WAAW,EAAE;IAAc;EACrC,CAAC;EAED,MAAMC,eAAe,GAAG1B,cAAc,CAACmB,WAAW,EAAEE,SAAS,CAAC;EAE9D,IAAIM,MAA+B,GAAG3B,cAAc,CACnDuB,YAAY,EACZpB,mBAAmB,CAACI,IAAI,CAACa,aAAa,CACvC,CAAC;EACDO,MAAM,GAAG3B,cAAc,CAAC2B,MAAM,EAAED,eAAe,CAAC;EAEhD,MAAME,GAAG,GAAGlC,OAAO,CAAC,MAAMY,KAAK,CAACuB,EAAE,IAAI,KAAK,CAAC;EAC5C,OAAO,CAAC,GAAG,CAAC,IAAIF,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC7B,WAAW,CAACwB,QAAQ,EAAEvB,OAAO,CAACO,KAAK,CAAC,CAAC,CAAC,GAAG;AACvE","ignoreList":[]}