@vueuse/components 10.1.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs CHANGED
@@ -116,10 +116,12 @@ function onClickOutside(target, handler, options = {}) {
116
116
  shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);
117
117
  }, { passive: true }),
118
118
  detectIframe && useEventListener(window, "blur", (event) => {
119
- var _a;
120
- const el = unrefElement(target);
121
- if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement)))
122
- handler(event);
119
+ setTimeout(() => {
120
+ var _a;
121
+ const el = unrefElement(target);
122
+ if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement)))
123
+ handler(event);
124
+ }, 0);
123
125
  })
124
126
  ].filter(Boolean);
125
127
  const stop = () => cleanup.forEach((fn) => fn());
@@ -599,7 +601,8 @@ function useColorMode(options = {}) {
599
601
  let style;
600
602
  if (disableTransition) {
601
603
  style = window.document.createElement("style");
602
- style.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"));
604
+ const styleString = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";
605
+ style.appendChild(document.createTextNode(styleString));
603
606
  window.document.head.appendChild(style);
604
607
  }
605
608
  if (attribute2 === "class") {
@@ -770,7 +773,10 @@ const UseDraggable = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
770
773
  "pointerTypes",
771
774
  "as",
772
775
  "handle",
773
- "axis"
776
+ "axis",
777
+ "onStart",
778
+ "onMove",
779
+ "onEnd"
774
780
  ],
775
781
  setup(props, { slots }) {
776
782
  const target = vueDemi.ref();
@@ -784,7 +790,9 @@ const UseDraggable = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
784
790
  core.isClient ? props.storageType === "session" ? sessionStorage : localStorage : void 0
785
791
  );
786
792
  const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };
