{"version":3,"file":"useSelectWidth.mjs","sources":["../../../packages/select/useSelectWidth.ts"],"sourcesContent":["import { useCallback, useState, useEffect, RefObject } from 'react'\n\nexport const useSelectWidth = <T extends HTMLElement>(\n  opened: boolean,\n  anchorRef: RefObject<T | null>,\n): number | undefined => {\n  const [width, setWidth] = useState<number>()\n\n  const updateWidth = useCallback(() => {\n    if (!anchorRef.current) return\n    const rect = anchorRef.current.getBoundingClientRect()\n\n    setWidth(rect.width)\n  }, [anchorRef])\n\n  useEffect(() => {\n    if (!opened || !anchorRef.current) return\n\n    const observer = new ResizeObserver(updateWidth)\n    observer.observe(anchorRef.current)\n\n    return (): void => observer.disconnect()\n  }, [opened, anchorRef, updateWidth])\n\n  return width\n}\n"],"names":["useSelectWidth","opened","anchorRef","width","setWidth","useState","updateWidth","useCallback","current","rect","getBoundingClientRect","useEffect","observer","ResizeObserver","observe","disconnect"],"mappings":";;MAEaA,cAAc,GAAGA,CAC5BC,MAAe,EACfC,SAA8B,KACP;EACvB,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,EAAU,CAAA;AAE5C,EAAA,MAAMC,WAAW,GAAGC,WAAW,CAAC,MAAM;AACpC,IAAA,IAAI,CAACL,SAAS,CAACM,OAAO,EAAE,OAAA;IACxB,MAAMC,IAAI,GAAGP,SAAS,CAACM,OAAO,CAACE,qBAAqB,EAAE,CAAA;AAEtDN,IAAAA,QAAQ,CAACK,IAAI,CAACN,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAACD,SAAS,CAAC,CAAC,CAAA;AAEfS,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACV,MAAM,IAAI,CAACC,SAAS,CAACM,OAAO,EAAE,OAAA;AAEnC,IAAA,MAAMI,QAAQ,GAAG,IAAIC,cAAc,CAACP,WAAW,CAAC,CAAA;AAChDM,IAAAA,QAAQ,CAACE,OAAO,CAACZ,SAAS,CAACM,OAAO,CAAC,CAAA;AAEnC,IAAA,OAAO,MAAYI,QAAQ,CAACG,UAAU,EAAE,CAAA;GACzC,EAAE,CAACd,MAAM,EAAEC,SAAS,EAAEI,WAAW,CAAC,CAAC,CAAA;AAEpC,EAAA,OAAOH,KAAK,CAAA;AACd;;;;"}