@flamingo-stack/openframe-frontend-core 0.0.716 → 0.0.718

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 (113) hide show
  1. package/dist/chat-protocol/index.cjs +23 -14
  2. package/dist/chat-protocol/index.js +23 -14
  3. package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
  4. package/dist/chat-protocol/source-metadata.d.ts +11 -2
  5. package/dist/chat-protocol/source-metadata.d.ts.map +1 -1
  6. package/dist/{chunk-DPX6244M.js → chunk-45F7PXUI.js} +3 -3
  7. package/dist/{chunk-KYFNFRSV.js → chunk-67QBMN4R.js} +2 -2
  8. package/dist/{chunk-3RKBJT6K.cjs → chunk-6A43ZDWV.cjs} +2 -2
  9. package/dist/chunk-A6P6DHEZ.cjs +130 -0
  10. package/dist/{chunk-KNOZVVCU.cjs → chunk-BOTM373R.cjs} +9 -9
  11. package/dist/{chunk-DHMO5GI4.cjs → chunk-BWIN42ZA.cjs} +21 -21
  12. package/dist/{chunk-YTMV4OBY.js → chunk-DCD5WZUF.js} +4 -4
  13. package/dist/{chunk-V36WGIYR.js → chunk-DEZDMTBM.js} +5 -5
  14. package/dist/{chunk-YO5JB3WE.cjs → chunk-DXCBOZVT.cjs} +35 -35
  15. package/dist/{chunk-ZX7SCPLO.cjs → chunk-E7YCPY7K.cjs} +3 -3
  16. package/dist/{chunk-I5F2OTFE.cjs → chunk-EZC2F5OT.cjs} +33 -33
  17. package/dist/{chunk-DLEO53NX.cjs → chunk-GN4A7PMB.cjs} +69 -69
  18. package/dist/{chunk-6T3BTD6Q.js → chunk-IWCPXJEE.js} +201 -327
  19. package/dist/{chunk-ROBQ5TR7.js → chunk-JH2SIWPQ.js} +28 -17
  20. package/dist/{chunk-3AJIQPFG.js → chunk-JIWMBIVZ.js} +6 -6
  21. package/dist/{chunk-DDWFCWOE.js → chunk-JPD4NXH6.js} +1 -1
  22. package/dist/{chunk-JVCAK4W3.cjs → chunk-LE5WKGJV.cjs} +3 -3
  23. package/dist/{chunk-NPAQSMRY.js → chunk-LOYPRJWA.js} +1053 -357
  24. package/dist/{chunk-5IJXM3RU.cjs → chunk-MIQLUUVF.cjs} +10 -10
  25. package/dist/{chunk-MXPQMQI3.js → chunk-MM7MCIXL.js} +6 -6
  26. package/dist/{chunk-C5AGSZBT.js → chunk-N2PF5CFX.js} +4837 -5425
  27. package/dist/{chunk-STCJYO2Z.cjs → chunk-NDZ5ZXOQ.cjs} +11 -11
  28. package/dist/{chunk-H5R7U2D2.js → chunk-NZ5BHDFZ.js} +1 -1
  29. package/dist/{chunk-JCA5MBVY.js → chunk-PQ6HBLZ7.js} +4 -4
  30. package/dist/{chunk-EOKSKJSS.cjs → chunk-QBCDSTLE.cjs} +13 -13
  31. package/dist/{chunk-NQWJAOHO.js → chunk-QXZCLQNV.js} +1 -1
  32. package/dist/{chunk-2V7D5GJX.cjs → chunk-S2FUFMLW.cjs} +25 -25
  33. package/dist/{chunk-64F6OEEV.js → chunk-SGFTTJKO.js} +1 -1
  34. package/dist/{chunk-P7IL4CX3.js → chunk-TBCZCRQ5.js} +6 -6
  35. package/dist/{chunk-HETQETPV.cjs → chunk-UWQWMGJ7.cjs} +28 -17
  36. package/dist/{chunk-X2MNNV5H.cjs → chunk-WALCXC7J.cjs} +3 -3
  37. package/dist/{chunk-YBS5QGON.js → chunk-XGHGGBM3.js} +2 -2
  38. package/dist/{chunk-NKILEG3Y.cjs → chunk-YC5COB5V.cjs} +45 -45
  39. package/dist/{chunk-BVZ7W4HW.js → chunk-YEMCCYIF.js} +4 -4
  40. package/dist/chunk-YYYVS7CX.js +130 -0
  41. package/dist/{chunk-S2VWQX6T.cjs → chunk-Z3CVSPO3.cjs} +842 -1430
  42. package/dist/{chunk-PPXR22YC.cjs → chunk-Z5UWW3Z2.cjs} +707 -11
  43. package/dist/{chunk-JO5TLJPM.cjs → chunk-ZXCZYMN4.cjs} +37 -163
  44. package/dist/{cloud-tenants-2J7CPTKT.cjs → cloud-tenants-PFDF7O5U.cjs} +6 -5
  45. package/dist/{cloud-tenants-YOY2WLGC.js → cloud-tenants-TAKOWXLD.js} +5 -4
  46. package/dist/components/case-studies/index.cjs +17 -16
  47. package/dist/components/case-studies/index.js +6 -5
  48. package/dist/components/chat/index.cjs +2 -2
  49. package/dist/components/chat/index.js +1 -1
  50. package/dist/components/chat/types/message.types.d.ts +20 -16
  51. package/dist/components/chat/types/message.types.d.ts.map +1 -1
  52. package/dist/components/chat/types/unified-chat-state.types.d.ts +1 -1
  53. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  54. package/dist/components/contact/index.cjs +7 -6
  55. package/dist/components/contact/index.js +6 -5
  56. package/dist/components/docs/index.cjs +10 -9
  57. package/dist/components/docs/index.js +9 -8
  58. package/dist/components/embeds/index.cjs +7 -6
  59. package/dist/components/embeds/index.js +6 -5
  60. package/dist/components/faq/index.cjs +7 -6
  61. package/dist/components/faq/index.js +6 -5
  62. package/dist/components/features/index.cjs +10 -5
  63. package/dist/components/features/index.js +9 -4
  64. package/dist/components/features/remote-session/index.d.ts +2 -0
  65. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  66. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts +3 -3
  67. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts.map +1 -1
  68. package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts +29 -0
  69. package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts.map +1 -0
  70. package/dist/components/help-center-pages/index.cjs +71 -70
  71. package/dist/components/help-center-pages/index.js +17 -16
  72. package/dist/components/index.cjs +44 -39
  73. package/dist/components/index.js +22 -17
  74. package/dist/components/meeting-scheduler/index.cjs +33 -32
  75. package/dist/components/meeting-scheduler/index.js +5 -4
  76. package/dist/components/navigation/index.cjs +9 -8
  77. package/dist/components/navigation/index.js +8 -7
  78. package/dist/components/onboarding-guides/index.cjs +9 -8
  79. package/dist/components/onboarding-guides/index.js +8 -7
  80. package/dist/components/product-demo/index.cjs +7 -7
  81. package/dist/components/product-demo/index.js +7 -7
  82. package/dist/components/tickets/index.cjs +10 -9
  83. package/dist/components/tickets/index.js +9 -8
  84. package/dist/components/ui/autocomplete.d.ts +6 -0
  85. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  86. package/dist/components/ui/index.cjs +8 -7
  87. package/dist/components/ui/index.js +7 -6
  88. package/dist/{devices-5NADSKDZ.cjs → devices-KRCGZMGA.cjs} +7 -6
  89. package/dist/{devices-EQXXILXW.js → devices-LHEX7O5T.js} +5 -4
  90. package/dist/hooks/index.cjs +6 -4
  91. package/dist/hooks/index.js +5 -3
  92. package/dist/index.cjs +17 -11
  93. package/dist/index.js +18 -12
  94. package/dist/{knowledge-LHQYZJE7.cjs → knowledge-KLVPVEYZ.cjs} +7 -6
  95. package/dist/{knowledge-YCQITBJB.js → knowledge-RZSFNR33.js} +5 -4
  96. package/dist/{logs-LZNXGOSW.js → logs-E5DOV5JO.js} +5 -4
  97. package/dist/{logs-DUVKSQU3.cjs → logs-OX3XTVL2.cjs} +14 -13
  98. package/dist/{policies-5H74FS4S.cjs → policies-FOSCIZGK.cjs} +10 -9
  99. package/dist/{policies-VYWOJ7IF.js → policies-MC2S4S5G.js} +5 -4
  100. package/dist/{remote-session-R6VAFESR.cjs → remote-session-DRFE5XZE.cjs} +4 -3
  101. package/dist/{remote-session-GSGZOFDX.js → remote-session-JQ2BPIE3.js} +2 -1
  102. package/dist/{software-update-MSDY3OLX.js → software-update-D4OEIH65.js} +7 -5
  103. package/dist/{software-update-VRRX5U4W.cjs → software-update-HOBSTWVO.cjs} +12 -10
  104. package/package.json +1 -1
  105. package/src/chat-protocol/nats-decoder.ts +10 -8
  106. package/src/chat-protocol/source-metadata.ts +25 -2
  107. package/src/components/chat/types/message.types.ts +21 -15
  108. package/src/components/chat/types/unified-chat-state.types.ts +1 -1
  109. package/src/components/chat/utils/process-historical-messages.ts +12 -4
  110. package/src/components/features/remote-session/index.ts +2 -0
  111. package/src/components/features/remote-session/remote-session-keep-modals.tsx +4 -4
  112. package/src/components/features/remote-session/remote-session-ticket-modals.tsx +140 -0
  113. package/src/components/ui/autocomplete.tsx +18 -4