787
- const onEnd = (position) => {
793
+ const onEnd = (position, event) => {
794
+ var _a;
795
+ (_a = props.onEnd) == null ? void 0 : _a.call(props, position, event);
788
796
  if (!storageValue)
789
797
  return;
790
798
  storageValue.value.x = position.x;
@@ -930,8 +938,8 @@ function useElementSize(target, initialSize = { width: 0, height: 0 }, options =
930
938
  const $elem = unrefElement(target);
931
939
  if ($elem) {
932
940
  const styles = window.getComputedStyle($elem);
933
- width.value = parseFloat(styles.width);
934
- height.value = parseFloat(styles.height);
941
+ width.value = Number.parseFloat(styles.width);
942
+ height.value = Number.parseFloat(styles.height);
935
943
  }
936
944
  } else {
937
945
  if (boxSize) {
@@ -1220,12 +1228,20 @@ var __spreadValues$9 = (a, b) => {
1220
1228
  async function loadImage(options) {
1221
1229
  return new Promise((resolve, reject) => {
1222
1230
  const img = new Image();
1223
- const { src, srcset, sizes } = options;
1231
+ const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;
1224
1232
  img.src = src;
1225
1233
  if (srcset)
1226
1234
  img.srcset = srcset;
1227
1235
  if (sizes)
1228
1236
  img.sizes = sizes;
1237
+ if (clazz)
1238
+ img.className = clazz;
1239
+ if (loading)
1240
+ img.loading = loading;
1241
+ if (crossorigin)
1242
+ img.crossOrigin = crossorigin;
1243
+ if (referrerPolicy)
1244
+ img.referrerPolicy = referrerPolicy;
1229
1245
  img.onload = () => resolve(img);
1230
1246
  img.onerror = reject;
1231
1247
  });
@@ -1252,7 +1268,12 @@ const UseImage = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1252
1268
  "src",
1253
1269
  "srcset",
1254
1270
  "sizes",
1255
- "as"
1271
+ "as",
1272
+ "alt",
1273
+ "class",
1274
+ "loading",
1275
+ "crossorigin",
1276
+ "referrerPolicy"
1256
1277
  ],
1257
1278
  setup(props, { slots }) {
1258
1279
  const data = vueDemi.reactive(useImage(props));
@@ -1340,14 +1361,14 @@ function useScroll(element, options = {}) {
1340
1361
  onStop(e);
1341
1362
  };
1342
1363
  const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);
1343
- const onScrollHandler = (e) => {
1344
- const eventTarget = e.target === document ? e.target.documentElement : e.target;
1345
- const { display, flexDirection } = getComputedStyle(eventTarget);
1346
- const scrollLeft = eventTarget.scrollLeft;
1364
+ const setArrivedState = (target) => {
1365
+ const el = target === window ? target.document.documentElement : target === document ? target.documentElement : target;
1366
+ const { display, flexDirection } = getComputedStyle(el);
1367
+ const scrollLeft = el.scrollLeft;
1347
1368
  directions.left = scrollLeft < internalX.value;
1348
1369
  directions.right = scrollLeft > internalX.value;
1349
1370
  const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
1350
- const right = Math.abs(scrollLeft) + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1371
+ const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1351
1372
  if (display === "flex" && flexDirection === "row-reverse") {
1352
1373
  arrivedState.left = right;
1353
1374
  arrivedState.right = left;
@@ -1356,13 +1377,13 @@ function useScroll(element, options = {}) {
1356
1377
  arrivedState.right = right;
1357
1378
  }
1358
1379
  internalX.value = scrollLeft;
1359
- let scrollTop = eventTarget.scrollTop;
1360
- if (e.target === document && !scrollTop)
1380
+ let scrollTop = el.scrollTop;
1381
+ if (target === document && !scrollTop)
1361
1382
  scrollTop = document.body.scrollTop;
1362
1383
  directions.top = scrollTop < internalY.value;
1363
1384
  directions.bottom = scrollTop > internalY.value;
1364
1385
  const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
1365
- const bottom = Math.abs(scrollTop) + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1386
+ const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1366
1387
  if (display === "flex" && flexDirection === "column-reverse") {
1367
1388
  arrivedState.top = bottom;
1368
1389
  arrivedState.bottom = top;
@@ -1371,6 +1392,10 @@ function useScroll(element, options = {}) {
1371
1392
  arrivedState.bottom = bottom;
1372
1393
  }
1373
1394
  internalY.value = scrollTop;
1395
+ };
1396
+ const onScrollHandler = (e) => {
1397
+ const eventTarget = e.target === document ? e.target.documentElement : e.target;
1398
+ setArrivedState(eventTarget);
1374
1399
  isScrolling.value = true;
1375
1400
  onScrollEndDebounced(e);
1376
1401
  onScroll(e);
@@ -1392,7 +1417,12 @@ function useScroll(element, options = {}) {
1392
1417
  y,
1393
1418
  isScrolling,
1394
1419
  arrivedState,
1395
- directions
1420
+ directions,
1421
+ measure() {
1422
+ const _element = shared.toValue(element);
1423
+ if (_element)
1424
+ setArrivedState(_element);
1425
+ }
1396
1426
  };
1397
1427
  }
1398
1428
 
@@ -1432,6 +1462,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
1432
1462
  const promise = vueDemi.ref();
1433
1463
  const isLoading = vueDemi.computed(() => !!promise.value);
1434
1464
  function checkAndLoad() {
1465
+ state.measure();
1435
1466
  const el = shared.toValue(element);
1436
1467
  if (!el)
1437
1468
  return;
@@ -1856,7 +1887,7 @@ function useCssVar(prop, target, options = {}) {
1856
1887
  }
1857
1888
  if (observe) {
1858
1889
  useMutationObserver(elRef, updateCssVar, {
1859
- attributes: true,
1890
+ attributeFilter: ["style", "class"],
1860
1891
  window
1861
1892
  });
1862
1893
  }
@@ -2000,7 +2031,7 @@ const vScroll = {
2000
2031
 
2001
2032
  function checkOverflowScroll(ele) {
2002
2033
  const style = window.getComputedStyle(ele);
2003
- if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientHeight < ele.scrollHeight || style.overflowY === "auto" && ele.clientWidth < ele.scrollWidth) {
2034
+ if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) {
2004
2035
  return true;
2005
2036
  } else {
2006
2037
  const parent = ele.parentNode;
package/index.d.ts CHANGED
@@ -46,7 +46,7 @@ type OnClickOutsideHandler<T extends {
46
46
  interface OnClickOutsideProps extends RenderableComponent {
47
47
  options?: OnClickOutsideOptions;
48
48
  }
49
- declare const OnClickOutside: vue_demi.DefineComponent<OnClickOutsideProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<OnClickOutsideProps>, {}>;
49
+ declare const OnClickOutside: vue_demi.DefineComponent<OnClickOutsideProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<OnClickOutsideProps>, {}, {}>;
50
50
 
51
51
  declare const vOnClickOutside: ObjectDirective<HTMLElement, OnClickOutsideHandler | [(evt: any) => void, OnClickOutsideOptions]>;
52
52
 
@@ -87,7 +87,7 @@ interface OnLongPressModifiers {
87
87
  interface OnLongPressProps extends RenderableComponent {
88
88
  options?: OnLongPressOptions;
89
89
  }
90
- declare const OnLongPress: vue_demi.DefineComponent<OnLongPressProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<OnLongPressProps>, {}>;
90
+ declare const OnLongPress: vue_demi.DefineComponent<OnLongPressProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<OnLongPressProps>, {}, {}>;
91
91
 
92
92
  type BindingValueFunction$6 = (evt: PointerEvent) => void;
93
93
  type BindingValueArray$5 = [
@@ -98,15 +98,15 @@ declare const vOnLongPress: ObjectDirective<HTMLElement, BindingValueFunction$6
98
98
 
99
99
  declare const UseActiveElement: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
100
100
  [key: string]: any;
101
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
101
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
102
102
 
103
103
  declare const UseBattery: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
104
104
  [key: string]: any;
105
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
105
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
106
106
 
107
107
  declare const UseBrowserLocation: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
108
108
  [key: string]: any;
109
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
109
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
110
110
 
111
111
  interface StorageLike {
112
112
  getItem(key: string): string | null;
@@ -236,27 +236,27 @@ interface UseColorModeOptions<T extends string = BasicColorMode> extends UseStor
236
236
  disableTransition?: boolean;
237
237
  }
238
238
 
239
- declare const UseColorMode: vue_demi.DefineComponent<UseColorModeOptions<BasicColorMode>, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseColorModeOptions<BasicColorMode>>, {}>;
239
+ declare const UseColorMode: vue_demi.DefineComponent<UseColorModeOptions<BasicColorMode>, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseColorModeOptions<BasicColorMode>>, {}, {}>;
240
240
 
241
- declare const UseDark: vue_demi.DefineComponent<UseDarkOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDarkOptions>, {}>;
241
+ declare const UseDark: vue_demi.DefineComponent<UseDarkOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDarkOptions>, {}, {}>;
242
242
 
243
243
  declare const UseDeviceMotion: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
244
244
  [key: string]: any;
245
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
245
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
246
246
 
247
247
  declare const UseDeviceOrientation: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
248
248
  [key: string]: any;
249
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
249
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
250
250
 
251
251
  declare const UseDevicePixelRatio: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
252
252
  [key: string]: any;
253
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
253
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
254
254
 
255
- declare const UseDevicesList: vue_demi.DefineComponent<UseDevicesListOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDevicesListOptions>, {}>;
255
+ declare const UseDevicesList: vue_demi.DefineComponent<UseDevicesListOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDevicesListOptions>, {}, {}>;
256
256
 
257
257
  declare const UseDocumentVisibility: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
258
258
  [key: string]: any;
259
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
259
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
260
260
 
261
261
  interface UseDraggableProps extends UseDraggableOptions, RenderableComponent {
262
262
  /**
@@ -270,7 +270,7 @@ interface UseDraggableProps extends UseDraggableOptions, RenderableComponent {
270
270
  */
271
271
  storageType?: 'local' | 'session';
272
272
  }
273
- declare const UseDraggable: vue_demi.DefineComponent<UseDraggableProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDraggableProps>, {}>;
273
+ declare const UseDraggable: vue_demi.DefineComponent<UseDraggableProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDraggableProps>, {}, {}>;
274
274
 
275
275
  interface UseResizeObserverOptions extends ConfigurableWindow {
276
276
  /**
@@ -282,12 +282,12 @@ interface UseResizeObserverOptions extends ConfigurableWindow {
282
282
  box?: ResizeObserverBoxOptions;
283
283
  }
284
284
 
285
- declare const UseElementBounding: vue_demi.DefineComponent<UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseResizeObserverOptions & RenderableComponent>, {}>;
285
+ declare const UseElementBounding: vue_demi.DefineComponent<UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseResizeObserverOptions & RenderableComponent>, {}, {}>;
286
286
 
287
287
  type BindingValueFunction$5 = (state: boolean) => void;
288
288
  declare const vElementHover: ObjectDirective<HTMLElement, BindingValueFunction$5>;
289
289
 
290
- declare const UseElementSize: vue_demi.DefineComponent<ElementSize$1 & UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<ElementSize$1 & UseResizeObserverOptions & RenderableComponent>, {}>;
290
+ declare const UseElementSize: vue_demi.DefineComponent<ElementSize$1 & UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<ElementSize$1 & UseResizeObserverOptions & RenderableComponent>, {}, {}>;
291
291
 
292
292
  interface ElementSize {
293
293
  width: number;
@@ -312,7 +312,7 @@ type VElementSizeOptions = RemoveFirstFromTuple<Parameters<typeof useElementSize
312
312
  type BindingValueArray$4 = [BindingValueFunction$4, ...VElementSizeOptions];
313
313
  declare const vElementSize: ObjectDirective<HTMLElement, BindingValueFunction$4 | BindingValueArray$4>;
314
314
 
315
- declare const UseElementVisibility: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}>;
315
+ declare const UseElementVisibility: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}, {}>;
316
316
 
317
317
  interface UseElementVisibilityOptions extends ConfigurableWindow {
318
318
  scrollTarget?: MaybeRefOrGetter<HTMLElement | undefined | null>;
@@ -328,17 +328,17 @@ declare const UseEyeDropper: vue_demi.DefineComponent<{
328
328
  [key: string]: any;
329
329
  }>[] | undefined, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
330
330
  sRGBHex: StringConstructor;
331
- }>>, {}>;
331
+ }>>, {}, {}>;
332
332
 
333
- declare const UseFullscreen: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}>;
333
+ declare const UseFullscreen: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}, {}>;
334
334
 
335
- declare const UseGeolocation: vue_demi.DefineComponent<UseGeolocationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseGeolocationOptions>, {}>;
335
+ declare const UseGeolocation: vue_demi.DefineComponent<UseGeolocationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseGeolocationOptions>, {}, {}>;
336
336
 
337
337
  declare const UseIdle: vue_demi.DefineComponent<UseIdleOptions & {
338
338
  timeout: number;
339
339
  }, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseIdleOptions & {
340
340
  timeout: number;
341
- }>, {}>;
341
+ }>, {}, {}>;
342
342
 
343
343
  interface UseImageOptions {
344
344
  /** Address of the resource */
@@ -347,9 +347,19 @@ interface UseImageOptions {
347
347
  srcset?: string;
348
348
  /** Image sizes for different page layouts */
349
349
  sizes?: string;
350
+ /** Image alternative information */
351
+ alt?: string;
352
+ /** Image classes */
353
+ class?: string;
354
+ /** Image loading */
355
+ loading?: HTMLImageElement['loading'];
356
+ /** Image CORS settings */
357
+ crossorigin?: string;
358
+ /** Referrer policy for fetch https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy */
359
+ referrerPolicy?: HTMLImageElement['referrerPolicy'];
350
360
  }
351
361
 
352
- declare const UseImage: vue_demi.DefineComponent<UseImageOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseImageOptions & RenderableComponent>, {}>;
362
+ declare const UseImage: vue_demi.DefineComponent<UseImageOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseImageOptions & RenderableComponent>, {}, {}>;
353
363
 
354
364
  interface UseScrollOptions {
355
365
  /**
@@ -422,6 +432,7 @@ declare function useScroll(element: MaybeRefOrGetter<HTMLElement | SVGElement |
422
432
  top: boolean;
423
433
  bottom: boolean;
424
434
  };
435
+ measure(): void;
425
436
  };
426
437
  type UseScrollReturn = ReturnType<typeof useScroll>;
427
438
 
@@ -483,22 +494,22 @@ type BindingValueFunction$1 = IntersectionObserverCallback;
483
494
  type BindingValueArray$1 = [BindingValueFunction$1, UseIntersectionObserverOptions];
484
495
  declare const vIntersectionObserver: ObjectDirective<HTMLElement, BindingValueFunction$1 | BindingValueArray$1>;
485
496
 
486
- declare const UseMouse: vue_demi.DefineComponent<UseMouseOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseMouseOptions>, {}>;
497
+ declare const UseMouse: vue_demi.DefineComponent<UseMouseOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseMouseOptions>, {}, {}>;
487
498
 
488
- declare const UseMouseInElement: vue_demi.DefineComponent<MouseInElementOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<MouseInElementOptions & RenderableComponent>, {}>;
499
+ declare const UseMouseInElement: vue_demi.DefineComponent<MouseInElementOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<MouseInElementOptions & RenderableComponent>, {}, {}>;
489
500
 
490
- declare const UseMousePressed: vue_demi.DefineComponent<Omit<MousePressedOptions, "target"> & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<MousePressedOptions, "target"> & RenderableComponent>, {}>;
501
+ declare const UseMousePressed: vue_demi.DefineComponent<Omit<MousePressedOptions, "target"> & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<MousePressedOptions, "target"> & RenderableComponent>, {}, {}>;
491
502
 
492
503
  declare const UseNetwork: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
493
504
  [key: string]: any;
494
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
505
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
495
506
 
496
- declare const UseNow: vue_demi.DefineComponent<Omit<UseNowOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UseNowOptions<true>, "controls">>, {}>;
507
+ declare const UseNow: vue_demi.DefineComponent<Omit<UseNowOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UseNowOptions<true>, "controls">>, {}, {}>;
497
508
 
498
509
  interface UseObjectUrlProps {
499
510
  object: Blob | MediaSource | undefined;
500
511
  }
501
- declare const UseObjectUrl: vue_demi.DefineComponent<UseObjectUrlProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseObjectUrlProps>, {}>;
512
+ declare const UseObjectUrl: vue_demi.DefineComponent<UseObjectUrlProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseObjectUrlProps>, {}, {}>;
502
513
 
503
514
  interface UseOffsetPaginationOptions {
504
515
  /**
@@ -538,43 +549,43 @@ interface UseOffsetPaginationReturn {
538
549
  next: () => void;
539
550
  }
540
551
 
541
- declare const UseOffsetPagination: vue_demi.DefineComponent<UseOffsetPaginationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseOffsetPaginationOptions>, {}>;
552
+ declare const UseOffsetPagination: vue_demi.DefineComponent<UseOffsetPaginationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseOffsetPaginationOptions>, {}, {}>;
542
553
 
543
554
  declare const UseOnline: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
544
555
  [key: string]: any;
545
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
556
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
546
557
 
547
558
  declare const UsePageLeave: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
548
559
  [key: string]: any;
549
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
560
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
550
561
 
551
562
  declare const UsePointer: vue_demi.DefineComponent<Omit<UsePointerOptions, "target"> & {
552
563
  target: 'window' | 'self';
553
564
  }, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UsePointerOptions, "target"> & {
554
565
  target: 'window' | 'self';
555
- }>, {}>;
566
+ }>, {}, {}>;
556
567
 
557
- declare const UsePointerLock: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}>;
568
+ declare const UsePointerLock: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}, {}>;
558
569
 
559
570
  declare const UsePreferredColorScheme: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
560
571
  [key: string]: any;
561
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
572
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
562
573
 
563
574
  declare const UsePreferredContrast: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
564
575
  [key: string]: any;
565
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
576
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
566
577
 
567
578
  declare const UsePreferredDark: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
568
579
  [key: string]: any;
569
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
580
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
570
581
 
571
582
  declare const UsePreferredLanguages: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
572
583
  [key: string]: any;
573
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
584
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
574
585
 
575
586
  declare const UsePreferredReducedMotion: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
576
587
  [key: string]: any;
577
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
588
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
578
589
 
579
590
  declare const UseScreenSafeArea: vue_demi.DefineComponent<{
580
591
  top: BooleanConstructor;
@@ -593,7 +604,7 @@ declare const UseScreenSafeArea: vue_demi.DefineComponent<{
593
604
  right: boolean;
594
605
  top: boolean;
595
606
  bottom: boolean;
596
- }>;
607
+ }, {}>;
597
608
 
598
609
  type BindingValueFunction = (state: UseScrollReturn) => void;
599
610
  type BindingValueArray = [BindingValueFunction, UseScrollOptions];
@@ -604,9 +615,9 @@ declare const vScrollLock: FunctionDirective<HTMLElement, boolean>;
604
615
  interface UseTimeAgoComponentOptions extends Omit<UseTimeAgoOptions<true>, 'controls'> {
605
616
  time: MaybeRef<Date | number | string>;
606
617
  }
607
- declare const UseTimeAgo: vue_demi.DefineComponent<UseTimeAgoComponentOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseTimeAgoComponentOptions>, {}>;
618
+ declare const UseTimeAgo: vue_demi.DefineComponent<UseTimeAgoComponentOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseTimeAgoComponentOptions>, {}, {}>;
608
619
 
609
- declare const UseTimestamp: vue_demi.DefineComponent<Omit<UseTimestampOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UseTimestampOptions<true>, "controls">>, {}>;
620
+ declare const UseTimestamp: vue_demi.DefineComponent<Omit<UseTimestampOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UseTimestampOptions<true>, "controls">>, {}, {}>;
610
621
 
611
622
  interface UseVirtualListProps {
612
623
  /**
@@ -628,12 +639,12 @@ interface UseVirtualListProps {
628
639
  */
629
640
  height: string;
630
641
  }
631
- declare const UseVirtualList: vue_demi.DefineComponent<UseVirtualListProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseVirtualListProps>, {}>;
642
+ declare const UseVirtualList: vue_demi.DefineComponent<UseVirtualListProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseVirtualListProps>, {}, {}>;
632
643
 
633
644
  declare const UseWindowFocus: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
634
645
  [key: string]: any;
635
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
646
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
636
647
 
637
- declare const UseWindowSize: vue_demi.DefineComponent<UseWindowSizeOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseWindowSizeOptions>, {}>;
648
+ declare const UseWindowSize: vue_demi.DefineComponent<UseWindowSizeOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseWindowSizeOptions>, {}, {}>;
638
649
 
639
650
  export { OnClickOutside, OnClickOutsideProps, OnLongPress, OnLongPressProps, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseDraggableProps, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseObjectUrlProps, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseVirtualListProps, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };
package/index.iife.js CHANGED
@@ -19,6 +19,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
19
19
  VueDemi.Vue2 = Vue
20
20
  VueDemi.version = Vue.version
21
21
  VueDemi.warn = Vue.util.warn
22
+ VueDemi.hasInjectionContext = () => !!VueDemi.getCurrentInstance()
22
23
  function createApp(rootComponent, rootProps) {
23
24
  var vm
24
25
  var provide = {}
@@ -71,6 +72,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
71
72
  VueDemi.Vue = Vue
72
73
  VueDemi.Vue2 = Vue
73
74
  VueDemi.version = Vue.version
75
+ VueDemi.hasInjectionContext = () => !!VueDemi.getCurrentInstance()
74
76
  } else {
75
77
  console.error('[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.')
76
78
  }
@@ -227,10 +229,12 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
227
229
  shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);
228
230
  }, { passive: true }),
229
231
  detectIframe && useEventListener(window, "blur", (event) => {
230
- var _a;
231
- const el = unrefElement(target);
232
- if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement)))
233
- handler(event);
232
+ setTimeout(() => {
233
+ var _a;
234
+ const el = unrefElement(target);
235
+ if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement)))
236
+ handler(event);
237
+ }, 0);
234
238
  })
235
239
  ].filter(Boolean);
236
240
  const stop = () => cleanup.forEach((fn) => fn());
@@ -710,7 +714,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
710
714
  let style;
711
715
  if (disableTransition) {
712
716
  style = window.document.createElement("style");
713
- style.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"));
717
+ const styleString = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";
718
+ style.appendChild(document.createTextNode(styleString));
714
719
  window.document.head.appendChild(style);
715
720
  }
716
721
  if (attribute2 === "class") {
@@ -881,7 +886,10 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
881
886
  "pointerTypes",
882
887
  "as",
883
888
  "handle",
884
- "axis"
889
+ "axis",
890
+ "onStart",
891
+ "onMove",
892
+ "onEnd"
885
893
  ],
886
894
  setup(props, { slots }) {
887
895
  const target = vueDemi.ref();
@@ -895,7 +903,9 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
895
903
  core.isClient ? props.storageType === "session" ? sessionStorage : localStorage : void 0
896
904
  );
897
905
  const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };
898
- const onEnd = (position) => {
906
+ const onEnd = (position, event) => {
907
+ var _a;
908
+ (_a = props.onEnd) == null ? void 0 : _a.call(props, position, event);
899
909
  if (!storageValue)
900
910
  return;
901
911
  storageValue.value.x = position.x;
@@ -1041,8 +1051,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1041
1051
  const $elem = unrefElement(target);
1042
1052
  if ($elem) {
1043
1053
  const styles = window.getComputedStyle($elem);
1044
- width.value = parseFloat(styles.width);
1045
- height.value = parseFloat(styles.height);
1054
+ width.value = Number.parseFloat(styles.width);
1055
+ height.value = Number.parseFloat(styles.height);
1046
1056
  }
1047
1057
  } else {
1048
1058
  if (boxSize) {
@@ -1331,12 +1341,20 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1331
1341
  async function loadImage(options) {
1332
1342
  return new Promise((resolve, reject) => {
1333
1343
  const img = new Image();
1334
- const { src, srcset, sizes } = options;
1344
+ const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;
1335
1345
  img.src = src;
1336
1346
  if (srcset)
1337
1347
  img.srcset = srcset;
1338
1348
  if (sizes)
1339
1349
  img.sizes = sizes;
1350
+ if (clazz)
1351
+ img.className = clazz;
1352
+ if (loading)
1353
+ img.loading = loading;
1354
+ if (crossorigin)
1355
+ img.crossOrigin = crossorigin;
1356
+ if (referrerPolicy)
1357
+ img.referrerPolicy = referrerPolicy;
1340
1358
  img.onload = () => resolve(img);
1341
1359
  img.onerror = reject;
1342
1360
  });
@@ -1363,7 +1381,12 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1363
1381
  "src",
1364
1382
  "srcset",
1365
1383
  "sizes",
1366
- "as"
1384
+ "as",
1385
+ "alt",
1386
+ "class",
1387
+ "loading",
1388
+ "crossorigin",
1389
+ "referrerPolicy"
1367
1390
  ],
1368
1391
  setup(props, { slots }) {
1369
1392
  const data = vueDemi.reactive(useImage(props));
@@ -1451,14 +1474,14 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1451
1474
  onStop(e);
1452
1475
  };
1453
1476
  const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);
1454
- const onScrollHandler = (e) => {
1455
- const eventTarget = e.target === document ? e.target.documentElement : e.target;
1456
- const { display, flexDirection } = getComputedStyle(eventTarget);
1457
- const scrollLeft = eventTarget.scrollLeft;
1477
+ const setArrivedState = (target) => {
1478
+ const el = target === window ? target.document.documentElement : target === document ? target.documentElement : target;
1479
+ const { display, flexDirection } = getComputedStyle(el);
1480
+ const scrollLeft = el.scrollLeft;
1458
1481
  directions.left = scrollLeft < internalX.value;
1459
1482
  directions.right = scrollLeft > internalX.value;
1460
1483
  const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
1461
- const right = Math.abs(scrollLeft) + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1484
+ const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1462
1485
  if (display === "flex" && flexDirection === "row-reverse") {
1463
1486
  arrivedState.left = right;
1464
1487
  arrivedState.right = left;
@@ -1467,13 +1490,13 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1467
1490
  arrivedState.right = right;
1468
1491
  }
1469
1492
  internalX.value = scrollLeft;
1470
- let scrollTop = eventTarget.scrollTop;
1471
- if (e.target === document && !scrollTop)
1493
+ let scrollTop = el.scrollTop;
1494
+ if (target === document && !scrollTop)
1472
1495
  scrollTop = document.body.scrollTop;
1473
1496
  directions.top = scrollTop < internalY.value;
1474
1497
  directions.bottom = scrollTop > internalY.value;
1475
1498
  const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
1476
- const bottom = Math.abs(scrollTop) + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1499
+ const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1477
1500
  if (display === "flex" && flexDirection === "column-reverse") {
1478
1501
  arrivedState.top = bottom;
1479
1502
  arrivedState.bottom = top;
@@ -1482,6 +1505,10 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1482
1505
  arrivedState.bottom = bottom;
1483
1506
  }
1484
1507
  internalY.value = scrollTop;
1508
+ };
1509
+ const onScrollHandler = (e) => {
1510
+ const eventTarget = e.target === document ? e.target.documentElement : e.target;
1511
+ setArrivedState(eventTarget);
1485
1512
  isScrolling.value = true;
1486
1513
  onScrollEndDebounced(e);
1487
1514
  onScroll(e);
@@ -1503,7 +1530,12 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1503
1530
  y,
1504
1531
  isScrolling,
1505
1532
  arrivedState,
1506
- directions
1533
+ directions,
1534
+ measure() {
1535
+ const _element = shared.toValue(element);
1536
+ if (_element)
1537
+ setArrivedState(_element);
1538
+ }
1507
1539
  };
1508
1540
  }
1509
1541
 
@@ -1543,6 +1575,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1543
1575
  const promise = vueDemi.ref();
1544
1576
  const isLoading = vueDemi.computed(() => !!promise.value);
1545
1577
  function checkAndLoad() {
1578
+ state.measure();
1546
1579
  const el = shared.toValue(element);
1547
1580
  if (!el)
1548
1581
  return;
@@ -1967,7 +2000,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1967
2000
  }
1968
2001
  if (observe) {
1969
2002
  useMutationObserver(elRef, updateCssVar, {
1970
- attributes: true,
2003
+ attributeFilter: ["style", "class"],
1971
2004
  window
1972
2005
  });
1973
2006
  }
@@ -2111,7 +2144,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
2111
2144
 
2112
2145
  function checkOverflowScroll(ele) {
2113
2146
  const style = window.getComputedStyle(ele);
2114
- if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientHeight < ele.scrollHeight || style.overflowY === "auto" && ele.clientWidth < ele.scrollWidth) {
2147
+ if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) {
2115
2148
  return true;
2116
2149
  } else {
2117
2150
  const parent = ele.parentNode;
package/index.iife.min.js CHANGED
@@ -1 +1 @@
1
- var VueDemi=function(s,n,g){if(s.install)return s;if(!n)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),s;if(n.version.slice(0,4)==="2.7."){let w=function(b,S){var A,z={},H={config:n.config,use:n.use.bind(n),mixin:n.mixin.bind(n),component:n.component.bind(n),provide:function(T,N){return z[T]=N,this},directive:function(T,N){return N?(n.directive(T,N),H):n.directive(T)},mount:function(T,N){return A||(A=new n(Object.assign({propsData:S},b,{provide:Object.assign(z,b.provide)})),A.$mount(T,N),A)},unmount:function(){A&&(A.$destroy(),A=void 0)}};return H};var We=w;for(var c in n)s[c]=n[c];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version,s.warn=n.util.warn,s.createApp=w}else if(n.version.slice(0,2)==="2.")if(g){for(var c in g)s[c]=g[c];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(n.version.slice(0,2)==="3."){for(var c in n)s[c]=n[c];s.isVue2=!1,s.isVue3=!0,s.install=function(){},s.Vue=n,s.Vue2=void 0,s.version=n.version,s.set=function(w,b,S){return Array.isArray(w)?(w.length=Math.max(w.length,b),w.splice(b,1,S),S):(w[b]=S,S)},s.del=function(w,b){if(Array.isArray(w)){w.splice(b,1);return}delete w[b]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");return s}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(s,n,g,c){"use strict";const We=n.defineComponent({name:"OnClickOutside",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return g.onClickOutside(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function w(t){var e;const r=c.toValue(t);return(e=r?.$el)!=null?e:r}const b=c.isClient?window:void 0;function S(...t){let e,r,o,a;if(typeof t[0]=="string"||Array.isArray(t[0])?([r,o,a]=t,e=b):[e,r,o,a]=t,!e)return c.noop;Array.isArray(r)||(r=[r]),Array.isArray(o)||(o=[o]);const l=[],i=()=>{l.forEach(d=>d()),l.length=0},u=(d,_,p,m)=>(d.addEventListener(_,p,m),()=>d.removeEventListener(_,p,m)),f=n.watch(()=>[w(e),c.toValue(a)],([d,_])=>{i(),d&&l.push(...r.flatMap(p=>o.map(m=>u(d,p,m,_))))},{immediate:!0,flush:"post"}),v=()=>{f(),i()};return c.tryOnScopeDispose(v),v}let A=!1;function z(t,e,r={}){const{window:o=b,ignore:a=[],capture:l=!0,detectIframe:i=!1}=r;if(!o)return;c.isIOS&&!A&&(A=!0,Array.from(o.document.body.children).forEach(p=>p.addEventListener("click",c.noop)));let u=!0;const f=p=>a.some(m=>{if(typeof m=="string")return Array.from(o.document.querySelectorAll(m)).some(y=>y===p.target||p.composedPath().includes(y));{const y=w(m);return y&&(p.target===y||p.composedPath().includes(y))}}),d=[S(o,"click",p=>{const m=w(t);if(!(!m||m===p.target||p.composedPath().includes(m))){if(p.detail===0&&(u=!f(p)),!u){u=!0;return}e(p)}},{passive:!0,capture:l}),S(o,"pointerdown",p=>{const m=w(t);m&&(u=!p.composedPath().includes(m)&&!f(p))},{passive:!0}),i&&S(o,"blur",p=>{var m;const y=w(t);((m=o.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!y?.contains(o.document.activeElement)&&e(p)})].filter(Boolean);return()=>d.forEach(p=>p())}const H={[c.directiveHooks.mounted](t,e){const r=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=z(t,e.value,{capture:r});else{const[o,a]=e.value;t.__onClickOutside_stop=z(t,o,Object.assign({capture:r},a))}},[c.directiveHooks.unmounted](t){t.__onClickOutside_stop()}};function T(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function N(...t){let e,r,o={};t.length===3?(e=t[0],r=t[1],o=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,r=t[0],o=t[1]):(e=t[0],r=t[1]):(e=!0,r=t[0]);const{target:a=b,eventName:l="keydown",passive:i=!1,dedupe:u=!1}=o,f=T(e);return S(a,l,d=>{d.repeat&&c.toValue(u)||f(d)&&r(d)},i)}var Fe=Object.defineProperty,X=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable,q=(t,e,r)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Je=(t,e)=>{for(var r in e||(e={}))Ke.call(e,r)&&q(t,r,e[r]);if(X)for(var r of X(e))Ge.call(e,r)&&q(t,r,e[r]);return t};const Ye={[c.directiveHooks.mounted](t,e){var r,o;const a=(o=(r=e.arg)==null?void 0:r.split(","))!=null?o:!0;if(typeof e.value=="function")N(a,e.value,{target:t});else{const[l,i]=e.value;N(a,l,Je({target:t},i))}}},Xe=500;function G(t,e,r){var o,a;const l=n.computed(()=>w(t));let i;function u(){i&&(clearTimeout(i),i=void 0)}function f(d){var _,p,m,y;(_=r?.modifiers)!=null&&_.self&&d.target!==l.value||(u(),(p=r?.modifiers)!=null&&p.prevent&&d.preventDefault(),(m=r?.modifiers)!=null&&m.stop&&d.stopPropagation(),i=setTimeout(()=>e(d),(y=r?.delay)!=null?y:Xe))}const v={capture:(o=r?.modifiers)==null?void 0:o.capture,once:(a=r?.modifiers)==null?void 0:a.once};S(l,"pointerdown",f,v),S(l,"pointerup",u,v),S(l,"pointerleave",u,v)}const qe=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return G(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),Q={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?G(t,e.value,{modifiers:e.modifiers}):G(t,...e.value)}},Qe=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:g.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),xe=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(g.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),Ze=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(g.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),k=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},B="__vueuse_ssr_handlers__",De=et();function et(){return B in k||(k[B]=k[B]||{}),k[B]}function x(t,e){return De[t]||e}function tt(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}var rt=Object.defineProperty,Z=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,D=(t,e,r)=>e in t?rt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ee=(t,e)=>{for(var r in e||(e={}))nt.call(e,r)&&D(t,r,e[r]);if(Z)for(var r of Z(e))ot.call(e,r)&&D(t,r,e[r]);return t};const at={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},te="vueuse-storage";function st(t,e,r,o={}){var a;const{flush:l="pre",deep:i=!0,listenToStorageChanges:u=!0,writeDefaults:f=!0,mergeDefaults:v=!1,shallow:d,window:_=b,eventFilter:p,onError:m=O=>{console.error(O)}}=o,y=(d?n.shallowRef:n.ref)(e);if(!r)try{r=x("getDefaultStorage",()=>{var O;return(O=b)==null?void 0:O.localStorage})()}catch(O){m(O)}if(!r)return y;const h=c.toValue(e),C=tt(h),$=(a=o.serializer)!=null?a:at[C],{pause:L,resume:V}=c.pausableWatch(y,()=>P(y.value),{flush:l,deep:i,eventFilter:p});return _&&u&&(S(_,"storage",I),S(_,te,M)),I(),y;function P(O){try{if(O==null)r.removeItem(t);else{const U=$.write(O),j=r.getItem(t);j!==U&&(r.setItem(t,U),_&&_.dispatchEvent(new CustomEvent(te,{detail:{key:t,oldValue:j,newValue:U,storageArea:r}})))}}catch(U){m(U)}}function E(O){const U=O?O.newValue:r.getItem(t);if(U==null)return f&&h!==null&&r.setItem(t,$.write(h)),h;if(!O&&v){const j=$.read(U);return typeof v=="function"?v(j,h):C==="object"&&!Array.isArray(j)?ee(ee({},h),j):j}else return typeof U!="string"?U:$.read(U)}function M(O){I(O.detail)}function I(O){if(!(O&&O.storageArea!==r)){if(O&&O.key==null){y.value=h;return}if(!(O&&O.key!==t)){L();try{y.value=E(O)}catch(U){m(U)}finally{O?n.nextTick(V):V()}}}}}function it(){const t=n.ref(!1);return n.getCurrentInstance()&&n.onMounted(()=>{t.value=!0}),t}function W(t){const e=it();return n.computed(()=>(e.value,!!t()))}function lt(t,e={}){const{window:r=b}=e,o=W(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let a;const l=n.ref(!1),i=()=>{a&&("removeEventListener"in a?a.removeEventListener("change",u):a.removeListener(u))},u=()=>{o.value&&(i(),a=r.matchMedia(c.toRef(t).value),l.value=!!a?.matches,a&&("addEventListener"in a?a.addEventListener("change",u):a.addListener(u)))};return n.watchEffect(u),c.tryOnScopeDispose(()=>i()),l}function ut(t){return lt("(prefers-color-scheme: dark)",t)}var ct=Object.defineProperty,re=Object.getOwnPropertySymbols,ft=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable,ne=(t,e,r)=>e in t?ct(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pt=(t,e)=>{for(var r in e||(e={}))ft.call(e,r)&&ne(t,r,e[r]);if(re)for(var r of re(e))dt.call(e,r)&&ne(t,r,e[r]);return t};function vt(t={}){const{selector:e="html",attribute:r="class",initialValue:o="auto",window:a=b,storage:l,storageKey:i="vueuse-color-scheme",listenToStorageChanges:u=!0,storageRef:f,emitAuto:v,disableTransition:d=!0}=t,_=pt({auto:"",light:"light",dark:"dark"},t.modes||{}),p=ut({window:a}),m=n.computed(()=>p.value?"dark":"light"),y=f||(i==null?c.toRef(o):st(i,o,l,{window:a,listenToStorageChanges:u})),h=n.computed(()=>y.value==="auto"?m.value:y.value),C=x("updateHTMLAttrs",(P,E,M)=>{const I=typeof P=="string"?a?.document.querySelector(P):w(P);if(!I)return;let O;if(d&&(O=a.document.createElement("style"),O.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),a.document.head.appendChild(O)),E==="class"){const U=M.split(/\s/g);Object.values(_).flatMap(j=>(j||"").split(/\s/g)).filter(Boolean).forEach(j=>{U.includes(j)?I.classList.add(j):I.classList.remove(j)})}else I.setAttribute(E,M);d&&(a.getComputedStyle(O).opacity,document.head.removeChild(O))});function $(P){var E;C(e,r,(E=_[P])!=null?E:P)}function L(P){t.onChanged?t.onChanged(P,$):$(P)}n.watch(h,L,{flush:"post",immediate:!0}),c.tryOnMounted(()=>L(h.value));const V=n.computed({get(){return v?y.value:h.value},set(P){y.value=P}});try{return Object.assign(V,{store:y,system:m,state:h})}catch{return V}}const _t=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=vt(t),o=n.reactive({mode:r,system:r.system,store:r.store});return()=>{if(e.default)return e.default(o)}}}),gt=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=g.useDark(t),o=n.reactive({isDark:r,toggleDark:c.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),mt=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(g.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),yt=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(g.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),Ot=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:g.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),Pt=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(g.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),wt=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:g.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var ht=Object.defineProperty,bt=Object.defineProperties,St=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,Ut=Object.prototype.hasOwnProperty,$t=Object.prototype.propertyIsEnumerable,ae=(t,e,r)=>e in t?ht(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ct=(t,e)=>{for(var r in e||(e={}))Ut.call(e,r)&&ae(t,r,e[r]);if(oe)for(var r of oe(e))$t.call(e,r)&&ae(t,r,e[r]);return t},Et=(t,e)=>bt(t,St(e));const jt=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as","handle","axis"],setup(t,{slots:e}){const r=n.ref(),o=n.computed(()=>{var f;return(f=t.handle)!=null?f:r.value}),a=t.storageKey&&g.useStorage(t.storageKey,c.toValue(t.initialValue)||{x:0,y:0},g.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0),l=a||t.initialValue||{x:0,y:0},i=f=>{a&&(a.value.x=f.x,a.value.y=f.y)},u=n.reactive(g.useDraggable(r,Et(Ct({},t),{handle:o,initialValue:l,onEnd:i})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${u.style}`},e.default(u))}}}),It=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function Lt(t,e={}){const{delayEnter:r=0,delayLeave:o=0,window:a=b}=e,l=n.ref(!1);let i;const u=f=>{const v=f?r:o;i&&(clearTimeout(i),i=void 0),v?i=setTimeout(()=>l.value=f,v):l.value=f};return a&&(S(t,"mouseenter",()=>u(!0),{passive:!0}),S(t,"mouseleave",()=>u(!1),{passive:!0})),l}const At={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=Lt(t);n.watch(r,o=>e.value(o))}}},Vt=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useElementSize(r,{width:t.width,height:t.height},{box:t.box}));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var se=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty,Nt=Object.prototype.propertyIsEnumerable,Tt=(t,e)=>{var r={};for(var o in t)Mt.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&se)for(var o of se(t))e.indexOf(o)<0&&Nt.call(t,o)&&(r[o]=t[o]);return r};function Rt(t,e,r={}){const o=r,{window:a=b}=o,l=Tt(o,["window"]);let i;const u=W(()=>a&&"ResizeObserver"in a),f=()=>{i&&(i.disconnect(),i=void 0)},v=n.computed(()=>Array.isArray(t)?t.map(p=>w(p)):[w(t)]),d=n.watch(v,p=>{if(f(),u.value&&a){i=new ResizeObserver(e);for(const m of p)m&&i.observe(m,l)}},{immediate:!0,flush:"post",deep:!0}),_=()=>{f(),d()};return c.tryOnScopeDispose(_),{isSupported:u,stop:_}}function zt(t,e={width:0,height:0},r={}){const{window:o=b,box:a="content-box"}=r,l=n.computed(()=>{var f,v;return(v=(f=w(t))==null?void 0:f.namespaceURI)==null?void 0:v.includes("svg")}),i=n.ref(e.width),u=n.ref(e.height);return Rt(t,([f])=>{const v=a==="border-box"?f.borderBoxSize:a==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(o&&l.value){const d=w(t);if(d){const _=o.getComputedStyle(d);i.value=parseFloat(_.width),u.value=parseFloat(_.height)}}else if(v){const d=Array.isArray(v)?v:[v];i.value=d.reduce((_,{inlineSize:p})=>_+p,0),u.value=d.reduce((_,{blockSize:p})=>_+p,0)}else i.value=f.contentRect.width,u.value=f.contentRect.height},r),n.watch(()=>w(t),f=>{i.value=f?e.width:0,u.value=f?e.height:0}),{width:i,height:u}}const Ht={[c.directiveHooks.mounted](t,e){var r;const o=typeof e.value=="function"?e.value:(r=e.value)==null?void 0:r[0],a=typeof e.value=="function"?[]:e.value.slice(1),{width:l,height:i}=zt(t,...a);n.watch([l,i],([u,f])=>o({width:u,height:f}))}},kt=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:g.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function J(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:l=.1,window:i=b,immediate:u=!0}=r,f=W(()=>i&&"IntersectionObserver"in i),v=n.computed(()=>{const y=c.toValue(t);return(Array.isArray(y)?y:[y]).map(w).filter(c.notNullish)});let d=c.noop;const _=n.ref(u),p=f.value?n.watch(()=>[v.value,w(o),_.value],([y,h])=>{if(d(),!_.value||!y.length)return;const C=new IntersectionObserver(e,{root:w(h),rootMargin:a,threshold:l});y.forEach($=>$&&C.observe($)),d=()=>{C.disconnect(),d=c.noop}},{immediate:u,flush:"post"}):c.noop,m=()=>{d(),p(),_.value=!1};return c.tryOnScopeDispose(m),{isSupported:f,isActive:_,pause(){d(),_.value=!1},resume(){_.value=!0},stop:m}}function ie(t,{window:e=b,scrollTarget:r}={}){const o=n.ref(!1);return J(t,([{isIntersecting:a}])=>{o.value=a},{root:r,window:e}),o}const Bt={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=ie(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=ie(t,o);n.watch(a,l=>r(l),{immediate:!0})}}},Wt=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(g.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),Ft=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Kt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(g.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),Gt=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(g.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});var Jt=Object.defineProperty,Yt=Object.defineProperties,Xt=Object.getOwnPropertyDescriptors,le=Object.getOwnPropertySymbols,qt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable,ue=(t,e,r)=>e in t?Jt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,xt=(t,e)=>{for(var r in e||(e={}))qt.call(e,r)&&ue(t,r,e[r]);if(le)for(var r of le(e))Qt.call(e,r)&&ue(t,r,e[r]);return t},Zt=(t,e)=>Yt(t,Xt(e));function Dt(t,e,r){const{immediate:o=!0,delay:a=0,onError:l=c.noop,onSuccess:i=c.noop,resetOnExecute:u=!0,shallow:f=!0,throwError:v}=r??{},d=f?n.shallowRef(e):n.ref(e),_=n.ref(!1),p=n.ref(!1),m=n.shallowRef(void 0);async function y($=0,...L){u&&(d.value=e),m.value=void 0,_.value=!1,p.value=!0,$>0&&await c.promiseTimeout($);const V=typeof t=="function"?t(...L):t;try{const P=await V;d.value=P,_.value=!0,i(P)}catch(P){if(m.value=P,l(P),v)throw P}finally{p.value=!1}return d.value}o&&y(a);const h={state:d,isReady:_,isLoading:p,error:m,execute:y};function C(){return new Promise(($,L)=>{c.until(p).toBe(!1).then(()=>$(h)).catch(L)})}return Zt(xt({},h),{then($,L){return C().then($,L)}})}var er=Object.defineProperty,ce=Object.getOwnPropertySymbols,tr=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable,fe=(t,e,r)=>e in t?er(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,nr=(t,e)=>{for(var r in e||(e={}))tr.call(e,r)&&fe(t,r,e[r]);if(ce)for(var r of ce(e))rr.call(e,r)&&fe(t,r,e[r]);return t};async function or(t){return new Promise((e,r)=>{const o=new Image,{src:a,srcset:l,sizes:i}=t;o.src=a,l&&(o.srcset=l),i&&(o.sizes=i),o.onload=()=>e(o),o.onerror=r})}function ar(t,e={}){const r=Dt(()=>or(c.toValue(t)),void 0,nr({resetOnExecute:!0},e));return n.watch(()=>c.toValue(t),()=>r.execute(e.delay),{deep:!0}),r}const sr=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as"],setup(t,{slots:e}){const r=n.reactive(ar(t));return()=>r.isLoading&&e.loading?e.loading(r):r.error&&e.error?e.error(r.error):e.default?e.default(r):n.h(t.as||"img",t)}}),de=1;function Y(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=c.noop,onScroll:l=c.noop,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:u={capture:!1,passive:!0},behavior:f="auto"}=e,v=n.ref(0),d=n.ref(0),_=n.computed({get(){return v.value},set(P){m(P,void 0)}}),p=n.computed({get(){return d.value},set(P){m(void 0,P)}});function m(P,E){var M,I,O;const U=c.toValue(t);U&&((O=U instanceof Document?document.body:U)==null||O.scrollTo({top:(M=c.toValue(E))!=null?M:p.value,left:(I=c.toValue(P))!=null?I:_.value,behavior:c.toValue(f)}))}const y=n.ref(!1),h=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),C=n.reactive({left:!1,right:!1,top:!1,bottom:!1}),$=P=>{y.value&&(y.value=!1,C.left=!1,C.right=!1,C.top=!1,C.bottom=!1,a(P))},L=c.useDebounceFn($,r+o),V=P=>{const E=P.target===document?P.target.documentElement:P.target,{display:M,flexDirection:I}=getComputedStyle(E),O=E.scrollLeft;C.left=O<v.value,C.right=O>v.value;const U=Math.abs(O)<=0+(i.left||0),j=Math.abs(O)+E.clientWidth>=E.scrollWidth-(i.right||0)-de;M==="flex"&&I==="row-reverse"?(h.left=j,h.right=U):(h.left=U,h.right=j),v.value=O;let R=E.scrollTop;P.target===document&&!R&&(R=document.body.scrollTop),C.top=R<d.value,C.bottom=R>d.value;const ke=Math.abs(R)<=0+(i.top||0),Be=Math.abs(R)+E.clientHeight>=E.scrollHeight-(i.bottom||0)-de;M==="flex"&&I==="column-reverse"?(h.top=Be,h.bottom=ke):(h.top=ke,h.bottom=Be),d.value=R,y.value=!0,L(P),l(P)};return S(t,"scroll",r?c.useThrottleFn(V,r,!0,!1):V,u),S(t,"scrollend",$,u),{x:_,y:p,isScrolling:y,arrivedState:h,directions:C}}var ir=Object.defineProperty,lr=Object.defineProperties,ur=Object.getOwnPropertyDescriptors,pe=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,fr=Object.prototype.propertyIsEnumerable,ve=(t,e,r)=>e in t?ir(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,_e=(t,e)=>{for(var r in e||(e={}))cr.call(e,r)&&ve(t,r,e[r]);if(pe)for(var r of pe(e))fr.call(e,r)&&ve(t,r,e[r]);return t},dr=(t,e)=>lr(t,ur(e));function ge(t,e,r={}){var o;const{direction:a="bottom",interval:l=100}=r,i=n.reactive(Y(t,dr(_e({},r),{offset:_e({[a]:(o=r.distance)!=null?o:0},r.offset)}))),u=n.ref(),f=n.computed(()=>!!u.value);function v(){const d=c.toValue(t);if(!d)return;const _=a==="bottom"||a==="top"?d.scrollHeight<=d.clientHeight:d.scrollWidth<=d.clientWidth;(i.arrivedState[a]||_)&&(u.value||(u.value=Promise.all([e(i),new Promise(p=>setTimeout(p,l))]).finally(()=>{u.value=null,n.nextTick(()=>v())})))}return n.watch(()=>[i.arrivedState[a],c.toValue(t)],v,{immediate:!0}),{isLoading:f}}const pr={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?ge(t,e.value):ge(t,...e.value)}},vr={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?J(t,e.value):J(t,...e.value)}},_r=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(g.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),gr=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var mr=Object.defineProperty,yr=Object.defineProperties,Or=Object.getOwnPropertyDescriptors,me=Object.getOwnPropertySymbols,Pr=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,ye=(t,e,r)=>e in t?mr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,hr=(t,e)=>{for(var r in e||(e={}))Pr.call(e,r)&&ye(t,r,e[r]);if(me)for(var r of me(e))wr.call(e,r)&&ye(t,r,e[r]);return t},br=(t,e)=>yr(t,Or(e));const Sr=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useMousePressed(br(hr({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Ur=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(g.useNetwork());return()=>{if(e.default)return e.default(r)}}});var $r=Object.defineProperty,Cr=Object.defineProperties,Er=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,jr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pe=(t,e,r)=>e in t?$r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Lr=(t,e)=>{for(var r in e||(e={}))jr.call(e,r)&&Pe(t,r,e[r]);if(Oe)for(var r of Oe(e))Ir.call(e,r)&&Pe(t,r,e[r]);return t},Ar=(t,e)=>Cr(t,Er(e));const Vr=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(g.useNow(Ar(Lr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),Mr=n.defineComponent({name:"UseObjectUrl",props:["object"],setup(t,{slots:e}){const r=c.toRef(t,"object"),o=g.useObjectUrl(r);return()=>{if(e.default&&o.value)return e.default(o)}}});var Nr=Object.defineProperty,Tr=Object.defineProperties,Rr=Object.getOwnPropertyDescriptors,we=Object.getOwnPropertySymbols,zr=Object.prototype.hasOwnProperty,Hr=Object.prototype.propertyIsEnumerable,he=(t,e,r)=>e in t?Nr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,kr=(t,e)=>{for(var r in e||(e={}))zr.call(e,r)&&he(t,r,e[r]);if(we)for(var r of we(e))Hr.call(e,r)&&he(t,r,e[r]);return t},Br=(t,e)=>Tr(t,Rr(e));const Wr=n.defineComponent({name:"UseOffsetPagination",props:["total","page","pageSize","onPageChange","onPageSizeChange","onPageCountChange"],emits:["page-change","page-size-change","page-count-change"],setup(t,{slots:e,emit:r}){const o=n.reactive(g.useOffsetPagination(Br(kr({},t),{onPageChange(...a){var l;(l=t.onPageChange)==null||l.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var l;(l=t.onPageSizeChange)==null||l.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var l;(l=t.onPageCountChange)==null||l.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),Fr=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:g.useOnline()});return()=>{if(e.default)return e.default(r)}}}),Kr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:g.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var Gr=Object.defineProperty,Jr=Object.defineProperties,Yr=Object.getOwnPropertyDescriptors,be=Object.getOwnPropertySymbols,Xr=Object.prototype.hasOwnProperty,qr=Object.prototype.propertyIsEnumerable,Se=(t,e,r)=>e in t?Gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Qr=(t,e)=>{for(var r in e||(e={}))Xr.call(e,r)&&Se(t,r,e[r]);if(be)for(var r of be(e))qr.call(e,r)&&Se(t,r,e[r]);return t},xr=(t,e)=>Jr(t,Yr(e));const Zr=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(g.usePointer(xr(Qr({},t),{target:t.target==="self"?r:b})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),Dr=n.defineComponent({name:"UsePointerLock",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.usePointerLock(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),en=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:g.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),tn=n.defineComponent({name:"UsePreferredContrast",setup(t,{slots:e}){const r=n.reactive({contrast:g.usePreferredContrast()});return()=>{if(e.default)return e.default(r)}}}),rn=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:g.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),nn=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:g.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}}),on=n.defineComponent({name:"UsePreferredReducedMotion",setup(t,{slots:e}){const r=n.reactive({motion:g.usePreferredReducedMotion()});return()=>{if(e.default)return e.default(r)}}});var Ue=Object.getOwnPropertySymbols,an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable,ln=(t,e)=>{var r={};for(var o in t)an.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&Ue)for(var o of Ue(t))e.indexOf(o)<0&&sn.call(t,o)&&(r[o]=t[o]);return r};function un(t,e,r={}){const o=r,{window:a=b}=o,l=ln(o,["window"]);let i;const u=W(()=>a&&"MutationObserver"in a),f=()=>{i&&(i.disconnect(),i=void 0)},v=n.watch(()=>w(t),_=>{f(),u.value&&a&&_&&(i=new MutationObserver(e),i.observe(_,l))},{immediate:!0}),d=()=>{f(),v()};return c.tryOnScopeDispose(d),{isSupported:u,stop:d}}function F(t,e,r={}){const{window:o=b,initialValue:a="",observe:l=!1}=r,i=n.ref(a),u=n.computed(()=>{var v;return w(e)||((v=o?.document)==null?void 0:v.documentElement)});function f(){var v;const d=c.toValue(t),_=c.toValue(u);if(_&&o){const p=(v=o.getComputedStyle(_).getPropertyValue(d))==null?void 0:v.trim();i.value=p||a}}return l&&un(u,f,{attributes:!0,window:o}),n.watch([u,()=>c.toValue(t)],f,{immediate:!0}),n.watch(i,v=>{var d;(d=u.value)!=null&&d.style&&u.value.style.setProperty(c.toValue(t),v)}),i}const $e="--vueuse-safe-area-top",Ce="--vueuse-safe-area-right",Ee="--vueuse-safe-area-bottom",je="--vueuse-safe-area-left";function cn(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(c.isClient){const l=F($e),i=F(Ce),u=F(Ee),f=F(je);l.value="env(safe-area-inset-top, 0px)",i.value="env(safe-area-inset-right, 0px)",u.value="env(safe-area-inset-bottom, 0px)",f.value="env(safe-area-inset-left, 0px)",a(),S("resize",c.useDebounceFn(a))}function a(){t.value=K($e),e.value=K(Ce),r.value=K(Ee),o.value=K(je)}return{top:t,right:e,bottom:r,left:o,update:a}}function K(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const fn=n.defineComponent({name:"UseScreenSafeArea",props:{top:Boolean,right:Boolean,bottom:Boolean,left:Boolean},setup(t,{slots:e}){const{top:r,right:o,bottom:a,left:l}=cn();return()=>{if(e.default)return n.h("div",{style:{paddingTop:t.top?r.value:"",paddingRight:t.right?o.value:"",paddingBottom:t.bottom?a.value:"",paddingLeft:t.left?l.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var dn=Object.defineProperty,pn=Object.defineProperties,vn=Object.getOwnPropertyDescriptors,Ie=Object.getOwnPropertySymbols,_n=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable,Le=(t,e,r)=>e in t?dn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,mn=(t,e)=>{for(var r in e||(e={}))_n.call(e,r)&&Le(t,r,e[r]);if(Ie)for(var r of Ie(e))gn.call(e,r)&&Le(t,r,e[r]);return t},yn=(t,e)=>pn(t,vn(e));const On={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=Y(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=Y(t,yn(mn({},o),{onScroll(l){var i;(i=o.onScroll)==null||i.call(o,l),r(a)},onStop(l){var i;(i=o.onStop)==null||i.call(o,l),r(a)}}))}}};function Ae(t){const e=window.getComputedStyle(t);if(e.overflowX==="scroll"||e.overflowY==="scroll"||e.overflowX==="auto"&&t.clientHeight<t.scrollHeight||e.overflowY==="auto"&&t.clientWidth<t.scrollWidth)return!0;{const r=t.parentNode;return!r||r.tagName==="BODY"?!1:Ae(r)}}function Pn(t){const e=t||window.event,r=e.target;return Ae(r)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function wn(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(c.toRef(t),u=>{if(u){const f=u;a=f.style.overflow,r.value&&(f.style.overflow="hidden")}},{immediate:!0});const l=()=>{const u=c.toValue(t);!u||r.value||(c.isIOS&&(o=S(u,"touchmove",f=>{Pn(f)},{passive:!1})),u.style.overflow="hidden",r.value=!0)},i=()=>{const u=c.toValue(t);!u||!r.value||(c.isIOS&&o?.(),u.style.overflow=a,r.value=!1)};return c.tryOnScopeDispose(i),n.computed({get(){return r.value},set(u){u?l():i()}})}function hn(){let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=wn(r,o.value);n.watch(e,l=>a.value=l)}}const bn=hn();var Sn=Object.defineProperty,Un=Object.defineProperties,$n=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,Cn=Object.prototype.hasOwnProperty,En=Object.prototype.propertyIsEnumerable,Me=(t,e,r)=>e in t?Sn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,jn=(t,e)=>{for(var r in e||(e={}))Cn.call(e,r)&&Me(t,r,e[r]);if(Ve)for(var r of Ve(e))En.call(e,r)&&Me(t,r,e[r]);return t},In=(t,e)=>Un(t,$n(e));const Ln=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages","showSecond"],setup(t,{slots:e}){const r=n.reactive(g.useTimeAgo(()=>t.time,In(jn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var An=Object.defineProperty,Vn=Object.defineProperties,Mn=Object.getOwnPropertyDescriptors,Ne=Object.getOwnPropertySymbols,Nn=Object.prototype.hasOwnProperty,Tn=Object.prototype.propertyIsEnumerable,Te=(t,e,r)=>e in t?An(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Rn=(t,e)=>{for(var r in e||(e={}))Nn.call(e,r)&&Te(t,r,e[r]);if(Ne)for(var r of Ne(e))Tn.call(e,r)&&Te(t,r,e[r]);return t},zn=(t,e)=>Vn(t,Mn(e));const Hn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(g.useTimestamp(zn(Rn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var kn=Object.defineProperty,Re=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,ze=(t,e,r)=>e in t?kn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,He=(t,e)=>{for(var r in e||(e={}))Bn.call(e,r)&&ze(t,r,e[r]);if(Re)for(var r of Re(e))Wn.call(e,r)&&ze(t,r,e[r]);return t};const Fn=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e,expose:r}){const{list:o}=n.toRefs(t),{list:a,containerProps:l,wrapperProps:i,scrollTo:u}=g.useVirtualList(o,t.options);return r({scrollTo:u}),typeof l.style=="object"&&!Array.isArray(l.style)&&(l.style.height=t.height||"300px"),()=>n.h("div",He({},l),[n.h("div",He({},i.value),a.value.map(f=>n.h("div",{style:{overFlow:"hidden",height:f.height}},e.default?e.default(f):"Please set content!")))])}}),Kn=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:g.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),Gn=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(g.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});s.OnClickOutside=We,s.OnLongPress=qe,s.UseActiveElement=Qe,s.UseBattery=xe,s.UseBrowserLocation=Ze,s.UseColorMode=_t,s.UseDark=gt,s.UseDeviceMotion=mt,s.UseDeviceOrientation=yt,s.UseDevicePixelRatio=Ot,s.UseDevicesList=Pt,s.UseDocumentVisibility=wt,s.UseDraggable=jt,s.UseElementBounding=It,s.UseElementSize=Vt,s.UseElementVisibility=kt,s.UseEyeDropper=Wt,s.UseFullscreen=Ft,s.UseGeolocation=Kt,s.UseIdle=Gt,s.UseImage=sr,s.UseMouse=_r,s.UseMouseInElement=gr,s.UseMousePressed=Sr,s.UseNetwork=Ur,s.UseNow=Vr,s.UseObjectUrl=Mr,s.UseOffsetPagination=Wr,s.UseOnline=Fr,s.UsePageLeave=Kr,s.UsePointer=Zr,s.UsePointerLock=Dr,s.UsePreferredColorScheme=en,s.UsePreferredContrast=tn,s.UsePreferredDark=rn,s.UsePreferredLanguages=nn,s.UsePreferredReducedMotion=on,s.UseScreenSafeArea=fn,s.UseTimeAgo=Ln,s.UseTimestamp=Hn,s.UseVirtualList=Fn,s.UseWindowFocus=Kn,s.UseWindowSize=Gn,s.VOnClickOutside=H,s.VOnLongPress=Q,s.vElementHover=At,s.vElementSize=Ht,s.vElementVisibility=Bt,s.vInfiniteScroll=pr,s.vIntersectionObserver=vr,s.vOnClickOutside=H,s.vOnKeyStroke=Ye,s.vOnLongPress=Q,s.vScroll=On,s.vScrollLock=bn})(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
1
+ var VueDemi=function(s,n,g){if(s.install)return s;if(!n)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),s;if(n.version.slice(0,4)==="2.7."){let w=function(S,$){var V,z={},H={config:n.config,use:n.use.bind(n),mixin:n.mixin.bind(n),component:n.component.bind(n),provide:function(T,N){return z[T]=N,this},directive:function(T,N){return N?(n.directive(T,N),H):n.directive(T)},mount:function(T,N){return V||(V=new n(Object.assign({propsData:$},S,{provide:Object.assign(z,S.provide)})),V.$mount(T,N),V)},unmount:function(){V&&(V.$destroy(),V=void 0)}};return H};var Fe=w;for(var c in n)s[c]=n[c];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version,s.warn=n.util.warn,s.hasInjectionContext=()=>!!s.getCurrentInstance(),s.createApp=w}else if(n.version.slice(0,2)==="2.")if(g){for(var c in g)s[c]=g[c];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version,s.hasInjectionContext=()=>!!s.getCurrentInstance()}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(n.version.slice(0,2)==="3."){for(var c in n)s[c]=n[c];s.isVue2=!1,s.isVue3=!0,s.install=function(){},s.Vue=n,s.Vue2=void 0,s.version=n.version,s.set=function(w,S,$){return Array.isArray(w)?(w.length=Math.max(w.length,S),w.splice(S,1,$),$):(w[S]=$,$)},s.del=function(w,S){if(Array.isArray(w)){w.splice(S,1);return}delete w[S]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");return s}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(s,n,g,c){"use strict";const Fe=n.defineComponent({name:"OnClickOutside",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return g.onClickOutside(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function w(t){var e;const r=c.toValue(t);return(e=r?.$el)!=null?e:r}const S=c.isClient?window:void 0;function $(...t){let e,r,o,a;if(typeof t[0]=="string"||Array.isArray(t[0])?([r,o,a]=t,e=S):[e,r,o,a]=t,!e)return c.noop;Array.isArray(r)||(r=[r]),Array.isArray(o)||(o=[o]);const u=[],i=()=>{u.forEach(d=>d()),u.length=0},l=(d,_,v,m)=>(d.addEventListener(_,v,m),()=>d.removeEventListener(_,v,m)),f=n.watch(()=>[w(e),c.toValue(a)],([d,_])=>{i(),d&&u.push(...r.flatMap(v=>o.map(m=>l(d,v,m,_))))},{immediate:!0,flush:"post"}),p=()=>{f(),i()};return c.tryOnScopeDispose(p),p}let V=!1;function z(t,e,r={}){const{window:o=S,ignore:a=[],capture:u=!0,detectIframe:i=!1}=r;if(!o)return;c.isIOS&&!V&&(V=!0,Array.from(o.document.body.children).forEach(v=>v.addEventListener("click",c.noop)));let l=!0;const f=v=>a.some(m=>{if(typeof m=="string")return Array.from(o.document.querySelectorAll(m)).some(y=>y===v.target||v.composedPath().includes(y));{const y=w(m);return y&&(v.target===y||v.composedPath().includes(y))}}),d=[$(o,"click",v=>{const m=w(t);if(!(!m||m===v.target||v.composedPath().includes(m))){if(v.detail===0&&(l=!f(v)),!l){l=!0;return}e(v)}},{passive:!0,capture:u}),$(o,"pointerdown",v=>{const m=w(t);m&&(l=!v.composedPath().includes(m)&&!f(v))},{passive:!0}),i&&$(o,"blur",v=>{setTimeout(()=>{var m;const y=w(t);((m=o.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!y?.contains(o.document.activeElement)&&e(v)},0)})].filter(Boolean);return()=>d.forEach(v=>v())}const H={[c.directiveHooks.mounted](t,e){const r=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=z(t,e.value,{capture:r});else{const[o,a]=e.value;t.__onClickOutside_stop=z(t,o,Object.assign({capture:r},a))}},[c.directiveHooks.unmounted](t){t.__onClickOutside_stop()}};function T(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function N(...t){let e,r,o={};t.length===3?(e=t[0],r=t[1],o=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,r=t[0],o=t[1]):(e=t[0],r=t[1]):(e=!0,r=t[0]);const{target:a=S,eventName:u="keydown",passive:i=!1,dedupe:l=!1}=o,f=T(e);return $(a,u,d=>{d.repeat&&c.toValue(l)||f(d)&&r(d)},i)}var Ke=Object.defineProperty,X=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,q=(t,e,r)=>e in t?Ke(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ye=(t,e)=>{for(var r in e||(e={}))Ge.call(e,r)&&q(t,r,e[r]);if(X)for(var r of X(e))Je.call(e,r)&&q(t,r,e[r]);return t};const Xe={[c.directiveHooks.mounted](t,e){var r,o;const a=(o=(r=e.arg)==null?void 0:r.split(","))!=null?o:!0;if(typeof e.value=="function")N(a,e.value,{target:t});else{const[u,i]=e.value;N(a,u,Ye({target:t},i))}}},qe=500;function G(t,e,r){var o,a;const u=n.computed(()=>w(t));let i;function l(){i&&(clearTimeout(i),i=void 0)}function f(d){var _,v,m,y;(_=r?.modifiers)!=null&&_.self&&d.target!==u.value||(l(),(v=r?.modifiers)!=null&&v.prevent&&d.preventDefault(),(m=r?.modifiers)!=null&&m.stop&&d.stopPropagation(),i=setTimeout(()=>e(d),(y=r?.delay)!=null?y:qe))}const p={capture:(o=r?.modifiers)==null?void 0:o.capture,once:(a=r?.modifiers)==null?void 0:a.once};$(u,"pointerdown",f,p),$(u,"pointerup",l,p),$(u,"pointerleave",l,p)}const xe=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return G(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),x={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?G(t,e.value,{modifiers:e.modifiers}):G(t,...e.value)}},Qe=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:g.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),Ze=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(g.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),De=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(g.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),k=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},B="__vueuse_ssr_handlers__",et=tt();function tt(){return B in k||(k[B]=k[B]||{}),k[B]}function Q(t,e){return et[t]||e}function rt(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}var nt=Object.defineProperty,Z=Object.getOwnPropertySymbols,ot=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,D=(t,e,r)=>e in t?nt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ee=(t,e)=>{for(var r in e||(e={}))ot.call(e,r)&&D(t,r,e[r]);if(Z)for(var r of Z(e))at.call(e,r)&&D(t,r,e[r]);return t};const st={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},te="vueuse-storage";function it(t,e,r,o={}){var a;const{flush:u="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:f=!0,mergeDefaults:p=!1,shallow:d,window:_=S,eventFilter:v,onError:m=O=>{console.error(O)}}=o,y=(d?n.shallowRef:n.ref)(e);if(!r)try{r=Q("getDefaultStorage",()=>{var O;return(O=S)==null?void 0:O.localStorage})()}catch(O){m(O)}if(!r)return y;const h=c.toValue(e),j=rt(h),C=(a=o.serializer)!=null?a:st[j],{pause:A,resume:M}=c.pausableWatch(y,()=>U(y.value),{flush:u,deep:i,eventFilter:v});return _&&l&&($(_,"storage",L),$(_,te,I)),L(),y;function U(O){try{if(O==null)r.removeItem(t);else{const b=C.write(O),E=r.getItem(t);E!==b&&(r.setItem(t,b),_&&_.dispatchEvent(new CustomEvent(te,{detail:{key:t,oldValue:E,newValue:b,storageArea:r}})))}}catch(b){m(b)}}function P(O){const b=O?O.newValue:r.getItem(t);if(b==null)return f&&h!==null&&r.setItem(t,C.write(h)),h;if(!O&&p){const E=C.read(b);return typeof p=="function"?p(E,h):j==="object"&&!Array.isArray(E)?ee(ee({},h),E):E}else return typeof b!="string"?b:C.read(b)}function I(O){L(O.detail)}function L(O){if(!(O&&O.storageArea!==r)){if(O&&O.key==null){y.value=h;return}if(!(O&&O.key!==t)){A();try{y.value=P(O)}catch(b){m(b)}finally{O?n.nextTick(M):M()}}}}}function lt(){const t=n.ref(!1);return n.getCurrentInstance()&&n.onMounted(()=>{t.value=!0}),t}function W(t){const e=lt();return n.computed(()=>(e.value,!!t()))}function ut(t,e={}){const{window:r=S}=e,o=W(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let a;const u=n.ref(!1),i=()=>{a&&("removeEventListener"in a?a.removeEventListener("change",l):a.removeListener(l))},l=()=>{o.value&&(i(),a=r.matchMedia(c.toRef(t).value),u.value=!!a?.matches,a&&("addEventListener"in a?a.addEventListener("change",l):a.addListener(l)))};return n.watchEffect(l),c.tryOnScopeDispose(()=>i()),u}function ct(t){return ut("(prefers-color-scheme: dark)",t)}var ft=Object.defineProperty,re=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,ne=(t,e,r)=>e in t?ft(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,vt=(t,e)=>{for(var r in e||(e={}))dt.call(e,r)&&ne(t,r,e[r]);if(re)for(var r of re(e))pt.call(e,r)&&ne(t,r,e[r]);return t};function _t(t={}){const{selector:e="html",attribute:r="class",initialValue:o="auto",window:a=S,storage:u,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:f,emitAuto:p,disableTransition:d=!0}=t,_=vt({auto:"",light:"light",dark:"dark"},t.modes||{}),v=ct({window:a}),m=n.computed(()=>v.value?"dark":"light"),y=f||(i==null?c.toRef(o):it(i,o,u,{window:a,listenToStorageChanges:l})),h=n.computed(()=>y.value==="auto"?m.value:y.value),j=Q("updateHTMLAttrs",(U,P,I)=>{const L=typeof U=="string"?a?.document.querySelector(U):w(U);if(!L)return;let O;if(d){O=a.document.createElement("style");const b="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";O.appendChild(document.createTextNode(b)),a.document.head.appendChild(O)}if(P==="class"){const b=I.split(/\s/g);Object.values(_).flatMap(E=>(E||"").split(/\s/g)).filter(Boolean).forEach(E=>{b.includes(E)?L.classList.add(E):L.classList.remove(E)})}else L.setAttribute(P,I);d&&(a.getComputedStyle(O).opacity,document.head.removeChild(O))});function C(U){var P;j(e,r,(P=_[U])!=null?P:U)}function A(U){t.onChanged?t.onChanged(U,C):C(U)}n.watch(h,A,{flush:"post",immediate:!0}),c.tryOnMounted(()=>A(h.value));const M=n.computed({get(){return p?y.value:h.value},set(U){y.value=U}});try{return Object.assign(M,{store:y,system:m,state:h})}catch{return M}}const gt=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=_t(t),o=n.reactive({mode:r,system:r.system,store:r.store});return()=>{if(e.default)return e.default(o)}}}),mt=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=g.useDark(t),o=n.reactive({isDark:r,toggleDark:c.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),yt=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(g.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),Ot=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(g.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),Pt=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:g.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),wt=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(g.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),ht=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:g.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var bt=Object.defineProperty,St=Object.defineProperties,Ut=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,$t=Object.prototype.hasOwnProperty,Ct=Object.prototype.propertyIsEnumerable,ae=(t,e,r)=>e in t?bt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Et=(t,e)=>{for(var r in e||(e={}))$t.call(e,r)&&ae(t,r,e[r]);if(oe)for(var r of oe(e))Ct.call(e,r)&&ae(t,r,e[r]);return t},jt=(t,e)=>St(t,Ut(e));const It=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as","handle","axis","onStart","onMove","onEnd"],setup(t,{slots:e}){const r=n.ref(),o=n.computed(()=>{var f;return(f=t.handle)!=null?f:r.value}),a=t.storageKey&&g.useStorage(t.storageKey,c.toValue(t.initialValue)||{x:0,y:0},g.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0),u=a||t.initialValue||{x:0,y:0},i=(f,p)=>{var d;(d=t.onEnd)==null||d.call(t,f,p),a&&(a.value.x=f.x,a.value.y=f.y)},l=n.reactive(g.useDraggable(r,jt(Et({},t),{handle:o,initialValue:u,onEnd:i})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${l.style}`},e.default(l))}}}),Lt=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function At(t,e={}){const{delayEnter:r=0,delayLeave:o=0,window:a=S}=e,u=n.ref(!1);let i;const l=f=>{const p=f?r:o;i&&(clearTimeout(i),i=void 0),p?i=setTimeout(()=>u.value=f,p):u.value=f};return a&&($(t,"mouseenter",()=>l(!0),{passive:!0}),$(t,"mouseleave",()=>l(!1),{passive:!0})),u}const Vt={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=At(t);n.watch(r,o=>e.value(o))}}},Mt=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useElementSize(r,{width:t.width,height:t.height},{box:t.box}));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var se=Object.getOwnPropertySymbols,Nt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable,Rt=(t,e)=>{var r={};for(var o in t)Nt.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&se)for(var o of se(t))e.indexOf(o)<0&&Tt.call(t,o)&&(r[o]=t[o]);return r};function zt(t,e,r={}){const o=r,{window:a=S}=o,u=Rt(o,["window"]);let i;const l=W(()=>a&&"ResizeObserver"in a),f=()=>{i&&(i.disconnect(),i=void 0)},p=n.computed(()=>Array.isArray(t)?t.map(v=>w(v)):[w(t)]),d=n.watch(p,v=>{if(f(),l.value&&a){i=new ResizeObserver(e);for(const m of v)m&&i.observe(m,u)}},{immediate:!0,flush:"post",deep:!0}),_=()=>{f(),d()};return c.tryOnScopeDispose(_),{isSupported:l,stop:_}}function Ht(t,e={width:0,height:0},r={}){const{window:o=S,box:a="content-box"}=r,u=n.computed(()=>{var f,p;return(p=(f=w(t))==null?void 0:f.namespaceURI)==null?void 0:p.includes("svg")}),i=n.ref(e.width),l=n.ref(e.height);return zt(t,([f])=>{const p=a==="border-box"?f.borderBoxSize:a==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(o&&u.value){const d=w(t);if(d){const _=o.getComputedStyle(d);i.value=Number.parseFloat(_.width),l.value=Number.parseFloat(_.height)}}else if(p){const d=Array.isArray(p)?p:[p];i.value=d.reduce((_,{inlineSize:v})=>_+v,0),l.value=d.reduce((_,{blockSize:v})=>_+v,0)}else i.value=f.contentRect.width,l.value=f.contentRect.height},r),n.watch(()=>w(t),f=>{i.value=f?e.width:0,l.value=f?e.height:0}),{width:i,height:l}}const kt={[c.directiveHooks.mounted](t,e){var r;const o=typeof e.value=="function"?e.value:(r=e.value)==null?void 0:r[0],a=typeof e.value=="function"?[]:e.value.slice(1),{width:u,height:i}=Ht(t,...a);n.watch([u,i],([l,f])=>o({width:l,height:f}))}},Bt=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:g.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function J(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:u=.1,window:i=S,immediate:l=!0}=r,f=W(()=>i&&"IntersectionObserver"in i),p=n.computed(()=>{const y=c.toValue(t);return(Array.isArray(y)?y:[y]).map(w).filter(c.notNullish)});let d=c.noop;const _=n.ref(l),v=f.value?n.watch(()=>[p.value,w(o),_.value],([y,h])=>{if(d(),!_.value||!y.length)return;const j=new IntersectionObserver(e,{root:w(h),rootMargin:a,threshold:u});y.forEach(C=>C&&j.observe(C)),d=()=>{j.disconnect(),d=c.noop}},{immediate:l,flush:"post"}):c.noop,m=()=>{d(),v(),_.value=!1};return c.tryOnScopeDispose(m),{isSupported:f,isActive:_,pause(){d(),_.value=!1},resume(){_.value=!0},stop:m}}function ie(t,{window:e=S,scrollTarget:r}={}){const o=n.ref(!1);return J(t,([{isIntersecting:a}])=>{o.value=a},{root:r,window:e}),o}const Wt={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=ie(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=ie(t,o);n.watch(a,u=>r(u),{immediate:!0})}}},Ft=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(g.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),Kt=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Gt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(g.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),Jt=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(g.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});var Yt=Object.defineProperty,Xt=Object.defineProperties,qt=Object.getOwnPropertyDescriptors,le=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable,ue=(t,e,r)=>e in t?Yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Zt=(t,e)=>{for(var r in e||(e={}))xt.call(e,r)&&ue(t,r,e[r]);if(le)for(var r of le(e))Qt.call(e,r)&&ue(t,r,e[r]);return t},Dt=(t,e)=>Xt(t,qt(e));function er(t,e,r){const{immediate:o=!0,delay:a=0,onError:u=c.noop,onSuccess:i=c.noop,resetOnExecute:l=!0,shallow:f=!0,throwError:p}=r??{},d=f?n.shallowRef(e):n.ref(e),_=n.ref(!1),v=n.ref(!1),m=n.shallowRef(void 0);async function y(C=0,...A){l&&(d.value=e),m.value=void 0,_.value=!1,v.value=!0,C>0&&await c.promiseTimeout(C);const M=typeof t=="function"?t(...A):t;try{const U=await M;d.value=U,_.value=!0,i(U)}catch(U){if(m.value=U,u(U),p)throw U}finally{v.value=!1}return d.value}o&&y(a);const h={state:d,isReady:_,isLoading:v,error:m,execute:y};function j(){return new Promise((C,A)=>{c.until(v).toBe(!1).then(()=>C(h)).catch(A)})}return Dt(Zt({},h),{then(C,A){return j().then(C,A)}})}var tr=Object.defineProperty,ce=Object.getOwnPropertySymbols,rr=Object.prototype.hasOwnProperty,nr=Object.prototype.propertyIsEnumerable,fe=(t,e,r)=>e in t?tr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,or=(t,e)=>{for(var r in e||(e={}))rr.call(e,r)&&fe(t,r,e[r]);if(ce)for(var r of ce(e))nr.call(e,r)&&fe(t,r,e[r]);return t};async function ar(t){return new Promise((e,r)=>{const o=new Image,{src:a,srcset:u,sizes:i,class:l,loading:f,crossorigin:p,referrerPolicy:d}=t;o.src=a,u&&(o.srcset=u),i&&(o.sizes=i),l&&(o.className=l),f&&(o.loading=f),p&&(o.crossOrigin=p),d&&(o.referrerPolicy=d),o.onload=()=>e(o),o.onerror=r})}function sr(t,e={}){const r=er(()=>ar(c.toValue(t)),void 0,or({resetOnExecute:!0},e));return n.watch(()=>c.toValue(t),()=>r.execute(e.delay),{deep:!0}),r}const ir=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as","alt","class","loading","crossorigin","referrerPolicy"],setup(t,{slots:e}){const r=n.reactive(sr(t));return()=>r.isLoading&&e.loading?e.loading(r):r.error&&e.error?e.error(r.error):e.default?e.default(r):n.h(t.as||"img",t)}}),de=1;function Y(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=c.noop,onScroll:u=c.noop,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:l={capture:!1,passive:!0},behavior:f="auto"}=e,p=n.ref(0),d=n.ref(0),_=n.computed({get(){return p.value},set(P){m(P,void 0)}}),v=n.computed({get(){return d.value},set(P){m(void 0,P)}});function m(P,I){var L,O,b;const E=c.toValue(t);E&&((b=E instanceof Document?document.body:E)==null||b.scrollTo({top:(L=c.toValue(I))!=null?L:v.value,left:(O=c.toValue(P))!=null?O:_.value,behavior:c.toValue(f)}))}const y=n.ref(!1),h=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),j=n.reactive({left:!1,right:!1,top:!1,bottom:!1}),C=P=>{y.value&&(y.value=!1,j.left=!1,j.right=!1,j.top=!1,j.bottom=!1,a(P))},A=c.useDebounceFn(C,r+o),M=P=>{const I=P===window?P.document.documentElement:P===document?P.documentElement:P,{display:L,flexDirection:O}=getComputedStyle(I),b=I.scrollLeft;j.left=b<p.value,j.right=b>p.value;const E=Math.abs(b)<=0+(i.left||0),ke=Math.abs(b)+I.clientWidth>=I.scrollWidth-(i.right||0)-de;L==="flex"&&O==="row-reverse"?(h.left=ke,h.right=E):(h.left=E,h.right=ke),p.value=b;let R=I.scrollTop;P===document&&!R&&(R=document.body.scrollTop),j.top=R<d.value,j.bottom=R>d.value;const Be=Math.abs(R)<=0+(i.top||0),We=Math.abs(R)+I.clientHeight>=I.scrollHeight-(i.bottom||0)-de;L==="flex"&&O==="column-reverse"?(h.top=We,h.bottom=Be):(h.top=Be,h.bottom=We),d.value=R},U=P=>{const I=P.target===document?P.target.documentElement:P.target;M(I),y.value=!0,A(P),u(P)};return $(t,"scroll",r?c.useThrottleFn(U,r,!0,!1):U,l),$(t,"scrollend",C,l),{x:_,y:v,isScrolling:y,arrivedState:h,directions:j,measure(){const P=c.toValue(t);P&&M(P)}}}var lr=Object.defineProperty,ur=Object.defineProperties,cr=Object.getOwnPropertyDescriptors,pe=Object.getOwnPropertySymbols,fr=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable,ve=(t,e,r)=>e in t?lr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,_e=(t,e)=>{for(var r in e||(e={}))fr.call(e,r)&&ve(t,r,e[r]);if(pe)for(var r of pe(e))dr.call(e,r)&&ve(t,r,e[r]);return t},pr=(t,e)=>ur(t,cr(e));function ge(t,e,r={}){var o;const{direction:a="bottom",interval:u=100}=r,i=n.reactive(Y(t,pr(_e({},r),{offset:_e({[a]:(o=r.distance)!=null?o:0},r.offset)}))),l=n.ref(),f=n.computed(()=>!!l.value);function p(){i.measure();const d=c.toValue(t);if(!d)return;const _=a==="bottom"||a==="top"?d.scrollHeight<=d.clientHeight:d.scrollWidth<=d.clientWidth;(i.arrivedState[a]||_)&&(l.value||(l.value=Promise.all([e(i),new Promise(v=>setTimeout(v,u))]).finally(()=>{l.value=null,n.nextTick(()=>p())})))}return n.watch(()=>[i.arrivedState[a],c.toValue(t)],p,{immediate:!0}),{isLoading:f}}const vr={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?ge(t,e.value):ge(t,...e.value)}},_r={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?J(t,e.value):J(t,...e.value)}},gr=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(g.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),mr=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var yr=Object.defineProperty,Or=Object.defineProperties,Pr=Object.getOwnPropertyDescriptors,me=Object.getOwnPropertySymbols,wr=Object.prototype.hasOwnProperty,hr=Object.prototype.propertyIsEnumerable,ye=(t,e,r)=>e in t?yr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,br=(t,e)=>{for(var r in e||(e={}))wr.call(e,r)&&ye(t,r,e[r]);if(me)for(var r of me(e))hr.call(e,r)&&ye(t,r,e[r]);return t},Sr=(t,e)=>Or(t,Pr(e));const Ur=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useMousePressed(Sr(br({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),$r=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(g.useNetwork());return()=>{if(e.default)return e.default(r)}}});var Cr=Object.defineProperty,Er=Object.defineProperties,jr=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,Ir=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Pe=(t,e,r)=>e in t?Cr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ar=(t,e)=>{for(var r in e||(e={}))Ir.call(e,r)&&Pe(t,r,e[r]);if(Oe)for(var r of Oe(e))Lr.call(e,r)&&Pe(t,r,e[r]);return t},Vr=(t,e)=>Er(t,jr(e));const Mr=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(g.useNow(Vr(Ar({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),Nr=n.defineComponent({name:"UseObjectUrl",props:["object"],setup(t,{slots:e}){const r=c.toRef(t,"object"),o=g.useObjectUrl(r);return()=>{if(e.default&&o.value)return e.default(o)}}});var Tr=Object.defineProperty,Rr=Object.defineProperties,zr=Object.getOwnPropertyDescriptors,we=Object.getOwnPropertySymbols,Hr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,he=(t,e,r)=>e in t?Tr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Br=(t,e)=>{for(var r in e||(e={}))Hr.call(e,r)&&he(t,r,e[r]);if(we)for(var r of we(e))kr.call(e,r)&&he(t,r,e[r]);return t},Wr=(t,e)=>Rr(t,zr(e));const Fr=n.defineComponent({name:"UseOffsetPagination",props:["total","page","pageSize","onPageChange","onPageSizeChange","onPageCountChange"],emits:["page-change","page-size-change","page-count-change"],setup(t,{slots:e,emit:r}){const o=n.reactive(g.useOffsetPagination(Wr(Br({},t),{onPageChange(...a){var u;(u=t.onPageChange)==null||u.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var u;(u=t.onPageSizeChange)==null||u.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var u;(u=t.onPageCountChange)==null||u.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),Kr=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:g.useOnline()});return()=>{if(e.default)return e.default(r)}}}),Gr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:g.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var Jr=Object.defineProperty,Yr=Object.defineProperties,Xr=Object.getOwnPropertyDescriptors,be=Object.getOwnPropertySymbols,qr=Object.prototype.hasOwnProperty,xr=Object.prototype.propertyIsEnumerable,Se=(t,e,r)=>e in t?Jr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Qr=(t,e)=>{for(var r in e||(e={}))qr.call(e,r)&&Se(t,r,e[r]);if(be)for(var r of be(e))xr.call(e,r)&&Se(t,r,e[r]);return t},Zr=(t,e)=>Yr(t,Xr(e));const Dr=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(g.usePointer(Zr(Qr({},t),{target:t.target==="self"?r:S})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),en=n.defineComponent({name:"UsePointerLock",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.usePointerLock(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),tn=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:g.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),rn=n.defineComponent({name:"UsePreferredContrast",setup(t,{slots:e}){const r=n.reactive({contrast:g.usePreferredContrast()});return()=>{if(e.default)return e.default(r)}}}),nn=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:g.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),on=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:g.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}}),an=n.defineComponent({name:"UsePreferredReducedMotion",setup(t,{slots:e}){const r=n.reactive({motion:g.usePreferredReducedMotion()});return()=>{if(e.default)return e.default(r)}}});var Ue=Object.getOwnPropertySymbols,sn=Object.prototype.hasOwnProperty,ln=Object.prototype.propertyIsEnumerable,un=(t,e)=>{var r={};for(var o in t)sn.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&Ue)for(var o of Ue(t))e.indexOf(o)<0&&ln.call(t,o)&&(r[o]=t[o]);return r};function cn(t,e,r={}){const o=r,{window:a=S}=o,u=un(o,["window"]);let i;const l=W(()=>a&&"MutationObserver"in a),f=()=>{i&&(i.disconnect(),i=void 0)},p=n.watch(()=>w(t),_=>{f(),l.value&&a&&_&&(i=new MutationObserver(e),i.observe(_,u))},{immediate:!0}),d=()=>{f(),p()};return c.tryOnScopeDispose(d),{isSupported:l,stop:d}}function F(t,e,r={}){const{window:o=S,initialValue:a="",observe:u=!1}=r,i=n.ref(a),l=n.computed(()=>{var p;return w(e)||((p=o?.document)==null?void 0:p.documentElement)});function f(){var p;const d=c.toValue(t),_=c.toValue(l);if(_&&o){const v=(p=o.getComputedStyle(_).getPropertyValue(d))==null?void 0:p.trim();i.value=v||a}}return u&&cn(l,f,{attributeFilter:["style","class"],window:o}),n.watch([l,()=>c.toValue(t)],f,{immediate:!0}),n.watch(i,p=>{var d;(d=l.value)!=null&&d.style&&l.value.style.setProperty(c.toValue(t),p)}),i}const $e="--vueuse-safe-area-top",Ce="--vueuse-safe-area-right",Ee="--vueuse-safe-area-bottom",je="--vueuse-safe-area-left";function fn(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(c.isClient){const u=F($e),i=F(Ce),l=F(Ee),f=F(je);u.value="env(safe-area-inset-top, 0px)",i.value="env(safe-area-inset-right, 0px)",l.value="env(safe-area-inset-bottom, 0px)",f.value="env(safe-area-inset-left, 0px)",a(),$("resize",c.useDebounceFn(a))}function a(){t.value=K($e),e.value=K(Ce),r.value=K(Ee),o.value=K(je)}return{top:t,right:e,bottom:r,left:o,update:a}}function K(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const dn=n.defineComponent({name:"UseScreenSafeArea",props:{top:Boolean,right:Boolean,bottom:Boolean,left:Boolean},setup(t,{slots:e}){const{top:r,right:o,bottom:a,left:u}=fn();return()=>{if(e.default)return n.h("div",{style:{paddingTop:t.top?r.value:"",paddingRight:t.right?o.value:"",paddingBottom:t.bottom?a.value:"",paddingLeft:t.left?u.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var pn=Object.defineProperty,vn=Object.defineProperties,_n=Object.getOwnPropertyDescriptors,Ie=Object.getOwnPropertySymbols,gn=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable,Le=(t,e,r)=>e in t?pn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,yn=(t,e)=>{for(var r in e||(e={}))gn.call(e,r)&&Le(t,r,e[r]);if(Ie)for(var r of Ie(e))mn.call(e,r)&&Le(t,r,e[r]);return t},On=(t,e)=>vn(t,_n(e));const Pn={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=Y(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=Y(t,On(yn({},o),{onScroll(u){var i;(i=o.onScroll)==null||i.call(o,u),r(a)},onStop(u){var i;(i=o.onStop)==null||i.call(o,u),r(a)}}))}}};function Ae(t){const e=window.getComputedStyle(t);if(e.overflowX==="scroll"||e.overflowY==="scroll"||e.overflowX==="auto"&&t.clientWidth<t.scrollWidth||e.overflowY==="auto"&&t.clientHeight<t.scrollHeight)return!0;{const r=t.parentNode;return!r||r.tagName==="BODY"?!1:Ae(r)}}function wn(t){const e=t||window.event,r=e.target;return Ae(r)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function hn(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(c.toRef(t),l=>{if(l){const f=l;a=f.style.overflow,r.value&&(f.style.overflow="hidden")}},{immediate:!0});const u=()=>{const l=c.toValue(t);!l||r.value||(c.isIOS&&(o=$(l,"touchmove",f=>{wn(f)},{passive:!1})),l.style.overflow="hidden",r.value=!0)},i=()=>{const l=c.toValue(t);!l||!r.value||(c.isIOS&&o?.(),l.style.overflow=a,r.value=!1)};return c.tryOnScopeDispose(i),n.computed({get(){return r.value},set(l){l?u():i()}})}function bn(){let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=hn(r,o.value);n.watch(e,u=>a.value=u)}}const Sn=bn();var Un=Object.defineProperty,$n=Object.defineProperties,Cn=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,En=Object.prototype.hasOwnProperty,jn=Object.prototype.propertyIsEnumerable,Me=(t,e,r)=>e in t?Un(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,In=(t,e)=>{for(var r in e||(e={}))En.call(e,r)&&Me(t,r,e[r]);if(Ve)for(var r of Ve(e))jn.call(e,r)&&Me(t,r,e[r]);return t},Ln=(t,e)=>$n(t,Cn(e));const An=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages","showSecond"],setup(t,{slots:e}){const r=n.reactive(g.useTimeAgo(()=>t.time,Ln(In({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var Vn=Object.defineProperty,Mn=Object.defineProperties,Nn=Object.getOwnPropertyDescriptors,Ne=Object.getOwnPropertySymbols,Tn=Object.prototype.hasOwnProperty,Rn=Object.prototype.propertyIsEnumerable,Te=(t,e,r)=>e in t?Vn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,zn=(t,e)=>{for(var r in e||(e={}))Tn.call(e,r)&&Te(t,r,e[r]);if(Ne)for(var r of Ne(e))Rn.call(e,r)&&Te(t,r,e[r]);return t},Hn=(t,e)=>Mn(t,Nn(e));const kn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(g.useTimestamp(Hn(zn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var Bn=Object.defineProperty,Re=Object.getOwnPropertySymbols,Wn=Object.prototype.hasOwnProperty,Fn=Object.prototype.propertyIsEnumerable,ze=(t,e,r)=>e in t?Bn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,He=(t,e)=>{for(var r in e||(e={}))Wn.call(e,r)&&ze(t,r,e[r]);if(Re)for(var r of Re(e))Fn.call(e,r)&&ze(t,r,e[r]);return t};const Kn=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e,expose:r}){const{list:o}=n.toRefs(t),{list:a,containerProps:u,wrapperProps:i,scrollTo:l}=g.useVirtualList(o,t.options);return r({scrollTo:l}),typeof u.style=="object"&&!Array.isArray(u.style)&&(u.style.height=t.height||"300px"),()=>n.h("div",He({},u),[n.h("div",He({},i.value),a.value.map(f=>n.h("div",{style:{overFlow:"hidden",height:f.height}},e.default?e.default(f):"Please set content!")))])}}),Gn=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:g.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),Jn=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(g.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});s.OnClickOutside=Fe,s.OnLongPress=xe,s.UseActiveElement=Qe,s.UseBattery=Ze,s.UseBrowserLocation=De,s.UseColorMode=gt,s.UseDark=mt,s.UseDeviceMotion=yt,s.UseDeviceOrientation=Ot,s.UseDevicePixelRatio=Pt,s.UseDevicesList=wt,s.UseDocumentVisibility=ht,s.UseDraggable=It,s.UseElementBounding=Lt,s.UseElementSize=Mt,s.UseElementVisibility=Bt,s.UseEyeDropper=Ft,s.UseFullscreen=Kt,s.UseGeolocation=Gt,s.UseIdle=Jt,s.UseImage=ir,s.UseMouse=gr,s.UseMouseInElement=mr,s.UseMousePressed=Ur,s.UseNetwork=$r,s.UseNow=Mr,s.UseObjectUrl=Nr,s.UseOffsetPagination=Fr,s.UseOnline=Kr,s.UsePageLeave=Gr,s.UsePointer=Dr,s.UsePointerLock=en,s.UsePreferredColorScheme=tn,s.UsePreferredContrast=rn,s.UsePreferredDark=nn,s.UsePreferredLanguages=on,s.UsePreferredReducedMotion=an,s.UseScreenSafeArea=dn,s.UseTimeAgo=An,s.UseTimestamp=kn,s.UseVirtualList=Kn,s.UseWindowFocus=Gn,s.UseWindowSize=Jn,s.VOnClickOutside=H,s.VOnLongPress=x,s.vElementHover=Vt,s.vElementSize=kt,s.vElementVisibility=Wt,s.vInfiniteScroll=vr,s.vIntersectionObserver=_r,s.vOnClickOutside=H,s.vOnKeyStroke=Xe,s.vOnLongPress=x,s.vScroll=Pn,s.vScrollLock=Sn})(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
package/index.mjs CHANGED
@@ -114,10 +114,12 @@ function onClickOutside(target, handler, options = {}) {
114
114
  shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);
115
115
  }, { passive: true }),
