@flamingo-stack/openframe-frontend-core 0.0.705-snapshot.20261006160157 → 0.0.705

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