@flamingo-stack/openframe-frontend-core 0.0.737 → 0.0.738

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 (131) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-AZL332TK.cjs → chunk-2QMBXGMQ.cjs} +15 -2
  3. package/dist/{chunk-DA4VS6TS.cjs → chunk-2SBHPHLS.cjs} +4 -4
  4. package/dist/{chunk-XPP7VCNY.cjs → chunk-2UZS3ZH7.cjs} +8 -8
  5. package/dist/{chunk-MGW5DO6P.cjs → chunk-3BBOAMWJ.cjs} +7 -7
  6. package/dist/{chunk-HZJRERJW.cjs → chunk-3RFQPQ7Z.cjs} +3 -3
  7. package/dist/{chunk-4FJZ7RJD.cjs → chunk-4T6ETBL4.cjs} +150 -82
  8. package/dist/{chunk-TJQYX3QC.cjs → chunk-4YQNJJWM.cjs} +95 -95
  9. package/dist/{chunk-FA2LATDM.cjs → chunk-5BKAUXLR.cjs} +4 -4
  10. package/dist/{chunk-YADG5Q7C.cjs → chunk-63N4FN5V.cjs} +3 -3
  11. package/dist/{chunk-4ISP3XP4.cjs → chunk-66R4NGGU.cjs} +72 -72
  12. package/dist/{chunk-EJOXXJJB.cjs → chunk-7F3V45AH.cjs} +29 -29
  13. package/dist/{chunk-VYODTHMR.cjs → chunk-7GETNFZ5.cjs} +49 -49
  14. package/dist/{chunk-L4ZNR5V7.cjs → chunk-7LTG6CJ3.cjs} +67 -67
  15. package/dist/{chunk-MJGX357L.cjs → chunk-B27QEHYR.cjs} +2 -2
  16. package/dist/{chunk-VL4JKXU2.cjs → chunk-BRKTN6UR.cjs} +216 -216
  17. package/dist/{chunk-VRNNIV5Y.cjs → chunk-EG545WGV.cjs} +4 -4
  18. package/dist/{chunk-ZJNYWNCB.cjs → chunk-FG7HTGT3.cjs} +24 -24
  19. package/dist/{chunk-77SD7RXY.cjs → chunk-GAF4L3JW.cjs} +7 -7
  20. package/dist/{chunk-KVGBDWYV.cjs → chunk-GQZOUVXC.cjs} +34 -34
  21. package/dist/{chunk-URIJ6YUG.cjs → chunk-HNYLTEIS.cjs} +22 -17
  22. package/dist/{chunk-FCGLSWKR.cjs → chunk-IFS4AH77.cjs} +19 -1
  23. package/dist/{chunk-L535OD7V.cjs → chunk-JZNESLJX.cjs} +2 -2
  24. package/dist/{chunk-CM35DLKS.cjs → chunk-KQ4IKALJ.cjs} +35 -35
  25. package/dist/{chunk-EX2GYIGW.cjs → chunk-LY5VOKV7.cjs} +6 -6
  26. package/dist/{chunk-XLSVQJBA.cjs → chunk-MLKL2YVE.cjs} +44 -44
  27. package/dist/{chunk-4RMLAHU2.cjs → chunk-MTNNYSP3.cjs} +18 -18
  28. package/dist/{chunk-ZRYKDN2J.cjs → chunk-N2CISBJJ.cjs} +15 -15
  29. package/dist/{chunk-O4MG7FXW.cjs → chunk-N5NDPULP.cjs} +6 -6
  30. package/dist/{chunk-SGVQO5J6.cjs → chunk-R36NZTUJ.cjs} +26 -26
  31. package/dist/{chunk-E2JCZU36.cjs → chunk-U5BRSRXA.cjs} +923 -759
  32. package/dist/{chunk-DUXLZPMJ.cjs → chunk-UMO55S55.cjs} +2 -2
  33. package/dist/{chunk-LW3QSP47.cjs → chunk-XGHZIYQN.cjs} +24 -24
  34. package/dist/{chunk-N6YOOGCD.cjs → chunk-XMNLPQ75.cjs} +12 -12
  35. package/dist/{cloud-tenants-IWQ5FFLY.cjs → cloud-tenants-FTQGWXHS.cjs} +16 -16
  36. package/dist/components/agent-identity.d.ts +8 -1
  37. package/dist/components/agent-identity.d.ts.map +1 -1
  38. package/dist/components/agent-identity.js +6 -1
  39. package/dist/components/calendar.cjs +4 -4
  40. package/dist/components/case-studies/index.cjs +28 -28
  41. package/dist/components/chat/chat-turn.d.ts +23 -0
  42. package/dist/components/chat/chat-turn.d.ts.map +1 -0
  43. package/dist/components/chat/chat-turn.js +30 -0
  44. package/dist/components/chat/index.cjs +14 -12
  45. package/dist/components/chat/index.d.ts +1 -0
  46. package/dist/components/chat/index.d.ts.map +1 -1
  47. package/dist/components/chat/index.js +1 -0
  48. package/dist/components/contact/index.cjs +17 -17
  49. package/dist/components/docs/index.cjs +20 -20
  50. package/dist/components/embeds/index.cjs +17 -17
  51. package/dist/components/faq/faq-section.d.ts.map +1 -1
  52. package/dist/components/faq/faq-section.js +9 -4
  53. package/dist/components/faq/index.cjs +18 -18
  54. package/dist/components/features/auth/auth-benefits-panel.d.ts +3 -5
  55. package/dist/components/features/auth/auth-benefits-panel.d.ts.map +1 -1
  56. package/dist/components/features/auth/auth-benefits-panel.js +3 -19
  57. package/dist/components/features/conversation-card.d.ts +12 -4
  58. package/dist/components/features/conversation-card.d.ts.map +1 -1
  59. package/dist/components/features/conversation-card.js +30 -38
  60. package/dist/components/features/index.cjs +16 -16
  61. package/dist/components/help-center-pages/index.cjs +122 -122
  62. package/dist/components/index.cjs +96 -80
  63. package/dist/components/meeting-scheduler/index.cjs +49 -49
  64. package/dist/components/navigation/index.cjs +19 -19
  65. package/dist/components/onboarding-guides/index.cjs +19 -19
  66. package/dist/components/platform/ToolBadge.d.ts.map +1 -1
  67. package/dist/components/platform/ToolBadge.js +4 -3
  68. package/dist/components/product-demo/index.cjs +8 -8
  69. package/dist/components/related-content/index.cjs +8 -8
  70. package/dist/components/tickets/index.cjs +22 -22
  71. package/dist/components/ui/app-window-frame.d.ts +7 -1
  72. package/dist/components/ui/app-window-frame.d.ts.map +1 -1
  73. package/dist/components/ui/app-window-frame.js +10 -2
  74. package/dist/components/ui/benefit-list.d.ts +42 -0
  75. package/dist/components/ui/benefit-list.d.ts.map +1 -0
  76. package/dist/components/ui/benefit-list.js +62 -0
  77. package/dist/components/ui/button/button.d.ts +1 -0
  78. package/dist/components/ui/button/button.d.ts.map +1 -1
  79. package/dist/components/ui/button/button.js +15 -2
  80. package/dist/components/ui/dropdown-button.d.ts +20 -2
  81. package/dist/components/ui/dropdown-button.d.ts.map +1 -1
  82. package/dist/components/ui/dropdown-button.js +57 -1
  83. package/dist/components/ui/file-manager/index.cjs +11 -11
  84. package/dist/components/ui/index.cjs +30 -16
  85. package/dist/components/ui/index.d.ts +3 -0
  86. package/dist/components/ui/index.d.ts.map +1 -1
  87. package/dist/components/ui/index.js +3 -0
  88. package/dist/components/ui/leader-row.d.ts +17 -0
  89. package/dist/components/ui/leader-row.d.ts.map +1 -0
  90. package/dist/components/ui/leader-row.js +14 -0
  91. package/dist/components/ui/strip-card.d.ts +23 -0
  92. package/dist/components/ui/strip-card.d.ts.map +1 -0
  93. package/dist/components/ui/strip-card.js +56 -0
  94. package/dist/{devices-OUHGWA6Y.cjs → devices-MPI5HUQS.cjs} +17 -17
  95. package/dist/{embeddable-chat-U3C4WWB7.cjs → embeddable-chat-7WLUDBGK.cjs} +84 -84
  96. package/dist/index.cjs +40 -20
  97. package/dist/{knowledge-3ZASPWMF.cjs → knowledge-BS663XXL.cjs} +17 -17
  98. package/dist/{logs-E6Y54P6K.cjs → logs-KS2A2VN5.cjs} +25 -25
  99. package/dist/{policies-LAV75B5B.cjs → policies-H3OK6H4Q.cjs} +20 -20
  100. package/dist/{remote-session-Z4YZFG5E.cjs → remote-session-EHKXU4HI.cjs} +7 -7
  101. package/dist/{software-update-2CAL3AMJ.cjs → software-update-HMMMWIL3.cjs} +20 -20
  102. package/dist/{tickets-board-JOSYLOS7.cjs → tickets-board-3YJKOOZE.cjs} +10 -10
  103. package/dist/utils/demo-clock.d.ts +22 -0
  104. package/dist/utils/demo-clock.d.ts.map +1 -0
  105. package/dist/utils/demo-clock.js +40 -0
  106. package/dist/utils/identity-tint.d.ts +13 -0
  107. package/dist/utils/identity-tint.d.ts.map +1 -0
  108. package/dist/utils/identity-tint.js +14 -0
  109. package/dist/utils/index.cjs +54 -0
  110. package/dist/utils/index.d.ts +2 -0
  111. package/dist/utils/index.d.ts.map +1 -1
  112. package/dist/utils/index.js +2 -0
  113. package/dist/{video-file-player-6NWGXZ3W.cjs → video-file-player-ZH2ILAPO.cjs} +12 -12
  114. package/package.json +1 -1
  115. package/src/components/agent-identity.tsx +12 -1
  116. package/src/components/chat/chat-turn.tsx +52 -0
  117. package/src/components/chat/index.ts +1 -0
  118. package/src/components/faq/faq-section.tsx +4 -1
  119. package/src/components/features/auth/auth-benefits-panel.tsx +5 -32
  120. package/src/components/features/conversation-card.tsx +48 -46
  121. package/src/components/platform/ToolBadge.tsx +4 -3
  122. package/src/components/ui/app-window-frame.tsx +18 -2
  123. package/src/components/ui/benefit-list.tsx +97 -0
  124. package/src/components/ui/button/button.tsx +14 -1
  125. package/src/components/ui/dropdown-button.tsx +73 -1
  126. package/src/components/ui/index.ts +3 -0
  127. package/src/components/ui/leader-row.tsx +28 -0
  128. package/src/components/ui/strip-card.tsx +68 -0
  129. package/src/utils/demo-clock.ts +62 -0
  130. package/src/utils/identity-tint.ts +23 -0
  131. package/src/utils/index.ts +2 -0
