UNPKG

reka-ui

Version:

Vue port for Radix UI Primitives.

54 lines (52 loc) 1.55 kB
const require_rolldown_runtime = require('../rolldown-runtime.cjs'); const vue = require_rolldown_runtime.__toESM(require("vue")); const __vueuse_core = require_rolldown_runtime.__toESM(require("@vueuse/core")); //#region src/shared/useSize.ts function useSize(element) { const size = (0, vue.ref)(); const width = (0, vue.computed)(() => size.value?.width ?? 0); const height = (0, vue.computed)(() => size.value?.height ?? 0); (0, vue.onMounted)(() => { const el = (0, __vueuse_core.unrefElement)(element); if (el) { size.value = { width: el.offsetWidth, height: el.offsetHeight }; const resizeObserver = new ResizeObserver((entries) => { if (!Array.isArray(entries)) return; if (!entries.length) return; const entry = entries[0]; let width$1; let height$1; if ("borderBoxSize" in entry) { const borderSizeEntry = entry.borderBoxSize; const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry; width$1 = borderSize.inlineSize; height$1 = borderSize.blockSize; } else { width$1 = el.offsetWidth; height$1 = el.offsetHeight; } size.value = { width: width$1, height: height$1 }; }); resizeObserver.observe(el, { box: "border-box" }); return () => resizeObserver.unobserve(el); } else size.value = void 0; }); return { width, height }; } //#endregion Object.defineProperty(exports, 'useSize', { enumerable: true, get: function () { return useSize; } }); //# sourceMappingURL=useSize.cjs.map