@tidbcloud/uikit 2.1.5 → 2.1.7

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/_virtual/customParseFormat.cjs +4 -0
  3. package/dist/_virtual/customParseFormat.mjs +4 -0
  4. package/dist/_virtual/duration.cjs +4 -0
  5. package/dist/_virtual/duration.mjs +4 -0
  6. package/dist/_virtual/minMax.cjs +4 -0
  7. package/dist/_virtual/minMax.mjs +4 -0
  8. package/dist/biz/CodeBlock/index.cjs +1 -1
  9. package/dist/biz/CodeBlock/index.mjs +1 -1
  10. package/dist/biz/DateTimePicker/TimeScollerPicker.cjs +6 -8
  11. package/dist/biz/DateTimePicker/TimeScollerPicker.mjs +1 -3
  12. package/dist/biz/DateTimePicker/index.cjs +14 -13
  13. package/dist/biz/DateTimePicker/index.mjs +6 -5
  14. package/dist/biz/Form/CopyText.cjs +1 -1
  15. package/dist/biz/Form/CopyText.mjs +1 -1
  16. package/dist/biz/TimeRangePicker/AbsoluteTimeRangePicker.cjs +7 -9
  17. package/dist/biz/TimeRangePicker/AbsoluteTimeRangePicker.mjs +1 -3
  18. package/dist/biz/TimeRangePicker/helpers.cjs +3 -5
  19. package/dist/biz/TimeRangePicker/helpers.mjs +1 -3
  20. package/dist/hooks/index.cjs +2 -2
  21. package/dist/hooks/index.d.cts +2 -1
  22. package/dist/hooks/index.d.mts +2 -1
  23. package/dist/hooks/index.mjs +1 -1
  24. package/dist/hooks/use-clipboard/use-clipboard.cjs +16 -0
  25. package/dist/hooks/use-clipboard/use-clipboard.d.cts +8 -0
  26. package/dist/hooks/use-clipboard/use-clipboard.d.mts +8 -0
  27. package/dist/hooks/use-clipboard/use-clipboard.mjs +16 -0
  28. package/dist/hooks/use-clipboard/use-fallback-clipboard.cjs +44 -0
  29. package/dist/hooks/use-clipboard/use-fallback-clipboard.d.cts +8 -0
  30. package/dist/hooks/use-clipboard/use-fallback-clipboard.d.mts +8 -0
  31. package/dist/hooks/use-clipboard/use-fallback-clipboard.mjs +44 -0
  32. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/customParseFormat.cjs +129 -0
  33. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/customParseFormat.mjs +129 -0
  34. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/duration.cjs +136 -0
  35. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/duration.mjs +136 -0
  36. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/minMax.cjs +32 -0
  37. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/minMax.mjs +32 -0
  38. package/dist/primitive/CopyButton/CopyButton.cjs +15 -0
  39. package/dist/primitive/CopyButton/CopyButton.d.cts +2 -0
  40. package/dist/primitive/CopyButton/CopyButton.d.mts +2 -0
  41. package/dist/primitive/CopyButton/CopyButton.mjs +15 -0
  42. package/dist/primitive/index.cjs +2 -2
  43. package/dist/primitive/index.d.cts +2 -1
  44. package/dist/primitive/index.d.mts +2 -1
  45. package/dist/primitive/index.mjs +1 -1
  46. package/dist/utils/dayjs.cjs +15 -0
  47. package/dist/utils/dayjs.d.cts +2 -2
  48. package/dist/utils/dayjs.d.mts +2 -2
  49. package/dist/utils/dayjs.mjs +15 -0
  50. package/dist/utils/index.cjs +2 -2
  51. package/dist/utils/index.d.cts +1 -1
  52. package/dist/utils/index.d.mts +1 -1
  53. package/dist/utils/index.mjs +2 -2
  54. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @tidbcloud/uikit
2
2
 
