@flamingo-stack/openframe-frontend-core 0.0.410-snapshot.20260711165901 → 0.0.410
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-SOLI7V4I.js → chunk-5HOII3WB.js} +4 -4
- package/dist/{chunk-4FNDOTW2.js → chunk-7Q52HP45.js} +77 -139
- package/dist/chunk-7Q52HP45.js.map +1 -0
- package/dist/{chunk-ZZWFS7CD.cjs → chunk-A3RW7M6B.cjs} +29 -29
- package/dist/{chunk-ZZWFS7CD.cjs.map → chunk-A3RW7M6B.cjs.map} +1 -1
- package/dist/{chunk-G2G7HLEM.cjs → chunk-CUN4CJUN.cjs} +3 -3
- package/dist/{chunk-G2G7HLEM.cjs.map → chunk-CUN4CJUN.cjs.map} +1 -1
- package/dist/{chunk-NJSBYUJZ.js → chunk-E4J5KKHH.js} +3 -3
- package/dist/{chunk-VTTPNZX3.cjs → chunk-F4KE5AZO.cjs} +40 -40
- package/dist/{chunk-VTTPNZX3.cjs.map → chunk-F4KE5AZO.cjs.map} +1 -1
- package/dist/{chunk-B2BERJ4M.js → chunk-IK5AR6QG.js} +6 -6
- package/dist/{chunk-YVJ2XBFU.js → chunk-IVM47EGI.js} +398 -389
- package/dist/chunk-IVM47EGI.js.map +1 -0
- package/dist/{chunk-MHNBDSWH.js → chunk-J6M2G6TD.js} +6 -6
- package/dist/{chunk-BRHCGXOH.cjs → chunk-KPGKNUJF.cjs} +40 -40
- package/dist/{chunk-BRHCGXOH.cjs.map → chunk-KPGKNUJF.cjs.map} +1 -1
- package/dist/{chunk-XVPWVG6N.cjs → chunk-KRLBVBYU.cjs} +18 -18
- package/dist/{chunk-XVPWVG6N.cjs.map → chunk-KRLBVBYU.cjs.map} +1 -1
- package/dist/{chunk-XBC5AES6.js → chunk-KZPVN7AZ.js} +2 -2
- package/dist/{chunk-HXRULNWA.js → chunk-L6OPVKVR.js} +5 -5
- package/dist/{chunk-FXZO4EKN.js → chunk-LQWYXIKB.js} +5 -5
- package/dist/{chunk-H4ISMWHG.cjs → chunk-NEMUCNCG.cjs} +73 -73
- package/dist/{chunk-H4ISMWHG.cjs.map → chunk-NEMUCNCG.cjs.map} +1 -1
- package/dist/{chunk-DGIF3YDV.js → chunk-NO2KT42M.js} +2 -2
- package/dist/{chunk-6AB36PRE.js → chunk-O5W26SCL.js} +2 -2
- package/dist/{chunk-3U4IZF7H.cjs → chunk-RL344I7V.cjs} +7 -7
- package/dist/{chunk-3U4IZF7H.cjs.map → chunk-RL344I7V.cjs.map} +1 -1
- package/dist/{chunk-MF5CVIAC.cjs → chunk-RPGFIUN3.cjs} +32 -32
- package/dist/{chunk-MF5CVIAC.cjs.map → chunk-RPGFIUN3.cjs.map} +1 -1
- package/dist/{chunk-BKYV2ALJ.cjs → chunk-SOALFYU6.cjs} +591 -582
- package/dist/chunk-SOALFYU6.cjs.map +1 -0
- package/dist/{chunk-3SNDISEN.cjs → chunk-STGWQFYT.cjs} +30 -92
- package/dist/chunk-STGWQFYT.cjs.map +1 -0
- package/dist/{chunk-VXM2GCKS.cjs → chunk-T6ZUBXPA.cjs} +12 -12
- package/dist/{chunk-VXM2GCKS.cjs.map → chunk-T6ZUBXPA.cjs.map} +1 -1
- package/dist/{chunk-SMLAYAIW.cjs → chunk-V3EZQWHQ.cjs} +5 -5
- package/dist/{chunk-SMLAYAIW.cjs.map → chunk-V3EZQWHQ.cjs.map} +1 -1
- package/dist/{chunk-Z4RKJOFH.js → chunk-VUW4G6SU.js} +3 -3
- package/dist/{chunk-SZ27SV6T.cjs → chunk-WGOATV3P.cjs} +73 -73
- package/dist/{chunk-SZ27SV6T.cjs.map → chunk-WGOATV3P.cjs.map} +1 -1
- package/dist/{chunk-RALT6D4H.cjs → chunk-YRKPMYI3.cjs} +15 -15
- package/dist/{chunk-RALT6D4H.cjs.map → chunk-YRKPMYI3.cjs.map} +1 -1
- package/dist/{chunk-TYCWPT33.js → chunk-ZF5O3KUQ.js} +3 -3
- package/dist/{chunk-SAJM3PDE.js → chunk-ZMFQWMM7.js} +2 -2
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +134 -136
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +11 -13
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/header.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +3 -5
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.d.ts +1 -1
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +2 -4
- package/dist/components/navigation/mobile-burger-menu.d.ts.map +1 -1
- package/dist/components/navigation/mobile-nav-panel.d.ts +0 -2
- package/dist/components/navigation/mobile-nav-panel.d.ts.map +1 -1
- package/dist/components/navigation/sliding-sidebar.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +7 -7
- package/dist/components/onboarding-guides/index.js +6 -6
- package/dist/components/related-content/index.cjs +5 -5
- package/dist/components/related-content/index.js +4 -4
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/components/ui/modal-v2.d.ts.map +1 -1
- package/dist/components/ui/modal.d.ts.map +1 -1
- package/dist/hooks/index.cjs +2 -6
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +1 -5
- package/dist/hooks/ui/index.d.ts +0 -2
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/use-header-height.d.ts +1 -10
- package/dist/hooks/ui/use-header-height.d.ts.map +1 -1
- package/dist/index.cjs +3 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -8
- package/package.json +1 -1
- package/src/components/navigation/header.tsx +0 -5
- package/src/components/navigation/index.ts +1 -1
- package/src/components/navigation/mobile-burger-menu.tsx +29 -16
- package/src/components/navigation/mobile-nav-panel.tsx +35 -32
- package/src/components/navigation/sliding-sidebar.tsx +9 -29
- package/src/components/ui/modal-v2.tsx +6 -7
- package/src/components/ui/modal.tsx +9 -7
- package/src/hooks/ui/index.ts +0 -6
- package/src/hooks/ui/use-header-height.ts +2 -17
- package/dist/chunk-3SNDISEN.cjs.map +0 -1
- package/dist/chunk-4FNDOTW2.js.map +0 -1
- package/dist/chunk-BKYV2ALJ.cjs.map +0 -1
- package/dist/chunk-YVJ2XBFU.js.map +0 -1
- package/dist/hooks/ui/use-focus-trap.d.ts +0 -32
- package/dist/hooks/ui/use-focus-trap.d.ts.map +0 -1
- package/src/hooks/ui/use-focus-trap.ts +0 -110
- package/src/stories/MobileNavPanel.stories.tsx +0 -150
- /package/dist/{chunk-SOLI7V4I.js.map → chunk-5HOII3WB.js.map} +0 -0
- /package/dist/{chunk-NJSBYUJZ.js.map → chunk-E4J5KKHH.js.map} +0 -0
- /package/dist/{chunk-B2BERJ4M.js.map → chunk-IK5AR6QG.js.map} +0 -0
- /package/dist/{chunk-MHNBDSWH.js.map → chunk-J6M2G6TD.js.map} +0 -0
- /package/dist/{chunk-XBC5AES6.js.map → chunk-KZPVN7AZ.js.map} +0 -0
- /package/dist/{chunk-HXRULNWA.js.map → chunk-L6OPVKVR.js.map} +0 -0
- /package/dist/{chunk-FXZO4EKN.js.map → chunk-LQWYXIKB.js.map} +0 -0
- /package/dist/{chunk-DGIF3YDV.js.map → chunk-NO2KT42M.js.map} +0 -0
- /package/dist/{chunk-6AB36PRE.js.map → chunk-O5W26SCL.js.map} +0 -0
- /package/dist/{chunk-Z4RKJOFH.js.map → chunk-VUW4G6SU.js.map} +0 -0
- /package/dist/{chunk-TYCWPT33.js.map → chunk-ZF5O3KUQ.js.map} +0 -0
- /package/dist/{chunk-SAJM3PDE.js.map → chunk-ZMFQWMM7.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
useSelfFetch
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NO2KT42M.js";
|
|
5
5
|
import {
|
|
6
6
|
PageLayout,
|
|
7
7
|
PageShell,
|
|
@@ -11,12 +11,12 @@ import {
|
|
|
11
11
|
faqSectionSlug,
|
|
12
12
|
parseFaqHash,
|
|
13
13
|
serializeJsonLd
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-IVM47EGI.js";
|
|
15
15
|
import {
|
|
16
16
|
STICKY_HEADER_OFFSET_PX,
|
|
17
17
|
navigateSamePageHash,
|
|
18
18
|
useScrollToHash
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7Q52HP45.js";
|
|
20
20
|
import {
|
|
21
21
|
Chevron02DownIcon
|
|
22
22
|
} from "./chunk-OYGFWWLQ.js";
|
|
@@ -382,4 +382,4 @@ export {
|
|
|
382
382
|
FaqSection,
|
|
383
383
|
FaqDocumentPage
|
|
384
384
|
};
|
|
385
|
-
//# sourceMappingURL=chunk-
|
|
385
|
+
//# sourceMappingURL=chunk-5HOII3WB.js.map
|
|
@@ -141,68 +141,11 @@ function useDeferredError(error, value, delay = 1500) {
|
|
|
141
141
|
};
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
// src/hooks/ui/use-focus-trap.ts
|
|
145
|
-
import { useEffect as useEffect4, useRef as useRef2 } from "react";
|
|
146
|
-
var FOCUSABLE_SELECTOR = [
|
|
147
|
-
"a[href]",
|
|
148
|
-
"button:not([disabled])",
|
|
149
|
-
"input:not([disabled])",
|
|
150
|
-
"select:not([disabled])",
|
|
151
|
-
"textarea:not([disabled])",
|
|
152
|
-
'[tabindex]:not([tabindex="-1"])'
|
|
153
|
-
].join(", ");
|
|
154
|
-
function useFocusTrap(containerRef, active, { onEscape, contain = true } = {}) {
|
|
155
|
-
const onEscapeRef = useRef2(onEscape);
|
|
156
|
-
onEscapeRef.current = onEscape;
|
|
157
|
-
useEffect4(() => {
|
|
158
|
-
if (!active) return;
|
|
159
|
-
const container = containerRef.current;
|
|
160
|
-
if (!container) return;
|
|
161
|
-
const previouslyFocused = document.activeElement;
|
|
162
|
-
const focusables = () => Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter((el) => el.getClientRects().length > 0);
|
|
163
|
-
const first = focusables()[0];
|
|
164
|
-
(first ?? container).focus({ preventScroll: true });
|
|
165
|
-
const handleKeyDown = (e) => {
|
|
166
|
-
if (e.key === "Escape") {
|
|
167
|
-
onEscapeRef.current?.();
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
if (e.key !== "Tab" || !contain) return;
|
|
171
|
-
const items = focusables();
|
|
172
|
-
if (items.length === 0) {
|
|
173
|
-
e.preventDefault();
|
|
174
|
-
container.focus({ preventScroll: true });
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
const firstEl = items[0];
|
|
178
|
-
const lastEl = items[items.length - 1];
|
|
179
|
-
const current = document.activeElement;
|
|
180
|
-
if (e.shiftKey && (current === firstEl || current === container)) {
|
|
181
|
-
e.preventDefault();
|
|
182
|
-
lastEl.focus({ preventScroll: true });
|
|
183
|
-
} else if (!e.shiftKey && current === lastEl) {
|
|
184
|
-
e.preventDefault();
|
|
185
|
-
firstEl.focus({ preventScroll: true });
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
container.addEventListener("keydown", handleKeyDown);
|
|
189
|
-
return () => {
|
|
190
|
-
container.removeEventListener("keydown", handleKeyDown);
|
|
191
|
-
const current = document.activeElement;
|
|
192
|
-
if (previouslyFocused && previouslyFocused.isConnected && (current === null || current === document.body || container.contains(current))) {
|
|
193
|
-
previouslyFocused.focus({ preventScroll: true });
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
}, [containerRef, active, contain]);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
144
|
// src/hooks/ui/use-header-height.ts
|
|
200
|
-
import { useEffect as
|
|
201
|
-
function useHeaderHeight(defaultHeight = 64
|
|
202
|
-
const { enabled = true } = options;
|
|
145
|
+
import { useEffect as useEffect4, useState as useState4 } from "react";
|
|
146
|
+
function useHeaderHeight(defaultHeight = 64) {
|
|
203
147
|
const [height, setHeight] = useState4(defaultHeight);
|
|
204
|
-
|
|
205
|
-
if (!enabled) return;
|
|
148
|
+
useEffect4(() => {
|
|
206
149
|
const measure = () => {
|
|
207
150
|
let total = 0;
|
|
208
151
|
const header2 = document.querySelector("header");
|
|
@@ -236,26 +179,26 @@ function useHeaderHeight(defaultHeight = 64, options = {}) {
|
|
|
236
179
|
resizeObserver.disconnect();
|
|
237
180
|
mutationObserver.disconnect();
|
|
238
181
|
};
|
|
239
|
-
}, [defaultHeight
|
|
182
|
+
}, [defaultHeight]);
|
|
240
183
|
return height;
|
|
241
184
|
}
|
|
242
185
|
|
|
243
186
|
// src/hooks/ui/use-horizontal-scrollbar.ts
|
|
244
|
-
import { useRef as
|
|
187
|
+
import { useRef as useRef2, useState as useState5, useCallback as useCallback3 } from "react";
|
|
245
188
|
function useHorizontalScrollbar() {
|
|
246
|
-
const scrollElRef =
|
|
247
|
-
const trackRef =
|
|
248
|
-
const thumbRef =
|
|
249
|
-
const roRef =
|
|
250
|
-
const moRef =
|
|
189
|
+
const scrollElRef = useRef2(null);
|
|
190
|
+
const trackRef = useRef2(null);
|
|
191
|
+
const thumbRef = useRef2(null);
|
|
192
|
+
const roRef = useRef2(null);
|
|
193
|
+
const moRef = useRef2(null);
|
|
251
194
|
const [thumbRatio, setThumbRatio] = useState5(0);
|
|
252
195
|
const [canScrollLeft, setCanScrollLeft] = useState5(false);
|
|
253
196
|
const [canScrollRight, setCanScrollRight] = useState5(false);
|
|
254
|
-
const prevCanScrollLeftRef =
|
|
255
|
-
const prevCanScrollRightRef =
|
|
256
|
-
const isDraggingRef =
|
|
257
|
-
const dragStartRef =
|
|
258
|
-
const rafIdRef =
|
|
197
|
+
const prevCanScrollLeftRef = useRef2(false);
|
|
198
|
+
const prevCanScrollRightRef = useRef2(false);
|
|
199
|
+
const isDraggingRef = useRef2(false);
|
|
200
|
+
const dragStartRef = useRef2({ mouseX: 0, scrollLeft: 0 });
|
|
201
|
+
const rafIdRef = useRef2(0);
|
|
259
202
|
const syncThumbToDOM = useCallback3(() => {
|
|
260
203
|
const el = scrollElRef.current;
|
|
261
204
|
const thumb = thumbRef.current;
|
|
@@ -433,7 +376,7 @@ function useHorizontalScrollbar() {
|
|
|
433
376
|
}
|
|
434
377
|
|
|
435
378
|
// src/hooks/ui/use-image-edge-color.ts
|
|
436
|
-
import { useState as useState6, useEffect as
|
|
379
|
+
import { useState as useState6, useEffect as useEffect5 } from "react";
|
|
437
380
|
function extractEdgeColor(img) {
|
|
438
381
|
const canvas = document.createElement("canvas");
|
|
439
382
|
const ctx = canvas.getContext("2d");
|
|
@@ -490,7 +433,7 @@ function extractEdgeColor(img) {
|
|
|
490
433
|
}
|
|
491
434
|
function useImageEdgeColor(imageUrl, fallback = "#000000") {
|
|
492
435
|
const [color, setColor] = useState6(fallback);
|
|
493
|
-
|
|
436
|
+
useEffect5(() => {
|
|
494
437
|
if (!imageUrl) {
|
|
495
438
|
setColor(fallback);
|
|
496
439
|
return;
|
|
@@ -519,7 +462,7 @@ function useImageEdgeColor(imageUrl, fallback = "#000000") {
|
|
|
519
462
|
}
|
|
520
463
|
|
|
521
464
|
// src/hooks/ui/use-local-storage.ts
|
|
522
|
-
import { useEffect as
|
|
465
|
+
import { useEffect as useEffect6, useRef as useRef3, useState as useState7 } from "react";
|
|
523
466
|
function useLocalStorage(key, initialValue) {
|
|
524
467
|
const [storedValue, setStoredValue] = useState7(() => {
|
|
525
468
|
try {
|
|
@@ -532,9 +475,9 @@ function useLocalStorage(key, initialValue) {
|
|
|
532
475
|
}
|
|
533
476
|
return initialValue;
|
|
534
477
|
});
|
|
535
|
-
const isInitialized =
|
|
536
|
-
const isFromStorageEvent =
|
|
537
|
-
|
|
478
|
+
const isInitialized = useRef3(true);
|
|
479
|
+
const isFromStorageEvent = useRef3(false);
|
|
480
|
+
useEffect6(() => {
|
|
538
481
|
if (!isInitialized.current) return;
|
|
539
482
|
const handleStorageChange = (e) => {
|
|
540
483
|
if (e.key === key && e.newValue !== null) {
|
|
@@ -573,7 +516,7 @@ function useLocalStorage(key, initialValue) {
|
|
|
573
516
|
window.removeEventListener("localStorageUpdate", handleCustomStorageUpdate);
|
|
574
517
|
};
|
|
575
518
|
}, [key]);
|
|
576
|
-
|
|
519
|
+
useEffect6(() => {
|
|
577
520
|
if (!isInitialized.current) return;
|
|
578
521
|
if (isFromStorageEvent.current) {
|
|
579
522
|
isFromStorageEvent.current = false;
|
|
@@ -634,10 +577,10 @@ function useLgUp() {
|
|
|
634
577
|
}
|
|
635
578
|
|
|
636
579
|
// src/hooks/ui/use-memoized-callback.ts
|
|
637
|
-
import { useCallback as useCallback4, useRef as
|
|
580
|
+
import { useCallback as useCallback4, useRef as useRef4 } from "react";
|
|
638
581
|
function useMemoizedCallback(callback, dependencies) {
|
|
639
|
-
const callbackRef =
|
|
640
|
-
const dependenciesRef =
|
|
582
|
+
const callbackRef = useRef4(callback);
|
|
583
|
+
const dependenciesRef = useRef4(dependencies);
|
|
641
584
|
callbackRef.current = callback;
|
|
642
585
|
const depsChanged = dependencies.some((dep, i) => !Object.is(dep, dependenciesRef.current[i]));
|
|
643
586
|
if (depsChanged) {
|
|
@@ -647,11 +590,11 @@ function useMemoizedCallback(callback, dependencies) {
|
|
|
647
590
|
}
|
|
648
591
|
|
|
649
592
|
// src/hooks/ui/use-notification-permission.ts
|
|
650
|
-
import { useCallback as useCallback5, useEffect as
|
|
593
|
+
import { useCallback as useCallback5, useEffect as useEffect7, useState as useState9 } from "react";
|
|
651
594
|
function useNotificationPermission() {
|
|
652
595
|
const [supported, setSupported] = useState9(false);
|
|
653
596
|
const [permission, setPermission] = useState9("default");
|
|
654
|
-
|
|
597
|
+
useEffect7(() => {
|
|
655
598
|
if (typeof window === "undefined" || !("Notification" in window)) return;
|
|
656
599
|
setSupported(true);
|
|
657
600
|
const sync = () => setPermission(Notification.permission);
|
|
@@ -687,7 +630,7 @@ function useNotificationPermission() {
|
|
|
687
630
|
}
|
|
688
631
|
|
|
689
632
|
// src/hooks/ui/use-onboarding-state.ts
|
|
690
|
-
import { useState as useState10, useEffect as
|
|
633
|
+
import { useState as useState10, useEffect as useEffect8, useCallback as useCallback6 } from "react";
|
|
691
634
|
|
|
692
635
|
// src/utils/onboarding-storage.ts
|
|
693
636
|
var DEFAULT_STATE = {
|
|
@@ -764,7 +707,7 @@ function dismissOnboarding(key) {
|
|
|
764
707
|
function useOnboardingState(storageKey = "openframe-onboarding-state") {
|
|
765
708
|
const [state, setState] = useState10(() => loadOnboardingState(storageKey));
|
|
766
709
|
const [, forceUpdate] = useState10(0);
|
|
767
|
-
|
|
710
|
+
useEffect8(() => {
|
|
768
711
|
const handleStorageUpdate = (e) => {
|
|
769
712
|
if (e.detail.key === storageKey) {
|
|
770
713
|
const newState = loadOnboardingState(storageKey);
|
|
@@ -825,7 +768,7 @@ function useOnboardingState(storageKey = "openframe-onboarding-state") {
|
|
|
825
768
|
}
|
|
826
769
|
|
|
827
770
|
// src/hooks/ui/use-search.ts
|
|
828
|
-
import { useState as useState11, useEffect as
|
|
771
|
+
import { useState as useState11, useEffect as useEffect9, useCallback as useCallback7 } from "react";
|
|
829
772
|
function useSearch(config) {
|
|
830
773
|
const { searchFn, mapResult, debounceMs = 300, minQueryLength = 2 } = config;
|
|
831
774
|
const [query, setQuery] = useState11("");
|
|
@@ -837,7 +780,7 @@ function useSearch(config) {
|
|
|
837
780
|
setResults([]);
|
|
838
781
|
setError(null);
|
|
839
782
|
}, []);
|
|
840
|
-
|
|
783
|
+
useEffect9(() => {
|
|
841
784
|
if (!debouncedQuery || debouncedQuery.length < minQueryLength) {
|
|
842
785
|
setResults([]);
|
|
843
786
|
setIsLoading(false);
|
|
@@ -910,11 +853,11 @@ function useTablePagination(config) {
|
|
|
910
853
|
}
|
|
911
854
|
|
|
912
855
|
// src/hooks/ui/use-throttle.ts
|
|
913
|
-
import { useState as useState12, useEffect as
|
|
856
|
+
import { useState as useState12, useEffect as useEffect10, useRef as useRef5 } from "react";
|
|
914
857
|
function useThrottle(value, limit = 200) {
|
|
915
858
|
const [throttledValue, setThrottledValue] = useState12(value);
|
|
916
|
-
const lastUpdated =
|
|
917
|
-
|
|
859
|
+
const lastUpdated = useRef5(Date.now());
|
|
860
|
+
useEffect10(() => {
|
|
918
861
|
const now = Date.now();
|
|
919
862
|
const elapsed = now - lastUpdated.current;
|
|
920
863
|
if (elapsed >= limit) {
|
|
@@ -957,11 +900,8 @@ function useWindowSize() {
|
|
|
957
900
|
return windowSize;
|
|
958
901
|
}
|
|
959
902
|
|
|
960
|
-
// src/hooks/ui/index.ts
|
|
961
|
-
import { usePreventScroll } from "@react-aria/overlays";
|
|
962
|
-
|
|
963
903
|
// src/hooks/platform/use-platform-config.ts
|
|
964
|
-
import { useState as useState14, useEffect as
|
|
904
|
+
import { useState as useState14, useEffect as useEffect11 } from "react";
|
|
965
905
|
|
|
966
906
|
// src/utils/platform-config.tsx
|
|
967
907
|
import { Globe } from "lucide-react";
|
|
@@ -1142,7 +1082,7 @@ function usePlatformConfig() {
|
|
|
1142
1082
|
const [platforms, setPlatforms] = useState14(platformCache || []);
|
|
1143
1083
|
const [isLoading, setIsLoading] = useState14(!platformCache);
|
|
1144
1084
|
const [error, setError] = useState14(null);
|
|
1145
|
-
|
|
1085
|
+
useEffect11(() => {
|
|
1146
1086
|
if (platformCache) {
|
|
1147
1087
|
setPlatforms(platformCache);
|
|
1148
1088
|
setIsLoading(false);
|
|
@@ -1591,7 +1531,7 @@ var useToast = () => ({
|
|
|
1591
1531
|
});
|
|
1592
1532
|
|
|
1593
1533
|
// src/hooks/use-contact-submission.ts
|
|
1594
|
-
import { useState as useState16, useCallback as useCallback8, useEffect as
|
|
1534
|
+
import { useState as useState16, useCallback as useCallback8, useEffect as useEffect12 } from "react";
|
|
1595
1535
|
init_next_navigation();
|
|
1596
1536
|
|
|
1597
1537
|
// src/utils/local-storage-adapter.ts
|
|
@@ -1893,7 +1833,7 @@ function useContactSubmission(options = {}) {
|
|
|
1893
1833
|
setIsSubmitting(false);
|
|
1894
1834
|
}
|
|
1895
1835
|
}, [isSubmitting, toast2, userId, successToastMessage, contactUrl]);
|
|
1896
|
-
|
|
1836
|
+
useEffect12(() => {
|
|
1897
1837
|
if (isSuccess && successRedirectUrl) {
|
|
1898
1838
|
console.log("\u{1F680} Contact submission successful, redirecting to:", successRedirectUrl);
|
|
1899
1839
|
const timer = setTimeout(() => {
|
|
@@ -1907,7 +1847,7 @@ function useContactSubmission(options = {}) {
|
|
|
1907
1847
|
return () => clearTimeout(timer);
|
|
1908
1848
|
}
|
|
1909
1849
|
}, [isSuccess, successRedirectUrl, router]);
|
|
1910
|
-
|
|
1850
|
+
useEffect12(() => {
|
|
1911
1851
|
if (isSuccess && onSuccess) {
|
|
1912
1852
|
onSuccess();
|
|
1913
1853
|
}
|
|
@@ -1916,18 +1856,18 @@ function useContactSubmission(options = {}) {
|
|
|
1916
1856
|
}
|
|
1917
1857
|
|
|
1918
1858
|
// src/hooks/use-quick-action-hint.ts
|
|
1919
|
-
import { useEffect as
|
|
1859
|
+
import { useEffect as useEffect13, useState as useState17, useRef as useRef6, useCallback as useCallback9 } from "react";
|
|
1920
1860
|
function useQuickActionHint({
|
|
1921
1861
|
actionCount,
|
|
1922
1862
|
cycleDuration = 5e3,
|
|
1923
1863
|
enabled = true
|
|
1924
1864
|
}) {
|
|
1925
1865
|
const [activeHintIndex, setActiveHintIndex] = useState17(-1);
|
|
1926
|
-
const containerRef =
|
|
1927
|
-
const timeoutRef =
|
|
1928
|
-
const cycleCountRef =
|
|
1929
|
-
const currentIndexRef =
|
|
1930
|
-
const sequenceRef =
|
|
1866
|
+
const containerRef = useRef6(null);
|
|
1867
|
+
const timeoutRef = useRef6(null);
|
|
1868
|
+
const cycleCountRef = useRef6(0);
|
|
1869
|
+
const currentIndexRef = useRef6(0);
|
|
1870
|
+
const sequenceRef = useRef6([]);
|
|
1931
1871
|
const shuffleIndices = useCallback9((length) => {
|
|
1932
1872
|
const indices = Array.from({ length }, (_, i) => i);
|
|
1933
1873
|
for (let i = indices.length - 1; i > 0; i--) {
|
|
@@ -1959,7 +1899,7 @@ function useQuickActionHint({
|
|
|
1959
1899
|
}
|
|
1960
1900
|
timeoutRef.current = setTimeout(advanceHint, cycleDuration);
|
|
1961
1901
|
}, [actionCount, cycleDuration, shuffleIndices]);
|
|
1962
|
-
|
|
1902
|
+
useEffect13(() => {
|
|
1963
1903
|
if (!enabled || actionCount === 0) {
|
|
1964
1904
|
return;
|
|
1965
1905
|
}
|
|
@@ -2012,7 +1952,7 @@ function useCopyToClipboard({
|
|
|
2012
1952
|
}
|
|
2013
1953
|
|
|
2014
1954
|
// src/hooks/use-batch-images.ts
|
|
2015
|
-
import { useEffect as
|
|
1955
|
+
import { useEffect as useEffect14, useMemo as useMemo2, useState as useState19, useRef as useRef7 } from "react";
|
|
2016
1956
|
var globalBatchImageConfig = {};
|
|
2017
1957
|
function configureBatchImageFetch(config) {
|
|
2018
1958
|
globalBatchImageConfig = { ...globalBatchImageConfig, ...config };
|
|
@@ -2091,8 +2031,8 @@ function useBatchImages(imageUrls, config) {
|
|
|
2091
2031
|
() => Array.from(new Set(imageUrls.filter((url) => Boolean(url)))),
|
|
2092
2032
|
[imageUrls]
|
|
2093
2033
|
);
|
|
2094
|
-
const requestedUrls =
|
|
2095
|
-
|
|
2034
|
+
const requestedUrls = useRef7(/* @__PURE__ */ new Set());
|
|
2035
|
+
useEffect14(() => {
|
|
2096
2036
|
if (uniqueUrls.length === 0) {
|
|
2097
2037
|
setFetchedImages({});
|
|
2098
2038
|
return;
|
|
@@ -2122,7 +2062,7 @@ function useBatchImages(imageUrls, config) {
|
|
|
2122
2062
|
}
|
|
2123
2063
|
|
|
2124
2064
|
// src/hooks/use-authenticated-image.ts
|
|
2125
|
-
import { useEffect as
|
|
2065
|
+
import { useEffect as useEffect15, useState as useState20, useRef as useRef8 } from "react";
|
|
2126
2066
|
var globalImageConfig = {};
|
|
2127
2067
|
var imageCache = /* @__PURE__ */ new Map();
|
|
2128
2068
|
var pendingRequests = /* @__PURE__ */ new Map();
|
|
@@ -2154,8 +2094,8 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
|
|
|
2154
2094
|
const [fetchedImageUrl, setFetchedImageUrl] = useState20();
|
|
2155
2095
|
const [isLoading, setIsLoading] = useState20(false);
|
|
2156
2096
|
const [error, setError] = useState20(null);
|
|
2157
|
-
const currentCacheKeyRef =
|
|
2158
|
-
|
|
2097
|
+
const currentCacheKeyRef = useRef8(null);
|
|
2098
|
+
useEffect15(() => {
|
|
2159
2099
|
if (!imageUrl) {
|
|
2160
2100
|
setFetchedImageUrl(void 0);
|
|
2161
2101
|
setIsLoading(false);
|
|
@@ -2266,7 +2206,7 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
|
|
|
2266
2206
|
});
|
|
2267
2207
|
pendingRequests.set(cacheKey, fetchPromise2);
|
|
2268
2208
|
}, [imageUrl, refreshKey, config]);
|
|
2269
|
-
|
|
2209
|
+
useEffect15(() => {
|
|
2270
2210
|
return () => {
|
|
2271
2211
|
if (currentCacheKeyRef.current) {
|
|
2272
2212
|
const entry = imageCache.get(currentCacheKeyRef.current);
|
|
@@ -2281,7 +2221,7 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
|
|
|
2281
2221
|
|
|
2282
2222
|
// src/hooks/state/use-query-params.ts
|
|
2283
2223
|
init_next_navigation();
|
|
2284
|
-
import { useEffect as
|
|
2224
|
+
import { useEffect as useEffect16, useState as useState21, useMemo as useMemo3, useCallback as useCallback11 } from "react";
|
|
2285
2225
|
|
|
2286
2226
|
// src/hooks/state/graphql-parser.ts
|
|
2287
2227
|
import {
|
|
@@ -2750,7 +2690,7 @@ function useQueryParams(query, options = {}) {
|
|
|
2750
2690
|
const defaultValues = options.defaultValues || {};
|
|
2751
2691
|
const skipIntrospection = options.skipIntrospection || false;
|
|
2752
2692
|
const debug = options.debug || false;
|
|
2753
|
-
|
|
2693
|
+
useEffect16(() => {
|
|
2754
2694
|
async function initialize() {
|
|
2755
2695
|
try {
|
|
2756
2696
|
if (debug) console.log("[useQueryParams] Initializing...");
|
|
@@ -2902,9 +2842,9 @@ function applyParamMapping(schema, mapping) {
|
|
|
2902
2842
|
|
|
2903
2843
|
// src/hooks/state/use-api-params.ts
|
|
2904
2844
|
init_next_navigation();
|
|
2905
|
-
import { useCallback as useCallback12, useMemo as useMemo4, useRef as
|
|
2845
|
+
import { useCallback as useCallback12, useMemo as useMemo4, useRef as useRef9 } from "react";
|
|
2906
2846
|
function useContentStable(value, key) {
|
|
2907
|
-
const ref =
|
|
2847
|
+
const ref = useRef9(void 0);
|
|
2908
2848
|
if (ref.current && ref.current.key === key) return ref.current.value;
|
|
2909
2849
|
ref.current = { value, key };
|
|
2910
2850
|
return value;
|
|
@@ -2937,7 +2877,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2937
2877
|
}
|
|
2938
2878
|
return flattened;
|
|
2939
2879
|
}, [schemaKey]);
|
|
2940
|
-
const prevParamsRef =
|
|
2880
|
+
const prevParamsRef = useRef9(void 0);
|
|
2941
2881
|
const params = useMemo4(() => {
|
|
2942
2882
|
const sp = new URLSearchParams(searchString);
|
|
2943
2883
|
const result = {};
|
|
@@ -3097,7 +3037,7 @@ function createSearchParams(params) {
|
|
|
3097
3037
|
}
|
|
3098
3038
|
|
|
3099
3039
|
// src/hooks/state/use-cursor-pagination-state.ts
|
|
3100
|
-
import { useCallback as useCallback13, useEffect as
|
|
3040
|
+
import { useCallback as useCallback13, useEffect as useEffect17, useRef as useRef10, useState as useState22 } from "react";
|
|
3101
3041
|
var urlSchema = {
|
|
3102
3042
|
search: { type: "string", default: "" },
|
|
3103
3043
|
cursor: { type: "string", default: "" }
|
|
@@ -3111,10 +3051,10 @@ function useCursorPaginationState(options) {
|
|
|
3111
3051
|
const [searchInput, setSearchInput] = useState22(params.search || "");
|
|
3112
3052
|
const [hasLoadedBeyondFirst, setHasLoadedBeyondFirst] = useState22(false);
|
|
3113
3053
|
const [initialLoadCount, setInitialLoadCount] = useState22(0);
|
|
3114
|
-
const lastSearchRef =
|
|
3115
|
-
const isSyncingFromUrl =
|
|
3116
|
-
const isInitialLoadInProgress =
|
|
3117
|
-
|
|
3054
|
+
const lastSearchRef = useRef10(null);
|
|
3055
|
+
const isSyncingFromUrl = useRef10(false);
|
|
3056
|
+
const isInitialLoadInProgress = useRef10(true);
|
|
3057
|
+
useEffect17(() => {
|
|
3118
3058
|
if (isInitialLoadInProgress.current) return;
|
|
3119
3059
|
const urlSearch = params.search || "";
|
|
3120
3060
|
if (urlSearch !== searchInput) {
|
|
@@ -3125,7 +3065,7 @@ function useCursorPaginationState(options) {
|
|
|
3125
3065
|
}, 0);
|
|
3126
3066
|
}
|
|
3127
3067
|
}, [params.search, initialLoadCount]);
|
|
3128
|
-
|
|
3068
|
+
useEffect17(() => {
|
|
3129
3069
|
if (isInitialLoadInProgress.current) return;
|
|
3130
3070
|
if (isSyncingFromUrl.current) return;
|
|
3131
3071
|
if (searchInput !== params.search) {
|
|
@@ -3136,7 +3076,7 @@ function useCursorPaginationState(options) {
|
|
|
3136
3076
|
});
|
|
3137
3077
|
}
|
|
3138
3078
|
}, [searchInput, params.search, setParams, initialLoadCount]);
|
|
3139
|
-
|
|
3079
|
+
useEffect17(() => {
|
|
3140
3080
|
if (initialLoadCount === 0) {
|
|
3141
3081
|
const cursor = params.cursor || null;
|
|
3142
3082
|
const search = params.search || "";
|
|
@@ -3150,7 +3090,7 @@ function useCursorPaginationState(options) {
|
|
|
3150
3090
|
});
|
|
3151
3091
|
}
|
|
3152
3092
|
}, []);
|
|
3153
|
-
|
|
3093
|
+
useEffect17(() => {
|
|
3154
3094
|
if (isInitialLoadInProgress.current) return;
|
|
3155
3095
|
if (initialLoadCount === 0) return;
|
|
3156
3096
|
const currentSearch = params.search || "";
|
|
@@ -3190,7 +3130,7 @@ function useCursorPaginationState(options) {
|
|
|
3190
3130
|
}
|
|
3191
3131
|
|
|
3192
3132
|
// src/hooks/nats/use-nats-client.ts
|
|
3193
|
-
import { useEffect as
|
|
3133
|
+
import { useEffect as useEffect18, useMemo as useMemo5, useState as useState23 } from "react";
|
|
3194
3134
|
function useNatsClient(clientOptions, options = {}) {
|
|
3195
3135
|
const { autoConnect = true } = options;
|
|
3196
3136
|
const client = useMemo5(() => {
|
|
@@ -3199,7 +3139,7 @@ function useNatsClient(clientOptions, options = {}) {
|
|
|
3199
3139
|
}, [clientOptions]);
|
|
3200
3140
|
const [status, setStatus] = useState23("disconnected");
|
|
3201
3141
|
const [lastError, setLastError] = useState23(null);
|
|
3202
|
-
|
|
3142
|
+
useEffect18(() => {
|
|
3203
3143
|
if (!client) {
|
|
3204
3144
|
setStatus("disconnected");
|
|
3205
3145
|
setLastError(null);
|
|
@@ -3230,7 +3170,7 @@ function useNatsClient(clientOptions, options = {}) {
|
|
|
3230
3170
|
}
|
|
3231
3171
|
|
|
3232
3172
|
// src/hooks/use-near-viewport.ts
|
|
3233
|
-
import { useEffect as
|
|
3173
|
+
import { useEffect as useEffect19, useRef as useRef11, useState as useState24, useCallback as useCallback14 } from "react";
|
|
3234
3174
|
var observers = /* @__PURE__ */ new Map();
|
|
3235
3175
|
var subscribers = /* @__PURE__ */ new WeakMap();
|
|
3236
3176
|
function getObserverFor(rootMargin) {
|
|
@@ -3255,7 +3195,7 @@ function getObserverFor(rootMargin) {
|
|
|
3255
3195
|
}
|
|
3256
3196
|
function useNearViewport(rootMargin = "500px") {
|
|
3257
3197
|
const [isNear, setIsNear] = useState24(false);
|
|
3258
|
-
const elRef =
|
|
3198
|
+
const elRef = useRef11(null);
|
|
3259
3199
|
const ref = useCallback14(
|
|
3260
3200
|
(node) => {
|
|
3261
3201
|
const prev = elRef.current;
|
|
@@ -3274,7 +3214,7 @@ function useNearViewport(rootMargin = "500px") {
|
|
|
3274
3214
|
},
|
|
3275
3215
|
[rootMargin]
|
|
3276
3216
|
);
|
|
3277
|
-
|
|
3217
|
+
useEffect19(() => {
|
|
3278
3218
|
return () => {
|
|
3279
3219
|
const el = elRef.current;
|
|
3280
3220
|
if (!el) return;
|
|
@@ -3432,7 +3372,7 @@ function useOgPlaceholderUrl({
|
|
|
3432
3372
|
}
|
|
3433
3373
|
|
|
3434
3374
|
// src/hooks/use-scroll-to-hash.ts
|
|
3435
|
-
import { useEffect as
|
|
3375
|
+
import { useEffect as useEffect20 } from "react";
|
|
3436
3376
|
|
|
3437
3377
|
// src/utils/scroll-into-view.ts
|
|
3438
3378
|
var activeRaf = 0;
|
|
@@ -3570,7 +3510,7 @@ function navigateSamePageHash(target, options = {}) {
|
|
|
3570
3510
|
var MAX_POLL_FRAMES = 60;
|
|
3571
3511
|
function useScrollToHash(readyDep = true, options) {
|
|
3572
3512
|
const headerOffset = options?.headerOffset ?? 0;
|
|
3573
|
-
|
|
3513
|
+
useEffect20(() => {
|
|
3574
3514
|
if (typeof window === "undefined") return;
|
|
3575
3515
|
if (readyDep === null || readyDep === false) return;
|
|
3576
3516
|
let rafId = null;
|
|
@@ -3610,7 +3550,7 @@ function useScrollToHash(readyDep = true, options) {
|
|
|
3610
3550
|
}
|
|
3611
3551
|
|
|
3612
3552
|
// src/hooks/use-humanity-signals.ts
|
|
3613
|
-
import { useCallback as useCallback15, useRef as
|
|
3553
|
+
import { useCallback as useCallback15, useRef as useRef12 } from "react";
|
|
3614
3554
|
|
|
3615
3555
|
// src/utils/humanity-signals.ts
|
|
3616
3556
|
var HONEYPOT_FIELD = "contact_url_confirm";
|
|
@@ -3634,8 +3574,8 @@ var splitCsvEnv = (s) => s?.split(",").map((t) => t.trim()).filter(Boolean) ?? [
|
|
|
3634
3574
|
|
|
3635
3575
|
// src/hooks/use-humanity-signals.ts
|
|
3636
3576
|
function useHumanitySignals() {
|
|
3637
|
-
const ref =
|
|
3638
|
-
const mountedAt =
|
|
3577
|
+
const ref = useRef12(null);
|
|
3578
|
+
const mountedAt = useRef12(typeof performance !== "undefined" ? performance.now() : 0);
|
|
3639
3579
|
const getSignals = useCallback15(
|
|
3640
3580
|
() => ({
|
|
3641
3581
|
[HONEYPOT_FIELD]: ref.current?.value ?? "",
|
|
@@ -3654,7 +3594,6 @@ export {
|
|
|
3654
3594
|
useAutoLimitTags,
|
|
3655
3595
|
useDebounce,
|
|
3656
3596
|
useDeferredError,
|
|
3657
|
-
useFocusTrap,
|
|
3658
3597
|
useHeaderHeight,
|
|
3659
3598
|
useHorizontalScrollbar,
|
|
3660
3599
|
useImageEdgeColor,
|
|
@@ -3671,7 +3610,6 @@ export {
|
|
|
3671
3610
|
useTablePagination,
|
|
3672
3611
|
useThrottle,
|
|
3673
3612
|
useWindowSize,
|
|
3674
|
-
usePreventScroll,
|
|
3675
3613
|
platformIcons,
|
|
3676
3614
|
platformColors,
|
|
3677
3615
|
platformDisplayNames,
|
|
@@ -3766,4 +3704,4 @@ export {
|
|
|
3766
3704
|
splitCsvEnv,
|
|
3767
3705
|
useHumanitySignals
|
|
3768
3706
|
};
|
|
3769
|
-
//# sourceMappingURL=chunk-
|
|
3707
|
+
//# sourceMappingURL=chunk-7Q52HP45.js.map
|