{"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/use-rect/index.ts"],"sourcesContent":["import { unref } from 'vue'\n\nimport type { Ref } from 'vue'\n\nconst isWindow = (val: unknown): val is Window => val === window\n\nconst makeDOMRect = (width: number, height: number) =>\n  ({\n    top: 0,\n    left: 0,\n    right: width,\n    bottom: height,\n    width,\n    height,\n  } as DOMRect)\n\nexport const useRect = (\n  elementOrRef: Element | Window | Ref<Element | Window | undefined>\n) => {\n  const element = unref(elementOrRef)\n\n  if (isWindow(element)) {\n    const width = element.innerWidth\n    const height = element.innerHeight\n    return makeDOMRect(width, height)\n  }\n\n  if (element?.getBoundingClientRect) {\n    return element.getBoundingClientRect()\n  }\n\n  return makeDOMRect(0, 0)\n}\n"],"names":[],"mappings":";;AAIA,MAAM,QAAA,GAAW,CAAC,GAAA,KAAgC,GAAQ,KAAA,MAAA,CAAA;AAE1D,MAAM,WAAA,GAAc,CAAC,KAAA,EAAe,MACjC,MAAA;AAAA,EACC,GAAK,EAAA,CAAA;AAAA,EACL,IAAM,EAAA,CAAA;AAAA,EACN,KAAO,EAAA,KAAA;AAAA,EACP,MAAQ,EAAA,MAAA;AAAA,EACR,KAAA;AAAA,EACA,MAAA;AACF,CAAA,CAAA,CAAA;AAEW,MAAA,OAAA,GAAU,CACrB,YACG,KAAA;AACH,EAAM,MAAA,OAAA,GAAU,MAAM,YAAY,CAAA,CAAA;AAElC,EAAI,IAAA,QAAA,CAAS,OAAO,CAAG,EAAA;AACrB,IAAA,MAAM,QAAQ,OAAQ,CAAA,UAAA,CAAA;AACtB,IAAA,MAAM,SAAS,OAAQ,CAAA,WAAA,CAAA;AACvB,IAAO,OAAA,WAAA,CAAY,OAAO,MAAM,CAAA,CAAA;AAAA,GAClC;AAEA,EAAA,IAAI,mCAAS,qBAAuB,EAAA;AAClC,IAAA,OAAO,QAAQ,qBAAsB,EAAA,CAAA;AAAA,GACvC;AAEA,EAAO,OAAA,WAAA,CAAY,GAAG,CAAC,CAAA,CAAA;AACzB;;;;"}