@flamingo-stack/openframe-frontend-core 0.0.705 → 0.0.706-snapshot.20261006190707
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/{chunk-4KX6OED2.cjs → chunk-2G7UYK35.cjs} +46 -46
- package/dist/{chunk-KOWVJD4V.cjs → chunk-2KXTOP6G.cjs} +70 -57
- package/dist/{chunk-A75QY6CD.cjs → chunk-2RNB5DTN.cjs} +21 -21
- package/dist/{chunk-PN2RKPDF.js → chunk-36BCTE7D.js} +10 -10
- package/dist/{chunk-ZSAGLQOD.cjs → chunk-3AHTOSXJ.cjs} +17 -17
- package/dist/{chunk-VR2ZLFCP.js → chunk-4IBPRIQH.js} +1 -1
- package/dist/{chunk-FCGC42TS.js → chunk-4L6XCMOU.js} +66 -62
- package/dist/{chunk-X5MQ7JRP.js → chunk-4UM2ETLM.js} +9 -9
- package/dist/{chunk-6NJKKO73.cjs → chunk-6I4ZAFO2.cjs} +15 -15
- package/dist/{chunk-RBDP4WDE.js → chunk-6IW7TWPV.js} +6 -6
- package/dist/{chunk-MMOODW57.cjs → chunk-6NTPY5QA.cjs} +1887 -94
- package/dist/{chunk-QFXRPRFT.js → chunk-6YKAT7NV.js} +3 -3
- package/dist/{chunk-HPWWNJE7.cjs → chunk-AOWDNSTM.cjs} +89 -89
- package/dist/{chunk-IHERL5V4.cjs → chunk-B73373AG.cjs} +34 -34
- package/dist/{chunk-DENB2XJC.js → chunk-CNWOMQQJ.js} +2 -2
- package/dist/{chunk-MP2C3LJ4.js → chunk-CUME3VTQ.js} +1 -1
- package/dist/{chunk-PDWVPI3S.js → chunk-CZ7Y7UG4.js} +4 -72
- package/dist/{chunk-YHM5AWTT.js → chunk-CZSZSDD4.js} +6 -6
- package/dist/{chunk-F6I6XZMN.js → chunk-DA5UDTLG.js} +5 -5
- package/dist/{chunk-MFFCUVWG.js → chunk-F57ECE2I.js} +1 -1
- package/dist/{chunk-CH5232HV.js → chunk-FI6GMDO7.js} +2455 -662
- package/dist/{chunk-NDESEPW5.js → chunk-FXJ3WWUB.js} +68 -0
- package/dist/{chunk-G5A3PSPV.js → chunk-HDOYSEOJ.js} +1080 -691
- package/dist/{chunk-VA5T32XA.js → chunk-I3ST4PLM.js} +2 -2
- package/dist/{chunk-5HBHO5TB.js → chunk-JPG7OHEG.js} +1 -1
- package/dist/{chunk-YFBM2K6X.cjs → chunk-JRU2CXLB.cjs} +4 -4
- package/dist/{chunk-MKXO4Q5P.js → chunk-KUC673HM.js} +383 -142
- package/dist/{chunk-JEZKGCZI.cjs → chunk-L6Y6OOKG.cjs} +26 -26
- package/dist/{chunk-F6AFPNDF.js → chunk-LFFB6EMB.js} +29 -16
- package/dist/{chunk-X72J4ACL.cjs → chunk-LLSUVPQC.cjs} +252 -8
- package/dist/{chunk-RKV5B7EU.cjs → chunk-LM7TXMLU.cjs} +72 -4
- package/dist/{chunk-6SEANMOU.js → chunk-LNW45N2C.js} +11 -11
- package/dist/{chunk-OUY3HHW6.cjs → chunk-LRQTJOF2.cjs} +928 -539
- package/dist/{chunk-DW7G4KG3.js → chunk-MR3A4MZV.js} +3 -3
- package/dist/{chunk-2YXVWZVF.js → chunk-N45D4ZXQ.js} +959 -715
- package/dist/{chunk-Z2VNQQ74.js → chunk-NCPTID44.js} +978 -942
- package/dist/{chunk-WA6GUYQ4.cjs → chunk-NSGXARGJ.cjs} +104 -104
- package/dist/{chunk-ABU3TGXA.cjs → chunk-OF6GEI5A.cjs} +3 -3
- package/dist/{chunk-IKTQ3ZAG.cjs → chunk-OJLR5MEO.cjs} +6 -6
- package/dist/{chunk-VESKITRQ.cjs → chunk-P42V6N34.cjs} +736 -732
- package/dist/{chunk-OHFS7VOU.cjs → chunk-PLYEKV3N.cjs} +2 -2
- package/dist/{chunk-7VVFKJY5.js → chunk-PO33GZVY.js} +1799 -3449
- package/dist/{chunk-7LS22BZU.cjs → chunk-QAOFMK2A.cjs} +14 -14
- package/dist/{chunk-VHCACDKP.cjs → chunk-RQRX4YC3.cjs} +39 -39
- package/dist/{chunk-3MX5S4CF.cjs → chunk-SEXWHIMS.cjs} +899 -2549
- package/dist/{chunk-AQWZNP6A.js → chunk-SS5MBHDP.js} +4 -4
- package/dist/{chunk-ZSAO2HBW.js → chunk-TDYIREDJ.js} +15 -15
- package/dist/{chunk-XOYH2YQE.cjs → chunk-UDFRUKLC.cjs} +2 -2
- package/dist/{chunk-TYWLNCNH.cjs → chunk-UVTD52MD.cjs} +14 -82
- package/dist/{chunk-N3COXDBH.cjs → chunk-VX4E6YSB.cjs} +41 -5
- package/dist/{chunk-2QEUFXNS.cjs → chunk-WCVZCGK5.cjs} +312 -71
- package/dist/{chunk-6XIF2Z7I.js → chunk-WMX26HB5.js} +3 -3
- package/dist/{chunk-D7BTSVMS.cjs → chunk-Y2GSOUCS.cjs} +2 -2
- package/dist/{chunk-4I45Y3DN.cjs → chunk-YBUT4AMG.cjs} +6 -6
- package/dist/components/case-studies/index.cjs +30 -32
- package/dist/components/case-studies/index.js +14 -16
- package/dist/components/chat/entity-cards/case-study-card.d.ts +11 -4
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +11 -11
- package/dist/components/chat/index.d.ts +1 -1
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +16 -16
- package/dist/components/chat/nav-link-anchor-via-runtime.d.ts +34 -5
- package/dist/components/chat/nav-link-anchor-via-runtime.d.ts.map +1 -1
- package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +12 -14
- package/dist/components/contact/index.js +11 -13
- package/dist/components/docs/index.cjs +15 -17
- package/dist/components/docs/index.js +14 -16
- package/dist/components/embeds/index.cjs +12 -14
- package/dist/components/embeds/index.js +11 -13
- package/dist/components/faq/index.cjs +13 -15
- package/dist/components/faq/index.js +12 -14
- package/dist/components/features/index.cjs +12 -14
- package/dist/components/features/index.js +21 -23
- package/dist/components/help-center-pages/index.cjs +118 -120
- package/dist/components/help-center-pages/index.js +33 -35
- package/dist/components/icons/index.cjs +3 -5
- package/dist/components/icons/index.js +9 -11
- package/dist/components/icons-v2-generated/index.cjs +3 -5
- package/dist/components/icons-v2-generated/index.js +2 -4
- package/dist/components/index.cjs +87 -158
- package/dist/components/index.d.ts +0 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +331 -402
- package/dist/components/loading/page-layout-skeleton.d.ts +1 -1
- package/dist/components/meeting-scheduler/index.cjs +62 -64
- package/dist/components/meeting-scheduler/index.js +12 -14
- package/dist/components/navigation/index.cjs +28 -16
- package/dist/components/navigation/index.d.ts +14 -10
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +38 -26
- package/dist/components/navigation/mingo-ai-button.d.ts +38 -3
- package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
- package/dist/components/navigation/mobile-nav-sheet-id.d.ts +3 -0
- package/dist/components/navigation/mobile-nav-sheet-id.d.ts.map +1 -0
- package/dist/components/navigation/mobile-nav-sheet.d.ts +48 -0
- package/dist/components/navigation/mobile-nav-sheet.d.ts.map +1 -0
- package/dist/components/navigation/nav-item-row.d.ts +27 -0
- package/dist/components/navigation/nav-item-row.d.ts.map +1 -0
- package/dist/components/navigation/nav-panel.d.ts +43 -0
- package/dist/components/navigation/nav-panel.d.ts.map +1 -0
- package/dist/components/navigation/navigation-sidebar-item.d.ts +1 -2
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/navigation/site-footer.d.ts +28 -0
- package/dist/components/navigation/site-footer.d.ts.map +1 -0
- package/dist/components/navigation/site-header.d.ts +61 -0
- package/dist/components/navigation/site-header.d.ts.map +1 -0
- package/dist/components/navigation/site-nav-link.d.ts +26 -0
- package/dist/components/navigation/site-nav-link.d.ts.map +1 -0
- package/dist/components/navigation/top-navigation.d.ts +2 -2
- package/dist/components/navigation/top-navigation.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +15 -17
- package/dist/components/onboarding-guides/index.js +14 -16
- package/dist/components/platform/ToolBadge.d.ts +6 -0
- package/dist/components/platform/ToolBadge.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +10 -8
- package/dist/components/related-content/index.js +9 -7
- package/dist/components/tickets/index.cjs +16 -18
- package/dist/components/tickets/index.js +15 -17
- package/dist/components/ui/brand-association-card.d.ts +7 -0
- package/dist/components/ui/brand-association-card.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +14 -14
- package/dist/components/ui/index.js +19 -19
- package/dist/hooks/index.cjs +19 -11
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +19 -11
- package/dist/hooks/ui/index.d.ts +3 -0
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/use-active-section.d.ts +10 -0
- package/dist/hooks/ui/use-active-section.d.ts.map +1 -0
- package/dist/hooks/ui/use-nav-menus.d.ts +48 -0
- package/dist/hooks/ui/use-nav-menus.d.ts.map +1 -0
- package/dist/hooks/ui/use-visitor-os.d.ts +15 -0
- package/dist/hooks/ui/use-visitor-os.d.ts.map +1 -0
- package/dist/hooks/use-location-hash.d.ts +9 -0
- package/dist/hooks/use-location-hash.d.ts.map +1 -0
- package/dist/index.cjs +56 -21
- package/dist/index.js +231 -196
- package/dist/types/case-study.d.ts +9 -0
- package/dist/types/case-study.d.ts.map +1 -1
- package/dist/types/navigation.d.ts +95 -65
- package/dist/types/navigation.d.ts.map +1 -1
- package/dist/utils/index.cjs +55 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +50 -1
- package/dist/utils/source-icons.d.ts.map +1 -1
- package/dist/utils/visitor-os.d.ts +45 -0
- package/dist/utils/visitor-os.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/chat/entity-cards/case-study-card.tsx +115 -5
- package/src/components/chat/index.ts +7 -1
- package/src/components/chat/nav-link-anchor-via-runtime.tsx +62 -9
- package/src/components/chat/utils/icon-library.tsx +35 -1
- package/src/components/index.ts +0 -2
- package/src/components/loading/page-layout-skeleton.tsx +1 -1
- package/src/components/navigation/index.ts +21 -14
- package/src/components/navigation/mingo-ai-button.tsx +139 -63
- package/src/components/navigation/mobile-nav-sheet-id.ts +2 -0
- package/src/components/navigation/mobile-nav-sheet.tsx +241 -0
- package/src/components/navigation/nav-item-row.tsx +129 -0
- package/src/components/navigation/nav-panel.tsx +196 -0
- package/src/components/navigation/navigation-sidebar-item.tsx +1 -2
- package/src/components/navigation/site-footer.tsx +256 -0
- package/src/components/navigation/site-header.tsx +339 -0
- package/src/components/navigation/site-nav-link.tsx +41 -0
- package/src/components/navigation/ticket-alerts-button.tsx +2 -2
- package/src/components/navigation/top-navigation.tsx +2 -2
- package/src/components/platform/ToolBadge.tsx +18 -1
- package/src/components/ui/brand-association-card.tsx +25 -3
- package/src/hooks/index.ts +1 -0
- package/src/hooks/ui/index.ts +3 -0
- package/src/hooks/ui/use-active-section.ts +44 -0
- package/src/hooks/ui/use-nav-menus.ts +200 -0
- package/src/hooks/ui/use-visitor-os.ts +33 -0
- package/src/hooks/use-location-hash.ts +34 -0
- package/src/styles/chat-animations.css +57 -2
- package/src/types/case-study.ts +16 -0
- package/src/types/navigation.ts +80 -66
- package/src/utils/index.ts +1 -0
- package/src/utils/source-icons.ts +13 -0
- package/src/utils/visitor-os.ts +84 -0
- package/dist/chunk-LMBC5FFP.js +0 -43
- package/dist/chunk-O43V3EOS.js +0 -252
- package/dist/chunk-QZVSJF2K.cjs +0 -252
- package/dist/chunk-RALRPFDW.cjs +0 -43
- package/dist/components/footer-waitlist-button.d.ts +0 -29
- package/dist/components/footer-waitlist-button.d.ts.map +0 -1
- package/dist/components/footer.d.ts +0 -47
- package/dist/components/footer.d.ts.map +0 -1
- package/dist/components/navigation/client-only-header.d.ts +0 -8
- package/dist/components/navigation/client-only-header.d.ts.map +0 -1
- package/dist/components/navigation/header-skeleton.d.ts +0 -12
- package/dist/components/navigation/header-skeleton.d.ts.map +0 -1
- package/dist/components/navigation/header.d.ts +0 -9
- package/dist/components/navigation/header.d.ts.map +0 -1
- package/dist/components/navigation/mobile-nav-panel.d.ts +0 -10
- package/dist/components/navigation/mobile-nav-panel.d.ts.map +0 -1
- package/src/components/footer-waitlist-button.tsx +0 -53
- package/src/components/footer.tsx +0 -195
- package/src/components/navigation/client-only-header.tsx +0 -22
- package/src/components/navigation/header-skeleton.tsx +0 -74
- package/src/components/navigation/header.tsx +0 -429
- package/src/components/navigation/mobile-nav-panel.tsx +0 -155
|
@@ -9,7 +9,7 @@ var _chunkMZ4KBSH7cjs = require('./chunk-MZ4KBSH7.cjs');
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkOF6GEI5Acjs = require('./chunk-OF6GEI5A.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ var _chunkABU3TGXAcjs = require('./chunk-ABU3TGXA.cjs');
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunkUVTD52MDcjs = require('./chunk-UVTD52MD.cjs');
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -27,21 +27,19 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var _chunkX72J4ACLcjs = require('./chunk-X72J4ACL.cjs');
|
|
31
30
|
|
|
31
|
+
var _chunkLM7TXMLUcjs = require('./chunk-LM7TXMLU.cjs');
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
var _chunkN3COXDBHcjs = require('./chunk-N3COXDBH.cjs');
|
|
35
34
|
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
|
|
38
|
+
var _chunkLLSUVPQCcjs = require('./chunk-LLSUVPQC.cjs');
|
|
39
39
|
|
|
40
|
-
var _chunkRKV5B7EUcjs = require('./chunk-RKV5B7EU.cjs');
|
|
41
40
|
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
var _chunkQZVSJF2Kcjs = require('./chunk-QZVSJF2K.cjs');
|
|
42
|
+
var _chunkVX4E6YSBcjs = require('./chunk-VX4E6YSB.cjs');
|
|
45
43
|
|
|
46
44
|
|
|
47
45
|
var _chunk3ATAYP36cjs = require('./chunk-3ATAYP36.cjs');
|
|
@@ -145,9 +143,9 @@ function useDeferredError(error, value, delay = 1500) {
|
|
|
145
143
|
}
|
|
146
144
|
|
|
147
145
|
// src/hooks/ui/use-drag-and-drop-enabled.ts
|
|
148
|
-
var DRAG_AND_DROP_MEDIA_QUERY = `(pointer: fine) and (hover: hover) and ${
|
|
146
|
+
var DRAG_AND_DROP_MEDIA_QUERY = `(pointer: fine) and (hover: hover) and ${_chunkLM7TXMLUcjs.breakpoints.md}`;
|
|
149
147
|
function useDragAndDropEnabled() {
|
|
150
|
-
return _nullishCoalesce(
|
|
148
|
+
return _nullishCoalesce(_chunkLM7TXMLUcjs.useMediaQuery.call(void 0, DRAG_AND_DROP_MEDIA_QUERY), () => ( false));
|
|
151
149
|
}
|
|
152
150
|
|
|
153
151
|
// src/hooks/ui/use-focus-trap.ts
|
|
@@ -483,7 +481,7 @@ function useLocalStorage(key, initialValue, options) {
|
|
|
483
481
|
});
|
|
484
482
|
const validate = _optionalChain([options, 'optionalAccess', _17 => _17.validate]);
|
|
485
483
|
const storage = _react.useMemo.call(void 0,
|
|
486
|
-
() =>
|
|
484
|
+
() => _chunkLM7TXMLUcjs.createLocalStorageAdapter.call(void 0, { key, validate, logTag: `[useLocalStorage:${key}]` }),
|
|
487
485
|
[key, validate]
|
|
488
486
|
);
|
|
489
487
|
const [storedValue, setStoredValue] = _react.useState.call(void 0, () => _nullishCoalesce(storage.load(), () => ( initialValue)));
|
|
@@ -767,7 +765,7 @@ function useSearch(config) {
|
|
|
767
765
|
searchFnRef.current = searchFn;
|
|
768
766
|
mapResultRef.current = mapResult;
|
|
769
767
|
});
|
|
770
|
-
const debouncedQuery =
|
|
768
|
+
const debouncedQuery = _chunkUVTD52MDcjs.useDebounce.call(void 0, query, debounceMs);
|
|
771
769
|
const clearResults = _react.useCallback.call(void 0, () => {
|
|
772
770
|
setResults(NO_RESULTS);
|
|
773
771
|
setError(null);
|
|
@@ -897,6 +895,217 @@ function useWindowSize() {
|
|
|
897
895
|
// src/hooks/ui/index.ts
|
|
898
896
|
var _overlays = require('@react-aria/overlays');
|
|
899
897
|
|
|
898
|
+
// src/hooks/ui/use-active-section.ts
|
|
899
|
+
|
|
900
|
+
function pathOf(href) {
|
|
901
|
+
if (!href || !href.startsWith("/") || href.startsWith("//")) return null;
|
|
902
|
+
const path = href.split(/[?#]/)[0];
|
|
903
|
+
return path.length > 1 ? path.replace(/\/+$/, "") : "/";
|
|
904
|
+
}
|
|
905
|
+
function prefixHolds(prefix, pathname) {
|
|
906
|
+
if (prefix === "/") return pathname === "/";
|
|
907
|
+
return pathname === prefix || pathname.startsWith(`${prefix}/`);
|
|
908
|
+
}
|
|
909
|
+
function resolveActiveSection(menus, pathname) {
|
|
910
|
+
const current = pathOf(_nullishCoalesce(pathname, () => ( void 0)));
|
|
911
|
+
if (!current) return null;
|
|
912
|
+
let best = null;
|
|
913
|
+
for (const menu of menus) {
|
|
914
|
+
const prefixes = _optionalChain([menu, 'access', _30 => _30.match, 'optionalAccess', _31 => _31.length]) ? menu.match : [menu.href];
|
|
915
|
+
for (const raw of prefixes) {
|
|
916
|
+
const prefix = pathOf(raw);
|
|
917
|
+
if (!prefix || !prefixHolds(prefix, current)) continue;
|
|
918
|
+
if (!best || prefix.length > best.length) best = { id: menu.id, length: prefix.length };
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
return _nullishCoalesce(_optionalChain([best, 'optionalAccess', _32 => _32.id]), () => ( null));
|
|
922
|
+
}
|
|
923
|
+
function useActiveSection(menus, pathname) {
|
|
924
|
+
return _react.useMemo.call(void 0, () => resolveActiveSection(menus, pathname), [menus, pathname]);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
// src/hooks/ui/use-nav-menus.ts
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
function useNavMenus({
|
|
936
|
+
pathname,
|
|
937
|
+
hoverOpenMs = 150,
|
|
938
|
+
hoverCloseMs = 300
|
|
939
|
+
}) {
|
|
940
|
+
const baseId = _react.useId.call(void 0, );
|
|
941
|
+
const [opened, setOpened] = _react.useState.call(void 0, null);
|
|
942
|
+
const stale = opened !== null && opened.pathname !== pathname;
|
|
943
|
+
if (stale) setOpened(null);
|
|
944
|
+
const openId = opened && !stale ? opened.id : null;
|
|
945
|
+
const triggers = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
946
|
+
const panels = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
947
|
+
const openTimer = _react.useRef.call(void 0, null);
|
|
948
|
+
const closeTimer = _react.useRef.call(void 0, null);
|
|
949
|
+
const openedByHover = _react.useRef.call(void 0, null);
|
|
950
|
+
const clearTimers = _react.useCallback.call(void 0, () => {
|
|
951
|
+
if (openTimer.current) clearTimeout(openTimer.current);
|
|
952
|
+
if (closeTimer.current) clearTimeout(closeTimer.current);
|
|
953
|
+
openTimer.current = null;
|
|
954
|
+
closeTimer.current = null;
|
|
955
|
+
}, []);
|
|
956
|
+
_react.useEffect.call(void 0, () => clearTimers, [clearTimers]);
|
|
957
|
+
const close = _react.useCallback.call(void 0, () => {
|
|
958
|
+
clearTimers();
|
|
959
|
+
setOpened(null);
|
|
960
|
+
}, [clearTimers]);
|
|
961
|
+
const cancelClose = _react.useCallback.call(void 0, () => {
|
|
962
|
+
if (closeTimer.current) clearTimeout(closeTimer.current);
|
|
963
|
+
closeTimer.current = null;
|
|
964
|
+
}, []);
|
|
965
|
+
const scheduleClose = _react.useCallback.call(void 0, () => {
|
|
966
|
+
if (openTimer.current) clearTimeout(openTimer.current);
|
|
967
|
+
openTimer.current = null;
|
|
968
|
+
cancelClose();
|
|
969
|
+
closeTimer.current = setTimeout(() => {
|
|
970
|
+
closeTimer.current = null;
|
|
971
|
+
setOpened(null);
|
|
972
|
+
}, hoverCloseMs);
|
|
973
|
+
}, [cancelClose, hoverCloseMs]);
|
|
974
|
+
_react.useEffect.call(void 0, () => {
|
|
975
|
+
if (!openId) return void 0;
|
|
976
|
+
const handleKeyDown = (event) => {
|
|
977
|
+
if (event.key !== "Escape") return;
|
|
978
|
+
const trigger = triggers.current.get(openId);
|
|
979
|
+
close();
|
|
980
|
+
_optionalChain([trigger, 'optionalAccess', _33 => _33.focus, 'call', _34 => _34({ preventScroll: true })]);
|
|
981
|
+
};
|
|
982
|
+
const handlePointerDown = (event) => {
|
|
983
|
+
const target = event.target;
|
|
984
|
+
if (!(target instanceof Node)) return;
|
|
985
|
+
for (const el of triggers.current.values()) if (el.contains(target)) return;
|
|
986
|
+
for (const el of panels.current.values()) if (el.contains(target)) return;
|
|
987
|
+
close();
|
|
988
|
+
};
|
|
989
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
990
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
991
|
+
return () => {
|
|
992
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
993
|
+
document.removeEventListener("pointerdown", handlePointerDown);
|
|
994
|
+
};
|
|
995
|
+
}, [openId, close]);
|
|
996
|
+
const getTriggerProps = _react.useCallback.call(void 0,
|
|
997
|
+
(id) => ({
|
|
998
|
+
ref: (el) => {
|
|
999
|
+
if (el) triggers.current.set(id, el);
|
|
1000
|
+
else triggers.current.delete(id);
|
|
1001
|
+
},
|
|
1002
|
+
"aria-expanded": openId === id,
|
|
1003
|
+
"aria-controls": `${baseId}-panel-${id}`,
|
|
1004
|
+
onClick: () => {
|
|
1005
|
+
clearTimers();
|
|
1006
|
+
const hovered = openedByHover.current === id;
|
|
1007
|
+
openedByHover.current = null;
|
|
1008
|
+
if (hovered) {
|
|
1009
|
+
setOpened({ id, pathname });
|
|
1010
|
+
return;
|
|
1011
|
+
}
|
|
1012
|
+
setOpened((prev) => prev && prev.id === id && prev.pathname === pathname ? null : { id, pathname });
|
|
1013
|
+
},
|
|
1014
|
+
onMouseEnter: () => {
|
|
1015
|
+
clearTimers();
|
|
1016
|
+
if (openId === id) return;
|
|
1017
|
+
if (openId !== null) {
|
|
1018
|
+
openedByHover.current = id;
|
|
1019
|
+
setOpened({ id, pathname });
|
|
1020
|
+
return;
|
|
1021
|
+
}
|
|
1022
|
+
openTimer.current = setTimeout(() => {
|
|
1023
|
+
openTimer.current = null;
|
|
1024
|
+
openedByHover.current = id;
|
|
1025
|
+
setOpened({ id, pathname });
|
|
1026
|
+
}, hoverOpenMs);
|
|
1027
|
+
},
|
|
1028
|
+
onMouseLeave: scheduleClose
|
|
1029
|
+
}),
|
|
1030
|
+
[baseId, openId, pathname, hoverOpenMs, clearTimers, scheduleClose]
|
|
1031
|
+
);
|
|
1032
|
+
const getPanelProps = _react.useCallback.call(void 0,
|
|
1033
|
+
(id) => ({
|
|
1034
|
+
ref: (el) => {
|
|
1035
|
+
if (el) panels.current.set(id, el);
|
|
1036
|
+
else panels.current.delete(id);
|
|
1037
|
+
},
|
|
1038
|
+
id: `${baseId}-panel-${id}`,
|
|
1039
|
+
inert: openId !== id,
|
|
1040
|
+
"data-state": openId === id ? "open" : "closed",
|
|
1041
|
+
onMouseEnter: cancelClose,
|
|
1042
|
+
onMouseLeave: scheduleClose
|
|
1043
|
+
}),
|
|
1044
|
+
[baseId, openId, cancelClose, scheduleClose]
|
|
1045
|
+
);
|
|
1046
|
+
return { openId, close, getTriggerProps, getPanelProps };
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
// src/hooks/ui/use-visitor-os.ts
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
// src/utils/visitor-os.ts
|
|
1053
|
+
var DESKTOP_OSES = ["mac", "windows", "linux"];
|
|
1054
|
+
var HINT_PLATFORMS = {
|
|
1055
|
+
macos: "mac",
|
|
1056
|
+
windows: "windows",
|
|
1057
|
+
linux: "linux",
|
|
1058
|
+
"chrome os": "linux",
|
|
1059
|
+
"chromium os": "linux",
|
|
1060
|
+
android: "android",
|
|
1061
|
+
ios: "ios"
|
|
1062
|
+
};
|
|
1063
|
+
function detectVisitorOs(userAgent, hints = {}) {
|
|
1064
|
+
const touchMac = (os) => os === "mac" && (_nullishCoalesce(hints.maxTouchPoints, () => ( 0))) > 1 ? "ios" : os;
|
|
1065
|
+
const hinted = HINT_PLATFORMS[(_nullishCoalesce(hints.platform, () => ( ""))).replace(/"/g, "").trim().toLowerCase()];
|
|
1066
|
+
if (hinted) return touchMac(hinted);
|
|
1067
|
+
const ua = _nullishCoalesce(userAgent, () => ( ""));
|
|
1068
|
+
if (!ua) return null;
|
|
1069
|
+
if (/iPhone|iPad|iPod/i.test(ua)) return "ios";
|
|
1070
|
+
if (/Android/i.test(ua)) return "android";
|
|
1071
|
+
if (/Windows NT|Win64|Win32/i.test(ua)) return "windows";
|
|
1072
|
+
if (/Macintosh|Mac OS X/i.test(ua)) return touchMac("mac");
|
|
1073
|
+
if (/Linux|X11|CrOS/i.test(ua)) return "linux";
|
|
1074
|
+
return null;
|
|
1075
|
+
}
|
|
1076
|
+
function desktopOsOf(os) {
|
|
1077
|
+
return os !== null && DESKTOP_OSES.includes(os) ? os : null;
|
|
1078
|
+
}
|
|
1079
|
+
function detectDesktopOs(userAgent, hints) {
|
|
1080
|
+
return desktopOsOf(detectVisitorOs(userAgent, hints));
|
|
1081
|
+
}
|
|
1082
|
+
function usesCommandKey(os) {
|
|
1083
|
+
return os === "mac" || os === "ios";
|
|
1084
|
+
}
|
|
1085
|
+
function shortcutLabel(os, key) {
|
|
1086
|
+
return usesCommandKey(os) ? `\u2318${key}` : `Ctrl ${key}`;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
// src/hooks/ui/use-visitor-os.ts
|
|
1090
|
+
var UNKNOWN = { known: false, os: null };
|
|
1091
|
+
var KNOWN = /* @__PURE__ */ new Map();
|
|
1092
|
+
var subscribe2 = () => () => {
|
|
1093
|
+
};
|
|
1094
|
+
var getServerSnapshot = () => UNKNOWN;
|
|
1095
|
+
function getSnapshot() {
|
|
1096
|
+
const stated = _optionalChain([navigator, 'access', _35 => _35.userAgentData, 'optionalAccess', _36 => _36.platform]);
|
|
1097
|
+
const os = detectVisitorOs(navigator.userAgent, { platform: stated, maxTouchPoints: navigator.maxTouchPoints });
|
|
1098
|
+
let state = KNOWN.get(os);
|
|
1099
|
+
if (!state) {
|
|
1100
|
+
state = { known: true, os };
|
|
1101
|
+
KNOWN.set(os, state);
|
|
1102
|
+
}
|
|
1103
|
+
return state;
|
|
1104
|
+
}
|
|
1105
|
+
function useVisitorOs() {
|
|
1106
|
+
return _react.useSyncExternalStore.call(void 0, subscribe2, getSnapshot, getServerSnapshot);
|
|
1107
|
+
}
|
|
1108
|
+
|
|
900
1109
|
// src/hooks/platform/use-platform-config.ts
|
|
901
1110
|
|
|
902
1111
|
|
|
@@ -904,11 +1113,11 @@ var _overlays = require('@react-aria/overlays');
|
|
|
904
1113
|
var _lucidereact = require('lucide-react');
|
|
905
1114
|
var _jsxruntime = require('react/jsx-runtime');
|
|
906
1115
|
function renderPlatformIcon(platformName, className) {
|
|
907
|
-
const tinted = _chunk3ATAYP36cjs.cn.call(void 0, className,
|
|
1116
|
+
const tinted = _chunk3ATAYP36cjs.cn.call(void 0, className, _chunkLM7TXMLUcjs.getPlatformBrandClasses.call(void 0, platformName).accentText);
|
|
908
1117
|
switch (platformName) {
|
|
909
1118
|
case "openframe":
|
|
910
1119
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
911
|
-
|
|
1120
|
+
_chunkLLSUVPQCcjs.OpenFrameLogo,
|
|
912
1121
|
{
|
|
913
1122
|
className: tinted,
|
|
914
1123
|
lowerPathColor: "currentColor",
|
|
@@ -917,7 +1126,7 @@ function renderPlatformIcon(platformName, className) {
|
|
|
917
1126
|
);
|
|
918
1127
|
case "openmsp":
|
|
919
1128
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
920
|
-
|
|
1129
|
+
_chunkLLSUVPQCcjs.OpenmspLogo,
|
|
921
1130
|
{
|
|
922
1131
|
className: tinted,
|
|
923
1132
|
backBubbleColor: "currentColor",
|
|
@@ -926,13 +1135,13 @@ function renderPlatformIcon(platformName, className) {
|
|
|
926
1135
|
}
|
|
927
1136
|
);
|
|
928
1137
|
case "tmcg":
|
|
929
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1138
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.MiamiCyberGangLogoFaceOnly, { className });
|
|
930
1139
|
case "mlg":
|
|
931
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1140
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.MlgLogo, { className: tinted, size: 20 });
|
|
932
1141
|
case "universal":
|
|
933
1142
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className: tinted });
|
|
934
1143
|
default:
|
|
935
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1144
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.FlamingoLogo, { className: tinted, fill: "currentColor" });
|
|
936
1145
|
}
|
|
937
1146
|
}
|
|
938
1147
|
var platformIcons = {
|
|
@@ -972,7 +1181,7 @@ function getPlatformIconComponent(platformName, className = "h-6 w-6") {
|
|
|
972
1181
|
return renderPlatformIcon(platformName, className);
|
|
973
1182
|
}
|
|
974
1183
|
function getPlatformColorClass(platformName) {
|
|
975
|
-
return
|
|
1184
|
+
return _chunkLM7TXMLUcjs.getPlatformBrandClasses.call(void 0, platformName).accentBg;
|
|
976
1185
|
}
|
|
977
1186
|
|
|
978
1187
|
// src/hooks/platform/use-platform-config.ts
|
|
@@ -1136,7 +1345,7 @@ function ToastHeader({
|
|
|
1136
1345
|
"aria-label": "Close",
|
|
1137
1346
|
onClick: () => _sonner.toast.dismiss(id),
|
|
1138
1347
|
className: "absolute right-[7px] top-[7px] flex size-4 items-center justify-center text-ods-text-secondary transition-colors hover:text-ods-text-primary",
|
|
1139
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1348
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.XmarkIcon, { size: 16 })
|
|
1140
1349
|
}
|
|
1141
1350
|
) : null,
|
|
1142
1351
|
showProgress && duration !== Infinity && duration > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1200,11 +1409,11 @@ function CommandApprovalToast({
|
|
|
1200
1409
|
}) {
|
|
1201
1410
|
const [expanded, setExpanded] = _react.useState.call(void 0, defaultExpanded);
|
|
1202
1411
|
const handleApprove = () => {
|
|
1203
|
-
_optionalChain([onApprove, 'optionalCall',
|
|
1412
|
+
_optionalChain([onApprove, 'optionalCall', _37 => _37()]);
|
|
1204
1413
|
_sonner.toast.dismiss(id);
|
|
1205
1414
|
};
|
|
1206
1415
|
const handleReject = () => {
|
|
1207
|
-
_optionalChain([onReject, 'optionalCall',
|
|
1416
|
+
_optionalChain([onReject, 'optionalCall', _38 => _38()]);
|
|
1208
1417
|
_sonner.toast.dismiss(id);
|
|
1209
1418
|
};
|
|
1210
1419
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -1238,7 +1447,7 @@ function CommandApprovalToast({
|
|
|
1238
1447
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden", children: [
|
|
1239
1448
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-11 w-full items-center gap-2 border-b border-ods-border bg-ods-card px-3 py-2", children: [
|
|
1240
1449
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 truncate text-ods-text-primary text-h6", title: command, children: command }),
|
|
1241
|
-
toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1450
|
+
toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUVTD52MDcjs.ToolIcon, { toolType, size: 16 }) : null
|
|
1242
1451
|
] }),
|
|
1243
1452
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2 bg-ods-bg p-3", children: [
|
|
1244
1453
|
approvalDescription ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: approvalDescription }) : null,
|
|
@@ -1277,7 +1486,7 @@ function CommandApprovalToast({
|
|
|
1277
1486
|
"aria-expanded": false,
|
|
1278
1487
|
children: [
|
|
1279
1488
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex-1", children: "Show Command" }),
|
|
1280
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1489
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Chevron02DownIcon, { size: 16 })
|
|
1281
1490
|
]
|
|
1282
1491
|
}
|
|
1283
1492
|
)
|
|
@@ -1411,7 +1620,7 @@ function useContactSubmission(options = {}) {
|
|
|
1411
1620
|
if (isSubmitting) return;
|
|
1412
1621
|
setIsSubmitting(true);
|
|
1413
1622
|
try {
|
|
1414
|
-
const response = await
|
|
1623
|
+
const response = await _chunkOF6GEI5Acjs.contentFetch.call(void 0, contactUrl, {
|
|
1415
1624
|
method: "POST",
|
|
1416
1625
|
headers: { "Content-Type": "application/json" },
|
|
1417
1626
|
body: JSON.stringify({
|
|
@@ -1421,7 +1630,7 @@ function useContactSubmission(options = {}) {
|
|
|
1421
1630
|
});
|
|
1422
1631
|
if (!response.ok) {
|
|
1423
1632
|
const failure = await response.json().catch(() => null);
|
|
1424
|
-
throw new Error(
|
|
1633
|
+
throw new Error(_chunkUVTD52MDcjs.apiErrorMessage.call(void 0, failure, "Failed to submit contact form"));
|
|
1425
1634
|
}
|
|
1426
1635
|
setIsSuccess(true);
|
|
1427
1636
|
const message = successToastMessage ? `Thank you! Your message has been sent. ${successToastMessage}` : "Thank you! Your message has been sent successfully.";
|
|
@@ -1740,12 +1949,12 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
|
|
|
1740
1949
|
};
|
|
1741
1950
|
}, []);
|
|
1742
1951
|
const active = settled && settled.key === cacheKey ? settled : null;
|
|
1743
|
-
const cachedBlobUrl = cacheKey === null ? void 0 : _optionalChain([imageCache, 'access',
|
|
1744
|
-
const resolvedBlobUrl = _nullishCoalesce(_nullishCoalesce(_optionalChain([active, 'optionalAccess',
|
|
1952
|
+
const cachedBlobUrl = cacheKey === null ? void 0 : _optionalChain([imageCache, 'access', _39 => _39.get, 'call', _40 => _40(cacheKey), 'optionalAccess', _41 => _41.blobUrl]);
|
|
1953
|
+
const resolvedBlobUrl = _nullishCoalesce(_nullishCoalesce(_optionalChain([active, 'optionalAccess', _42 => _42.blobUrl]), () => ( cachedBlobUrl)), () => ( _optionalChain([settled, 'optionalAccess', _43 => _43.blobUrl])));
|
|
1745
1954
|
return {
|
|
1746
1955
|
imageUrl: cacheKey === null ? void 0 : resolvedBlobUrl,
|
|
1747
1956
|
isLoading: cacheKey !== null && active === null && cachedBlobUrl === void 0,
|
|
1748
|
-
error: _nullishCoalesce((cacheKey === null ? void 0 : _optionalChain([active, 'optionalAccess',
|
|
1957
|
+
error: _nullishCoalesce((cacheKey === null ? void 0 : _optionalChain([active, 'optionalAccess', _44 => _44.error])), () => ( null))
|
|
1749
1958
|
};
|
|
1750
1959
|
}
|
|
1751
1960
|
|
|
@@ -2106,7 +2315,7 @@ function variablesToUrlParams(variables, schema) {
|
|
|
2106
2315
|
const params = new URLSearchParams();
|
|
2107
2316
|
for (const [paramName, paramConfig] of Object.entries(schema)) {
|
|
2108
2317
|
const value = getNestedValue(variables, paramConfig.graphqlPath);
|
|
2109
|
-
if (!
|
|
2318
|
+
if (!_chunkOF6GEI5Acjs.shouldIncludeInUrl.call(void 0, value, paramConfig)) {
|
|
2110
2319
|
continue;
|
|
2111
2320
|
}
|
|
2112
2321
|
if (Array.isArray(value)) {
|
|
@@ -2135,7 +2344,7 @@ function coerceScalar(value, type) {
|
|
|
2135
2344
|
return isNaN(num) ? null : num;
|
|
2136
2345
|
}
|
|
2137
2346
|
case "int":
|
|
2138
|
-
return
|
|
2347
|
+
return _chunkOF6GEI5Acjs.positiveInt.call(void 0, value, null);
|
|
2139
2348
|
case "boolean":
|
|
2140
2349
|
return value === "true" || value === "1";
|
|
2141
2350
|
case "string":
|
|
@@ -2441,7 +2650,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2441
2650
|
return flattened;
|
|
2442
2651
|
}, [stableSchema]);
|
|
2443
2652
|
const rawParams = _react.useMemo.call(void 0, () => {
|
|
2444
|
-
const result =
|
|
2653
|
+
const result = _chunkOF6GEI5Acjs.parseSchemaParams.call(void 0, stableSchema, new URLSearchParams(searchString), {
|
|
2445
2654
|
absent: options.absent === "null" ? "null" : "undefined"
|
|
2446
2655
|
});
|
|
2447
2656
|
if (debug) {
|
|
@@ -2457,14 +2666,14 @@ function useApiParams(schema, options = {}) {
|
|
|
2457
2666
|
}
|
|
2458
2667
|
const params = stableParams;
|
|
2459
2668
|
const addParamToSearchParams = _react.useCallback.call(void 0, (searchParams, key, value) => {
|
|
2460
|
-
for (const [k, v] of
|
|
2669
|
+
for (const [k, v] of _chunkOF6GEI5Acjs.createSearchParams.call(void 0, { [key]: value })) searchParams.append(k, v);
|
|
2461
2670
|
}, []);
|
|
2462
2671
|
const urlSearchParams = _react.useMemo.call(void 0, () => {
|
|
2463
2672
|
const newParams = new URLSearchParams();
|
|
2464
2673
|
for (const key of Object.keys(stableSchema)) {
|
|
2465
2674
|
const value = params[key];
|
|
2466
2675
|
const paramConfig = flattenedSchema[key];
|
|
2467
|
-
if (!
|
|
2676
|
+
if (!_chunkOF6GEI5Acjs.shouldIncludeInUrl.call(void 0, value, paramConfig)) {
|
|
2468
2677
|
continue;
|
|
2469
2678
|
}
|
|
2470
2679
|
addParamToSearchParams(newParams, key, value);
|
|
@@ -2521,7 +2730,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2521
2730
|
return;
|
|
2522
2731
|
}
|
|
2523
2732
|
const newParams = new URLSearchParams();
|
|
2524
|
-
if (
|
|
2733
|
+
if (_chunkOF6GEI5Acjs.shouldIncludeInUrl.call(void 0, value, config)) {
|
|
2525
2734
|
addParamToSearchParams(newParams, key, value);
|
|
2526
2735
|
updateUrl(newParams);
|
|
2527
2736
|
} else {
|
|
@@ -2540,7 +2749,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2540
2749
|
console.warn(`[useApiParams] Unknown parameter: ${key}`);
|
|
2541
2750
|
continue;
|
|
2542
2751
|
}
|
|
2543
|
-
if (
|
|
2752
|
+
if (_chunkOF6GEI5Acjs.shouldIncludeInUrl.call(void 0, value, flattenedSchema[key])) {
|
|
2544
2753
|
addParamToSearchParams(newParams, key, value);
|
|
2545
2754
|
} else {
|
|
2546
2755
|
keysToRemove.push(key);
|
|
@@ -2565,7 +2774,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2565
2774
|
}, [router, debug]);
|
|
2566
2775
|
const pendingParams = _react.useMemo.call(void 0, () => {
|
|
2567
2776
|
if (pendingTail === void 0 || pendingTail === searchString) return params;
|
|
2568
|
-
return
|
|
2777
|
+
return _chunkOF6GEI5Acjs.parseSchemaParams.call(void 0, stableSchema, new URLSearchParams(pendingTail), {
|
|
2569
2778
|
absent: options.absent === "null" ? "null" : "undefined"
|
|
2570
2779
|
});
|
|
2571
2780
|
}, [pendingTail, searchString, params, stableSchema, options.absent]);
|
|
@@ -2736,7 +2945,7 @@ function useScenarioPlayer({
|
|
|
2736
2945
|
initialScenario = 0,
|
|
2737
2946
|
startAtEnd = false
|
|
2738
2947
|
}) {
|
|
2739
|
-
const auto =
|
|
2948
|
+
const auto = _chunkUVTD52MDcjs.useAutoplay.call(void 0, enabled);
|
|
2740
2949
|
const { reducedMotion, paused, setPaused } = auto;
|
|
2741
2950
|
const [scenario, setScenario] = _react.useState.call(void 0, initialScenario);
|
|
2742
2951
|
const [rawStep, setRawStep] = _react.useState.call(void 0, startAtEnd ? Number.MAX_SAFE_INTEGER : 0);
|
|
@@ -2798,7 +3007,7 @@ async function validateAccessCode(email, code, endpoints) {
|
|
|
2798
3007
|
});
|
|
2799
3008
|
if (!response.ok) {
|
|
2800
3009
|
const failure = await response.json().catch(() => null);
|
|
2801
|
-
throw new Error(
|
|
3010
|
+
throw new Error(_chunkUVTD52MDcjs.apiErrorMessage.call(void 0, failure, "Validation request failed"));
|
|
2802
3011
|
}
|
|
2803
3012
|
return await response.json();
|
|
2804
3013
|
} catch (error) {
|
|
@@ -2819,7 +3028,7 @@ async function consumeAccessCode(email, code, endpoints) {
|
|
|
2819
3028
|
});
|
|
2820
3029
|
if (!response.ok) {
|
|
2821
3030
|
const failure = await response.json().catch(() => null);
|
|
2822
|
-
throw new Error(
|
|
3031
|
+
throw new Error(_chunkUVTD52MDcjs.apiErrorMessage.call(void 0, failure, "Consumption request failed"));
|
|
2823
3032
|
}
|
|
2824
3033
|
return await response.json();
|
|
2825
3034
|
} catch (error) {
|
|
@@ -2911,9 +3120,9 @@ function toFigmaEmbedUrl(url, opts) {
|
|
|
2911
3120
|
if (match) {
|
|
2912
3121
|
const [, urlType, fileKey, titleSlug, queryString] = match;
|
|
2913
3122
|
const isSlides = urlType === "slides" || urlType === "deck";
|
|
2914
|
-
const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess',
|
|
3123
|
+
const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess', _45 => _45.slidesView]) === "browse" ? "slides" : "deck" : "design";
|
|
2915
3124
|
const pathSuffix = titleSlug ? `/${titleSlug}` : "";
|
|
2916
|
-
const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess',
|
|
3125
|
+
const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess', _46 => _46.replace, 'call', _47 => _47(/^\?/, "")]) || "");
|
|
2917
3126
|
if (!params.has("embed-host")) {
|
|
2918
3127
|
params.set("embed-host", "flamingo");
|
|
2919
3128
|
}
|
|
@@ -2940,11 +3149,11 @@ function toClaudeMirrorPath(url, storageViewBaseUrl) {
|
|
|
2940
3149
|
try {
|
|
2941
3150
|
const u = new URL(url);
|
|
2942
3151
|
const host = u.hostname.toLowerCase();
|
|
2943
|
-
const id = host === "claude.ai" && _optionalChain([/^\/(?:code\/artifact|public\/artifacts)\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[/?#]|$)/i, 'access',
|
|
3152
|
+
const id = host === "claude.ai" && _optionalChain([/^\/(?:code\/artifact|public\/artifacts)\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[/?#]|$)/i, 'access', _48 => _48.exec, 'call', _49 => _49(
|
|
2944
3153
|
u.pathname
|
|
2945
|
-
), 'optionalAccess',
|
|
3154
|
+
), 'optionalAccess', _50 => _50[1]]) || host === "claude.site" && _optionalChain([/^\/artifacts\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[/?#]|$)/i, 'access', _51 => _51.exec, 'call', _52 => _52(
|
|
2946
3155
|
u.pathname
|
|
2947
|
-
), 'optionalAccess',
|
|
3156
|
+
), 'optionalAccess', _53 => _53[1]]) || null;
|
|
2948
3157
|
return id ? `${storageViewBaseUrl.replace(/\/$/, "")}/design-briefs/${id.toLowerCase()}.html` : null;
|
|
2949
3158
|
} catch (e6) {
|
|
2950
3159
|
return null;
|
|
@@ -2955,7 +3164,7 @@ function toClaudeEmbedUrl(url) {
|
|
|
2955
3164
|
try {
|
|
2956
3165
|
const u = new URL(url);
|
|
2957
3166
|
const host = u.hostname.toLowerCase();
|
|
2958
|
-
const publicId = host === "claude.ai" && _optionalChain([/^\/public\/artifacts\/([\w-]+)(?:\/embed)?\/?$/, 'access',
|
|
3167
|
+
const publicId = host === "claude.ai" && _optionalChain([/^\/public\/artifacts\/([\w-]+)(?:\/embed)?\/?$/, 'access', _54 => _54.exec, 'call', _55 => _55(u.pathname), 'optionalAccess', _56 => _56[1]]) || host === "claude.site" && _optionalChain([/^\/artifacts\/([\w-]+)(?:\/embed)?\/?$/, 'access', _57 => _57.exec, 'call', _58 => _58(u.pathname), 'optionalAccess', _59 => _59[1]]) || null;
|
|
2959
3168
|
return publicId ? `https://claude.ai/public/artifacts/${publicId}/embed` : null;
|
|
2960
3169
|
} catch (e7) {
|
|
2961
3170
|
return null;
|
|
@@ -2968,14 +3177,14 @@ async function revalidateMirror(mirrorPath) {
|
|
|
2968
3177
|
const res = await fetch(`${mirrorPath}?revalidate=1`);
|
|
2969
3178
|
if (!res.ok) return null;
|
|
2970
3179
|
const body = await res.json();
|
|
2971
|
-
return _optionalChain([body, 'optionalAccess',
|
|
3180
|
+
return _optionalChain([body, 'optionalAccess', _60 => _60.updated]) ? String(_nullishCoalesce(body.version, () => ( Date.now()))) : null;
|
|
2972
3181
|
} catch (e8) {
|
|
2973
3182
|
return null;
|
|
2974
3183
|
}
|
|
2975
3184
|
}
|
|
2976
3185
|
function useClaudeMirrorSrc(url) {
|
|
2977
3186
|
const endpoints = _chunkMZ4KBSH7cjs.useEndpointsRuntime.call(void 0, );
|
|
2978
|
-
const mirrorPath = toClaudeMirrorPath(url, _optionalChain([endpoints, 'optionalAccess',
|
|
3187
|
+
const mirrorPath = toClaudeMirrorPath(url, _optionalChain([endpoints, 'optionalAccess', _61 => _61.storageViewBaseUrl]));
|
|
2979
3188
|
const [resolved, setResolved] = _react.useState.call(void 0, null);
|
|
2980
3189
|
const state = resolved && resolved.key === mirrorPath ? resolved.value : { src: null, status: mirrorPath ? "probing" : "absent" };
|
|
2981
3190
|
_react.useEffect.call(void 0, () => {
|
|
@@ -3004,11 +3213,32 @@ function useClaudeMirrorSrc(url) {
|
|
|
3004
3213
|
return state;
|
|
3005
3214
|
}
|
|
3006
3215
|
|
|
3216
|
+
// src/hooks/use-location-hash.ts
|
|
3217
|
+
|
|
3218
|
+
var HASH_EVENTS = ["hashchange", "popstate"];
|
|
3219
|
+
function subscribe3(onChange) {
|
|
3220
|
+
for (const event of HASH_EVENTS) window.addEventListener(event, onChange);
|
|
3221
|
+
return () => {
|
|
3222
|
+
for (const event of HASH_EVENTS) window.removeEventListener(event, onChange);
|
|
3223
|
+
};
|
|
3224
|
+
}
|
|
3225
|
+
function readHash() {
|
|
3226
|
+
const raw = _chunkUVTD52MDcjs.normalizeHashFragment.call(void 0, window.location.hash).replace(/^#/, "");
|
|
3227
|
+
try {
|
|
3228
|
+
return decodeURIComponent(raw);
|
|
3229
|
+
} catch (e9) {
|
|
3230
|
+
return raw;
|
|
3231
|
+
}
|
|
3232
|
+
}
|
|
3233
|
+
function useLocationHash() {
|
|
3234
|
+
return _react.useSyncExternalStore.call(void 0, subscribe3, readHash, () => "");
|
|
3235
|
+
}
|
|
3236
|
+
|
|
3007
3237
|
// src/hooks/use-scroll-to-hash.ts
|
|
3008
3238
|
|
|
3009
3239
|
var MAX_POLL_FRAMES = 60;
|
|
3010
3240
|
function useScrollToHash(readyDep = true, options) {
|
|
3011
|
-
const headerOffset = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
3241
|
+
const headerOffset = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _62 => _62.headerOffset]), () => ( 0));
|
|
3012
3242
|
_react.useEffect.call(void 0, () => {
|
|
3013
3243
|
if (typeof window === "undefined") return void 0;
|
|
3014
3244
|
if (readyDep === null || readyDep === false) return void 0;
|
|
@@ -3020,15 +3250,15 @@ function useScrollToHash(readyDep = true, options) {
|
|
|
3020
3250
|
}
|
|
3021
3251
|
};
|
|
3022
3252
|
const tryScrollToHash = () => {
|
|
3023
|
-
const hash =
|
|
3253
|
+
const hash = _chunkUVTD52MDcjs.normalizeHashFragment.call(void 0, window.location.hash).slice(1);
|
|
3024
3254
|
if (!hash) return;
|
|
3025
3255
|
cancelPoll();
|
|
3026
3256
|
let frames = 0;
|
|
3027
3257
|
const tick = () => {
|
|
3028
|
-
const el =
|
|
3258
|
+
const el = _chunkUVTD52MDcjs.getHashTargetElement.call(void 0, hash);
|
|
3029
3259
|
if (el) {
|
|
3030
3260
|
rafId = null;
|
|
3031
|
-
|
|
3261
|
+
_chunkUVTD52MDcjs.scrollElementIntoView.call(void 0, el, { headerOffset });
|
|
3032
3262
|
return;
|
|
3033
3263
|
}
|
|
3034
3264
|
if (frames++ < MAX_POLL_FRAMES) {
|
|
@@ -3107,7 +3337,7 @@ function evaluateHumanitySignals(body, opts) {
|
|
|
3107
3337
|
if (elapsedMs !== null && elapsedMs < opts.minFillMs) return { ...diagnostics, ok: false, reason: "too_fast" };
|
|
3108
3338
|
return sourceField !== null ? { ...diagnostics, ok: true, note: "honeypot_autofill", sourceField } : { ...diagnostics, ok: true };
|
|
3109
3339
|
}
|
|
3110
|
-
var splitCsvEnv = (s) => _nullishCoalesce(_optionalChain([s, 'optionalAccess',
|
|
3340
|
+
var splitCsvEnv = (s) => _nullishCoalesce(_optionalChain([s, 'optionalAccess', _63 => _63.split, 'call', _64 => _64(","), 'access', _65 => _65.map, 'call', _66 => _66((t) => t.trim()), 'access', _67 => _67.filter, 'call', _68 => _68(Boolean)]), () => ( []));
|
|
3111
3341
|
|
|
3112
3342
|
// src/hooks/use-humanity-signals.ts
|
|
3113
3343
|
function useHumanitySignals() {
|
|
@@ -3116,7 +3346,7 @@ function useHumanitySignals() {
|
|
|
3116
3346
|
const startedAtRef = _react.useRef.call(void 0, mountedAt);
|
|
3117
3347
|
const getSignals = _react.useCallback.call(void 0,
|
|
3118
3348
|
() => ({
|
|
3119
|
-
[HONEYPOT_FIELD]: _nullishCoalesce(_optionalChain([ref, 'access',
|
|
3349
|
+
[HONEYPOT_FIELD]: _nullishCoalesce(_optionalChain([ref, 'access', _69 => _69.current, 'optionalAccess', _70 => _70.value]), () => ( "")),
|
|
3120
3350
|
[ELAPSED_MS_FIELD]: typeof performance !== "undefined" ? Math.round(performance.now() - startedAtRef.current) : 0
|
|
3121
3351
|
}),
|
|
3122
3352
|
[]
|
|
@@ -3276,8 +3506,8 @@ function captureFormRescueEvent(event, properties) {
|
|
|
3276
3506
|
try {
|
|
3277
3507
|
if (typeof window === "undefined") return;
|
|
3278
3508
|
const ph = window.posthog;
|
|
3279
|
-
if (typeof _optionalChain([ph, 'optionalAccess',
|
|
3280
|
-
} catch (
|
|
3509
|
+
if (typeof _optionalChain([ph, 'optionalAccess', _71 => _71.capture]) === "function") ph.capture(event, properties);
|
|
3510
|
+
} catch (e10) {
|
|
3281
3511
|
}
|
|
3282
3512
|
}
|
|
3283
3513
|
|
|
@@ -3302,20 +3532,20 @@ function readLocalDraft(formId) {
|
|
|
3302
3532
|
if (!isFormAttemptId(parsed.attemptId) || typeof parsed.savedAt !== "number") return null;
|
|
3303
3533
|
if (Date.now() - parsed.savedAt > LOCAL_DRAFT_TTL_MS) return null;
|
|
3304
3534
|
return { attemptId: parsed.attemptId, values: sanitizeRescueValues(parsed.values), savedAt: parsed.savedAt };
|
|
3305
|
-
} catch (
|
|
3535
|
+
} catch (e11) {
|
|
3306
3536
|
return null;
|
|
3307
3537
|
}
|
|
3308
3538
|
}
|
|
3309
3539
|
function writeLocalDraft(formId, draft) {
|
|
3310
3540
|
try {
|
|
3311
3541
|
window.localStorage.setItem(STORAGE_PREFIX + formId, JSON.stringify(draft));
|
|
3312
|
-
} catch (
|
|
3542
|
+
} catch (e12) {
|
|
3313
3543
|
}
|
|
3314
3544
|
}
|
|
3315
3545
|
function clearLocalDraft(formId) {
|
|
3316
3546
|
try {
|
|
3317
3547
|
window.localStorage.removeItem(STORAGE_PREFIX + formId);
|
|
3318
|
-
} catch (
|
|
3548
|
+
} catch (e13) {
|
|
3319
3549
|
}
|
|
3320
3550
|
}
|
|
3321
3551
|
function completeFormRescue(form, attemptId) {
|
|
@@ -3323,7 +3553,7 @@ function completeFormRescue(form, attemptId) {
|
|
|
3323
3553
|
const local = readLocalDraft(form.id);
|
|
3324
3554
|
captureFormRescueEvent(FORM_RESCUE_EVENTS.submitted, {
|
|
3325
3555
|
form_id: form.id,
|
|
3326
|
-
attempt_id: isFormAttemptId(attemptId) ? attemptId : _nullishCoalesce(_optionalChain([local, 'optionalAccess',
|
|
3556
|
+
attempt_id: isFormAttemptId(attemptId) ? attemptId : _nullishCoalesce(_optionalChain([local, 'optionalAccess', _72 => _72.attemptId]), () => ( null))
|
|
3327
3557
|
});
|
|
3328
3558
|
clearLocalDraft(form.id);
|
|
3329
3559
|
}
|
|
@@ -3336,13 +3566,13 @@ function readUtm() {
|
|
|
3336
3566
|
if (value) utm[key] = value.slice(0, 200);
|
|
3337
3567
|
}
|
|
3338
3568
|
return Object.keys(utm).length ? utm : void 0;
|
|
3339
|
-
} catch (
|
|
3569
|
+
} catch (e14) {
|
|
3340
3570
|
return void 0;
|
|
3341
3571
|
}
|
|
3342
3572
|
}
|
|
3343
3573
|
function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
|
|
3344
|
-
const draftsUrl = _optionalChain([_chunkMZ4KBSH7cjs.useEndpointsRuntime.call(void 0, ), 'optionalAccess',
|
|
3345
|
-
const formId = _nullishCoalesce(_optionalChain([form, 'optionalAccess',
|
|
3574
|
+
const draftsUrl = _optionalChain([_chunkMZ4KBSH7cjs.useEndpointsRuntime.call(void 0, ), 'optionalAccess', _73 => _73.formDraftsUrl]);
|
|
3575
|
+
const formId = _nullishCoalesce(_optionalChain([form, 'optionalAccess', _74 => _74.id]), () => ( null));
|
|
3346
3576
|
const attemptIdRef = _react.useRef.call(void 0, null);
|
|
3347
3577
|
const resumeTokenRef = _react.useRef.call(void 0, null);
|
|
3348
3578
|
const latestRef = _react.useRef.call(void 0, null);
|
|
@@ -3376,13 +3606,13 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
|
|
|
3376
3606
|
...resumeTokenRef.current ? { resume_token: resumeTokenRef.current } : {}
|
|
3377
3607
|
};
|
|
3378
3608
|
try {
|
|
3379
|
-
void
|
|
3609
|
+
void _chunkOF6GEI5Acjs.contentFetch.call(void 0, draftsUrl, {
|
|
3380
3610
|
method: "POST",
|
|
3381
3611
|
headers: { "Content-Type": "application/json" },
|
|
3382
|
-
body: JSON.stringify({ ...body, ..._nullishCoalesce(_optionalChain([getSignalsRef, 'access',
|
|
3612
|
+
body: JSON.stringify({ ...body, ..._nullishCoalesce(_optionalChain([getSignalsRef, 'access', _75 => _75.current, 'optionalCall', _76 => _76()]), () => ( {})) }),
|
|
3383
3613
|
keepalive
|
|
3384
3614
|
}).catch(() => void 0);
|
|
3385
|
-
} catch (
|
|
3615
|
+
} catch (e15) {
|
|
3386
3616
|
}
|
|
3387
3617
|
captureFormRescueEvent(FORM_RESCUE_EVENTS.progress, {
|
|
3388
3618
|
form_id: formId,
|
|
@@ -3402,17 +3632,17 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
|
|
|
3402
3632
|
const local = readLocalDraft(formId);
|
|
3403
3633
|
if (!local) return;
|
|
3404
3634
|
attemptIdRef.current = local.attemptId;
|
|
3405
|
-
if (Object.keys(local.values).length) _optionalChain([onRestoreRef, 'access',
|
|
3635
|
+
if (Object.keys(local.values).length) _optionalChain([onRestoreRef, 'access', _77 => _77.current, 'optionalCall', _78 => _78(local.values)]);
|
|
3406
3636
|
};
|
|
3407
3637
|
if (isResumeToken(token) && draftsUrl) {
|
|
3408
|
-
|
|
3638
|
+
_chunkOF6GEI5Acjs.contentFetch.call(void 0, `${draftsUrl}/resume/${encodeURIComponent(token)}`).then(async (res) => res.ok ? await res.json() : null).then((data) => {
|
|
3409
3639
|
if (cancelled) return;
|
|
3410
3640
|
if (!data || data.form_id !== formId) {
|
|
3411
3641
|
restoreLocal();
|
|
3412
3642
|
return;
|
|
3413
3643
|
}
|
|
3414
3644
|
resumeTokenRef.current = token;
|
|
3415
|
-
_optionalChain([onRestoreRef, 'access',
|
|
3645
|
+
_optionalChain([onRestoreRef, 'access', _79 => _79.current, 'optionalCall', _80 => _80(sanitizeRescueValues(data.values))]);
|
|
3416
3646
|
captureFormRescueEvent(FORM_RESCUE_EVENTS.resumed, { form_id: formId, attempt_id: attemptId() });
|
|
3417
3647
|
}).catch(() => {
|
|
3418
3648
|
if (!cancelled) restoreLocal();
|
|
@@ -3436,8 +3666,8 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
|
|
|
3436
3666
|
captureFormRescueEvent(FORM_RESCUE_EVENTS.abandoned, {
|
|
3437
3667
|
form_id: formId,
|
|
3438
3668
|
attempt_id: attemptId(),
|
|
3439
|
-
last_field: _nullishCoalesce(_optionalChain([latestRef, 'access',
|
|
3440
|
-
completion_pct: _nullishCoalesce(_optionalChain([latestRef, 'access',
|
|
3669
|
+
last_field: _nullishCoalesce(_optionalChain([latestRef, 'access', _81 => _81.current, 'optionalAccess', _82 => _82.last_field]), () => ( null)),
|
|
3670
|
+
completion_pct: _nullishCoalesce(_optionalChain([latestRef, 'access', _83 => _83.current, 'optionalAccess', _84 => _84.completion_pct]), () => ( 0))
|
|
3441
3671
|
});
|
|
3442
3672
|
};
|
|
3443
3673
|
const onVisibility = () => {
|
|
@@ -3657,4 +3887,15 @@ function useRescuedForm(form, { rescue, fields, getSignals, fieldPath }) {
|
|
|
3657
3887
|
|
|
3658
3888
|
|
|
3659
3889
|
|
|
3660
|
-
|
|
3890
|
+
|
|
3891
|
+
|
|
3892
|
+
|
|
3893
|
+
|
|
3894
|
+
|
|
3895
|
+
|
|
3896
|
+
|
|
3897
|
+
|
|
3898
|
+
|
|
3899
|
+
|
|
3900
|
+
|
|
3901
|
+
exports.useAutoLimitTags = useAutoLimitTags; exports.useKeyboardCollisionPadding = useKeyboardCollisionPadding; exports.useDeferredError = useDeferredError; exports.DRAG_AND_DROP_MEDIA_QUERY = DRAG_AND_DROP_MEDIA_QUERY; exports.useDragAndDropEnabled = useDragAndDropEnabled; exports.useFocusTrap = useFocusTrap; exports.useHorizontalScrollbar = useHorizontalScrollbar; exports.useLocalStorage = useLocalStorage; exports.useMemoizedCallback = useMemoizedCallback; exports.useNotificationPermission = useNotificationPermission; exports.useOnboardingState = useOnboardingState; exports.useSearch = useSearch; exports.useTablePagination = useTablePagination; exports.useThrottle = useThrottle; exports.useWindowSize = useWindowSize; exports.resolveActiveSection = resolveActiveSection; exports.useActiveSection = useActiveSection; exports.useNavMenus = useNavMenus; exports.DESKTOP_OSES = DESKTOP_OSES; exports.detectVisitorOs = detectVisitorOs; exports.desktopOsOf = desktopOsOf; exports.detectDesktopOs = detectDesktopOs; exports.usesCommandKey = usesCommandKey; exports.shortcutLabel = shortcutLabel; exports.useVisitorOs = useVisitorOs; exports.usePreventScroll = _overlays.usePreventScroll; exports.platformIcons = platformIcons; exports.transformPlatformConfigsToOptions = transformPlatformConfigsToOptions; exports.getPlatformIcon = getPlatformIcon; exports.getSmallPlatformIcon = getSmallPlatformIcon; exports.getPlatformIconComponent = getPlatformIconComponent; exports.usePlatformConfig = usePlatformConfig; exports.usePlatformByValue = usePlatformByValue; exports.useValidatePlatform = useValidatePlatform; exports.dotColorByVariant = dotColorByVariant; exports.progressColorByVariant = progressColorByVariant; exports.ToastCard = ToastCard; exports.CommandApprovalToast = CommandApprovalToast; exports.Toaster = Toaster; exports.showToast = showToast; exports.showCommandApprovalToast = showCommandApprovalToast; exports.toast = toast; exports.useToast = useToast; exports.useContactSubmission = useContactSubmission; exports.useCopyToClipboard = useCopyToClipboard; exports.configureBatchImageFetch = configureBatchImageFetch; exports.batchFetchAuthenticatedImages = batchFetchAuthenticatedImages; exports.useBatchImages = useBatchImages; exports.configureAuthenticatedImage = configureAuthenticatedImage; exports.useAuthenticatedImage = useAuthenticatedImage; exports.flattenQueryVariables = flattenQueryVariables; exports.mergeDefaults = mergeDefaults; exports.validateSchema = validateSchema; exports.getArrayParams = getArrayParams; exports.getRequiredParams = getRequiredParams; exports.extractVariablesFromQuery = extractVariablesFromQuery; exports.isScalarType = isScalarType; exports.isInputObjectType = isInputObjectType; exports.GraphQLIntrospector = GraphQLIntrospector; exports.introspector = introspector; exports.urlParamsToVariables = urlParamsToVariables; exports.variablesToUrlParams = variablesToUrlParams; exports.coerceValue = coerceValue; exports.setNestedValue = setNestedValue; exports.getNestedValue = getNestedValue; exports.mergeVariables = mergeVariables; exports.clearParams = clearParams; exports.validateVariables = validateVariables; exports.useQueryParams = useQueryParams; exports.useApiParams = useApiParams; exports.useCursorPaginationState = useCursorPaginationState; exports.useNatsClient = useNatsClient; exports.useScenarioPlayer = useScenarioPlayer; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.toClaudeMirrorPath = toClaudeMirrorPath; exports.toClaudeEmbedUrl = toClaudeEmbedUrl; exports.useClaudeMirrorSrc = useClaudeMirrorSrc; exports.useLocationHash = useLocationHash; exports.useScrollToHash = useScrollToHash; exports.HONEYPOT_FIELD = HONEYPOT_FIELD; exports.ELAPSED_MS_FIELD = ELAPSED_MS_FIELD; exports.DEFAULT_MIN_FILL_MS = DEFAULT_MIN_FILL_MS; exports.HUMANITY_SIGNAL_KEYS = HUMANITY_SIGNAL_KEYS; exports.isHumanitySignalKey = isHumanitySignalKey; exports.extractHumanitySignals = extractHumanitySignals; exports.findHoneypotCopySource = findHoneypotCopySource; exports.evaluateHumanitySignals = evaluateHumanitySignals; exports.splitCsvEnv = splitCsvEnv; exports.useHumanitySignals = useHumanitySignals; exports.defineRescueForm = defineRescueForm; exports.getRescueForm = getRescueForm; exports.listRescueForms = listRescueForms; exports.RESCUE_FORMS = RESCUE_FORMS; exports.FORM_RESCUE_VALUE_FIELDS = FORM_RESCUE_VALUE_FIELDS; exports.isExcludedRescueField = isExcludedRescueField; exports.FORM_RESCUE_MAX_VALUE_CHARS = FORM_RESCUE_MAX_VALUE_CHARS; exports.FORM_RESCUE_DEBOUNCE_MS = FORM_RESCUE_DEBOUNCE_MS; exports.FORM_RESCUE_MAX_FIELDS = FORM_RESCUE_MAX_FIELDS; exports.FORM_RESCUE_ATTEMPT_FIELD = FORM_RESCUE_ATTEMPT_FIELD; exports.FORM_RESCUE_RESUME_FIELD = FORM_RESCUE_RESUME_FIELD; exports.FORM_RESCUE_SUBMIT_KEYS = FORM_RESCUE_SUBMIT_KEYS; exports.FORM_RESCUE_RESUME_PARAM = FORM_RESCUE_RESUME_PARAM; exports.isResumeToken = isResumeToken; exports.FORM_DRAFT_STATUSES = FORM_DRAFT_STATUSES; exports.FORM_RESCUE_SKIP_REASONS = FORM_RESCUE_SKIP_REASONS; exports.isRescueEmail = isRescueEmail; exports.isFormAttemptId = isFormAttemptId; exports.sanitizeRescueValues = sanitizeRescueValues; exports.filledRescueFields = filledRescueFields; exports.rescueCompletionPct = rescueCompletionPct; exports.sanitizeRescueFieldName = sanitizeRescueFieldName; exports.parseFormDraftSaveRequest = parseFormDraftSaveRequest; exports.FORM_RESCUE_EVENTS = FORM_RESCUE_EVENTS; exports.captureFormRescueEvent = captureFormRescueEvent; exports.completeFormRescue = completeFormRescue; exports.useFormRescue = useFormRescue; exports.useRescuedForm = useRescuedForm;
|