@@ -1,10 +1,10 @@
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 _chunkL4ZNR5V7cjs = require('./chunk-L4ZNR5V7.cjs');
4
+ var _chunk7LTG6CJ3cjs = require('./chunk-7LTG6CJ3.cjs');
5
5
 
6
6
 
7
- var _chunkEJOXXJJBcjs = require('./chunk-EJOXXJJB.cjs');
7
+ var _chunk7F3V45AHcjs = require('./chunk-7F3V45AH.cjs');
8
8
 
9
9
 
10
10
 
@@ -66,7 +66,7 @@ function DetailPageSkeleton({
66
66
  ] });
67
67
  if (bare) return content;
68
68
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
69
- _chunkL4ZNR5V7cjs.PageLayout,
69
+ _chunk7LTG6CJ3cjs.PageLayout,
70
70
  {
71
71
  showHeader: false,
72
72
  className: "mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 content-md:px-20 content-md:py-10",
@@ -95,7 +95,7 @@ function ArticleAuthorByline({
95
95
  }) {
96
96
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
97
97
  if (!author) return null;
98
- const proxiedAvatar = avatar ? proxyImageUrl ? proxyImageUrl(avatar) : _nullishCoalesce(_chunkEJOXXJJBcjs.getProxiedImageUrl.call(void 0, avatar, {
98
+ const proxiedAvatar = avatar ? proxyImageUrl ? proxyImageUrl(avatar) : _nullishCoalesce(_chunk7F3V45AHcjs.getProxiedImageUrl.call(void 0, avatar, {
99
99
  proxyPrefix: _optionalChain([runtime, 'optionalAccess', _2 => _2.endpoints, 'access', _3 => _3.imageProxyUrlPrefix]),
100
100
  skipDomains: _optionalChain([runtime, 'optionalAccess', _4 => _4.endpoints, 'access', _5 => _5.imageProxySkipDomains]),
101
101
  directHttps: true
@@ -12,13 +12,13 @@ var _chunkAAFW4STCcjs = require('./chunk-AAFW4STC.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunkZRYKDN2Jcjs = require('./chunk-ZRYKDN2J.cjs');
15
+ var _chunkN2CISBJJcjs = require('./chunk-N2CISBJJ.cjs');
16
16
 
17
17
 
18
18
 
19
19
 
20
20
 
21
- var _chunkMJGX357Lcjs = require('./chunk-MJGX357L.cjs');
21
+ var _chunkB27QEHYRcjs = require('./chunk-B27QEHYR.cjs');
22
22
 
23
23
 
24
24
  var _chunk4WI2CEC2cjs = require('./chunk-4WI2CEC2.cjs');
@@ -69,7 +69,7 @@ var _chunkZ7OPT4PNcjs = require('./chunk-Z7OPT4PN.cjs');
69
69
  var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
70
70
 
71
71
 
72
- var _chunkFCGLSWKRcjs = require('./chunk-FCGLSWKR.cjs');
72
+ var _chunkIFS4AH77cjs = require('./chunk-IFS4AH77.cjs');
73
73
 
74
74
 
75
75
 
@@ -82,7 +82,7 @@ var _chunkFICJS5OAcjs = require('./chunk-FICJS5OA.cjs');
82
82
  var _chunkVOX4E6AXcjs = require('./chunk-VOX4E6AX.cjs');
83
83
 
84
84
 
85
- var _chunkAZL332TKcjs = require('./chunk-AZL332TK.cjs');
85
+ var _chunk2QMBXGMQcjs = require('./chunk-2QMBXGMQ.cjs');
86
86
 
87
87
 
88
88
  var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
@@ -142,9 +142,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
142
142
  return next;
143
143
  });
144
144
  };
145
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMJGX357Lcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMJGX357Lcjs.Tooltip, { open, onOpenChange: setOpen, children: [
145
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB27QEHYRcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkB27QEHYRcjs.Tooltip, { open, onOpenChange: setOpen, children: [
146
146
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
147
- _chunkMJGX357Lcjs.TooltipTrigger,
147
+ _chunkB27QEHYRcjs.TooltipTrigger,
148
148
  {
149
149
  asChild: true,
150
150
  onPointerDown: (e) => {
@@ -162,7 +162,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
162
162
  children
163
163
  }
164
164
  ),
165
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMJGX357Lcjs.TooltipContent, { side, className: "max-w-xs", children: content })
165
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB27QEHYRcjs.TooltipContent, { side, className: "max-w-xs", children: content })
166
166
  ] }) });
167
167
  }
168
168
 
@@ -177,12 +177,12 @@ function BoardColumnHeader({
177
177
  }) {
178
178
  const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
179
179
  const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
180
- const useStatusVariant = _chunkZRYKDN2Jcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
180
+ const useStatusVariant = _chunkN2CISBJJcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
181
181
  const actionClass = "h-8 w-8 p-0 content-md:h-8 content-md:w-8";
182
182
  if (collapsed) {
183
183
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
184
184
  onToggleCollapse && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
185
- _chunkAZL332TKcjs.Button,
185
+ _chunk2QMBXGMQcjs.Button,
186
186
  {
187
187
  variant: "transparent",
188
188
  size: "icon",
@@ -193,7 +193,7 @@ function BoardColumnHeader({
193
193
  }
194
194
  ),
195
195
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
196
- _chunkZRYKDN2Jcjs.TicketStatusTag,
196
+ _chunkN2CISBJJcjs.TicketStatusTag,
197
197
  {
198
198
  status: tagStatus,
199
199
  label: column.label,
@@ -206,13 +206,13 @@ function BoardColumnHeader({
206
206
  }
207
207
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
208
208
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
209
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZRYKDN2Jcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
209
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN2CISBJJcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
210
210
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
211
211
  ] }),
212
212
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
213
- column.tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TouchFriendlyTooltip, { content: column.tooltip, side: "bottom", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAZL332TKcjs.Button, { variant: "transparent", size: "icon", className: actionClass, "aria-label": column.tooltip, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHC2FRVEcjs.InfoCircleIcon, { className: "h-6 w-6 text-ods-text-secondary" }) }) }),
213
+ column.tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TouchFriendlyTooltip, { content: column.tooltip, side: "bottom", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { variant: "transparent", size: "icon", className: actionClass, "aria-label": column.tooltip, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHC2FRVEcjs.InfoCircleIcon, { className: "h-6 w-6 text-ods-text-secondary" }) }) }),
214
214
  onToggleCollapse && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
