{"version":3,"file":"index.dev.mjs","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport useLayoutEffect from '@react-hook/passive-layout-effect'\n\n/**\n * A React hook for measuring the size of HTML elements including when they change\n *\n * @param target A React ref created by `useRef()` or an HTML element\n * @param options Configures the initial width and initial height of the hook's state\n */\nconst useSize = <T extends HTMLElement>(\n  target: React.RefObject<T> | T | null,\n  options?: UseSizeOptions\n): [number, number] => {\n  const [size, setSize] = React.useState<[number, number]>(() => {\n    const targetEl = target && 'current' in target ? target.current : target\n    return targetEl\n      ? [targetEl.offsetWidth, targetEl.offsetHeight]\n      : [options?.initialWidth ?? 0, options?.initialHeight ?? 0]\n  })\n\n  useLayoutEffect(() => {\n    const targetEl = target && 'current' in target ? target.current : target\n    if (!targetEl) return\n    setSize([targetEl.offsetWidth, targetEl.offsetHeight])\n  }, [target])\n\n  // Where the magic happens\n  useResizeObserver(target, (entry) => {\n    const target = entry.target as HTMLElement\n    setSize([target.offsetWidth, target.offsetHeight])\n  })\n\n  return size\n}\n\nexport interface UseSizeOptions {\n  // The initial width to set into state.\n  // This is useful for SSR environments.\n  initialWidth: number\n  // The initial height to set into state.\n  // This is useful for SSR environments.\n  initialHeight: number\n}\n\nexport default useSize\n"],"names":["useSize","target","options","size","setSize","React","targetEl","current","offsetWidth","offsetHeight","initialWidth","initialHeight","useLayoutEffect","useResizeObserver","entry"],"mappings":";;;;AAIA;;;;;;;IAMMA,OAAO,GAAG,CACdC,MADc,EAEdC,OAFc,KAGO;AACrB,MAAM,CAACC,IAAD,EAAOC,OAAP,IAAkBC,QAAA,CAAiC,MAAM;AAAA;;AAC7D,QAAMC,QAAQ,GAAGL,MAAM,IAAI,aAAaA,MAAvB,GAAgCA,MAAM,CAACM,OAAvC,GAAiDN,MAAlE;AACA,WAAOK,QAAQ,GACX,CAACA,QAAQ,CAACE,WAAV,EAAuBF,QAAQ,CAACG,YAAhC,CADW,GAEX,0BAACP,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEQ,YAAV,yEAA0B,CAA1B,2BAA6BR,OAA7B,aAA6BA,OAA7B,uBAA6BA,OAAO,CAAES,aAAtC,yEAAuD,CAAvD,CAFJ;AAGD,GALuB,CAAxB;AAOAC,EAAAA,eAAe,CAAC,MAAM;AACpB,QAAMN,QAAQ,GAAGL,MAAM,IAAI,aAAaA,MAAvB,GAAgCA,MAAM,CAACM,OAAvC,GAAiDN,MAAlE;AACA,QAAI,CAACK,QAAL,EAAe;AACfF,IAAAA,OAAO,CAAC,CAACE,QAAQ,CAACE,WAAV,EAAuBF,QAAQ,CAACG,YAAhC,CAAD,CAAP;AACD,GAJc,EAIZ,CAACR,MAAD,CAJY,CAAf,CARqB;;AAerBY,EAAAA,iBAAiB,CAACZ,MAAD,EAAUa,KAAD,IAAW;AACnC,QAAMb,MAAM,GAAGa,KAAK,CAACb,MAArB;AACAG,IAAAA,OAAO,CAAC,CAACH,MAAM,CAACO,WAAR,EAAqBP,MAAM,CAACQ,YAA5B,CAAD,CAAP;AACD,GAHgB,CAAjB;AAKA,SAAON,IAAP;AACD;;;;"}