@@ -6,15 +6,15 @@ var _chunkMA4Q5RBPcjs = require('./chunk-MA4Q5RBP.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkS2VWQX6Tcjs = require('./chunk-S2VWQX6T.cjs');
9
+ var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
10
10
 
11
11
 
12
- var _chunkPPXR22YCcjs = require('./chunk-PPXR22YC.cjs');
12
+ var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
13
13
 
14
14
 
15
15
 
16
16
 
17
- var _chunkHETQETPVcjs = require('./chunk-HETQETPV.cjs');
17
+ var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
18
18
 
19
19
 
20
20
 
@@ -69,7 +69,7 @@ function ListEmptyState({ isFiltered, filtered, onClearFilters, empty }) {
69
69
  var _react = require('react');
70
70
 
71
71
  function DevSectionView({ sectionKey, hero, preControls, children, showHeading = true }) {
72
- const section = _chunkHETQETPVcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
72
+ const section = _chunkUWQWMGJ7cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
73
73
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
74
74
  const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
75
75
  const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
@@ -120,7 +120,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
120
120
  preControls,
121
121
  (search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
122
122
  search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
123
- _chunkS2VWQX6Tcjs.SearchInput,
123
+ _chunkZ3CVSPO3cjs.SearchInput,
124
124
  {
125
125
  showDropdown: false,
126
126
  placeholder: search.placeholder,
@@ -130,7 +130,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
130
130
  }
131
131
  ),
132
132
  filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
133
- _chunkS2VWQX6Tcjs.StatusFilterComponent,
133
+ _chunkZ3CVSPO3cjs.StatusFilterComponent,
134
134
  {
135
135
  selectedStatus: currentFilterValue,
136
136
  onStatusChange: handleFilterChange,
@@ -154,7 +154,7 @@ function DevSectionPage({
154
154
  shell = true
155
155
  }) {
156
156
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
157
- const section = _chunkHETQETPVcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
157
+ const section = _chunkUWQWMGJ7cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
158
158
  const backCfg = backButton === false ? void 0 : {
159
159
  label: _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home")),
160
160
  onClick: () => router.push(_nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/")))
@@ -167,7 +167,7 @@ function DevSectionPage({
167
167
  // duplicate title. (The hero icon is intentionally dropped: TitleBlock is
168
168
  // frozen and renders title-only.)
169
169
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
170
- _chunkPPXR22YCcjs.PageLayout,
170
+ _chunkZ5UWW3Z2cjs.PageLayout,
171
171
  {
172
172
  title: _nullishCoalesce(title, () => ( section.hero.title)),
173
173
  subtitle: _nullishCoalesce(subtitle, () => ( section.hero.description)),
@@ -178,7 +178,7 @@ function DevSectionPage({
178
178
  }
179
179
  )
180
180
  );
181
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS2VWQX6Tcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
181
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
182
182
  }
183
183
 
184
184
  // src/components/shared/dev-section/dev-card-row.tsx
@@ -236,8 +236,8 @@ function getRelativeTime(timestamp) {
236
236
  }
237
237
  function DeliveryRow({ item, href, target, caption, id, className }) {
238
238
  const taskType = item.taskType;
239
- const typeBadgeLabel = _chunkHETQETPVcjs.TASK_TYPE_LABELS[taskType] || "TASK";
240
- const typeBadgeTextColor = _chunkHETQETPVcjs.TASK_TYPE_TEXT_COLORS[taskType] || "";
239
+ const typeBadgeLabel = _chunkUWQWMGJ7cjs.TASK_TYPE_LABELS[taskType] || "TASK";
240
+ const typeBadgeTextColor = _chunkUWQWMGJ7cjs.TASK_TYPE_TEXT_COLORS[taskType] || "";
241
241
  const statusBadgeScheme = _chunkETYLOZOBcjs.getStatusColorScheme.call(void 0, item.status);
242
242
  const relativeTime = getRelativeTime(item.dateUpdated);
243
243
  const subtitle = `ACTIVE ${relativeTime}${item.listNames.length > 0 ? `, ${item.listNames.join(", ")}` : ""}, ${item.id}`;
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  DEFAULT_FOLDER_INDEX_FILE,
4
4
  ScrollShadow
5
- } from "./chunk-ROBQ5TR7.js";
5
+ } from "./chunk-JH2SIWPQ.js";
6
6
  import {
7
7
  ACTIVE_ANCHOR_ATTRIBUTE,
8
8
  declaredScrollMarginTop,
@@ -4,18 +4,18 @@ import {
4
4
  } from "./chunk-YBQQNDC7.js";
5
5
  import {
6
6
  PageShell
7
- } from "./chunk-C5AGSZBT.js";
7
+ } from "./chunk-N2PF5CFX.js";
8
8
  import {
9
9
  PageLayout
10
- } from "./chunk-NPAQSMRY.js";
10
+ } from "./chunk-LOYPRJWA.js";
11
11
  import {
12
12
  useScrollToHash
13
- } from "./chunk-6T3BTD6Q.js";
13
+ } from "./chunk-IWCPXJEE.js";
14
14
  import {
15
15
  faqItemAnchor,
16
16
  faqSectionSlug,
17
17
  parseFaqHash
18
- } from "./chunk-ROBQ5TR7.js";
18
+ } from "./chunk-JH2SIWPQ.js";
19
19
  import {
20
20
  STICKY_HEADER_OFFSET_PX,
21
21
  navigateSamePageHash
@@ -1,12 +1,12 @@
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 _chunkJO5TLJPMcjs = require('./chunk-JO5TLJPM.cjs');
4
+ var _chunkZXCZYMN4cjs = require('./chunk-ZXCZYMN4.cjs');
5
5
 
6
6
 
7
7
 
8
8
 
9
- var _chunkHETQETPVcjs = require('./chunk-HETQETPV.cjs');
9
+ var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
10
10
 
11
11
 
12
12
 
@@ -118,31 +118,31 @@ CveLink.displayName = "CveLink";
118
118
  // src/components/platform/ShellTypeBadge.tsx
119
119
 
120
120
  var shellIconMap = {
121
- [_chunkHETQETPVcjs.ShellTypeValues.POWERSHELL]: {
121
+ [_chunkUWQWMGJ7cjs.ShellTypeValues.POWERSHELL]: {
122
122
  icon: _chunkVX4E6YSBcjs.PowershellLogoGreyIcon,
123
123
  props: { size: 16, className: "text-ods-text-secondary" }
124
124
  },
125
- [_chunkHETQETPVcjs.ShellTypeValues.CMD]: {
125
+ [_chunkUWQWMGJ7cjs.ShellTypeValues.CMD]: {
126
126
  icon: _chunkLLSUVPQCcjs.CmdIcon,
127
127
  props: { size: 16, color: "var(--color-text-secondary)" }
128
128
  },
129
- [_chunkHETQETPVcjs.ShellTypeValues.BASH]: {
129
+ [_chunkUWQWMGJ7cjs.ShellTypeValues.BASH]: {
130
130
  icon: _chunkLLSUVPQCcjs.BashIcon,
131
131
  props: { size: 16, color: "var(--color-text-secondary)" }
132
132
  },
133
- [_chunkHETQETPVcjs.ShellTypeValues.PYTHON]: {
133
+ [_chunkUWQWMGJ7cjs.ShellTypeValues.PYTHON]: {
134
134
  icon: _chunkVX4E6YSBcjs.PythonLogoIcon,
135
135
  props: { size: 16, className: "text-ods-text-secondary" }
136
136
  },
137
- [_chunkHETQETPVcjs.ShellTypeValues.NUSHELL]: {
137
+ [_chunkUWQWMGJ7cjs.ShellTypeValues.NUSHELL]: {
138
138
  icon: _chunkLLSUVPQCcjs.NushellIcon,
139
139
  props: { size: 16, color: "var(--color-text-secondary)" }
140
140
  },
141
- [_chunkHETQETPVcjs.ShellTypeValues.DENO]: {
141
+ [_chunkUWQWMGJ7cjs.ShellTypeValues.DENO]: {
142
142
  icon: _chunkLLSUVPQCcjs.DenoIcon,
143
143
  props: { size: 16, color: "var(--color-text-secondary)" }
144
144
  },
145
- [_chunkHETQETPVcjs.ShellTypeValues.SHELL]: {
145
+ [_chunkUWQWMGJ7cjs.ShellTypeValues.SHELL]: {
146
146
  icon: _chunkLLSUVPQCcjs.ShellIcon,
147
147
  props: { size: 16, color: "var(--color-text-secondary)" }
148
148
  }
@@ -153,7 +153,7 @@ var defaultIconConfig = {
153
153
  };
154
154
  var ShellTypeBadge = ({ shellType, className, iconClassName }) => {
155
155
  const normalizedType = _optionalChain([shellType, 'optionalAccess', _ => _.toUpperCase, 'call', _2 => _2()]);
156
- const label = _chunkHETQETPVcjs.getShellLabel.call(void 0, normalizedType);
156
+ const label = _chunkUWQWMGJ7cjs.getShellLabel.call(void 0, normalizedType);
157
157
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
158
158
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
159
159
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex items-center gap-1", className), children: [
@@ -169,7 +169,7 @@ function formatSupportedPlatforms(platforms) {
169
169
  if (!platforms || platforms.length === 0) {
170
170
  return "All Platforms";
171
171
  }
172
- return platforms.map((platform) => _chunkHETQETPVcjs.getOSLabel.call(void 0, platform)).join(", ");
172
+ return platforms.map((platform) => _chunkUWQWMGJ7cjs.getOSLabel.call(void 0, platform)).join(", ");
173
173
  }
174
174
  function InfoCell({ label, value, avatar, className }) {
175
175
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex min-w-0 items-center gap-2", className), children: [
@@ -189,7 +189,7 @@ var ScriptInfoSection = ({
189
189
  author,
190
190
  className
191
191
  }) => {
192
- const shellLabel = _chunkHETQETPVcjs.getShellLabel.call(void 0, shellType);
192
+ const shellLabel = _chunkUWQWMGJ7cjs.getShellLabel.call(void 0, shellType);
193
193
  const platformsLabel = formatSupportedPlatforms(supportedPlatforms);
194
194
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", className), children: [
195
195
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
@@ -436,7 +436,7 @@ function OnboardingWalkthrough({
436
436
  isStepSkipped,
437
437
  allStepsComplete,
438
438
  markMultipleComplete
439
- } = _chunkJO5TLJPMcjs.useOnboardingState.call(void 0, storageKey);
439
+ } = _chunkZXCZYMN4cjs.useOnboardingState.call(void 0, storageKey);
440
440
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
441
441
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
442
442
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  PageLayout
4
- } from "./chunk-NPAQSMRY.js";
4
+ } from "./chunk-LOYPRJWA.js";
5
5
  import {
6
6
  getProxiedImageUrl
7
7
  } from "./chunk-TTVOLEUS.js";
@@ -2,25 +2,25 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkS2VWQX6Tcjs = require('./chunk-S2VWQX6T.cjs');
5
+ var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
6
6
 
7
7
 
8
8
 
9
9
 
10
10
 
11
11
 
12
- var _chunkPPXR22YCcjs = require('./chunk-PPXR22YC.cjs');
12
+ var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
13
13
 
14
14
 
15
15
 
16
16
 
17
- var _chunkJO5TLJPMcjs = require('./chunk-JO5TLJPM.cjs');
17
+ var _chunkZXCZYMN4cjs = require('./chunk-ZXCZYMN4.cjs');
18
18
 
19
19
 
20
20
 
21
21
 
22
22
 
23
- var _chunkHETQETPVcjs = require('./chunk-HETQETPV.cjs');
23
+ var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
24
24
 
25
25
 
26
26
 
@@ -115,14 +115,14 @@ function ContactForm({
115
115
  successToastMessage = "Redirecting you to join our community...",
116
116
  rescue: rescueForm = null
117
117
  } = {}) {
118
- const attachments = _chunkHETQETPVcjs.useChatAttachments.call(void 0, );
119
- const builtInSubmission = _chunkJO5TLJPMcjs.useContactSubmission.call(void 0, {
118
+ const attachments = _chunkUWQWMGJ7cjs.useChatAttachments.call(void 0, );
119
+ const builtInSubmission = _chunkZXCZYMN4cjs.useContactSubmission.call(void 0, {
120
120
  userId,
121
121
  successRedirectUrl,
122
122
  successToastMessage
123
123
  });
124
124
  const [customSubmitting, setCustomSubmitting] = _react.useState.call(void 0, false);
125
- const { honeypotInputProps, getSignals, resetSignals } = _chunkJO5TLJPMcjs.useHumanitySignals.call(void 0, );
125
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkZXCZYMN4cjs.useHumanitySignals.call(void 0, );
126
126
  const isSubmitting = onCustomSubmit ? customSubmitting : builtInSubmission.isSubmitting;
127
127
  const isSuccess = onCustomSubmit ? false : builtInSubmission.isSuccess;
128
128
  const form = _reacthookform.useForm.call(void 0, {
@@ -148,7 +148,7 @@ function ContactForm({
148
148
  ),
149
149
  [hideFields]
150
150
  );
151
- const rescue = _chunkJO5TLJPMcjs.useRescuedForm.call(void 0, form, { rescue: rescueForm, fields: rescueFieldNames, getSignals });
151
+ const rescue = _chunkZXCZYMN4cjs.useRescuedForm.call(void 0, form, { rescue: rescueForm, fields: rescueFieldNames, getSignals });
152
152
  const handleFormSubmit = async (data) => {
153
153
  if (isSubmitting) return;
154
154
  if (attachmentsEnabled && attachments.hasInflightUploads) return;
@@ -199,13 +199,13 @@ function ContactForm({
199
199
  );
200
200
  }),
201
201
  className: "flex flex-grow flex-col space-y-4 content-md:space-y-6",
202
- ..._chunkHETQETPVcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
202
+ ..._chunkUWQWMGJ7cjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
203
203
  children: [
204
204
  !showName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("name") }),
205
205
  !showEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("email") }),
206
206
  !showHelpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("helpCategory") }),
207
207
  !showMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("message") }),
208
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS2VWQX6Tcjs.HoneypotField, { ...honeypotInputProps }),
208
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.HoneypotField, { ...honeypotInputProps }),
209
209
  extraTopField,
210
210
  showNameEmailRow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-md:grid-cols-2 content-md:gap-6", children: [
211
211
  showName && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
@@ -257,17 +257,17 @@ function ContactForm({
257
257
  {
258
258
  control,
259
259
  name: "companySize",
260
- render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPPXR22YCcjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
260
+ render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
261
261
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
262
- _chunkPPXR22YCcjs.SelectTrigger,
262
+ _chunkZ5UWW3Z2cjs.SelectTrigger,
263
263
  {
264
264
  id: "companySize",
265
265
  "aria-label": "Company Size",
266
266
  className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
267
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectValue, { placeholder: "Select company size" })
267
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "Select company size" })
268
268
  }
269
269
  ),
270
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectContent, { children: companySizeOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectItem, { value: opt, children: opt }, opt)) })
270
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: companySizeOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: opt, children: opt }, opt)) })
271
271
  ] })