215
- _chunkAZL332TKcjs.Button,
215
+ _chunk2QMBXGMQcjs.Button,
216
216
  {
217
217
  variant: "transparent",
218
218
  size: "icon",
@@ -223,7 +223,7 @@ function BoardColumnHeader({
223
223
  }
224
224
  ),
225
225
  onArchive && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
226
- _chunkAZL332TKcjs.Button,
226
+ _chunk2QMBXGMQcjs.Button,
227
227
  {
228
228
  variant: "transparent",
229
229
  size: "icon",
@@ -234,7 +234,7 @@ function BoardColumnHeader({
234
234
  }
235
235
  ),
236
236
  onAddTicket && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
237
- _chunkAZL332TKcjs.Button,
237
+ _chunk2QMBXGMQcjs.Button,
238
238
  {
239
239
  variant: "transparent",
240
240
  size: "icon",
@@ -264,7 +264,7 @@ function tintOnDark(hex) {
264
264
 
265
265
  function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
266
266
  const [expanded, setExpanded] = _react.useState.call(void 0, false);
267
- const { innerRef, containerStyle } = _chunkZRYKDN2Jcjs.useCollapsible.call(void 0, { expanded });
267
+ const { innerRef, containerStyle } = _chunkN2CISBJJcjs.useCollapsible.call(void 0, { expanded });
268
268
  const isAdmin = pendingApproval.approvalType === "ADMIN";
269
269
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
270
270
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -293,7 +293,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
293
293
  }
294
294
  ),
295
295
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, className: "pt-[var(--spacing-system-xs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
296
- _chunkZRYKDN2Jcjs.ApprovalBatchMessage,
296
+ _chunkN2CISBJJcjs.ApprovalBatchMessage,
297
297
  {
298
298
  className: "mb-0",
299
299
  data: {
@@ -467,7 +467,7 @@ function TicketCardBody({
467
467
  onLinkClick
468
468
  }) {
469
469
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
470
- const newMessageTextColor = columnColor ? _chunkFCGLSWKRcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
470
+ const newMessageTextColor = columnColor ? _chunkIFS4AH77cjs.getReadableTextColor.call(void 0, columnColor) : void 0;
471
471
  const showDeviceRow = !!(_optionalChain([ticket, 'access', _12 => _12.deviceHostnames, 'optionalAccess', _13 => _13.length]) || ticket.organizationName);
472
472
  const deviceText = [_optionalChain([ticket, 'access', _14 => _14.deviceHostnames, 'optionalAccess', _15 => _15.join, 'call', _16 => _16(", ")]), ticket.organizationName].filter(Boolean).join(", ");
473
473
  const hasRightSection = !!(ticket.priority || ticket.agent || _optionalChain([ticket, 'access', _17 => _17.assignees, 'optionalAccess', _18 => _18.length]) || renderAssignSlot);
@@ -485,7 +485,7 @@ function TicketCardBody({
485
485
  role: "img",
486
486
  "aria-label": `Owned by ${ticket.agent === "fae" ? "Fae" : "Mingo"}`,
487
487
  className: "flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-full border border-ods-border bg-ods-bg",
488
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZRYKDN2Jcjs.AgentMark, { agent: ticket.agent, className: ticket.agent === "fae" ? "size-full" : "size-5" })
488
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN2CISBJJcjs.AgentMark, { agent: ticket.agent, className: ticket.agent === "fae" ? "size-full" : "size-5" })
489
489
  }
490
490
  ),
491
491
  renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _19 => _19.assignees, 'optionalAccess', _20 => _20.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
@@ -515,8 +515,8 @@ function TicketCardBody({
515
515
  ] })
516
516
  ] }) : null
