{"version":3,"file":"ScrollAreaScrollbarHover.mjs","sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAuto, ScrollAreaScrollbarAutoProps } from './ScrollAreaScrollbarAuto';\n\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n  forceMount?: true;\n}\n\nexport const ScrollAreaScrollbarHover = forwardRef<HTMLDivElement, ScrollAreaScrollbarHoverProps>(\n  (props, ref) => {\n    const { forceMount, ...scrollbarProps } = props;\n    const context = useScrollAreaContext();\n    const [visible, setVisible] = useState(false);\n\n    useEffect(() => {\n      const { scrollArea } = context;\n      let hideTimer = 0;\n      if (scrollArea) {\n        const handlePointerEnter = () => {\n          window.clearTimeout(hideTimer);\n          setVisible(true);\n        };\n        const handlePointerLeave = () => {\n          hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n        };\n        scrollArea.addEventListener('pointerenter', handlePointerEnter);\n        scrollArea.addEventListener('pointerleave', handlePointerLeave);\n\n        return () => {\n          window.clearTimeout(hideTimer);\n          scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n          scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n        };\n      }\n\n      return undefined;\n    }, [context.scrollArea, context.scrollHideDelay]);\n\n    if (forceMount || visible) {\n      return (\n        <ScrollAreaScrollbarAuto\n          data-state={visible ? 'visible' : 'hidden'}\n          {...scrollbarProps}\n          ref={ref}\n        />\n      );\n    }\n\n    return null;\n  }\n);\n\nScrollAreaScrollbarHover.displayName = '@raikou/core/ScrollAreaScrollbarHover';\n"],"names":[],"mappings":";;;;;AAQO,MAAM,wBAA2B,GAAA,UAAA;AAAA,EACtC,CAAC,OAAO,GAAQ,KAAA;AACd,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAmB,GAAA,KAAA;AAC1C,IAAA,MAAM,UAAU,oBAAqB,EAAA;AACrC,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAE5C,IAAA,SAAA,CAAU,MAAM;AACd,MAAM,MAAA,EAAE,YAAe,GAAA,OAAA;AACvB,MAAA,IAAI,SAAY,GAAA,CAAA;AAChB,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,MAAM,qBAAqB,MAAM;AAC/B,UAAA,MAAA,CAAO,aAAa,SAAS,CAAA;AAC7B,UAAA,UAAA,CAAW,IAAI,CAAA;AAAA,SACjB;AACA,QAAA,MAAM,qBAAqB,MAAM;AAC/B,UAAA,SAAA,GAAY,OAAO,UAAW,CAAA,MAAM,WAAW,KAAK,CAAA,EAAG,QAAQ,eAAe,CAAA;AAAA,SAChF;AACA,QAAW,UAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA;AAC9D,QAAW,UAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA;AAE9D,QAAA,OAAO,MAAM;AACX,UAAA,MAAA,CAAO,aAAa,SAAS,CAAA;AAC7B,UAAW,UAAA,CAAA,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA;AACjE,UAAW,UAAA,CAAA,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA;AAAA,SACnE;AAAA;AAGF,MAAO,OAAA,KAAA,CAAA;AAAA,OACN,CAAC,OAAA,CAAQ,UAAY,EAAA,OAAA,CAAQ,eAAe,CAAC,CAAA;AAEhD,IAAA,IAAI,cAAc,OAAS,EAAA;AACzB,MACE,uBAAA,GAAA;AAAA,QAAC,uBAAA;AAAA,QAAA;AAAA,UACC,YAAA,EAAY,UAAU,SAAY,GAAA,QAAA;AAAA,UACjC,GAAG,cAAA;AAAA,UACJ;AAAA;AAAA,OACF;AAAA;AAIJ,IAAO,OAAA,IAAA;AAAA;AAEX;AAEA,wBAAA,CAAyB,WAAc,GAAA,uCAAA;;;;"}