@flamingo-stack/openframe-frontend-core 0.0.499 → 0.0.500

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/{chunk-XV22URNM.cjs → chunk-4NDGD2YH.cjs} +19 -19
  2. package/dist/{chunk-XV22URNM.cjs.map → chunk-4NDGD2YH.cjs.map} +1 -1
  3. package/dist/{chunk-YDNIQLAP.js → chunk-5CY6YKWY.js} +6 -6
  4. package/dist/{chunk-Q66TP2LY.js → chunk-6TJJFQ74.js} +6 -6
  5. package/dist/{chunk-47LHA4QI.cjs → chunk-C5R2OX7A.cjs} +7 -2
  6. package/dist/chunk-C5R2OX7A.cjs.map +1 -0
  7. package/dist/{chunk-NSDDV4F6.cjs → chunk-ETU6VFOL.cjs} +40 -40
  8. package/dist/{chunk-NSDDV4F6.cjs.map → chunk-ETU6VFOL.cjs.map} +1 -1
  9. package/dist/{chunk-WJ2S6I34.cjs → chunk-GDUWGCPP.cjs} +12 -12
  10. package/dist/{chunk-WJ2S6I34.cjs.map → chunk-GDUWGCPP.cjs.map} +1 -1
  11. package/dist/{chunk-44YXQBNM.cjs → chunk-I64ZGPA6.cjs} +3 -3
  12. package/dist/{chunk-44YXQBNM.cjs.map → chunk-I64ZGPA6.cjs.map} +1 -1
  13. package/dist/{chunk-7DUMNMED.cjs → chunk-IDRKW6MS.cjs} +12 -12
  14. package/dist/{chunk-7DUMNMED.cjs.map → chunk-IDRKW6MS.cjs.map} +1 -1
  15. package/dist/{chunk-SGL6URIJ.cjs → chunk-L5CI57RM.cjs} +9 -5
  16. package/dist/chunk-L5CI57RM.cjs.map +1 -0
  17. package/dist/{chunk-Q6B7VAHN.cjs → chunk-LN2X4XAB.cjs} +18 -18
  18. package/dist/{chunk-Q6B7VAHN.cjs.map → chunk-LN2X4XAB.cjs.map} +1 -1
  19. package/dist/{chunk-RAL274JM.js → chunk-P3B65FBX.js} +4 -4
  20. package/dist/{chunk-QWCW4Z75.js → chunk-P5UMIPKR.js} +5 -5
  21. package/dist/{chunk-QL5YB4F7.js → chunk-P7IOCYGD.js} +52 -47
  22. package/dist/chunk-P7IOCYGD.js.map +1 -0
  23. package/dist/{chunk-V2APV4E4.cjs → chunk-PAO45LBQ.cjs} +1113 -916
  24. package/dist/chunk-PAO45LBQ.cjs.map +1 -0
  25. package/dist/{chunk-3AXJESKA.js → chunk-QQAKDJPE.js} +3 -3
  26. package/dist/{chunk-O7JY7LRP.js → chunk-R2IGOYHU.js} +3 -3
  27. package/dist/{chunk-RBZOUGCL.cjs → chunk-S3COVC7H.cjs} +73 -73
  28. package/dist/{chunk-RBZOUGCL.cjs.map → chunk-S3COVC7H.cjs.map} +1 -1
  29. package/dist/{chunk-QUFB5SDZ.js → chunk-SOX7CGFX.js} +303 -106
  30. package/dist/{chunk-QUFB5SDZ.js.map → chunk-SOX7CGFX.js.map} +1 -1
  31. package/dist/{chunk-W42256FC.cjs → chunk-TJCUGL7S.cjs} +33 -33
  32. package/dist/{chunk-W42256FC.cjs.map → chunk-TJCUGL7S.cjs.map} +1 -1
  33. package/dist/{chunk-SSYE7BQC.js → chunk-UM2YFCPE.js} +3 -3
  34. package/dist/{chunk-2CEDCSYD.cjs → chunk-V5ALIJZ6.cjs} +32 -32
  35. package/dist/{chunk-2CEDCSYD.cjs.map → chunk-V5ALIJZ6.cjs.map} +1 -1
  36. package/dist/{chunk-EP7ELZTU.cjs → chunk-VLI6ESJN.cjs} +93 -93
  37. package/dist/{chunk-EP7ELZTU.cjs.map → chunk-VLI6ESJN.cjs.map} +1 -1
  38. package/dist/{chunk-BAMTV6GL.js → chunk-VMDQDD5Y.js} +2 -2
  39. package/dist/{chunk-IUP26OXG.js → chunk-VPQBQJ4S.js} +2 -2
  40. package/dist/{chunk-TTJSLIXA.js → chunk-W6Y66G4K.js} +3 -3
  41. package/dist/{chunk-QKWOBV55.js → chunk-WHJGRRK2.js} +9 -5
  42. package/dist/chunk-WHJGRRK2.js.map +1 -0
  43. package/dist/{chunk-AEZ5BXLJ.js → chunk-XBLRT3MX.js} +4 -4
  44. package/dist/{chunk-FLZTUE2T.cjs → chunk-YSN2AZJR.cjs} +5 -5
  45. package/dist/{chunk-FLZTUE2T.cjs.map → chunk-YSN2AZJR.cjs.map} +1 -1
  46. package/dist/{chunk-6QVV3OLL.cjs → chunk-ZLJCE75C.cjs} +40 -40
  47. package/dist/{chunk-6QVV3OLL.cjs.map → chunk-ZLJCE75C.cjs.map} +1 -1
  48. package/dist/{chunk-UD4IT3GY.js → chunk-ZU27I5NZ.js} +6 -6
  49. package/dist/components/case-studies/index.cjs +10 -10
  50. package/dist/components/case-studies/index.js +4 -4
  51. package/dist/components/chat/index.cjs +4 -4
  52. package/dist/components/chat/index.js +3 -3
  53. package/dist/components/contact/index.cjs +5 -5
  54. package/dist/components/contact/index.js +4 -4
  55. package/dist/components/docs/index.cjs +7 -7
  56. package/dist/components/docs/index.js +6 -6
  57. package/dist/components/embeds/index.cjs +5 -5
  58. package/dist/components/embeds/index.js +4 -4
  59. package/dist/components/faq/index.cjs +6 -6
  60. package/dist/components/faq/index.js +5 -5
  61. package/dist/components/features/filters-dropdown.d.ts.map +1 -1
  62. package/dist/components/features/index.cjs +4 -4
  63. package/dist/components/features/index.js +3 -3
  64. package/dist/components/help-center-pages/index.cjs +23 -23
  65. package/dist/components/help-center-pages/index.js +14 -14
  66. package/dist/components/index.cjs +165 -161
  67. package/dist/components/index.cjs.map +1 -1
  68. package/dist/components/index.js +16 -12
  69. package/dist/components/index.js.map +1 -1
  70. package/dist/components/navigation/app-header.d.ts +48 -0
  71. package/dist/components/navigation/app-header.d.ts.map +1 -1
  72. package/dist/components/navigation/header-mingo-button.d.ts.map +1 -1
  73. package/dist/components/navigation/index.cjs +6 -4
  74. package/dist/components/navigation/index.cjs.map +1 -1
  75. package/dist/components/navigation/index.d.ts +2 -2
  76. package/dist/components/navigation/index.d.ts.map +1 -1
  77. package/dist/components/navigation/index.js +5 -3
  78. package/dist/components/navigation/navigation-sidebar-item.d.ts +14 -0
  79. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  80. package/dist/components/navigation/navigation-sidebar-toggle.d.ts.map +1 -1
  81. package/dist/components/navigation/navigation-sidebar.d.ts +18 -0
  82. package/dist/components/navigation/navigation-sidebar.d.ts.map +1 -1
  83. package/dist/components/onboarding-guides/index.cjs +8 -8
  84. package/dist/components/onboarding-guides/index.js +7 -7
  85. package/dist/components/related-content/index.cjs +6 -6
  86. package/dist/components/related-content/index.js +5 -5
  87. package/dist/components/tickets/index.cjs +7 -7
  88. package/dist/components/tickets/index.js +6 -6
  89. package/dist/components/ui/button/button-styles.d.ts +1 -0
  90. package/dist/components/ui/button/button-styles.d.ts.map +1 -1
  91. package/dist/components/ui/button/button.d.ts.map +1 -1
  92. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  93. package/dist/components/ui/data-table/data-table-column-filter.d.ts.map +1 -1
  94. package/dist/components/ui/data-table/data-table-header.d.ts.map +1 -1
  95. package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
  96. package/dist/components/ui/data-table/data-table-skeleton.d.ts +12 -0
  97. package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +1 -1
  98. package/dist/components/ui/data-table/index.d.ts +1 -1
  99. package/dist/components/ui/data-table/index.d.ts.map +1 -1
  100. package/dist/components/ui/data-table/utils.d.ts +18 -0
  101. package/dist/components/ui/data-table/utils.d.ts.map +1 -1
  102. package/dist/components/ui/file-manager/index.cjs +50 -50
  103. package/dist/components/ui/file-manager/index.js +1 -1
  104. package/dist/components/ui/index.cjs +6 -4
  105. package/dist/components/ui/index.cjs.map +1 -1
  106. package/dist/components/ui/index.js +5 -3
  107. package/dist/hooks/index.cjs +4 -2
  108. package/dist/hooks/index.cjs.map +1 -1
  109. package/dist/hooks/index.js +3 -1
  110. package/dist/hooks/ui/index.d.ts +1 -0
  111. package/dist/hooks/ui/index.d.ts.map +1 -1
  112. package/dist/hooks/ui/use-isomorphic-layout-effect.d.ts +17 -0
  113. package/dist/hooks/ui/use-isomorphic-layout-effect.d.ts.map +1 -0
  114. package/dist/index.cjs +10 -4
  115. package/dist/index.cjs.map +1 -1
  116. package/dist/index.js +9 -3
  117. package/dist/types/navigation.d.ts +24 -0
  118. package/dist/types/navigation.d.ts.map +1 -1
  119. package/package.json +1 -1
  120. package/src/components/features/filters-dropdown.tsx +17 -5
  121. package/src/components/navigation/app-header.tsx +178 -0
  122. package/src/components/navigation/header-mingo-button.tsx +5 -0
  123. package/src/components/navigation/index.ts +2 -2
  124. package/src/components/navigation/navigation-sidebar-item.tsx +22 -0
  125. package/src/components/navigation/navigation-sidebar-toggle.tsx +10 -6
  126. package/src/components/navigation/navigation-sidebar.tsx +187 -44
  127. package/src/components/ui/button/button-styles.ts +11 -0
  128. package/src/components/ui/button/button.tsx +6 -3
  129. package/src/components/ui/button/split-button.tsx +2 -2
  130. package/src/components/ui/data-table/data-table-body.tsx +5 -2
  131. package/src/components/ui/data-table/data-table-column-filter.tsx +54 -25
  132. package/src/components/ui/data-table/data-table-header.tsx +134 -45
  133. package/src/components/ui/data-table/data-table-row.tsx +3 -2
  134. package/src/components/ui/data-table/data-table-skeleton.tsx +17 -2
  135. package/src/components/ui/data-table/index.ts +1 -1
  136. package/src/components/ui/data-table/utils.ts +49 -3
  137. package/src/hooks/ui/index.ts +1 -0
  138. package/src/hooks/ui/use-isomorphic-layout-effect.ts +20 -0
  139. package/src/types/navigation.ts +21 -0
  140. package/dist/chunk-47LHA4QI.cjs.map +0 -1
  141. package/dist/chunk-QKWOBV55.js.map +0 -1
  142. package/dist/chunk-QL5YB4F7.js.map +0 -1
  143. package/dist/chunk-SGL6URIJ.cjs.map +0 -1
  144. package/dist/chunk-V2APV4E4.cjs.map +0 -1
  145. /package/dist/{chunk-YDNIQLAP.js.map → chunk-5CY6YKWY.js.map} +0 -0
  146. /package/dist/{chunk-Q66TP2LY.js.map → chunk-6TJJFQ74.js.map} +0 -0
  147. /package/dist/{chunk-RAL274JM.js.map → chunk-P3B65FBX.js.map} +0 -0
  148. /package/dist/{chunk-QWCW4Z75.js.map → chunk-P5UMIPKR.js.map} +0 -0
  149. /package/dist/{chunk-3AXJESKA.js.map → chunk-QQAKDJPE.js.map} +0 -0
  150. /package/dist/{chunk-O7JY7LRP.js.map → chunk-R2IGOYHU.js.map} +0 -0
  151. /package/dist/{chunk-SSYE7BQC.js.map → chunk-UM2YFCPE.js.map} +0 -0
  152. /package/dist/{chunk-BAMTV6GL.js.map → chunk-VMDQDD5Y.js.map} +0 -0
  153. /package/dist/{chunk-IUP26OXG.js.map → chunk-VPQBQJ4S.js.map} +0 -0
  154. /package/dist/{chunk-TTJSLIXA.js.map → chunk-W6Y66G4K.js.map} +0 -0
  155. /package/dist/{chunk-AEZ5BXLJ.js.map → chunk-XBLRT3MX.js.map} +0 -0
  156. /package/dist/{chunk-UD4IT3GY.js.map → chunk-ZU27I5NZ.js.map} +0 -0