272
272
  }
273
273
  ),
@@ -280,17 +280,17 @@ function ContactForm({
280
280
  {
281
281
  control,
282
282
  name: "referralSource",
283
- render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPPXR22YCcjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
283
+ render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
284
284
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
285
- _chunkPPXR22YCcjs.SelectTrigger,
285
+ _chunkZ5UWW3Z2cjs.SelectTrigger,
286
286
  {
287
287
  id: "referralSource",
288
288
  "aria-label": "Referral Source",
289
289
  className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
290
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectValue, { placeholder: "Select an option" })
290
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "Select an option" })
291
291
  }
292
292
  ),
293
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectContent, { children: referralSourceOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectItem, { value: opt, children: opt }, opt)) })
293
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: referralSourceOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: opt, children: opt }, opt)) })
294
294
  ] })
295
295
  }
296
296
  ),
@@ -307,18 +307,18 @@ function ContactForm({
307
307
  {
308
308
  control,
309
309
  name: "helpCategory",
310
- render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPPXR22YCcjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
310
+ render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
311
311
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
312
- _chunkPPXR22YCcjs.SelectTrigger,
312
+ _chunkZ5UWW3Z2cjs.SelectTrigger,
313
313
  {
314
314
  id: "helpCategory",
315
315
  "aria-label": "Help Category",
316
316
  "aria-required": true,
317
317
  className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
318
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectValue, { placeholder: "Choose your main interest" })
318
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectValue, { placeholder: "Choose your main interest" })
319
319
  }
320
320
  ),
