@flamingo-stack/openframe-frontend-core 0.0.731 → 0.0.733

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 (149) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-RAHRDJBP.cjs → chunk-3HPB4H4C.cjs} +4 -4
  3. package/dist/{chunk-2UNQJVYN.cjs → chunk-3KGICRH7.cjs} +1457 -1187
  4. package/dist/{chunk-A4HNF4MP.cjs → chunk-3UTPZW36.cjs} +89 -89
  5. package/dist/{chunk-GID62YEN.cjs → chunk-AAFW4STC.cjs} +3 -3
  6. package/dist/{chunk-XDBHGWFH.cjs → chunk-ATMBJBOI.cjs} +16 -16
  7. package/dist/{chunk-YDGBRI3Y.cjs → chunk-AV5533DH.cjs} +15 -15
  8. package/dist/{chunk-BFHLGEJK.cjs → chunk-BP6R5WDW.cjs} +63 -60
  9. package/dist/{chunk-CLILWI6O.cjs → chunk-CJVAA7KL.cjs} +32 -32
  10. package/dist/{chunk-YJFN2W7A.cjs → chunk-DUVOQHQI.cjs} +7 -7
  11. package/dist/{chunk-E3N24573.cjs → chunk-DUXLZPMJ.cjs} +9 -9
  12. package/dist/{chunk-TH4N726A.cjs → chunk-E26I4XH6.cjs} +17 -17
  13. package/dist/{chunk-Y4QRK3CB.cjs → chunk-EMG3T55N.cjs} +7 -7
  14. package/dist/{chunk-JK75ZZP3.cjs → chunk-EQORT7NK.cjs} +59 -59
  15. package/dist/chunk-FCGLSWKR.cjs +417 -0
  16. package/dist/{chunk-MANNIJ42.cjs → chunk-FICJS5OA.cjs} +6 -0
  17. package/dist/{chunk-QP6QS3YU.cjs → chunk-FNRMDDVN.cjs} +48 -50
  18. package/dist/{chunk-KLXHCNDC.cjs → chunk-FTTLBMHU.cjs} +3 -3
  19. package/dist/{chunk-JPZ4Y6X3.cjs → chunk-GB3CHAW7.cjs} +93 -93
  20. package/dist/{chunk-7DUXR4HL.cjs → chunk-GVTDVS5U.cjs} +3 -3
  21. package/dist/{chunk-ZV6473Z4.cjs → chunk-HSWHOCZ3.cjs} +20 -20
  22. package/dist/{chunk-53XZ6MJ5.cjs → chunk-IC4FT3A6.cjs} +28 -28
  23. package/dist/{chunk-6V4GEE55.cjs → chunk-J7JKPTGO.cjs} +12 -12
  24. package/dist/{chunk-FKKUQK4C.cjs → chunk-L4ZNR5V7.cjs} +43 -39
  25. package/dist/{chunk-NYY25425.cjs → chunk-MYBTNOS6.cjs} +2 -2
  26. package/dist/chunk-NTJE6SM6.cjs +28 -0
  27. package/dist/{chunk-RBOIGJYF.cjs → chunk-P3R23TOE.cjs} +35 -35
  28. package/dist/chunk-PX7FY655.cjs +114 -0
  29. package/dist/{chunk-YUXRIR45.cjs → chunk-SA7LDEVJ.cjs} +98 -50
  30. package/dist/{chunk-32ENYVFA.cjs → chunk-TIMCHP4X.cjs} +42 -42
  31. package/dist/{chunk-3SWLL4IM.cjs → chunk-U4T5NLZD.cjs} +8 -8
  32. package/dist/{chunk-HI7EFAFQ.cjs → chunk-XDWY6HAW.cjs} +28 -28
  33. package/dist/{chunk-25H2SZH7.cjs → chunk-XY632BCH.cjs} +4 -4
  34. package/dist/{chunk-HY2KTQSL.cjs → chunk-YIXKH2JO.cjs} +236 -236
  35. package/dist/{chunk-4YPV4OI4.cjs → chunk-ZBNA6TCW.cjs} +82 -82
  36. package/dist/{chunk-HLIJ3U2T.cjs → chunk-ZJNYWNCB.cjs} +23 -21
  37. package/dist/{chunk-HEOD765R.cjs → chunk-ZRYKDN2J.cjs} +32 -379
  38. package/dist/{cloud-tenants-SC4FNAC2.cjs → cloud-tenants-3GOGR3EN.cjs} +22 -22
  39. package/dist/components/agent-identity.d.ts +8 -0
  40. package/dist/components/agent-identity.d.ts.map +1 -1
  41. package/dist/components/agent-identity.js +13 -1
  42. package/dist/components/case-studies/index.cjs +35 -35
  43. package/dist/components/chat/embeddable-chat.d.ts +16 -0
  44. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  45. package/dist/components/chat/embeddable-chat.js +5 -2
  46. package/dist/components/chat/index.cjs +16 -16
  47. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  48. package/dist/components/chat/utils/icon-library.js +6 -0
  49. package/dist/components/contact/index.cjs +23 -23
  50. package/dist/components/docs/index.cjs +26 -26
  51. package/dist/components/embeds/index.cjs +23 -23
  52. package/dist/components/faq/index.cjs +23 -23
  53. package/dist/components/features/index.cjs +22 -22
  54. package/dist/components/help-center-pages/index.cjs +138 -138
  55. package/dist/components/index.cjs +89 -82
  56. package/dist/components/meeting-scheduler/index.cjs +67 -67
  57. package/dist/components/navigation/index.cjs +25 -25
  58. package/dist/components/onboarding-guides/index.cjs +25 -25
  59. package/dist/components/product-demo/index.cjs +8 -8
  60. package/dist/components/product-demo/screens/remote-desktop-picture.d.ts.map +1 -1
  61. package/dist/components/product-demo/screens/remote-desktop-picture.js +2 -1
  62. package/dist/components/related-content/index.cjs +10 -10
  63. package/dist/components/tickets/index.cjs +26 -26
  64. package/dist/components/ui/device-wallpaper.d.ts +7 -0
  65. package/dist/components/ui/device-wallpaper.d.ts.map +1 -0
  66. package/dist/components/ui/device-wallpaper.js +5 -0
  67. package/dist/components/ui/feature-list.d.ts +9 -4
  68. package/dist/components/ui/feature-list.d.ts.map +1 -1
  69. package/dist/components/ui/feature-list.js +26 -35
  70. package/dist/components/ui/index.cjs +28 -22
  71. package/dist/components/ui/index.d.ts +3 -1
  72. package/dist/components/ui/index.d.ts.map +1 -1
  73. package/dist/components/ui/index.js +3 -1
  74. package/dist/components/ui/notification-stack.d.ts +33 -0
  75. package/dist/components/ui/notification-stack.d.ts.map +1 -0
  76. package/dist/components/ui/notification-stack.js +78 -0
  77. package/dist/components/ui/numbered-step.d.ts +29 -0
  78. package/dist/components/ui/numbered-step.d.ts.map +1 -0
  79. package/dist/components/ui/numbered-step.js +57 -0
  80. package/dist/components/ui/phone-frame.d.ts +14 -9
  81. package/dist/components/ui/phone-frame.d.ts.map +1 -1
  82. package/dist/components/ui/phone-frame.js +50 -6
  83. package/dist/components/ui/phone-glyphs/lock-camera-glyph.d.ts +5 -0
  84. package/dist/components/ui/phone-glyphs/lock-camera-glyph.d.ts.map +1 -0
  85. package/dist/components/ui/phone-glyphs/lock-camera-glyph.js +14 -0
  86. package/dist/components/ui/phone-glyphs/lock-flashlight-glyph.d.ts +5 -0
  87. package/dist/components/ui/phone-glyphs/lock-flashlight-glyph.d.ts.map +1 -0
  88. package/dist/components/ui/phone-glyphs/lock-flashlight-glyph.js +14 -0
  89. package/dist/components/ui/phone-glyphs/status-bar-glyphs.d.ts +5 -0
  90. package/dist/components/ui/phone-glyphs/status-bar-glyphs.d.ts.map +1 -0
  91. package/dist/components/ui/phone-glyphs/status-bar-glyphs.js +68 -0
  92. package/dist/components/ui/searchable-select.d.ts +29 -3
  93. package/dist/components/ui/searchable-select.d.ts.map +1 -1
  94. package/dist/components/ui/searchable-select.js +101 -45
  95. package/dist/components/ui/snap-carousel.d.ts +5 -8
  96. package/dist/components/ui/snap-carousel.d.ts.map +1 -1
  97. package/dist/components/ui/snap-carousel.js +2 -27
  98. package/dist/components/ui/tab-navigation.d.ts +8 -1
  99. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  100. package/dist/components/ui/tab-navigation.js +30 -20
  101. package/dist/{devices-7MHSJNXS.cjs → devices-POZXTP7X.cjs} +23 -23
  102. package/dist/{embeddable-chat-VPIG3F7E.cjs → embeddable-chat-I3Y5GCCR.cjs} +96 -93
  103. package/dist/hooks/index.cjs +9 -9
  104. package/dist/hooks/ui/use-autoplay.d.ts +50 -13
  105. package/dist/hooks/ui/use-autoplay.d.ts.map +1 -1
  106. package/dist/hooks/ui/use-autoplay.js +76 -13
  107. package/dist/hooks/ui/use-in-view.d.ts +8 -0
  108. package/dist/hooks/ui/use-in-view.d.ts.map +1 -1
  109. package/dist/hooks/ui/use-in-view.js +21 -36
  110. package/dist/hooks/use-agent-identities.d.ts +6 -0
  111. package/dist/hooks/use-agent-identities.d.ts.map +1 -1
  112. package/dist/hooks/use-scenario-player.d.ts +26 -9
  113. package/dist/hooks/use-scenario-player.d.ts.map +1 -1
  114. package/dist/hooks/use-scenario-player.js +12 -9
  115. package/dist/index.cjs +58 -51
  116. package/dist/{knowledge-4DREGSOZ.cjs → knowledge-AP34IMXN.cjs} +23 -23
  117. package/dist/{logs-BWXNT2KP.cjs → logs-CEVMIOPW.cjs} +30 -30
  118. package/dist/{policies-MGFUI23M.cjs → policies-AMBMRCGB.cjs} +26 -26
  119. package/dist/{remote-session-O6QGXV2N.cjs → remote-session-Z4YZFG5E.cjs} +10 -9
  120. package/dist/{software-update-7LF7XEYC.cjs → software-update-Z3MWMSHI.cjs} +26 -26
  121. package/dist/{tickets-board-KNXK747O.cjs → tickets-board-JOSYLOS7.cjs} +13 -13
  122. package/package.json +1 -1
  123. package/src/components/agent-identity.tsx +20 -1
  124. package/src/components/chat/embeddable-chat.tsx +29 -2
  125. package/src/components/chat/utils/icon-library.tsx +7 -0
  126. package/src/components/product-demo/screens/remote-desktop-picture.tsx +2 -1
  127. package/src/components/ui/device-wallpaper.ts +7 -0
  128. package/src/components/ui/feature-list.tsx +24 -30
  129. package/src/components/ui/index.ts +3 -1
  130. package/src/components/ui/notification-stack.tsx +133 -0
  131. package/src/components/ui/numbered-step.tsx +81 -0
  132. package/src/components/ui/phone-frame.tsx +83 -19
  133. package/src/components/ui/phone-glyphs/lock-camera-glyph.tsx +14 -0
  134. package/src/components/ui/phone-glyphs/lock-flashlight-glyph.tsx +14 -0
  135. package/src/components/ui/phone-glyphs/status-bar-glyphs.tsx +45 -0
  136. package/src/components/ui/searchable-select.tsx +124 -32
  137. package/src/components/ui/snap-carousel.tsx +6 -38
  138. package/src/components/ui/tab-navigation.tsx +49 -21
  139. package/src/hooks/ui/use-autoplay.ts +144 -27
  140. package/src/hooks/ui/use-in-view.ts +31 -38
  141. package/src/hooks/use-agent-identities.ts +6 -0
  142. package/src/hooks/use-scenario-player.ts +44 -20
  143. package/dist/chunk-2WXLQ5R5.cjs +0 -99
  144. package/dist/chunk-BE2WAMG5.cjs +0 -54
  145. package/dist/chunk-LCTDHLDL.cjs +0 -43
  146. package/dist/components/ui/playback-toggle.d.ts +0 -24
  147. package/dist/components/ui/playback-toggle.d.ts.map +0 -1
  148. package/dist/components/ui/playback-toggle.js +0 -32
  149. package/src/components/ui/playback-toggle.tsx +0 -53
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunk2UNQJVYNcjs = require('./chunk-2UNQJVYN.cjs');
4
+ var _chunk3KGICRH7cjs = require('./chunk-3KGICRH7.cjs');
5
5
 
