@vueuse/components 10.0.0-beta.3 → 10.0.0-beta.4

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
@@ -22,7 +22,7 @@ const OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
22
22
 
23
23
  function unrefElement(elRef) {
24
24
  var _a;
25
- const plain = shared.resolveUnref(elRef);
25
+ const plain = shared.toValue(elRef);
26
26
  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
27
27
  }
28
28
 
@@ -55,7 +55,7 @@ function useEventListener(...args) {
55
55
  return () => el.removeEventListener(event, listener, options2);
56
56
  };
57
57
  const stopWatch = vueDemi.watch(
58
- () => [unrefElement(target), shared.resolveUnref(options)],
58
+ () => [unrefElement(target), shared.toValue(options)],
59
59
  ([el, options2]) => {
60
60
  cleanup();
61
61
  if (!el)
@@ -179,7 +179,7 @@ function onKeyStroke(...args) {
179
179
  } = options;
180
180
  const predicate = createKeyPredicate(key);
181
181
  const listener = (e) => {
182
- if (e.repeat && shared.resolveUnref(dedupe))
182
+ if (e.repeat && shared.toValue(dedupe))
183
183
  return;
184
184
  if (predicate(e))
185
185
  handler(e);
@@ -409,7 +409,7 @@ function useStorage(key, defaults, storage, options = {}) {
409
409
  }
410
410
  if (!storage)
411
411
  return data;
412
- const rawInit = shared.resolveUnref(defaults);
412
+ const rawInit = shared.toValue(defaults);
413
413
  const type = guessSerializerType(rawInit);
414
414
  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
415
415
  const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(
@@ -528,7 +528,7 @@ function useMediaQuery(query, options = {}) {
528
528
  if (!isSupported.value)
529
529
  return;
530
530
  cleanup();
531
- mediaQuery = window.matchMedia(shared.resolveRef(query).value);
531
+ mediaQuery = window.matchMedia(shared.toRef(query).value);
532
532
  matches.value = !!(mediaQuery == null ? void 0 : mediaQuery.matches);
533
533
  if (!mediaQuery)
534
534
  return;
@@ -573,8 +573,7 @@ function useColorMode(options = {}) {
573
573
  listenToStorageChanges = true,
574
574
  storageRef,
575
575
  emitAuto,
576
- // TODO: switch to true in v10
577
- disableTransition = false
576
+ disableTransition = true
578
577
  } = options;
579
578
  const modes = __spreadValues$b({
580
579
  auto: "",
@@ -582,11 +581,11 @@ function useColorMode(options = {}) {
582
581
  dark: "dark"
583
582
  }, options.modes || {});
584
583
  const preferredDark = usePreferredDark({ window });
585
- const preferredMode = vueDemi.computed(() => preferredDark.value ? "dark" : "light");
584
+ const system = vueDemi.computed(() => preferredDark.value ? "dark" : "light");
586
585
  const store = storageRef || (storageKey == null ? vueDemi.ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));
587
586
  const state = vueDemi.computed({
588
587
  get() {
589
- return store.value === "auto" && !emitAuto ? preferredMode.value : store.value;
588
+ return store.value === "auto" && !emitAuto ? system.value : store.value;
590
589
  },
591
590
  set(v) {
592
591
  store.value = v;
@@ -595,13 +594,12 @@ function useColorMode(options = {}) {
595
594
  const updateHTMLAttrs = getSSRHandler(
596
595
  "updateHTMLAttrs",
597
596
  (selector2, attribute2, value) => {
598
- const el = window == null ? void 0 : window.document.querySelector(selector2);
597
+ const el = typeof selector2 === "string" ? window == null ? void 0 : window.document.querySelector(selector2) : shared.toValue(selector2);
599
598
  if (!el)
600
599
  return;
601
600
  let style;
602
601
  if (disableTransition) {
603
602
  style = window.document.createElement("style");
604
- style.type = "text/css";
605
603
  style.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"));
606
604
  window.document.head.appendChild(style);
607
605
  }
@@ -624,7 +622,7 @@ function useColorMode(options = {}) {
624
622
  );
625
623
  function defaultOnChanged(mode) {
626
624
  var _a;
627
- const resolvedMode = mode === "auto" ? preferredMode.value : mode;
625
+ const resolvedMode = mode === "auto" ? system.value : mode;
628
626
  updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);
629
627
  }
630
628
  function onChanged(mode) {
@@ -635,9 +633,13 @@ function useColorMode(options = {}) {
635
633
  }
636
634
  vueDemi.watch(state, onChanged, { flush: "post", immediate: true });
637
635
  if (emitAuto)
638
- vueDemi.watch(preferredMode, () => onChanged(state.value), { flush: "post" });
636
+ vueDemi.watch(system, () => onChanged(state.value), { flush: "post" });
639
637
  shared.tryOnMounted(() => onChanged(state.value));
640
- return state;
638
+ try {
639
+ return Object.assign(state, { store, system });
640
+ } catch (e) {
641
+ return state;
642
+ }
641
643
  }
642
644
 
643
645
  const UseColorMode = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
@@ -646,7 +648,9 @@ const UseColorMode = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
646
648
  setup(props, { slots }) {
647
649
  const mode = useColorMode(props);
648
650
  const data = vueDemi.reactive({
649
- mode
651
+ mode,
652
+ system: mode.system,
653
+ store: mode.store
650
654
  });
651
655
  return () => {
652
656
  if (slots.default)
@@ -772,7 +776,7 @@ const UseDraggable = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
772
776
  });
773
777
  const storageValue = props.storageKey && core.useStorage(
774
778
  props.storageKey,
775
- shared.resolveUnref(props.initialValue) || { x: 0, y: 0 },
779
+ shared.toValue(props.initialValue) || { x: 0, y: 0 },
776
780
  core.isClient ? props.storageType === "session" ? sessionStorage : localStorage : void 0
777
781
  );
778
782
  const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };
@@ -981,23 +985,24 @@ function useIntersectionObserver(target, callback, options = {}) {
981
985
  root,
982
986
  rootMargin = "0px",
983
987
  threshold = 0.1,
984
- window = defaultWindow
988
+ window = defaultWindow,
989
+ immediate = true
985
990
  } = options;
986
991
  const isSupported = useSupported(() => window && "IntersectionObserver" in window);
987
992
  let cleanup = shared.noop;
993
+ const isActive = vueDemi.ref(immediate);
988
994
  const stopWatch = isSupported.value ? vueDemi.watch(
989
- () => ({
990
- el: unrefElement(target),
991
- root: unrefElement(root)
992
- }),
993
- ({ el, root: root2 }) => {
995
+ () => [unrefElement(target), unrefElement(root), isActive.value],
996
+ ([el, root2]) => {
994
997
  cleanup();
998
+ if (!isActive.value)
999
+ return;
995
1000
  if (!el)
996
1001
  return;
997
1002
  const observer = new IntersectionObserver(
998
1003
  callback,
999
1004
  {
1000
- root: root2,
1005
+ root: unrefElement(root2),
1001
1006
  rootMargin,
1002
1007
  threshold
1003
1008
  }
@@ -1008,15 +1013,24 @@ function useIntersectionObserver(target, callback, options = {}) {
1008
1013
  cleanup = shared.noop;
1009
1014
  };
1010
1015
  },
1011
- { immediate: true, flush: "post" }
1016
+ { immediate, flush: "post" }
1012
1017
  ) : shared.noop;
1013
1018
  const stop = () => {
1014
1019
  cleanup();
1015
1020
  stopWatch();
1021
+ isActive.value = false;
1016
1022
  };
1017
1023
  shared.tryOnScopeDispose(stop);
1018
1024
  return {
1019
1025
  isSupported,
1026
+ isActive,
1027
+ pause() {
1028
+ cleanup();
1029
+ isActive.value = false;
1030
+ },
1031
+ resume() {
1032
+ isActive.value = true;
1033
+ },
1020
1034
  stop
1021
1035
  };
1022
1036
  }
@@ -1181,14 +1195,14 @@ async function loadImage(options) {
1181
1195
  }
1182
1196
  function useImage(options, asyncStateOptions = {}) {
1183
1197
  const state = useAsyncState(
1184
- () => loadImage(shared.resolveUnref(options)),
1198
+ () => loadImage(shared.toValue(options)),
1185
1199
  void 0,
1186
1200
  __spreadValues$9({
1187
1201
  resetOnExecute: true
1188
1202
  }, asyncStateOptions)
1189
1203
  );
1190
1204
  vueDemi.watch(
1191
- () => shared.resolveUnref(options),
1205
+ () => shared.toValue(options),
1192
1206
  () => state.execute(asyncStateOptions.delay),
1193
1207
  { deep: true }
1194
1208
  );
@@ -1256,13 +1270,13 @@ function useScroll(element, options = {}) {
1256
1270
  });
1257
1271
  function scrollTo(_x, _y) {
1258
1272
  var _a, _b, _c;
1259
- const _element = shared.resolveUnref(element);
1273
+ const _element = shared.toValue(element);
1260
1274
  if (!_element)
1261
1275
  return;
1262
1276
  (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
1263
- top: (_a = shared.resolveUnref(_y)) != null ? _a : y.value,
1264
- left: (_b = shared.resolveUnref(_x)) != null ? _b : x.value,
1265
- behavior: shared.resolveUnref(behavior)
1277
+ top: (_a = shared.toValue(_y)) != null ? _a : y.value,
1278
+ left: (_b = shared.toValue(_x)) != null ? _b : x.value,
1279
+ behavior: shared.toValue(behavior)
1266
1280
  });
1267
1281
  }
1268
1282
  const isScrolling = vueDemi.ref(false);
@@ -1291,19 +1305,34 @@ function useScroll(element, options = {}) {
1291
1305
  const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);
1292
1306
  const onScrollHandler = (e) => {
1293
1307
  const eventTarget = e.target === document ? e.target.documentElement : e.target;
1308
+ const { display, flexDirection } = getComputedStyle(eventTarget);
1294
1309
  const scrollLeft = eventTarget.scrollLeft;
1295
1310
  directions.left = scrollLeft < internalX.value;
1296
- directions.right = scrollLeft > internalY.value;
1297
- arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
1298
- arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1311
+ directions.right = scrollLeft > internalX.value;
1312
+ const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
1313
+ const right = Math.abs(scrollLeft) + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1314
+ if (display === "flex" && flexDirection === "row-reverse") {
1315
+ arrivedState.left = right;
1316
+ arrivedState.right = left;
1317
+ } else {
1318
+ arrivedState.left = left;
1319
+ arrivedState.right = right;
1320
+ }
1299
1321
  internalX.value = scrollLeft;
1300
1322
  let scrollTop = eventTarget.scrollTop;
1301
1323
  if (e.target === document && !scrollTop)
1302
1324
  scrollTop = document.body.scrollTop;
1303
1325
  directions.top = scrollTop < internalY.value;
1304
1326
  directions.bottom = scrollTop > internalY.value;
1305
- arrivedState.top = scrollTop <= 0 + (offset.top || 0);
1306
- arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1327
+ const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
1328
+ const bottom = Math.abs(scrollTop) + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1329
+ if (display === "flex" && flexDirection === "column-reverse") {
1330
+ arrivedState.top = bottom;
1331
+ arrivedState.bottom = top;
1332
+ } else {
1333
+ arrivedState.top = top;
1334
+ arrivedState.bottom = bottom;
1335
+ }
1307
1336
  internalY.value = scrollTop;
1308
1337
  isScrolling.value = true;
1309
1338
  onScrollEndDebounced(e);
@@ -1365,7 +1394,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
1365
1394
  async (v) => {
1366
1395
  var _a2, _b2;
1367
1396
  if (v) {
1368
- const elem = shared.resolveUnref(element);
1397
+ const elem = shared.toValue(element);
1369
1398
  const previous = {
1370
1399
  height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,
1371
1400
  width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0
@@ -1507,7 +1536,7 @@ const UseObjectUrl = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1507
1536
  "object"
1508
1537
  ],
1509
1538
  setup(props, { slots }) {
1510
- const object = vueDemi.toRef(props, "object");
1539
+ const object = shared.toRef(props, "object");
1511
1540
  const url = core.useObjectUrl(object);
1512
1541
  return () => {
1513
1542
  if (slots.default && url.value)
@@ -1726,8 +1755,8 @@ function useCssVar(prop, target, options = {}) {
1726
1755
  });
1727
1756
  function updateCssVar() {
1728
1757
  var _a;
1729
- const key = shared.resolveUnref(prop);
1730
- const el = shared.resolveUnref(elRef);
1758
+ const key = shared.toValue(prop);
1759
+ const el = shared.toValue(elRef);
1731
1760
  if (el && window) {
1732
1761
  const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();
1733
1762
  variable.value = value || initialValue;
@@ -1740,7 +1769,7 @@ function useCssVar(prop, target, options = {}) {
1740
1769
  });
1741
1770
  }
1742
1771
  vueDemi.watch(
1743
- [elRef, () => shared.resolveUnref(prop)],
1772
+ [elRef, () => shared.toValue(prop)],
1744
1773
  updateCssVar,
1745
1774
  { immediate: true }
1746
1775
  );
@@ -1749,7 +1778,7 @@ function useCssVar(prop, target, options = {}) {
1749
1778
  (val) => {
1750
1779
  var _a;
1751
1780
  if ((_a = elRef.value) == null ? void 0 : _a.style)
1752
- elRef.value.style.setProperty(shared.resolveUnref(prop), val);
1781
+ elRef.value.style.setProperty(shared.toValue(prop), val);
1753
1782
  }
1754
1783
  );
1755
1784
  return variable;
@@ -1903,7 +1932,7 @@ function useScrollLock(element, initialState = false) {
1903
1932
  const isLocked = vueDemi.ref(initialState);
1904
1933
  let stopTouchMoveListener = null;
1905
1934
  let initialOverflow;
1906
- vueDemi.watch(shared.resolveRef(element), (el) => {
1935
+ vueDemi.watch(shared.toRef(element), (el) => {
1907
1936
  if (el) {
1908
1937
  const ele = el;
1909
1938
  initialOverflow = ele.style.overflow;
@@ -1914,7 +1943,7 @@ function useScrollLock(element, initialState = false) {
1914
1943
  immediate: true
1915
1944
  });
1916
1945
  const lock = () => {
1917
- const ele = shared.resolveUnref(element);
1946
+ const ele = shared.toValue(element);
1918
1947
  if (!ele || isLocked.value)
1919
1948
  return;
1920
1949
  if (shared.isIOS) {
@@ -1931,7 +1960,7 @@ function useScrollLock(element, initialState = false) {
1931
1960
  isLocked.value = true;
1932
1961
  };
1933
1962
  const unlock = () => {
1934
- const ele = shared.resolveUnref(element);
1963
+ const ele = shared.toValue(element);
1935
1964
  if (!ele || !isLocked.value)
1936
1965
  return;
1937
1966
  shared.isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as vue_demi from 'vue-demi';
2
2
  import { ComponentPublicInstance, ObjectDirective, Ref, UnwrapNestedRefs, ComputedRef, FunctionDirective } from 'vue-demi';
3
- import { MaybeRef, MaybeComputedRef, ConfigurableEventFilter, ConfigurableFlush } from '@vueuse/shared';
3
+ import { MaybeRef, MaybeRefOrGetter, ConfigurableEventFilter, ConfigurableFlush } from '@vueuse/shared';
4
4
  import { UseDarkOptions, UseDevicesListOptions, UseDraggableOptions, ElementSize as ElementSize$1, UseGeolocationOptions, UseIdleOptions, UseMouseOptions, MouseInElementOptions, MousePressedOptions, UseNowOptions, UsePointerOptions, UseTimeAgoOptions, UseTimestampOptions, UseVirtualListOptions, UseWindowSizeOptions } from '@vueuse/core';
5
5
 
6
6
  interface ConfigurableWindow {
@@ -18,7 +18,7 @@ interface RenderableComponent {
18
18
 
19
19
  type VueInstance = ComponentPublicInstance;
20
20
  type MaybeElementRef<T extends MaybeElement = MaybeElement> = MaybeRef<T>;
21
- type MaybeComputedElementRef<T extends MaybeElement = MaybeElement> = MaybeComputedRef<T>;
21
+ type MaybeComputedElementRef<T extends MaybeElement = MaybeElement> = MaybeRefOrGetter<T>;
22
22
  type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;
23
23
 
24
24
  interface OnClickOutsideOptions extends ConfigurableWindow {
@@ -53,14 +53,14 @@ declare const vOnClickOutside: ObjectDirective<HTMLElement, OnClickOutsideHandle
53
53
  type KeyStrokeEventName = 'keydown' | 'keypress' | 'keyup';
54
54
  interface OnKeyStrokeOptions {
55
55
  eventName?: KeyStrokeEventName;
56
- target?: MaybeComputedRef<EventTarget | null | undefined>;
56
+ target?: MaybeRefOrGetter<EventTarget | null | undefined>;
57
57
  passive?: boolean;
58
58
  /**
59
59
  * Set to `true` to ignore repeated events when the key is being held down.
60
60
  *
61
61
  * @default false
62
62
  */
63
- dedupe?: MaybeComputedRef<boolean>;
63
+ dedupe?: MaybeRefOrGetter<boolean>;
64
64
  }
65
65
 
66
66
  type BindingValueFunction$7 = (event: KeyboardEvent) => void;
@@ -171,7 +171,7 @@ interface UseColorModeOptions<T extends string = BasicColorSchema> extends UseSt
171
171
  *
172
172
  * @default 'html'
173
173
  */
174
- selector?: string;
174
+ selector?: string | MaybeRefOrGetter<HTMLElement | null | undefined>;
175
175
  /**
176
176
  * HTML attribute applying the target element
177
177
  *
@@ -228,7 +228,7 @@ interface UseColorModeOptions<T extends string = BasicColorSchema> extends UseSt
228
228
  * Disable transition on switch
229
229
  *
230
230
  * @see https://paco.me/writing/disable-theme-transitions
231
- * @default false
231
+ * @default true
232
232
  */
233
233
  disableTransition?: boolean;
234
234
  }
@@ -312,7 +312,7 @@ declare const vElementSize: ObjectDirective<HTMLElement, BindingValueFunction$4
312
312
  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>, {}>;
313
313
 
314
314
  interface UseElementVisibilityOptions extends ConfigurableWindow {
315
- scrollTarget?: MaybeComputedRef<HTMLElement | undefined | null>;
315
+ scrollTarget?: MaybeRefOrGetter<HTMLElement | undefined | null>;
316
316
  }
317
317
 
318
318
  type BindingValueFunction$3 = (state: boolean) => void;
@@ -394,7 +394,7 @@ interface UseScrollOptions {
394
394
  *
395
395
  * @default 'auto'
396
396
  */
397
- behavior?: MaybeComputedRef<ScrollBehavior>;
397
+ behavior?: MaybeRefOrGetter<ScrollBehavior>;
398
398
  }
399
399
  /**
400
400
  * Reactive scroll.
@@ -403,7 +403,7 @@ interface UseScrollOptions {
403
403
  * @param element
404
404
  * @param options
405
405
  */
406
- declare function useScroll(element: MaybeComputedRef<HTMLElement | SVGElement | Window | Document | null | undefined>, options?: UseScrollOptions): {
406
+ declare function useScroll(element: MaybeRefOrGetter<HTMLElement | SVGElement | Window | Document | null | undefined>, options?: UseScrollOptions): {
407
407
  x: vue_demi.WritableComputedRef<number>;
408
408
  y: vue_demi.WritableComputedRef<number>;
409
409
  isScrolling: vue_demi.Ref<boolean>;
@@ -447,13 +447,19 @@ interface UseInfiniteScrollOptions extends UseScrollOptions {
447
447
  *
448
448
  * @see https://vueuse.org/useInfiniteScroll
449
449
  */
450
- declare function useInfiniteScroll(element: MaybeComputedRef<HTMLElement | SVGElement | Window | Document | null | undefined>, onLoadMore: (state: UnwrapNestedRefs<ReturnType<typeof useScroll>>) => void | Promise<void>, options?: UseInfiniteScrollOptions): void;
450
+ declare function useInfiniteScroll(element: MaybeRefOrGetter<HTMLElement | SVGElement | Window | Document | null | undefined>, onLoadMore: (state: UnwrapNestedRefs<ReturnType<typeof useScroll>>) => void | Promise<void>, options?: UseInfiniteScrollOptions): void;
451
451
 
452
452
  type BindingValueFunction$2 = Parameters<typeof useInfiniteScroll>[1];
453
453
  type BindingValueArray$2 = [BindingValueFunction$2, UseInfiniteScrollOptions];
454
454
  declare const vInfiniteScroll: ObjectDirective<HTMLElement, BindingValueFunction$2 | BindingValueArray$2>;
455
455
 
456
456
  interface UseIntersectionObserverOptions extends ConfigurableWindow {
457
+ /**
458
+ * Start the IntersectionObserver immediately on creation
459
+ *
460
+ * @default true
461
+ */
462
+ immediate?: boolean;
457
463
  /**
458
464
  * The Element or Document whose bounds are used as the bounding box when testing for intersection.
459
465
  */
@@ -493,12 +499,12 @@ interface UseOffsetPaginationOptions {
493
499
  /**
494
500
  * Total number of items.
495
501
  */
496
- total?: MaybeRef<number>;
502
+ total?: MaybeRefOrGetter<number>;
497
503
  /**
498
504
  * The number of items to display per page.
499
505
  * @default 10
500
506
  */
501
- pageSize?: MaybeRef<number>;
507
+ pageSize?: MaybeRefOrGetter<number>;
502
508
  /**
503
509
  * The current page number.
504
510
  * @default 1
package/index.iife.js CHANGED
@@ -133,7 +133,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
133
133
 
134
134
  function unrefElement(elRef) {
135
135
  var _a;
136
- const plain = shared.resolveUnref(elRef);
136
+ const plain = shared.toValue(elRef);
137
137
  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
138
138
  }
139
139
 
@@ -166,7 +166,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
166
166
  return () => el.removeEventListener(event, listener, options2);
167
167
  };
168
168
  const stopWatch = vueDemi.watch(
169
- () => [unrefElement(target), shared.resolveUnref(options)],
169
+ () => [unrefElement(target), shared.toValue(options)],
170
170
  ([el, options2]) => {
171
171
  cleanup();
172
172
  if (!el)
@@ -290,7 +290,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
290
290
  } = options;
291
291
  const predicate = createKeyPredicate(key);
292
292
  const listener = (e) => {
293
- if (e.repeat && shared.resolveUnref(dedupe))
293
+ if (e.repeat && shared.toValue(dedupe))
294
294
  return;
295
295
  if (predicate(e))
296
296
  handler(e);
@@ -520,7 +520,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
520
520
  }
521
521
  if (!storage)
522
522
  return data;
523
- const rawInit = shared.resolveUnref(defaults);
523
+ const rawInit = shared.toValue(defaults);
524
524
  const type = guessSerializerType(rawInit);
525
525
  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
526
526
  const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(
@@ -639,7 +639,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
639
639
  if (!isSupported.value)
640
640
  return;
641
641
  cleanup();
642
- mediaQuery = window.matchMedia(shared.resolveRef(query).value);
642
+ mediaQuery = window.matchMedia(shared.toRef(query).value);
643
643
  matches.value = !!(mediaQuery == null ? void 0 : mediaQuery.matches);
644
644
  if (!mediaQuery)
645
645
  return;
@@ -684,8 +684,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
684
684
  listenToStorageChanges = true,
685
685
  storageRef,
686
686
  emitAuto,
687
- // TODO: switch to true in v10
688
- disableTransition = false
687
+ disableTransition = true
689
688
  } = options;
690
689
  const modes = __spreadValues$b({
691
690
  auto: "",
@@ -693,11 +692,11 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
693
692
  dark: "dark"
694
693
  }, options.modes || {});
695
694
  const preferredDark = usePreferredDark({ window });
696
- const preferredMode = vueDemi.computed(() => preferredDark.value ? "dark" : "light");
695
+ const system = vueDemi.computed(() => preferredDark.value ? "dark" : "light");
697
696
  const store = storageRef || (storageKey == null ? vueDemi.ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));
698
697
  const state = vueDemi.computed({
699
698
  get() {
700
- return store.value === "auto" && !emitAuto ? preferredMode.value : store.value;
699
+ return store.value === "auto" && !emitAuto ? system.value : store.value;
701
700
  },
702
701
  set(v) {
703
702
  store.value = v;
@@ -706,13 +705,12 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
706
705
  const updateHTMLAttrs = getSSRHandler(
707
706
  "updateHTMLAttrs",
708
707
  (selector2, attribute2, value) => {
709
- const el = window == null ? void 0 : window.document.querySelector(selector2);
708
+ const el = typeof selector2 === "string" ? window == null ? void 0 : window.document.querySelector(selector2) : shared.toValue(selector2);
710
709
  if (!el)
711
710
  return;
712
711
  let style;
713
712
  if (disableTransition) {
714
713
  style = window.document.createElement("style");
715
- style.type = "text/css";
716
714
  style.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"));
717
715
  window.document.head.appendChild(style);
718
716
  }
@@ -735,7 +733,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
735
733
  );
736
734
  function defaultOnChanged(mode) {
737
735
  var _a;
738
- const resolvedMode = mode === "auto" ? preferredMode.value : mode;
736
+ const resolvedMode = mode === "auto" ? system.value : mode;
739
737
  updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);
740
738
  }
741
739
  function onChanged(mode) {
@@ -746,9 +744,13 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
746
744
  }
747
745
  vueDemi.watch(state, onChanged, { flush: "post", immediate: true });
748
746
  if (emitAuto)
749
- vueDemi.watch(preferredMode, () => onChanged(state.value), { flush: "post" });
747
+ vueDemi.watch(system, () => onChanged(state.value), { flush: "post" });
750
748
  shared.tryOnMounted(() => onChanged(state.value));
751
- return state;
749
+ try {
750
+ return Object.assign(state, { store, system });
751
+ } catch (e) {
752
+ return state;
753
+ }
752
754
  }
753
755
 
754
756
  const UseColorMode = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
@@ -757,7 +759,9 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
757
759
  setup(props, { slots }) {
758
760
  const mode = useColorMode(props);
759
761
  const data = vueDemi.reactive({
760
- mode
762
+ mode,
763
+ system: mode.system,
764
+ store: mode.store
761
765
  });
762
766
  return () => {
763
767
  if (slots.default)
@@ -883,7 +887,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
883
887
  });
884
888
  const storageValue = props.storageKey && core.useStorage(
885
889
  props.storageKey,
886
- shared.resolveUnref(props.initialValue) || { x: 0, y: 0 },
890
+ shared.toValue(props.initialValue) || { x: 0, y: 0 },
887
891
  core.isClient ? props.storageType === "session" ? sessionStorage : localStorage : void 0
888
892
  );
889
893
  const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };
@@ -1092,23 +1096,24 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1092
1096
  root,
1093
1097
  rootMargin = "0px",
1094
1098
  threshold = 0.1,
1095
- window = defaultWindow
1099
+ window = defaultWindow,
1100
+ immediate = true
1096
1101
  } = options;
1097
1102
  const isSupported = useSupported(() => window && "IntersectionObserver" in window);
1098
1103
  let cleanup = shared.noop;
1104
+ const isActive = vueDemi.ref(immediate);
1099
1105
  const stopWatch = isSupported.value ? vueDemi.watch(
1100
- () => ({
1101
- el: unrefElement(target),
1102
- root: unrefElement(root)
1103
- }),
1104
- ({ el, root: root2 }) => {
1106
+ () => [unrefElement(target), unrefElement(root), isActive.value],
1107
+ ([el, root2]) => {
1105
1108
  cleanup();
1109
+ if (!isActive.value)
1110
+ return;
1106
1111
  if (!el)
1107
1112
  return;
1108
1113
  const observer = new IntersectionObserver(
1109
1114
  callback,
1110
1115
  {
1111
- root: root2,
1116
+ root: unrefElement(root2),
1112
1117
  rootMargin,
1113
1118
  threshold
1114
1119
  }
@@ -1119,15 +1124,24 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1119
1124
  cleanup = shared.noop;
1120
1125
  };
1121
1126
  },
1122
- { immediate: true, flush: "post" }
1127
+ { immediate, flush: "post" }
1123
1128
  ) : shared.noop;
1124
1129
  const stop = () => {
1125
1130
  cleanup();
1126
1131
  stopWatch();
1132
+ isActive.value = false;
1127
1133
  };
1128
1134
  shared.tryOnScopeDispose(stop);
1129
1135
  return {
1130
1136
  isSupported,
1137
+ isActive,
1138
+ pause() {
1139
+ cleanup();
1140
+ isActive.value = false;
1141
+ },
1142
+ resume() {
1143
+ isActive.value = true;
1144
+ },
1131
1145
  stop
1132
1146
  };
1133
1147
  }
@@ -1292,14 +1306,14 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1292
1306
  }
1293
1307
  function useImage(options, asyncStateOptions = {}) {
1294
1308
  const state = useAsyncState(
1295
- () => loadImage(shared.resolveUnref(options)),
1309
+ () => loadImage(shared.toValue(options)),
1296
1310
  void 0,
1297
1311
  __spreadValues$9({
1298
1312
  resetOnExecute: true
1299
1313
  }, asyncStateOptions)
1300
1314
  );
1301
1315
  vueDemi.watch(
1302
- () => shared.resolveUnref(options),
1316
+ () => shared.toValue(options),
1303
1317
  () => state.execute(asyncStateOptions.delay),
1304
1318
  { deep: true }
1305
1319
  );
@@ -1367,13 +1381,13 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1367
1381
  });
1368
1382
  function scrollTo(_x, _y) {
1369
1383
  var _a, _b, _c;
1370
- const _element = shared.resolveUnref(element);
1384
+ const _element = shared.toValue(element);
1371
1385
  if (!_element)
1372
1386
  return;
1373
1387
  (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
1374
- top: (_a = shared.resolveUnref(_y)) != null ? _a : y.value,
1375
- left: (_b = shared.resolveUnref(_x)) != null ? _b : x.value,
1376
- behavior: shared.resolveUnref(behavior)
1388
+ top: (_a = shared.toValue(_y)) != null ? _a : y.value,
1389
+ left: (_b = shared.toValue(_x)) != null ? _b : x.value,
1390
+ behavior: shared.toValue(behavior)
1377
1391
  });
1378
1392
  }
1379
1393
  const isScrolling = vueDemi.ref(false);
@@ -1402,19 +1416,34 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1402
1416
  const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);
1403
1417
  const onScrollHandler = (e) => {
1404
1418
  const eventTarget = e.target === document ? e.target.documentElement : e.target;
1419
+ const { display, flexDirection } = getComputedStyle(eventTarget);
1405
1420
  const scrollLeft = eventTarget.scrollLeft;
1406
1421
  directions.left = scrollLeft < internalX.value;
1407
- directions.right = scrollLeft > internalY.value;
1408
- arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
1409
- arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1422
+ directions.right = scrollLeft > internalX.value;
1423
+ const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
1424
+ const right = Math.abs(scrollLeft) + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1425
+ if (display === "flex" && flexDirection === "row-reverse") {
1426
+ arrivedState.left = right;
1427
+ arrivedState.right = left;
1428
+ } else {
1429
+ arrivedState.left = left;
1430
+ arrivedState.right = right;
1431
+ }
1410
1432
  internalX.value = scrollLeft;
1411
1433
  let scrollTop = eventTarget.scrollTop;
1412
1434
  if (e.target === document && !scrollTop)
1413
1435
  scrollTop = document.body.scrollTop;
1414
1436
  directions.top = scrollTop < internalY.value;
1415
1437
  directions.bottom = scrollTop > internalY.value;
1416
- arrivedState.top = scrollTop <= 0 + (offset.top || 0);
1417
- arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1438
+ const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
1439
+ const bottom = Math.abs(scrollTop) + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1440
+ if (display === "flex" && flexDirection === "column-reverse") {
1441
+ arrivedState.top = bottom;
1442
+ arrivedState.bottom = top;
1443
+ } else {
1444
+ arrivedState.top = top;
1445
+ arrivedState.bottom = bottom;
1446
+ }
1418
1447
  internalY.value = scrollTop;
1419
1448
  isScrolling.value = true;
1420
1449
  onScrollEndDebounced(e);
@@ -1476,7 +1505,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1476
1505
  async (v) => {
1477
1506
  var _a2, _b2;
1478
1507
  if (v) {
1479
- const elem = shared.resolveUnref(element);
1508
+ const elem = shared.toValue(element);
1480
1509
  const previous = {
1481
1510
  height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,
1482
1511
  width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0
@@ -1618,7 +1647,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1618
1647
  "object"
1619
1648
  ],
1620
1649
  setup(props, { slots }) {
1621
- const object = vueDemi.toRef(props, "object");
1650
+ const object = shared.toRef(props, "object");
1622
1651
  const url = core.useObjectUrl(object);
1623
1652
  return () => {
1624
1653
  if (slots.default && url.value)
@@ -1837,8 +1866,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1837
1866
  });
1838
1867
  function updateCssVar() {
1839
1868
  var _a;
1840
- const key = shared.resolveUnref(prop);
1841
- const el = shared.resolveUnref(elRef);
1869
+ const key = shared.toValue(prop);
1870
+ const el = shared.toValue(elRef);
1842
1871
  if (el && window) {
1843
1872
  const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();
1844
1873
  variable.value = value || initialValue;
@@ -1851,7 +1880,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1851
1880
  });
1852
1881
  }
1853
1882
  vueDemi.watch(
1854
- [elRef, () => shared.resolveUnref(prop)],
1883
+ [elRef, () => shared.toValue(prop)],
1855
1884
  updateCssVar,
1856
1885
  { immediate: true }
1857
1886
  );
@@ -1860,7 +1889,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1860
1889
  (val) => {
1861
1890
  var _a;
1862
1891
  if ((_a = elRef.value) == null ? void 0 : _a.style)
1863
- elRef.value.style.setProperty(shared.resolveUnref(prop), val);
1892
+ elRef.value.style.setProperty(shared.toValue(prop), val);
1864
1893
  }
1865
1894
  );
1866
1895
  return variable;
@@ -2014,7 +2043,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
2014
2043
  const isLocked = vueDemi.ref(initialState);
2015
2044
  let stopTouchMoveListener = null;
2016
2045
  let initialOverflow;
2017
- vueDemi.watch(shared.resolveRef(element), (el) => {
2046
+ vueDemi.watch(shared.toRef(element), (el) => {
2018
2047
  if (el) {
2019
2048
  const ele = el;
2020
2049
  initialOverflow = ele.style.overflow;
@@ -2025,7 +2054,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
2025
2054
  immediate: true
2026
2055
  });
2027
2056
  const lock = () => {
2028
- const ele = shared.resolveUnref(element);
2057
+ const ele = shared.toValue(element);
2029
2058
  if (!ele || isLocked.value)
2030
2059
  return;
2031
2060
  if (shared.isIOS) {
@@ -2042,7 +2071,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
2042
2071
  isLocked.value = true;
2043
2072
  };
2044
2073
  const unlock = () => {
2045
- const ele = shared.resolveUnref(element);
2074
+ const ele = shared.toValue(element);
2046
2075
  if (!ele || !isLocked.value)
2047
2076
  return;
2048
2077
  shared.isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
package/index.iife.min.js CHANGED
@@ -1 +1 @@
1
- var VueDemi=function(s,n,_){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 P=function(w,b){var M,R={},z={config:n.config,use:n.use.bind(n),mixin:n.mixin.bind(n),component:n.component.bind(n),provide:function(N,T){return R[N]=T,this},directive:function(N,T){return T?(n.directive(N,T),z):n.directive(N)},mount:function(N,T){return M||(M=new n(Object.assign({propsData:b},w,{provide:Object.assign(R,w.provide)})),M.$mount(N,T),M)},unmount:function(){M&&(M.$destroy(),M=void 0)}};return z};var Ve=P;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=P}else if(n.version.slice(0,2)==="2.")if(_){for(var c in _)s[c]=_[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(P,w,b){return Array.isArray(P)?(P.length=Math.max(P.length,w),P.splice(w,1,b),b):(P[w]=b,b)},s.del=function(P,w){if(Array.isArray(P)){P.splice(w,1);return}delete P[w]}}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,_,c){"use strict";const Ve=n.defineComponent({name:"OnClickOutside",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return _.onClickOutside(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function P(t){var e;const r=c.resolveUnref(t);return(e=r?.$el)!=null?e:r}const w=c.isClient?window:void 0;function b(...t){let e,r,o,a;if(c.isString(t[0])||Array.isArray(t[0])?([r,o,a]=t,e=w):[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,g,p,m)=>(d.addEventListener(g,p,m),()=>d.removeEventListener(g,p,m)),f=n.watch(()=>[P(e),c.resolveUnref(a)],([d,g])=>{i(),d&&l.push(...r.flatMap(p=>o.map(m=>u(d,p,m,g))))},{immediate:!0,flush:"post"}),v=()=>{f(),i()};return c.tryOnScopeDispose(v),v}let M=!1;function R(t,e,r={}){const{window:o=w,ignore:a=[],capture:l=!0,detectIframe:i=!1}=r;if(!o)return;c.isIOS&&!M&&(M=!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=P(m);return y&&(p.target===y||p.composedPath().includes(y))}}),d=[b(o,"click",p=>{const m=P(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}),b(o,"pointerdown",p=>{const m=P(t);m&&(u=!p.composedPath().includes(m)&&!f(p))},{passive:!0}),i&&b(o,"blur",p=>{var m;const y=P(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 z={[c.directiveHooks.mounted](t,e){const r=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=R(t,e.value,{capture:r});else{const[o,a]=e.value;t.__onClickOutside_stop=R(t,o,Object.assign({capture:r},a))}},[c.directiveHooks.unmounted](t){t.__onClickOutside_stop()}};function N(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function T(...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=w,eventName:l="keydown",passive:i=!1,dedupe:u=!1}=o,f=N(e);return b(a,l,d=>{d.repeat&&c.resolveUnref(u)||f(d)&&r(d)},i)}var Re=Object.defineProperty,Y=Object.getOwnPropertySymbols,ze=Object.prototype.hasOwnProperty,ke=Object.prototype.propertyIsEnumerable,X=(t,e,r)=>e in t?Re(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,He=(t,e)=>{for(var r in e||(e={}))ze.call(e,r)&&X(t,r,e[r]);if(Y)for(var r of Y(e))ke.call(e,r)&&X(t,r,e[r]);return t};const Be={[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")T(a,e.value,{target:t});else{const[l,i]=e.value;T(a,l,He({target:t},i))}}},We=500;function B(t,e,r){var o,a;const l=n.computed(()=>P(t));let i;function u(){i&&(clearTimeout(i),i=void 0)}function f(d){var g,p,m,y;(g=r?.modifiers)!=null&&g.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:We))}const v={capture:(o=r?.modifiers)==null?void 0:o.capture,once:(a=r?.modifiers)==null?void 0:a.once};b(l,"pointerdown",f,v),b(l,"pointerup",u,v),b(l,"pointerleave",u,v)}const Fe=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return B(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"?B(t,e.value,{modifiers:e.modifiers}):B(t,...e.value)}},Ke=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:_.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),Ge=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(_.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),Je=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(_.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),W=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},F="__vueuse_ssr_handlers__";W[F]=W[F]||{};const Ye=W[F];function Q(t,e){return Ye[t]||e}function Xe(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 qe=Object.defineProperty,Z=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,x=(t,e,r)=>e in t?qe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,D=(t,e)=>{for(var r in e||(e={}))Qe.call(e,r)&&x(t,r,e[r]);if(Z)for(var r of Z(e))Ze.call(e,r)&&x(t,r,e[r]);return t};const xe={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()}},ee="vueuse-storage";function De(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:g=w,eventFilter:p,onError:m=O=>{console.error(O)}}=o,y=(d?n.shallowRef:n.ref)(e);if(!r)try{r=Q("getDefaultStorage",()=>{var O;return(O=w)==null?void 0:O.localStorage})()}catch(O){m(O)}if(!r)return y;const S=c.resolveUnref(e),C=Xe(S),A=(a=o.serializer)!=null?a:xe[C],{pause:I,resume:j}=c.pausableWatch(y,()=>U(y.value),{flush:l,deep:i,eventFilter:p});return g&&u&&(b(g,"storage",$),b(g,ee,L)),$(),y;function U(O){try{if(O==null)r.removeItem(t);else{const h=A.write(O),V=r.getItem(t);V!==h&&(r.setItem(t,h),g&&g.dispatchEvent(new CustomEvent(ee,{detail:{key:t,oldValue:V,newValue:h,storageArea:r}})))}}catch(h){m(h)}}function E(O){const h=O?O.newValue:r.getItem(t);if(h==null)return f&&S!==null&&r.setItem(t,A.write(S)),S;if(!O&&v){const V=A.read(h);return c.isFunction(v)?v(V,S):C==="object"&&!Array.isArray(V)?D(D({},S),V):V}else return typeof h!="string"?h:A.read(h)}function L(O){$(O.detail)}function $(O){if(!(O&&O.storageArea!==r)){if(O&&O.key==null){y.value=S;return}if(!(O&&O.key!==t)){I();try{y.value=E(O)}catch(h){m(h)}finally{O?n.nextTick(j):j()}}}}}function et(){const t=n.ref(!1);return n.getCurrentInstance()&&n.onMounted(()=>{t.value=!0}),t}function K(t){const e=et();return n.computed(()=>(e.value,!!t()))}function tt(t,e={}){const{window:r=w}=e,o=K(()=>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.resolveRef(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 rt(t){return tt("(prefers-color-scheme: dark)",t)}var nt=Object.defineProperty,te=Object.getOwnPropertySymbols,ot=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,re=(t,e,r)=>e in t?nt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,st=(t,e)=>{for(var r in e||(e={}))ot.call(e,r)&&re(t,r,e[r]);if(te)for(var r of te(e))at.call(e,r)&&re(t,r,e[r]);return t};function lt(t={}){const{selector:e="html",attribute:r="class",initialValue:o="auto",window:a=w,storage:l,storageKey:i="vueuse-color-scheme",listenToStorageChanges:u=!0,storageRef:f,emitAuto:v,disableTransition:d=!1}=t,g=st({auto:"",light:"light",dark:"dark"},t.modes||{}),p=rt({window:a}),m=n.computed(()=>p.value?"dark":"light"),y=f||(i==null?n.ref(o):De(i,o,l,{window:a,listenToStorageChanges:u})),S=n.computed({get(){return y.value==="auto"&&!v?m.value:y.value},set(j){y.value=j}}),C=Q("updateHTMLAttrs",(j,U,E)=>{const L=a?.document.querySelector(j);if(!L)return;let $;if(d&&($=a.document.createElement("style"),$.type="text/css",$.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($)),U==="class"){const O=E.split(/\s/g);Object.values(g).flatMap(h=>(h||"").split(/\s/g)).filter(Boolean).forEach(h=>{O.includes(h)?L.classList.add(h):L.classList.remove(h)})}else L.setAttribute(U,E);d&&(a.getComputedStyle($).opacity,document.head.removeChild($))});function A(j){var U;const E=j==="auto"?m.value:j;C(e,r,(U=g[E])!=null?U:E)}function I(j){t.onChanged?t.onChanged(j,A):A(j)}return n.watch(S,I,{flush:"post",immediate:!0}),v&&n.watch(m,()=>I(S.value),{flush:"post"}),c.tryOnMounted(()=>I(S.value)),S}const it=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=lt(t),o=n.reactive({mode:r});return()=>{if(e.default)return e.default(o)}}}),ut=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=_.useDark(t),o=n.reactive({isDark:r,toggleDark:c.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),ct=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(_.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),ft=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(_.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),dt=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:_.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(_.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),vt=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:_.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var _t=Object.defineProperty,gt=Object.defineProperties,mt=Object.getOwnPropertyDescriptors,ne=Object.getOwnPropertySymbols,yt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable,oe=(t,e,r)=>e in t?_t(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Pt=(t,e)=>{for(var r in e||(e={}))yt.call(e,r)&&oe(t,r,e[r]);if(ne)for(var r of ne(e))Ot.call(e,r)&&oe(t,r,e[r]);return t},wt=(t,e)=>gt(t,mt(e));const ht=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&&_.useStorage(t.storageKey,c.resolveUnref(t.initialValue)||{x:0,y:0},_.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(_.useDraggable(r,wt(Pt({},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))}}}),bt=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(_.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function Ut(t,e={}){const{delayEnter:r=0,delayLeave:o=0,window:a=w}=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&&(b(t,"mouseenter",()=>u(!0),{passive:!0}),b(t,"mouseleave",()=>u(!1),{passive:!0})),l}const St={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=Ut(t);n.watch(r,o=>e.value(o))}}},$t=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(_.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 ae=Object.getOwnPropertySymbols,Ct=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable,jt=(t,e)=>{var r={};for(var o in t)Ct.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&ae)for(var o of ae(t))e.indexOf(o)<0&&Et.call(t,o)&&(r[o]=t[o]);return r};function Lt(t,e,r={}){const o=r,{window:a=w}=o,l=jt(o,["window"]);let i;const u=K(()=>a&&"ResizeObserver"in a),f=()=>{i&&(i.disconnect(),i=void 0)},v=n.computed(()=>Array.isArray(t)?t.map(p=>P(p)):[P(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}),g=()=>{f(),d()};return c.tryOnScopeDispose(g),{isSupported:u,stop:g}}function It(t,e={width:0,height:0},r={}){const{window:o=w,box:a="content-box"}=r,l=n.computed(()=>{var f,v;return(v=(f=P(t))==null?void 0:f.namespaceURI)==null?void 0:v.includes("svg")}),i=n.ref(e.width),u=n.ref(e.height);return Lt(t,([f])=>{const v=a==="border-box"?f.borderBoxSize:a==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(o&&l.value){const d=P(t);if(d){const g=o.getComputedStyle(d);i.value=parseFloat(g.width),u.value=parseFloat(g.height)}}else if(v){const d=Array.isArray(v)?v:[v];i.value=d.reduce((g,{inlineSize:p})=>g+p,0),u.value=d.reduce((g,{blockSize:p})=>g+p,0)}else i.value=f.contentRect.width,u.value=f.contentRect.height},r),n.watch(()=>P(t),f=>{i.value=f?e.width:0,u.value=f?e.height:0}),{width:i,height:u}}const At={[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}=It(t,...a);n.watch([l,i],([u,f])=>o({width:u,height:f}))}},Mt=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:_.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function G(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:l=.1,window:i=w}=r,u=K(()=>i&&"IntersectionObserver"in i);let f=c.noop;const v=u.value?n.watch(()=>({el:P(t),root:P(o)}),({el:g,root:p})=>{if(f(),!g)return;const m=new IntersectionObserver(e,{root:p,rootMargin:a,threshold:l});m.observe(g),f=()=>{m.disconnect(),f=c.noop}},{immediate:!0,flush:"post"}):c.noop,d=()=>{f(),v()};return c.tryOnScopeDispose(d),{isSupported:u,stop:d}}function se(t,{window:e=w,scrollTarget:r}={}){const o=n.ref(!1);return G(t,([{isIntersecting:a}])=>{o.value=a},{root:r,window:e}),o}const Tt={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=se(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=se(t,o);n.watch(a,l=>r(l),{immediate:!0})}}},Nt=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(_.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),Vt=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(_.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Rt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(_.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),zt=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(_.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});function kt(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),g=n.ref(!1),p=n.ref(!1),m=n.shallowRef(void 0);async function y(S=0,...C){u&&(d.value=e),m.value=void 0,g.value=!1,p.value=!0,S>0&&await c.promiseTimeout(S);const A=typeof t=="function"?t(...C):t;try{const I=await A;d.value=I,g.value=!0,i(I)}catch(I){if(m.value=I,l(I),v)throw I}finally{p.value=!1}return d.value}return o&&y(a),{state:d,isReady:g,isLoading:p,error:m,execute:y}}var Ht=Object.defineProperty,le=Object.getOwnPropertySymbols,Bt=Object.prototype.hasOwnProperty,Wt=Object.prototype.propertyIsEnumerable,ie=(t,e,r)=>e in t?Ht(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ft=(t,e)=>{for(var r in e||(e={}))Bt.call(e,r)&&ie(t,r,e[r]);if(le)for(var r of le(e))Wt.call(e,r)&&ie(t,r,e[r]);return t};async function Kt(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 Gt(t,e={}){const r=kt(()=>Kt(c.resolveUnref(t)),void 0,Ft({resetOnExecute:!0},e));return n.watch(()=>c.resolveUnref(t),()=>r.execute(e.delay),{deep:!0}),r}const Jt=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as"],setup(t,{slots:e}){const r=n.reactive(Gt(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)}}),ue=1;function J(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),g=n.computed({get(){return v.value},set(U){m(U,void 0)}}),p=n.computed({get(){return d.value},set(U){m(void 0,U)}});function m(U,E){var L,$,O;const h=c.resolveUnref(t);h&&((O=h instanceof Document?document.body:h)==null||O.scrollTo({top:(L=c.resolveUnref(E))!=null?L:p.value,left:($=c.resolveUnref(U))!=null?$:g.value,behavior:c.resolveUnref(f)}))}const y=n.ref(!1),S=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),C=n.reactive({left:!1,right:!1,top:!1,bottom:!1}),A=U=>{y.value&&(y.value=!1,C.left=!1,C.right=!1,C.top=!1,C.bottom=!1,a(U))},I=c.useDebounceFn(A,r+o),j=U=>{const E=U.target===document?U.target.documentElement:U.target,L=E.scrollLeft;C.left=L<v.value,C.right=L>d.value,S.left=L<=0+(i.left||0),S.right=L+E.clientWidth>=E.scrollWidth-(i.right||0)-ue,v.value=L;let $=E.scrollTop;U.target===document&&!$&&($=document.body.scrollTop),C.top=$<d.value,C.bottom=$>d.value,S.top=$<=0+(i.top||0),S.bottom=$+E.clientHeight>=E.scrollHeight-(i.bottom||0)-ue,d.value=$,y.value=!0,I(U),l(U)};return b(t,"scroll",r?c.useThrottleFn(j,r,!0,!1):j,u),b(t,"scrollend",A,u),{x:g,y:p,isScrolling:y,arrivedState:S,directions:C}}var Yt=Object.defineProperty,Xt=Object.defineProperties,qt=Object.getOwnPropertyDescriptors,ce=Object.getOwnPropertySymbols,Qt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,fe=(t,e,r)=>e in t?Yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,de=(t,e)=>{for(var r in e||(e={}))Qt.call(e,r)&&fe(t,r,e[r]);if(ce)for(var r of ce(e))Zt.call(e,r)&&fe(t,r,e[r]);return t},xt=(t,e)=>Xt(t,qt(e));function pe(t,e,r={}){var o,a;const l=(o=r.direction)!=null?o:"bottom",i=n.reactive(J(t,xt(de({},r),{offset:de({[l]:(a=r.distance)!=null?a:0},r.offset)})));n.watch(()=>i.arrivedState[l],async u=>{var f,v;if(u){const d=c.resolveUnref(t),g={height:(f=d?.scrollHeight)!=null?f:0,width:(v=d?.scrollWidth)!=null?v:0};await e(i),r.preserveScrollPosition&&d&&n.nextTick(()=>{d.scrollTo({top:d.scrollHeight-g.height,left:d.scrollWidth-g.width})})}})}const Dt={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?pe(t,e.value):pe(t,...e.value)}},er={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?G(t,e.value):G(t,...e.value)}},tr=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(_.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),rr=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(_.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var nr=Object.defineProperty,or=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,ve=Object.getOwnPropertySymbols,sr=Object.prototype.hasOwnProperty,lr=Object.prototype.propertyIsEnumerable,_e=(t,e,r)=>e in t?nr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ir=(t,e)=>{for(var r in e||(e={}))sr.call(e,r)&&_e(t,r,e[r]);if(ve)for(var r of ve(e))lr.call(e,r)&&_e(t,r,e[r]);return t},ur=(t,e)=>or(t,ar(e));const cr=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(_.useMousePressed(ur(ir({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),fr=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(_.useNetwork());return()=>{if(e.default)return e.default(r)}}});var dr=Object.defineProperty,pr=Object.defineProperties,vr=Object.getOwnPropertyDescriptors,ge=Object.getOwnPropertySymbols,_r=Object.prototype.hasOwnProperty,gr=Object.prototype.propertyIsEnumerable,me=(t,e,r)=>e in t?dr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,mr=(t,e)=>{for(var r in e||(e={}))_r.call(e,r)&&me(t,r,e[r]);if(ge)for(var r of ge(e))gr.call(e,r)&&me(t,r,e[r]);return t},yr=(t,e)=>pr(t,vr(e));const Or=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(_.useNow(yr(mr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),Pr=n.defineComponent({name:"UseObjectUrl",props:["object"],setup(t,{slots:e}){const r=n.toRef(t,"object"),o=_.useObjectUrl(r);return()=>{if(e.default&&o.value)return e.default(o)}}});var wr=Object.defineProperty,hr=Object.defineProperties,br=Object.getOwnPropertyDescriptors,ye=Object.getOwnPropertySymbols,Ur=Object.prototype.hasOwnProperty,Sr=Object.prototype.propertyIsEnumerable,Oe=(t,e,r)=>e in t?wr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,$r=(t,e)=>{for(var r in e||(e={}))Ur.call(e,r)&&Oe(t,r,e[r]);if(ye)for(var r of ye(e))Sr.call(e,r)&&Oe(t,r,e[r]);return t},Cr=(t,e)=>hr(t,br(e));const Er=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(_.useOffsetPagination(Cr($r({},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)}}}),jr=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:_.useOnline()});return()=>{if(e.default)return e.default(r)}}}),Lr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:_.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var Ir=Object.defineProperty,Ar=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Pe=Object.getOwnPropertySymbols,Tr=Object.prototype.hasOwnProperty,Nr=Object.prototype.propertyIsEnumerable,we=(t,e,r)=>e in t?Ir(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Vr=(t,e)=>{for(var r in e||(e={}))Tr.call(e,r)&&we(t,r,e[r]);if(Pe)for(var r of Pe(e))Nr.call(e,r)&&we(t,r,e[r]);return t},Rr=(t,e)=>Ar(t,Mr(e));const zr=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(_.usePointer(Rr(Vr({},t),{target:t.target==="self"?r:w})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),kr=n.defineComponent({name:"UsePointerLock",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(_.usePointerLock(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Hr=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:_.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),Br=n.defineComponent({name:"UsePreferredContrast",setup(t,{slots:e}){const r=n.reactive({contrast:_.usePreferredContrast()});return()=>{if(e.default)return e.default(r)}}}),Wr=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:_.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),Fr=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:_.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}}),Kr=n.defineComponent({name:"UsePreferredReducedMotion",setup(t,{slots:e}){const r=n.reactive({motion:_.usePreferredReducedMotion()});return()=>{if(e.default)return e.default(r)}}});function k(t,e,r={}){const{window:o=w,initialValue:a="",observe:l=!1}=r,i=n.ref(a),u=n.computed(()=>{var v;return P(e)||((v=o?.document)==null?void 0:v.documentElement)});function f(){var v;const d=c.resolveUnref(t),g=c.resolveUnref(u);if(g&&o){const p=(v=o.getComputedStyle(g).getPropertyValue(d))==null?void 0:v.trim();i.value=p||a}}return l&&_.useMutationObserver(u,f,{attributes:!0,window:o}),n.watch([u,()=>c.resolveUnref(t)],f,{immediate:!0}),n.watch(i,v=>{var d;(d=u.value)!=null&&d.style&&u.value.style.setProperty(c.resolveUnref(t),v)}),i}const he="--vueuse-safe-area-top",be="--vueuse-safe-area-right",Ue="--vueuse-safe-area-bottom",Se="--vueuse-safe-area-left";function Gr(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(c.isClient){const l=k(he),i=k(be),u=k(Ue),f=k(Se);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(),b("resize",c.useDebounceFn(a))}function a(){t.value=H(he),e.value=H(be),r.value=H(Ue),o.value=H(Se)}return{top:t,right:e,bottom:r,left:o,update:a}}function H(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const Jr=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}=Gr();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 Yr=Object.defineProperty,Xr=Object.defineProperties,qr=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,Qr=Object.prototype.hasOwnProperty,Zr=Object.prototype.propertyIsEnumerable,Ce=(t,e,r)=>e in t?Yr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,xr=(t,e)=>{for(var r in e||(e={}))Qr.call(e,r)&&Ce(t,r,e[r]);if($e)for(var r of $e(e))Zr.call(e,r)&&Ce(t,r,e[r]);return t},Dr=(t,e)=>Xr(t,qr(e));const en={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=J(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=J(t,Dr(xr({},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 Ee(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:Ee(r)}}function tn(t){const e=t||window.event,r=e.target;return Ee(r)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function rn(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(c.resolveRef(t),u=>{if(u){const f=u;a=f.style.overflow,r.value&&(f.style.overflow="hidden")}},{immediate:!0});const l=()=>{const u=c.resolveUnref(t);!u||r.value||(c.isIOS&&(o=b(u,"touchmove",f=>{tn(f)},{passive:!1})),u.style.overflow="hidden",r.value=!0)},i=()=>{const u=c.resolveUnref(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 nn(){let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=rn(r,o.value);n.watch(e,l=>a.value=l)}}const on=nn();var an=Object.defineProperty,sn=Object.defineProperties,ln=Object.getOwnPropertyDescriptors,je=Object.getOwnPropertySymbols,un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable,Le=(t,e,r)=>e in t?an(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,fn=(t,e)=>{for(var r in e||(e={}))un.call(e,r)&&Le(t,r,e[r]);if(je)for(var r of je(e))cn.call(e,r)&&Le(t,r,e[r]);return t},dn=(t,e)=>sn(t,ln(e));const pn=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages","showSecond"],setup(t,{slots:e}){const r=n.reactive(_.useTimeAgo(()=>t.time,dn(fn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var vn=Object.defineProperty,_n=Object.defineProperties,gn=Object.getOwnPropertyDescriptors,Ie=Object.getOwnPropertySymbols,mn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable,Ae=(t,e,r)=>e in t?vn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,On=(t,e)=>{for(var r in e||(e={}))mn.call(e,r)&&Ae(t,r,e[r]);if(Ie)for(var r of Ie(e))yn.call(e,r)&&Ae(t,r,e[r]);return t},Pn=(t,e)=>_n(t,gn(e));const wn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(_.useTimestamp(Pn(On({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var hn=Object.defineProperty,Me=Object.getOwnPropertySymbols,bn=Object.prototype.hasOwnProperty,Un=Object.prototype.propertyIsEnumerable,Te=(t,e,r)=>e in t?hn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ne=(t,e)=>{for(var r in e||(e={}))bn.call(e,r)&&Te(t,r,e[r]);if(Me)for(var r of Me(e))Un.call(e,r)&&Te(t,r,e[r]);return t};const Sn=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}=_.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",Ne({},l),[n.h("div",Ne({},i.value),a.value.map(f=>n.h("div",{style:{overFlow:"hidden",height:f.height}},e.default?e.default(f):"Please set content!")))])}}),$n=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:_.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),Cn=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(_.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});s.OnClickOutside=Ve,s.OnLongPress=Fe,s.UseActiveElement=Ke,s.UseBattery=Ge,s.UseBrowserLocation=Je,s.UseColorMode=it,s.UseDark=ut,s.UseDeviceMotion=ct,s.UseDeviceOrientation=ft,s.UseDevicePixelRatio=dt,s.UseDevicesList=pt,s.UseDocumentVisibility=vt,s.UseDraggable=ht,s.UseElementBounding=bt,s.UseElementSize=$t,s.UseElementVisibility=Mt,s.UseEyeDropper=Nt,s.UseFullscreen=Vt,s.UseGeolocation=Rt,s.UseIdle=zt,s.UseImage=Jt,s.UseMouse=tr,s.UseMouseInElement=rr,s.UseMousePressed=cr,s.UseNetwork=fr,s.UseNow=Or,s.UseObjectUrl=Pr,s.UseOffsetPagination=Er,s.UseOnline=jr,s.UsePageLeave=Lr,s.UsePointer=zr,s.UsePointerLock=kr,s.UsePreferredColorScheme=Hr,s.UsePreferredContrast=Br,s.UsePreferredDark=Wr,s.UsePreferredLanguages=Fr,s.UsePreferredReducedMotion=Kr,s.UseScreenSafeArea=Jr,s.UseTimeAgo=pn,s.UseTimestamp=wn,s.UseVirtualList=Sn,s.UseWindowFocus=$n,s.UseWindowSize=Cn,s.VOnClickOutside=z,s.VOnLongPress=q,s.vElementHover=St,s.vElementSize=At,s.vElementVisibility=Tt,s.vInfiniteScroll=Dt,s.vIntersectionObserver=er,s.vOnClickOutside=z,s.vOnKeyStroke=Be,s.vOnLongPress=q,s.vScroll=en,s.vScrollLock=on})(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 h=function(b,S){var V,z={},k={config:n.config,use:n.use.bind(n),mixin:n.mixin.bind(n),component:n.component.bind(n),provide:function(N,T){return z[N]=T,this},directive:function(N,T){return T?(n.directive(N,T),k):n.directive(N)},mount:function(N,T){return V||(V=new n(Object.assign({propsData:S},b,{provide:Object.assign(z,b.provide)})),V.$mount(N,T),V)},unmount:function(){V&&(V.$destroy(),V=void 0)}};return k};var ke=h;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=h}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(h,b,S){return Array.isArray(h)?(h.length=Math.max(h.length,b),h.splice(b,1,S),S):(h[b]=S,S)},s.del=function(h,b){if(Array.isArray(h)){h.splice(b,1);return}delete h[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 ke=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 h(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(c.isString(t[0])||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,m,v,_)=>(d.addEventListener(m,v,_),()=>d.removeEventListener(m,v,_)),f=n.watch(()=>[h(e),c.toValue(a)],([d,m])=>{i(),d&&l.push(...r.flatMap(v=>o.map(_=>u(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=b,ignore:a=[],capture:l=!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 u=!0;const f=v=>a.some(_=>{if(typeof _=="string")return Array.from(o.document.querySelectorAll(_)).some(O=>O===v.target||v.composedPath().includes(O));{const O=h(_);return O&&(v.target===O||v.composedPath().includes(O))}}),d=[S(o,"click",v=>{const _=h(t);if(!(!_||_===v.target||v.composedPath().includes(_))){if(v.detail===0&&(u=!f(v)),!u){u=!0;return}e(v)}},{passive:!0,capture:l}),S(o,"pointerdown",v=>{const _=h(t);_&&(u=!v.composedPath().includes(_)&&!f(v))},{passive:!0}),i&&S(o,"blur",v=>{var _;const O=h(t);((_=o.document.activeElement)==null?void 0:_.tagName)==="IFRAME"&&!O?.contains(o.document.activeElement)&&e(v)})].filter(Boolean);return()=>d.forEach(v=>v())}const k={[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 N(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function T(...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=N(e);return S(a,l,d=>{d.repeat&&c.toValue(u)||f(d)&&r(d)},i)}var He=Object.defineProperty,X=Object.getOwnPropertySymbols,Be=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable,q=(t,e,r)=>e in t?He(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Fe=(t,e)=>{for(var r in e||(e={}))Be.call(e,r)&&q(t,r,e[r]);if(X)for(var r of X(e))We.call(e,r)&&q(t,r,e[r]);return t};const Ke={[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")T(a,e.value,{target:t});else{const[l,i]=e.value;T(a,l,Fe({target:t},i))}}},Ge=500;function W(t,e,r){var o,a;const l=n.computed(()=>h(t));let i;function u(){i&&(clearTimeout(i),i=void 0)}function f(d){var m,v,_,O;(m=r?.modifiers)!=null&&m.self&&d.target!==l.value||(u(),(v=r?.modifiers)!=null&&v.prevent&&d.preventDefault(),(_=r?.modifiers)!=null&&_.stop&&d.stopPropagation(),i=setTimeout(()=>e(d),(O=r?.delay)!=null?O:Ge))}const p={capture:(o=r?.modifiers)==null?void 0:o.capture,once:(a=r?.modifiers)==null?void 0:a.once};S(l,"pointerdown",f,p),S(l,"pointerup",u,p),S(l,"pointerleave",u,p)}const Je=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return W(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"?W(t,e.value,{modifiers:e.modifiers}):W(t,...e.value)}},Ye=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)}}}),qe=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(g.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),F=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},K="__vueuse_ssr_handlers__";F[K]=F[K]||{};const Qe=F[K];function Z(t,e){return Qe[t]||e}function Ze(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 xe=Object.defineProperty,x=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable,D=(t,e,r)=>e in t?xe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ee=(t,e)=>{for(var r in e||(e={}))De.call(e,r)&&D(t,r,e[r]);if(x)for(var r of x(e))et.call(e,r)&&D(t,r,e[r]);return t};const tt={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 rt(t,e,r,o={}){var a;const{flush:l="pre",deep:i=!0,listenToStorageChanges:u=!0,writeDefaults:f=!0,mergeDefaults:p=!1,shallow:d,window:m=b,eventFilter:v,onError:_=y=>{console.error(y)}}=o,O=(d?n.shallowRef:n.ref)(e);if(!r)try{r=Z("getDefaultStorage",()=>{var y;return(y=b)==null?void 0:y.localStorage})()}catch(y){_(y)}if(!r)return O;const P=c.toValue(e),E=Ze(P),I=(a=o.serializer)!=null?a:tt[E],{pause:L,resume:C}=c.pausableWatch(O,()=>U(O.value),{flush:l,deep:i,eventFilter:v});return m&&u&&(S(m,"storage",j),S(m,te,A)),j(),O;function U(y){try{if(y==null)r.removeItem(t);else{const w=I.write(y),M=r.getItem(t);M!==w&&(r.setItem(t,w),m&&m.dispatchEvent(new CustomEvent(te,{detail:{key:t,oldValue:M,newValue:w,storageArea:r}})))}}catch(w){_(w)}}function $(y){const w=y?y.newValue:r.getItem(t);if(w==null)return f&&P!==null&&r.setItem(t,I.write(P)),P;if(!y&&p){const M=I.read(w);return c.isFunction(p)?p(M,P):E==="object"&&!Array.isArray(M)?ee(ee({},P),M):M}else return typeof w!="string"?w:I.read(w)}function A(y){j(y.detail)}function j(y){if(!(y&&y.storageArea!==r)){if(y&&y.key==null){O.value=P;return}if(!(y&&y.key!==t)){L();try{O.value=$(y)}catch(w){_(w)}finally{y?n.nextTick(C):C()}}}}}function nt(){const t=n.ref(!1);return n.getCurrentInstance()&&n.onMounted(()=>{t.value=!0}),t}function G(t){const e=nt();return n.computed(()=>(e.value,!!t()))}function ot(t,e={}){const{window:r=b}=e,o=G(()=>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 at(t){return ot("(prefers-color-scheme: dark)",t)}var st=Object.defineProperty,re=Object.getOwnPropertySymbols,lt=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable,ne=(t,e,r)=>e in t?st(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ut=(t,e)=>{for(var r in e||(e={}))lt.call(e,r)&&ne(t,r,e[r]);if(re)for(var r of re(e))it.call(e,r)&&ne(t,r,e[r]);return t};function ct(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:p,disableTransition:d=!0}=t,m=ut({auto:"",light:"light",dark:"dark"},t.modes||{}),v=at({window:a}),_=n.computed(()=>v.value?"dark":"light"),O=f||(i==null?n.ref(o):rt(i,o,l,{window:a,listenToStorageChanges:u})),P=n.computed({get(){return O.value==="auto"&&!p?_.value:O.value},set(C){O.value=C}}),E=Z("updateHTMLAttrs",(C,U,$)=>{const A=typeof C=="string"?a?.document.querySelector(C):c.toValue(C);if(!A)return;let j;if(d&&(j=a.document.createElement("style"),j.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(j)),U==="class"){const y=$.split(/\s/g);Object.values(m).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{y.includes(w)?A.classList.add(w):A.classList.remove(w)})}else A.setAttribute(U,$);d&&(a.getComputedStyle(j).opacity,document.head.removeChild(j))});function I(C){var U;const $=C==="auto"?_.value:C;E(e,r,(U=m[$])!=null?U:$)}function L(C){t.onChanged?t.onChanged(C,I):I(C)}n.watch(P,L,{flush:"post",immediate:!0}),p&&n.watch(_,()=>L(P.value),{flush:"post"}),c.tryOnMounted(()=>L(P.value));try{return Object.assign(P,{store:O,system:_})}catch{return P}}const ft=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=ct(t),o=n.reactive({mode:r,system:r.system,store:r.store});return()=>{if(e.default)return e.default(o)}}}),dt=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)}}}),pt=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(g.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),vt=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(g.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),gt=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:g.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),_t=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)}}}),mt=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:g.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var yt=Object.defineProperty,Ot=Object.defineProperties,Pt=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,ae=(t,e,r)=>e in t?yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,bt=(t,e)=>{for(var r in e||(e={}))ht.call(e,r)&&ae(t,r,e[r]);if(oe)for(var r of oe(e))wt.call(e,r)&&ae(t,r,e[r]);return t},St=(t,e)=>Ot(t,Pt(e));const Ut=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,St(bt({},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))}}}),Ct=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 $t(t,e={}){const{delayEnter:r=0,delayLeave:o=0,window:a=b}=e,l=n.ref(!1);let i;const u=f=>{const p=f?r:o;i&&(clearTimeout(i),i=void 0),p?i=setTimeout(()=>l.value=f,p):l.value=f};return a&&(S(t,"mouseenter",()=>u(!0),{passive:!0}),S(t,"mouseleave",()=>u(!1),{passive:!0})),l}const Et={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=$t(t);n.watch(r,o=>e.value(o))}}},jt=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,Lt=Object.prototype.hasOwnProperty,It=Object.prototype.propertyIsEnumerable,At=(t,e)=>{var r={};for(var o in t)Lt.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&&It.call(t,o)&&(r[o]=t[o]);return r};function Vt(t,e,r={}){const o=r,{window:a=b}=o,l=At(o,["window"]);let i;const u=G(()=>a&&"ResizeObserver"in a),f=()=>{i&&(i.disconnect(),i=void 0)},p=n.computed(()=>Array.isArray(t)?t.map(v=>h(v)):[h(t)]),d=n.watch(p,v=>{if(f(),u.value&&a){i=new ResizeObserver(e);for(const _ of v)_&&i.observe(_,l)}},{immediate:!0,flush:"post",deep:!0}),m=()=>{f(),d()};return c.tryOnScopeDispose(m),{isSupported:u,stop:m}}function Mt(t,e={width:0,height:0},r={}){const{window:o=b,box:a="content-box"}=r,l=n.computed(()=>{var f,p;return(p=(f=h(t))==null?void 0:f.namespaceURI)==null?void 0:p.includes("svg")}),i=n.ref(e.width),u=n.ref(e.height);return Vt(t,([f])=>{const p=a==="border-box"?f.borderBoxSize:a==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(o&&l.value){const d=h(t);if(d){const m=o.getComputedStyle(d);i.value=parseFloat(m.width),u.value=parseFloat(m.height)}}else if(p){const d=Array.isArray(p)?p:[p];i.value=d.reduce((m,{inlineSize:v})=>m+v,0),u.value=d.reduce((m,{blockSize:v})=>m+v,0)}else i.value=f.contentRect.width,u.value=f.contentRect.height},r),n.watch(()=>h(t),f=>{i.value=f?e.width:0,u.value=f?e.height:0}),{width:i,height:u}}const Tt={[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}=Mt(t,...a);n.watch([l,i],([u,f])=>o({width:u,height:f}))}},Nt=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=G(()=>i&&"IntersectionObserver"in i);let p=c.noop;const d=n.ref(u),m=f.value?n.watch(()=>[h(t),h(o),d.value],([_,O])=>{if(p(),!d.value||!_)return;const P=new IntersectionObserver(e,{root:h(O),rootMargin:a,threshold:l});P.observe(_),p=()=>{P.disconnect(),p=c.noop}},{immediate:u,flush:"post"}):c.noop,v=()=>{p(),m(),d.value=!1};return c.tryOnScopeDispose(v),{isSupported:f,isActive:d,pause(){p(),d.value=!1},resume(){d.value=!0},stop:v}}function le(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 Rt={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=le(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=le(t,o);n.watch(a,l=>r(l),{immediate:!0})}}},zt=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))}}}),Ht=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)}}}),Bt=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)}}});function Wt(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:p}=r??{},d=f?n.shallowRef(e):n.ref(e),m=n.ref(!1),v=n.ref(!1),_=n.shallowRef(void 0);async function O(P=0,...E){u&&(d.value=e),_.value=void 0,m.value=!1,v.value=!0,P>0&&await c.promiseTimeout(P);const I=typeof t=="function"?t(...E):t;try{const L=await I;d.value=L,m.value=!0,i(L)}catch(L){if(_.value=L,l(L),p)throw L}finally{v.value=!1}return d.value}return o&&O(a),{state:d,isReady:m,isLoading:v,error:_,execute:O}}var Ft=Object.defineProperty,ie=Object.getOwnPropertySymbols,Kt=Object.prototype.hasOwnProperty,Gt=Object.prototype.propertyIsEnumerable,ue=(t,e,r)=>e in t?Ft(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Jt=(t,e)=>{for(var r in e||(e={}))Kt.call(e,r)&&ue(t,r,e[r]);if(ie)for(var r of ie(e))Gt.call(e,r)&&ue(t,r,e[r]);return t};async function Yt(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 Xt(t,e={}){const r=Wt(()=>Yt(c.toValue(t)),void 0,Jt({resetOnExecute:!0},e));return n.watch(()=>c.toValue(t),()=>r.execute(e.delay),{deep:!0}),r}const qt=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as"],setup(t,{slots:e}){const r=n.reactive(Xt(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)}}),ce=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,p=n.ref(0),d=n.ref(0),m=n.computed({get(){return p.value},set(U){_(U,void 0)}}),v=n.computed({get(){return d.value},set(U){_(void 0,U)}});function _(U,$){var A,j,y;const w=c.toValue(t);w&&((y=w instanceof Document?document.body:w)==null||y.scrollTo({top:(A=c.toValue($))!=null?A:v.value,left:(j=c.toValue(U))!=null?j:m.value,behavior:c.toValue(f)}))}const O=n.ref(!1),P=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),E=n.reactive({left:!1,right:!1,top:!1,bottom:!1}),I=U=>{O.value&&(O.value=!1,E.left=!1,E.right=!1,E.top=!1,E.bottom=!1,a(U))},L=c.useDebounceFn(I,r+o),C=U=>{const $=U.target===document?U.target.documentElement:U.target,{display:A,flexDirection:j}=getComputedStyle($),y=$.scrollLeft;E.left=y<p.value,E.right=y>p.value;const w=Math.abs(y)<=0+(i.left||0),M=Math.abs(y)+$.clientWidth>=$.scrollWidth-(i.right||0)-ce;A==="flex"&&j==="row-reverse"?(P.left=M,P.right=w):(P.left=w,P.right=M),p.value=y;let R=$.scrollTop;U.target===document&&!R&&(R=document.body.scrollTop),E.top=R<d.value,E.bottom=R>d.value;const Re=Math.abs(R)<=0+(i.top||0),ze=Math.abs(R)+$.clientHeight>=$.scrollHeight-(i.bottom||0)-ce;A==="flex"&&j==="column-reverse"?(P.top=ze,P.bottom=Re):(P.top=Re,P.bottom=ze),d.value=R,O.value=!0,L(U),l(U)};return S(t,"scroll",r?c.useThrottleFn(C,r,!0,!1):C,u),S(t,"scrollend",I,u),{x:m,y:v,isScrolling:O,arrivedState:P,directions:E}}var Qt=Object.defineProperty,Zt=Object.defineProperties,xt=Object.getOwnPropertyDescriptors,fe=Object.getOwnPropertySymbols,Dt=Object.prototype.hasOwnProperty,er=Object.prototype.propertyIsEnumerable,de=(t,e,r)=>e in t?Qt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pe=(t,e)=>{for(var r in e||(e={}))Dt.call(e,r)&&de(t,r,e[r]);if(fe)for(var r of fe(e))er.call(e,r)&&de(t,r,e[r]);return t},tr=(t,e)=>Zt(t,xt(e));function ve(t,e,r={}){var o,a;const l=(o=r.direction)!=null?o:"bottom",i=n.reactive(Y(t,tr(pe({},r),{offset:pe({[l]:(a=r.distance)!=null?a:0},r.offset)})));n.watch(()=>i.arrivedState[l],async u=>{var f,p;if(u){const d=c.toValue(t),m={height:(f=d?.scrollHeight)!=null?f:0,width:(p=d?.scrollWidth)!=null?p:0};await e(i),r.preserveScrollPosition&&d&&n.nextTick(()=>{d.scrollTo({top:d.scrollHeight-m.height,left:d.scrollWidth-m.width})})}})}const rr={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?ve(t,e.value):ve(t,...e.value)}},nr={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?J(t,e.value):J(t,...e.value)}},or=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)}}}),ar=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 sr=Object.defineProperty,lr=Object.defineProperties,ir=Object.getOwnPropertyDescriptors,ge=Object.getOwnPropertySymbols,ur=Object.prototype.hasOwnProperty,cr=Object.prototype.propertyIsEnumerable,_e=(t,e,r)=>e in t?sr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,fr=(t,e)=>{for(var r in e||(e={}))ur.call(e,r)&&_e(t,r,e[r]);if(ge)for(var r of ge(e))cr.call(e,r)&&_e(t,r,e[r]);return t},dr=(t,e)=>lr(t,ir(e));const pr=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(g.useMousePressed(dr(fr({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),vr=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(g.useNetwork());return()=>{if(e.default)return e.default(r)}}});var gr=Object.defineProperty,_r=Object.defineProperties,mr=Object.getOwnPropertyDescriptors,me=Object.getOwnPropertySymbols,yr=Object.prototype.hasOwnProperty,Or=Object.prototype.propertyIsEnumerable,ye=(t,e,r)=>e in t?gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Pr=(t,e)=>{for(var r in e||(e={}))yr.call(e,r)&&ye(t,r,e[r]);if(me)for(var r of me(e))Or.call(e,r)&&ye(t,r,e[r]);return t},hr=(t,e)=>_r(t,mr(e));const wr=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(g.useNow(hr(Pr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),br=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 Sr=Object.defineProperty,Ur=Object.defineProperties,Cr=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,$r=Object.prototype.hasOwnProperty,Er=Object.prototype.propertyIsEnumerable,Pe=(t,e,r)=>e in t?Sr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,jr=(t,e)=>{for(var r in e||(e={}))$r.call(e,r)&&Pe(t,r,e[r]);if(Oe)for(var r of Oe(e))Er.call(e,r)&&Pe(t,r,e[r]);return t},Lr=(t,e)=>Ur(t,Cr(e));const Ir=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(Lr(jr({},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)}}}),Ar=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:g.useOnline()});return()=>{if(e.default)return e.default(r)}}}),Vr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:g.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var Mr=Object.defineProperty,Tr=Object.defineProperties,Nr=Object.getOwnPropertyDescriptors,he=Object.getOwnPropertySymbols,Rr=Object.prototype.hasOwnProperty,zr=Object.prototype.propertyIsEnumerable,we=(t,e,r)=>e in t?Mr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,kr=(t,e)=>{for(var r in e||(e={}))Rr.call(e,r)&&we(t,r,e[r]);if(he)for(var r of he(e))zr.call(e,r)&&we(t,r,e[r]);return t},Hr=(t,e)=>Tr(t,Nr(e));const Br=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(g.usePointer(Hr(kr({},t),{target:t.target==="self"?r:b})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),Wr=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))}}}),Fr=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:g.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),Kr=n.defineComponent({name:"UsePreferredContrast",setup(t,{slots:e}){const r=n.reactive({contrast:g.usePreferredContrast()});return()=>{if(e.default)return e.default(r)}}}),Gr=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:g.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),Jr=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:g.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}}),Yr=n.defineComponent({name:"UsePreferredReducedMotion",setup(t,{slots:e}){const r=n.reactive({motion:g.usePreferredReducedMotion()});return()=>{if(e.default)return e.default(r)}}});function H(t,e,r={}){const{window:o=b,initialValue:a="",observe:l=!1}=r,i=n.ref(a),u=n.computed(()=>{var p;return h(e)||((p=o?.document)==null?void 0:p.documentElement)});function f(){var p;const d=c.toValue(t),m=c.toValue(u);if(m&&o){const v=(p=o.getComputedStyle(m).getPropertyValue(d))==null?void 0:p.trim();i.value=v||a}}return l&&g.useMutationObserver(u,f,{attributes:!0,window:o}),n.watch([u,()=>c.toValue(t)],f,{immediate:!0}),n.watch(i,p=>{var d;(d=u.value)!=null&&d.style&&u.value.style.setProperty(c.toValue(t),p)}),i}const be="--vueuse-safe-area-top",Se="--vueuse-safe-area-right",Ue="--vueuse-safe-area-bottom",Ce="--vueuse-safe-area-left";function Xr(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(c.isClient){const l=H(be),i=H(Se),u=H(Ue),f=H(Ce);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=B(be),e.value=B(Se),r.value=B(Ue),o.value=B(Ce)}return{top:t,right:e,bottom:r,left:o,update:a}}function B(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const qr=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}=Xr();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 Qr=Object.defineProperty,Zr=Object.defineProperties,xr=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,Dr=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable,Ee=(t,e,r)=>e in t?Qr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,tn=(t,e)=>{for(var r in e||(e={}))Dr.call(e,r)&&Ee(t,r,e[r]);if($e)for(var r of $e(e))en.call(e,r)&&Ee(t,r,e[r]);return t},rn=(t,e)=>Zr(t,xr(e));const nn={[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,rn(tn({},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 je(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:je(r)}}function on(t){const e=t||window.event,r=e.target;return je(r)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function an(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=>{on(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 sn(){let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=an(r,o.value);n.watch(e,l=>a.value=l)}}const ln=sn();var un=Object.defineProperty,cn=Object.defineProperties,fn=Object.getOwnPropertyDescriptors,Le=Object.getOwnPropertySymbols,dn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable,Ie=(t,e,r)=>e in t?un(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,vn=(t,e)=>{for(var r in e||(e={}))dn.call(e,r)&&Ie(t,r,e[r]);if(Le)for(var r of Le(e))pn.call(e,r)&&Ie(t,r,e[r]);return t},gn=(t,e)=>cn(t,fn(e));const _n=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages","showSecond"],setup(t,{slots:e}){const r=n.reactive(g.useTimeAgo(()=>t.time,gn(vn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var mn=Object.defineProperty,yn=Object.defineProperties,On=Object.getOwnPropertyDescriptors,Ae=Object.getOwnPropertySymbols,Pn=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable,Ve=(t,e,r)=>e in t?mn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,wn=(t,e)=>{for(var r in e||(e={}))Pn.call(e,r)&&Ve(t,r,e[r]);if(Ae)for(var r of Ae(e))hn.call(e,r)&&Ve(t,r,e[r]);return t},bn=(t,e)=>yn(t,On(e));const Sn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(g.useTimestamp(bn(wn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var Un=Object.defineProperty,Me=Object.getOwnPropertySymbols,Cn=Object.prototype.hasOwnProperty,$n=Object.prototype.propertyIsEnumerable,Te=(t,e,r)=>e in t?Un(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ne=(t,e)=>{for(var r in e||(e={}))Cn.call(e,r)&&Te(t,r,e[r]);if(Me)for(var r of Me(e))$n.call(e,r)&&Te(t,r,e[r]);return t};const En=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",Ne({},l),[n.h("div",Ne({},i.value),a.value.map(f=>n.h("div",{style:{overFlow:"hidden",height:f.height}},e.default?e.default(f):"Please set content!")))])}}),jn=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:g.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),Ln=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=ke,s.OnLongPress=Je,s.UseActiveElement=Ye,s.UseBattery=Xe,s.UseBrowserLocation=qe,s.UseColorMode=ft,s.UseDark=dt,s.UseDeviceMotion=pt,s.UseDeviceOrientation=vt,s.UseDevicePixelRatio=gt,s.UseDevicesList=_t,s.UseDocumentVisibility=mt,s.UseDraggable=Ut,s.UseElementBounding=Ct,s.UseElementSize=jt,s.UseElementVisibility=Nt,s.UseEyeDropper=zt,s.UseFullscreen=kt,s.UseGeolocation=Ht,s.UseIdle=Bt,s.UseImage=qt,s.UseMouse=or,s.UseMouseInElement=ar,s.UseMousePressed=pr,s.UseNetwork=vr,s.UseNow=wr,s.UseObjectUrl=br,s.UseOffsetPagination=Ir,s.UseOnline=Ar,s.UsePageLeave=Vr,s.UsePointer=Br,s.UsePointerLock=Wr,s.UsePreferredColorScheme=Fr,s.UsePreferredContrast=Kr,s.UsePreferredDark=Gr,s.UsePreferredLanguages=Jr,s.UsePreferredReducedMotion=Yr,s.UseScreenSafeArea=qr,s.UseTimeAgo=_n,s.UseTimestamp=Sn,s.UseVirtualList=En,s.UseWindowFocus=jn,s.UseWindowSize=Ln,s.VOnClickOutside=k,s.VOnLongPress=Q,s.vElementHover=Et,s.vElementSize=Tt,s.vElementVisibility=Rt,s.vInfiniteScroll=rr,s.vIntersectionObserver=nr,s.vOnClickOutside=k,s.vOnKeyStroke=Ke,s.vOnLongPress=Q,s.vScroll=nn,s.vScrollLock=ln})(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
package/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { defineComponent, ref, h, watch, computed, reactive, shallowRef, nextTick, getCurrentInstance, onMounted, watchEffect, toRef, toRefs } from 'vue-demi';
1
+ import { defineComponent, ref, h, watch, computed, reactive, shallowRef, nextTick, getCurrentInstance, onMounted, watchEffect, toRefs } from 'vue-demi';
2
2
  import { onClickOutside as onClickOutside$1, useActiveElement, useBattery, useBrowserLocation, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useStorage as useStorage$1, isClient as isClient$1, useDraggable, useElementBounding, useElementSize as useElementSize$1, useElementVisibility as useElementVisibility$1, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark as usePreferredDark$1, usePreferredLanguages, usePreferredReducedMotion, useMutationObserver, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';
3
- import { resolveUnref, isClient, isString, noop, tryOnScopeDispose, isIOS, directiveHooks, pausableWatch, isFunction, resolveRef, tryOnMounted, useToggle, promiseTimeout, useDebounceFn, useThrottleFn } from '@vueuse/shared';
3
+ import { toValue, isClient, isString, noop, tryOnScopeDispose, isIOS, directiveHooks, pausableWatch, isFunction, toRef, tryOnMounted, useToggle, promiseTimeout, useDebounceFn, useThrottleFn } from '@vueuse/shared';
4
4
 
5
5
  const OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
6
6
  name: "OnClickOutside",
@@ -20,7 +20,7 @@ const OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
20
20
 
21
21
  function unrefElement(elRef) {
22
22
  var _a;
23
- const plain = resolveUnref(elRef);
23
+ const plain = toValue(elRef);
24
24
  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
25
25
  }
26
26
 
@@ -53,7 +53,7 @@ function useEventListener(...args) {
53
53
  return () => el.removeEventListener(event, listener, options2);
54
54
  };
55
55
  const stopWatch = watch(
56
- () => [unrefElement(target), resolveUnref(options)],
56
+ () => [unrefElement(target), toValue(options)],
57
57
  ([el, options2]) => {
58
58
  cleanup();
59
59
  if (!el)
@@ -177,7 +177,7 @@ function onKeyStroke(...args) {
177
177
  } = options;
178
178
  const predicate = createKeyPredicate(key);
179
179
  const listener = (e) => {
180
- if (e.repeat && resolveUnref(dedupe))
180
+ if (e.repeat && toValue(dedupe))
181
181
  return;
182
182
  if (predicate(e))
183
183
  handler(e);
@@ -407,7 +407,7 @@ function useStorage(key, defaults, storage, options = {}) {
407
407
  }
408
408
  if (!storage)
409
409
  return data;
410
- const rawInit = resolveUnref(defaults);
410
+ const rawInit = toValue(defaults);
411
411
  const type = guessSerializerType(rawInit);
412
412
  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
413
413
  const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(
@@ -526,7 +526,7 @@ function useMediaQuery(query, options = {}) {
526
526
  if (!isSupported.value)
527
527
  return;
528
528
  cleanup();
529
- mediaQuery = window.matchMedia(resolveRef(query).value);
529
+ mediaQuery = window.matchMedia(toRef(query).value);
530
530
  matches.value = !!(mediaQuery == null ? void 0 : mediaQuery.matches);
531
531
  if (!mediaQuery)
532
532
  return;
@@ -571,8 +571,7 @@ function useColorMode(options = {}) {
571
571
  listenToStorageChanges = true,
572
572
  storageRef,
573
573
  emitAuto,
574
- // TODO: switch to true in v10
575
- disableTransition = false
574
+ disableTransition = true
576
575
  } = options;
577
576
  const modes = __spreadValues$b({
578
577
  auto: "",
@@ -580,11 +579,11 @@ function useColorMode(options = {}) {
580
579
  dark: "dark"
581
580
  }, options.modes || {});
582
581
  const preferredDark = usePreferredDark({ window });
583
- const preferredMode = computed(() => preferredDark.value ? "dark" : "light");
582
+ const system = computed(() => preferredDark.value ? "dark" : "light");
584
583
  const store = storageRef || (storageKey == null ? ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));
585
584
  const state = computed({
586
585
  get() {
587
- return store.value === "auto" && !emitAuto ? preferredMode.value : store.value;
586
+ return store.value === "auto" && !emitAuto ? system.value : store.value;
588
587
  },
589
588
  set(v) {
590
589
  store.value = v;
@@ -593,13 +592,12 @@ function useColorMode(options = {}) {
593
592
  const updateHTMLAttrs = getSSRHandler(
594
593
  "updateHTMLAttrs",
595
594
  (selector2, attribute2, value) => {
596
- const el = window == null ? void 0 : window.document.querySelector(selector2);
595
+ const el = typeof selector2 === "string" ? window == null ? void 0 : window.document.querySelector(selector2) : toValue(selector2);
597
596
  if (!el)
598
597
  return;
599
598
  let style;
600
599
  if (disableTransition) {
601
600
  style = window.document.createElement("style");
602
- style.type = "text/css";
603
601
  style.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"));
604
602
  window.document.head.appendChild(style);
605
603
  }
@@ -622,7 +620,7 @@ function useColorMode(options = {}) {
622
620
  );
623
621
  function defaultOnChanged(mode) {
624
622
  var _a;
625
- const resolvedMode = mode === "auto" ? preferredMode.value : mode;
623
+ const resolvedMode = mode === "auto" ? system.value : mode;
626
624
  updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);
627
625
  }
628
626
  function onChanged(mode) {
@@ -633,9 +631,13 @@ function useColorMode(options = {}) {
633
631
  }
634
632
  watch(state, onChanged, { flush: "post", immediate: true });
635
633
  if (emitAuto)
636
- watch(preferredMode, () => onChanged(state.value), { flush: "post" });
634
+ watch(system, () => onChanged(state.value), { flush: "post" });
637
635
  tryOnMounted(() => onChanged(state.value));
638
- return state;
636
+ try {
637
+ return Object.assign(state, { store, system });
638
+ } catch (e) {
639
+ return state;
640
+ }
639
641
  }
640
642
 
641
643
  const UseColorMode = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
@@ -644,7 +646,9 @@ const UseColorMode = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
644
646
  setup(props, { slots }) {
645
647
  const mode = useColorMode(props);
646
648
  const data = reactive({
647
- mode
649
+ mode,
650
+ system: mode.system,
651
+ store: mode.store
648
652
  });
649
653
  return () => {
650
654
  if (slots.default)
@@ -770,7 +774,7 @@ const UseDraggable = /* @__PURE__ */ /* #__PURE__ */ defineComponent({
770
774
  });
771
775
  const storageValue = props.storageKey && useStorage$1(
772
776
  props.storageKey,
773
- resolveUnref(props.initialValue) || { x: 0, y: 0 },
777
+ toValue(props.initialValue) || { x: 0, y: 0 },
774
778
  isClient$1 ? props.storageType === "session" ? sessionStorage : localStorage : void 0
775
779
  );
776
780
  const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };
@@ -979,23 +983,24 @@ function useIntersectionObserver(target, callback, options = {}) {
979
983
  root,
980
984
  rootMargin = "0px",
981
985
  threshold = 0.1,
982
- window = defaultWindow
986
+ window = defaultWindow,
987
+ immediate = true
983
988
  } = options;
984
989
  const isSupported = useSupported(() => window && "IntersectionObserver" in window);
985
990
  let cleanup = noop;
991
+ const isActive = ref(immediate);
986
992
  const stopWatch = isSupported.value ? watch(
987
- () => ({
988
- el: unrefElement(target),
989
- root: unrefElement(root)
990
- }),
991
- ({ el, root: root2 }) => {
993
+ () => [unrefElement(target), unrefElement(root), isActive.value],
994
+ ([el, root2]) => {
992
995
  cleanup();
996
+ if (!isActive.value)
997
+ return;
993
998
  if (!el)
994
999
  return;
995
1000
  const observer = new IntersectionObserver(
996
1001
  callback,
997
1002
  {
998
- root: root2,
1003
+ root: unrefElement(root2),
999
1004
  rootMargin,
1000
1005
  threshold
1001
1006
  }
@@ -1006,15 +1011,24 @@ function useIntersectionObserver(target, callback, options = {}) {
1006
1011
  cleanup = noop;
1007
1012
  };
1008
1013
  },
1009
- { immediate: true, flush: "post" }
1014
+ { immediate, flush: "post" }
1010
1015
  ) : noop;
1011
1016
  const stop = () => {
1012
1017
  cleanup();
1013
1018
  stopWatch();
1019
+ isActive.value = false;
1014
1020
  };
1015
1021
  tryOnScopeDispose(stop);
1016
1022
  return {
1017
1023
  isSupported,
1024
+ isActive,
1025
+ pause() {
1026
+ cleanup();
1027
+ isActive.value = false;
1028
+ },
1029
+ resume() {
1030
+ isActive.value = true;
1031
+ },
1018
1032
  stop
1019
1033
  };
1020
1034
  }
@@ -1179,14 +1193,14 @@ async function loadImage(options) {
1179
1193
  }
1180
1194
  function useImage(options, asyncStateOptions = {}) {
1181
1195
  const state = useAsyncState(
1182
- () => loadImage(resolveUnref(options)),
1196
+ () => loadImage(toValue(options)),
1183
1197
  void 0,
1184
1198
  __spreadValues$9({
1185
1199
  resetOnExecute: true
1186
1200
  }, asyncStateOptions)
1187
1201
  );
1188
1202
  watch(
1189
- () => resolveUnref(options),
1203
+ () => toValue(options),
1190
1204
  () => state.execute(asyncStateOptions.delay),
1191
1205
  { deep: true }
1192
1206
  );
@@ -1254,13 +1268,13 @@ function useScroll(element, options = {}) {
1254
1268
  });
1255
1269
  function scrollTo(_x, _y) {
1256
1270
  var _a, _b, _c;
1257
- const _element = resolveUnref(element);
1271
+ const _element = toValue(element);
1258
1272
  if (!_element)
1259
1273
  return;
1260
1274
  (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
1261
- top: (_a = resolveUnref(_y)) != null ? _a : y.value,
1262
- left: (_b = resolveUnref(_x)) != null ? _b : x.value,
1263
- behavior: resolveUnref(behavior)
1275
+ top: (_a = toValue(_y)) != null ? _a : y.value,
1276
+ left: (_b = toValue(_x)) != null ? _b : x.value,
1277
+ behavior: toValue(behavior)
1264
1278
  });
1265
1279
  }
1266
1280
  const isScrolling = ref(false);
@@ -1289,19 +1303,34 @@ function useScroll(element, options = {}) {
1289
1303
  const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);
1290
1304
  const onScrollHandler = (e) => {
1291
1305
  const eventTarget = e.target === document ? e.target.documentElement : e.target;
1306
+ const { display, flexDirection } = getComputedStyle(eventTarget);
1292
1307
  const scrollLeft = eventTarget.scrollLeft;
1293
1308
  directions.left = scrollLeft < internalX.value;
1294
- directions.right = scrollLeft > internalY.value;
1295
- arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
1296
- arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1309
+ directions.right = scrollLeft > internalX.value;
1310
+ const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
1311
+ const right = Math.abs(scrollLeft) + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1312
+ if (display === "flex" && flexDirection === "row-reverse") {
1313
+ arrivedState.left = right;
1314
+ arrivedState.right = left;
1315
+ } else {
1316
+ arrivedState.left = left;
1317
+ arrivedState.right = right;
1318
+ }
1297
1319
  internalX.value = scrollLeft;
1298
1320
  let scrollTop = eventTarget.scrollTop;
1299
1321
  if (e.target === document && !scrollTop)
1300
1322
  scrollTop = document.body.scrollTop;
1301
1323
  directions.top = scrollTop < internalY.value;
1302
1324
  directions.bottom = scrollTop > internalY.value;
1303
- arrivedState.top = scrollTop <= 0 + (offset.top || 0);
1304
- arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1325
+ const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
1326
+ const bottom = Math.abs(scrollTop) + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1327
+ if (display === "flex" && flexDirection === "column-reverse") {
1328
+ arrivedState.top = bottom;
1329
+ arrivedState.bottom = top;
1330
+ } else {
1331
+ arrivedState.top = top;
1332
+ arrivedState.bottom = bottom;
1333
+ }
1305
1334
  internalY.value = scrollTop;
1306
1335
  isScrolling.value = true;
1307
1336
  onScrollEndDebounced(e);
@@ -1363,7 +1392,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
1363
1392
  async (v) => {
1364
1393
  var _a2, _b2;
1365
1394
  if (v) {
1366
- const elem = resolveUnref(element);
1395
+ const elem = toValue(element);
1367
1396
  const previous = {
1368
1397
  height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,
1369
1398
  width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0
@@ -1724,8 +1753,8 @@ function useCssVar(prop, target, options = {}) {
1724
1753
  });
1725
1754
  function updateCssVar() {
1726
1755
  var _a;
1727
- const key = resolveUnref(prop);
1728
- const el = resolveUnref(elRef);
1756
+ const key = toValue(prop);
1757
+ const el = toValue(elRef);
1729
1758
  if (el && window) {
1730
1759
  const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();
1731
1760
  variable.value = value || initialValue;
@@ -1738,7 +1767,7 @@ function useCssVar(prop, target, options = {}) {
1738
1767
  });
1739
1768
  }
1740
1769
  watch(
1741
- [elRef, () => resolveUnref(prop)],
1770
+ [elRef, () => toValue(prop)],
1742
1771
  updateCssVar,
1743
1772
  { immediate: true }
1744
1773
  );
@@ -1747,7 +1776,7 @@ function useCssVar(prop, target, options = {}) {
1747
1776
  (val) => {
1748
1777
  var _a;
1749
1778
  if ((_a = elRef.value) == null ? void 0 : _a.style)
1750
- elRef.value.style.setProperty(resolveUnref(prop), val);
1779
+ elRef.value.style.setProperty(toValue(prop), val);
1751
1780
  }
1752
1781
  );
1753
1782
  return variable;
@@ -1901,7 +1930,7 @@ function useScrollLock(element, initialState = false) {
1901
1930
  const isLocked = ref(initialState);
1902
1931
  let stopTouchMoveListener = null;
1903
1932
  let initialOverflow;
1904
- watch(resolveRef(element), (el) => {
1933
+ watch(toRef(element), (el) => {
1905
1934
  if (el) {
1906
1935
  const ele = el;
1907
1936
  initialOverflow = ele.style.overflow;
@@ -1912,7 +1941,7 @@ function useScrollLock(element, initialState = false) {
1912
1941
  immediate: true
1913
1942
  });
1914
1943
  const lock = () => {
1915
- const ele = resolveUnref(element);
1944
+ const ele = toValue(element);
1916
1945
  if (!ele || isLocked.value)
1917
1946
  return;
1918
1947
  if (isIOS) {
@@ -1929,7 +1958,7 @@ function useScrollLock(element, initialState = false) {
1929
1958
  isLocked.value = true;
1930
1959
  };
1931
1960
  const unlock = () => {
1932
- const ele = resolveUnref(element);
1961
+ const ele = toValue(element);
1933
1962
  if (!ele || !isLocked.value)
1934
1963
  return;
1935
1964
  isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vueuse/components",
3
- "version": "10.0.0-beta.3",
3
+ "version": "10.0.0-beta.4",
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.0.0-beta.3",
37
- "@vueuse/shared": "10.0.0-beta.3",
36
+ "@vueuse/core": "10.0.0-beta.4",
37
+ "@vueuse/shared": "10.0.0-beta.4",
38
38
  "vue-demi": "*"
39
39
  }
40
40
  }