321
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectContent, { children: helpCategoryOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPXR22YCcjs.SelectItem, { value: opt, children: opt }, opt)) })
321
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectContent, { children: helpCategoryOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.SelectItem, { value: opt, children: opt }, opt)) })
322
322
  ] })
323
323
  }
324
324
  ),
@@ -330,7 +330,7 @@ function ContactForm({
330
330
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXBLN4BPcjs.RequiredMark, {})
331
331
  ] }),
332
332
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
333
- _chunkS2VWQX6Tcjs.Textarea,
333
+ _chunkZ3CVSPO3cjs.Textarea,
334
334
  {
335
335
  id: "message",
336
336
  ...register("message"),
@@ -345,7 +345,7 @@ function ContactForm({
345
345
  ] }),
346
346
  attachmentsEnabled && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
347
347
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
348
- _chunkHETQETPVcjs.ChatAttachmentChipStrip,
348
+ _chunkUWQWMGJ7cjs.ChatAttachmentChipStrip,
349
349
  {
350
350
  attachments: attachments.attachments,
351
351
  onRemove: attachments.removeAttachment,
@@ -354,7 +354,7 @@ function ContactForm({
354
354
  ),
355
355
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
356
356
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
357
- _chunkHETQETPVcjs.ChatAttachmentAddButton,
357
+ _chunkUWQWMGJ7cjs.ChatAttachmentAddButton,
358
358
  {
359
359
  attachmentsEnabled: true,
360
360
  attachmentsCount: attachments.attachments.length,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  EmbedViewerFrame
4
- } from "./chunk-C5AGSZBT.js";
4
+ } from "./chunk-N2PF5CFX.js";
5
5
  import {
6
6
  toGoogleSheetsEmbedUrl,
7
7
  toGoogleSheetsOriginalUrl
@@ -5,13 +5,13 @@ import {
5
5
  import {
6
6
  DeliveryRow,
7
7
  ListEmptyState
8
- } from "./chunk-DPX6244M.js";
8
+ } from "./chunk-45F7PXUI.js";
9
9
  import {
10
10
  EmptyState
11
11
  } from "./chunk-6YPTUHM7.js";
12
12
  import {
13
13
  DetailPageSkeleton
14
- } from "./chunk-NQWJAOHO.js";
14
+ } from "./chunk-QXZCLQNV.js";
15
15
  import {
16
16
  useSelfFetch
17
17
  } from "./chunk-YBQQNDC7.js";
@@ -26,14 +26,14 @@ import {
26
26
  PageShell,
27
27
  ReleaseChangelogSection,
28
28
  RichMarkdownRenderer
29
- } from "./chunk-C5AGSZBT.js";
29
+ } from "./chunk-N2PF5CFX.js";
30
30
  import {
31
31
  PageLayout
32
- } from "./chunk-NPAQSMRY.js";
32
+ } from "./chunk-LOYPRJWA.js";
33
33
  import {
34
34
  useHumanitySignals,
35
35
  useScrollToHash
36
- } from "./chunk-6T3BTD6Q.js";
36
+ } from "./chunk-IWCPXJEE.js";
37
37
  import {
38
38
  contentFetch
39
39
  } from "./chunk-G3GRYDMS.js";
