@flamingo-stack/openframe-frontend-core 0.0.732 → 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 (74) hide show
  1. package/dist/{chunk-MEDDKM3A.cjs → chunk-3HPB4H4C.cjs} +2 -2
  2. package/dist/{chunk-22ZK7BA3.cjs → chunk-3KGICRH7.cjs} +1127 -1072
  3. package/dist/{chunk-6KDGIOLP.cjs → chunk-3UTPZW36.cjs} +89 -89
  4. package/dist/{chunk-GID62YEN.cjs → chunk-AAFW4STC.cjs} +3 -3
  5. package/dist/{chunk-6HHUU56Y.cjs → chunk-ATMBJBOI.cjs} +14 -14
  6. package/dist/{chunk-BS4EZZCN.cjs → chunk-AV5533DH.cjs} +15 -15
  7. package/dist/{chunk-SJRR745G.cjs → chunk-BP6R5WDW.cjs} +44 -44
  8. package/dist/{chunk-BDTX2OEE.cjs → chunk-CJVAA7KL.cjs} +32 -32
  9. package/dist/{chunk-RIXGLS5Y.cjs → chunk-DUVOQHQI.cjs} +4 -4
  10. package/dist/{chunk-E3N24573.cjs → chunk-DUXLZPMJ.cjs} +9 -9
  11. package/dist/{chunk-N466AJGN.cjs → chunk-E26I4XH6.cjs} +17 -17
  12. package/dist/{chunk-3BLBWZ6A.cjs → chunk-EMG3T55N.cjs} +7 -7
  13. package/dist/{chunk-PRWBVIWW.cjs → chunk-EQORT7NK.cjs} +59 -59
  14. package/dist/{chunk-AEVGCB3Y.cjs → chunk-FCGLSWKR.cjs} +4 -4
  15. package/dist/{chunk-MANNIJ42.cjs → chunk-FICJS5OA.cjs} +6 -0
  16. package/dist/{chunk-OI7VCXYU.cjs → chunk-FNRMDDVN.cjs} +40 -40
  17. package/dist/{chunk-KLXHCNDC.cjs → chunk-FTTLBMHU.cjs} +3 -3
  18. package/dist/{chunk-C5NERNE6.cjs → chunk-GB3CHAW7.cjs} +93 -93
  19. package/dist/{chunk-7DUXR4HL.cjs → chunk-GVTDVS5U.cjs} +3 -3
  20. package/dist/{chunk-5HMGK3N6.cjs → chunk-HSWHOCZ3.cjs} +20 -20
  21. package/dist/{chunk-CUF3IYIB.cjs → chunk-IC4FT3A6.cjs} +28 -28
  22. package/dist/{chunk-TLDCSTTQ.cjs → chunk-J7JKPTGO.cjs} +10 -10
  23. package/dist/{chunk-G37LT2ID.cjs → chunk-L4ZNR5V7.cjs} +38 -38
  24. package/dist/{chunk-NYY25425.cjs → chunk-MYBTNOS6.cjs} +2 -2
  25. package/dist/{chunk-HELVKMRG.cjs → chunk-NTJE6SM6.cjs} +2 -2
  26. package/dist/{chunk-XOQ2UUVS.cjs → chunk-P3R23TOE.cjs} +35 -35
  27. package/dist/{chunk-CC3LINHF.cjs → chunk-SA7LDEVJ.cjs} +3 -3
  28. package/dist/{chunk-YGKVHSNQ.cjs → chunk-TIMCHP4X.cjs} +42 -42
  29. package/dist/{chunk-MVZ6XFPK.cjs → chunk-U4T5NLZD.cjs} +8 -8
  30. package/dist/{chunk-5HSMTSHU.cjs → chunk-XDWY6HAW.cjs} +24 -24
  31. package/dist/{chunk-OJ3XU3YZ.cjs → chunk-XY632BCH.cjs} +4 -4
  32. package/dist/{chunk-ZWMPAFGB.cjs → chunk-YIXKH2JO.cjs} +236 -236
  33. package/dist/{chunk-I46MQ4R5.cjs → chunk-ZBNA6TCW.cjs} +73 -73
  34. package/dist/{chunk-QMTC3BK3.cjs → chunk-ZJNYWNCB.cjs} +21 -21
  35. package/dist/{chunk-HH4BMYDX.cjs → chunk-ZRYKDN2J.cjs} +19 -19
  36. package/dist/{cloud-tenants-ILRE74JY.cjs → cloud-tenants-3GOGR3EN.cjs} +21 -21
  37. package/dist/components/case-studies/index.cjs +34 -34
  38. package/dist/components/chat/embeddable-chat.d.ts +16 -0
  39. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  40. package/dist/components/chat/embeddable-chat.js +5 -2
  41. package/dist/components/chat/index.cjs +15 -15
  42. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  43. package/dist/components/chat/utils/icon-library.js +6 -0
  44. package/dist/components/contact/index.cjs +22 -22
  45. package/dist/components/docs/index.cjs +25 -25
  46. package/dist/components/embeds/index.cjs +22 -22
  47. package/dist/components/faq/index.cjs +22 -22
  48. package/dist/components/features/index.cjs +21 -21
  49. package/dist/components/help-center-pages/index.cjs +137 -137
  50. package/dist/components/index.cjs +76 -76
  51. package/dist/components/meeting-scheduler/index.cjs +63 -63
  52. package/dist/components/navigation/index.cjs +24 -24
  53. package/dist/components/onboarding-guides/index.cjs +24 -24
  54. package/dist/components/product-demo/index.cjs +8 -8
  55. package/dist/components/related-content/index.cjs +9 -9
  56. package/dist/components/tickets/index.cjs +25 -25
  57. package/dist/components/ui/index.cjs +21 -21
  58. package/dist/components/ui/searchable-select.d.ts +29 -3
  59. package/dist/components/ui/searchable-select.d.ts.map +1 -1
  60. package/dist/components/ui/searchable-select.js +101 -45
  61. package/dist/{devices-A6SFNGE4.cjs → devices-POZXTP7X.cjs} +22 -22
  62. package/dist/{embeddable-chat-BKPYNOIM.cjs → embeddable-chat-I3Y5GCCR.cjs} +95 -92
  63. package/dist/hooks/index.cjs +8 -8
  64. package/dist/index.cjs +27 -27
  65. package/dist/{knowledge-5ZCVKUYV.cjs → knowledge-AP34IMXN.cjs} +22 -22
  66. package/dist/{logs-CL4OJASB.cjs → logs-CEVMIOPW.cjs} +29 -29
  67. package/dist/{policies-7D44ZVS5.cjs → policies-AMBMRCGB.cjs} +25 -25
  68. package/dist/{remote-session-QB3CIZRM.cjs → remote-session-Z4YZFG5E.cjs} +9 -9
  69. package/dist/{software-update-AX6TZL26.cjs → software-update-Z3MWMSHI.cjs} +25 -25
  70. package/dist/{tickets-board-7FAV2YWF.cjs → tickets-board-JOSYLOS7.cjs} +12 -12
  71. package/package.json +1 -1
  72. package/src/components/chat/embeddable-chat.tsx +29 -2
  73. package/src/components/chat/utils/icon-library.tsx +7 -0
  74. package/src/components/ui/searchable-select.tsx +124 -32