@@ -543,8 +543,12 @@ function useIsTruncated(value, options) {
543
543
  return { ref, isTruncated };
544
544
  }
545
545
 
546
+ // src/hooks/ui/use-isomorphic-layout-effect.ts
547
+ import { useEffect as useEffect8, useLayoutEffect } from "react";
548
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect8;
549
+
546
550
  // src/hooks/ui/use-local-storage.ts
547
- import { useEffect as useEffect8, useRef as useRef4, useState as useState8 } from "react";
551
+ import { useEffect as useEffect9, useRef as useRef4, useState as useState8 } from "react";
548
552
  function useLocalStorage(key, initialValue) {
549
553
  const [storedValue, setStoredValue] = useState8(() => {
550
554
  try {
@@ -559,7 +563,7 @@ function useLocalStorage(key, initialValue) {
559
563
  });
560
564
  const isInitialized = useRef4(true);
561
565
  const isFromStorageEvent = useRef4(false);
562
- useEffect8(() => {
566
+ useEffect9(() => {
563
567
  if (!isInitialized.current) return;
564
568
  const handleStorageChange = (e) => {
565
569
  if (e.key === key && e.newValue !== null) {
@@ -598,7 +602,7 @@ function useLocalStorage(key, initialValue) {
598
602
  window.removeEventListener("localStorageUpdate", handleCustomStorageUpdate);
599
603
  };
600
604
  }, [key]);
601
- useEffect8(() => {
605
+ useEffect9(() => {
602
606
  if (!isInitialized.current) return;
603
607
  if (isFromStorageEvent.current) {
604
608
  isFromStorageEvent.current = false;
@@ -624,7 +628,7 @@ function useLocalStorage(key, initialValue) {
624
628
  }
625
629
 
626
630
  // src/hooks/ui/use-marquee-engine.ts
627
- import { useCallback as useCallback5, useEffect as useEffect9, useRef as useRef5 } from "react";
631
+ import { useCallback as useCallback5, useEffect as useEffect10, useRef as useRef5 } from "react";
628
632
  var RESYNC_EPSILON = 1.5;
629
633
  function useMarqueeEngine(options) {
630
634
  const posRef = useRef5(0);
@@ -644,7 +648,7 @@ function useMarqueeEngine(options) {
644
648
  glideRemainingRef.current += px;
645
649
  }, []);
646
650
  const active = options.active;
647
- useEffect9(() => {
651
+ useEffect10(() => {
648
652
  if (!active) return;
649
653
  let raf = 0;
650
654
  let last = performance.now();
@@ -689,10 +693,10 @@ function useMarqueeEngine(options) {
689
693
  }
690
694
 
691
695
  // src/hooks/ui/use-media-query.ts
692
- import { useLayoutEffect, useState as useState9 } from "react";
696
+ import { useLayoutEffect as useLayoutEffect2, useState as useState9 } from "react";
693
697
  function useMediaQuery(query) {
694
698
  const [matches, setMatches] = useState9(void 0);
695
- useLayoutEffect(() => {
699
+ useLayoutEffect2(() => {
696
700
  const matchMedia = window.matchMedia(query);
697
701
  const handleChange = () => {
698
702
  setMatches(matchMedia.matches);
@@ -737,11 +741,11 @@ function useMemoizedCallback(callback, dependencies) {
737
741
  }
738
742
 
739
743
  // src/hooks/ui/use-notification-permission.ts
740
- import { useCallback as useCallback7, useEffect as useEffect10, useState as useState10 } from "react";
744
+ import { useCallback as useCallback7, useEffect as useEffect11, useState as useState10 } from "react";
741
745
  function useNotificationPermission() {
742
746
  const [supported, setSupported] = useState10(false);
743
747
  const [permission, setPermission] = useState10("default");
744
- useEffect10(() => {
748
+ useEffect11(() => {
745
749
  if (typeof window === "undefined" || !("Notification" in window)) return;
746
750
  setSupported(true);
747
751
  const sync = () => setPermission(Notification.permission);
@@ -777,7 +781,7 @@ function useNotificationPermission() {
777
781
  }
778
782
 
779
783
  // src/hooks/ui/use-onboarding-state.ts
780
- import { useState as useState11, useEffect as useEffect11, useCallback as useCallback8 } from "react";
784
+ import { useState as useState11, useEffect as useEffect12, useCallback as useCallback8 } from "react";
781
785
 
782
786
  // src/utils/onboarding-storage.ts
783
787
  var DEFAULT_STATE = {
@@ -854,7 +858,7 @@ function dismissOnboarding(key) {
854
858
  function useOnboardingState(storageKey = "openframe-onboarding-state") {
855
859
  const [state, setState] = useState11(() => loadOnboardingState(storageKey));
856
860
  const [, forceUpdate] = useState11(0);
857
- useEffect11(() => {
861
+ useEffect12(() => {
858
862
  const handleStorageUpdate = (e) => {
859
863
  if (e.detail.key === storageKey) {
860
864
  const newState = loadOnboardingState(storageKey);
@@ -915,9 +919,9 @@ function useOnboardingState(storageKey = "openframe-onboarding-state") {
915
919
  }
916
920
 
917
921
  // src/hooks/ui/use-reset-on-page-hidden.ts
918
- import { useEffect as useEffect12 } from "react";
922
+ import { useEffect as useEffect13 } from "react";
919
923
  function useResetOnPageHidden(reset) {
920
- useEffect12(() => {
924
+ useEffect13(() => {
921
925
  const onVisibility = () => {
922
926
  if (document.visibilityState === "hidden") reset();
923
927
  };
@@ -931,7 +935,7 @@ function useResetOnPageHidden(reset) {
931
935
  }
932
936
 
933
937
  // src/hooks/ui/use-search.ts
934
- import { useState as useState12, useEffect as useEffect13, useCallback as useCallback9 } from "react";
938
+ import { useState as useState12, useEffect as useEffect14, useCallback as useCallback9 } from "react";
935
939
  function useSearch(config) {
936
940
  const { searchFn, mapResult, debounceMs = 300, minQueryLength = 2 } = config;
937
941
  const [query, setQuery] = useState12("");
@@ -943,7 +947,7 @@ function useSearch(config) {
943
947
  setResults([]);
944
948
  setError(null);
945
949
  }, []);
946
- useEffect13(() => {
950
+ useEffect14(() => {
947
951
  if (!debouncedQuery || debouncedQuery.length < minQueryLength) {
948
952
  setResults([]);
949
953
  setIsLoading(false);
@@ -979,11 +983,11 @@ function useSearch(config) {
979
983
  }
980
984
 
981
985
  // src/hooks/ui/use-suppress-clone-focus.ts
982
- import { useEffect as useEffect14, useRef as useRef7 } from "react";
986
+ import { useEffect as useEffect15, useRef as useRef7 } from "react";
983
987
  var CLONE_FOCUSABLE_SELECTOR = 'a[href],button,input,select,textarea,iframe,summary,audio[controls],video[controls],[tabindex],[contenteditable]:not([contenteditable="false"])';
984
988
  function useSuppressCloneFocus(active) {
985
989
  const ref = useRef7(null);
986
- useEffect14(() => {
990
+ useEffect15(() => {
987
991
  const root = ref.current;
988
992
  if (!root || !active) return;
989
993
  const suppress = () => {
@@ -1042,11 +1046,11 @@ function useTablePagination(config) {
1042
1046
  }
1043
1047
 
1044
1048
  // src/hooks/ui/use-throttle.ts
1045
- import { useState as useState13, useEffect as useEffect15, useRef as useRef8 } from "react";
1049
+ import { useState as useState13, useEffect as useEffect16, useRef as useRef8 } from "react";
1046
1050
  function useThrottle(value, limit = 200) {
1047
1051
  const [throttledValue, setThrottledValue] = useState13(value);
1048
1052
  const lastUpdated = useRef8(Date.now());
1049
- useEffect15(() => {
1053
+ useEffect16(() => {
1050
1054
  const now = Date.now();
1051
1055
  const elapsed = now - lastUpdated.current;
1052
1056
  if (elapsed >= limit) {
@@ -1066,14 +1070,14 @@ function useThrottle(value, limit = 200) {
1066
1070
  }
1067
1071
 
1068
1072
  // src/hooks/ui/use-window-size.ts
1069
- import { useLayoutEffect as useLayoutEffect2, useState as useState14 } from "react";
1073
+ import { useLayoutEffect as useLayoutEffect3, useState as useState14 } from "react";
1070
1074
  function useWindowSize() {
1071
1075
  const [windowSize, setWindowSize] = useState14({
1072
1076
  width: 0,
1073
1077
  height: 0
1074
1078
  });
1075
1079
  const [isClient, setIsClient] = useState14(false);
1076
- useLayoutEffect2(() => {
1080
+ useLayoutEffect3(() => {
1077
1081
  setIsClient(true);
1078
1082
  if (!isClient) return;
1079
1083
  const handleResize = () => {
@@ -1093,7 +1097,7 @@ function useWindowSize() {
1093
1097
  import { usePreventScroll } from "@react-aria/overlays";
1094
1098
 
1095
1099
  // src/hooks/platform/use-platform-config.ts
1096
- import { useState as useState15, useEffect as useEffect16 } from "react";
1100
+ import { useState as useState15, useEffect as useEffect17 } from "react";
1097
1101
 
1098
1102
  // src/utils/platform-config.tsx
1099
1103
  import { Globe } from "lucide-react";
@@ -1274,7 +1278,7 @@ function usePlatformConfig() {
1274
1278
  const [platforms, setPlatforms] = useState15(platformCache || []);
1275
1279
  const [isLoading, setIsLoading] = useState15(!platformCache);
1276
1280
  const [error, setError] = useState15(null);
1277
- useEffect16(() => {
1281
+ useEffect17(() => {
1278
1282
  if (platformCache) {
1279
1283
  setPlatforms(platformCache);
1280
1284
  setIsLoading(false);
@@ -1723,7 +1727,7 @@ var useToast = () => ({
1723
1727
  });
1724
1728
 
1725
1729
  // src/hooks/use-contact-submission.ts
1726
- import { useState as useState17, useCallback as useCallback10, useEffect as useEffect17 } from "react";
1730
+ import { useState as useState17, useCallback as useCallback10, useEffect as useEffect18 } from "react";
1727
1731
  init_next_navigation();
1728
1732
 
1729
1733
  // src/utils/local-storage-adapter.ts
@@ -2043,7 +2047,7 @@ function useContactSubmission(options = {}) {
2043
2047
  setIsSubmitting(false);
2044
2048
  }
2045
2049
  }, [isSubmitting, toast2, userId, successToastMessage, contactUrl]);
2046
- useEffect17(() => {
2050
+ useEffect18(() => {
2047
2051
  if (isSuccess && successRedirectUrl) {
2048
2052
  console.log("\u{1F680} Contact submission successful, redirecting to:", successRedirectUrl);
2049
2053
  const timer = setTimeout(() => {
@@ -2057,7 +2061,7 @@ function useContactSubmission(options = {}) {
2057
2061
  return () => clearTimeout(timer);
2058
2062
  }
2059
2063
  }, [isSuccess, successRedirectUrl, router]);
2060
- useEffect17(() => {
2064
+ useEffect18(() => {
2061
2065
  if (isSuccess && onSuccess) {
2062
2066
  onSuccess();
2063
2067
  }
@@ -2093,7 +2097,7 @@ function useCopyToClipboard({
2093
2097
  }
2094
2098
 
2095
2099
  // src/hooks/use-batch-images.ts
2096
- import { useEffect as useEffect18, useMemo as useMemo2, useState as useState19, useRef as useRef9 } from "react";
2100
+ import { useEffect as useEffect19, useMemo as useMemo2, useState as useState19, useRef as useRef9 } from "react";
2097
2101
  var globalBatchImageConfig = {};
2098
2102
  function configureBatchImageFetch(config) {
2099
2103
  globalBatchImageConfig = { ...globalBatchImageConfig, ...config };
@@ -2173,7 +2177,7 @@ function useBatchImages(imageUrls, config) {
2173
2177
  [imageUrls]
2174
2178
  );
2175
2179
  const requestedUrls = useRef9(/* @__PURE__ */ new Set());
2176
- useEffect18(() => {
2180
+ useEffect19(() => {
2177
2181
  if (uniqueUrls.length === 0) {
2178
2182
  setFetchedImages({});
2179
2183
  return;
@@ -2203,7 +2207,7 @@ function useBatchImages(imageUrls, config) {
2203
2207
  }
2204
2208
 
2205
2209
  // src/hooks/use-authenticated-image.ts
2206
- import { useEffect as useEffect19, useState as useState20, useRef as useRef10 } from "react";
2210
+ import { useEffect as useEffect20, useState as useState20, useRef as useRef10 } from "react";
2207
2211
  var globalImageConfig = {};
2208
2212
  var imageCache = /* @__PURE__ */ new Map();
2209
2213
  var pendingRequests = /* @__PURE__ */ new Map();
@@ -2236,7 +2240,7 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
2236
2240
  const [isLoading, setIsLoading] = useState20(false);
2237
2241
  const [error, setError] = useState20(null);
2238
2242
  const currentCacheKeyRef = useRef10(null);
2239
- useEffect19(() => {
2243
+ useEffect20(() => {
2240
2244
  if (!imageUrl) {
2241
2245
  setFetchedImageUrl(void 0);
2242
2246
  setIsLoading(false);
@@ -2347,7 +2351,7 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
2347
2351
  });
2348
2352
  pendingRequests.set(cacheKey, fetchPromise2);
2349
2353
  }, [imageUrl, refreshKey, config]);
2350
- useEffect19(() => {
2354
+ useEffect20(() => {
2351
2355
  return () => {
2352
2356
  if (currentCacheKeyRef.current) {
2353
2357
  const entry = imageCache.get(currentCacheKeyRef.current);
@@ -2361,7 +2365,7 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
2361
2365
  }
2362
2366
 
2363
2367
  // src/hooks/use-authed-image-src.ts
2364
- import { useEffect as useEffect20, useReducer } from "react";
2368
+ import { useEffect as useEffect21, useReducer } from "react";
2365
2369
  var resolvedCache = /* @__PURE__ */ new Map();
2366
2370
  var inFlight = /* @__PURE__ */ new Map();
2367
2371
  var cacheGeneration = 0;
@@ -2393,7 +2397,7 @@ function fetchAsBlobUrl(src) {
2393
2397
  function useAuthedImageSrc(src) {
2394
2398
  const bearerSrc = src && needsBearerAssetFetch(src) ? src : null;
2395
2399
  const [, rerender] = useReducer((c) => c + 1, 0);
2396
- useEffect20(() => {
2400
+ useEffect21(() => {
2397
2401
  if (!bearerSrc || resolvedCache.has(bearerSrc)) return;
2398
2402
  let cancelled = false;
2399
2403
  fetchAsBlobUrl(bearerSrc).catch(() => {
@@ -2411,7 +2415,7 @@ function useAuthedImageSrc(src) {
2411
2415
 
2412
2416
  // src/hooks/state/use-query-params.ts
2413
2417
  init_next_navigation();
2414
- import { useEffect as useEffect21, useState as useState21, useMemo as useMemo3, useCallback as useCallback12 } from "react";
2418
+ import { useEffect as useEffect22, useState as useState21, useMemo as useMemo3, useCallback as useCallback12 } from "react";
2415
2419
 
2416
2420
  // src/hooks/state/graphql-parser.ts
2417
2421
  import {
@@ -2880,7 +2884,7 @@ function useQueryParams(query, options = {}) {
2880
2884
  const defaultValues = options.defaultValues || {};
2881
2885
  const skipIntrospection = options.skipIntrospection || false;
2882
2886
  const debug = options.debug || false;
2883
- useEffect21(() => {
2887
+ useEffect22(() => {
2884
2888
  async function initialize() {
2885
2889
  try {
2886
2890
  if (debug) console.log("[useQueryParams] Initializing...");
@@ -3227,7 +3231,7 @@ function createSearchParams(params) {
3227
3231
  }
3228
3232
 
3229
3233
  // src/hooks/state/use-cursor-pagination-state.ts
3230
- import { useCallback as useCallback14, useEffect as useEffect22, useRef as useRef12, useState as useState22 } from "react";
3234
+ import { useCallback as useCallback14, useEffect as useEffect23, useRef as useRef12, useState as useState22 } from "react";
3231
3235
  var urlSchema = {
3232
3236
  search: { type: "string", default: "" },
3233
3237
  cursor: { type: "string", default: "" }
@@ -3244,7 +3248,7 @@ function useCursorPaginationState(options) {
3244
3248
  const lastSearchRef = useRef12(null);
3245
3249
  const isSyncingFromUrl = useRef12(false);
3246
3250
  const isInitialLoadInProgress = useRef12(true);
3247
- useEffect22(() => {
3251
+ useEffect23(() => {
3248
3252
  if (isInitialLoadInProgress.current) return;
3249
3253
  const urlSearch = params.search || "";
3250
3254
  if (urlSearch !== searchInput) {
@@ -3255,7 +3259,7 @@ function useCursorPaginationState(options) {
3255
3259
  }, 0);
3256
3260
  }
3257
3261
  }, [params.search, initialLoadCount]);
3258
- useEffect22(() => {
3262
+ useEffect23(() => {
3259
3263
  if (isInitialLoadInProgress.current) return;
3260
3264
  if (isSyncingFromUrl.current) return;
3261
3265
  if (searchInput !== params.search) {
@@ -3266,7 +3270,7 @@ function useCursorPaginationState(options) {
3266
3270
  });
3267
3271
  }
3268
3272
  }, [searchInput, params.search, setParams, initialLoadCount]);
3269
- useEffect22(() => {
3273
+ useEffect23(() => {
3270
3274
  if (initialLoadCount === 0) {
3271
3275
  const cursor = params.cursor || null;
3272
3276
  const search = params.search || "";
@@ -3280,7 +3284,7 @@ function useCursorPaginationState(options) {
3280
3284
  });
3281
3285
  }
3282
3286
  }, []);
3283
- useEffect22(() => {
3287
+ useEffect23(() => {
3284
3288
  if (isInitialLoadInProgress.current) return;
3285
3289
  if (initialLoadCount === 0) return;
3286
3290
  const currentSearch = params.search || "";
@@ -3320,7 +3324,7 @@ function useCursorPaginationState(options) {
3320
3324
  }
3321
3325
 
3322
3326
  // src/hooks/nats/use-nats-client.ts
3323
- import { useEffect as useEffect23, useMemo as useMemo5, useState as useState23 } from "react";
3327
+ import { useEffect as useEffect24, useMemo as useMemo5, useState as useState23 } from "react";
3324
3328
  function useNatsClient(clientOptions, options = {}) {
3325
3329
  const { autoConnect = true } = options;
3326
3330
  const client = useMemo5(() => {
@@ -3329,7 +3333,7 @@ function useNatsClient(clientOptions, options = {}) {
3329
3333
  }, [clientOptions]);
3330
3334
  const [status, setStatus] = useState23("disconnected");
3331
3335
  const [lastError, setLastError] = useState23(null);
3332
- useEffect23(() => {
3336
+ useEffect24(() => {
3333
3337
  if (!client) {
3334
3338
  setStatus("disconnected");
3335
3339
  setLastError(null);
@@ -3360,7 +3364,7 @@ function useNatsClient(clientOptions, options = {}) {
3360
3364
  }
3361
3365
 
3362
3366
  // src/hooks/use-near-viewport.ts
3363
- import { useEffect as useEffect24, useRef as useRef13, useState as useState24, useCallback as useCallback15 } from "react";
3367
+ import { useEffect as useEffect25, useRef as useRef13, useState as useState24, useCallback as useCallback15 } from "react";
3364
3368
  var observers = /* @__PURE__ */ new Map();
3365
3369
  var subscribers = /* @__PURE__ */ new WeakMap();
3366
3370
  var THRESHOLD_EPSILON = 0.01;
@@ -3412,7 +3416,7 @@ function useNearViewport(rootMargin = NEAR_VIEWPORT_ROOT_MARGIN, threshold = 0)
3412
3416
  },
3413
3417
  [key, rootMargin, threshold]
3414
3418
  );
3415
- useEffect24(() => {
3419
+ useEffect25(() => {
3416
3420
  return () => {
3417
3421
  const el = elRef.current;
3418
3422
  if (!el) return;
@@ -3570,7 +3574,7 @@ function useOgPlaceholderUrl({
3570
3574
  }
3571
3575
 
3572
3576
  // src/hooks/use-scroll-to-hash.ts
3573
- import { useEffect as useEffect25 } from "react";
3577
+ import { useEffect as useEffect26 } from "react";
3574
3578
 
3575
3579
  // src/utils/scroll-into-view.ts
3576
3580
  var activeRaf = 0;
@@ -3708,7 +3712,7 @@ function navigateSamePageHash(target, options = {}) {
3708
3712
  var MAX_POLL_FRAMES = 60;
3709
3713
  function useScrollToHash(readyDep = true, options) {
3710
3714
  const headerOffset = options?.headerOffset ?? 0;
3711
- useEffect25(() => {
3715
+ useEffect26(() => {
3712
3716
  if (typeof window === "undefined") return;
3713
3717
  if (readyDep === null || readyDep === false) return;
3714
3718
  let rafId = null;
@@ -3797,6 +3801,7 @@ export {
3797
3801
  useHorizontalScrollbar,
3798
3802
  useImageEdgeColor,
3799
3803
  useIsTruncated,
3804
+ useIsomorphicLayoutEffect,
3800
3805
  useLocalStorage,
3801
3806
  useMarqueeEngine,
3802
3807
  useMediaQuery,
@@ -3911,4 +3916,4 @@ export {
3911
3916
  splitCsvEnv,
3912
3917
  useHumanitySignals
3913
3918
  };
3914
- //# sourceMappingURL=chunk-QL5YB4F7.js.map
3919
+ //# sourceMappingURL=chunk-P7IOCYGD.js.map