@@ -45,7 +45,7 @@ import {
45
45
  resolveContentHref,
46
46
  useCaptions,
47
47
  useIsHydrated
48
- } from "./chunk-ROBQ5TR7.js";
48
+ } from "./chunk-JH2SIWPQ.js";
49
49
  import {
50
50
  STICKY_HEADER_OFFSET_PX
51
51
  } from "./chunk-CMZ3QTFQ.js";
@@ -537,15 +537,13 @@ var MESSAGE_TYPE = {
537
537
  TEXT: "TEXT",
538
538
  THINKING: "THINKING",
539
539
  ASK: "ASK",
540
- /** Per-answer source metadata (documents, videos, entity cards).
540
+ /** Per-answer attachments (cited documents, videos, entity cards).
541
541
  *
542
- * TWO names for ONE payload, on purpose. `SOURCES` is the contract the
543
- * backend is moving to; `GUIDE` is the envelope it ships in today, reused
544
- * from Guide Mode v2 so a released frontend keeps working during the v2→v3
545
- * rollout. Both decode through the same path, so dropping `GUIDE` later is a
546
- * deletion here and nothing else. */
542
+ * `ATTACHMENTS` carries `sources` / `videos` / `cards` on the record itself.
543
+ * `GUIDE` is the envelope it replaced — the same arrays under `payload` —
544
+ * and stays only until every backend ships `ATTACHMENTS`. */
545
+ ATTACHMENTS: "ATTACHMENTS",
547
546
  GUIDE: "GUIDE",
548
- SOURCES: "SOURCES",
549
547
  EXECUTING_TOOL: "EXECUTING_TOOL",
550
548
  EXECUTED_TOOL: "EXECUTED_TOOL",
551
549
  APPROVAL_REQUEST: "APPROVAL_REQUEST",
@@ -18243,6 +18241,16 @@ function sourceMetadataEvent(payload) {
18243
18241
  ...refs.length > 0 ? { refs } : {}
18244
18242
  };
18245
18243
  }