6
6
 
7
7
 
@@ -10,19 +10,19 @@ var _chunk2UNQJVYNcjs = require('./chunk-2UNQJVYN.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkHY2KTQSLcjs = require('./chunk-HY2KTQSL.cjs');
13
+ var _chunkYIXKH2JOcjs = require('./chunk-YIXKH2JO.cjs');
14
14
 
15
15
 
16
- var _chunkYUXRIR45cjs = require('./chunk-YUXRIR45.cjs');
16
+ var _chunkSA7LDEVJcjs = require('./chunk-SA7LDEVJ.cjs');
17
17
 
18
18
 
19
19
  var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
20
20
 
21
21
 
22
- var _chunkRBOIGJYFcjs = require('./chunk-RBOIGJYF.cjs');
22
+ var _chunkP3R23TOEcjs = require('./chunk-P3R23TOE.cjs');
23
23
 
24
24
 
25
- var _chunkLCTDHLDLcjs = require('./chunk-LCTDHLDL.cjs');
25
+ var _chunkPX7FY655cjs = require('./chunk-PX7FY655.cjs');
26
26
 
27
27
 
28
28
  var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
@@ -40,7 +40,7 @@ var _jsxruntime = require('react/jsx-runtime');
40
40
  function DocSearchResultRow({ result, isHighlighted }) {
41
41
  const docType = _optionalChain([result, 'access', _ => _.metadata, 'optionalAccess', _2 => _2.documentType]) || void 0;
42
42
  const sourceRepo = _optionalChain([result, 'access', _3 => _3.metadata, 'optionalAccess', _4 => _4.sourceRepo]) || void 0;
43
- const { Icon: SourceIcon, label: iconLabel } = _chunkHY2KTQSLcjs.resolveSourceIcon.call(void 0, {
43
+ const { Icon: SourceIcon, label: iconLabel } = _chunkYIXKH2JOcjs.resolveSourceIcon.call(void 0, {
44
44
  sourceRepo,
45
45
  documentType: docType
46
46
  });
@@ -70,7 +70,7 @@ function DocSearchBar({
70
70
  renderResult
71
71
  }) {
72
72
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
73
- _chunk2UNQJVYNcjs.SearchInput,
73
+ _chunk3KGICRH7cjs.SearchInput,
74
74
  {
75
75
  placeholder,
76
76
  value: query,
@@ -120,7 +120,7 @@ function mapDocSearchResults(docs) {
120
120
  results.push({
121
121
  id: `group-${entry.repo}`,
122
122
  // Same table label and count as the chat's grouped chip: one owner each.
123
- title: `${_chunkHY2KTQSLcjs.getSourceLabel.call(void 0, entry.repo)} ${_chunkHY2KTQSLcjs.recordCountLabel.call(void 0, rows.length)}`,
123
+ title: `${_chunkYIXKH2JOcjs.getSourceLabel.call(void 0, entry.repo)} ${_chunkYIXKH2JOcjs.recordCountLabel.call(void 0, rows.length)}`,
124
124
  path: rows[0].path,
125
125
  type: "file",
126
126
  metadata: {
@@ -183,7 +183,7 @@ function resolveSearchResultAction(result, source, runtimeMode, composeContentUr
183
183
  if (composed && !isAbsoluteHref(href)) {
184
184
  return { kind: "navigate-same-tab", href };
185
185
  }
186
- const isNewTab = _chunkRBOIGJYFcjs.decideNewTab.call(void 0, {
186
+ const isNewTab = _chunkP3R23TOEcjs.decideNewTab.call(void 0, {
187
187
  href,
188
188
  targetPlatform: composed ? composed.targetPlatform : targetPlatform,
189
189
  surface: "useUnifiedNav",
@@ -255,7 +255,7 @@ function useDocSearch(config) {
255
255
  const [query, setQuery] = _react.useState.call(void 0, "");
256
256
  const [results, setResults] = _react.useState.call(void 0, NO_RESULTS);
257
257
  const [isFetching, setIsFetching] = _react.useState.call(void 0, false);
258
- const debouncedQuery = _chunkYUXRIR45cjs.useDebounce.call(void 0, query, 300);
258
+ const debouncedQuery = _chunkSA7LDEVJcjs.useDebounce.call(void 0, query, 300);
259
259
  const searchable = debouncedQuery.trim().length >= 2;
260
260
  const [wasSearchable, setWasSearchable] = _react.useState.call(void 0, searchable);
261
261
  if (wasSearchable !== searchable) {
@@ -277,7 +277,7 @@ function useDocSearch(config) {
277
277
  limit: "10"
278
278
  });
279
279
  if (tableIdsKey) params.set("tableIds", tableIdsKey);
280
- const response = await _chunkLCTDHLDLcjs.contentFetch.call(void 0, `${resolvedSearchEndpoint}?${params.toString()}`);
280
+ const response = await _chunkPX7FY655cjs.contentFetch.call(void 0, `${resolvedSearchEndpoint}?${params.toString()}`);
281
281
  if (!response.ok) {
282
282
  throw new Error(`Search request failed: ${response.status}`);
283
283
  }
@@ -312,31 +312,31 @@ function useDocSearch(config) {
312
312
  case "navigate-same-tab": {
313
313
  if (wantsNewTab) {
314
314
  setKeepOpen(true);
315
- window.open(action.href, "_blank", _chunkHY2KTQSLcjs.NEW_TAB_FEATURES);
315
+ window.open(action.href, "_blank", _chunkYIXKH2JOcjs.NEW_TAB_FEATURES);
316
316
  return;
317
317
  }
318
318
  setKeepOpen(false);
319
319
  const path = baseRoute && action.href.startsWith(`${baseRoute}/`) ? action.href.slice(baseRoute.length + 1) : null;
320
320
  if (path && _optionalChain([onInPageSwap, 'optionalCall', _16 => _16(path)])) return;
321
- router.push(_chunkHY2KTQSLcjs.stripSameOriginToPath.call(void 0, action.href));
321
+ router.push(_chunkYIXKH2JOcjs.stripSameOriginToPath.call(void 0, action.href));
322
322
  return;
323
323
  }
324
324
  case "navigate-new-tab":
325
325
  setKeepOpen(true);
326
326
  if (_optionalChain([runtime, 'optionalAccess', _17 => _17.navigation, 'access', _18 => _18.mode]) === "embed") {
327
327
  const targetPlatform = _nullishCoalesce(_optionalChain([result, 'access', _19 => _19.metadata, 'optionalAccess', _20 => _20.targetPlatform]), () => ( null));
328
- _chunkHY2KTQSLcjs.resolveExternalNavigation.call(void 0, {
328
+ _chunkYIXKH2JOcjs.resolveExternalNavigation.call(void 0, {
329
329
  href: action.href,
330
330
  targetPlatform,
331
331
  runtime
332
332
  }).open();
333
333
  return;
334
334
  }
335
- window.open(action.href, "_blank", _chunkHY2KTQSLcjs.NEW_TAB_FEATURES);
335
+ window.open(action.href, "_blank", _chunkYIXKH2JOcjs.NEW_TAB_FEATURES);
336
336
  return;
337
337
  case "ask-ai":
338
338
  setKeepOpen(false);
339
- window.dispatchEvent(new CustomEvent(_chunkHY2KTQSLcjs.ASK_AI_OPEN_WITH_REF_EVENT, { detail: action.detail }));
339
+ window.dispatchEvent(new CustomEvent(_chunkYIXKH2JOcjs.ASK_AI_OPEN_WITH_REF_EVENT, { detail: action.detail }));
340
340
  return;
341
341
  case "route":
342
342
  setKeepOpen(false);
@@ -10,13 +10,13 @@ var _chunkHEVW75L3cjs = require('./chunk-HEVW75L3.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunk2UNQJVYNcjs = require('./chunk-2UNQJVYN.cjs');
13
+ var _chunk3KGICRH7cjs = require('./chunk-3KGICRH7.cjs');
14
14
 
15
15
 
16
- var _chunkFKKUQK4Ccjs = require('./chunk-FKKUQK4C.cjs');
16
+ var _chunkL4ZNR5V7cjs = require('./chunk-L4ZNR5V7.cjs');
17
17
 
18
18
 
19
- var _chunkA4HNF4MPcjs = require('./chunk-A4HNF4MP.cjs');
19
+ var _chunk3UTPZW36cjs = require('./chunk-3UTPZW36.cjs');
20
20
 
21
21
 
22
22
 
@@ -25,10 +25,10 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkRBOIGJYFcjs = require('./chunk-RBOIGJYF.cjs');
28
+ var _chunkP3R23TOEcjs = require('./chunk-P3R23TOE.cjs');
29
29
 
30
30
 
31
- var _chunkNYY25425cjs = require('./chunk-NYY25425.cjs');
31
+ var _chunkMYBTNOS6cjs = require('./chunk-MYBTNOS6.cjs');
32
32
 
33
33
 
34
34
  var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
@@ -71,7 +71,7 @@ function ListEmptyState({ isFiltered, filtered, onClearFilters, empty }) {
71
71
  var _react = require('react');
72
72
 
73
73
  function DevSectionView({ sectionKey, hero, preControls, children, showHeading = true }) {
74
- const section = _chunkA4HNF4MPcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
74
+ const section = _chunk3UTPZW36cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
75
75
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
76
76
  const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
77
77
  const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
@@ -122,7 +122,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
122
122
  preControls,
123
123
  (search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
124
124
  search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
125
- _chunk2UNQJVYNcjs.SearchInput,
125
+ _chunk3KGICRH7cjs.SearchInput,
126
126
  {
127
127
  showDropdown: false,
128
128
  placeholder: search.placeholder,
@@ -132,7 +132,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
132
132
  }
133
133
  ),
134
134
  filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
135
- _chunk2UNQJVYNcjs.StatusFilterComponent,
135
+ _chunk3KGICRH7cjs.StatusFilterComponent,
136
136
  {
137
137
  selectedStatus: currentFilterValue,
138
138
  onStatusChange: handleFilterChange,
@@ -156,7 +156,7 @@ function DevSectionPage({
156
156
  shell = true
157
157
  }) {
158
158
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
159
- const section = _chunkA4HNF4MPcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
159
+ const section = _chunk3UTPZW36cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
160
160
  const backCfg = backButton === false ? void 0 : {
161
161
  label: _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home")),
162
162
  onClick: () => router.push(_nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/")))
@@ -169,7 +169,7 @@ function DevSectionPage({
169
169
  // duplicate title. (The hero icon is intentionally dropped: TitleBlock is
170
170
  // frozen and renders title-only.)
171
171
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
172
- _chunkFKKUQK4Ccjs.PageLayout,
172
+ _chunkL4ZNR5V7cjs.PageLayout,
173
173
  {
174
174
  title: _nullishCoalesce(title, () => ( section.hero.title)),
175
175
  subtitle: _nullishCoalesce(subtitle, () => ( section.hero.description)),
@@ -180,7 +180,7 @@ function DevSectionPage({
180
180
  }
181
181
  )
182
182
  );
183
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2UNQJVYNcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
183
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3KGICRH7cjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
184
184
  }
185
185
 
186
186
  // src/components/shared/dev-section/dev-card-row.tsx
@@ -240,7 +240,7 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
240
240
  const taskType = item.taskType;
241
241
  const typeBadgeLabel = _chunkHEVW75L3cjs.TASK_TYPE_LABELS[taskType] || "TASK";
242
242
  const typeBadgeTextColor = _chunkHEVW75L3cjs.TASK_TYPE_TEXT_COLORS[taskType] || "";
243
- const statusBadgeScheme = _chunkRBOIGJYFcjs.getStatusColorScheme.call(void 0, item.status);
243
+ const statusBadgeScheme = _chunkP3R23TOEcjs.getStatusColorScheme.call(void 0, item.status);
244
244
  const relativeTime = getRelativeTime(item.dateUpdated);
245
245
  const subtitle = `ACTIVE ${relativeTime}${item.listNames.length > 0 ? `, ${item.listNames.join(", ")}` : ""}, ${item.id}`;
246
246
  const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]", children: [
@@ -252,7 +252,7 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
252
252
  ] }),
253
253
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-shrink-0 flex-row items-center gap-2 self-stretch content-md:w-auto content-md:flex-col content-md:items-end content-md:self-start", children: [
254
254
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
255
- _chunkRBOIGJYFcjs.StatusBadge,
255
+ _chunkP3R23TOEcjs.StatusBadge,
256
256
  {
257
257
  text: item.status.toUpperCase(),
258
258
  colorScheme: statusBadgeScheme,
@@ -261,7 +261,7 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
261
261
  }
262
262
  ),
263
263
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
264
- _chunkRBOIGJYFcjs.StatusBadge,
264
+ _chunkP3R23TOEcjs.StatusBadge,
265
265
  {
266
266
  text: typeBadgeLabel,
267
267
  variant: "card",
@@ -269,7 +269,7 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
269
269
  }
270
270
  ),
271
271
  item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
272
- _chunkNYY25425cjs.AvatarStack,
272
+ _chunkMYBTNOS6cjs.AvatarStack,
273
273
  {
274
274
  size: "xs",
275
275
  className: "ml-auto content-md:ml-0",
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunkGID62YENcjs = require('./chunk-GID62YEN.cjs');
4
+ var _chunkAAFW4STCcjs = require('./chunk-AAFW4STC.cjs');
5
5
 
6
6
 
7
7
 
@@ -29,7 +29,7 @@ var _chunkMZ4KBSH7cjs = require('./chunk-MZ4KBSH7.cjs');
29
29
 
30
30
 
31
31
 
32
- var _chunkYJFN2W7Acjs = require('./chunk-YJFN2W7A.cjs');
32
+ var _chunkDUVOQHQIcjs = require('./chunk-DUVOQHQI.cjs');
33
33
 
34
34
 
35
35
 
@@ -38,11 +38,10 @@ var _chunkYJFN2W7Acjs = require('./chunk-YJFN2W7A.cjs');
38
38
 
39
39
 
40
40
 
41
- var _chunkYUXRIR45cjs = require('./chunk-YUXRIR45.cjs');
41
+ var _chunkSA7LDEVJcjs = require('./chunk-SA7LDEVJ.cjs');
42
42
 
43
43
 
44
-
45
- var _chunk2WXLQ5R5cjs = require('./chunk-2WXLQ5R5.cjs');
44
+ var _chunkNTJE6SM6cjs = require('./chunk-NTJE6SM6.cjs');
46
45
 
47
46
 
48
47
  var _chunkJKX2C3I2cjs = require('./chunk-JKX2C3I2.cjs');
@@ -64,7 +63,8 @@ var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
64
63
  var _chunkBLH2SFOOcjs = require('./chunk-BLH2SFOO.cjs');
65
64
 
66
65
 
67
- var _chunkLCTDHLDLcjs = require('./chunk-LCTDHLDL.cjs');
66
+
67
+ var _chunkPX7FY655cjs = require('./chunk-PX7FY655.cjs');
68
68
 
69
69
 
70
70
  var _chunkG7SBHMRRcjs = require('./chunk-G7SBHMRR.cjs');
@@ -323,7 +323,7 @@ function useOnboardingState(storageKey = "openframe-onboarding-state") {
323
323
  const [, forceUpdate] = _react.useState.call(void 0, 0);
324
324
  _react.useEffect.call(void 0, () => {
325
325
  const handleStorageUpdate = (event) => {
326
- const detail = _chunkGID62YENcjs.readLocalStorageUpdateDetail.call(void 0, event);
326
+ const detail = _chunkAAFW4STCcjs.readLocalStorageUpdateDetail.call(void 0, event);
327
327
  if (_optionalChain([detail, 'optionalAccess', _14 => _14.key]) !== storageKey) return;
328
328
  const newState = loadOnboardingState(storageKey);
329
329
  setState(newState);
@@ -414,7 +414,7 @@ function useSearch(config) {
414
414
  searchFnRef.current = searchFn;
415
415
  mapResultRef.current = mapResult;
416
416
  });
417
- const debouncedQuery = _chunkYUXRIR45cjs.useDebounce.call(void 0, query, debounceMs);
417
+ const debouncedQuery = _chunkSA7LDEVJcjs.useDebounce.call(void 0, query, debounceMs);
418
418
  const clearResults = _react.useCallback.call(void 0, () => {
419
419
  setResults(NO_RESULTS);
420
420
  setError(null);
@@ -780,7 +780,7 @@ function usePlatformConfig() {
780
780
  label: platform.label
781
781
  }))
782
782
  ];
783
- const selectableOptions = _chunkYJFN2W7Acjs.transformPlatformConfigsToOptions.call(void 0, platforms);
783
+ const selectableOptions = _chunkDUVOQHQIcjs.transformPlatformConfigsToOptions.call(void 0, platforms);
784
784
  return {
785
785
  platforms,
786
786
  platformOptions,
@@ -958,7 +958,7 @@ function CommandApprovalToast({
958
958
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden", children: [
959
959
  /* @__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: [
960
960
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 truncate text-ods-text-primary text-h6", title: command, children: command }),
961
- toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WXLQ5R5cjs.ToolIcon, { toolType, size: 16 }) : null
961
+ toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNTJE6SM6cjs.ToolIcon, { toolType, size: 16 }) : null
962
962
  ] }),
963
963
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2 bg-ods-bg p-3", children: [
964
964
  approvalDescription ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: approvalDescription }) : null,
@@ -1131,7 +1131,7 @@ function useContactSubmission(options = {}) {
1131
1131
  if (isSubmitting) return;
1132
1132
  setIsSubmitting(true);
1133
1133
  try {
1134
- const response = await _chunkLCTDHLDLcjs.contentFetch.call(void 0, contactUrl, {
1134
+ const response = await _chunkPX7FY655cjs.contentFetch.call(void 0, contactUrl, {
1135
1135
  method: "POST",
1136
1136
  headers: { "Content-Type": "application/json" },
1137
1137
  body: JSON.stringify({
@@ -1141,7 +1141,7 @@ function useContactSubmission(options = {}) {
1141
1141
  });
1142
1142
  if (!response.ok) {
1143
1143
  const failure = await response.json().catch(() => null);
1144
- throw new Error(_chunk2WXLQ5R5cjs.apiErrorMessage.call(void 0, failure, "Failed to submit contact form"));
1144
+ throw new Error(_chunkPX7FY655cjs.apiErrorMessage.call(void 0, failure, "Failed to submit contact form"));
1145
1145
  }
1146
1146
  setIsSuccess(true);
1147
1147
  const message = successToastMessage ? `Thank you! Your message has been sent. ${successToastMessage}` : "Thank you! Your message has been sent successfully.";
@@ -1250,7 +1250,7 @@ function load(endpoint, force = false) {
1250
1250
  const entry = entryFor(endpoint);
1251
1251
  if (entry.request || entry.state.data && !force) return;
1252
1252
  publish(endpoint, { data: entry.state.data, isLoading: true, error: false });
1253
- entry.request = _chunkLCTDHLDLcjs.contentFetch.call(void 0, endpoint).then(async (response) => {
1253
+ entry.request = _chunkPX7FY655cjs.contentFetch.call(void 0, endpoint).then(async (response) => {
1254
1254
  if (!response.ok) throw new Error(`Request failed (${response.status})`);
1255
1255
  publish(endpoint, { data: await response.json(), isLoading: false, error: false });
1256
1256
  }).catch(() => publish(endpoint, { data: entry.state.data, isLoading: false, error: true })).finally(() => {
@@ -1292,10 +1292,10 @@ function useDownloads({ endpoint = DOWNLOADS_API_PATH, initialData, enabled = tr
1292
1292
  }
1293
1293
  function useVisitorDesktopDownload(options = {}) {
1294
1294
  const enabled = _nullishCoalesce(options.enabled, () => ( true));
1295
- const visitor = _chunkYJFN2W7Acjs.useVisitorOs.call(void 0, );
1295
+ const visitor = _chunkDUVOQHQIcjs.useVisitorOs.call(void 0, );
1296
1296
  const { data, error } = useDownloads(options);
1297
1297
  if (!enabled || !visitor.known || !data && !error) return { known: false, download: null };
1298
- const os = _chunkYJFN2W7Acjs.desktopOsOf.call(void 0, visitor.os);
1298
+ const os = _chunkDUVOQHQIcjs.desktopOsOf.call(void 0, visitor.os);
1299
1299
  const download = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _22 => _22.desktop, 'access', _23 => _23.find, 'call', _24 => _24((row) => row.kind === "binary" && row.url && row.os === os)]), () => ( null));
1300
1300
  return { known: true, download };
1301
1301
  }
@@ -2542,15 +2542,18 @@ function useScenarioPlayer({
2542
2542
  holdMs,
2543
2543
  enabled = true,
2544
2544
  initialScenario = 0,
2545
- startAtEnd = false
2545
+ startAtEnd = false,
2546
+ emptyFirstStep = true
2546
2547
  }) {
2547
- const auto = _chunkYUXRIR45cjs.useAutoplay.call(void 0, enabled);
2548
- const { reducedMotion, paused, setPaused } = auto;
2548
+ const auto = _chunkSA7LDEVJcjs.useAutoplay.call(void 0, enabled);
2549
+ const { reducedMotion, held, holdProps, release } = auto;
2549
2550
  const [scenario, setScenario] = _react.useState.call(void 0, initialScenario);
2550
2551
  const [rawStep, setRawStep] = _react.useState.call(void 0, startAtEnd ? Number.MAX_SAFE_INTEGER : 0);
2551
2552
  const lastStep = typeof lastStepOption === "function" ? lastStepOption(scenario) : lastStepOption;
2552
2553
  const step = reducedMotion ? lastStep : Math.min(rawStep, lastStep);
2553
2554
  const playing = auto.playing && scenarioCount > 0;
2555
+ const [started, setStarted] = _react.useState.call(void 0, false);
2556
+ if (playing && !started) setStarted(true);
2554
2557
  const starting = _react.useRef.call(void 0, false);
2555
2558
  const wasPlaying = _react.useRef.call(void 0, false);
2556
2559
  _react.useEffect.call(void 0, () => {
@@ -2558,7 +2561,7 @@ function useScenarioPlayer({
2558
2561
  wasPlaying.current = playing;
2559
2562
  if (!playing) return void 0;
2560
2563
  const atEnd = rawStep >= lastStep;
2561
- const quickStart = starting.current && !atEnd;
2564
+ const quickStart = emptyFirstStep && (starting.current || rawStep === 0) && !atEnd;
2562
2565
  starting.current = false;
2563
2566
  const timer = setTimeout(
2564
2567
  () => {
@@ -2572,23 +2575,23 @@ function useScenarioPlayer({
2572
2575
  atEnd ? holdMs : quickStart ? Math.min(START_MS, stepMs) : stepMs
2573
2576
  );
2574
2577
  return () => clearTimeout(timer);
2575
- }, [playing, rawStep, lastStep, stepMs, holdMs, scenario, scenarioCount]);
2578
+ }, [playing, rawStep, lastStep, stepMs, holdMs, scenario, scenarioCount, emptyFirstStep]);
2576
2579
  const setStep = _react.useCallback.call(void 0,
2577
2580
  (next) => {
2578
2581
  setRawStep(Math.max(0, Math.min(lastStep, next)));
2579
- setPaused(false);
2582
+ release();
2580
2583
  },
2581
- [lastStep, setPaused]
2584
+ [lastStep, release]
2582
2585
  );
2583
2586
  const go = _react.useCallback.call(void 0,
2584
2587
  (next) => {
2585
2588
  setScenario(next);
2586
2589
  setRawStep(0);
2587
- setPaused(false);
2590
+ release();
2588
2591
  },
2589
- [setPaused]
2592
+ [release]
2590
2593
  );
2591
- return { scenario, step, paused, setPaused, setStep, go, reducedMotion };
2594
+ return { scenario, step, started: started || reducedMotion, held, holdProps, setStep, go, reducedMotion };
2592
2595
  }
2593
2596
 
2594
2597
  // src/hooks/use-access-code-integration.ts
@@ -2601,7 +2604,7 @@ function useAccessCodeIntegration() {
2601
2604
  const validate = async (email, code) => {
2602
2605
  setIsValidating(true);
2603
2606
  try {
2604
- return await _chunkYJFN2W7Acjs.validateAccessCode.call(void 0, email, code, endpoints);
2607
+ return await _chunkDUVOQHQIcjs.validateAccessCode.call(void 0, email, code, endpoints);
2605
2608
  } finally {
2606
2609
  setIsValidating(false);
2607
2610
  }
@@ -2609,7 +2612,7 @@ function useAccessCodeIntegration() {
2609
2612
  const consume = async (email, code) => {
2610
2613
  setIsConsuming(true);
2611
2614
  try {
2612
- return await _chunkYJFN2W7Acjs.consumeAccessCode.call(void 0, email, code, endpoints);
2615
+ return await _chunkDUVOQHQIcjs.consumeAccessCode.call(void 0, email, code, endpoints);
2613
2616
  } finally {
2614
2617
  setIsConsuming(false);
2615
2618
  }
@@ -2618,7 +2621,7 @@ function useAccessCodeIntegration() {
2618
2621
  setIsValidating(true);
2619
2622
  setIsConsuming(true);
2620
2623
  try {
2621
- return await _chunkYJFN2W7Acjs.validateAndConsumeAccessCode.call(void 0, email, code, endpoints);
2624
+ return await _chunkDUVOQHQIcjs.validateAndConsumeAccessCode.call(void 0, email, code, endpoints);
2622
2625
  } finally {
2623
2626
  setIsValidating(false);
2624
2627
  setIsConsuming(false);
@@ -2648,7 +2651,7 @@ async function revalidateMirror(mirrorPath) {
2648
2651
  }
2649
2652
  function useClaudeMirrorSrc(url) {
2650
2653
  const endpoints = _chunkMZ4KBSH7cjs.useEndpointsRuntime.call(void 0, );
2651
- const mirrorPath = _chunkYJFN2W7Acjs.toClaudeMirrorPath.call(void 0, url, _optionalChain([endpoints, 'optionalAccess', _32 => _32.storageViewBaseUrl]));
2654
+ const mirrorPath = _chunkDUVOQHQIcjs.toClaudeMirrorPath.call(void 0, url, _optionalChain([endpoints, 'optionalAccess', _32 => _32.storageViewBaseUrl]));
2652
2655
  const [resolved, setResolved] = _react.useState.call(void 0, null);
2653
2656
  const state = resolved && resolved.key === mirrorPath ? resolved.value : { src: null, status: mirrorPath ? "probing" : "absent" };
2654
2657
  _react.useEffect.call(void 0, () => {
@@ -2679,7 +2682,7 @@ function useClaudeMirrorSrc(url) {
2679
2682
 
2680
2683
  // src/hooks/use-location-hash.ts
2681
2684
 
2682
- var HASH_EVENTS = ["hashchange", "popstate", _chunkYUXRIR45cjs.LOCATION_HASH_SYNC_EVENT];
2685
+ var HASH_EVENTS = ["hashchange", "popstate", _chunkSA7LDEVJcjs.LOCATION_HASH_SYNC_EVENT];
2683
2686
  function subscribe(onChange) {
2684
2687
  for (const event of HASH_EVENTS) window.addEventListener(event, onChange);
2685
2688
  return () => {
@@ -2687,7 +2690,7 @@ function subscribe(onChange) {
2687
2690
  };
2688
2691
  }
2689
2692
  function readHash() {
2690
- const raw = _chunkYUXRIR45cjs.normalizeHashFragment.call(void 0, window.location.hash).replace(/^#/, "");
2693
+ const raw = _chunkSA7LDEVJcjs.normalizeHashFragment.call(void 0, window.location.hash).replace(/^#/, "");
2691
2694
  try {
2692
2695
  return decodeURIComponent(raw);
2693
2696
  } catch (e7) {
@@ -2714,16 +2717,16 @@ function useScrollToHash(readyDep = true, options) {
2714
2717
  }
2715
2718
  };
2716
2719
  const tryScrollToHash = () => {
2717
- if (_chunkYUXRIR45cjs.isScrollSyncedHash.call(void 0, )) return;
2718
- const hash = _chunkYUXRIR45cjs.normalizeHashFragment.call(void 0, window.location.hash).slice(1);
2720
+ if (_chunkSA7LDEVJcjs.isScrollSyncedHash.call(void 0, )) return;
2721
+ const hash = _chunkSA7LDEVJcjs.normalizeHashFragment.call(void 0, window.location.hash).slice(1);
2719
2722
  if (!hash) return;
2720
2723
  cancelPoll();
2721
2724
  let frames = 0;
2722
2725
  const tick = () => {
2723
- const el = _chunkYUXRIR45cjs.getHashTargetElement.call(void 0, hash);
2726
+ const el = _chunkSA7LDEVJcjs.getHashTargetElement.call(void 0, hash);
2724
2727
  if (el) {
2725
2728
  rafId = null;
2726
- _chunkYUXRIR45cjs.scrollElementIntoView.call(void 0, el, { headerOffset });
2729
+ _chunkSA7LDEVJcjs.scrollElementIntoView.call(void 0, el, { headerOffset });
2727
2730
  return;
2728
2731
  }
2729
2732
  if (frames++ < MAX_POLL_FRAMES) {
@@ -2751,8 +2754,8 @@ function useHumanitySignals() {
2751
2754
  const startedAtRef = _react.useRef.call(void 0, mountedAt);
2752
2755
  const getSignals = _react.useCallback.call(void 0,
2753
2756
  () => ({
2754
- [_chunkYJFN2W7Acjs.HONEYPOT_FIELD]: _nullishCoalesce(_optionalChain([ref, 'access', _34 => _34.current, 'optionalAccess', _35 => _35.value]), () => ( "")),
2755
- [_chunkYJFN2W7Acjs.ELAPSED_MS_FIELD]: typeof performance !== "undefined" ? Math.round(performance.now() - startedAtRef.current) : 0
2757
+ [_chunkDUVOQHQIcjs.HONEYPOT_FIELD]: _nullishCoalesce(_optionalChain([ref, 'access', _34 => _34.current, 'optionalAccess', _35 => _35.value]), () => ( "")),
2758
+ [_chunkDUVOQHQIcjs.ELAPSED_MS_FIELD]: typeof performance !== "undefined" ? Math.round(performance.now() - startedAtRef.current) : 0
2756
2759
  }),
2757
2760
  []
2758
2761
  );
@@ -2760,7 +2763,7 @@ function useHumanitySignals() {
2760
2763
  if (ref.current) ref.current.value = "";
2761
2764
  if (typeof performance !== "undefined") startedAtRef.current = performance.now();
2762
2765
  }, []);
2763
- return { honeypotInputProps: { ref, name: _chunkYJFN2W7Acjs.HONEYPOT_FIELD }, getSignals, resetSignals };
2766
+ return { honeypotInputProps: { ref, name: _chunkDUVOQHQIcjs.HONEYPOT_FIELD }, getSignals, resetSignals };
2764
2767
  }
2765
2768
 
2766
2769
  // src/hooks/use-form-rescue.ts
@@ -2773,9 +2776,9 @@ function readLocalDraft(formId) {
2773
2776
  const raw = window.localStorage.getItem(STORAGE_PREFIX + formId);
2774
2777
  if (!raw) return null;
2775
2778
  const parsed = JSON.parse(raw);
2776
- if (!_chunkYJFN2W7Acjs.isFormAttemptId.call(void 0, parsed.attemptId) || typeof parsed.savedAt !== "number") return null;
2779
+ if (!_chunkDUVOQHQIcjs.isFormAttemptId.call(void 0, parsed.attemptId) || typeof parsed.savedAt !== "number") return null;
2777
2780
  if (Date.now() - parsed.savedAt > LOCAL_DRAFT_TTL_MS) return null;
2778
- return { attemptId: parsed.attemptId, values: _chunkYJFN2W7Acjs.sanitizeRescueValues.call(void 0, parsed.values), savedAt: parsed.savedAt };
2781
+ return { attemptId: parsed.attemptId, values: _chunkDUVOQHQIcjs.sanitizeRescueValues.call(void 0, parsed.values), savedAt: parsed.savedAt };
2779
2782
  } catch (e8) {
2780
2783
  return null;
2781
2784
  }
@@ -2795,9 +2798,9 @@ function clearLocalDraft(formId) {
2795
2798
  function completeFormRescue(form, attemptId) {
2796
2799
  if (!form || typeof window === "undefined") return;
2797
2800
  const local = readLocalDraft(form.id);
2798
- _chunkYJFN2W7Acjs.captureFormRescueEvent.call(void 0, _chunkYJFN2W7Acjs.FORM_RESCUE_EVENTS.submitted, {
2801
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.submitted, {
2799
2802
  form_id: form.id,
2800
- attempt_id: _chunkYJFN2W7Acjs.isFormAttemptId.call(void 0, attemptId) ? attemptId : _nullishCoalesce(_optionalChain([local, 'optionalAccess', _36 => _36.attemptId]), () => ( null))
2803
+ attempt_id: _chunkDUVOQHQIcjs.isFormAttemptId.call(void 0, attemptId) ? attemptId : _nullishCoalesce(_optionalChain([local, 'optionalAccess', _36 => _36.attemptId]), () => ( null))
2801
2804
  });
2802
2805
  clearLocalDraft(form.id);
2803
2806
  }
@@ -2850,7 +2853,7 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2850
2853
  ...resumeTokenRef.current ? { resume_token: resumeTokenRef.current } : {}
2851
2854
  };
2852
2855
  try {
2853
- void _chunkLCTDHLDLcjs.contentFetch.call(void 0, draftsUrl, {
2856
+ void _chunkPX7FY655cjs.contentFetch.call(void 0, draftsUrl, {
2854
2857
  method: "POST",
2855
2858
  headers: { "Content-Type": "application/json" },
2856
2859
  body: JSON.stringify({ ...body, ..._nullishCoalesce(_optionalChain([getSignalsRef, 'access', _39 => _39.current, 'optionalCall', _40 => _40()]), () => ( {})) }),
@@ -2858,7 +2861,7 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2858
2861
  }).catch(() => void 0);
2859
2862
  } catch (e12) {
2860
2863
  }
2861
- _chunkYJFN2W7Acjs.captureFormRescueEvent.call(void 0, _chunkYJFN2W7Acjs.FORM_RESCUE_EVENTS.progress, {
2864
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.progress, {
2862
2865
  form_id: formId,
2863
2866
  attempt_id: attemptId(),
2864
2867
  fields_filled: body.fields_filled,
@@ -2871,23 +2874,23 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2871
2874
  _react.useEffect.call(void 0, () => {
2872
2875
  if (!formId || typeof window === "undefined") return void 0;
2873
2876
  let cancelled = false;
2874
- const token = new URLSearchParams(window.location.search).get(_chunkYJFN2W7Acjs.FORM_RESCUE_RESUME_PARAM);
2877
+ const token = new URLSearchParams(window.location.search).get(_chunkDUVOQHQIcjs.FORM_RESCUE_RESUME_PARAM);
2875
2878
  const restoreLocal = () => {
2876
2879
  const local = readLocalDraft(formId);
2877
2880
  if (!local) return;
2878
2881
  attemptIdRef.current = local.attemptId;
2879
2882
  if (Object.keys(local.values).length) _optionalChain([onRestoreRef, 'access', _41 => _41.current, 'optionalCall', _42 => _42(local.values)]);
2880
2883
  };
2881
- if (_chunkYJFN2W7Acjs.isResumeToken.call(void 0, token) && draftsUrl) {
2882
- _chunkLCTDHLDLcjs.contentFetch.call(void 0, `${draftsUrl}/resume/${encodeURIComponent(token)}`).then(async (res) => res.ok ? await res.json() : null).then((data) => {
2884
+ if (_chunkDUVOQHQIcjs.isResumeToken.call(void 0, token) && draftsUrl) {
2885
+ _chunkPX7FY655cjs.contentFetch.call(void 0, `${draftsUrl}/resume/${encodeURIComponent(token)}`).then(async (res) => res.ok ? await res.json() : null).then((data) => {
2883
2886
  if (cancelled) return;
2884
2887
  if (!data || data.form_id !== formId) {
2885
2888
  restoreLocal();
2886
2889
  return;
2887
2890
  }
2888
2891
  resumeTokenRef.current = token;
2889
- _optionalChain([onRestoreRef, 'access', _43 => _43.current, 'optionalCall', _44 => _44(_chunkYJFN2W7Acjs.sanitizeRescueValues.call(void 0, data.values))]);
2890
- _chunkYJFN2W7Acjs.captureFormRescueEvent.call(void 0, _chunkYJFN2W7Acjs.FORM_RESCUE_EVENTS.resumed, { form_id: formId, attempt_id: attemptId() });
2892
+ _optionalChain([onRestoreRef, 'access', _43 => _43.current, 'optionalCall', _44 => _44(_chunkDUVOQHQIcjs.sanitizeRescueValues.call(void 0, data.values))]);
2893
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.resumed, { form_id: formId, attempt_id: attemptId() });
2891
2894
  }).catch(() => {
2892
2895
  if (!cancelled) restoreLocal();
2893
2896
  });
@@ -2907,7 +2910,7 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2907
2910
  timerRef.current = null;
2908
2911
  }
2909
2912
  send(true);
2910
- _chunkYJFN2W7Acjs.captureFormRescueEvent.call(void 0, _chunkYJFN2W7Acjs.FORM_RESCUE_EVENTS.abandoned, {
2913
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.abandoned, {
2911
2914
  form_id: formId,
2912
2915
  attempt_id: attemptId(),
2913
2916
  last_field: _nullishCoalesce(_optionalChain([latestRef, 'access', _45 => _45.current, 'optionalAccess', _46 => _46.last_field]), () => ( null)),
@@ -2931,22 +2934,22 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2931
2934
  const names = fieldNamesRef.current;
2932
2935
  const visible = {};
2933
2936
  for (const name of names) visible[name] = values[name];
2934
- const filled = _chunkYJFN2W7Acjs.filledRescueFields.call(void 0, visible, names);
2937
+ const filled = _chunkDUVOQHQIcjs.filledRescueFields.call(void 0, visible, names);
2935
2938
  if (!filled.length) return;
2936
2939
  if (!startedRef.current) {
2937
2940
  startedRef.current = true;
2938
- _chunkYJFN2W7Acjs.captureFormRescueEvent.call(void 0, _chunkYJFN2W7Acjs.FORM_RESCUE_EVENTS.started, { form_id: formId, attempt_id: attemptId() });
2941
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.started, { form_id: formId, attempt_id: attemptId() });
2939
2942
  }
2940
- const clean = _chunkYJFN2W7Acjs.sanitizeRescueValues.call(void 0, visible);
2941
- if (!leadCapturedRef.current && _chunkYJFN2W7Acjs.isRescueEmail.call(void 0, clean.email)) {
2943
+ const clean = _chunkDUVOQHQIcjs.sanitizeRescueValues.call(void 0, visible);
2944
+ if (!leadCapturedRef.current && _chunkDUVOQHQIcjs.isRescueEmail.call(void 0, clean.email)) {
2942
2945
  leadCapturedRef.current = true;
2943
- _chunkYJFN2W7Acjs.captureFormRescueEvent.call(void 0, _chunkYJFN2W7Acjs.FORM_RESCUE_EVENTS.leadCaptured, { form_id: formId, attempt_id: attemptId() });
2946
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.leadCaptured, { form_id: formId, attempt_id: attemptId() });
2944
2947
  }
2945
2948
  latestRef.current = {
2946
2949
  values: clean,
2947
2950
  fields_filled: filled,
2948
- last_field: _chunkYJFN2W7Acjs.sanitizeRescueFieldName.call(void 0, lastField),
2949
- completion_pct: _chunkYJFN2W7Acjs.rescueCompletionPct.call(void 0, filled.length, names.length)
2951
+ last_field: _chunkDUVOQHQIcjs.sanitizeRescueFieldName.call(void 0, lastField),
2952
+ completion_pct: _chunkDUVOQHQIcjs.rescueCompletionPct.call(void 0, filled.length, names.length)
2950
2953
  };
2951
2954
  dirtyRef.current = true;
2952
2955
  writeLocalDraft(formId, { attemptId: attemptId(), values: clean, savedAt: Date.now() });
@@ -2954,15 +2957,15 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2954
2957
  timerRef.current = setTimeout(() => {
2955
2958
  timerRef.current = null;
2956
2959
  send(false);
2957
- }, _chunkYJFN2W7Acjs.FORM_RESCUE_DEBOUNCE_MS);
2960
+ }, _chunkDUVOQHQIcjs.FORM_RESCUE_DEBOUNCE_MS);
2958
2961
  },
2959
2962
  [attemptId, formId, send]
2960
2963
  );
2961
2964
  const submitFields = _react.useCallback.call(void 0, () => {
2962
2965
  if (!formId) return {};
2963
2966
  return {
2964
- [_chunkYJFN2W7Acjs.FORM_RESCUE_ATTEMPT_FIELD]: attemptId(),
2965
- ...resumeTokenRef.current ? { [_chunkYJFN2W7Acjs.FORM_RESCUE_RESUME_FIELD]: resumeTokenRef.current } : {}
2967
+ [_chunkDUVOQHQIcjs.FORM_RESCUE_ATTEMPT_FIELD]: attemptId(),
2968
+ ...resumeTokenRef.current ? { [_chunkDUVOQHQIcjs.FORM_RESCUE_RESUME_FIELD]: resumeTokenRef.current } : {}
2966
2969
  };
2967
2970
  }, [attemptId, formId]);
2968
2971
  const complete = _react.useCallback.call(void 0, () => {