@flipdish/ui-library 0.16.1 → 0.18.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/dist/components/atoms/BackgroundPattern/components/grid-check.cjs +2 -1
- package/dist/components/atoms/BackgroundPattern/components/grid-check.cjs.map +1 -1
- package/dist/components/atoms/BackgroundPattern/components/grid-check.d.ts.map +1 -1
- package/dist/components/atoms/BackgroundPattern/components/grid-check.js +2 -1
- package/dist/components/atoms/BackgroundPattern/components/grid-check.js.map +1 -1
- package/dist/components/atoms/BackgroundPattern/index.cjs +4 -1
- package/dist/components/atoms/BackgroundPattern/index.cjs.map +1 -1
- package/dist/components/atoms/BackgroundPattern/index.d.ts +8 -3
- package/dist/components/atoms/BackgroundPattern/index.d.ts.map +1 -1
- package/dist/components/atoms/BackgroundPattern/index.js +4 -1
- package/dist/components/atoms/BackgroundPattern/index.js.map +1 -1
- package/dist/components/molecules/EmptyState/index.cjs +4 -1
- package/dist/components/molecules/EmptyState/index.cjs.map +1 -1
- package/dist/components/molecules/EmptyState/index.d.ts.map +1 -1
- package/dist/components/molecules/EmptyState/index.js +4 -1
- package/dist/components/molecules/EmptyState/index.js.map +1 -1
- package/dist/components/molecules/Pagination/index.cjs +2 -2
- package/dist/components/molecules/Pagination/index.cjs.map +1 -1
- package/dist/components/molecules/Pagination/index.d.ts +1 -1
- package/dist/components/molecules/Pagination/index.d.ts.map +1 -1
- package/dist/components/molecules/Pagination/index.js +2 -2
- package/dist/components/molecules/Pagination/index.js.map +1 -1
- package/dist/components/organisms/Calendar/calendar.utils.cjs +16 -0
- package/dist/components/organisms/Calendar/calendar.utils.cjs.map +1 -0
- package/dist/components/organisms/Calendar/calendar.utils.d.ts +6 -0
- package/dist/components/organisms/Calendar/calendar.utils.d.ts.map +1 -0
- package/dist/components/organisms/Calendar/calendar.utils.js +14 -0
- package/dist/components/organisms/Calendar/calendar.utils.js.map +1 -0
- package/dist/components/organisms/Calendar/components/calendar-header.cjs +2 -1
- package/dist/components/organisms/Calendar/components/calendar-header.cjs.map +1 -1
- package/dist/components/organisms/Calendar/components/calendar-header.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/components/calendar-header.js +2 -1
- package/dist/components/organisms/Calendar/components/calendar-header.js.map +1 -1
- package/dist/components/organisms/Calendar/index.cjs +13 -7
- package/dist/components/organisms/Calendar/index.cjs.map +1 -1
- package/dist/components/organisms/Calendar/index.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/index.js +13 -7
- package/dist/components/organisms/Calendar/index.js.map +1 -1
- package/dist/components/organisms/Charts/components/charts-base.cjs +4 -0
- package/dist/components/organisms/Charts/components/charts-base.cjs.map +1 -1
- package/dist/components/organisms/Charts/components/charts-base.d.ts.map +1 -1
- package/dist/components/organisms/Charts/components/charts-base.js +4 -0
- package/dist/components/organisms/Charts/components/charts-base.js.map +1 -1
- package/dist/components/organisms/GradientPicker/providers/gradient-picker-context.cjs +6 -0
- package/dist/components/organisms/GradientPicker/providers/gradient-picker-context.cjs.map +1 -1
- package/dist/components/organisms/GradientPicker/providers/gradient-picker-context.d.ts.map +1 -1
- package/dist/components/organisms/GradientPicker/providers/gradient-picker-context.js +6 -0
- package/dist/components/organisms/GradientPicker/providers/gradient-picker-context.js.map +1 -1
- package/dist/components/organisms/HeaderNavigation/components/nav-account-card.cjs.map +1 -1
- package/dist/components/organisms/HeaderNavigation/components/nav-account-card.d.ts.map +1 -1
- package/dist/components/organisms/HeaderNavigation/components/nav-account-card.js.map +1 -1
- package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs +4 -2
- package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs.map +1 -1
- package/dist/components/organisms/HeaderNavigation/components/nav-list.d.ts.map +1 -1
- package/dist/components/organisms/HeaderNavigation/components/nav-list.js +4 -2
- package/dist/components/organisms/HeaderNavigation/components/nav-list.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs +3 -3
- package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts +3 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js +3 -3
- package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-button.cjs +10 -2
- package/dist/components/organisms/SidebarNavigation/components/nav-button.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-button.d.ts +4 -2
- package/dist/components/organisms/SidebarNavigation/components/nav-button.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-button.js +12 -4
- package/dist/components/organisms/SidebarNavigation/components/nav-button.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-item.cjs +6 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-item.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-item.d.ts +2 -2
- package/dist/components/organisms/SidebarNavigation/components/nav-item.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-item.js +7 -2
- package/dist/components/organisms/SidebarNavigation/components/nav-item.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs +6 -2
- package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-list.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-list.js +6 -2
- package/dist/components/organisms/SidebarNavigation/components/nav-list.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/nav-section-toggle.cjs +15 -0
- package/dist/components/organisms/SidebarNavigation/components/nav-section-toggle.cjs.map +1 -0
- package/dist/components/organisms/SidebarNavigation/components/nav-section-toggle.d.ts +13 -0
- package/dist/components/organisms/SidebarNavigation/components/nav-section-toggle.d.ts.map +1 -0
- package/dist/components/organisms/SidebarNavigation/components/nav-section-toggle.js +13 -0
- package/dist/components/organisms/SidebarNavigation/components/nav-section-toggle.js.map +1 -0
- package/dist/components/organisms/SidebarNavigation/hooks/use-dual-tier-keyboard.cjs +7 -2
- package/dist/components/organisms/SidebarNavigation/hooks/use-dual-tier-keyboard.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/use-dual-tier-keyboard.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/use-dual-tier-keyboard.js +7 -2
- package/dist/components/organisms/SidebarNavigation/hooks/use-dual-tier-keyboard.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.cjs +26 -6
- package/dist/components/organisms/SidebarNavigation/index.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.d.ts +1 -0
- package/dist/components/organisms/SidebarNavigation/index.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.js +26 -6
- package/dist/components/organisms/SidebarNavigation/index.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts +20 -0
- package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts.map +1 -1
- package/dist/components/organisms/TextEditor/components/text-editor-extensions.cjs +19 -2
- package/dist/components/organisms/TextEditor/components/text-editor-extensions.cjs.map +1 -1
- package/dist/components/organisms/TextEditor/components/text-editor-extensions.d.ts.map +1 -1
- package/dist/components/organisms/TextEditor/components/text-editor-extensions.js +19 -2
- package/dist/components/organisms/TextEditor/components/text-editor-extensions.js.map +1 -1
- package/dist/components/organisms/TextEditor/index.cjs +24 -5
- package/dist/components/organisms/TextEditor/index.cjs.map +1 -1
- package/dist/components/organisms/TextEditor/index.d.ts.map +1 -1
- package/dist/components/organisms/TextEditor/index.js +24 -5
- package/dist/components/organisms/TextEditor/index.js.map +1 -1
- package/dist/components/organisms/TextEditor/textEditor.utils.cjs +32 -0
- package/dist/components/organisms/TextEditor/textEditor.utils.cjs.map +1 -0
- package/dist/components/organisms/TextEditor/textEditor.utils.d.ts +14 -0
- package/dist/components/organisms/TextEditor/textEditor.utils.d.ts.map +1 -0
- package/dist/components/organisms/TextEditor/textEditor.utils.js +29 -0
- package/dist/components/organisms/TextEditor/textEditor.utils.js.map +1 -0
- package/dist/hooks/useClipboard/index.cjs +10 -3
- package/dist/hooks/useClipboard/index.cjs.map +1 -1
- package/dist/hooks/useClipboard/index.d.ts.map +1 -1
- package/dist/hooks/useClipboard/index.js +10 -3
- package/dist/hooks/useClipboard/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const ALLOWED_LINK_PROTOCOLS = ['http:', 'https:', 'mailto:', 'tel:'];
|
|
2
|
+
// Tiptap strips control characters for validation but stores the original href, so
|
|
3
|
+
// `f\ntp://example.test` would pass a naive scheme check yet persist with its
|
|
4
|
+
// control character intact — strip them before validating AND storing.
|
|
5
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: removing control characters is the point
|
|
6
|
+
const CONTROL_CHARACTERS = /[\u0000-\u001F\u007F]/g;
|
|
7
|
+
/**
|
|
8
|
+
* Sanitizes a user-entered link URL: removes ASCII control characters, then rejects
|
|
9
|
+
* any explicit scheme outside http/https/mailto/tel (blocks `javascript:` et al.).
|
|
10
|
+
* Scheme-less values are treated as relative URLs and allowed.
|
|
11
|
+
*
|
|
12
|
+
* @returns the cleaned URL, or `null` when the URL is not allowed.
|
|
13
|
+
*/
|
|
14
|
+
const sanitizeLinkUrl = (url) => {
|
|
15
|
+
const cleaned = url.replace(CONTROL_CHARACTERS, '').trim();
|
|
16
|
+
const scheme = /^[a-z][a-z0-9+.-]*:/i.exec(cleaned)?.[0].toLowerCase();
|
|
17
|
+
if (scheme && !ALLOWED_LINK_PROTOCOLS.includes(scheme)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return cleaned;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Tiptap `isAllowedUri` narrowing its default protocol policy (which also admits
|
|
24
|
+
* ftp/ftps/callto/sms/cid/xmpp) to the four protocols this design system allows.
|
|
25
|
+
*/
|
|
26
|
+
const isAllowedLinkUri = (uri) => sanitizeLinkUrl(uri) !== null;
|
|
27
|
+
|
|
28
|
+
export { isAllowedLinkUri, sanitizeLinkUrl };
|
|
29
|
+
//# sourceMappingURL=textEditor.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textEditor.utils.js","sources":["../../../../src/components/organisms/TextEditor/textEditor.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;AAErE;AACA;AACA;AACA;AACA,MAAM,kBAAkB,GAAG,wBAAwB;AAEnD;;;;;;AAMG;AACI,MAAM,eAAe,GAAG,CAAC,GAAW,KAAmB;AAC5D,IAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;AAC1D,IAAA,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;IACtE,IAAI,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACtD,QAAA,OAAO,IAAI;IACb;AACA,IAAA,OAAO,OAAO;AAChB;AAEA;;;AAGG;AACI,MAAM,gBAAgB,GAAG,CAAC,GAAW,KAAc,eAAe,CAAC,GAAG,CAAC,KAAK;;;;"}
|
|
@@ -11,13 +11,18 @@ const DEFAULT_TIMEOUT = 2000;
|
|
|
11
11
|
const useClipboard = () => {
|
|
12
12
|
const [copied, setCopied] = React.useState(false);
|
|
13
13
|
const resetTimerRef = React.useRef(null);
|
|
14
|
+
// `copy` awaits the async clipboard API; guard its post-await setState so a copy
|
|
15
|
+
// resolving after unmount doesn't set state on an unmounted component.
|
|
16
|
+
const isMountedRef = React.useRef(true);
|
|
14
17
|
const scheduleReset = () => {
|
|
15
18
|
if (resetTimerRef.current)
|
|
16
19
|
clearTimeout(resetTimerRef.current);
|
|
17
20
|
resetTimerRef.current = setTimeout(() => setCopied(false), DEFAULT_TIMEOUT);
|
|
18
21
|
};
|
|
19
22
|
React.useEffect(() => {
|
|
23
|
+
isMountedRef.current = true;
|
|
20
24
|
return () => {
|
|
25
|
+
isMountedRef.current = false;
|
|
21
26
|
if (resetTimerRef.current)
|
|
22
27
|
clearTimeout(resetTimerRef.current);
|
|
23
28
|
};
|
|
@@ -33,7 +38,7 @@ const useClipboard = () => {
|
|
|
33
38
|
try {
|
|
34
39
|
textArea.select();
|
|
35
40
|
const success = document.execCommand('copy');
|
|
36
|
-
if (success) {
|
|
41
|
+
if (success && isMountedRef.current) {
|
|
37
42
|
setCopied(id || true);
|
|
38
43
|
scheduleReset();
|
|
39
44
|
}
|
|
@@ -55,8 +60,10 @@ const useClipboard = () => {
|
|
|
55
60
|
if (navigator.clipboard && window.isSecureContext) {
|
|
56
61
|
try {
|
|
57
62
|
await navigator.clipboard.writeText(text);
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
if (isMountedRef.current) {
|
|
64
|
+
setCopied(id || true);
|
|
65
|
+
scheduleReset();
|
|
66
|
+
}
|
|
60
67
|
return { success: true };
|
|
61
68
|
}
|
|
62
69
|
catch (_err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/hooks/useClipboard/index.ts"],"sourcesContent":[null],"names":["useState","useRef","useEffect","useCallback"],"mappings":";;;;AAIA,MAAM,eAAe,GAAG,IAAI;AAqB5B;;;;AAIG;AACI,MAAM,YAAY,GAAG,MAA6B;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAmB,KAAK,CAAC;AAC7D,IAAA,MAAM,aAAa,GAAGC,YAAM,CAAuC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/hooks/useClipboard/index.ts"],"sourcesContent":[null],"names":["useState","useRef","useEffect","useCallback"],"mappings":";;;;AAIA,MAAM,eAAe,GAAG,IAAI;AAqB5B;;;;AAIG;AACI,MAAM,YAAY,GAAG,MAA6B;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAmB,KAAK,CAAC;AAC7D,IAAA,MAAM,aAAa,GAAGC,YAAM,CAAuC,IAAI,CAAC;;;AAGxE,IAAA,MAAM,YAAY,GAAGA,YAAM,CAAC,IAAI,CAAC;IAEjC,MAAM,aAAa,GAAG,MAAK;QACzB,IAAI,aAAa,CAAC,OAAO;AAAE,YAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9D,QAAA,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;AAC7E,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;AACb,QAAA,YAAY,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAA,OAAO,MAAK;AACV,YAAA,YAAY,CAAC,OAAO,GAAG,KAAK;YAC5B,IAAI,aAAa,CAAC,OAAO;AAAE,gBAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;AAChE,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;;AAGN,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAW,KAAI;;QAE7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACnD,QAAA,QAAQ,CAAC,KAAK,GAAG,IAAI;AACrB,QAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACpC,QAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU;AAEhC,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAEnC,QAAA,IAAI;YACF,QAAQ,CAAC,MAAM,EAAE;YAEjB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAE5C,YAAA,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;AACnC,gBAAA,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC;AACrB,gBAAA,aAAa,EAAE;YACjB;YAEA,OAAO,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,4BAA4B,CAAC,EAAE;QACzG;QAAE,OAAO,GAAG,EAAE;YACZ,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC;aACtE;QACH;gBAAU;;YAER,QAAQ,CAAC,MAAM,EAAE;QACnB;AACF,IAAA,CAAC;;IAGD,MAAM,IAAI,GAAGC,iBAAW,CAAC,OAAO,IAAY,EAAE,EAAW,KAAI;QAC3D,IAAI,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,EAAE;AACjD,YAAA,IAAI;gBACF,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;AAEzC,gBAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,oBAAA,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC;AACrB,oBAAA,aAAa,EAAE;gBACjB;AAEA,gBAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1B;YAAE,OAAO,IAAI,EAAE;;AAEb,gBAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B;QACF;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AACzB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClipboard/index.ts"],"names":[],"mappings":"AAMA,KAAK,sBAAsB,GAAG;IAC5B;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB;;;;;;;;;OASG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACnF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClipboard/index.ts"],"names":[],"mappings":"AAMA,KAAK,sBAAsB,GAAG;IAC5B;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB;;;;;;;;;OASG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACnF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,sBAyE/B,CAAC"}
|
|
@@ -9,13 +9,18 @@ const DEFAULT_TIMEOUT = 2000;
|
|
|
9
9
|
const useClipboard = () => {
|
|
10
10
|
const [copied, setCopied] = useState(false);
|
|
11
11
|
const resetTimerRef = useRef(null);
|
|
12
|
+
// `copy` awaits the async clipboard API; guard its post-await setState so a copy
|
|
13
|
+
// resolving after unmount doesn't set state on an unmounted component.
|
|
14
|
+
const isMountedRef = useRef(true);
|
|
12
15
|
const scheduleReset = () => {
|
|
13
16
|
if (resetTimerRef.current)
|
|
14
17
|
clearTimeout(resetTimerRef.current);
|
|
15
18
|
resetTimerRef.current = setTimeout(() => setCopied(false), DEFAULT_TIMEOUT);
|
|
16
19
|
};
|
|
17
20
|
useEffect(() => {
|
|
21
|
+
isMountedRef.current = true;
|
|
18
22
|
return () => {
|
|
23
|
+
isMountedRef.current = false;
|
|
19
24
|
if (resetTimerRef.current)
|
|
20
25
|
clearTimeout(resetTimerRef.current);
|
|
21
26
|
};
|
|
@@ -31,7 +36,7 @@ const useClipboard = () => {
|
|
|
31
36
|
try {
|
|
32
37
|
textArea.select();
|
|
33
38
|
const success = document.execCommand('copy');
|
|
34
|
-
if (success) {
|
|
39
|
+
if (success && isMountedRef.current) {
|
|
35
40
|
setCopied(id || true);
|
|
36
41
|
scheduleReset();
|
|
37
42
|
}
|
|
@@ -53,8 +58,10 @@ const useClipboard = () => {
|
|
|
53
58
|
if (navigator.clipboard && window.isSecureContext) {
|
|
54
59
|
try {
|
|
55
60
|
await navigator.clipboard.writeText(text);
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
if (isMountedRef.current) {
|
|
62
|
+
setCopied(id || true);
|
|
63
|
+
scheduleReset();
|
|
64
|
+
}
|
|
58
65
|
return { success: true };
|
|
59
66
|
}
|
|
60
67
|
catch (_err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/hooks/useClipboard/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA,MAAM,eAAe,GAAG,IAAI;AAqB5B;;;;AAIG;AACI,MAAM,YAAY,GAAG,MAA6B;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAmB,KAAK,CAAC;AAC7D,IAAA,MAAM,aAAa,GAAG,MAAM,CAAuC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/hooks/useClipboard/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA,MAAM,eAAe,GAAG,IAAI;AAqB5B;;;;AAIG;AACI,MAAM,YAAY,GAAG,MAA6B;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAmB,KAAK,CAAC;AAC7D,IAAA,MAAM,aAAa,GAAG,MAAM,CAAuC,IAAI,CAAC;;;AAGxE,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;IAEjC,MAAM,aAAa,GAAG,MAAK;QACzB,IAAI,aAAa,CAAC,OAAO;AAAE,YAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9D,QAAA,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;AAC7E,IAAA,CAAC;IAED,SAAS,CAAC,MAAK;AACb,QAAA,YAAY,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAA,OAAO,MAAK;AACV,YAAA,YAAY,CAAC,OAAO,GAAG,KAAK;YAC5B,IAAI,aAAa,CAAC,OAAO;AAAE,gBAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;AAChE,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;;AAGN,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAW,KAAI;;QAE7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACnD,QAAA,QAAQ,CAAC,KAAK,GAAG,IAAI;AACrB,QAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACpC,QAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU;AAEhC,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAEnC,QAAA,IAAI;YACF,QAAQ,CAAC,MAAM,EAAE;YAEjB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAE5C,YAAA,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;AACnC,gBAAA,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC;AACrB,gBAAA,aAAa,EAAE;YACjB;YAEA,OAAO,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,4BAA4B,CAAC,EAAE;QACzG;QAAE,OAAO,GAAG,EAAE;YACZ,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC;aACtE;QACH;gBAAU;;YAER,QAAQ,CAAC,MAAM,EAAE;QACnB;AACF,IAAA,CAAC;;IAGD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,IAAY,EAAE,EAAW,KAAI;QAC3D,IAAI,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,EAAE;AACjD,YAAA,IAAI;gBACF,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;AAEzC,gBAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,oBAAA,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC;AACrB,oBAAA,aAAa,EAAE;gBACjB;AAEA,gBAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1B;YAAE,OAAO,IAAI,EAAE;;AAEb,gBAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B;QACF;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AACzB;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flipdish/ui-library",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Flipdish Design System — atomic-design component library (Tailwind v4 + UntitledUI + React Aria).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -219,11 +219,11 @@
|
|
|
219
219
|
},
|
|
220
220
|
"devDependencies": {
|
|
221
221
|
"@figma/code-connect": "^1.4.8",
|
|
222
|
-
"@storybook/addon-a11y": "^10.5.
|
|
223
|
-
"@storybook/addon-docs": "^10.5.
|
|
222
|
+
"@storybook/addon-a11y": "^10.5.8",
|
|
223
|
+
"@storybook/addon-docs": "^10.5.8",
|
|
224
224
|
"@storybook/addon-mcp": "^0.7.0",
|
|
225
|
-
"@storybook/addon-vitest": "10.5.
|
|
226
|
-
"@storybook/react-vite": "^10.5.
|
|
225
|
+
"@storybook/addon-vitest": "10.5.8",
|
|
226
|
+
"@storybook/react-vite": "^10.5.8",
|
|
227
227
|
"@tailwindcss/vite": "^4.3.1",
|
|
228
228
|
"@testing-library/jest-dom": "^6.9.1",
|
|
229
229
|
"@testing-library/react": "^16.3.2",
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
"remark-gfm": "^4.0.1",
|
|
264
264
|
"rimraf": "^6.1.3",
|
|
265
265
|
"shiki": "^4.2.0",
|
|
266
|
-
"storybook": "^10.5.
|
|
266
|
+
"storybook": "^10.5.8",
|
|
267
267
|
"tailwind-merge": "^3.6.0",
|
|
268
268
|
"tailwind-variants": "^3.2.2",
|
|
269
269
|
"tailwindcss": "^4.3.1",
|