18244
+ function withoutNulls(value) {
18245
+ if (Array.isArray(value)) return value.map(withoutNulls);
18246
+ if (!isRecord(value)) return value;
18247
+ return Object.fromEntries(
18248
+ Object.entries(value).filter(([, field]) => field !== null).map(([key, field]) => [key, withoutNulls(field)])
18249
+ );
18250
+ }
18251
+ function attachmentsEvent(record) {
18252
+ return sourceMetadataEvent(withoutNulls(record));
18253
+ }
18246
18254
  function mergeSourceMetadata(previous, event) {
18247
18255
  const byIndex = /* @__PURE__ */ new Map();
18248
18256
  for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _568 => _568.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
@@ -21380,13 +21388,14 @@ function decodeNatsChunk(chunk) {
21380
21388
  return { type: "thinking-delta", text: data.text, ...seq };
21381
21389
  }
21382
21390
  return null;
21383
- // Two chunk names, one payload and one decoder. `SOURCES` is the contract
21384
- // the backend is moving to; `GUIDE` is the v2 envelope it ships in during
21385
- // the rollout (see `MESSAGE_TYPE.GUIDE`). The chunk arrives BEFORE or
21386
- // between the answer's text deltas, so the reducer — not this decoder —
21387
- // owns attaching it to the right turn.
21388
- case MESSAGE_TYPE.GUIDE:
21389
- case MESSAGE_TYPE.SOURCES: {
21391
+ // The chunk arrives BEFORE or between the answer's text deltas, so the
21392
+ // reducer — not this decoder — owns attaching it to the right turn.
21393
+ case MESSAGE_TYPE.ATTACHMENTS: {
21394
+ const event = attachmentsEvent(data);
21395
+ return event ? { ...event, ...seq } : null;
21396
+ }
21397
+ // The envelope `ATTACHMENTS` replaced (see `MESSAGE_TYPE.GUIDE`).
21398
+ case MESSAGE_TYPE.GUIDE: {
21390
21399
  const event = sourceMetadataEvent(data.payload);
21391
21400
  return event ? { ...event, ...seq } : null;
21392
21401
  }
@@ -21741,11 +21750,13 @@ function decodeHistoricalMessageData(data) {
21741
21750
  return { type: "thinking-delta", text: data.text };
21742
21751
  }
21743
21752
  return null;
21744
- // Persisted source metadata, through the SAME decoder the live chunk uses
21745
- // (`sourceMetadataEvent`). That shared parse is the whole reason a reloaded
21753
+ // Persisted attachments, through the SAME decoder the live chunk uses
21754
+ // (`attachmentsEvent`). That shared parse is the whole reason a reloaded
21746
21755
  // answer renders identically to the one the reader watched arrive.
21756
+ case MESSAGE_TYPE.ATTACHMENTS:
21757
+ return attachmentsEvent(data);
21758
+ // The envelope `ATTACHMENTS` replaced (see `MESSAGE_TYPE.GUIDE`).
21747
21759
  case MESSAGE_TYPE.GUIDE:
21748
- case MESSAGE_TYPE.SOURCES:
21749
21760
  return "payload" in data ? sourceMetadataEvent(data.payload) : null;
21750
21761
  // Same completeness gate as the live decoder (`decodeNatsChunk`): a
21751
21762
  // persisted row without a question or without options is not a card the
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkS2VWQX6Tcjs = require('./chunk-S2VWQX6T.cjs');
4
+ var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
5
5
 
6
6
 
7
7
 
@@ -46,7 +46,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
46
46
  ] });
47
47
  }
48
48
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
49
- _chunkS2VWQX6Tcjs.EmbedViewerFrame,
49
+ _chunkZ3CVSPO3cjs.EmbedViewerFrame,
50
50
  {
51
51
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.GoogleSheetsIcon, { className: "h-5 w-5 shrink-0" }),
52
52
  title: displayName,
@@ -81,7 +81,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
81
81
  ] });
82
82
  }
83
83
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
84
- _chunkS2VWQX6Tcjs.EmbedViewerFrame,
84
+ _chunkZ3CVSPO3cjs.EmbedViewerFrame,
85
85
  {
86
86
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.AdobePdfIcon, { className: "h-5 w-5 shrink-0" }),
87
87
  title: displayName,
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import {
3
3
  useOnboardingState
4
- } from "./chunk-6T3BTD6Q.js";
4
+ } from "./chunk-IWCPXJEE.js";
5
5
  import {
6
6
  ShellTypeValues,
7
7
  getOSLabel,
8
8
  getShellLabel
9
- } from "./chunk-ROBQ5TR7.js";
9
+ } from "./chunk-JH2SIWPQ.js";
10
10
  import {
11
11
  InteractiveCard,
12
12
  SECTION_HEADING_CLASS,