517
517
  ] }) : null;
518
- const timestampLabel = ticket.createdAt ? _chunkZRYKDN2Jcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
519
- const tooltipLabel = ticket.createdAt ? _chunkZRYKDN2Jcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
518
+ const timestampLabel = ticket.createdAt ? _chunkN2CISBJJcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
519
+ const tooltipLabel = ticket.createdAt ? _chunkN2CISBJJcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
520
520
  const metaLabel = [ticket.ticketNumber || null, timestampLabel].filter(Boolean).join(" \u2022 ");
521
521
  const metaClass = "truncate text-ods-text-secondary text-h6";
522
522
  const meta = href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -543,9 +543,9 @@ function TicketCardBody({
543
543
  rightSection
544
544
  ] }),
545
545
  _optionalChain([ticket, 'access', _21 => _21.tags, 'optionalAccess', _22 => _22.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
546
- metaLabel && (tooltipLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMJGX357Lcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMJGX357Lcjs.Tooltip, { children: [
547
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMJGX357Lcjs.TooltipTrigger, { asChild: true, children: meta }),
548
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMJGX357Lcjs.TooltipContent, { children: tooltipLabel })
546
+ metaLabel && (tooltipLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB27QEHYRcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkB27QEHYRcjs.Tooltip, { children: [
547
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB27QEHYRcjs.TooltipTrigger, { asChild: true, children: meta }),
548
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB27QEHYRcjs.TooltipContent, { children: tooltipLabel })
549
549
  ] }) }) : meta),
550
550
  ticket.escalatedByUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xxs)] text-ods-open-yellow text-h6", children: [
551
551
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4MGDY2AAcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkMGW5DO6Pcjs = require('./chunk-MGW5DO6P.cjs');
4
+ var _chunk3BBOAMWJcjs = require('./chunk-3BBOAMWJ.cjs');
5
5
 
6
6
 
7
7
 
@@ -12,7 +12,7 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
12
12
  var _chunkBLH2SFOOcjs = require('./chunk-BLH2SFOO.cjs');
13
13
 
14
14
 
15
- var _chunkAZL332TKcjs = require('./chunk-AZL332TK.cjs');
15
+ var _chunk2QMBXGMQcjs = require('./chunk-2QMBXGMQ.cjs');
16
16
 
17
17
  // src/components/empty-state.tsx
18
18
  var _lucidereact = require('lucide-react');
