{"version":3,"file":"ScrollbarX.cjs","names":["useScrollAreaContext","Scrollbar","getThumbSize","isScrollingWithinScrollbarBounds","toInt"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAxisProps } from '../ScrollArea.types';\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils';\nimport { Scrollbar } from './Scrollbar';\n\nexport const ScrollAreaScrollbarX = (props: ScrollAreaScrollbarAxisProps) => {\n  const { sizes, onSizesChange, style, ref: forwardedRef, ...others } = props;\n  const ctx = useScrollAreaContext();\n  const [computedStyle, setComputedStyle] = useState<CSSStyleDeclaration>();\n  const ref = useRef<HTMLDivElement>(null);\n  const composeRefs = useMergedRef(forwardedRef, ref, ctx.onScrollbarXChange);\n\n  useEffect(() => {\n    if (ref.current) {\n      setComputedStyle(getComputedStyle(ref.current));\n    }\n  }, [ref]);\n\n  return (\n    <Scrollbar\n      data-orientation=\"horizontal\"\n      {...others}\n      ref={composeRefs}\n      sizes={sizes}\n      style={{\n        ...style,\n        ['--sa-thumb-width' as any]: `${getThumbSize(sizes)}px`,\n      }}\n      onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.x)}\n      onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n      onWheelScroll={(event, maxScrollPos) => {\n        if (ctx.viewport) {\n          const scrollPos = ctx.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 && ctx.viewport && computedStyle) {\n          onSizesChange({\n            content: ctx.viewport.scrollWidth,\n            viewport: ctx.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};\n\nScrollAreaScrollbarX.displayName = '@mantine/core/ScrollAreaScrollbarX';\n"],"mappings":";;;;;;;;;;;AAOA,MAAa,wBAAwB,UAAwC;CAC3E,MAAM,EAAE,OAAO,eAAe,OAAO,KAAK,cAAc,GAAG,WAAW;CACtE,MAAM,MAAMA,2BAAAA,sBAAsB;CAClC,MAAM,CAAC,eAAe,qBAAA,GAAA,MAAA,WAAmD;CACzE,MAAM,OAAA,GAAA,MAAA,QAA6B,KAAK;CACxC,MAAM,eAAA,GAAA,eAAA,cAA2B,cAAc,KAAK,IAAI,mBAAmB;AAE3E,EAAA,GAAA,MAAA,iBAAgB;AACd,MAAI,IAAI,QACN,kBAAiB,iBAAiB,IAAI,QAAQ,CAAC;IAEhD,CAAC,IAAI,CAAC;AAET,QACE,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;EACE,oBAAiB;EACjB,GAAI;EACJ,KAAK;EACE;EACP,OAAO;GACL,GAAG;IACF,qBAA4B,GAAGC,uBAAAA,aAAa,MAAM,CAAC;GACrD;EACD,qBAAqB,eAAe,MAAM,mBAAmB,WAAW,EAAE;EAC1E,eAAe,eAAe,MAAM,aAAa,WAAW,EAAE;EAC9D,gBAAgB,OAAO,iBAAiB;AACtC,OAAI,IAAI,UAAU;IAChB,MAAM,YAAY,IAAI,SAAS,aAAa,MAAM;AAClD,UAAM,cAAc,UAAU;AAC9B,QAAIC,6CAAAA,iCAAiC,WAAW,aAAa,CAC3D,OAAM,gBAAgB;;;EAI5B,gBAAgB;AACd,OAAI,IAAI,WAAW,IAAI,YAAY,cACjC,eAAc;IACZ,SAAS,IAAI,SAAS;IACtB,UAAU,IAAI,SAAS;IACvB,WAAW;KACT,MAAM,IAAI,QAAQ;KAClB,cAAcC,eAAAA,MAAM,cAAc,YAAY;KAC9C,YAAYA,eAAAA,MAAM,cAAc,aAAa;KAC9C;IACF,CAAC;;EAGN,CAAA;;AAIN,qBAAqB,cAAc"}