{"version":3,"file":"ScrollAreaCorner.mjs","names":[],"sources":["../../../../src/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\n\ninterface ScrollAreaCornerProps extends React.ComponentProps<'div'> {}\n\nexport function Corner(props: ScrollAreaCornerProps) {\n  const { style, ...others } = props;\n  const ctx = useScrollAreaContext();\n  const [width, setWidth] = useState(0);\n  const [height, setHeight] = useState(0);\n  const hasSize = Boolean(width && height);\n\n  useResizeObserver(ctx.scrollbarX, () => {\n    const h = ctx.scrollbarX?.offsetHeight || 0;\n    ctx.onCornerHeightChange(h);\n    setHeight(h);\n  });\n\n  useResizeObserver(ctx.scrollbarY, () => {\n    const w = ctx.scrollbarY?.offsetWidth || 0;\n    ctx.onCornerWidthChange(w);\n    setWidth(w);\n  });\n\n  return hasSize ? <div {...others} style={{ ...style, width, height }} /> : null;\n}\n\nexport function ScrollAreaCorner(props: ScrollAreaCornerProps) {\n  const ctx = useScrollAreaContext();\n  const hasBothScrollbarsVisible = Boolean(ctx.scrollbarX && ctx.scrollbarY);\n  const hasCorner = ctx.type !== 'scroll' && hasBothScrollbarsVisible;\n  return hasCorner ? <Corner {...props} /> : null;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,OAAO,OAA8B;CACnD,MAAM,EAAE,OAAO,GAAG,WAAW;CAC7B,MAAM,MAAM,sBAAsB;CAClC,MAAM,CAAC,OAAO,YAAY,SAAS,EAAE;CACrC,MAAM,CAAC,QAAQ,aAAa,SAAS,EAAE;CACvC,MAAM,UAAU,QAAQ,SAAS,OAAO;AAExC,mBAAkB,IAAI,kBAAkB;EACtC,MAAM,IAAI,IAAI,YAAY,gBAAgB;AAC1C,MAAI,qBAAqB,EAAE;AAC3B,YAAU,EAAE;GACZ;AAEF,mBAAkB,IAAI,kBAAkB;EACtC,MAAM,IAAI,IAAI,YAAY,eAAe;AACzC,MAAI,oBAAoB,EAAE;AAC1B,WAAS,EAAE;GACX;AAEF,QAAO,UAAU,oBAAC,OAAD;EAAK,GAAI;EAAQ,OAAO;GAAE,GAAG;GAAO;GAAO;GAAQ;EAAI,CAAA,GAAG;;AAG7E,SAAgB,iBAAiB,OAA8B;CAC7D,MAAM,MAAM,sBAAsB;CAClC,MAAM,2BAA2B,QAAQ,IAAI,cAAc,IAAI,WAAW;AAE1E,QADkB,IAAI,SAAS,YAAY,2BACxB,oBAAC,QAAD,EAAQ,GAAI,OAAS,CAAA,GAAG"}