{"version":3,"file":"use-dimensions.cjs","names":[],"sources":["../../../src/components/OverflowList/use-dimensions.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\n\ninterface ResizeObserverDimensions {\n  width: number;\n  height: number;\n  contentWidth: number;\n  contentHeight: number;\n}\nexport function useDimensions<T extends HTMLElement | null>(\n  elementRef: React.RefObject<T>\n): ResizeObserverDimensions | null {\n  const resizeObserverRef = useRef<ResizeObserver | null>(null);\n  const [dimensions, setDimensions] = useState<ResizeObserverDimensions | null>(null);\n\n  useEffect(() => {\n    if (!elementRef.current) {\n      return;\n    }\n\n    resizeObserverRef.current = new ResizeObserver((entries) => {\n      if (entries[0]) {\n        const entry = entries[0];\n        const updateDimensions = () => {\n          setDimensions({\n            width: entry.borderBoxSize[0]?.inlineSize ?? entry.target.clientWidth,\n            height: entry.borderBoxSize[0]?.blockSize ?? entry.target.clientHeight,\n            contentWidth: entry.contentRect.width,\n            contentHeight: entry.contentRect.height,\n          });\n        };\n\n        flushSync(updateDimensions);\n      }\n    });\n\n    resizeObserverRef.current.observe(elementRef.current);\n\n    return () => {\n      if (resizeObserverRef.current) {\n        resizeObserverRef.current.disconnect();\n        resizeObserverRef.current = null;\n      }\n    };\n  }, [elementRef.current]);\n\n  return dimensions;\n}\n"],"mappings":";;;;;AASA,SAAgB,cACd,YACiC;CACjC,MAAM,qBAAA,GAAA,MAAA,QAAkD,IAAI;CAC5D,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAA2D,IAAI;CAElF,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,CAAC,WAAW,SACd;EAGF,kBAAkB,UAAU,IAAI,gBAAgB,YAAY;GAC1D,IAAI,QAAQ,IAAI;IACd,MAAM,QAAQ,QAAQ;IACtB,MAAM,yBAAyB;KAC7B,cAAc;MACZ,OAAO,MAAM,cAAc,IAAI,cAAc,MAAM,OAAO;MAC1D,QAAQ,MAAM,cAAc,IAAI,aAAa,MAAM,OAAO;MAC1D,cAAc,MAAM,YAAY;MAChC,eAAe,MAAM,YAAY;KACnC,CAAC;IACH;IAEA,CAAA,GAAA,UAAA,WAAU,gBAAgB;GAC5B;EACF,CAAC;EAED,kBAAkB,QAAQ,QAAQ,WAAW,OAAO;EAEpD,aAAa;GACX,IAAI,kBAAkB,SAAS;IAC7B,kBAAkB,QAAQ,WAAW;IACrC,kBAAkB,UAAU;GAC9B;EACF;CACF,GAAG,CAAC,WAAW,OAAO,CAAC;CAEvB,OAAO;AACT"}