@@ -130,10 +130,10 @@ function EmptyState({
130
130
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex items-center justify-center content-md:mb-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-full border border-ods-border bg-ods-card p-3 content-md:p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-8 w-8 items-center justify-center text-ods-text-secondary content-md:h-16 content-md:w-16", children: defaultContent.icon }) }) }),
131
131
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "mb-2 text-ods-text-primary text-h3 content-md:mb-3", children: displayTitle }),
132
132
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mb-4 max-w-md text-ods-text-secondary text-h6 content-md:mb-8", children: displayDescription }),
133
- showCTA && ctaHref && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAZL332TKcjs.Button, { href: ctaHref, variant: ctaButtonVariant, className: "w-full", children: ctaText || "Contact us" }) }),
134
- showCTA && !ctaHref && smartCTA && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAZL332TKcjs.Button, { onClick: smartCTA.action, variant: ctaButtonVariant, className: "w-full", children: smartCTA.text }) }),
133
+ showCTA && ctaHref && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { href: ctaHref, variant: ctaButtonVariant, className: "w-full", children: ctaText || "Contact us" }) }),
134
+ showCTA && !ctaHref && smartCTA && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { onClick: smartCTA.action, variant: ctaButtonVariant, className: "w-full", children: smartCTA.text }) }),
135
135
  showBackButton && onGoBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
136
- _chunkAZL332TKcjs.Button,
136
+ _chunk2QMBXGMQcjs.Button,
137
137
  {
138
138
  onClick: onGoBack,
139
139
  variant: "outline",
@@ -179,11 +179,11 @@ function UnifiedPagination({
179
179
  }, 0);
180
180
  };
181
181
  if (totalPages <= 1) {
182
- return reserveSpace ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none invisible", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMGW5DO6Pcjs.Pagination, { currentPage: 1, totalPages: 1, onPageChange: () => {
182
+ return reserveSpace ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none invisible", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3BBOAMWJcjs.Pagination, { currentPage: 1, totalPages: 1, onPageChange: () => {
183
183
  } }) }) }) : null;
184
184
  }
185
185
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
186
- _chunkMGW5DO6Pcjs.Pagination,
186
+ _chunk3BBOAMWJcjs.Pagination,
187
187
  {
188
188
  currentPage,
189
189
  totalPages,
@@ -2,45 +2,45 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkVRNNIV5Ycjs = require('./chunk-VRNNIV5Y.cjs');
5
+ var _chunkEG545WGVcjs = require('./chunk-EG545WGV.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkN6YOOGCDcjs = require('./chunk-N6YOOGCD.cjs');
9
+ var _chunkXMNLPQ75cjs = require('./chunk-XMNLPQ75.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
15
 
16
- var _chunkE2JCZU36cjs = require('./chunk-E2JCZU36.cjs');
16
+ var _chunkU5BRSRXAcjs = require('./chunk-U5BRSRXA.cjs');
17
17
 
18
18
 
19
- var _chunkL4ZNR5V7cjs = require('./chunk-L4ZNR5V7.cjs');
19
+ var _chunk7LTG6CJ3cjs = require('./chunk-7LTG6CJ3.cjs');
20
20
 
21
21
 
22
- var _chunk4FJZ7RJDcjs = require('./chunk-4FJZ7RJD.cjs');
22
+ var _chunk4T6ETBL4cjs = require('./chunk-4T6ETBL4.cjs');
23
23
 
24
24
 
25
25
 
26
26
 
27
- var _chunkVL4JKXU2cjs = require('./chunk-VL4JKXU2.cjs');
27
+ var _chunkBRKTN6URcjs = require('./chunk-BRKTN6UR.cjs');
28
28
 
29
29
 
30
- var _chunkHZJRERJWcjs = require('./chunk-HZJRERJW.cjs');
30
+ var _chunk3RFQPQ7Zcjs = require('./chunk-3RFQPQ7Z.cjs');
31
31
 
32
32
 
33
33
 
34
34
  var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
35
35
 
36
36
 
37
- var _chunkEX2GYIGWcjs = require('./chunk-EX2GYIGW.cjs');
37
+ var _chunkLY5VOKV7cjs = require('./chunk-LY5VOKV7.cjs');
38
38
 
39
39
 
40
40
 
41
41
 
42
42
 
43
- var _chunkEJOXXJJBcjs = require('./chunk-EJOXXJJB.cjs');
43
+ var _chunk7F3V45AHcjs = require('./chunk-7F3V45AH.cjs');
44
44
 
45
45
 
46
46
  var _chunkEAY6ZUEScjs = require('./chunk-EAY6ZUES.cjs');
@@ -68,7 +68,7 @@ function OnboardingGuidesCatalogSkeleton() {
68
68
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-6 w-40 rounded bg-ods-border/70" }),
69
69
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-8 rounded-full bg-ods-text-secondary/20" })
70
70
  ] }),
71
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEJOXXJJBcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
71
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7F3V45AHcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
72
72
  ] }, sectionIdx)) })
73
73
  ] });
74
74
  }