3
+ ## 2.1.7
4
+
5
+ ### Patch Changes
6
+
7
+ - fix(uikit): Improve `CopyButton` and `useClipboard` compatibility ([#485](https://github.com/tidbcloud/tidbcloud-uikit/pull/485))
8
+
9
+ ## 2.1.6
10
+
11
+ ### Patch Changes
12
+
13
+ - fix(uikit): update dayjs import and export strategy ([#482](https://github.com/tidbcloud/tidbcloud-uikit/pull/482))
14
+ - chore(deps): upgrade Storybook and Vite to latest versions ([#481](https://github.com/tidbcloud/tidbcloud-uikit/pull/481))
15
+
3
16
  ## 2.1.5
4
17
 
5
18
  ### Patch Changes
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var customParseFormat = { exports: {} };
4
+ exports.__module = customParseFormat;
@@ -0,0 +1,4 @@
1
+ var customParseFormat = { exports: {} };
2
+ export {
3
+ customParseFormat as __module
4
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var duration = { exports: {} };
4
+ exports.__module = duration;
@@ -0,0 +1,4 @@
1
+ var duration = { exports: {} };
2
+ export {
3
+ duration as __module
4
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var minMax = { exports: {} };
4
+ exports.__module = minMax;
@@ -0,0 +1,4 @@
1
+ var minMax = { exports: {} };
2
+ export {
3
+ minMax as __module
4
+ };
@@ -8,6 +8,7 @@ const index = require("../../icons/index.cjs");
8
8
  ;/* empty css */
9
9
  ;/* empty css */
10
10
  ;/* empty css */
11
+ const CopyButton = require("../../primitive/CopyButton/CopyButton.cjs");
11
12
  require("clsx");
12
13
  const styles = require("../../utils/styles.cjs");
13
14
  const Box = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/core/Box/Box.cjs");
@@ -15,7 +16,6 @@ const Prism = require("../../primitive/Prism/Prism.cjs");
15
16
  const Group = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Group/Group.cjs");
16
17
  const HoverCard = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/HoverCard/HoverCard.cjs");
17
18
  const ActionIcon = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/ActionIcon/ActionIcon.cjs");
18
- const CopyButton = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/CopyButton/CopyButton.cjs");
19
19
  const Code = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Code/Code.cjs");
20
20
  const useLocalStorage = require("../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-local-storage/use-local-storage.cjs");
21
21
  function useFold(persistenceKey) {
@@ -6,6 +6,7 @@ import { IconChevronVerticalExpand, IconChevronVerticalShrink, IconCheck, IconCo
6
6
  /* empty css */
7
7
  /* empty css */
8
8
  /* empty css */
9
+ import { CopyButton } from "../../primitive/CopyButton/CopyButton.mjs";
9
10
  import "clsx";
10
11
  import { mergeSxList, mergeStylesList } from "../../utils/styles.mjs";
11
12
  import { Box } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/core/Box/Box.mjs";
@@ -13,7 +14,6 @@ import { Prism } from "../../primitive/Prism/Prism.mjs";
13
14
  import { Group } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Group/Group.mjs";
14
15
  import { HoverCard } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/HoverCard/HoverCard.mjs";
15
16
  import { ActionIcon } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/ActionIcon/ActionIcon.mjs";
16
- import { CopyButton } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/CopyButton/CopyButton.mjs";
17
17
  import { Code } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Code/Code.mjs";
18
18
  import { useLocalStorage } from "../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-local-storage/use-local-storage.mjs";
19
19
  function useFold(persistenceKey) {
@@ -9,9 +9,7 @@ const React = require("react");
9
9
  ;/* empty css */
10
10
  ;/* empty css */
11
11
  ;/* empty css */
12
- const dayjs = require("dayjs");
13
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.cjs");
14
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.cjs");
12
+ const dayjs = require("../../utils/dayjs.cjs");
15
13
  const constant = require("./constant.cjs");
16
14
  const Flex = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Flex/Flex.cjs");
17
15
  const useUncontrolled = require("../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-uncontrolled/use-uncontrolled.cjs");
@@ -37,12 +35,12 @@ const getTimeRange = ({
37
35
  type,
38
36
  start,
39
37
  end,
40
- utcOffset = dayjs().utcOffset()
38
+ utcOffset = dayjs.dayjs().utcOffset()
41
39
  }) => {
42
40
  const map = {
43
41
  year: {
44
- min: dayjs().year(),
45
- max: dayjs().year() + 100
42
+ min: dayjs.dayjs().year(),
43
+ max: dayjs.dayjs().year() + 100
46
44
  },
47
45
  month: {
48
46
  min: 1,
@@ -66,8 +64,8 @@ const getTimeRange = ({
66
64
  }
67
65
  };
68
66
  let { min, max } = map[type];
69
- const s1 = start ? dayjs(start).utcOffset(utcOffset) : null;
70
- const s2 = end ? dayjs(end).utcOffset(utcOffset) : null;
67
+ const s1 = start ? dayjs.dayjs(start).utcOffset(utcOffset) : null;
68
+ const s2 = end ? dayjs.dayjs(end).utcOffset(utcOffset) : null;
71
69
  switch (type) {
72
70
  case "year": {
73
71
  if (s1) {
@@ -7,9 +7,7 @@ import { useMemo, useRef, useEffect } from "react";
7
7
  /* empty css */
8
8
  /* empty css */
9
9
  /* empty css */
10
- import dayjs from "dayjs";
11
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.mjs";
12
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.mjs";
10
+ import { dayjs } from "../../utils/dayjs.mjs";
13
11
  import { CellHeight, CellStyle } from "./constant.mjs";
14
12
  import { Flex } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Flex/Flex.mjs";
15
13
  import { useUncontrolled } from "../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-uncontrolled/use-uncontrolled.mjs";
@@ -10,9 +10,7 @@ const index = require("../../icons/index.cjs");
10
10
  ;/* empty css */
11
11
  ;/* empty css */
12
12
  const index$1 = require("../../primitive/Typography/index.cjs");
13
- const dayjs = require("dayjs");
14
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.cjs");
15
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.cjs");
13
+ const dayjs = require("../../utils/dayjs.cjs");
16
14
  const helpers = require("../TimeRangePicker/helpers.cjs");
17
15
  const TimeScollerPicker = require("./TimeScollerPicker.cjs");
18
16
  const useDisclosure = require("../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-disclosure/use-disclosure.cjs");
@@ -32,11 +30,11 @@ const DateTimePicker = ({
32
30
  format = helpers.DEFAULT_TIME_FORMAT,
33
31
  defaultValue,
34
32
  value,
35
- startDate = dayjs().subtract(10, "year").toDate(),
36
- endDate = dayjs().add(10, "year").toDate(),
33
+ startDate = dayjs.dayjs().subtract(10, "year").toDate(),
34
+ endDate = dayjs.dayjs().add(10, "year").toDate(),
37
35
  onChange,
38
36
  disable = false,
39
- utcOffset = dayjs().utcOffset(),
37
+ utcOffset = dayjs.dayjs().utcOffset(),
40
38
  withinPortal = true,
41
39
  sx,
42
40
  loading = false,
@@ -44,8 +42,8 @@ const DateTimePicker = ({
44
42
  }) => {
45
43
  const [opened, { close, open }] = useDisclosure.useDisclosure(false);
46
44
  const [currentValue, setCurrentValue] = useUncontrolled.useUncontrolled({
47
- value: value ? dayjs(value) : void 0,
48
- defaultValue: defaultValue ? dayjs(defaultValue) : dayjs(),
45
+ value: value ? dayjs.dayjs(value) : void 0,
46
+ defaultValue: defaultValue ? dayjs.dayjs(defaultValue) : dayjs.dayjs(),
49
47
  onChange: (v) => {
50
48
  onChange == null ? void 0 : onChange(v.toDate());
51
49
  }
@@ -53,13 +51,16 @@ const DateTimePicker = ({
53
51
  const [currentValueChangedBy, setCurrentValueChangedBy] = React.useState(null);
54
52
  const updateCurrentValue = ahooks.useMemoizedFn((val, from) => {
55
53
  let next = val;
54
+ if (!next.isValid()) {
55
+ return;
56
+ }
56
57
  if ((currentValue == null ? void 0 : currentValue.unix()) === next.unix()) {
57
58
  return;
58
59
  }
59
- if (startDate && next.valueOf() < startDate.valueOf()) {
60
- next = dayjs(startDate);
61
- } else if (endDate && next.valueOf() > endDate.valueOf()) {
62
- next = dayjs(endDate);
60
+ if (startDate && next.isBefore(startDate)) {
61
+ next = dayjs.dayjs(startDate);
62
+ } else if (endDate && next.isAfter(endDate)) {
63
+ next = dayjs.dayjs(endDate);
63
64
  }
64
65
  setCurrentValue(next);
65
66
  setCurrentValueChangedBy(from);
@@ -80,7 +81,7 @@ const DateTimePicker = ({
80
81
  });
81
82
  const timeInputChange = ahooks.useMemoizedFn((e) => {
82
83
  const originVal = e.currentTarget.value;
83
- const v = dayjs(originVal, "HH:mm:ss").toDate();
84
+ const v = dayjs.dayjs(originVal, "HH:mm:ss").toDate();
84
85
  let next = currentValue;
85
86
  next = next.utcOffset(utcOffset).hour(v.getHours()).minute(v.getMinutes()).second(v.getSeconds());
86
87
  updateCurrentValue(next, "timeInput");
@@ -8,9 +8,7 @@ import { IconClock } from "../../icons/index.mjs";
8
8
  /* empty css */
9
9
  /* empty css */
10
10
  import { Typography } from "../../primitive/Typography/index.mjs";
11
- import dayjs from "dayjs";
12
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.mjs";
13
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.mjs";
11
+ import { dayjs } from "../../utils/dayjs.mjs";
14
12
  import { DEFAULT_TIME_FORMAT } from "../TimeRangePicker/helpers.mjs";
15
13
  import { TimeScollerPicker } from "./TimeScollerPicker.mjs";
16
14
  import { useDisclosure } from "../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-disclosure/use-disclosure.mjs";
@@ -51,12 +49,15 @@ const DateTimePicker = ({
51
49
  const [currentValueChangedBy, setCurrentValueChangedBy] = useState(null);
52
50
  const updateCurrentValue = useMemoizedFn((val, from) => {
53
51
  let next = val;
52
+ if (!next.isValid()) {
53
+ return;
54
+ }
54
55
  if ((currentValue == null ? void 0 : currentValue.unix()) === next.unix()) {
55
56
  return;
56
57
  }
57
- if (startDate && next.valueOf() < startDate.valueOf()) {
58
+ if (startDate && next.isBefore(startDate)) {
58
59
  next = dayjs(startDate);
59
- } else if (endDate && next.valueOf() > endDate.valueOf()) {
60
+ } else if (endDate && next.isAfter(endDate)) {
60
61
  next = dayjs(endDate);
61
62
  }
62
63
  setCurrentValue(next);
@@ -8,9 +8,9 @@ const index$1 = require("../../icons/index.cjs");
8
8
  ;/* empty css */
9
9
  ;/* empty css */
10
10
  const index = require("../../primitive/Typography/index.cjs");
11
+ const CopyButton = require("../../primitive/CopyButton/CopyButton.cjs");
11
12
  require("clsx");
12
13
  const styles = require("../../utils/styles.cjs");
13
- const CopyButton = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/CopyButton/CopyButton.cjs");
14
14
  const Box = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/core/Box/Box.cjs");
15
15
  const Tooltip = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Tooltip/Tooltip.cjs");
16
16
  const ActionIcon = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/ActionIcon/ActionIcon.cjs");
@@ -6,9 +6,9 @@ import { IconCopy01 } from "../../icons/index.mjs";
6
6
  /* empty css */
7
7
  /* empty css */
8
8
  import { Typography } from "../../primitive/Typography/index.mjs";
9
+ import { CopyButton } from "../../primitive/CopyButton/CopyButton.mjs";
9
10
  import "clsx";
10
11
  import { mergeSxList } from "../../utils/styles.mjs";
11
- import { CopyButton } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/CopyButton/CopyButton.mjs";
12
12
  import { Box } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/core/Box/Box.mjs";
13
13
  import { Tooltip } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Tooltip/Tooltip.mjs";
14
14
  import { ActionIcon } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/ActionIcon/ActionIcon.mjs";
@@ -10,9 +10,7 @@ const index = require("../../icons/index.cjs");
10
10
  ;/* empty css */
11
11
  const index$1 = require("../../primitive/Typography/index.cjs");
12
12
  const index$2 = require("../../primitive/Button/index.cjs");
13
- const dayjs = require("dayjs");
14
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.cjs");
15
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.cjs");
13
+ const dayjs = require("../../utils/dayjs.cjs");
16
14
  const helpers = require("./helpers.cjs");
17
15
  const Box = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/core/Box/Box.cjs");
18
16
  const Group = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Group/Group.cjs");
@@ -33,10 +31,10 @@ const AbsoluteTimeRangePicker = ({
33
31
  }) => {
34
32
  const [start, setStart] = React.useState(() => value ? new Date(value[0] * 1e3) : null);
35
33
  const [end, setEnd] = React.useState(() => value ? new Date(value[1] * 1e3) : null);
36
- const startDate = start ? dayjs(start).format("MMM D, YYYY") : "-";
37
- const endDate = end ? dayjs(end).format("MMM D, YYYY") : "-";
38
- const startTime = start ? dayjs(start).format("HH:mm:ss") : "-";
39
- const endTime = end ? dayjs(end).format("HH:mm:ss") : "-";
34
+ const startDate = start ? dayjs.dayjs(start).format("MMM D, YYYY") : "-";
35
+ const endDate = end ? dayjs.dayjs(end).format("MMM D, YYYY") : "-";
36
+ const startTime = start ? dayjs.dayjs(start).format("HH:mm:ss") : "-";
37
+ const endTime = end ? dayjs.dayjs(end).format("HH:mm:ss") : "-";
40
38
  const isRangeComplete = !!start && !!end;
41
39
  const startAfterEnd = isRangeComplete && start.valueOf() > end.valueOf();
42
40
  const beyondMin = isRangeComplete && minDateTime && start.valueOf() < minDateTime.valueOf();
@@ -65,7 +63,7 @@ const AbsoluteTimeRangePicker = ({
65
63
  };
66
64
  const updateTime = (v, setter) => {
67
65
  setter((old) => {
68
- const d = dayjs(v, "HH:mm:ss").toDate();
66
+ const d = dayjs.dayjs(v, "HH:mm:ss").toDate();
69
67
  const newD = new Date(old);
70
68
  newD.setHours(d.getHours());
71
69
  newD.setMinutes(d.getMinutes());
@@ -73,7 +71,7 @@ const AbsoluteTimeRangePicker = ({
73
71
  return newD;
74
72
  });
75
73
  };
76
- const apply = () => onChange == null ? void 0 : onChange({ type: "absolute", value: [dayjs(start).unix(), dayjs(end).unix()] });
74
+ const apply = () => onChange == null ? void 0 : onChange({ type: "absolute", value: [dayjs.dayjs(start).unix(), dayjs.dayjs(end).unix()] });
77
75
  return /* @__PURE__ */ jsxRuntime.jsxs(Box.Box, { p: "md", w: 280, m: -4, children: [
78
76
  /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { pb: "xs", mt: -4, onClick: onReturnClick, sx: { cursor: "pointer" }, children: [
79
77
  /* @__PURE__ */ jsxRuntime.jsx(index.IconChevronLeft, { size: 16 }),
@@ -8,9 +8,7 @@ import { IconChevronLeft, IconAlertCircle } from "../../icons/index.mjs";
8
8
  /* empty css */
9
9
  import { Typography } from "../../primitive/Typography/index.mjs";
10
10
  import { Button } from "../../primitive/Button/index.mjs";
11
- import dayjs from "dayjs";
12
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.mjs";
13
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.mjs";
11
+ import { dayjs } from "../../utils/dayjs.mjs";
14
12
  import { timeFormatter, formatDuration } from "./helpers.mjs";
15
13
  import { Box } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/core/Box/Box.mjs";
16
14
  import { Group } from "../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Group/Group.mjs";
@@ -2,9 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const lodashEs = require("lodash-es");
4
4
  const prettyMs = require("pretty-ms");
5
- const dayjs = require("dayjs");
6
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.cjs");
7
- require("../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.cjs");
5
+ const dayjs = require("../../utils/dayjs.cjs");
8
6
  const DEFAULT_QUICK_RANGES = [
9
7
  5 * 60,
10
8
  15 * 60,
@@ -31,7 +29,7 @@ const toTimeRangeValue = (timeRange, offset = 0) => {
31
29
  if (timeRange.type === "absolute") {
32
30
  return timeRange.value.map((t) => t + offset);
33
31
  } else {
34
- const now = dayjs().unix();
32
+ const now = dayjs.dayjs().unix();
35
33
  return [now - timeRange.value + offset, now + offset];
36
34
  }
37
35
  };
@@ -85,7 +83,7 @@ const timeFormatter = (timeValue, utcOffset, format = DEFAULT_TIME_FORMAT) => {
85
83
  const time = timeValue instanceof Date || isNaN(Number(timeValue)) ? timeValue : Number(timeValue) * 1e3;
86
84
  const currentTZOffsetInHours = utcOffset === void 0 || utcOffset === null ? -((/* @__PURE__ */ new Date()).getTimezoneOffset() / 60) : utcOffset;
87
85
  const withUTC = format.indexOf("Z") >= 0;
88
- return dayjs(addOffsetUTC(time, currentTZOffsetInHours)).format(withUTC ? lodashEs.trim(format, "Z") : format) + (withUTC ? getUTCString(currentTZOffsetInHours) : "");
86
+ return dayjs.dayjs(addOffsetUTC(time, currentTZOffsetInHours)).format(withUTC ? lodashEs.trim(format, "Z") : format) + (withUTC ? getUTCString(currentTZOffsetInHours) : "");
89
87
  };
90
88
  exports.DEFAULT_QUICK_RANGES = DEFAULT_QUICK_RANGES;
91
89
  exports.DEFAULT_TIME_FORMAT = DEFAULT_TIME_FORMAT;
@@ -1,8 +1,6 @@
1
1
  import { trim } from "lodash-es";
2
2
  import prettyMs from "pretty-ms";
3
- import dayjs from "dayjs";
4
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.mjs";
5
- import "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.mjs";
3
+ import { dayjs } from "../../utils/dayjs.mjs";
6
4
  const DEFAULT_QUICK_RANGES = [
7
5
  5 * 60,
8
6
  15 * 60,
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const useClipboard = require("./use-clipboard/use-clipboard.cjs");
3
4
  const useURLQueryState = require("./useURLQueryState.cjs");
4
5
  const useClickOutside = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-click-outside/use-click-outside.cjs");
5
6
  const useColorScheme = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-color-scheme/use-color-scheme.cjs");
@@ -45,7 +46,6 @@ const useThrottledValue = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_r
45
46
  const useToggle = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-toggle/use-toggle.cjs");
46
47
  const useUncontrolled = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-uncontrolled/use-uncontrolled.cjs");
47
48
  const useValidatedState = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-validated-state/use-validated-state.cjs");
48
- const useClipboard = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-clipboard/use-clipboard.cjs");
49
49
  const useDocumentTitle = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-document-title/use-document-title.cjs");
50
50
  const useDocumentVisibility = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-document-visibility/use-document-visibility.cjs");
51
51
  const useEyeDropper = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-eye-dropper/use-eye-dropper.cjs");
@@ -68,6 +68,7 @@ const useIsomorphicEffect = require("../node_modules/.pnpm/@mantine_hooks@7.15.2
68
68
  const useLogger = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-logger/use-logger.cjs");
69
69
  const useMounted = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-mounted/use-mounted.cjs");
70
70
  const useShallowEffect = require("../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-shallow-effect/use-shallow-effect.cjs");
71
+ exports.useClipboard = useClipboard.useClipboard;
71
72
  exports.useURLQueryState = useURLQueryState.useURLQueryState;
72
73
  exports.useClickOutside = useClickOutside.useClickOutside;
73
74
  exports.useSystemColorScheme = useColorScheme.useColorScheme;
@@ -114,7 +115,6 @@ exports.useThrottledValue = useThrottledValue.useThrottledValue;
114
115
  exports.useToggle = useToggle.useToggle;
115
116
  exports.useUncontrolled = useUncontrolled.useUncontrolled;
116
117
  exports.useValidatedState = useValidatedState.useValidatedState;
117
- exports.useClipboard = useClipboard.useClipboard;
118
118
  exports.useDocumentTitle = useDocumentTitle.useDocumentTitle;
119
119
  exports.useDocumentVisibility = useDocumentVisibility.useDocumentVisibility;
120
120
  exports.useEyeDropper = useEyeDropper.useEyeDropper;
@@ -28,5 +28,6 @@ declare module '@mantine/core' {
28
28
  sx?: EmotionSx
29
29
  }
30
30
  }
31
- export { useClickOutside, useColorScheme as useSystemColorScheme, useElementSize, useEventListener, useFocusReturn, useFocusTrap, useFocusWithin, useFullscreen, useHotkeys, useHover, useInViewport, useIntersection, useMediaQuery, useMouse, useMove, useMutationObserver, useOrientation, useReducedMotion, useResizeObserver, useScrollIntoView, useViewportSize, useWindowEvent, useWindowScroll, useCounter, useDebouncedCallback, useDebouncedState, useDebouncedValue, useDisclosure, useId, useInputState, useListState, useLocalStorage, useMap, usePagination, usePrevious, useQueue, useSet, useSetState, useStateHistory, useThrottledCallback, useThrottledState, useThrottledValue, useToggle, useUncontrolled, useValidatedState, useClipboard, useDocumentTitle, useDocumentVisibility, useEyeDropper, useFavicon, useFetch, useHash, useHeadroom, useIdle, useInterval, useMergedRef, useNetwork, useOs, usePageLeave, useTextSelection, useTimeout, useDidUpdate, useForceUpdate, useIsFirstRender, useIsomorphicEffect, useLogger, useMounted, useShallowEffect } from '@mantine/hooks';
31
+ export { useClickOutside, useColorScheme as useSystemColorScheme, useElementSize, useEventListener, useFocusReturn, useFocusTrap, useFocusWithin, useFullscreen, useHotkeys, useHover, useInViewport, useIntersection, useMediaQuery, useMouse, useMove, useMutationObserver, useOrientation, useReducedMotion, useResizeObserver, useScrollIntoView, useViewportSize, useWindowEvent, useWindowScroll, useCounter, useDebouncedCallback, useDebouncedState, useDebouncedValue, useDisclosure, useId, useInputState, useListState, useLocalStorage, useMap, usePagination, usePrevious, useQueue, useSet, useSetState, useStateHistory, useThrottledCallback, useThrottledState, useThrottledValue, useToggle, useUncontrolled, useValidatedState, useDocumentTitle, useDocumentVisibility, useEyeDropper, useFavicon, useFetch, useHash, useHeadroom, useIdle, useInterval, useMergedRef, useNetwork, useOs, usePageLeave, useTextSelection, useTimeout, useDidUpdate, useForceUpdate, useIsFirstRender, useIsomorphicEffect, useLogger, useMounted, useShallowEffect } from '@mantine/hooks';
32
+ export { useClipboard } from './use-clipboard/use-clipboard.cjs';
32
33
  export { useURLQueryState } from './useURLQueryState.cjs';
@@ -28,5 +28,6 @@ declare module '@mantine/core' {
28
28
  sx?: EmotionSx
29
29
  }
30
30
  }
31
- export { useClickOutside, useColorScheme as useSystemColorScheme, useElementSize, useEventListener, useFocusReturn, useFocusTrap, useFocusWithin, useFullscreen, useHotkeys, useHover, useInViewport, useIntersection, useMediaQuery, useMouse, useMove, useMutationObserver, useOrientation, useReducedMotion, useResizeObserver, useScrollIntoView, useViewportSize, useWindowEvent, useWindowScroll, useCounter, useDebouncedCallback, useDebouncedState, useDebouncedValue, useDisclosure, useId, useInputState, useListState, useLocalStorage, useMap, usePagination, usePrevious, useQueue, useSet, useSetState, useStateHistory, useThrottledCallback, useThrottledState, useThrottledValue, useToggle, useUncontrolled, useValidatedState, useClipboard, useDocumentTitle, useDocumentVisibility, useEyeDropper, useFavicon, useFetch, useHash, useHeadroom, useIdle, useInterval, useMergedRef, useNetwork, useOs, usePageLeave, useTextSelection, useTimeout, useDidUpdate, useForceUpdate, useIsFirstRender, useIsomorphicEffect, useLogger, useMounted, useShallowEffect } from '@mantine/hooks';
31
+ export { useClickOutside, useColorScheme as useSystemColorScheme, useElementSize, useEventListener, useFocusReturn, useFocusTrap, useFocusWithin, useFullscreen, useHotkeys, useHover, useInViewport, useIntersection, useMediaQuery, useMouse, useMove, useMutationObserver, useOrientation, useReducedMotion, useResizeObserver, useScrollIntoView, useViewportSize, useWindowEvent, useWindowScroll, useCounter, useDebouncedCallback, useDebouncedState, useDebouncedValue, useDisclosure, useId, useInputState, useListState, useLocalStorage, useMap, usePagination, usePrevious, useQueue, useSet, useSetState, useStateHistory, useThrottledCallback, useThrottledState, useThrottledValue, useToggle, useUncontrolled, useValidatedState, useDocumentTitle, useDocumentVisibility, useEyeDropper, useFavicon, useFetch, useHash, useHeadroom, useIdle, useInterval, useMergedRef, useNetwork, useOs, usePageLeave, useTextSelection, useTimeout, useDidUpdate, useForceUpdate, useIsFirstRender, useIsomorphicEffect, useLogger, useMounted, useShallowEffect } from '@mantine/hooks';
32
+ export { useClipboard } from './use-clipboard/use-clipboard.mjs';
32
33
  export { useURLQueryState } from './useURLQueryState.mjs';
@@ -1,3 +1,4 @@
1
+ import { useClipboard } from "./use-clipboard/use-clipboard.mjs";
1
2
  import { useURLQueryState } from "./useURLQueryState.mjs";
2
3
  import { useClickOutside } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-click-outside/use-click-outside.mjs";
3
4
  import { useColorScheme } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-color-scheme/use-color-scheme.mjs";
@@ -43,7 +44,6 @@ import { useThrottledValue } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_r
43
44
  import { useToggle } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-toggle/use-toggle.mjs";
44
45
  import { useUncontrolled } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-uncontrolled/use-uncontrolled.mjs";
45
46
  import { useValidatedState } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-validated-state/use-validated-state.mjs";
46
- import { useClipboard } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-clipboard/use-clipboard.mjs";
47
47
  import { useDocumentTitle } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-document-title/use-document-title.mjs";
48
48
  import { useDocumentVisibility } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-document-visibility/use-document-visibility.mjs";
49
49
  import { useEyeDropper } from "../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-eye-dropper/use-eye-dropper.mjs";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const useFallbackClipboard = require("./use-fallback-clipboard.cjs");
4
+ const useClipboard$1 = require("../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-clipboard/use-clipboard.cjs");
5
+ const isClipboardApiSupported = () => {
6
+ return !!(window.isSecureContext && (navigator == null ? void 0 : navigator.clipboard));
7
+ };
8
+ function useClipboard({ timeout = 2e3 } = {}) {
9
+ const clipboard = useClipboard$1.useClipboard({ timeout });
10
+ const fallbackClipboard = useFallbackClipboard.useFallbackClipboard({ timeout });
11
+ if (isClipboardApiSupported()) {
12
+ return clipboard;
13
+ }
14
+ return fallbackClipboard;
15
+ }
16
+ exports.useClipboard = useClipboard;
@@ -0,0 +1,8 @@
1
+ export declare function useClipboard({ timeout }?: {
2
+ timeout?: number | undefined;
3
+ }): {
4
+ copy: (valueToCopy: string) => void;
5
+ reset: () => void;
6
+ error: Error | null;
7
+ copied: boolean;
8
+ };
@@ -0,0 +1,8 @@
1
+ export declare function useClipboard({ timeout }?: {
2
+ timeout?: number | undefined;
3
+ }): {
4
+ copy: (valueToCopy: string) => void;
5
+ reset: () => void;
6
+ error: Error | null;
7
+ copied: boolean;
8
+ };
@@ -0,0 +1,16 @@
1
+ import { useFallbackClipboard } from "./use-fallback-clipboard.mjs";
2
+ import { useClipboard as useClipboard$1 } from "../../node_modules/.pnpm/@mantine_hooks@7.15.2_react@18.3.1/node_modules/@mantine/hooks/esm/use-clipboard/use-clipboard.mjs";
3
+ const isClipboardApiSupported = () => {
4
+ return !!(window.isSecureContext && (navigator == null ? void 0 : navigator.clipboard));
5
+ };
6
+ function useClipboard({ timeout = 2e3 } = {}) {
7
+ const clipboard = useClipboard$1({ timeout });
8
+ const fallbackClipboard = useFallbackClipboard({ timeout });
9
+ if (isClipboardApiSupported()) {
10
+ return clipboard;
11
+ }
12
+ return fallbackClipboard;
13
+ }
14
+ export {
15
+ useClipboard
16
+ };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const fallbackCopy = (text) => {
5
+ return new Promise((resolve, reject) => {
6
+ try {
7
+ const textarea = document.createElement("textarea");
8
+ textarea.value = text;
9
+ textarea.style.cssText = "position:fixed;left:-9999px;opacity:0;";
10
+ document.body.appendChild(textarea);
11
+ textarea.focus();
12
+ textarea.select();
13
+ const successful = document.execCommand("copy");
14
+ textarea.remove();
15
+ if (successful) {
16
+ resolve(void 0);
17
+ } else {
18
+ reject(new Error("Fallback copy failed"));
19
+ }
20
+ } catch (err) {
21
+ reject(err);
22
+ }
23
+ });
24
+ };
25
+ function useFallbackClipboard({ timeout = 2e3 } = {}) {
26
+ const [error, setError] = React.useState(null);
27
+ const [copied, setCopied] = React.useState(false);
28
+ const [copyTimeout, setCopyTimeout] = React.useState(null);
29
+ const handleCopyResult = (value) => {
30
+ window.clearTimeout(copyTimeout);
31
+ setCopyTimeout(window.setTimeout(() => setCopied(false), timeout));
32
+ setCopied(value);
33
+ };
34
+ const copy = (valueToCopy) => {
35
+ fallbackCopy(valueToCopy).then(() => handleCopyResult(true)).catch((err) => setError(err));
36
+ };
37
+ const reset = () => {
38
+ setCopied(false);
39
+ setError(null);
40
+ window.clearTimeout(copyTimeout);
41
+ };
42
+ return { copy, reset, error, copied };
43
+ }
44
+ exports.useFallbackClipboard = useFallbackClipboard;
@@ -0,0 +1,8 @@
1
+ export declare function useFallbackClipboard({ timeout }?: {
2
+ timeout?: number | undefined;
3
+ }): {
4
+ copy: (valueToCopy: string) => void;
5
+ reset: () => void;
6
+ error: Error | null;
7
+ copied: boolean;
8
+ };
@@ -0,0 +1,8 @@
1
+ export declare function useFallbackClipboard({ timeout }?: {
2
+ timeout?: number | undefined;
3
+ }): {
4
+ copy: (valueToCopy: string) => void;
5
+ reset: () => void;
6
+ error: Error | null;
7
+ copied: boolean;
8
+ };
@@ -0,0 +1,44 @@
1
+ import { useState } from "react";
2
+ const fallbackCopy = (text) => {
3
+ return new Promise((resolve, reject) => {
4
+ try {
5
+ const textarea = document.createElement("textarea");
6
+ textarea.value = text;
7
+ textarea.style.cssText = "position:fixed;left:-9999px;opacity:0;";
8
+ document.body.appendChild(textarea);
9
+ textarea.focus();
10
+ textarea.select();
11
+ const successful = document.execCommand("copy");
12
+ textarea.remove();
13
+ if (successful) {
14
+ resolve(void 0);
15
+ } else {
16
+ reject(new Error("Fallback copy failed"));
17
+ }
18
+ } catch (err) {
19
+ reject(err);
20
+ }
21
+ });
22
+ };
23
+ function useFallbackClipboard({ timeout = 2e3 } = {}) {
24
+ const [error, setError] = useState(null);
25
+ const [copied, setCopied] = useState(false);
26
+ const [copyTimeout, setCopyTimeout] = useState(null);
27
+ const handleCopyResult = (value) => {
28
+ window.clearTimeout(copyTimeout);
29
+ setCopyTimeout(window.setTimeout(() => setCopied(false), timeout));
30
+ setCopied(value);
31
+ };
32
+ const copy = (valueToCopy) => {
33
+ fallbackCopy(valueToCopy).then(() => handleCopyResult(true)).catch((err) => setError(err));
34
+ };
35
+ const reset = () => {
36
+ setCopied(false);
37
+ setError(null);
38
+ window.clearTimeout(copyTimeout);
39
+ };
40
+ return { copy, reset, error, copied };
41
+ }
42
+ export {
43
+ useFallbackClipboard
44
+ };