@vueuse/components 9.12.0 → 9.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.iife.js CHANGED
@@ -115,7 +115,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
115
115
  ;(function (exports, vueDemi, core, shared) {
116
116
  'use strict';
117
117
 
118
- const OnClickOutside = /* @__PURE__ */ vueDemi.defineComponent({
118
+ const OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
119
119
  name: "OnClickOutside",
120
120
  props: ["as", "options"],
121
121
  emits: ["trigger"],
@@ -161,16 +161,16 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
161
161
  cleanups.forEach((fn) => fn());
162
162
  cleanups.length = 0;
163
163
  };
164
- const register = (el, event, listener) => {
165
- el.addEventListener(event, listener, options);
166
- return () => el.removeEventListener(event, listener, options);
164
+ const register = (el, event, listener, options2) => {
165
+ el.addEventListener(event, listener, options2);
166
+ return () => el.removeEventListener(event, listener, options2);
167
167
  };
168
- const stopWatch = vueDemi.watch(() => unrefElement(target), (el) => {
168
+ const stopWatch = vueDemi.watch(() => [unrefElement(target), shared.resolveUnref(options)], ([el, options2]) => {
169
169
  cleanup();
170
170
  if (!el)
171
171
  return;
172
172
  cleanups.push(...events.flatMap((event) => {
173
- return listeners.map((listener) => register(el, event, listener));
173
+ return listeners.map((listener) => register(el, event, listener, options2));
174
174
  }));
175
175
  }, { immediate: true, flush: "post" });
176
176
  const stop = () => {
@@ -181,12 +181,16 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
181
181
  return stop;
182
182
  }
183
183
 
184
+ let _iOSWorkaround = false;
184
185
  function onClickOutside(target, handler, options = {}) {
185
186
  const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;
186
187
  if (!window)
187
188
  return;
189
+ if (shared.isIOS && !_iOSWorkaround) {
190
+ _iOSWorkaround = true;
191
+ Array.from(window.document.body.children).forEach((el) => el.addEventListener("click", shared.noop));
192
+ }
188
193
  let shouldListen = true;
189
- let fallback;
190
194
  const shouldIgnore = (event) => {
191
195
  return ignore.some((target2) => {
192
196
  if (typeof target2 === "string") {
@@ -198,7 +202,6 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
198
202
  });
199
203
  };
200
204
  const listener = (event) => {
201
- window.clearTimeout(fallback);
202
205
  const el = unrefElement(target);
203
206
  if (!el || el === event.target || event.composedPath().includes(el))
204
207
  return;
@@ -217,13 +220,6 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
217
220
  if (el)
218
221
  shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);
219
222
  }, { passive: true }),
220
- useEventListener(window, "pointerup", (e) => {
221
- if (e.button === 0) {
222
- const path = e.composedPath();
223
- e.composedPath = () => path;
224
- fallback = window.setTimeout(() => listener(e), 50);
225
- }
226
- }, { passive: true }),
227
223
  detectIframe && useEventListener(window, "blur", (event) => {
228
224
  var _a;
229
225
  const el = unrefElement(target);
@@ -353,7 +349,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
353
349
  useEventListener(elementRef, "pointerleave", clear, listenerOptions);
354
350
  }
355
351
 
356
- const OnLongPress = /* @__PURE__ */ vueDemi.defineComponent({
352
+ const OnLongPress = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
357
353
  name: "OnLongPress",
358
354
  props: ["as", "options"],
359
355
  emits: ["trigger"],
@@ -378,7 +374,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
378
374
  }
379
375
  };
380
376
 
381
- const UseActiveElement = /* @__PURE__ */ vueDemi.defineComponent({
377
+ const UseActiveElement = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
382
378
  name: "UseActiveElement",
383
379
  setup(props, { slots }) {
384
380
  const data = vueDemi.reactive({
@@ -391,7 +387,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
391
387
  }
392
388
  });
393
389
 
394
- const UseBattery = /* @__PURE__ */ vueDemi.defineComponent({
390
+ const UseBattery = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
395
391
  name: "UseBattery",
396
392
  setup(props, { slots }) {
397
393
  const data = vueDemi.reactive(core.useBattery(props));
@@ -402,7 +398,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
402
398
  }
403
399
  });
404
400
 
405
- const UseBrowserLocation = /* @__PURE__ */ vueDemi.defineComponent({
401
+ const UseBrowserLocation = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
406
402
  name: "UseBrowserLocation",
407
403
  setup(props, { slots }) {
408
404
  const data = vueDemi.reactive(core.useBrowserLocation());
@@ -475,6 +471,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
475
471
  write: (v) => v.toISOString()
476
472
  }
477
473
  };
474
+ const customStorageEventName = "vueuse-storage";
478
475
  function useStorage(key, defaults, storage, options = {}) {
479
476
  var _a;
480
477
  const {
@@ -507,8 +504,10 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
507
504
  const type = guessSerializerType(rawInit);
508
505
  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
509
506
  const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });
510
- if (window && listenToStorageChanges)
507
+ if (window && listenToStorageChanges) {
511
508
  useEventListener(window, "storage", update);
509
+ useEventListener(window, customStorageEventName, updateFromCustomEvent);
510
+ }
512
511
  update();
513
512
  return data;
514
513
  function write(v) {
@@ -521,11 +520,13 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
521
520
  if (oldValue !== serialized) {
522
521
  storage.setItem(key, serialized);
523
522
  if (window) {
524
- window == null ? void 0 : window.dispatchEvent(new StorageEvent("storage", {
525
- key,
526
- oldValue,
527
- newValue: serialized,
528
- storageArea: storage
523
+ window.dispatchEvent(new CustomEvent(customStorageEventName, {
524
+ detail: {
525
+ key,
526
+ oldValue,
527
+ newValue: serialized,
528
+ storageArea: storage
529
+ }
529
530
  }));
530
531
  }
531
532
  }
@@ -553,6 +554,9 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
553
554
  return serializer.read(rawValue);
554
555
  }
555
556
  }
557
+ function updateFromCustomEvent(event) {
558
+ update(event.detail);
559
+ }
556
560
  function update(event) {
557
561
  if (event && event.storageArea !== storage)
558
562
  return;
@@ -695,7 +699,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
695
699
  return state;
696
700
  }
697
701
 
698
- const UseColorMode = /* @__PURE__ */ vueDemi.defineComponent({
702
+ const UseColorMode = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
699
703
  name: "UseColorMode",
700
704
  props: ["selector", "attribute", "modes", "onChanged", "storageKey", "storage", "emitAuto"],
701
705
  setup(props, { slots }) {
@@ -710,7 +714,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
710
714
  }
711
715
  });
712
716
 
713
- const UseDark = /* @__PURE__ */ vueDemi.defineComponent({
717
+ const UseDark = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
714
718
  name: "UseDark",
715
719
  props: ["selector", "attribute", "valueDark", "valueLight", "onChanged", "storageKey", "storage"],
716
720
  setup(props, { slots }) {
@@ -726,7 +730,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
726
730
  }
727
731
  });
728
732
 
729
- const UseDeviceMotion = /* @__PURE__ */ vueDemi.defineComponent({
733
+ const UseDeviceMotion = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
730
734
  name: "UseDeviceMotion",
731
735
  setup(props, { slots }) {
732
736
  const data = vueDemi.reactive(core.useDeviceMotion());
@@ -737,7 +741,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
737
741
  }
738
742
  });
739
743
 
740
- const UseDeviceOrientation = /* @__PURE__ */ vueDemi.defineComponent({
744
+ const UseDeviceOrientation = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
741
745
  name: "UseDeviceOrientation",
742
746
  setup(props, { slots }) {
743
747
  const data = vueDemi.reactive(core.useDeviceOrientation());
@@ -748,7 +752,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
748
752
  }
749
753
  });
750
754
 
751
- const UseDevicePixelRatio = /* @__PURE__ */ vueDemi.defineComponent({
755
+ const UseDevicePixelRatio = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
752
756
  name: "UseDevicePixelRatio",
753
757
  setup(props, { slots }) {
754
758
  const data = vueDemi.reactive({
@@ -761,7 +765,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
761
765
  }
762
766
  });
763
767
 
764
- const UseDevicesList = /* @__PURE__ */ vueDemi.defineComponent({
768
+ const UseDevicesList = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
765
769
  name: "UseDevicesList",
766
770
  props: ["onUpdated", "requestPermissions", "constraints"],
767
771
  setup(props, { slots }) {
@@ -773,7 +777,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
773
777
  }
774
778
  });
775
779
 
776
- const UseDocumentVisibility = /* @__PURE__ */ vueDemi.defineComponent({
780
+ const UseDocumentVisibility = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
777
781
  name: "UseDocumentVisibility",
778
782
  setup(props, { slots }) {
779
783
  const data = vueDemi.reactive({
@@ -805,7 +809,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
805
809
  return a;
806
810
  };
807
811
  var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
808
- const UseDraggable = /* @__PURE__ */ vueDemi.defineComponent({
812
+ const UseDraggable = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
809
813
  name: "UseDraggable",
810
814
  props: [
811
815
  "storageKey",
@@ -844,7 +848,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
844
848
  }
845
849
  });
846
850
 
847
- const UseElementBounding = /* @__PURE__ */ vueDemi.defineComponent({
851
+ const UseElementBounding = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
848
852
  name: "UseElementBounding",
849
853
  props: ["box", "as"],
850
854
  setup(props, { slots }) {
@@ -857,10 +861,26 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
857
861
  }
858
862
  });
859
863
 
860
- function useElementHover(el) {
864
+ function useElementHover(el, options = {}) {
865
+ const delayEnter = options ? options.delayEnter : 0;
866
+ const delayLeave = options ? options.delayLeave : 0;
861
867
  const isHovered = vueDemi.ref(false);
862
- useEventListener(el, "mouseenter", () => isHovered.value = true);
863
- useEventListener(el, "mouseleave", () => isHovered.value = false);
868
+ let timer;
869
+ const toggle = (entering) => {
870
+ const delay = entering ? delayEnter : delayLeave;
871
+ if (timer) {
872
+ clearTimeout(timer);
873
+ timer = void 0;
874
+ }
875
+ if (delay)
876
+ timer = setTimeout(() => isHovered.value = entering, delay);
877
+ else
878
+ isHovered.value = entering;
879
+ };
880
+ if (!window)
881
+ return isHovered;
882
+ useEventListener(el, "mouseenter", () => toggle(true), { passive: true });
883
+ useEventListener(el, "mouseleave", () => toggle(false), { passive: true });
864
884
  return isHovered;
865
885
  }
866
886
 
@@ -873,7 +893,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
873
893
  }
874
894
  };
875
895
 
876
- const UseElementSize = /* @__PURE__ */ vueDemi.defineComponent({
896
+ const UseElementSize = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
877
897
  name: "UseElementSize",
878
898
  props: ["width", "height", "box"],
879
899
  setup(props, { slots }) {
@@ -977,7 +997,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
977
997
  }
978
998
  };
979
999
 
980
- const UseElementVisibility = /* @__PURE__ */ vueDemi.defineComponent({
1000
+ const UseElementVisibility = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
981
1001
  name: "UseElementVisibility",
982
1002
  props: ["as"],
983
1003
  setup(props, { slots }) {
@@ -1030,7 +1050,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1030
1050
  }
1031
1051
  };
1032
1052
 
1033
- const UseEyeDropper = /* @__PURE__ */ vueDemi.defineComponent({
1053
+ const UseEyeDropper = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1034
1054
  name: "UseEyeDropper",
1035
1055
  props: {
1036
1056
  sRGBHex: String
@@ -1044,7 +1064,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1044
1064
  }
1045
1065
  });
1046
1066
 
1047
- const UseFullscreen = /* @__PURE__ */ vueDemi.defineComponent({
1067
+ const UseFullscreen = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1048
1068
  name: "UseFullscreen",
1049
1069
  props: ["as"],
1050
1070
  setup(props, { slots }) {
@@ -1057,7 +1077,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1057
1077
  }
1058
1078
  });
1059
1079
 
1060
- const UseGeolocation = /* @__PURE__ */ vueDemi.defineComponent({
1080
+ const UseGeolocation = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1061
1081
  name: "UseGeolocation",
1062
1082
  props: ["enableHighAccuracy", "maximumAge", "timeout", "navigator"],
1063
1083
  setup(props, { slots }) {
@@ -1069,7 +1089,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1069
1089
  }
1070
1090
  });
1071
1091
 
1072
- const UseIdle = /* @__PURE__ */ vueDemi.defineComponent({
1092
+ const UseIdle = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1073
1093
  name: "UseIdle",
1074
1094
  props: ["timeout", "events", "listenForVisibilityChange", "initialState"],
1075
1095
  setup(props, { slots }) {
@@ -1167,7 +1187,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1167
1187
  return state;
1168
1188
  };
1169
1189
 
1170
- const UseImage = /* @__PURE__ */ vueDemi.defineComponent({
1190
+ const UseImage = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1171
1191
  name: "UseImage",
1172
1192
  props: [
1173
1193
  "src",
@@ -1250,14 +1270,17 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1250
1270
  top: false,
1251
1271
  bottom: false
1252
1272
  });
1253
- const onScrollEnd = shared.useDebounceFn((e) => {
1273
+ const onScrollEnd = (e) => {
1274
+ if (!isScrolling.value)
1275
+ return;
1254
1276
  isScrolling.value = false;
1255
1277
  directions.left = false;
1256
1278
  directions.right = false;
1257
1279
  directions.top = false;
1258
1280
  directions.bottom = false;
1259
1281
  onStop(e);
1260
- }, throttle + idle);
1282
+ };
1283
+ const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);
1261
1284
  const onScrollHandler = (e) => {
1262
1285
  const eventTarget = e.target === document ? e.target.documentElement : e.target;
1263
1286
  const scrollLeft = eventTarget.scrollLeft;
@@ -1275,10 +1298,11 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1275
1298
  arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1276
1299
  internalY.value = scrollTop;
1277
1300
  isScrolling.value = true;
1278
- onScrollEnd(e);
1301
+ onScrollEndDebounced(e);
1279
1302
  onScroll(e);
1280
1303
  };
1281
1304
  useEventListener(element, "scroll", throttle ? shared.useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);
1305
+ useEventListener(element, "scrollend", onScrollEnd, eventListenerOptions);
1282
1306
  return {
1283
1307
  x,
1284
1308
  y,
@@ -1392,7 +1416,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1392
1416
  }
1393
1417
  };
1394
1418
 
1395
- const UseMouse = /* @__PURE__ */ vueDemi.defineComponent({
1419
+ const UseMouse = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1396
1420
  name: "UseMouse",
1397
1421
  props: ["touch", "resetOnTouchEnds", "initialValue"],
1398
1422
  setup(props, { slots }) {
@@ -1404,7 +1428,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1404
1428
  }
1405
1429
  });
1406
1430
 
1407
- const UseMouseInElement = /* @__PURE__ */ vueDemi.defineComponent({
1431
+ const UseMouseInElement = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1408
1432
  name: "UseMouseElement",
1409
1433
  props: ["handleOutside", "as"],
1410
1434
  setup(props, { slots }) {
@@ -1436,7 +1460,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1436
1460
  return a;
1437
1461
  };
1438
1462
  var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
1439
- const UseMousePressed = /* @__PURE__ */ vueDemi.defineComponent({
1463
+ const UseMousePressed = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1440
1464
  name: "UseMousePressed",
1441
1465
  props: ["touch", "initialValue", "as"],
1442
1466
  setup(props, { slots }) {
@@ -1449,7 +1473,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1449
1473
  }
1450
1474
  });
1451
1475
 
1452
- const UseNetwork = /* @__PURE__ */ vueDemi.defineComponent({
1476
+ const UseNetwork = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1453
1477
  name: "UseNetwork",
1454
1478
  setup(props, { slots }) {
1455
1479
  const data = vueDemi.reactive(core.useNetwork());
@@ -1479,7 +1503,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1479
1503
  return a;
1480
1504
  };
1481
1505
  var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
1482
- const UseNow = /* @__PURE__ */ vueDemi.defineComponent({
1506
+ const UseNow = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1483
1507
  name: "UseNow",
1484
1508
  props: ["interval"],
1485
1509
  setup(props, { slots }) {
@@ -1491,7 +1515,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1491
1515
  }
1492
1516
  });
1493
1517
 
1494
- const UseObjectUrl = /* @__PURE__ */ vueDemi.defineComponent({
1518
+ const UseObjectUrl = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1495
1519
  name: "UseObjectUrl",
1496
1520
  props: [
1497
1521
  "object"
@@ -1525,7 +1549,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1525
1549
  return a;
1526
1550
  };
1527
1551
  var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
1528
- const UseOffsetPagination = /* @__PURE__ */ vueDemi.defineComponent({
1552
+ const UseOffsetPagination = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1529
1553
  name: "UseOffsetPagination",
1530
1554
  props: [
1531
1555
  "total",
@@ -1565,7 +1589,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1565
1589
  }
1566
1590
  });
1567
1591
 
1568
- const UseOnline = /* @__PURE__ */ vueDemi.defineComponent({
1592
+ const UseOnline = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1569
1593
  name: "UseOnline",
1570
1594
  setup(props, { slots }) {
1571
1595
  const data = vueDemi.reactive({
@@ -1578,7 +1602,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1578
1602
  }
1579
1603
  });
1580
1604
 
1581
- const UsePageLeave = /* @__PURE__ */ vueDemi.defineComponent({
1605
+ const UsePageLeave = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1582
1606
  name: "UsePageLeave",
1583
1607
  setup(props, { slots }) {
1584
1608
  const data = vueDemi.reactive({
@@ -1610,7 +1634,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1610
1634
  return a;
1611
1635
  };
1612
1636
  var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
1613
- const UsePointer = /* @__PURE__ */ vueDemi.defineComponent({
1637
+ const UsePointer = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1614
1638
  name: "UsePointer",
1615
1639
  props: [
1616
1640
  "pointerTypes",
@@ -1629,7 +1653,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1629
1653
  }
1630
1654
  });
1631
1655
 
1632
- const UsePointerLock = vueDemi.defineComponent({
1656
+ const UsePointerLock = /* #__PURE__ */ vueDemi.defineComponent({
1633
1657
  name: "UsePointerLock",
1634
1658
  props: ["as"],
1635
1659
  setup(props, { slots }) {
@@ -1642,7 +1666,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1642
1666
  }
1643
1667
  });
1644
1668
 
1645
- const UsePreferredColorScheme = /* @__PURE__ */ vueDemi.defineComponent({
1669
+ const UsePreferredColorScheme = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1646
1670
  name: "UsePreferredColorScheme",
1647
1671
  setup(props, { slots }) {
1648
1672
  const data = vueDemi.reactive({
@@ -1655,7 +1679,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1655
1679
  }
1656
1680
  });
1657
1681
 
1658
- const UsePreferredContrast = /* @__PURE__ */ vueDemi.defineComponent({
1682
+ const UsePreferredContrast = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1659
1683
  name: "UsePreferredContrast",
1660
1684
  setup(props, { slots }) {
1661
1685
  const data = vueDemi.reactive({
@@ -1668,7 +1692,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1668
1692
  }
1669
1693
  });
1670
1694
 
1671
- const UsePreferredDark = /* @__PURE__ */ vueDemi.defineComponent({
1695
+ const UsePreferredDark = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1672
1696
  name: "UsePreferredDark",
1673
1697
  setup(props, { slots }) {
1674
1698
  const data = vueDemi.reactive({
@@ -1681,7 +1705,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1681
1705
  }
1682
1706
  });
1683
1707
 
1684
- const UsePreferredLanguages = /* @__PURE__ */ vueDemi.defineComponent({
1708
+ const UsePreferredLanguages = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1685
1709
  name: "UsePreferredLanguages",
1686
1710
  setup(props, { slots }) {
1687
1711
  const data = vueDemi.reactive({
@@ -1694,7 +1718,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1694
1718
  }
1695
1719
  });
1696
1720
 
1697
- const UsePreferredReducedMotion = /* @__PURE__ */ vueDemi.defineComponent({
1721
+ const UsePreferredReducedMotion = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1698
1722
  name: "UsePreferredReducedMotion",
1699
1723
  setup(props, { slots }) {
1700
1724
  const data = vueDemi.reactive({
@@ -1767,7 +1791,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1767
1791
  return getComputedStyle(document.documentElement).getPropertyValue(position);
1768
1792
  }
1769
1793
 
1770
- const UseScreenSafeArea = /* @__PURE__ */ vueDemi.defineComponent({
1794
+ const UseScreenSafeArea = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1771
1795
  name: "UseScreenSafeArea",
1772
1796
  props: {
1773
1797
  top: Boolean,
@@ -1852,7 +1876,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1852
1876
 
1853
1877
  function checkOverflowScroll(ele) {
1854
1878
  const style = window.getComputedStyle(ele);
1855
- if (style.overflowX === "scroll" || style.overflowY === "scroll") {
1879
+ if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientHeight < ele.scrollHeight || style.overflowY === "auto" && ele.clientWidth < ele.scrollWidth) {
1856
1880
  return true;
1857
1881
  } else {
1858
1882
  const parent = ele.parentNode;
@@ -1953,7 +1977,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1953
1977
  return a;
1954
1978
  };
1955
1979
  var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
1956
- const UseTimeAgo = /* @__PURE__ */ vueDemi.defineComponent({
1980
+ const UseTimeAgo = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1957
1981
  name: "UseTimeAgo",
1958
1982
  props: ["time", "updateInterval", "max", "fullDateFormatter", "messages", "showSecond"],
1959
1983
  setup(props, { slots }) {
@@ -1984,7 +2008,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1984
2008
  return a;
1985
2009
  };
1986
2010
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1987
- const UseTimestamp = /* @__PURE__ */ vueDemi.defineComponent({
2011
+ const UseTimestamp = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
1988
2012
  name: "UseTimestamp",
1989
2013
  props: ["immediate", "interval", "offset"],
1990
2014
  setup(props, { slots }) {
@@ -2012,7 +2036,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
2012
2036
  }
2013
2037
  return a;
2014
2038
  };
2015
- const UseVirtualList = /* @__PURE__ */ vueDemi.defineComponent({
2039
+ const UseVirtualList = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
2016
2040
  name: "UseVirtualList",
2017
2041
  props: [
2018
2042
  "list",
@@ -2030,7 +2054,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
2030
2054
  }
2031
2055
  });
2032
2056
 
2033
- const UseWindowFocus = /* @__PURE__ */ vueDemi.defineComponent({
2057
+ const UseWindowFocus = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
2034
2058
  name: "UseWindowFocus",
2035
2059
  setup(props, { slots }) {
2036
2060
  const data = vueDemi.reactive({
@@ -2043,7 +2067,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
2043
2067
  }
2044
2068
  });
2045
2069
 
2046
- const UseWindowSize = /* @__PURE__ */ vueDemi.defineComponent({
2070
+ const UseWindowSize = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({
2047
2071
  name: "UseWindowSize",
2048
2072
  props: ["initialWidth", "initialHeight"],
2049
2073
  setup(props, { slots }) {