116
116
  detectIframe && useEventListener(window, "blur", (event) => {
117
- var _a;
118
- const el = unrefElement(target);
119
- if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement)))
120
- handler(event);
117
+ setTimeout(() => {
118
+ var _a;
119
+ const el = unrefElement(target);
120
+ if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement)))
121
+ handler(event);
122
+ }, 0);
121
123
  })
122
124
  ].filter(Boolean);
123
125
  const stop = () => cleanup.forEach((fn) => fn());
@@ -597,7 +599,8 @@ function useColorMode(options = {}) {
597
599
  let style;
598
600
  if (disableTransition) {
599
601
  style = window.document.createElement("style");
600
- style.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"));
602
+ const styleString = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";
603
+ style.appendChild(document.createTextNode(styleString));
601
604
  window.document.head.appendChild(style);
602
605
  }
603
606
  if (attribute2 === "class") {
@@ -768,7 +771,10 @@ const UseDraggable = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
768
771
  "pointerTypes",
769
772
  "as",
770
773
  "handle",
771
- "axis"
774
+ "axis",
775
+ "onStart",
776
+ "onMove",
777
+ "onEnd"
772
778
  ],
773
779
  setup(props, { slots }) {
774
780
  const target = ref();
@@ -782,7 +788,9 @@ const UseDraggable = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
782
788
  isClient$1 ? props.storageType === "session" ? sessionStorage : localStorage : void 0
783
789
  );
784
790
  const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };
785
- const onEnd = (position) => {
791
+ const onEnd = (position, event) => {
792
+ var _a;
793
+ (_a = props.onEnd) == null ? void 0 : _a.call(props, position, event);
786
794
  if (!storageValue)
787
795
  return;
788
796
  storageValue.value.x = position.x;
@@ -928,8 +936,8 @@ function useElementSize(target, initialSize = { width: 0, height: 0 }, options =
928
936
  const $elem = unrefElement(target);
929
937
  if ($elem) {
930
938
  const styles = window.getComputedStyle($elem);
931
- width.value = parseFloat(styles.width);
932
- height.value = parseFloat(styles.height);
939
+ width.value = Number.parseFloat(styles.width);
940
+ height.value = Number.parseFloat(styles.height);
933
941
  }
934
942
  } else {
935
943
  if (boxSize) {
@@ -1218,12 +1226,20 @@ var __spreadValues$9 = (a, b) => {
1218
1226
  async function loadImage(options) {
1219
1227
  return new Promise((resolve, reject) => {
1220
1228
  const img = new Image();
1221
- const { src, srcset, sizes } = options;
1229
+ const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;
1222
1230
  img.src = src;
1223
1231
  if (srcset)
1224
1232
  img.srcset = srcset;
1225
1233
  if (sizes)
1226
1234
  img.sizes = sizes;
1235
+ if (clazz)
1236
+ img.className = clazz;
1237
+ if (loading)
1238
+ img.loading = loading;
1239
+ if (crossorigin)
1240
+ img.crossOrigin = crossorigin;
1241
+ if (referrerPolicy)
1242
+ img.referrerPolicy = referrerPolicy;
1227
1243
  img.onload = () => resolve(img);
1228
1244
  img.onerror = reject;
1229
1245
  });
@@ -1250,7 +1266,12 @@ const UseImage = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
1250
1266
  "src",
1251
1267
  "srcset",
1252
1268
  "sizes",
1253
- "as"
1269
+ "as",
1270
+ "alt",
1271
+ "class",
1272
+ "loading",
1273
+ "crossorigin",
1274
+ "referrerPolicy"
1254
1275
  ],
1255
1276
  setup(props, { slots }) {
1256
1277
  const data = reactive(useImage(props));
@@ -1338,14 +1359,14 @@ function useScroll(element, options = {}) {
1338
1359
  onStop(e);
1339
1360
  };
1340
1361
  const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);
1341
- const onScrollHandler = (e) => {
1342
- const eventTarget = e.target === document ? e.target.documentElement : e.target;
1343
- const { display, flexDirection } = getComputedStyle(eventTarget);
1344
- const scrollLeft = eventTarget.scrollLeft;
1362
+ const setArrivedState = (target) => {
1363
+ const el = target === window ? target.document.documentElement : target === document ? target.documentElement : target;
1364
+ const { display, flexDirection } = getComputedStyle(el);
1365
+ const scrollLeft = el.scrollLeft;
1345
1366
  directions.left = scrollLeft < internalX.value;
1346
1367
  directions.right = scrollLeft > internalX.value;
1347
1368
  const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
1348
- const right = Math.abs(scrollLeft) + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1369
+ const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1349
1370
  if (display === "flex" && flexDirection === "row-reverse") {
1350
1371
  arrivedState.left = right;
1351
1372
  arrivedState.right = left;
@@ -1354,13 +1375,13 @@ function useScroll(element, options = {}) {
1354
1375
  arrivedState.right = right;
1355
1376
  }
1356
1377
  internalX.value = scrollLeft;
1357
- let scrollTop = eventTarget.scrollTop;
1358
- if (e.target === document && !scrollTop)
1378
+ let scrollTop = el.scrollTop;
1379
+ if (target === document && !scrollTop)
1359
1380
  scrollTop = document.body.scrollTop;
1360
1381
  directions.top = scrollTop < internalY.value;
1361
1382
  directions.bottom = scrollTop > internalY.value;
1362
1383
  const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
1363
- const bottom = Math.abs(scrollTop) + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1384
+ const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1364
1385
  if (display === "flex" && flexDirection === "column-reverse") {
1365
1386
  arrivedState.top = bottom;
1366
1387
  arrivedState.bottom = top;
@@ -1369,6 +1390,10 @@ function useScroll(element, options = {}) {
1369
1390
  arrivedState.bottom = bottom;
1370
1391
  }
1371
1392
  internalY.value = scrollTop;
1393
+ };
1394
+ const onScrollHandler = (e) => {
1395
+ const eventTarget = e.target === document ? e.target.documentElement : e.target;
1396
+ setArrivedState(eventTarget);
1372
1397
  isScrolling.value = true;
1373
1398
  onScrollEndDebounced(e);
1374
1399
  onScroll(e);
@@ -1390,7 +1415,12 @@ function useScroll(element, options = {}) {
1390
1415
  y,
1391
1416
  isScrolling,
1392
1417
  arrivedState,
1393
- directions
1418
+ directions,
1419
+ measure() {
1420
+ const _element = toValue(element);
1421
+ if (_element)
1422
+ setArrivedState(_element);
1423
+ }
1394
1424
  };
1395
1425
  }
1396
1426
 
@@ -1430,6 +1460,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
1430
1460
  const promise = ref();
1431
1461
  const isLoading = computed(() => !!promise.value);
1432
1462
  function checkAndLoad() {
1463
+ state.measure();
1433
1464
  const el = toValue(element);
1434
1465
  if (!el)
1435
1466
  return;
@@ -1854,7 +1885,7 @@ function useCssVar(prop, target, options = {}) {
1854
1885
  }
1855
1886
  if (observe) {
1856
1887
  useMutationObserver(elRef, updateCssVar, {
1857
- attributes: true,
1888
+ attributeFilter: ["style", "class"],
1858
1889
  window
1859
1890
  });
1860
1891
  }
@@ -1998,7 +2029,7 @@ const vScroll = {
1998
2029
 
1999
2030
  function checkOverflowScroll(ele) {
2000
2031
  const style = window.getComputedStyle(ele);
2001
- if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientHeight < ele.scrollHeight || style.overflowY === "auto" && ele.clientWidth < ele.scrollWidth) {
2032
+ if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) {
2002
2033
  return true;
2003
2034
  } else {
2004
2035
  const parent = ele.parentNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vueuse/components",
3
- "version": "10.1.0",
3
+ "version": "10.2.0",
4
4
  "description": "Renderless components for VueUse",
5
5
  "author": "Jacob Clevenger<https://github.com/wheatjs>",
6
6
  "license": "MIT",
@@ -33,8 +33,8 @@
33
33
  "jsdelivr": "./index.iife.min.js",
34
34
  "types": "./index.d.ts",
35
35
  "dependencies": {
36
- "@vueuse/core": "10.1.0",
37
- "@vueuse/shared": "10.1.0",
38
- "vue-demi": ">=0.14.0"
36
+ "@vueuse/core": "10.2.0",
37
+ "@vueuse/shared": "10.2.0",
38
+ "vue-demi": ">=0.14.5"
39
39
  }
40
40
  }