@@ -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 _chunk22ZK7BA3cjs = require('./chunk-22ZK7BA3.cjs');
4
+ var _chunk3KGICRH7cjs = require('./chunk-3KGICRH7.cjs');
5
5
 
6
6
 
7
7
 
@@ -10,16 +10,16 @@ var _chunk22ZK7BA3cjs = require('./chunk-22ZK7BA3.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkZWMPAFGBcjs = require('./chunk-ZWMPAFGB.cjs');
13
+ var _chunkYIXKH2JOcjs = require('./chunk-YIXKH2JO.cjs');
14
14
 
15
15
 
16
- var _chunkCC3LINHFcjs = require('./chunk-CC3LINHF.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 _chunkXOQ2UUVScjs = require('./chunk-XOQ2UUVS.cjs');
22
+ var _chunkP3R23TOEcjs = require('./chunk-P3R23TOE.cjs');
23
23
 
24
24
 
25
25
  var _chunkPX7FY655cjs = require('./chunk-PX7FY655.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 } = _chunkZWMPAFGBcjs.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
- _chunk22ZK7BA3cjs.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: `${_chunkZWMPAFGBcjs.getSourceLabel.call(void 0, entry.repo)} ${_chunkZWMPAFGBcjs.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 = _chunkXOQ2UUVScjs.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 = _chunkCC3LINHFcjs.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) {
@@ -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", _chunkZWMPAFGBcjs.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(_chunkZWMPAFGBcjs.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
- _chunkZWMPAFGBcjs.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", _chunkZWMPAFGBcjs.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(_chunkZWMPAFGBcjs.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 _chunk22ZK7BA3cjs = require('./chunk-22ZK7BA3.cjs');
13
+ var _chunk3KGICRH7cjs = require('./chunk-3KGICRH7.cjs');
14
14
 
15
15
 
16
- var _chunkG37LT2IDcjs = require('./chunk-G37LT2ID.cjs');
16
+ var _chunkL4ZNR5V7cjs = require('./chunk-L4ZNR5V7.cjs');
17
17
 
18
18
 
19
- var _chunk6KDGIOLPcjs = require('./chunk-6KDGIOLP.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 _chunkXOQ2UUVScjs = require('./chunk-XOQ2UUVS.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 = _chunk6KDGIOLPcjs.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
- _chunk22ZK7BA3cjs.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
- _chunk22ZK7BA3cjs.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 = _chunk6KDGIOLPcjs.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
- _chunkG37LT2IDcjs.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, _chunk22ZK7BA3cjs.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 = _chunkXOQ2UUVScjs.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
- _chunkXOQ2UUVScjs.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
- _chunkXOQ2UUVScjs.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 _chunkRIXGLS5Ycjs = require('./chunk-RIXGLS5Y.cjs');
32
+ var _chunkDUVOQHQIcjs = require('./chunk-DUVOQHQI.cjs');
33
33
 
34
34
 
35
35
 
@@ -38,10 +38,10 @@ var _chunkRIXGLS5Ycjs = require('./chunk-RIXGLS5Y.cjs');
38
38
 
39
39
 
40
40
 
41
- var _chunkCC3LINHFcjs = require('./chunk-CC3LINHF.cjs');
41
+ var _chunkSA7LDEVJcjs = require('./chunk-SA7LDEVJ.cjs');
42
42
 
43
43
 
44
- var _chunkHELVKMRGcjs = require('./chunk-HELVKMRG.cjs');
44
+ var _chunkNTJE6SM6cjs = require('./chunk-NTJE6SM6.cjs');
45
45
 
46
46
 
47
47
  var _chunkJKX2C3I2cjs = require('./chunk-JKX2C3I2.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 = _chunkCC3LINHFcjs.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 = _chunkRIXGLS5Ycjs.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, _chunkHELVKMRGcjs.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,
@@ -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 = _chunkRIXGLS5Ycjs.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 = _chunkRIXGLS5Ycjs.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
  }
@@ -2545,7 +2545,7 @@ function useScenarioPlayer({
2545
2545
  startAtEnd = false,
2546
2546
  emptyFirstStep = true
2547
2547
  }) {
2548
- const auto = _chunkCC3LINHFcjs.useAutoplay.call(void 0, enabled);
2548
+ const auto = _chunkSA7LDEVJcjs.useAutoplay.call(void 0, enabled);
2549
2549
  const { reducedMotion, held, holdProps, release } = auto;
2550
2550
  const [scenario, setScenario] = _react.useState.call(void 0, initialScenario);
2551
2551
  const [rawStep, setRawStep] = _react.useState.call(void 0, startAtEnd ? Number.MAX_SAFE_INTEGER : 0);
@@ -2604,7 +2604,7 @@ function useAccessCodeIntegration() {
2604
2604
  const validate = async (email, code) => {
2605
2605
  setIsValidating(true);
2606
2606
  try {
2607
- return await _chunkRIXGLS5Ycjs.validateAccessCode.call(void 0, email, code, endpoints);
2607
+ return await _chunkDUVOQHQIcjs.validateAccessCode.call(void 0, email, code, endpoints);
2608
2608
  } finally {
2609
2609
  setIsValidating(false);
2610
2610
  }
@@ -2612,7 +2612,7 @@ function useAccessCodeIntegration() {
2612
2612
  const consume = async (email, code) => {
2613
2613
  setIsConsuming(true);
2614
2614
  try {
2615
- return await _chunkRIXGLS5Ycjs.consumeAccessCode.call(void 0, email, code, endpoints);
2615
+ return await _chunkDUVOQHQIcjs.consumeAccessCode.call(void 0, email, code, endpoints);
2616
2616
  } finally {
2617
2617
  setIsConsuming(false);
2618
2618
  }
@@ -2621,7 +2621,7 @@ function useAccessCodeIntegration() {
2621
2621
  setIsValidating(true);
2622
2622
  setIsConsuming(true);
2623
2623
  try {
2624
- return await _chunkRIXGLS5Ycjs.validateAndConsumeAccessCode.call(void 0, email, code, endpoints);
2624
+ return await _chunkDUVOQHQIcjs.validateAndConsumeAccessCode.call(void 0, email, code, endpoints);
2625
2625
  } finally {
2626
2626
  setIsValidating(false);
2627
2627
  setIsConsuming(false);
@@ -2651,7 +2651,7 @@ async function revalidateMirror(mirrorPath) {
2651
2651
  }
2652
2652
  function useClaudeMirrorSrc(url) {
2653
2653
  const endpoints = _chunkMZ4KBSH7cjs.useEndpointsRuntime.call(void 0, );
2654
- const mirrorPath = _chunkRIXGLS5Ycjs.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]));
2655
2655
  const [resolved, setResolved] = _react.useState.call(void 0, null);
2656
2656
  const state = resolved && resolved.key === mirrorPath ? resolved.value : { src: null, status: mirrorPath ? "probing" : "absent" };
2657
2657
  _react.useEffect.call(void 0, () => {
@@ -2682,7 +2682,7 @@ function useClaudeMirrorSrc(url) {
2682
2682
 
2683
2683
  // src/hooks/use-location-hash.ts
2684
2684
 
2685
- var HASH_EVENTS = ["hashchange", "popstate", _chunkCC3LINHFcjs.LOCATION_HASH_SYNC_EVENT];
2685
+ var HASH_EVENTS = ["hashchange", "popstate", _chunkSA7LDEVJcjs.LOCATION_HASH_SYNC_EVENT];
2686
2686
  function subscribe(onChange) {
2687
2687
  for (const event of HASH_EVENTS) window.addEventListener(event, onChange);
2688
2688
  return () => {
@@ -2690,7 +2690,7 @@ function subscribe(onChange) {
2690
2690
  };
2691
2691
  }
2692
2692
  function readHash() {
2693
- const raw = _chunkCC3LINHFcjs.normalizeHashFragment.call(void 0, window.location.hash).replace(/^#/, "");
2693
+ const raw = _chunkSA7LDEVJcjs.normalizeHashFragment.call(void 0, window.location.hash).replace(/^#/, "");
2694
2694
  try {
2695
2695
  return decodeURIComponent(raw);
2696
2696
  } catch (e7) {
@@ -2717,16 +2717,16 @@ function useScrollToHash(readyDep = true, options) {
2717
2717
  }
2718
2718
  };
2719
2719
  const tryScrollToHash = () => {
2720
- if (_chunkCC3LINHFcjs.isScrollSyncedHash.call(void 0, )) return;
2721
- const hash = _chunkCC3LINHFcjs.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);
2722
2722
  if (!hash) return;
2723
2723
  cancelPoll();
2724
2724
  let frames = 0;
2725
2725
  const tick = () => {
2726
- const el = _chunkCC3LINHFcjs.getHashTargetElement.call(void 0, hash);
2726
+ const el = _chunkSA7LDEVJcjs.getHashTargetElement.call(void 0, hash);
2727
2727
  if (el) {
2728
2728
  rafId = null;
2729
- _chunkCC3LINHFcjs.scrollElementIntoView.call(void 0, el, { headerOffset });
2729
+ _chunkSA7LDEVJcjs.scrollElementIntoView.call(void 0, el, { headerOffset });
2730
2730
  return;
2731
2731
  }
2732
2732
  if (frames++ < MAX_POLL_FRAMES) {
@@ -2754,8 +2754,8 @@ function useHumanitySignals() {
2754
2754
  const startedAtRef = _react.useRef.call(void 0, mountedAt);
2755
2755
  const getSignals = _react.useCallback.call(void 0,
2756
2756
  () => ({
2757
- [_chunkRIXGLS5Ycjs.HONEYPOT_FIELD]: _nullishCoalesce(_optionalChain([ref, 'access', _34 => _34.current, 'optionalAccess', _35 => _35.value]), () => ( "")),
2758
- [_chunkRIXGLS5Ycjs.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
2759
2759
  }),
2760
2760
  []
2761
2761
  );
@@ -2763,7 +2763,7 @@ function useHumanitySignals() {
2763
2763
  if (ref.current) ref.current.value = "";
2764
2764
  if (typeof performance !== "undefined") startedAtRef.current = performance.now();
2765
2765
  }, []);
2766
- return { honeypotInputProps: { ref, name: _chunkRIXGLS5Ycjs.HONEYPOT_FIELD }, getSignals, resetSignals };
2766
+ return { honeypotInputProps: { ref, name: _chunkDUVOQHQIcjs.HONEYPOT_FIELD }, getSignals, resetSignals };
2767
2767
  }
2768
2768
 
2769
2769
  // src/hooks/use-form-rescue.ts
@@ -2776,9 +2776,9 @@ function readLocalDraft(formId) {
2776
2776
  const raw = window.localStorage.getItem(STORAGE_PREFIX + formId);
2777
2777
  if (!raw) return null;
2778
2778
  const parsed = JSON.parse(raw);
2779
- if (!_chunkRIXGLS5Ycjs.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;
2780
2780
  if (Date.now() - parsed.savedAt > LOCAL_DRAFT_TTL_MS) return null;
2781
- return { attemptId: parsed.attemptId, values: _chunkRIXGLS5Ycjs.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 };
2782
2782
  } catch (e8) {
2783
2783
  return null;
2784
2784
  }
@@ -2798,9 +2798,9 @@ function clearLocalDraft(formId) {
2798
2798
  function completeFormRescue(form, attemptId) {
2799
2799
  if (!form || typeof window === "undefined") return;
2800
2800
  const local = readLocalDraft(form.id);
2801
- _chunkRIXGLS5Ycjs.captureFormRescueEvent.call(void 0, _chunkRIXGLS5Ycjs.FORM_RESCUE_EVENTS.submitted, {
2801
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.submitted, {
2802
2802
  form_id: form.id,
2803
- attempt_id: _chunkRIXGLS5Ycjs.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))
2804
2804
  });
2805
2805
  clearLocalDraft(form.id);
2806
2806
  }
@@ -2861,7 +2861,7 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2861
2861
  }).catch(() => void 0);
2862
2862
  } catch (e12) {
2863
2863
  }
2864
- _chunkRIXGLS5Ycjs.captureFormRescueEvent.call(void 0, _chunkRIXGLS5Ycjs.FORM_RESCUE_EVENTS.progress, {
2864
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.progress, {
2865
2865
  form_id: formId,
2866
2866
  attempt_id: attemptId(),
2867
2867
  fields_filled: body.fields_filled,
@@ -2874,14 +2874,14 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2874
2874
  _react.useEffect.call(void 0, () => {
2875
2875
  if (!formId || typeof window === "undefined") return void 0;
2876
2876
  let cancelled = false;
2877
- const token = new URLSearchParams(window.location.search).get(_chunkRIXGLS5Ycjs.FORM_RESCUE_RESUME_PARAM);
2877
+ const token = new URLSearchParams(window.location.search).get(_chunkDUVOQHQIcjs.FORM_RESCUE_RESUME_PARAM);
2878
2878
  const restoreLocal = () => {
2879
2879
  const local = readLocalDraft(formId);
2880
2880
  if (!local) return;
2881
2881
  attemptIdRef.current = local.attemptId;
2882
2882
  if (Object.keys(local.values).length) _optionalChain([onRestoreRef, 'access', _41 => _41.current, 'optionalCall', _42 => _42(local.values)]);
2883
2883
  };
2884
- if (_chunkRIXGLS5Ycjs.isResumeToken.call(void 0, token) && draftsUrl) {
2884
+ if (_chunkDUVOQHQIcjs.isResumeToken.call(void 0, token) && draftsUrl) {
2885
2885
  _chunkPX7FY655cjs.contentFetch.call(void 0, `${draftsUrl}/resume/${encodeURIComponent(token)}`).then(async (res) => res.ok ? await res.json() : null).then((data) => {
2886
2886
  if (cancelled) return;
2887
2887
  if (!data || data.form_id !== formId) {
@@ -2889,8 +2889,8 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2889
2889
  return;
2890
2890
  }
2891
2891
  resumeTokenRef.current = token;
2892
- _optionalChain([onRestoreRef, 'access', _43 => _43.current, 'optionalCall', _44 => _44(_chunkRIXGLS5Ycjs.sanitizeRescueValues.call(void 0, data.values))]);
2893
- _chunkRIXGLS5Ycjs.captureFormRescueEvent.call(void 0, _chunkRIXGLS5Ycjs.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() });
2894
2894
  }).catch(() => {
2895
2895
  if (!cancelled) restoreLocal();
2896
2896
  });
@@ -2910,7 +2910,7 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2910
2910
  timerRef.current = null;
2911
2911
  }
2912
2912
  send(true);
2913
- _chunkRIXGLS5Ycjs.captureFormRescueEvent.call(void 0, _chunkRIXGLS5Ycjs.FORM_RESCUE_EVENTS.abandoned, {
2913
+ _chunkDUVOQHQIcjs.captureFormRescueEvent.call(void 0, _chunkDUVOQHQIcjs.FORM_RESCUE_EVENTS.abandoned, {
2914
2914
  form_id: formId,
2915
2915
  attempt_id: attemptId(),
2916
2916
  last_field: _nullishCoalesce(_optionalChain([latestRef, 'access', _45 => _45.current, 'optionalAccess', _46 => _46.last_field]), () => ( null)),
@@ -2934,22 +2934,22 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2934
2934
  const names = fieldNamesRef.current;
2935
2935
  const visible = {};
2936
2936
  for (const name of names) visible[name] = values[name];
2937
- const filled = _chunkRIXGLS5Ycjs.filledRescueFields.call(void 0, visible, names);
2937
+ const filled = _chunkDUVOQHQIcjs.filledRescueFields.call(void 0, visible, names);
2938
2938
  if (!filled.length) return;
2939
2939
  if (!startedRef.current) {
2940
2940
  startedRef.current = true;
2941
- _chunkRIXGLS5Ycjs.captureFormRescueEvent.call(void 0, _chunkRIXGLS5Ycjs.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() });
2942
2942
  }
2943
- const clean = _chunkRIXGLS5Ycjs.sanitizeRescueValues.call(void 0, visible);
2944
- if (!leadCapturedRef.current && _chunkRIXGLS5Ycjs.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)) {
2945
2945
  leadCapturedRef.current = true;
2946
- _chunkRIXGLS5Ycjs.captureFormRescueEvent.call(void 0, _chunkRIXGLS5Ycjs.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() });
2947
2947
  }
2948
2948
  latestRef.current = {
2949
2949
  values: clean,
2950
2950
  fields_filled: filled,
2951
- last_field: _chunkRIXGLS5Ycjs.sanitizeRescueFieldName.call(void 0, lastField),
2952
- completion_pct: _chunkRIXGLS5Ycjs.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)
2953
2953
  };
2954
2954
  dirtyRef.current = true;
2955
2955
  writeLocalDraft(formId, { attemptId: attemptId(), values: clean, savedAt: Date.now() });
@@ -2957,15 +2957,15 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
2957
2957
  timerRef.current = setTimeout(() => {
2958
2958
  timerRef.current = null;
2959
2959
  send(false);
2960
- }, _chunkRIXGLS5Ycjs.FORM_RESCUE_DEBOUNCE_MS);
2960
+ }, _chunkDUVOQHQIcjs.FORM_RESCUE_DEBOUNCE_MS);
2961
2961
  },
2962
2962
  [attemptId, formId, send]
2963
2963
  );
2964
2964
  const submitFields = _react.useCallback.call(void 0, () => {
2965
2965
  if (!formId) return {};
2966
2966
  return {
2967
- [_chunkRIXGLS5Ycjs.FORM_RESCUE_ATTEMPT_FIELD]: attemptId(),
2968
- ...resumeTokenRef.current ? { [_chunkRIXGLS5Ycjs.FORM_RESCUE_RESUME_FIELD]: resumeTokenRef.current } : {}
2967
+ [_chunkDUVOQHQIcjs.FORM_RESCUE_ATTEMPT_FIELD]: attemptId(),
2968
+ ...resumeTokenRef.current ? { [_chunkDUVOQHQIcjs.FORM_RESCUE_RESUME_FIELD]: resumeTokenRef.current } : {}
2969
2969
  };
2970
2970
  }, [attemptId, formId]);
2971
2971
  const complete = _react.useCallback.call(void 0, () => {