@flamingo-stack/openframe-frontend-core 0.0.399-snapshot.20260710120252 → 0.0.399
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-56XCRZ7I.js → chunk-2L6ALD2Q.js} +2 -2
- package/dist/{chunk-UYBNOHTC.js → chunk-2XVOYDRF.js} +22 -57
- package/dist/{chunk-UYBNOHTC.js.map → chunk-2XVOYDRF.js.map} +1 -1
- package/dist/{chunk-RYPCNUXA.js → chunk-4H2ICJYB.js} +4 -4
- package/dist/{chunk-463X3AW2.js → chunk-4K5XJ5EJ.js} +3 -3
- package/dist/{chunk-MTBFE3JF.js → chunk-4KWIQEZT.js} +2 -2
- package/dist/{chunk-QGQ76SSR.cjs → chunk-4PEC5KU6.cjs} +12 -12
- package/dist/{chunk-QGQ76SSR.cjs.map → chunk-4PEC5KU6.cjs.map} +1 -1
- package/dist/{chunk-J6IQQJJQ.cjs → chunk-7OKNKZBW.cjs} +531 -566
- package/dist/chunk-7OKNKZBW.cjs.map +1 -0
- package/dist/{chunk-MQRTT3DO.js → chunk-A6KGHQRF.js} +6 -6
- package/dist/{chunk-6VR7BJF6.js → chunk-BSJO5VFV.js} +5 -5
- package/dist/{chunk-PD5MXNTJ.js → chunk-CRRH7RJX.js} +5 -5
- package/dist/{chunk-ILWSJCWD.cjs → chunk-D5IHYUBY.cjs} +29 -29
- package/dist/{chunk-ILWSJCWD.cjs.map → chunk-D5IHYUBY.cjs.map} +1 -1
- package/dist/{chunk-UFP45JLE.js → chunk-FXWURWDU.js} +3 -3
- package/dist/{chunk-FHEIG7QO.js → chunk-G3A7QHCX.js} +2 -2
- package/dist/{chunk-556BG7SX.cjs → chunk-G5NDKTX6.cjs} +40 -40
- package/dist/{chunk-556BG7SX.cjs.map → chunk-G5NDKTX6.cjs.map} +1 -1
- package/dist/{chunk-MFRP2UDK.cjs → chunk-JBLBFJ4N.cjs} +32 -32
- package/dist/{chunk-MFRP2UDK.cjs.map → chunk-JBLBFJ4N.cjs.map} +1 -1
- package/dist/{chunk-J4XR6YYZ.cjs → chunk-JWBRDNYH.cjs} +4 -23
- package/dist/chunk-JWBRDNYH.cjs.map +1 -0
- package/dist/{chunk-VTSEL7CJ.cjs → chunk-NCW22SII.cjs} +73 -73
- package/dist/{chunk-VTSEL7CJ.cjs.map → chunk-NCW22SII.cjs.map} +1 -1
- package/dist/{chunk-KIC4ZEZ7.cjs → chunk-O5NA3ULU.cjs} +73 -73
- package/dist/{chunk-KIC4ZEZ7.cjs.map → chunk-O5NA3ULU.cjs.map} +1 -1
- package/dist/{chunk-ABRDOCVN.cjs → chunk-QNYNXSYQ.cjs} +7 -7
- package/dist/{chunk-ABRDOCVN.cjs.map → chunk-QNYNXSYQ.cjs.map} +1 -1
- package/dist/{chunk-OPD5V57R.cjs → chunk-RIC4TCPD.cjs} +19 -19
- package/dist/{chunk-OPD5V57R.cjs.map → chunk-RIC4TCPD.cjs.map} +1 -1
- package/dist/{chunk-6XQJSN7G.cjs → chunk-VOHOA3WV.cjs} +15 -15
- package/dist/{chunk-6XQJSN7G.cjs.map → chunk-VOHOA3WV.cjs.map} +1 -1
- package/dist/{chunk-LAL63W5J.js → chunk-VVKWNVKE.js} +6 -6
- package/dist/{chunk-Q3AO2QWK.cjs → chunk-WBLRUO3F.cjs} +3 -3
- package/dist/{chunk-Q3AO2QWK.cjs.map → chunk-WBLRUO3F.cjs.map} +1 -1
- package/dist/{chunk-4HAVKWTJ.js → chunk-XBCAY6NE.js} +3 -3
- package/dist/{chunk-EFTKJFEF.cjs → chunk-YWCCKB4J.cjs} +5 -5
- package/dist/{chunk-EFTKJFEF.cjs.map → chunk-YWCCKB4J.cjs.map} +1 -1
- package/dist/{chunk-I4XG5PJA.js → chunk-Z5ERSGP2.js} +2 -2
- package/dist/{chunk-RSFHAFZN.cjs → chunk-ZDT2MBKE.cjs} +40 -40
- package/dist/{chunk-RSFHAFZN.cjs.map → chunk-ZDT2MBKE.cjs.map} +1 -1
- package/dist/{chunk-DH6HTYOV.js → chunk-ZSZRJWY3.js} +134 -153
- package/dist/chunk-ZSZRJWY3.js.map +1 -0
- 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/auth/auth-benefits-panel.d.ts.map +1 -1
- package/dist/components/features/auth/complete-account-form.d.ts.map +1 -1
- package/dist/components/features/auth/create-organization-form.d.ts.map +1 -1
- package/dist/components/features/auth/login-form.d.ts.map +1 -1
- package/dist/components/features/auth/openframe-sso-login-form.d.ts.map +1 -1
- package/dist/components/features/auth/openframe-sso-signup-form.d.ts.map +1 -1
- package/dist/components/features/auth/password-reset-form.d.ts.map +1 -1
- 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 +125 -125
- package/dist/components/index.js +11 -11
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- 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/hooks/index.cjs +2 -4
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +1 -3
- package/dist/hooks/ui/index.d.ts +0 -1
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/index.cjs +3 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -4
- package/package.json +1 -1
- package/src/components/features/auth/auth-benefits-panel.tsx +1 -1
- package/src/components/features/auth/complete-account-form.tsx +4 -15
- package/src/components/features/auth/create-organization-form.tsx +5 -14
- package/src/components/features/auth/login-form.tsx +1 -6
- package/src/components/features/auth/openframe-sso-login-form.tsx +2 -9
- package/src/components/features/auth/openframe-sso-signup-form.tsx +5 -18
- package/src/components/features/auth/password-reset-form.tsx +2 -9
- package/src/hooks/ui/index.ts +0 -1
- package/src/stories/Input.stories.tsx +1 -1
- package/src/stories/auth/CreateOrganization.stories.tsx +1 -2
- package/dist/chunk-DH6HTYOV.js.map +0 -1
- package/dist/chunk-J4XR6YYZ.cjs.map +0 -1
- package/dist/chunk-J6IQQJJQ.cjs.map +0 -1
- package/dist/hooks/ui/use-deferred-error.d.ts +0 -16
- package/dist/hooks/ui/use-deferred-error.d.ts.map +0 -1
- package/src/hooks/ui/use-deferred-error.ts +0 -38
- /package/dist/{chunk-56XCRZ7I.js.map → chunk-2L6ALD2Q.js.map} +0 -0
- /package/dist/{chunk-RYPCNUXA.js.map → chunk-4H2ICJYB.js.map} +0 -0
- /package/dist/{chunk-463X3AW2.js.map → chunk-4K5XJ5EJ.js.map} +0 -0
- /package/dist/{chunk-MTBFE3JF.js.map → chunk-4KWIQEZT.js.map} +0 -0
- /package/dist/{chunk-MQRTT3DO.js.map → chunk-A6KGHQRF.js.map} +0 -0
- /package/dist/{chunk-6VR7BJF6.js.map → chunk-BSJO5VFV.js.map} +0 -0
- /package/dist/{chunk-PD5MXNTJ.js.map → chunk-CRRH7RJX.js.map} +0 -0
- /package/dist/{chunk-UFP45JLE.js.map → chunk-FXWURWDU.js.map} +0 -0
- /package/dist/{chunk-FHEIG7QO.js.map → chunk-G3A7QHCX.js.map} +0 -0
- /package/dist/{chunk-LAL63W5J.js.map → chunk-VVKWNVKE.js.map} +0 -0
- /package/dist/{chunk-4HAVKWTJ.js.map → chunk-XBCAY6NE.js.map} +0 -0
- /package/dist/{chunk-I4XG5PJA.js.map → chunk-Z5ERSGP2.js.map} +0 -0
|
@@ -123,29 +123,11 @@ function useDebounce(value, delay = 500) {
|
|
|
123
123
|
return debouncedValue;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
// src/hooks/ui/use-deferred-error.ts
|
|
127
|
-
import * as React from "react";
|
|
128
|
-
function useDeferredError(error, value, delay = 1500) {
|
|
129
|
-
const [touched, setTouched] = React.useState(false);
|
|
130
|
-
const [paused, setPaused] = React.useState(false);
|
|
131
|
-
React.useEffect(() => {
|
|
132
|
-
if (touched) return;
|
|
133
|
-
setPaused(false);
|
|
134
|
-
const timer = setTimeout(() => setPaused(true), delay);
|
|
135
|
-
return () => clearTimeout(timer);
|
|
136
|
-
}, [value, delay, touched]);
|
|
137
|
-
const onBlur = React.useCallback(() => setTouched(true), []);
|
|
138
|
-
return {
|
|
139
|
-
error: error && (touched || paused) ? error : void 0,
|
|
140
|
-
onBlur
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
|
|
144
126
|
// src/hooks/ui/use-header-height.ts
|
|
145
|
-
import { useEffect as
|
|
127
|
+
import { useEffect as useEffect3, useState as useState3 } from "react";
|
|
146
128
|
function useHeaderHeight(defaultHeight = 64) {
|
|
147
|
-
const [height, setHeight] =
|
|
148
|
-
|
|
129
|
+
const [height, setHeight] = useState3(defaultHeight);
|
|
130
|
+
useEffect3(() => {
|
|
149
131
|
const measure = () => {
|
|
150
132
|
let total = 0;
|
|
151
133
|
const header2 = document.querySelector("header");
|
|
@@ -184,22 +166,22 @@ function useHeaderHeight(defaultHeight = 64) {
|
|
|
184
166
|
}
|
|
185
167
|
|
|
186
168
|
// src/hooks/ui/use-horizontal-scrollbar.ts
|
|
187
|
-
import { useRef as useRef2, useState as
|
|
169
|
+
import { useRef as useRef2, useState as useState4, useCallback as useCallback2 } from "react";
|
|
188
170
|
function useHorizontalScrollbar() {
|
|
189
171
|
const scrollElRef = useRef2(null);
|
|
190
172
|
const trackRef = useRef2(null);
|
|
191
173
|
const thumbRef = useRef2(null);
|
|
192
174
|
const roRef = useRef2(null);
|
|
193
175
|
const moRef = useRef2(null);
|
|
194
|
-
const [thumbRatio, setThumbRatio] =
|
|
195
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
196
|
-
const [canScrollRight, setCanScrollRight] =
|
|
176
|
+
const [thumbRatio, setThumbRatio] = useState4(0);
|
|
177
|
+
const [canScrollLeft, setCanScrollLeft] = useState4(false);
|
|
178
|
+
const [canScrollRight, setCanScrollRight] = useState4(false);
|
|
197
179
|
const prevCanScrollLeftRef = useRef2(false);
|
|
198
180
|
const prevCanScrollRightRef = useRef2(false);
|
|
199
181
|
const isDraggingRef = useRef2(false);
|
|
200
182
|
const dragStartRef = useRef2({ mouseX: 0, scrollLeft: 0 });
|
|
201
183
|
const rafIdRef = useRef2(0);
|
|
202
|
-
const syncThumbToDOM =
|
|
184
|
+
const syncThumbToDOM = useCallback2(() => {
|
|
203
185
|
const el = scrollElRef.current;
|
|
204
186
|
const thumb = thumbRef.current;
|
|
205
187
|
if (!el || !thumb) return;
|
|
@@ -212,7 +194,7 @@ function useHorizontalScrollbar() {
|
|
|
212
194
|
const fraction = Math.min(Math.max(el.scrollLeft, 0), maxScroll) / maxScroll;
|
|
213
195
|
thumb.style.left = `${fraction * (1 - ratio) * 100}%`;
|
|
214
196
|
}, []);
|
|
215
|
-
const syncEdgeFades =
|
|
197
|
+
const syncEdgeFades = useCallback2(() => {
|
|
216
198
|
const el = scrollElRef.current;
|
|
217
199
|
if (!el) return;
|
|
218
200
|
const maxScroll = el.scrollWidth - el.clientWidth;
|
|
@@ -240,7 +222,7 @@ function useHorizontalScrollbar() {
|
|
|
240
222
|
setCanScrollRight(right);
|
|
241
223
|
}
|
|
242
224
|
}, []);
|
|
243
|
-
const measure =
|
|
225
|
+
const measure = useCallback2(() => {
|
|
244
226
|
const el = scrollElRef.current;
|
|
245
227
|
if (!el) return;
|
|
246
228
|
const ratio = el.clientWidth / el.scrollWidth;
|
|
@@ -248,7 +230,7 @@ function useHorizontalScrollbar() {
|
|
|
248
230
|
syncThumbToDOM();
|
|
249
231
|
syncEdgeFades();
|
|
250
232
|
}, [syncThumbToDOM, syncEdgeFades]);
|
|
251
|
-
const scrollRef =
|
|
233
|
+
const scrollRef = useCallback2((node) => {
|
|
252
234
|
if (roRef.current) {
|
|
253
235
|
roRef.current.disconnect();
|
|
254
236
|
roRef.current = null;
|
|
@@ -290,7 +272,7 @@ function useHorizontalScrollbar() {
|
|
|
290
272
|
setCanScrollRight(false);
|
|
291
273
|
}
|
|
292
274
|
}, [measure, syncThumbToDOM, syncEdgeFades]);
|
|
293
|
-
const onScroll =
|
|
275
|
+
const onScroll = useCallback2(() => {
|
|
294
276
|
if (isDraggingRef.current) return;
|
|
295
277
|
if (rafIdRef.current) cancelAnimationFrame(rafIdRef.current);
|
|
296
278
|
rafIdRef.current = requestAnimationFrame(() => {
|
|
@@ -298,7 +280,7 @@ function useHorizontalScrollbar() {
|
|
|
298
280
|
syncEdgeFades();
|
|
299
281
|
});
|
|
300
282
|
}, [syncThumbToDOM, syncEdgeFades]);
|
|
301
|
-
const onTrackClick =
|
|
283
|
+
const onTrackClick = useCallback2((e) => {
|
|
302
284
|
if (e.target.closest("[data-scrollbar-thumb]")) return;
|
|
303
285
|
const track = trackRef.current;
|
|
304
286
|
const el = scrollElRef.current;
|
|
@@ -316,13 +298,13 @@ function useHorizontalScrollbar() {
|
|
|
316
298
|
const targetScrollLeft = targetFraction * (el.scrollWidth - el.clientWidth);
|
|
317
299
|
el.scrollTo({ left: targetScrollLeft, behavior: "smooth" });
|
|
318
300
|
}, []);
|
|
319
|
-
const onTrackWheel =
|
|
301
|
+
const onTrackWheel = useCallback2((e) => {
|
|
320
302
|
const el = scrollElRef.current;
|
|
321
303
|
if (!el) return;
|
|
322
304
|
e.preventDefault();
|
|
323
305
|
el.scrollLeft += e.deltaX || e.deltaY;
|
|
324
306
|
}, []);
|
|
325
|
-
const onThumbPointerDown =
|
|
307
|
+
const onThumbPointerDown = useCallback2((e) => {
|
|
326
308
|
e.preventDefault();
|
|
327
309
|
e.stopPropagation();
|
|
328
310
|
const el = scrollElRef.current;
|
|
@@ -333,7 +315,7 @@ function useHorizontalScrollbar() {
|
|
|
333
315
|
target.setPointerCapture(e.pointerId);
|
|
334
316
|
target.style.cursor = "grabbing";
|
|
335
317
|
}, []);
|
|
336
|
-
const onThumbPointerMove =
|
|
318
|
+
const onThumbPointerMove = useCallback2((e) => {
|
|
337
319
|
if (!isDraggingRef.current) return;
|
|
338
320
|
const el = scrollElRef.current;
|
|
339
321
|
const track = trackRef.current;
|
|
@@ -353,7 +335,7 @@ function useHorizontalScrollbar() {
|
|
|
353
335
|
syncThumbToDOM();
|
|
354
336
|
syncEdgeFades();
|
|
355
337
|
}, [syncThumbToDOM, syncEdgeFades]);
|
|
356
|
-
const onThumbPointerUp =
|
|
338
|
+
const onThumbPointerUp = useCallback2((e) => {
|
|
357
339
|
isDraggingRef.current = false;
|
|
358
340
|
const target = e.currentTarget;
|
|
359
341
|
target.releasePointerCapture(e.pointerId);
|
|
@@ -376,7 +358,7 @@ function useHorizontalScrollbar() {
|
|
|
376
358
|
}
|
|
377
359
|
|
|
378
360
|
// src/hooks/ui/use-image-edge-color.ts
|
|
379
|
-
import { useState as
|
|
361
|
+
import { useState as useState5, useEffect as useEffect4 } from "react";
|
|
380
362
|
function extractEdgeColor(img) {
|
|
381
363
|
const canvas = document.createElement("canvas");
|
|
382
364
|
const ctx = canvas.getContext("2d");
|
|
@@ -432,8 +414,8 @@ function extractEdgeColor(img) {
|
|
|
432
414
|
return `rgb(${r}, ${g}, ${b})`;
|
|
433
415
|
}
|
|
434
416
|
function useImageEdgeColor(imageUrl, fallback = "#000000") {
|
|
435
|
-
const [color, setColor] =
|
|
436
|
-
|
|
417
|
+
const [color, setColor] = useState5(fallback);
|
|
418
|
+
useEffect4(() => {
|
|
437
419
|
if (!imageUrl) {
|
|
438
420
|
setColor(fallback);
|
|
439
421
|
return;
|
|
@@ -462,9 +444,9 @@ function useImageEdgeColor(imageUrl, fallback = "#000000") {
|
|
|
462
444
|
}
|
|
463
445
|
|
|
464
446
|
// src/hooks/ui/use-local-storage.ts
|
|
465
|
-
import { useEffect as
|
|
447
|
+
import { useEffect as useEffect5, useRef as useRef3, useState as useState6 } from "react";
|
|
466
448
|
function useLocalStorage(key, initialValue) {
|
|
467
|
-
const [storedValue, setStoredValue] =
|
|
449
|
+
const [storedValue, setStoredValue] = useState6(() => {
|
|
468
450
|
try {
|
|
469
451
|
if (typeof window !== "undefined") {
|
|
470
452
|
const item = window.localStorage.getItem(key);
|
|
@@ -477,7 +459,7 @@ function useLocalStorage(key, initialValue) {
|
|
|
477
459
|
});
|
|
478
460
|
const isInitialized = useRef3(true);
|
|
479
461
|
const isFromStorageEvent = useRef3(false);
|
|
480
|
-
|
|
462
|
+
useEffect5(() => {
|
|
481
463
|
if (!isInitialized.current) return;
|
|
482
464
|
const handleStorageChange = (e) => {
|
|
483
465
|
if (e.key === key && e.newValue !== null) {
|
|
@@ -516,7 +498,7 @@ function useLocalStorage(key, initialValue) {
|
|
|
516
498
|
window.removeEventListener("localStorageUpdate", handleCustomStorageUpdate);
|
|
517
499
|
};
|
|
518
500
|
}, [key]);
|
|
519
|
-
|
|
501
|
+
useEffect5(() => {
|
|
520
502
|
if (!isInitialized.current) return;
|
|
521
503
|
if (isFromStorageEvent.current) {
|
|
522
504
|
isFromStorageEvent.current = false;
|
|
@@ -542,9 +524,9 @@ function useLocalStorage(key, initialValue) {
|
|
|
542
524
|
}
|
|
543
525
|
|
|
544
526
|
// src/hooks/ui/use-media-query.ts
|
|
545
|
-
import { useLayoutEffect, useState as
|
|
527
|
+
import { useLayoutEffect, useState as useState7 } from "react";
|
|
546
528
|
function useMediaQuery(query) {
|
|
547
|
-
const [matches, setMatches] =
|
|
529
|
+
const [matches, setMatches] = useState7(void 0);
|
|
548
530
|
useLayoutEffect(() => {
|
|
549
531
|
const matchMedia = window.matchMedia(query);
|
|
550
532
|
const handleChange = () => {
|
|
@@ -577,7 +559,7 @@ function useLgUp() {
|
|
|
577
559
|
}
|
|
578
560
|
|
|
579
561
|
// src/hooks/ui/use-memoized-callback.ts
|
|
580
|
-
import { useCallback as
|
|
562
|
+
import { useCallback as useCallback3, useRef as useRef4 } from "react";
|
|
581
563
|
function useMemoizedCallback(callback, dependencies) {
|
|
582
564
|
const callbackRef = useRef4(callback);
|
|
583
565
|
const dependenciesRef = useRef4(dependencies);
|
|
@@ -586,15 +568,15 @@ function useMemoizedCallback(callback, dependencies) {
|
|
|
586
568
|
if (depsChanged) {
|
|
587
569
|
dependenciesRef.current = dependencies;
|
|
588
570
|
}
|
|
589
|
-
return
|
|
571
|
+
return useCallback3(((...args) => callbackRef.current(...args)), [depsChanged]);
|
|
590
572
|
}
|
|
591
573
|
|
|
592
574
|
// src/hooks/ui/use-notification-permission.ts
|
|
593
|
-
import { useCallback as
|
|
575
|
+
import { useCallback as useCallback4, useEffect as useEffect6, useState as useState8 } from "react";
|
|
594
576
|
function useNotificationPermission() {
|
|
595
|
-
const [supported, setSupported] =
|
|
596
|
-
const [permission, setPermission] =
|
|
597
|
-
|
|
577
|
+
const [supported, setSupported] = useState8(false);
|
|
578
|
+
const [permission, setPermission] = useState8("default");
|
|
579
|
+
useEffect6(() => {
|
|
598
580
|
if (typeof window === "undefined" || !("Notification" in window)) return;
|
|
599
581
|
setSupported(true);
|
|
600
582
|
const sync = () => setPermission(Notification.permission);
|
|
@@ -615,7 +597,7 @@ function useNotificationPermission() {
|
|
|
615
597
|
window.removeEventListener("focus", sync);
|
|
616
598
|
};
|
|
617
599
|
}, []);
|
|
618
|
-
const request =
|
|
600
|
+
const request = useCallback4(async () => {
|
|
619
601
|
if (typeof window === "undefined" || !("Notification" in window)) {
|
|
620
602
|
return "denied";
|
|
621
603
|
}
|
|
@@ -630,7 +612,7 @@ function useNotificationPermission() {
|
|
|
630
612
|
}
|
|
631
613
|
|
|
632
614
|
// src/hooks/ui/use-onboarding-state.ts
|
|
633
|
-
import { useState as
|
|
615
|
+
import { useState as useState9, useEffect as useEffect7, useCallback as useCallback5 } from "react";
|
|
634
616
|
|
|
635
617
|
// src/utils/onboarding-storage.ts
|
|
636
618
|
var DEFAULT_STATE = {
|
|
@@ -705,9 +687,9 @@ function dismissOnboarding(key) {
|
|
|
705
687
|
|
|
706
688
|
// src/hooks/ui/use-onboarding-state.ts
|
|
707
689
|
function useOnboardingState(storageKey = "openframe-onboarding-state") {
|
|
708
|
-
const [state, setState] =
|
|
709
|
-
const [, forceUpdate] =
|
|
710
|
-
|
|
690
|
+
const [state, setState] = useState9(() => loadOnboardingState(storageKey));
|
|
691
|
+
const [, forceUpdate] = useState9(0);
|
|
692
|
+
useEffect7(() => {
|
|
711
693
|
const handleStorageUpdate = (e) => {
|
|
712
694
|
if (e.detail.key === storageKey) {
|
|
713
695
|
const newState = loadOnboardingState(storageKey);
|
|
@@ -721,38 +703,38 @@ function useOnboardingState(storageKey = "openframe-onboarding-state") {
|
|
|
721
703
|
window.removeEventListener("localStorageUpdate", handleStorageUpdate);
|
|
722
704
|
};
|
|
723
705
|
}, [storageKey]);
|
|
724
|
-
const markComplete =
|
|
706
|
+
const markComplete = useCallback5((stepId) => {
|
|
725
707
|
console.log(`\u{1F3AF} markComplete called for: "${stepId}"`);
|
|
726
708
|
const newState = markStepComplete(storageKey, stepId);
|
|
727
709
|
setState(newState);
|
|
728
710
|
forceUpdate((prev) => prev + 1);
|
|
729
711
|
}, [storageKey]);
|
|
730
|
-
const markSkipped =
|
|
712
|
+
const markSkipped = useCallback5((stepId) => {
|
|
731
713
|
console.log(`\u23ED\uFE0F markSkipped called for: "${stepId}"`);
|
|
732
714
|
const newState = markStepSkipped(storageKey, stepId);
|
|
733
715
|
setState(newState);
|
|
734
716
|
forceUpdate((prev) => prev + 1);
|
|
735
717
|
}, [storageKey]);
|
|
736
|
-
const dismissOnboarding2 =
|
|
718
|
+
const dismissOnboarding2 = useCallback5(() => {
|
|
737
719
|
console.log(`\u{1F6AB} dismissOnboarding called`);
|
|
738
720
|
const newState = dismissOnboarding(storageKey);
|
|
739
721
|
setState(newState);
|
|
740
722
|
forceUpdate((prev) => prev + 1);
|
|
741
723
|
}, [storageKey]);
|
|
742
|
-
const markMultipleComplete2 =
|
|
724
|
+
const markMultipleComplete2 = useCallback5((stepIds) => {
|
|
743
725
|
console.log(`\u{1F3AF} markMultipleComplete called for:`, stepIds);
|
|
744
726
|
const newState = markMultipleComplete(storageKey, stepIds);
|
|
745
727
|
setState(newState);
|
|
746
728
|
forceUpdate((prev) => prev + 1);
|
|
747
729
|
console.log(`\u{1F4DD} State after batch:`, newState);
|
|
748
730
|
}, [storageKey]);
|
|
749
|
-
const isStepComplete =
|
|
731
|
+
const isStepComplete = useCallback5((stepId) => {
|
|
750
732
|
return state.completedSteps.includes(stepId);
|
|
751
733
|
}, [state.completedSteps]);
|
|
752
|
-
const isStepSkipped =
|
|
734
|
+
const isStepSkipped = useCallback5((stepId) => {
|
|
753
735
|
return state.skippedSteps.includes(stepId);
|
|
754
736
|
}, [state.skippedSteps]);
|
|
755
|
-
const allStepsComplete =
|
|
737
|
+
const allStepsComplete = useCallback5((steps) => {
|
|
756
738
|
return steps.every((step) => isStepComplete(step.id) || isStepSkipped(step.id));
|
|
757
739
|
}, [isStepComplete, isStepSkipped]);
|
|
758
740
|
return {
|
|
@@ -768,19 +750,19 @@ function useOnboardingState(storageKey = "openframe-onboarding-state") {
|
|
|
768
750
|
}
|
|
769
751
|
|
|
770
752
|
// src/hooks/ui/use-search.ts
|
|
771
|
-
import { useState as
|
|
753
|
+
import { useState as useState10, useEffect as useEffect8, useCallback as useCallback6 } from "react";
|
|
772
754
|
function useSearch(config) {
|
|
773
755
|
const { searchFn, mapResult, debounceMs = 300, minQueryLength = 2 } = config;
|
|
774
|
-
const [query, setQuery] =
|
|
775
|
-
const [results, setResults] =
|
|
776
|
-
const [isLoading, setIsLoading] =
|
|
777
|
-
const [error, setError] =
|
|
756
|
+
const [query, setQuery] = useState10("");
|
|
757
|
+
const [results, setResults] = useState10([]);
|
|
758
|
+
const [isLoading, setIsLoading] = useState10(false);
|
|
759
|
+
const [error, setError] = useState10(null);
|
|
778
760
|
const debouncedQuery = useDebounce(query, debounceMs);
|
|
779
|
-
const clearResults =
|
|
761
|
+
const clearResults = useCallback6(() => {
|
|
780
762
|
setResults([]);
|
|
781
763
|
setError(null);
|
|
782
764
|
}, []);
|
|
783
|
-
|
|
765
|
+
useEffect8(() => {
|
|
784
766
|
if (!debouncedQuery || debouncedQuery.length < minQueryLength) {
|
|
785
767
|
setResults([]);
|
|
786
768
|
setIsLoading(false);
|
|
@@ -853,11 +835,11 @@ function useTablePagination(config) {
|
|
|
853
835
|
}
|
|
854
836
|
|
|
855
837
|
// src/hooks/ui/use-throttle.ts
|
|
856
|
-
import { useState as
|
|
838
|
+
import { useState as useState11, useEffect as useEffect9, useRef as useRef5 } from "react";
|
|
857
839
|
function useThrottle(value, limit = 200) {
|
|
858
|
-
const [throttledValue, setThrottledValue] =
|
|
840
|
+
const [throttledValue, setThrottledValue] = useState11(value);
|
|
859
841
|
const lastUpdated = useRef5(Date.now());
|
|
860
|
-
|
|
842
|
+
useEffect9(() => {
|
|
861
843
|
const now = Date.now();
|
|
862
844
|
const elapsed = now - lastUpdated.current;
|
|
863
845
|
if (elapsed >= limit) {
|
|
@@ -877,13 +859,13 @@ function useThrottle(value, limit = 200) {
|
|
|
877
859
|
}
|
|
878
860
|
|
|
879
861
|
// src/hooks/ui/use-window-size.ts
|
|
880
|
-
import { useLayoutEffect as useLayoutEffect2, useState as
|
|
862
|
+
import { useLayoutEffect as useLayoutEffect2, useState as useState12 } from "react";
|
|
881
863
|
function useWindowSize() {
|
|
882
|
-
const [windowSize, setWindowSize] =
|
|
864
|
+
const [windowSize, setWindowSize] = useState12({
|
|
883
865
|
width: 0,
|
|
884
866
|
height: 0
|
|
885
867
|
});
|
|
886
|
-
const [isClient, setIsClient] =
|
|
868
|
+
const [isClient, setIsClient] = useState12(false);
|
|
887
869
|
useLayoutEffect2(() => {
|
|
888
870
|
setIsClient(true);
|
|
889
871
|
if (!isClient) return;
|
|
@@ -901,7 +883,7 @@ function useWindowSize() {
|
|
|
901
883
|
}
|
|
902
884
|
|
|
903
885
|
// src/hooks/platform/use-platform-config.ts
|
|
904
|
-
import { useState as
|
|
886
|
+
import { useState as useState13, useEffect as useEffect10 } from "react";
|
|
905
887
|
|
|
906
888
|
// src/utils/platform-config.tsx
|
|
907
889
|
import { Globe } from "lucide-react";
|
|
@@ -1079,10 +1061,10 @@ function getPlatformIconComponent(platformName, className = "h-6 w-6") {
|
|
|
1079
1061
|
var platformCache = null;
|
|
1080
1062
|
var fetchPromise = null;
|
|
1081
1063
|
function usePlatformConfig() {
|
|
1082
|
-
const [platforms, setPlatforms] =
|
|
1083
|
-
const [isLoading, setIsLoading] =
|
|
1084
|
-
const [error, setError] =
|
|
1085
|
-
|
|
1064
|
+
const [platforms, setPlatforms] = useState13(platformCache || []);
|
|
1065
|
+
const [isLoading, setIsLoading] = useState13(!platformCache);
|
|
1066
|
+
const [error, setError] = useState13(null);
|
|
1067
|
+
useEffect10(() => {
|
|
1086
1068
|
if (platformCache) {
|
|
1087
1069
|
setPlatforms(platformCache);
|
|
1088
1070
|
setIsLoading(false);
|
|
@@ -1150,7 +1132,7 @@ function useValidatePlatform(value) {
|
|
|
1150
1132
|
import { toast as sonnerToast2 } from "sonner";
|
|
1151
1133
|
|
|
1152
1134
|
// src/components/ui/toaster.tsx
|
|
1153
|
-
import * as
|
|
1135
|
+
import * as React from "react";
|
|
1154
1136
|
import { Toaster as SonnerToaster, toast as sonnerToast } from "sonner";
|
|
1155
1137
|
|
|
1156
1138
|
// src/types/tool.types.ts
|
|
@@ -1318,7 +1300,7 @@ function CommandApprovalToast({
|
|
|
1318
1300
|
defaultExpanded = false,
|
|
1319
1301
|
className
|
|
1320
1302
|
}) {
|
|
1321
|
-
const [expanded, setExpanded] =
|
|
1303
|
+
const [expanded, setExpanded] = React.useState(defaultExpanded);
|
|
1322
1304
|
const handleApprove = () => {
|
|
1323
1305
|
onApprove?.();
|
|
1324
1306
|
sonnerToast.dismiss(id);
|
|
@@ -1531,7 +1513,7 @@ var useToast = () => ({
|
|
|
1531
1513
|
});
|
|
1532
1514
|
|
|
1533
1515
|
// src/hooks/use-contact-submission.ts
|
|
1534
|
-
import { useState as
|
|
1516
|
+
import { useState as useState15, useCallback as useCallback7, useEffect as useEffect11 } from "react";
|
|
1535
1517
|
init_next_navigation();
|
|
1536
1518
|
|
|
1537
1519
|
// src/utils/local-storage-adapter.ts
|
|
@@ -1792,9 +1774,9 @@ function useContactSubmission(options = {}) {
|
|
|
1792
1774
|
const { toast: toast2 } = useToast();
|
|
1793
1775
|
const router = useRouter();
|
|
1794
1776
|
const { contactUrl } = useRequiredEndpointsRuntime();
|
|
1795
|
-
const [isSubmitting, setIsSubmitting] =
|
|
1796
|
-
const [isSuccess, setIsSuccess] =
|
|
1797
|
-
const submit =
|
|
1777
|
+
const [isSubmitting, setIsSubmitting] = useState15(false);
|
|
1778
|
+
const [isSuccess, setIsSuccess] = useState15(false);
|
|
1779
|
+
const submit = useCallback7(async (formData) => {
|
|
1798
1780
|
if (isSubmitting) return;
|
|
1799
1781
|
setIsSubmitting(true);
|
|
1800
1782
|
try {
|
|
@@ -1829,7 +1811,7 @@ function useContactSubmission(options = {}) {
|
|
|
1829
1811
|
setIsSubmitting(false);
|
|
1830
1812
|
}
|
|
1831
1813
|
}, [isSubmitting, toast2, userId, successToastMessage, contactUrl]);
|
|
1832
|
-
|
|
1814
|
+
useEffect11(() => {
|
|
1833
1815
|
if (isSuccess && successRedirectUrl) {
|
|
1834
1816
|
console.log("\u{1F680} Contact submission successful, redirecting to:", successRedirectUrl);
|
|
1835
1817
|
const timer = setTimeout(() => {
|
|
@@ -1843,7 +1825,7 @@ function useContactSubmission(options = {}) {
|
|
|
1843
1825
|
return () => clearTimeout(timer);
|
|
1844
1826
|
}
|
|
1845
1827
|
}, [isSuccess, successRedirectUrl, router]);
|
|
1846
|
-
|
|
1828
|
+
useEffect11(() => {
|
|
1847
1829
|
if (isSuccess && onSuccess) {
|
|
1848
1830
|
onSuccess();
|
|
1849
1831
|
}
|
|
@@ -1852,19 +1834,19 @@ function useContactSubmission(options = {}) {
|
|
|
1852
1834
|
}
|
|
1853
1835
|
|
|
1854
1836
|
// src/hooks/use-quick-action-hint.ts
|
|
1855
|
-
import { useEffect as
|
|
1837
|
+
import { useEffect as useEffect12, useState as useState16, useRef as useRef6, useCallback as useCallback8 } from "react";
|
|
1856
1838
|
function useQuickActionHint({
|
|
1857
1839
|
actionCount,
|
|
1858
1840
|
cycleDuration = 5e3,
|
|
1859
1841
|
enabled = true
|
|
1860
1842
|
}) {
|
|
1861
|
-
const [activeHintIndex, setActiveHintIndex] =
|
|
1843
|
+
const [activeHintIndex, setActiveHintIndex] = useState16(-1);
|
|
1862
1844
|
const containerRef = useRef6(null);
|
|
1863
1845
|
const timeoutRef = useRef6(null);
|
|
1864
1846
|
const cycleCountRef = useRef6(0);
|
|
1865
1847
|
const currentIndexRef = useRef6(0);
|
|
1866
1848
|
const sequenceRef = useRef6([]);
|
|
1867
|
-
const shuffleIndices =
|
|
1849
|
+
const shuffleIndices = useCallback8((length) => {
|
|
1868
1850
|
const indices = Array.from({ length }, (_, i) => i);
|
|
1869
1851
|
for (let i = indices.length - 1; i > 0; i--) {
|
|
1870
1852
|
const j = Math.floor(Math.random() * (i + 1));
|
|
@@ -1872,7 +1854,7 @@ function useQuickActionHint({
|
|
|
1872
1854
|
}
|
|
1873
1855
|
return indices;
|
|
1874
1856
|
}, []);
|
|
1875
|
-
const stopHint =
|
|
1857
|
+
const stopHint = useCallback8(() => {
|
|
1876
1858
|
if (timeoutRef.current) {
|
|
1877
1859
|
clearTimeout(timeoutRef.current);
|
|
1878
1860
|
timeoutRef.current = null;
|
|
@@ -1882,7 +1864,7 @@ function useQuickActionHint({
|
|
|
1882
1864
|
currentIndexRef.current = 0;
|
|
1883
1865
|
sequenceRef.current = [];
|
|
1884
1866
|
}, []);
|
|
1885
|
-
const advanceHint =
|
|
1867
|
+
const advanceHint = useCallback8(() => {
|
|
1886
1868
|
if (currentIndexRef.current === 0) {
|
|
1887
1869
|
sequenceRef.current = shuffleIndices(actionCount);
|
|
1888
1870
|
}
|
|
@@ -1895,7 +1877,7 @@ function useQuickActionHint({
|
|
|
1895
1877
|
}
|
|
1896
1878
|
timeoutRef.current = setTimeout(advanceHint, cycleDuration);
|
|
1897
1879
|
}, [actionCount, cycleDuration, shuffleIndices]);
|
|
1898
|
-
|
|
1880
|
+
useEffect12(() => {
|
|
1899
1881
|
if (!enabled || actionCount === 0) {
|
|
1900
1882
|
return;
|
|
1901
1883
|
}
|
|
@@ -1921,7 +1903,7 @@ function useQuickActionHint({
|
|
|
1921
1903
|
}
|
|
1922
1904
|
|
|
1923
1905
|
// src/hooks/use-copy-to-clipboard.ts
|
|
1924
|
-
import { useCallback as
|
|
1906
|
+
import { useCallback as useCallback9, useState as useState17 } from "react";
|
|
1925
1907
|
function useCopyToClipboard({
|
|
1926
1908
|
successTitle = "Copied",
|
|
1927
1909
|
successDescription = "Copied to clipboard",
|
|
@@ -1930,8 +1912,8 @@ function useCopyToClipboard({
|
|
|
1930
1912
|
resetDelay = 2e3
|
|
1931
1913
|
} = {}) {
|
|
1932
1914
|
const { toast: toast2 } = useToast();
|
|
1933
|
-
const [copied, setCopied] =
|
|
1934
|
-
const copy =
|
|
1915
|
+
const [copied, setCopied] = useState17(false);
|
|
1916
|
+
const copy = useCallback9(
|
|
1935
1917
|
async (text) => {
|
|
1936
1918
|
try {
|
|
1937
1919
|
await navigator.clipboard.writeText(text);
|
|
@@ -1948,7 +1930,7 @@ function useCopyToClipboard({
|
|
|
1948
1930
|
}
|
|
1949
1931
|
|
|
1950
1932
|
// src/hooks/use-batch-images.ts
|
|
1951
|
-
import { useEffect as
|
|
1933
|
+
import { useEffect as useEffect13, useMemo as useMemo2, useState as useState18, useRef as useRef7 } from "react";
|
|
1952
1934
|
var globalBatchImageConfig = {};
|
|
1953
1935
|
function configureBatchImageFetch(config) {
|
|
1954
1936
|
globalBatchImageConfig = { ...globalBatchImageConfig, ...config };
|
|
@@ -2021,14 +2003,14 @@ async function batchFetchAuthenticatedImages(imageUrls, config) {
|
|
|
2021
2003
|
return results;
|
|
2022
2004
|
}
|
|
2023
2005
|
function useBatchImages(imageUrls, config) {
|
|
2024
|
-
const [fetchedImages, setFetchedImages] =
|
|
2025
|
-
const [loading, setLoading] =
|
|
2006
|
+
const [fetchedImages, setFetchedImages] = useState18({});
|
|
2007
|
+
const [loading, setLoading] = useState18(false);
|
|
2026
2008
|
const uniqueUrls = useMemo2(
|
|
2027
2009
|
() => Array.from(new Set(imageUrls.filter((url) => Boolean(url)))),
|
|
2028
2010
|
[imageUrls]
|
|
2029
2011
|
);
|
|
2030
2012
|
const requestedUrls = useRef7(/* @__PURE__ */ new Set());
|
|
2031
|
-
|
|
2013
|
+
useEffect13(() => {
|
|
2032
2014
|
if (uniqueUrls.length === 0) {
|
|
2033
2015
|
setFetchedImages({});
|
|
2034
2016
|
return;
|
|
@@ -2058,7 +2040,7 @@ function useBatchImages(imageUrls, config) {
|
|
|
2058
2040
|
}
|
|
2059
2041
|
|
|
2060
2042
|
// src/hooks/use-authenticated-image.ts
|
|
2061
|
-
import { useEffect as
|
|
2043
|
+
import { useEffect as useEffect14, useState as useState19, useRef as useRef8 } from "react";
|
|
2062
2044
|
var globalImageConfig = {};
|
|
2063
2045
|
var imageCache = /* @__PURE__ */ new Map();
|
|
2064
2046
|
var pendingRequests = /* @__PURE__ */ new Map();
|
|
@@ -2087,11 +2069,11 @@ function getImageConfig() {
|
|
|
2087
2069
|
};
|
|
2088
2070
|
}
|
|
2089
2071
|
function useAuthenticatedImage(imageUrl, refreshKey, config) {
|
|
2090
|
-
const [fetchedImageUrl, setFetchedImageUrl] =
|
|
2091
|
-
const [isLoading, setIsLoading] =
|
|
2092
|
-
const [error, setError] =
|
|
2072
|
+
const [fetchedImageUrl, setFetchedImageUrl] = useState19();
|
|
2073
|
+
const [isLoading, setIsLoading] = useState19(false);
|
|
2074
|
+
const [error, setError] = useState19(null);
|
|
2093
2075
|
const currentCacheKeyRef = useRef8(null);
|
|
2094
|
-
|
|
2076
|
+
useEffect14(() => {
|
|
2095
2077
|
if (!imageUrl) {
|
|
2096
2078
|
setFetchedImageUrl(void 0);
|
|
2097
2079
|
setIsLoading(false);
|
|
@@ -2202,7 +2184,7 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
|
|
|
2202
2184
|
});
|
|
2203
2185
|
pendingRequests.set(cacheKey, fetchPromise2);
|
|
2204
2186
|
}, [imageUrl, refreshKey, config]);
|
|
2205
|
-
|
|
2187
|
+
useEffect14(() => {
|
|
2206
2188
|
return () => {
|
|
2207
2189
|
if (currentCacheKeyRef.current) {
|
|
2208
2190
|
const entry = imageCache.get(currentCacheKeyRef.current);
|
|
@@ -2217,7 +2199,7 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
|
|
|
2217
2199
|
|
|
2218
2200
|
// src/hooks/state/use-query-params.ts
|
|
2219
2201
|
init_next_navigation();
|
|
2220
|
-
import { useEffect as
|
|
2202
|
+
import { useEffect as useEffect15, useState as useState20, useMemo as useMemo3, useCallback as useCallback10 } from "react";
|
|
2221
2203
|
|
|
2222
2204
|
// src/hooks/state/graphql-parser.ts
|
|
2223
2205
|
import {
|
|
@@ -2679,14 +2661,14 @@ var introspector = new GraphQLIntrospector();
|
|
|
2679
2661
|
function useQueryParams(query, options = {}) {
|
|
2680
2662
|
const router = useRouter();
|
|
2681
2663
|
const searchParams = useSearchParams();
|
|
2682
|
-
const [isLoading, setIsLoading] =
|
|
2683
|
-
const [isReady, setIsReady] =
|
|
2684
|
-
const [error, setError] =
|
|
2685
|
-
const [schema, setSchema] =
|
|
2664
|
+
const [isLoading, setIsLoading] = useState20(true);
|
|
2665
|
+
const [isReady, setIsReady] = useState20(false);
|
|
2666
|
+
const [error, setError] = useState20(null);
|
|
2667
|
+
const [schema, setSchema] = useState20({});
|
|
2686
2668
|
const defaultValues = options.defaultValues || {};
|
|
2687
2669
|
const skipIntrospection = options.skipIntrospection || false;
|
|
2688
2670
|
const debug = options.debug || false;
|
|
2689
|
-
|
|
2671
|
+
useEffect15(() => {
|
|
2690
2672
|
async function initialize() {
|
|
2691
2673
|
try {
|
|
2692
2674
|
if (debug) console.log("[useQueryParams] Initializing...");
|
|
@@ -2756,14 +2738,14 @@ function useQueryParams(query, options = {}) {
|
|
|
2756
2738
|
});
|
|
2757
2739
|
return result;
|
|
2758
2740
|
}, [searchParams]);
|
|
2759
|
-
const updateUrl =
|
|
2741
|
+
const updateUrl = useCallback10((newParams) => {
|
|
2760
2742
|
const url = newParams.toString() ? `?${newParams.toString()}` : window.location.pathname;
|
|
2761
2743
|
if (debug) {
|
|
2762
2744
|
console.log("[useQueryParams] Updating URL:", url);
|
|
2763
2745
|
}
|
|
2764
2746
|
router.replace(url, { scroll: false });
|
|
2765
2747
|
}, [router, debug]);
|
|
2766
|
-
const setParam =
|
|
2748
|
+
const setParam = useCallback10((key, value) => {
|
|
2767
2749
|
if (!isReady) {
|
|
2768
2750
|
console.warn("[useQueryParams] Schema not ready, cannot set param");
|
|
2769
2751
|
return;
|
|
@@ -2777,7 +2759,7 @@ function useQueryParams(query, options = {}) {
|
|
|
2777
2759
|
console.error("[useQueryParams] Failed to set param:", err);
|
|
2778
2760
|
}
|
|
2779
2761
|
}, [variables, schema, isReady, updateUrl]);
|
|
2780
|
-
const setParams =
|
|
2762
|
+
const setParams = useCallback10((updates) => {
|
|
2781
2763
|
if (!isReady) {
|
|
2782
2764
|
console.warn("[useQueryParams] Schema not ready, cannot set params");
|
|
2783
2765
|
return;
|
|
@@ -2791,7 +2773,7 @@ function useQueryParams(query, options = {}) {
|
|
|
2791
2773
|
console.error("[useQueryParams] Failed to set params:", err);
|
|
2792
2774
|
}
|
|
2793
2775
|
}, [variables, schema, isReady, updateUrl]);
|
|
2794
|
-
const clearParamsHandler =
|
|
2776
|
+
const clearParamsHandler = useCallback10((keys) => {
|
|
2795
2777
|
if (!isReady) {
|
|
2796
2778
|
console.warn("[useQueryParams] Schema not ready, cannot clear params");
|
|
2797
2779
|
return;
|
|
@@ -2805,7 +2787,7 @@ function useQueryParams(query, options = {}) {
|
|
|
2805
2787
|
console.error("[useQueryParams] Failed to clear params:", err);
|
|
2806
2788
|
}
|
|
2807
2789
|
}, [variables, schema, isReady, updateUrl]);
|
|
2808
|
-
const resetParams =
|
|
2790
|
+
const resetParams = useCallback10(() => {
|
|
2809
2791
|
if (debug) {
|
|
2810
2792
|
console.log("[useQueryParams] Resetting params");
|
|
2811
2793
|
}
|
|
@@ -2838,7 +2820,7 @@ function applyParamMapping(schema, mapping) {
|
|
|
2838
2820
|
|
|
2839
2821
|
// src/hooks/state/use-api-params.ts
|
|
2840
2822
|
init_next_navigation();
|
|
2841
|
-
import { useCallback as
|
|
2823
|
+
import { useCallback as useCallback11, useMemo as useMemo4, useRef as useRef9 } from "react";
|
|
2842
2824
|
function useContentStable(value, key) {
|
|
2843
2825
|
const ref = useRef9(void 0);
|
|
2844
2826
|
if (ref.current && ref.current.key === key) return ref.current.value;
|
|
@@ -2897,7 +2879,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2897
2879
|
prevParamsRef.current = result;
|
|
2898
2880
|
return result;
|
|
2899
2881
|
}, [searchString, schemaKey, debug]);
|
|
2900
|
-
const addParamToSearchParams =
|
|
2882
|
+
const addParamToSearchParams = useCallback11((searchParams, key, value) => {
|
|
2901
2883
|
if (value === void 0 || value === "" || value === null) {
|
|
2902
2884
|
return;
|
|
2903
2885
|
}
|
|
@@ -2925,7 +2907,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2925
2907
|
}
|
|
2926
2908
|
return newParams;
|
|
2927
2909
|
}, [params, schemaKey, flattenedSchema, addParamToSearchParams]);
|
|
2928
|
-
const updateUrl =
|
|
2910
|
+
const updateUrl = useCallback11((newParams, keysToRemove = []) => {
|
|
2929
2911
|
const finalParams = new URLSearchParams(searchString);
|
|
2930
2912
|
keysToRemove.forEach((key) => {
|
|
2931
2913
|
if (key in stableSchema) {
|
|
@@ -2961,7 +2943,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2961
2943
|
}
|
|
2962
2944
|
return false;
|
|
2963
2945
|
};
|
|
2964
|
-
const setParam =
|
|
2946
|
+
const setParam = useCallback11((key, value) => {
|
|
2965
2947
|
const config = stableSchema[key];
|
|
2966
2948
|
if (!config) {
|
|
2967
2949
|
console.warn(`[useApiParams] Unknown parameter: ${key}`);
|
|
@@ -2975,7 +2957,7 @@ function useApiParams(schema, options = {}) {
|
|
|
2975
2957
|
updateUrl(newParams);
|
|
2976
2958
|
}
|
|
2977
2959
|
}, [schemaKey, updateUrl, addParamToSearchParams]);
|
|
2978
|
-
const setParams =
|
|
2960
|
+
const setParams = useCallback11((updates) => {
|
|
2979
2961
|
const newParams = new URLSearchParams();
|
|
2980
2962
|
const keysToRemove = [];
|
|
2981
2963
|
for (const [key, value] of Object.entries(updates)) {
|
|
@@ -2992,11 +2974,11 @@ function useApiParams(schema, options = {}) {
|
|
|
2992
2974
|
}
|
|
2993
2975
|
updateUrl(newParams, keysToRemove);
|
|
2994
2976
|
}, [schemaKey, updateUrl, addParamToSearchParams]);
|
|
2995
|
-
const clearParams2 =
|
|
2977
|
+
const clearParams2 = useCallback11((keys) => {
|
|
2996
2978
|
const newParams = new URLSearchParams();
|
|
2997
2979
|
updateUrl(newParams, keys);
|
|
2998
2980
|
}, [updateUrl]);
|
|
2999
|
-
const resetParams =
|
|
2981
|
+
const resetParams = useCallback11(() => {
|
|
3000
2982
|
if (debug) {
|
|
3001
2983
|
console.log("[useApiParams] Resetting params");
|
|
3002
2984
|
}
|
|
@@ -3033,7 +3015,7 @@ function createSearchParams(params) {
|
|
|
3033
3015
|
}
|
|
3034
3016
|
|
|
3035
3017
|
// src/hooks/state/use-cursor-pagination-state.ts
|
|
3036
|
-
import { useCallback as
|
|
3018
|
+
import { useCallback as useCallback12, useEffect as useEffect16, useRef as useRef10, useState as useState21 } from "react";
|
|
3037
3019
|
var urlSchema = {
|
|
3038
3020
|
search: { type: "string", default: "" },
|
|
3039
3021
|
cursor: { type: "string", default: "" }
|
|
@@ -3044,13 +3026,13 @@ function useCursorPaginationState(options) {
|
|
|
3044
3026
|
onSearchChange
|
|
3045
3027
|
} = options;
|
|
3046
3028
|
const { params, setParam, setParams } = useApiParams(urlSchema);
|
|
3047
|
-
const [searchInput, setSearchInput] =
|
|
3048
|
-
const [hasLoadedBeyondFirst, setHasLoadedBeyondFirst] =
|
|
3049
|
-
const [initialLoadCount, setInitialLoadCount] =
|
|
3029
|
+
const [searchInput, setSearchInput] = useState21(params.search || "");
|
|
3030
|
+
const [hasLoadedBeyondFirst, setHasLoadedBeyondFirst] = useState21(false);
|
|
3031
|
+
const [initialLoadCount, setInitialLoadCount] = useState21(0);
|
|
3050
3032
|
const lastSearchRef = useRef10(null);
|
|
3051
3033
|
const isSyncingFromUrl = useRef10(false);
|
|
3052
3034
|
const isInitialLoadInProgress = useRef10(true);
|
|
3053
|
-
|
|
3035
|
+
useEffect16(() => {
|
|
3054
3036
|
if (isInitialLoadInProgress.current) return;
|
|
3055
3037
|
const urlSearch = params.search || "";
|
|
3056
3038
|
if (urlSearch !== searchInput) {
|
|
@@ -3061,7 +3043,7 @@ function useCursorPaginationState(options) {
|
|
|
3061
3043
|
}, 0);
|
|
3062
3044
|
}
|
|
3063
3045
|
}, [params.search, initialLoadCount]);
|
|
3064
|
-
|
|
3046
|
+
useEffect16(() => {
|
|
3065
3047
|
if (isInitialLoadInProgress.current) return;
|
|
3066
3048
|
if (isSyncingFromUrl.current) return;
|
|
3067
3049
|
if (searchInput !== params.search) {
|
|
@@ -3072,7 +3054,7 @@ function useCursorPaginationState(options) {
|
|
|
3072
3054
|
});
|
|
3073
3055
|
}
|
|
3074
3056
|
}, [searchInput, params.search, setParams, initialLoadCount]);
|
|
3075
|
-
|
|
3057
|
+
useEffect16(() => {
|
|
3076
3058
|
if (initialLoadCount === 0) {
|
|
3077
3059
|
const cursor = params.cursor || null;
|
|
3078
3060
|
const search = params.search || "";
|
|
@@ -3086,7 +3068,7 @@ function useCursorPaginationState(options) {
|
|
|
3086
3068
|
});
|
|
3087
3069
|
}
|
|
3088
3070
|
}, []);
|
|
3089
|
-
|
|
3071
|
+
useEffect16(() => {
|
|
3090
3072
|
if (isInitialLoadInProgress.current) return;
|
|
3091
3073
|
if (initialLoadCount === 0) return;
|
|
3092
3074
|
const currentSearch = params.search || "";
|
|
@@ -3096,7 +3078,7 @@ function useCursorPaginationState(options) {
|
|
|
3096
3078
|
onSearchChange(currentSearch);
|
|
3097
3079
|
}
|
|
3098
3080
|
}, [params.search, onSearchChange, initialLoadCount]);
|
|
3099
|
-
const handleNextPage =
|
|
3081
|
+
const handleNextPage = useCallback12(
|
|
3100
3082
|
async (endCursor, fetchFn) => {
|
|
3101
3083
|
setParam("cursor", endCursor);
|
|
3102
3084
|
await fetchFn();
|
|
@@ -3104,7 +3086,7 @@ function useCursorPaginationState(options) {
|
|
|
3104
3086
|
},
|
|
3105
3087
|
[setParam]
|
|
3106
3088
|
);
|
|
3107
|
-
const handleResetToFirstPage =
|
|
3089
|
+
const handleResetToFirstPage = useCallback12(
|
|
3108
3090
|
async (fetchFn) => {
|
|
3109
3091
|
setParam("cursor", "");
|
|
3110
3092
|
await fetchFn();
|
|
@@ -3126,16 +3108,16 @@ function useCursorPaginationState(options) {
|
|
|
3126
3108
|
}
|
|
3127
3109
|
|
|
3128
3110
|
// src/hooks/nats/use-nats-client.ts
|
|
3129
|
-
import { useEffect as
|
|
3111
|
+
import { useEffect as useEffect17, useMemo as useMemo5, useState as useState22 } from "react";
|
|
3130
3112
|
function useNatsClient(clientOptions, options = {}) {
|
|
3131
3113
|
const { autoConnect = true } = options;
|
|
3132
3114
|
const client = useMemo5(() => {
|
|
3133
3115
|
if (!clientOptions) return null;
|
|
3134
3116
|
return createNatsClient(clientOptions);
|
|
3135
3117
|
}, [clientOptions]);
|
|
3136
|
-
const [status, setStatus] =
|
|
3137
|
-
const [lastError, setLastError] =
|
|
3138
|
-
|
|
3118
|
+
const [status, setStatus] = useState22("disconnected");
|
|
3119
|
+
const [lastError, setLastError] = useState22(null);
|
|
3120
|
+
useEffect17(() => {
|
|
3139
3121
|
if (!client) {
|
|
3140
3122
|
setStatus("disconnected");
|
|
3141
3123
|
setLastError(null);
|
|
@@ -3166,7 +3148,7 @@ function useNatsClient(clientOptions, options = {}) {
|
|
|
3166
3148
|
}
|
|
3167
3149
|
|
|
3168
3150
|
// src/hooks/use-near-viewport.ts
|
|
3169
|
-
import { useEffect as
|
|
3151
|
+
import { useEffect as useEffect18, useRef as useRef11, useState as useState23, useCallback as useCallback13 } from "react";
|
|
3170
3152
|
var observers = /* @__PURE__ */ new Map();
|
|
3171
3153
|
var subscribers = /* @__PURE__ */ new WeakMap();
|
|
3172
3154
|
function getObserverFor(rootMargin) {
|
|
@@ -3190,9 +3172,9 @@ function getObserverFor(rootMargin) {
|
|
|
3190
3172
|
return io;
|
|
3191
3173
|
}
|
|
3192
3174
|
function useNearViewport(rootMargin = "500px") {
|
|
3193
|
-
const [isNear, setIsNear] =
|
|
3175
|
+
const [isNear, setIsNear] = useState23(false);
|
|
3194
3176
|
const elRef = useRef11(null);
|
|
3195
|
-
const ref =
|
|
3177
|
+
const ref = useCallback13(
|
|
3196
3178
|
(node) => {
|
|
3197
3179
|
const prev = elRef.current;
|
|
3198
3180
|
if (prev) {
|
|
@@ -3210,7 +3192,7 @@ function useNearViewport(rootMargin = "500px") {
|
|
|
3210
3192
|
},
|
|
3211
3193
|
[rootMargin]
|
|
3212
3194
|
);
|
|
3213
|
-
|
|
3195
|
+
useEffect18(() => {
|
|
3214
3196
|
return () => {
|
|
3215
3197
|
const el = elRef.current;
|
|
3216
3198
|
if (!el) return;
|
|
@@ -3224,7 +3206,7 @@ function useNearViewport(rootMargin = "500px") {
|
|
|
3224
3206
|
}
|
|
3225
3207
|
|
|
3226
3208
|
// src/hooks/use-access-code-integration.ts
|
|
3227
|
-
import
|
|
3209
|
+
import React2 from "react";
|
|
3228
3210
|
|
|
3229
3211
|
// src/utils/access-code-client.ts
|
|
3230
3212
|
async function validateAccessCode(email, code, endpoints) {
|
|
@@ -3287,8 +3269,8 @@ async function validateAndConsumeAccessCode(email, code, endpoints) {
|
|
|
3287
3269
|
function useAccessCodeIntegration() {
|
|
3288
3270
|
const runtime = useRequiredEndpointsRuntime();
|
|
3289
3271
|
const endpoints = runtime.accessCode;
|
|
3290
|
-
const [isValidating, setIsValidating] =
|
|
3291
|
-
const [isConsuming, setIsConsuming] =
|
|
3272
|
+
const [isValidating, setIsValidating] = React2.useState(false);
|
|
3273
|
+
const [isConsuming, setIsConsuming] = React2.useState(false);
|
|
3292
3274
|
const validate = async (email, code) => {
|
|
3293
3275
|
setIsValidating(true);
|
|
3294
3276
|
try {
|
|
@@ -3368,7 +3350,7 @@ function useOgPlaceholderUrl({
|
|
|
3368
3350
|
}
|
|
3369
3351
|
|
|
3370
3352
|
// src/hooks/use-scroll-to-hash.ts
|
|
3371
|
-
import { useEffect as
|
|
3353
|
+
import { useEffect as useEffect19 } from "react";
|
|
3372
3354
|
|
|
3373
3355
|
// src/utils/scroll-into-view.ts
|
|
3374
3356
|
var activeRaf = 0;
|
|
@@ -3506,7 +3488,7 @@ function navigateSamePageHash(target, options = {}) {
|
|
|
3506
3488
|
var MAX_POLL_FRAMES = 60;
|
|
3507
3489
|
function useScrollToHash(readyDep = true, options) {
|
|
3508
3490
|
const headerOffset = options?.headerOffset ?? 0;
|
|
3509
|
-
|
|
3491
|
+
useEffect19(() => {
|
|
3510
3492
|
if (typeof window === "undefined") return;
|
|
3511
3493
|
if (readyDep === null || readyDep === false) return;
|
|
3512
3494
|
let rafId = null;
|
|
@@ -3546,7 +3528,7 @@ function useScrollToHash(readyDep = true, options) {
|
|
|
3546
3528
|
}
|
|
3547
3529
|
|
|
3548
3530
|
// src/hooks/use-humanity-signals.ts
|
|
3549
|
-
import { useCallback as
|
|
3531
|
+
import { useCallback as useCallback14, useRef as useRef12 } from "react";
|
|
3550
3532
|
|
|
3551
3533
|
// src/utils/humanity-signals.ts
|
|
3552
3534
|
var HONEYPOT_FIELD = "contact_url_confirm";
|
|
@@ -3572,14 +3554,14 @@ var splitCsvEnv = (s) => s?.split(",").map((t) => t.trim()).filter(Boolean) ?? [
|
|
|
3572
3554
|
function useHumanitySignals() {
|
|
3573
3555
|
const ref = useRef12(null);
|
|
3574
3556
|
const mountedAt = useRef12(typeof performance !== "undefined" ? performance.now() : 0);
|
|
3575
|
-
const getSignals =
|
|
3557
|
+
const getSignals = useCallback14(
|
|
3576
3558
|
() => ({
|
|
3577
3559
|
[HONEYPOT_FIELD]: ref.current?.value ?? "",
|
|
3578
3560
|
[ELAPSED_MS_FIELD]: typeof performance !== "undefined" ? Math.round(performance.now() - mountedAt.current) : 0
|
|
3579
3561
|
}),
|
|
3580
3562
|
[]
|
|
3581
3563
|
);
|
|
3582
|
-
const resetSignals =
|
|
3564
|
+
const resetSignals = useCallback14(() => {
|
|
3583
3565
|
if (ref.current) ref.current.value = "";
|
|
3584
3566
|
if (typeof performance !== "undefined") mountedAt.current = performance.now();
|
|
3585
3567
|
}, []);
|
|
@@ -3589,7 +3571,6 @@ function useHumanitySignals() {
|
|
|
3589
3571
|
export {
|
|
3590
3572
|
useAutoLimitTags,
|
|
3591
3573
|
useDebounce,
|
|
3592
|
-
useDeferredError,
|
|
3593
3574
|
useHeaderHeight,
|
|
3594
3575
|
useHorizontalScrollbar,
|
|
3595
3576
|
useImageEdgeColor,
|
|
@@ -3700,4 +3681,4 @@ export {
|
|
|
3700
3681
|
splitCsvEnv,
|
|
3701
3682
|
useHumanitySignals
|
|
3702
3683
|
};
|
|
3703
|
-
//# sourceMappingURL=chunk-
|
|
3684
|
+
//# sourceMappingURL=chunk-ZSZRJWY3.js.map
|