@@ -92,10 +92,10 @@ function OnboardingGuidesCatalogView({
92
92
  const sectionValue = selfFetch ? _nullishCoalesce(searchParams.get("section"), () => ( "")) : initialSection;
93
93
  const activeSection = sectionValue || "all";
94
94
  const guidesQs = sectionValue ? `?section=${encodeURIComponent(sectionValue)}` : "";
95
- const guidesRes = _chunkEX2GYIGWcjs.useSelfFetch.call(void 0,
95
+ const guidesRes = _chunkLY5VOKV7cjs.useSelfFetch.call(void 0,
96
96
  selfFetch && guidesEndpoint ? `${guidesEndpoint}${guidesQs}` : null
97
97
  );
98
- const sectionsRes = _chunkEX2GYIGWcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
98
+ const sectionsRes = _chunkLY5VOKV7cjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
99
99
  const guides = _react.useMemo.call(void 0, () => _nullishCoalesce(_nullishCoalesce(initialGuides, () => ( _optionalChain([guidesRes, 'access', _2 => _2.data, 'optionalAccess', _3 => _3.data]))), () => ( [])), [initialGuides, _optionalChain([guidesRes, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.data])]);
100
100
  const sections = _react.useMemo.call(void 0,
101
101
  () => _nullishCoalesce(initialSections, () => ( (Array.isArray(sectionsRes.data) ? sectionsRes.data : []))),
@@ -138,25 +138,25 @@ function OnboardingGuidesCatalogView({
138
138
  });
139
139
  };
140
140
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
141
- const docSearch = _chunkN6YOOGCDcjs.useDocSearch.call(void 0, {
141
+ const docSearch = _chunkXMNLPQ75cjs.useDocSearch.call(void 0, {
142
142
  source,
143
143
  baseRoute: basePath,
144
144
  onNavigate: (path) => router.push(path),
145
145
  tableIds: ["onboarding-guides"]
146
146
  });
147
147
  const defaultRenderCard = (guide) => {
148
- const cta = _chunk4FJZ7RJDcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
148
+ const cta = _chunk4T6ETBL4cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
149
149
  type: "onboarding_guide",
150
150
  slug: guide.slug,
151
151
  basePath,
152
152
  platforms: guide.onboarding_guide_platforms
153
153
  });
154
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEJOXXJJBcjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
154
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7F3V45AHcjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
155
155
  };
156
156
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
157
157
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
158
158
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
159
- _chunkN6YOOGCDcjs.DocSearchBar,
159
+ _chunkXMNLPQ75cjs.DocSearchBar,
160
160
  {
161
161
  placeholder: "Search onboarding guides, releases, case studies\u2026",
162
162
  query: docSearch.query,
@@ -168,7 +168,7 @@ function OnboardingGuidesCatalogView({
168
168
  }
169
169
  ),
170
170
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
171
- _chunkE2JCZU36cjs.FilterPillRow,
171
+ _chunkU5BRSRXAcjs.FilterPillRow,
172
172
  {
173
173
  label: "Section",
174
174
  selectedValue: activeSection,
@@ -178,7 +178,7 @@ function OnboardingGuidesCatalogView({
178
178
  )
179
179
  ] });
180
180
  if (selfFetch && guidesRes.error) {
181
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE2JCZU36cjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
181
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU5BRSRXAcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
182
182
  }
183
183
  if (selfFetch && guidesRes.data == null && isLoading) {
184
184
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -210,7 +210,7 @@ function OnboardingGuideDetailView({
210
210
  slug,
211
211
  guideEndpoint,
212
212
  related = [],
213
- MarkdownRenderer = _chunkE2JCZU36cjs.RichMarkdownRenderer,
213
+ MarkdownRenderer = _chunkU5BRSRXAcjs.RichMarkdownRenderer,
214
214
  renderRelatedCard,
215
215
  backHref,
216
216
  backLabel = "Back to Getting Started",
@@ -220,23 +220,23 @@ function OnboardingGuideDetailView({
220
220
  }) {
221
221
  const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
222
222
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
223
- const captions = _chunkVL4JKXU2cjs.useCaptions.call(void 0, );
223
+ const captions = _chunkBRKTN6URcjs.useCaptions.call(void 0, );
224
224
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
225
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE2JCZU36cjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
225
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU5BRSRXAcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
226
226
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
227
- const { data: guide, isLoading, error, reload } = _chunkEX2GYIGWcjs.useSelfFetch.call(void 0, url, { initialData });
228
- const { ref: videoWarmupRef } = _chunkHZJRERJWcjs.useVideoWarmup.call(void 0, {
227
+ const { data: guide, isLoading, error, reload } = _chunkLY5VOKV7cjs.useSelfFetch.call(void 0, url, { initialData });
228
+ const { ref: videoWarmupRef } = _chunk3RFQPQ7Zcjs.useVideoWarmup.call(void 0, {
229
229
  videoUrl: _optionalChain([guide, 'optionalAccess', _8 => _8.main_video_url]),
230
230
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints, 'access', _10 => _10.supabaseStorageOrigin])
231
231
  });
232
232
  if (error || !guide && !isLoading) {
233
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE2JCZU36cjs.LoadError, { message: "Guide not found.", onRetry: reload }));
233
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU5BRSRXAcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
234
234
  }
235
235
  if (!guide) {
236
236
  return renderShell(
237
237
  // Match the loaded page's top offset (TitleBlock's
238
238
  // `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
239
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRNNIV5Ycjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
239
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEG545WGVcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
240
240
  );
241
241
  }
242
242
  const { captionsUrl, highlightCaptionsUrl } = captions.forEntity("onboarding_guide", guide);
@@ -244,27 +244,27 @@ function OnboardingGuideDetailView({
244
244
  // worst), so it's the terminal fallback — no trailing `|| undefined` needed.
245
245
  _chunkEAY6ZUEScjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), guide.title, { aspect: "wide" });
246
246
  const defaultRenderRelatedCard = (g) => {
247
- const cta = _chunk4FJZ7RJDcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
247
+ const cta = _chunk4T6ETBL4cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
248
248
  type: "onboarding_guide",
249
249
  slug: g.slug,
250
250
  basePath,
251
251
  platforms: g.onboarding_guide_platforms
252
252
  });
253
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEJOXXJJBcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
253
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7F3V45AHcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
254
254
  };
255
255
  const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
256
256
  return renderShell(
257
257
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
258
- _chunkL4ZNR5V7cjs.PageLayout,
258
+ _chunk7LTG6CJ3cjs.PageLayout,
259
259
  {
260
260
  title: guide.title,
261
261
  titleSize: "h1",
262
262
  titleWrap: true,
263
263
  backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
264
264
  children: [
265
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE2JCZU36cjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
265
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU5BRSRXAcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
266
266
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
267
- _chunkEJOXXJJBcjs.EntityAuthorCard,
267
+ _chunk7F3V45AHcjs.EntityAuthorCard,
268
268
  {
269
269
  author: guide.author,
270
270
  authorHref,
@@ -279,7 +279,7 @@ function OnboardingGuideDetailView({
279
279
  }
280
280
  ),
281
281
  (guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
282
- _chunkVL4JKXU2cjs.EntityVideoSection,
282
+ _chunkBRKTN6URcjs.EntityVideoSection,
283
283
  {
284
284
  mainVideoUrl: guide.main_video_url,
285
285
  youtubeUrl: guide.youtube_url || void 0,
@@ -296,17 +296,17 @@ function OnboardingGuideDetailView({
296
296
  ) }),
297
297
  guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
298
298
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
299
- _chunkVL4JKXU2cjs.VideoBitesStrip,
299
+ _chunkBRKTN6URcjs.VideoBitesStrip,
300
300
  {
301
301
  bites: _nullishCoalesce(guide.video_bites, () => ( [])),
302
302
  filterPublished: true,
303
303
  showTitle: false,
304
- profile: _chunkEJOXXJJBcjs.toStripProfile.call(void 0, guide.author),
304
+ profile: _chunk7F3V45AHcjs.toStripProfile.call(void 0, guide.author),
305
305
  href: `/onboarding-guides/${guide.slug}`
306
306
  }
307
307
  ),
308
308
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
309
- _chunkVRNNIV5Ycjs.ArticleAuthorByline,
309
+ _chunkEG545WGVcjs.ArticleAuthorByline,
310
310
  {
311
311
  author: _nullishCoalesce(_optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.full_name]), () => ( null)),
312
312
  avatar: _optionalChain([guide, 'access', _15 => _15.author, 'optionalAccess', _16 => _16.avatar_url]),
@@ -5,12 +5,12 @@ var _chunkVA7OMDZOcjs = require('./chunk-VA7OMDZO.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunk4FJZ7RJDcjs = require('./chunk-4FJZ7RJD.cjs');
8
+ var _chunk4T6ETBL4cjs = require('./chunk-4T6ETBL4.cjs');
9
9
 
10
10
 
11
11
 
12
12
 
13
- var _chunkVL4JKXU2cjs = require('./chunk-VL4JKXU2.cjs');
13
+ var _chunkBRKTN6URcjs = require('./chunk-BRKTN6UR.cjs');
14
14
 
15
15
 
16
16
 
@@ -25,10 +25,10 @@ var _chunkEWPR7662cjs = require('./chunk-EWPR7662.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkEX2GYIGWcjs = require('./chunk-EX2GYIGW.cjs');
28
+ var _chunkLY5VOKV7cjs = require('./chunk-LY5VOKV7.cjs');
29
29
 
30
30
 
31
- var _chunkEJOXXJJBcjs = require('./chunk-EJOXXJJB.cjs');
31
+ var _chunk7F3V45AHcjs = require('./chunk-7F3V45AH.cjs');
32
32
 
33
33
 
34
34
  var _chunkPX7FY655cjs = require('./chunk-PX7FY655.cjs');
@@ -57,7 +57,7 @@ function FaqAccordion({ items, defaultOpenIds = [] }) {
57
57
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
58
58
  "div",
59
59
  {
60
- id: _chunkVL4JKXU2cjs.faqItemAnchor.call(void 0, item.id),
60
+ id: _chunkBRKTN6URcjs.faqItemAnchor.call(void 0, item.id),
61
61
  className: "scroll-mt-24 transition-colors hover:bg-ods-bg-hover",
62
62
  children: [
63
63
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -110,14 +110,14 @@ function FaqAccordion({ items, defaultOpenIds = [] }) {
110
110
 
111
111
  var PICK_ROOT_MARGIN = "600px";
112
112
  function faqAskCardShown(assistant) {
113
- return _chunk4FJZ7RJDcjs.assistantAvailable.call(void 0, assistant) && !!assistant.name;
113
+ return _chunk4T6ETBL4cjs.assistantAvailable.call(void 0, assistant) && !!assistant.name;
114
114
  }
115
115
  function FaqAskCard({ topic, exclude, count, title, description, onOpen }) {
116
116
  const { ref, inView } = _chunkSA7LDEVJcjs.useInView.call(void 0, { rootMargin: PICK_ROOT_MARGIN });
117
117
  const [reached, setReached] = _react.useState.call(void 0, false);
118
118
  if (inView && !reached) setReached(true);
119
119
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
120
- _chunk4FJZ7RJDcjs.AssistantAskPrompts,
120
+ _chunk4T6ETBL4cjs.AssistantAskPrompts,
121
121
  {
122
122
  variant: "card",
123
123
  topic,
@@ -170,7 +170,7 @@ function pageFaqProps(faq) {
170
170
  }
171
171
  function buildFaqsUrl(entityType, entityId, minResults, apiBaseUrl = "", topic) {
172
172
  const entityScoped = !!entityType && entityId !== void 0 && entityId !== null && entityId !== "";
173
- return _chunkEX2GYIGWcjs.buildSuggestionUrl.call(void 0, "/api/faqs", {
173
+ return _chunkLY5VOKV7cjs.buildSuggestionUrl.call(void 0, "/api/faqs", {
174
174
  apiBaseUrl,
175
175
  entityType,
176
176
  entityId,
@@ -191,7 +191,7 @@ function groupFaqsBySection(faqs) {
191
191
  }
192
192
  let group = byName.get(name);
193
193
  if (!group) {
194
- group = { section: name, slug: _chunkVL4JKXU2cjs.faqSectionSlug.call(void 0, name), items: [] };
194
+ group = { section: name, slug: _chunkBRKTN6URcjs.faqSectionSlug.call(void 0, name), items: [] };
195
195
  byName.set(name, group);
196
196
  }
197
197
  group.items.push(item);
@@ -246,7 +246,7 @@ function GroupedFaqList({
246
246
  }, [slugKey]);
247
247
  const [hashTarget, setHashTarget] = _react.useState.call(void 0, null);
248
248
  _react.useEffect.call(void 0, () => {
249
- const refresh = () => setHashTarget(_chunkVL4JKXU2cjs.parseFaqHash.call(void 0, window.location.hash));
249
+ const refresh = () => setHashTarget(_chunkBRKTN6URcjs.parseFaqHash.call(void 0, window.location.hash));
250
250
  refresh();
251
251
  window.addEventListener("hashchange", refresh);
252
252
  return () => window.removeEventListener("hashchange", refresh);
@@ -296,7 +296,7 @@ function GroupedFaqList({
296
296
  const questions = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-10", children: groups.map((group) => {
297
297
  const key = groupKey(group);
298
298
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: _nullishCoalesce(group.slug, () => ( void 0)), className: "scroll-mt-24 space-y-4", children: [
299
- group.section && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategoryHeading, { className: _chunkEJOXXJJBcjs.SECTION_HEADING_CLASS, children: group.section }),
299
+ group.section && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategoryHeading, { className: _chunk7F3V45AHcjs.SECTION_HEADING_CLASS, children: group.section }),
300
300
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
301
301
  FaqAccordion,
302
302
  {
@@ -355,15 +355,20 @@ function FaqSection({
355
355
  () => initialFaqs ? { faqs: initialFaqs } : void 0,
356
356
  [initialFaqs]
357
357
  );
358
- const { data, dataUrl, isLoading, error } = _chunkEX2GYIGWcjs.useSelfFetch.call(void 0, url, { initialData });
358
+ const { data, dataUrl, isLoading, error } = _chunkLY5VOKV7cjs.useSelfFetch.call(void 0, url, { initialData });
359
359
  const held = dataUrl === url ? _optionalChain([data, 'optionalAccess', _15 => _15.faqs]) : void 0;
360
360
  const faqs = _react.useMemo.call(void 0, () => _nullishCoalesce(held, () => ( [])), [held]);
361
361
  const groups = _react.useMemo.call(void 0, () => faqs.length > 0 ? groupFaqsBySection(faqs) : [], [faqs]);
362
- const titleNode = heading === void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunkEJOXXJJBcjs.SECTION_HEADING_CLASS, children: DEFAULT_HEADING_TEXT }) : heading;
363
- const headingNode = showTopic && topic ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
364
- titleNode,
365
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-muted text-h6", children: topic })
366
- ] }) : titleNode;
362
+ const titleNode = heading === void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunk7F3V45AHcjs.SECTION_HEADING_CLASS, children: DEFAULT_HEADING_TEXT }) : heading;
363
+ const headingNode = showTopic && topic ? (
364
+ // The host's heading may arrive from a server component, still streaming: React cannot check such a
365
+ // node when it sits in a list of siblings and warns about a missing key. So it is the ONLY child of its
366
+ // own wrapper, and the two siblings here are this component's own elements.
367
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
368
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: titleNode }),
369
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-muted text-h6", children: topic })
370
+ ] })
371
+ ) : titleNode;
367
372
  if (error) return null;
368
373
  if (!isLoading && faqs.length === 0) return null;
369
374
  if (isLoading && faqs.length === 0) {
@@ -336,6 +336,19 @@ function hslToRgb(h, s, l) {
336
336
  };
337
337
  }
338
338
 
339
+ // src/utils/identity-tint.ts
340
+ function identityTint(accent) {
341
+ if (!accent) return void 0;
342
+ const wash = `color-mix(in srgb, ${accent} 2%, transparent)`;
343
+ return {
344
+ borderColor: `color-mix(in srgb, ${accent} 30%, transparent)`,
345
+ backgroundImage: [
346
+ `radial-gradient(120% 120% at 100% 100%, color-mix(in srgb, ${accent} 4%, transparent), transparent 70%)`,
347
+ `linear-gradient(${wash}, ${wash})`
348
+ ].join(", ")
349
+ };
350
+ }
351
+
339
352
  // src/components/agent-identity.tsx
340
353
  var _react = require('react');
341
354
  var _jsxruntime = require('react/jsx-runtime');
@@ -387,6 +400,11 @@ function useAgentAccents() {
387
400
  [identities]
388
401
  );
389
402
  }
403
+ function useAgentTint(slug) {
404
+ return identityTint(useAgentAccents()(slug));
405
+ }
406
+
407
+
390
408
 
391
409
 
392
410
 
@@ -414,4 +432,4 @@ function useAgentAccents() {
414
432
 
415
433
 
416
434
 
417
- exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getCurrentPlatform = getCurrentPlatform; exports.switchPlatformTheme = switchPlatformTheme; exports.getSemanticColor = getSemanticColor; exports.getPlatformConfig = getPlatformConfig; exports.usePlatformColors = usePlatformColors; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.AGENT_GLYPH_COLOR = AGENT_GLYPH_COLOR; exports.AGENT_PICTURE_CLASS = AGENT_PICTURE_CLASS; exports.AgentIdentityProvider = AgentIdentityProvider; exports.useAgentIdentityIcon = useAgentIdentityIcon; exports.useAgentAccents = useAgentAccents;
435
+ exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getCurrentPlatform = getCurrentPlatform; exports.switchPlatformTheme = switchPlatformTheme; exports.getSemanticColor = getSemanticColor; exports.getPlatformConfig = getPlatformConfig; exports.usePlatformColors = usePlatformColors; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.identityTint = identityTint; exports.AGENT_GLYPH_COLOR = AGENT_GLYPH_COLOR; exports.AGENT_PICTURE_CLASS = AGENT_PICTURE_CLASS; exports.AgentIdentityProvider = AgentIdentityProvider; exports.useAgentIdentityIcon = useAgentIdentityIcon; exports.useAgentAccents = useAgentAccents; exports.useAgentTint = useAgentTint;