@flamingo-stack/openframe-frontend-core 0.0.321 → 0.0.322-snapshot.20260625154751

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 (93) hide show
  1. package/dist/{chunk-CD56IAXU.cjs → chunk-4HII2ZLE.cjs} +5 -5
  2. package/dist/{chunk-CD56IAXU.cjs.map → chunk-4HII2ZLE.cjs.map} +1 -1
  3. package/dist/{chunk-VNWWOPIY.js → chunk-4PAYSVBL.js} +2 -2
  4. package/dist/{chunk-Y2TJ64S5.cjs → chunk-5YWMPCTD.cjs} +12 -12
  5. package/dist/{chunk-Y2TJ64S5.cjs.map → chunk-5YWMPCTD.cjs.map} +1 -1
  6. package/dist/{chunk-TFCGMQPK.cjs → chunk-6ZCLKEXO.cjs} +25 -25
  7. package/dist/{chunk-TFCGMQPK.cjs.map → chunk-6ZCLKEXO.cjs.map} +1 -1
  8. package/dist/{chunk-NEY347ME.cjs → chunk-7CFMQIAC.cjs} +26 -26
  9. package/dist/{chunk-NEY347ME.cjs.map → chunk-7CFMQIAC.cjs.map} +1 -1
  10. package/dist/{chunk-FNK67HTC.js → chunk-AA2ZKWQV.js} +2 -2
  11. package/dist/{chunk-HALW7FPF.js → chunk-BUJZJN2K.js} +2 -2
  12. package/dist/{chunk-PDOTUMJC.cjs → chunk-FCIMIGVA.cjs} +31 -31
  13. package/dist/{chunk-PDOTUMJC.cjs.map → chunk-FCIMIGVA.cjs.map} +1 -1
  14. package/dist/{chunk-7C5G45KU.cjs → chunk-GLKQDTCI.cjs} +740 -679
  15. package/dist/chunk-GLKQDTCI.cjs.map +1 -0
  16. package/dist/{chunk-DEEBJBFQ.js → chunk-HDTW265W.js} +2 -2
  17. package/dist/{chunk-MN2WQYXS.cjs → chunk-JJS5QJOX.cjs} +15 -15
  18. package/dist/{chunk-MN2WQYXS.cjs.map → chunk-JJS5QJOX.cjs.map} +1 -1
  19. package/dist/{chunk-J65CQLX6.js → chunk-MG72PRRZ.js} +2 -2
  20. package/dist/{chunk-TPJJJ6KC.js → chunk-OI56RVPD.js} +153 -92
  21. package/dist/chunk-OI56RVPD.js.map +1 -0
  22. package/dist/{chunk-7M3QIYFW.cjs → chunk-OUN4V2CV.cjs} +56 -56
  23. package/dist/{chunk-7M3QIYFW.cjs.map → chunk-OUN4V2CV.cjs.map} +1 -1
  24. package/dist/{chunk-GAQAPTBU.cjs → chunk-OYRZCCVO.cjs} +37 -37
  25. package/dist/{chunk-GAQAPTBU.cjs.map → chunk-OYRZCCVO.cjs.map} +1 -1
  26. package/dist/{chunk-WCRJWZUA.js → chunk-RTYIYX6C.js} +4 -4
  27. package/dist/{chunk-TV6VD6LP.js → chunk-S6QURVK4.js} +4 -4
  28. package/dist/{chunk-563D7EB2.js → chunk-SYRZBYKN.js} +4 -4
  29. package/dist/{chunk-V4U7ASRM.js → chunk-WEHLKMBD.js} +2 -2
  30. package/dist/{chunk-BRERE4E5.js → chunk-XPDKUIGS.js} +4 -4
  31. package/dist/{chunk-WCCZGPPP.cjs → chunk-XVBNFRG7.cjs} +62 -62
  32. package/dist/{chunk-WCCZGPPP.cjs.map → chunk-XVBNFRG7.cjs.map} +1 -1
  33. package/dist/{chunk-6DH2TCRH.js → chunk-YLLX3O2D.js} +2 -2
  34. package/dist/{chunk-5HQIFRRE.cjs → chunk-YNMGKOSL.cjs} +7 -7
  35. package/dist/{chunk-5HQIFRRE.cjs.map → chunk-YNMGKOSL.cjs.map} +1 -1
  36. package/dist/{chunk-ZFER75HU.cjs → chunk-ZEDY3IAB.cjs} +9 -9
  37. package/dist/{chunk-ZFER75HU.cjs.map → chunk-ZEDY3IAB.cjs.map} +1 -1
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/embeddable-chat.d.ts +2 -0
  41. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  42. package/dist/components/chat/index.cjs +2 -2
  43. package/dist/components/chat/index.js +1 -1
  44. package/dist/components/chat/mingo-chat-history.d.ts +11 -2
  45. package/dist/components/chat/mingo-chat-history.d.ts.map +1 -1
  46. package/dist/components/chat/mingo-welcome.d.ts +5 -1
  47. package/dist/components/chat/mingo-welcome.d.ts.map +1 -1
  48. package/dist/components/contact/index.cjs +3 -3
  49. package/dist/components/contact/index.js +2 -2
  50. package/dist/components/docs/index.cjs +5 -5
  51. package/dist/components/docs/index.js +4 -4
  52. package/dist/components/embeds/index.cjs +3 -3
  53. package/dist/components/embeds/index.js +2 -2
  54. package/dist/components/faq/index.cjs +3 -3
  55. package/dist/components/faq/index.js +2 -2
  56. package/dist/components/features/index.cjs +2 -2
  57. package/dist/components/features/index.js +1 -1
  58. package/dist/components/features/time-tracker/time-tracker-panel.d.ts.map +1 -1
  59. package/dist/components/help-center-pages/index.cjs +20 -20
  60. package/dist/components/help-center-pages/index.js +11 -11
  61. package/dist/components/index.cjs +120 -120
  62. package/dist/components/index.js +9 -9
  63. package/dist/components/navigation/index.cjs +2 -2
  64. package/dist/components/navigation/index.js +1 -1
  65. package/dist/components/onboarding-guides/index.cjs +5 -5
  66. package/dist/components/onboarding-guides/index.js +4 -4
  67. package/dist/components/related-content/index.cjs +3 -3
  68. package/dist/components/related-content/index.js +2 -2
  69. package/dist/components/tickets/index.cjs +5 -5
  70. package/dist/components/tickets/index.js +4 -4
  71. package/dist/components/ui/index.cjs +2 -2
  72. package/dist/components/ui/index.js +1 -1
  73. package/dist/index.cjs +2 -2
  74. package/dist/index.js +1 -1
  75. package/package.json +1 -1
  76. package/src/components/chat/embeddable-chat.tsx +15 -1
  77. package/src/components/chat/mingo-chat-history.tsx +136 -53
  78. package/src/components/chat/mingo-welcome.tsx +6 -1
  79. package/src/components/features/time-tracker/time-tracker-panel.tsx +17 -12
  80. package/src/stories/TimeTracker.stories.tsx +1 -1
  81. package/dist/chunk-7C5G45KU.cjs.map +0 -1
  82. package/dist/chunk-TPJJJ6KC.js.map +0 -1
  83. /package/dist/{chunk-VNWWOPIY.js.map → chunk-4PAYSVBL.js.map} +0 -0
  84. /package/dist/{chunk-FNK67HTC.js.map → chunk-AA2ZKWQV.js.map} +0 -0
  85. /package/dist/{chunk-HALW7FPF.js.map → chunk-BUJZJN2K.js.map} +0 -0
  86. /package/dist/{chunk-DEEBJBFQ.js.map → chunk-HDTW265W.js.map} +0 -0
  87. /package/dist/{chunk-J65CQLX6.js.map → chunk-MG72PRRZ.js.map} +0 -0
  88. /package/dist/{chunk-WCRJWZUA.js.map → chunk-RTYIYX6C.js.map} +0 -0
  89. /package/dist/{chunk-TV6VD6LP.js.map → chunk-S6QURVK4.js.map} +0 -0
  90. /package/dist/{chunk-563D7EB2.js.map → chunk-SYRZBYKN.js.map} +0 -0
  91. /package/dist/{chunk-V4U7ASRM.js.map → chunk-WEHLKMBD.js.map} +0 -0
  92. /package/dist/{chunk-BRERE4E5.js.map → chunk-XPDKUIGS.js.map} +0 -0
  93. /package/dist/{chunk-6DH2TCRH.js.map → chunk-YLLX3O2D.js.map} +0 -0
@@ -6143,12 +6143,15 @@ function MingoChatHistoryRow({
6143
6143
  }
6144
6144
  );
6145
6145
  }
6146
- function MingoChatHistorySkeleton({ className }) {
6146
+ function MingoChatHistorySkeleton({
6147
+ className,
6148
+ searchable = false
6149
+ }) {
6147
6150
  const groups = [
6148
6151
  { withBadge: 2, widths: ["w-3/5", "w-4/5", "w-2/5", "w-3/4"] },
6149
6152
  { withBadge: 0, widths: ["w-1/2", "w-3/5", "w-2/3"] }
6150
6153
  ];
6151
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6154
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6152
6155
  "div",
6153
6156
  {
6154
6157
  "aria-hidden": true,
@@ -6156,20 +6159,51 @@ function MingoChatHistorySkeleton({ className }) {
6156
6159
  "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-hidden",
6157
6160
  className
6158
6161
  ),
6159
- children: groups.map((group, g) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
6160
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 animate-pulse rounded bg-ods-border" }),
6161
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.widths.map((w, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6162
- "div",
6163
- {
6164
- className: "flex h-12 items-center gap-[var(--spacing-system-xsf)] bg-ods-bg border-b border-ods-border px-[var(--spacing-system-s)] last:border-b-0",
6165
- children: [
6166
- i < group.withBadge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 shrink-0 animate-pulse rounded-md bg-ods-border" }),
6167
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "h-4 animate-pulse rounded bg-ods-border", w) })
6168
- ]
6169
- },
6170
- i
6171
- )) })
6172
- ] }, g))
6162
+ children: [
6163
+ searchable && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-11 md:h-12 shrink-0 items-center gap-2 rounded-[6px] border border-ods-border bg-ods-card px-3", children: [
6164
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "size-4 md:size-6 shrink-0 animate-pulse rounded bg-ods-border" }),
6165
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-32 animate-pulse rounded bg-ods-border" })
6166
+ ] }),
6167
+ groups.map((group, g) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
6168
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 animate-pulse rounded bg-ods-border" }),
6169
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.widths.map((w, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6170
+ "div",
6171
+ {
6172
+ className: "flex h-12 items-center gap-[var(--spacing-system-xsf)] bg-ods-bg border-b border-ods-border px-[var(--spacing-system-s)] last:border-b-0",
6173
+ children: [
6174
+ i < group.withBadge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 shrink-0 animate-pulse rounded-md bg-ods-border" }),
6175
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "h-4 animate-pulse rounded bg-ods-border", w) })
6176
+ ]
6177
+ },
6178
+ i
6179
+ )) })
6180
+ ] }, g))
6181
+ ]
6182
+ }
6183
+ );
6184
+ }
6185
+ function DialogSearchBar({
6186
+ initialValue,
6187
+ onSearchChange
6188
+ }) {
6189
+ const [value, setValue] = React13.useState(_nullishCoalesce(initialValue, () => ( "")));
6190
+ const debounced = _chunk27IO7V3Pcjs.useDebounce.call(void 0, value, 300);
6191
+ const lastEmitted = React13.useRef(_nullishCoalesce(initialValue, () => ( "")));
6192
+ React13.useEffect(() => {
6193
+ if (debounced === lastEmitted.current) return;
6194
+ lastEmitted.current = debounced;
6195
+ onSearchChange(debounced);
6196
+ }, [debounced, onSearchChange]);
6197
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6198
+ _chunkQJGRP2YEcjs.Input,
6199
+ {
6200
+ type: "text",
6201
+ value,
6202
+ onChange: (e) => setValue(e.target.value),
6203
+ placeholder: "Search for Chats",
6204
+ "aria-label": "Search chats",
6205
+ startAdornment: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}),
6206
+ className: "shrink-0"
6173
6207
  }
6174
6208
  );
6175
6209
  }
@@ -6179,12 +6213,15 @@ function MingoChatHistory({
6179
6213
  onSelectDialog,
6180
6214
  onRequestRename,
6181
6215
  onRequestArchive,
6216
+ searchQuery,
6217
+ onSearchChange,
6182
6218
  hasMore = false,
6183
6219
  isLoadingMore = false,
6184
6220
  onLoadMore,
6185
6221
  className
6186
6222
  }) {
6187
6223
  const groups = React13.useMemo(() => groupDialogs(dialogs), [dialogs]);
6224
+ const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _98 => _98.trim, 'call', _99 => _99()]);
6188
6225
  const scrollRef = React13.useRef(null);
6189
6226
  const [fade, setFade] = React13.useState({ top: false, bottom: false });
6190
6227
  const updateFade = React13.useCallback(() => {
@@ -6215,7 +6252,7 @@ function MingoChatHistory({
6215
6252
  const io = new IntersectionObserver(
6216
6253
  ([entry]) => {
6217
6254
  if (entry.isIntersecting && !isLoadingMoreRef.current) {
6218
- _optionalChain([onLoadMoreRef, 'access', _98 => _98.current, 'optionalCall', _99 => _99()]);
6255
+ _optionalChain([onLoadMoreRef, 'access', _100 => _100.current, 'optionalCall', _101 => _101()]);
6219
6256
  }
6220
6257
  },
6221
6258
  { root, rootMargin: "120px", threshold: 0.1 }
@@ -6223,65 +6260,68 @@ function MingoChatHistory({
6223
6260
  io.observe(sentinel);
6224
6261
  return () => io.disconnect();
6225
6262
  }, [hasMore]);
6226
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "relative flex flex-1 min-h-0 flex-col", className), children: [
6227
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6228
- "div",
6229
- {
6230
- ref: scrollRef,
6231
- onScroll: updateFade,
6232
- className: "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto",
6233
- children: [
6234
- groups.map((group) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6235
- "div",
6236
- {
6237
- className: "flex flex-col gap-[var(--spacing-system-xxs)]",
6238
- children: [
6239
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 text-ods-text-secondary", children: group.label }),
6240
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.items.map((dialog) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6241
- MingoChatHistoryRow,
6242
- {
6243
- dialog,
6244
- isActive: dialog.id === activeDialogId,
6245
- onSelect: onSelectDialog,
6246
- onRequestRename,
6247
- onRequestArchive
6248
- },
6249
- dialog.id
6250
- )) })
6251
- ]
6252
- },
6253
- group.key
6254
- )),
6255
- hasMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-px shrink-0" }) : null
6256
- ]
6257
- }
6258
- ),
6259
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6260
- "div",
6261
- {
6262
- "aria-hidden": true,
6263
- className: _chunkFIG2RKZFcjs.cn.call(void 0,
6264
- "pointer-events-none absolute inset-x-0 top-0 h-12 transition-opacity duration-150",
6265
- fade.top ? "opacity-100" : "opacity-0"
6266
- ),
6267
- style: {
6268
- background: "linear-gradient(0deg, transparent 0%, var(--color-bg-card) 100%)"
6263
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "relative flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)]", className), children: [
6264
+ onSearchChange ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogSearchBar, { initialValue: searchQuery, onSearchChange }) : null,
6265
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex flex-1 min-h-0 flex-col", children: [
6266
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6267
+ "div",
6268
+ {
6269
+ ref: scrollRef,
6270
+ onScroll: updateFade,
6271
+ className: "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto",
6272
+ children: [
6273
+ noSearchResults ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "py-[var(--spacing-system-m)] text-center text-h5 text-ods-text-secondary", children: "No chats found" }) : groups.map((group) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6274
+ "div",
6275
+ {
6276
+ className: "flex flex-col gap-[var(--spacing-system-xxs)]",
6277
+ children: [
6278
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 text-ods-text-secondary", children: group.label }),
6279
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.items.map((dialog) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6280
+ MingoChatHistoryRow,
6281
+ {
6282
+ dialog,
6283
+ isActive: dialog.id === activeDialogId,
6284
+ onSelect: onSelectDialog,
6285
+ onRequestRename,
6286
+ onRequestArchive
6287
+ },
6288
+ dialog.id
6289
+ )) })
6290
+ ]
6291
+ },
6292
+ group.key
6293
+ )),
6294
+ hasMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-px shrink-0" }) : null
6295
+ ]
6269
6296
  }
6270
- }
6271
- ),
6272
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6273
- "div",
6274
- {
6275
- "aria-hidden": true,
6276
- className: _chunkFIG2RKZFcjs.cn.call(void 0,
6277
- "pointer-events-none absolute inset-x-0 bottom-0 h-12 transition-opacity duration-150",
6278
- fade.bottom ? "opacity-100" : "opacity-0"
6279
- ),
6280
- style: {
6281
- background: "linear-gradient(180deg, transparent 0%, var(--color-bg-card) 100%)"
6297
+ ),
6298
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6299
+ "div",
6300
+ {
6301
+ "aria-hidden": true,
6302
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
6303
+ "pointer-events-none absolute inset-x-0 top-0 h-12 transition-opacity duration-150",
6304
+ fade.top ? "opacity-100" : "opacity-0"
6305
+ ),
6306
+ style: {
6307
+ background: "linear-gradient(0deg, transparent 0%, var(--color-bg-card) 100%)"
6308
+ }
6282
6309
  }
6283
- }
6284
- )
6310
+ ),
6311
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6312
+ "div",
6313
+ {
6314
+ "aria-hidden": true,
6315
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
6316
+ "pointer-events-none absolute inset-x-0 bottom-0 h-12 transition-opacity duration-150",
6317
+ fade.bottom ? "opacity-100" : "opacity-0"
6318
+ ),
6319
+ style: {
6320
+ background: "linear-gradient(180deg, transparent 0%, var(--color-bg-card) 100%)"
6321
+ }
6322
+ }
6323
+ )
6324
+ ] })
6285
6325
  ] });
6286
6326
  }
6287
6327
 
@@ -6330,6 +6370,7 @@ function MingoWelcome({
6330
6370
  isLoadingHistory = false,
6331
6371
  loadError = false,
6332
6372
  onRetry,
6373
+ historySearchable = false,
6333
6374
  onStartGuideChat,
6334
6375
  className
6335
6376
  }) {
@@ -6401,7 +6442,7 @@ function MingoWelcome({
6401
6442
  children: "Try again"
6402
6443
  }
6403
6444
  )
6404
- ] }) : isLoadingHistory ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoChatHistorySkeleton, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex flex-1 min-h-0 flex-col", children: [
6445
+ ] }) : isLoadingHistory ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoChatHistorySkeleton, { searchable: historySearchable }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex flex-1 min-h-0 flex-col", children: [
6405
6446
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6406
6447
  "div",
6407
6448
  {
@@ -6558,7 +6599,7 @@ function GuideWelcome({
6558
6599
  () => quickActions.map((action) => ({
6559
6600
  id: action.id,
6560
6601
  label: action.label,
6561
- onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _100 => _100(action)])
6602
+ onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _102 => _102(action)])
6562
6603
  })),
6563
6604
  [quickActions, onQuickAction]
6564
6605
  );
@@ -6999,7 +7040,7 @@ function ChatDialogModals({
6999
7040
  RenameChatModal,
7000
7041
  {
7001
7042
  isOpen: renameTarget != null,
7002
- initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _101 => _101.title]), () => ( "")),
7043
+ initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _103 => _103.title]), () => ( "")),
7003
7044
  onClose: () => setRenameTarget(null),
7004
7045
  onSave: onConfirmRename
7005
7046
  }
@@ -7263,7 +7304,7 @@ function ChatAttachmentAddButton({
7263
7304
  const canAddMore = slotsAvailable > 0 && !disabled;
7264
7305
  const handlePick = () => {
7265
7306
  if (!canAddMore) return;
7266
- _optionalChain([fileInputRef, 'access', _102 => _102.current, 'optionalAccess', _103 => _103.click, 'call', _104 => _104()]);
7307
+ _optionalChain([fileInputRef, 'access', _104 => _104.current, 'optionalAccess', _105 => _105.click, 'call', _106 => _106()]);
7267
7308
  };
7268
7309
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
7269
7310
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -7629,7 +7670,7 @@ function ChatComposer({
7629
7670
  }) {
7630
7671
  const contextEnabled = !!contextPicker && !archived;
7631
7672
  const selected = _nullishCoalesce(selectedContextItems, () => ( []));
7632
- const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _105 => _105.entityTypes]);
7673
+ const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _107 => _107.entityTypes]);
7633
7674
  const iconByType = React23.useMemo(() => {
7634
7675
  const map = /* @__PURE__ */ new Map();
7635
7676
  for (const t of _nullishCoalesce(entityTypes, () => ( []))) map.set(t.type, t.icon);
@@ -7658,7 +7699,7 @@ function ChatComposer({
7658
7699
  startIcon: contextEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7659
7700
  ChatComposerPlusMenu,
7660
7701
  {
7661
- onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _106 => _106()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _107 => _107()]),
7702
+ onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _108 => _108()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _109 => _109()]),
7662
7703
  open: contextPickerOpen,
7663
7704
  disabled: attachmentsDisabled,
7664
7705
  dropdown: contextPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -7667,8 +7708,8 @@ function ChatComposer({
7667
7708
  open: contextPickerOpen,
7668
7709
  config: contextPicker,
7669
7710
  selectedItems: selected,
7670
- onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _108 => _108(item)]),
7671
- onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _109 => _109()]),
7711
+ onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _110 => _110(item)]),
7712
+ onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _111 => _111()]),
7672
7713
  mentionQuery
7673
7714
  }
7674
7715
  ) : void 0
@@ -7873,8 +7914,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
7873
7914
  var DialogListItem = _react.forwardRef.call(void 0,
7874
7915
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
7875
7916
  const handleClick = (e) => {
7876
- _optionalChain([onDialogSelect, 'optionalCall', _110 => _110(dialog.id)]);
7877
- _optionalChain([onClick, 'optionalCall', _111 => _111(e)]);
7917
+ _optionalChain([onDialogSelect, 'optionalCall', _112 => _112(dialog.id)]);
7918
+ _optionalChain([onClick, 'optionalCall', _113 => _113(e)]);
7878
7919
  };
7879
7920
  const formatTimestamp2 = (timestamp) => {
7880
7921
  if (!timestamp) return "";
@@ -7933,7 +7974,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
7933
7974
  (entries) => {
7934
7975
  const [entry] = entries;
7935
7976
  if (entry.isIntersecting && !isFetchingRef.current) {
7936
- _optionalChain([onLoadMoreRef, 'access', _112 => _112.current, 'optionalCall', _113 => _113()]);
7977
+ _optionalChain([onLoadMoreRef, 'access', _114 => _114.current, 'optionalCall', _115 => _115()]);
7937
7978
  }
7938
7979
  },
7939
7980
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -8049,7 +8090,7 @@ function isSameOriginAbsoluteHref(href) {
8049
8090
  function computeIsNewTab(runtime, href, targetPlatform) {
8050
8091
  if (!href) return false;
8051
8092
  if (runtime.navigation.mode === "embed") return !isSameOriginAbsoluteHref(href);
8052
- return _nullishCoalesce(_optionalChain([runtime, 'access', _114 => _114.navigation, 'access', _115 => _115.decideNewTab, 'optionalCall', _116 => _116({ href, targetPlatform })]), () => ( decideNewTab({
8093
+ return _nullishCoalesce(_optionalChain([runtime, 'access', _116 => _116.navigation, 'access', _117 => _117.decideNewTab, 'optionalCall', _118 => _118({ href, targetPlatform })]), () => ( decideNewTab({
8053
8094
  href,
8054
8095
  targetPlatform,
8055
8096
  currentSource: _nullishCoalesce(runtime.source, () => ( ""))
@@ -8113,7 +8154,7 @@ function resolveExternalNavigation(args) {
8113
8154
  function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
8114
8155
  const isNewTab = runtime ? computeIsNewTab(runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
8115
8156
  if (isNewTab) {
8116
- if (_optionalChain([runtime, 'optionalAccess', _117 => _117.navigation, 'access', _118 => _118.openExternal])) runtime.navigation.openExternal(href);
8157
+ if (_optionalChain([runtime, 'optionalAccess', _119 => _119.navigation, 'access', _120 => _120.openExternal])) runtime.navigation.openExternal(href);
8117
8158
  else window.open(href, "_blank", NEW_TAB_FEATURES);
8118
8159
  return;
8119
8160
  }
@@ -8121,7 +8162,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
8121
8162
  if (target.includes("#") && _chunk27IO7V3Pcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunk27IO7V3Pcjs.STICKY_HEADER_OFFSET_PX })) {
8122
8163
  return;
8123
8164
  }
8124
- const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _119 => _119.navigation, 'access', _120 => _120.navigate, 'optionalCall', _121 => _121({ href, path, targetPlatform })]), () => ( false));
8165
+ const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _121 => _121.navigation, 'access', _122 => _122.navigate, 'optionalCall', _123 => _123({ href, path, targetPlatform })]), () => ( false));
8125
8166
  if (!handled) {
8126
8167
  if (fallbackNavigate) fallbackNavigate(target);
8127
8168
  else window.location.assign(target);
@@ -8186,7 +8227,7 @@ function NavLinkAnchorViaRuntime({
8186
8227
  path,
8187
8228
  targetPlatform
8188
8229
  }, router.push);
8189
- if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _122 => _122.closeChat])) panel.closeChat();
8230
+ if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _124 => _124.closeChat])) panel.closeChat();
8190
8231
  };
8191
8232
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8192
8233
  "a",
@@ -8311,7 +8352,7 @@ function EntityAuthorCard({
8311
8352
  renderEmptyAuthor = false,
8312
8353
  className
8313
8354
  }) {
8314
- const hasAuthor = !!_optionalChain([author, 'optionalAccess', _123 => _123.full_name]);
8355
+ const hasAuthor = !!_optionalChain([author, 'optionalAccess', _125 => _125.full_name]);
8315
8356
  if (!hasAuthor && !renderEmptyAuthor) return null;
8316
8357
  const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
8317
8358
  const formatted = publishedAt ? formatDate(publishedAt) : "";
@@ -8647,8 +8688,8 @@ function AdminContentCard({
8647
8688
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-['DM_Sans'] font-bold text-ods-text-primary text-[18px] leading-snug line-clamp-2 break-words", children: title }),
8648
8689
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] text-ods-text-secondary truncate", children: subtitle }),
8649
8690
  summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-relaxed text-ods-text-secondary line-clamp-2", children: summary }),
8650
- (Number(_optionalChain([platforms, 'optionalAccess', _124 => _124.length])) > 0 || badges) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 flex-wrap", children: [
8651
- _optionalChain([platforms, 'optionalAccess', _125 => _125.map, 'call', _126 => _126((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8691
+ (Number(_optionalChain([platforms, 'optionalAccess', _126 => _126.length])) > 0 || badges) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 flex-wrap", children: [
8692
+ _optionalChain([platforms, 'optionalAccess', _127 => _127.map, 'call', _128 => _128((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8652
8693
  PlatformBadge,
8653
8694
  {
8654
8695
  platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
@@ -8704,8 +8745,8 @@ function WhatIShippedCard({ entry, placeholderUrl, actions, anchorProps, classNa
8704
8745
  ) : null,
8705
8746
  meta: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8706
8747
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2 min-w-0", children: [
8707
- _optionalChain([entry, 'access', _127 => _127.author, 'optionalAccess', _128 => _128.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: _nullishCoalesce(getProxiedImageUrl2(entry.author.avatar_url), () => ( entry.author.avatar_url)), alt: "", className: "h-5 w-5 rounded-full object-cover shrink-0" }) : null,
8708
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: _nullishCoalesce(_optionalChain([entry, 'access', _129 => _129.author, 'optionalAccess', _130 => _130.full_name]), () => ( "")) })
8748
+ _optionalChain([entry, 'access', _129 => _129.author, 'optionalAccess', _130 => _130.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: _nullishCoalesce(getProxiedImageUrl2(entry.author.avatar_url), () => ( entry.author.avatar_url)), alt: "", className: "h-5 w-5 rounded-full object-cover shrink-0" }) : null,
8749
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: _nullishCoalesce(_optionalChain([entry, 'access', _131 => _131.author, 'optionalAccess', _132 => _132.full_name]), () => ( "")) })
8709
8750
  ] }),
8710
8751
  month ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: month }) : null
8711
8752
  ] }),
@@ -8790,7 +8831,7 @@ function fetchPriorityProp(priority) {
8790
8831
 
8791
8832
  if (typeof window !== "undefined") {
8792
8833
  const w = window;
8793
- if (!_optionalChain([w, 'access', _131 => _131.chrome, 'optionalAccess', _132 => _132.cast])) {
8834
+ if (!_optionalChain([w, 'access', _133 => _133.chrome, 'optionalAccess', _134 => _134.cast])) {
8794
8835
  w.chrome = { ..._nullishCoalesce(w.chrome, () => ( {})), cast: { isAvailable: false } };
8795
8836
  }
8796
8837
  }
@@ -8980,7 +9021,7 @@ function YouTubeFacadeInner({
8980
9021
  const iframe = iframeRef.current;
8981
9022
  if (!iframe) return;
8982
9023
  function subscribe() {
8983
- _optionalChain([iframe, 'optionalAccess', _133 => _133.contentWindow, 'optionalAccess', _134 => _134.postMessage, 'call', _135 => _135(
9024
+ _optionalChain([iframe, 'optionalAccess', _135 => _135.contentWindow, 'optionalAccess', _136 => _136.postMessage, 'call', _137 => _137(
8984
9025
  '{"event":"listening"}',
8985
9026
  YT_NOCOOKIE_ORIGIN
8986
9027
  )]);
@@ -8998,13 +9039,13 @@ function YouTubeFacadeInner({
8998
9039
  return;
8999
9040
  }
9000
9041
  if (!payload || payload.event !== "infoDelivery") return;
9001
- const state = _optionalChain([payload, 'access', _136 => _136.info, 'optionalAccess', _137 => _137.playerState]);
9042
+ const state = _optionalChain([payload, 'access', _138 => _138.info, 'optionalAccess', _139 => _139.playerState]);
9002
9043
  if (typeof state !== "number") return;
9003
9044
  if (state === YT_STATE_PLAYING) {
9004
9045
  if (blurTimer !== null) return;
9005
9046
  blurTimer = setTimeout(() => {
9006
9047
  blurTimer = null;
9007
- _optionalChain([iframeRef, 'access', _138 => _138.current, 'optionalAccess', _139 => _139.blur, 'call', _140 => _140()]);
9048
+ _optionalChain([iframeRef, 'access', _140 => _140.current, 'optionalAccess', _141 => _141.blur, 'call', _142 => _142()]);
9008
9049
  }, YT_PLAYING_BLUR_DELAY_MS);
9009
9050
  return;
9010
9051
  }
@@ -9610,7 +9651,7 @@ function ProductReleaseCard({
9610
9651
  changelogCounts
9611
9652
  }) {
9612
9653
  if (size === "lg") {
9613
- const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _141 => _141.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _142 => _142.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _143 => _143.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _144 => _144.breaking]), () => ( 0)));
9654
+ const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _143 => _143.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _144 => _144.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _145 => _145.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _146 => _146.breaking]), () => ( 0)));
9614
9655
  const valueCells = [
9615
9656
  releaseType && releaseTypeBadgeColor ? {
9616
9657
  value: releaseType.toUpperCase(),
@@ -9629,7 +9670,7 @@ function ProductReleaseCard({
9629
9670
  uppercase: false
9630
9671
  } : { value: "\u2014", label: "Released", uppercase: false }
9631
9672
  ];
9632
- const effectiveAuthor = _optionalChain([author, 'optionalAccess', _145 => _145.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
9673
+ const effectiveAuthor = _optionalChain([author, 'optionalAccess', _147 => _147.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
9633
9674
  const gridColsClass = "md:grid-cols-4";
9634
9675
  const dividerClass = "border-b md:border-b-0 md:border-r border-ods-border";
9635
9676
  const frameClass = _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -10042,10 +10083,10 @@ function buildProductReleaseCardProps(item) {
10042
10083
  job_title: release.author.job_title
10043
10084
  } : void 0,
10044
10085
  changelogCounts: {
10045
- features: _nullishCoalesce(_optionalChain([release, 'access', _146 => _146.features_added, 'optionalAccess', _147 => _147.length]), () => ( 0)),
10046
- fixes: _nullishCoalesce(_optionalChain([release, 'access', _148 => _148.bugs_fixed, 'optionalAccess', _149 => _149.length]), () => ( 0)),
10047
- improvements: _nullishCoalesce(_optionalChain([release, 'access', _150 => _150.improvements, 'optionalAccess', _151 => _151.length]), () => ( 0)),
10048
- breaking: _nullishCoalesce(_optionalChain([release, 'access', _152 => _152.breaking_changes, 'optionalAccess', _153 => _153.length]), () => ( 0))
10086
+ features: _nullishCoalesce(_optionalChain([release, 'access', _148 => _148.features_added, 'optionalAccess', _149 => _149.length]), () => ( 0)),
10087
+ fixes: _nullishCoalesce(_optionalChain([release, 'access', _150 => _150.bugs_fixed, 'optionalAccess', _151 => _151.length]), () => ( 0)),
10088
+ improvements: _nullishCoalesce(_optionalChain([release, 'access', _152 => _152.improvements, 'optionalAccess', _153 => _153.length]), () => ( 0)),
10089
+ breaking: _nullishCoalesce(_optionalChain([release, 'access', _154 => _154.breaking_changes, 'optionalAccess', _155 => _155.length]), () => ( 0))
10049
10090
  }
10050
10091
  };
10051
10092
  }
@@ -10173,7 +10214,7 @@ function BlogCard({
10173
10214
  const displayImage = post.featured_image && !imageError ? post.featured_image : placeholderUrl;
10174
10215
  if (size === "sm") {
10175
10216
  const dateStr2 = post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { year: "numeric", month: "short", day: "numeric", timeZone: "UTC" }) : "";
10176
- const firstCategory = _optionalChain([post, 'access', _154 => _154.categories, 'optionalAccess', _155 => _155.find, 'call', _156 => _156((c) => c && c.name), 'optionalAccess', _157 => _157.name]);
10217
+ const firstCategory = _optionalChain([post, 'access', _156 => _156.categories, 'optionalAccess', _157 => _157.find, 'call', _158 => _158((c) => c && c.name), 'optionalAccess', _159 => _159.name]);
10177
10218
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10178
10219
  "a",
10179
10220
  {
@@ -10379,14 +10420,14 @@ function CaseStudyCard({
10379
10420
  "img",
10380
10421
  {
10381
10422
  src: coverImage,
10382
- alt: `${_optionalChain([study, 'access', _158 => _158.msp, 'optionalAccess', _159 => _159.name]) || study.title} cover`,
10423
+ alt: `${_optionalChain([study, 'access', _160 => _160.msp, 'optionalAccess', _161 => _161.name]) || study.title} cover`,
10383
10424
  className: "absolute inset-0 block w-full h-full object-contain",
10384
10425
  onError: hideOnError
10385
10426
  }
10386
10427
  ) : null }),
10387
10428
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
10388
10429
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: study.title }) }),
10389
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access', _160 => _160.msp, 'optionalAccess', _161 => _161.name]), _optionalChain([study, 'access', _162 => _162.user, 'optionalAccess', _163 => _163.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
10430
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access', _162 => _162.msp, 'optionalAccess', _163 => _163.name]), _optionalChain([study, 'access', _164 => _164.user, 'optionalAccess', _165 => _165.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
10390
10431
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: study.summary || COMPACT_CARD_ROW_FILLER }) })
10391
10432
  ] })
10392
10433
  ] });
@@ -10396,7 +10437,7 @@ function CaseStudyCard({
10396
10437
  _chunkXL4V2PYGcjs.next_image_default,
10397
10438
  {
10398
10439
  src: coverImage,
10399
- alt: _optionalChain([study, 'access', _164 => _164.msp, 'optionalAccess', _165 => _165.name]) || study.title,
10440
+ alt: _optionalChain([study, 'access', _166 => _166.msp, 'optionalAccess', _167 => _167.name]) || study.title,
10400
10441
  className: "w-full h-full object-cover",
10401
10442
  sizes: "(min-width: 1545px) 515px, (min-width: 1280px) 33vw, (min-width: 800px) 50vw, 100vw",
10402
10443
  fill: true,
@@ -10407,18 +10448,18 @@ function CaseStudyCard({
10407
10448
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[72px] flex items-center shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary line-clamp-3 break-words", children: study.title }) }),
10408
10449
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[60px] flex items-center shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 min-w-0 w-full", children: [
10409
10450
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative shrink-0 w-12 h-12", children: [
10410
- _optionalChain([study, 'access', _166 => _166.user, 'optionalAccess', _167 => _167.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10451
+ _optionalChain([study, 'access', _168 => _168.user, 'optionalAccess', _169 => _169.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10411
10452
  _chunkXL4V2PYGcjs.next_image_default,
10412
10453
  {
10413
10454
  src: study.user.avatar_url,
10414
- alt: _optionalChain([study, 'access', _168 => _168.user, 'optionalAccess', _169 => _169.full_name]) || "User",
10455
+ alt: _optionalChain([study, 'access', _170 => _170.user, 'optionalAccess', _171 => _171.full_name]) || "User",
10415
10456
  className: "w-12 h-12 rounded-full object-cover bg-ods-background border border-ods-border",
10416
10457
  width: 48,
10417
10458
  height: 48,
10418
10459
  unoptimized: true
10419
10460
  }
10420
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([study, 'access', _170 => _170.user, 'optionalAccess', _171 => _171.full_name]) || "A").charAt(0).toUpperCase() }) }),
10421
- _optionalChain([study, 'access', _172 => _172.msp, 'optionalAccess', _173 => _173.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10461
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([study, 'access', _172 => _172.user, 'optionalAccess', _173 => _173.full_name]) || "A").charAt(0).toUpperCase() }) }),
10462
+ _optionalChain([study, 'access', _174 => _174.msp, 'optionalAccess', _175 => _175.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10422
10463
  _chunkXL4V2PYGcjs.next_image_default,
10423
10464
  {
10424
10465
  src: study.msp.icon_url,
@@ -10432,13 +10473,13 @@ function CaseStudyCard({
10432
10473
  ] }),
10433
10474
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
10434
10475
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-[16px] leading-[1.3] text-ods-text-primary truncate", children: [
10435
- _optionalChain([study, 'access', _174 => _174.user, 'optionalAccess', _175 => _175.full_name]) || "Anonymous",
10436
- _optionalChain([study, 'access', _176 => _176.msp, 'optionalAccess', _177 => _177.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10476
+ _optionalChain([study, 'access', _176 => _176.user, 'optionalAccess', _177 => _177.full_name]) || "Anonymous",
10477
+ _optionalChain([study, 'access', _178 => _178.msp, 'optionalAccess', _179 => _179.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10437
10478
  " \u2022 ",
10438
10479
  study.msp.name
10439
10480
  ] })
10440
10481
  ] }),
10441
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([study, 'access', _178 => _178.user, 'optionalAccess', _179 => _179.job_title]) || "\xA0" })
10482
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([study, 'access', _180 => _180.user, 'optionalAccess', _181 => _181.job_title]) || "\xA0" })
10442
10483
  ] })
10443
10484
  ] }) })
10444
10485
  ] }) });
@@ -10521,7 +10562,7 @@ function CustomerInterviewCard({
10521
10562
  ] }),
10522
10563
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
10523
10564
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: interview.title }) }),
10524
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access', _180 => _180.user, 'optionalAccess', _181 => _181.full_name]), _optionalChain([interview, 'access', _182 => _182.msp, 'optionalAccess', _183 => _183.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
10565
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access', _182 => _182.user, 'optionalAccess', _183 => _183.full_name]), _optionalChain([interview, 'access', _184 => _184.msp, 'optionalAccess', _185 => _185.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
10525
10566
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: interview.video_summary || COMPACT_CARD_ROW_FILLER }) })
10526
10567
  ] })
10527
10568
  ] });
@@ -10543,15 +10584,15 @@ function CustomerInterviewCard({
10543
10584
  interview.video_summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-[20px] text-ods-text-secondary line-clamp-3", children: interview.video_summary }) }),
10544
10585
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[60px] flex items-center shrink-0 mt-auto", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 min-w-0 w-full", children: [
10545
10586
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative shrink-0 w-12 h-12", children: [
10546
- _optionalChain([interview, 'access', _184 => _184.user, 'optionalAccess', _185 => _185.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10587
+ _optionalChain([interview, 'access', _186 => _186.user, 'optionalAccess', _187 => _187.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10547
10588
  "img",
10548
10589
  {
10549
10590
  src: interview.user.avatar_url,
10550
- alt: _optionalChain([interview, 'access', _186 => _186.user, 'optionalAccess', _187 => _187.full_name]) || "Customer",
10591
+ alt: _optionalChain([interview, 'access', _188 => _188.user, 'optionalAccess', _189 => _189.full_name]) || "Customer",
10551
10592
  className: "w-12 h-12 rounded-full object-cover bg-ods-background border border-ods-border"
10552
10593
  }
10553
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([interview, 'access', _188 => _188.user, 'optionalAccess', _189 => _189.full_name]) || "A").charAt(0).toUpperCase() }) }),
10554
- _optionalChain([interview, 'access', _190 => _190.msp, 'optionalAccess', _191 => _191.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10594
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([interview, 'access', _190 => _190.user, 'optionalAccess', _191 => _191.full_name]) || "A").charAt(0).toUpperCase() }) }),
10595
+ _optionalChain([interview, 'access', _192 => _192.msp, 'optionalAccess', _193 => _193.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10555
10596
  "img",
10556
10597
  {
10557
10598
  src: interview.msp.icon_url,
@@ -10562,13 +10603,13 @@ function CustomerInterviewCard({
10562
10603
  ] }),
10563
10604
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
10564
10605
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-[16px] leading-[1.3] text-ods-text-primary truncate", children: [
10565
- _optionalChain([interview, 'access', _192 => _192.user, 'optionalAccess', _193 => _193.full_name]) || "Anonymous",
10566
- _optionalChain([interview, 'access', _194 => _194.msp, 'optionalAccess', _195 => _195.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10606
+ _optionalChain([interview, 'access', _194 => _194.user, 'optionalAccess', _195 => _195.full_name]) || "Anonymous",
10607
+ _optionalChain([interview, 'access', _196 => _196.msp, 'optionalAccess', _197 => _197.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10567
10608
  " \u2022 ",
10568
10609
  interview.msp.name
10569
10610
  ] })
10570
10611
  ] }),
10571
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([interview, 'access', _196 => _196.user, 'optionalAccess', _197 => _197.job_title]) || " " })
10612
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([interview, 'access', _198 => _198.user, 'optionalAccess', _199 => _199.job_title]) || " " })
10572
10613
  ] })
10573
10614
  ] }) })
10574
10615
  ] }) });
@@ -10581,7 +10622,7 @@ function CustomerInterviewCard({
10581
10622
  function formatInvestorUpdatePeriod(start, end, options) {
10582
10623
  if (!start && !end) return "";
10583
10624
  const fmt = (d) => new Date(d).toLocaleDateString("en-US", {
10584
- month: _optionalChain([options, 'optionalAccess', _198 => _198.monthFormat]) || "short",
10625
+ month: _optionalChain([options, 'optionalAccess', _200 => _200.monthFormat]) || "short",
10585
10626
  year: "numeric",
10586
10627
  // Pin to UTC so SSR (Vercel = UTC) and the client agree (React #418).
10587
10628
  timeZone: "UTC"
@@ -10673,7 +10714,7 @@ function InvestorUpdateCard({
10673
10714
  imageUrl: update.featured_image,
10674
10715
  placeholderUrl,
10675
10716
  title: update.title || `Update #${update.update_number || "?"}`,
10676
- summary: _optionalChain([update, 'access', _199 => _199.strategic_update, 'optionalAccess', _200 => _200.slice, 'call', _201 => _201(0, 120)]) || _optionalChain([update, 'access', _202 => _202.content, 'optionalAccess', _203 => _203.slice, 'call', _204 => _204(0, 120)]) || "No description",
10717
+ summary: _optionalChain([update, 'access', _201 => _201.strategic_update, 'optionalAccess', _202 => _202.slice, 'call', _203 => _203(0, 120)]) || _optionalChain([update, 'access', _204 => _204.content, 'optionalAccess', _205 => _205.slice, 'call', _206 => _206(0, 120)]) || "No description",
10677
10718
  badges: update.update_number ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "px-2 py-0.5 rounded text-xs font-medium bg-ods-accent/10 text-ods-accent", children: [
10678
10719
  "#",
10679
10720
  update.update_number
@@ -10865,7 +10906,7 @@ function OnboardingGuideCard({
10865
10906
  const compactCover = coverImage || placeholderUrl || null;
10866
10907
  const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
10867
10908
  const summary2 = stripMarkdownPreview(guide.video_summary || guide.content || "");
10868
- const author = _optionalChain([guide, 'access', _205 => _205.author, 'optionalAccess', _206 => _206.full_name, 'optionalAccess', _207 => _207.trim, 'call', _208 => _208()]) || "";
10909
+ const author = _optionalChain([guide, 'access', _207 => _207.author, 'optionalAccess', _208 => _208.full_name, 'optionalAccess', _209 => _209.trim, 'call', _210 => _210()]) || "";
10869
10910
  const subtitleParts = [
10870
10911
  `Step ${guide.step_order}`,
10871
10912
  guide.section,
@@ -11238,7 +11279,7 @@ function AutocompleteInner(props, ref) {
11238
11279
  if (!isInputControlled) {
11239
11280
  setInternalInputValue(value);
11240
11281
  }
11241
- _optionalChain([onInputChange, 'optionalCall', _209 => _209(value, reason)]);
11282
+ _optionalChain([onInputChange, 'optionalCall', _211 => _211(value, reason)]);
11242
11283
  };
11243
11284
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
11244
11285
  const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
@@ -11266,8 +11307,8 @@ function AutocompleteInner(props, ref) {
11266
11307
  if (!showHiddenTags) return;
11267
11308
  const handleClick = (e) => {
11268
11309
  const target = e.target;
11269
- const inButton = _optionalChain([hiddenTagsRef, 'access', _210 => _210.current, 'optionalAccess', _211 => _211.contains, 'call', _212 => _212(target)]);
11270
- const inPopup = _optionalChain([hiddenTagsPopupRef, 'access', _213 => _213.current, 'optionalAccess', _214 => _214.contains, 'call', _215 => _215(target)]);
11310
+ const inButton = _optionalChain([hiddenTagsRef, 'access', _212 => _212.current, 'optionalAccess', _213 => _213.contains, 'call', _214 => _214(target)]);
11311
+ const inPopup = _optionalChain([hiddenTagsPopupRef, 'access', _215 => _215.current, 'optionalAccess', _216 => _216.contains, 'call', _217 => _217(target)]);
11271
11312
  if (!inButton && !inPopup) {
11272
11313
  setShowHiddenTags(false);
11273
11314
  }
@@ -11311,7 +11352,7 @@ function AutocompleteInner(props, ref) {
11311
11352
  }
11312
11353
  updateInputValue("", "reset");
11313
11354
  setIsOpen(false);
11314
- _optionalChain([onCreateOption, 'optionalCall', _216 => _216(trimmed)]);
11355
+ _optionalChain([onCreateOption, 'optionalCall', _218 => _218(trimmed)]);
11315
11356
  };
11316
11357
  _react.useEffect.call(void 0, () => {
11317
11358
  setHighlightedIndex(-1);
@@ -11335,7 +11376,7 @@ function AutocompleteInner(props, ref) {
11335
11376
  props.onChange([...valueArray, option.value]);
11336
11377
  }
11337
11378
  updateInputValue("", "reset");
11338
- _optionalChain([autoLimitTags, 'access', _217 => _217.inputRef, 'access', _218 => _218.current, 'optionalAccess', _219 => _219.focus, 'call', _220 => _220()]);
11379
+ _optionalChain([autoLimitTags, 'access', _219 => _219.inputRef, 'access', _220 => _220.current, 'optionalAccess', _221 => _221.focus, 'call', _222 => _222()]);
11339
11380
  } else {
11340
11381
  ;
11341
11382
  props.onChange(option.value);
@@ -11356,7 +11397,7 @@ function AutocompleteInner(props, ref) {
11356
11397
  if (!isInputControlled) {
11357
11398
  setInternalInputValue("");
11358
11399
  }
11359
- _optionalChain([onInputChange, 'optionalCall', _221 => _221("", "clear")]);
11400
+ _optionalChain([onInputChange, 'optionalCall', _223 => _223("", "clear")]);
11360
11401
  setIsOpen(false);
11361
11402
  };
11362
11403
  const handleKeyDown = (e) => {
@@ -11430,7 +11471,7 @@ function AutocompleteInner(props, ref) {
11430
11471
  ),
11431
11472
  onClick: () => {
11432
11473
  if (!disabled) {
11433
- _optionalChain([autoLimitTags, 'access', _222 => _222.inputRef, 'access', _223 => _223.current, 'optionalAccess', _224 => _224.focus, 'call', _225 => _225()]);
11474
+ _optionalChain([autoLimitTags, 'access', _224 => _224.inputRef, 'access', _225 => _225.current, 'optionalAccess', _226 => _226.focus, 'call', _227 => _227()]);
11434
11475
  openDropdown();
11435
11476
  }
11436
11477
  },
@@ -11546,10 +11587,10 @@ function AutocompleteInner(props, ref) {
11546
11587
  align: "start",
11547
11588
  onOpenAutoFocus: (e) => {
11548
11589
  e.preventDefault();
11549
- _optionalChain([autoLimitTags, 'access', _226 => _226.inputRef, 'access', _227 => _227.current, 'optionalAccess', _228 => _228.focus, 'call', _229 => _229()]);
11590
+ _optionalChain([autoLimitTags, 'access', _228 => _228.inputRef, 'access', _229 => _229.current, 'optionalAccess', _230 => _230.focus, 'call', _231 => _231()]);
11550
11591
  },
11551
11592
  onInteractOutside: (e) => {
11552
- if (_optionalChain([containerRef, 'access', _230 => _230.current, 'optionalAccess', _231 => _231.contains, 'call', _232 => _232(e.target)])) {
11593
+ if (_optionalChain([containerRef, 'access', _232 => _232.current, 'optionalAccess', _233 => _233.contains, 'call', _234 => _234(e.target)])) {
11553
11594
  e.preventDefault();
11554
11595
  }
11555
11596
  },
@@ -11942,7 +11983,7 @@ var defaultFormatDate = (date) => {
11942
11983
  });
11943
11984
  };
11944
11985
  var formatDateRange2 = (range, formatFn) => {
11945
- if (!_optionalChain([range, 'optionalAccess', _233 => _233.from])) return "";
11986
+ if (!_optionalChain([range, 'optionalAccess', _235 => _235.from])) return "";
11946
11987
  if (!range.to) return formatFn(range.from);
11947
11988
  return `${formatFn(range.from)} - ${formatFn(range.to)}`;
11948
11989
  };
@@ -11976,16 +12017,16 @@ function DatePickerCalendar({
11976
12017
  );
11977
12018
  const [hoveredDate, setHoveredDate] = React38.useState(void 0);
11978
12019
  const rangeSelected = draftRange;
11979
- const hasCompleteRange = mode === "range" && !!_optionalChain([rangeSelected, 'optionalAccess', _234 => _234.from]) && !!_optionalChain([rangeSelected, 'optionalAccess', _235 => _235.to]) && rangeSelected.from.getTime() !== rangeSelected.to.getTime();
12020
+ const hasCompleteRange = mode === "range" && !!_optionalChain([rangeSelected, 'optionalAccess', _236 => _236.from]) && !!_optionalChain([rangeSelected, 'optionalAccess', _237 => _237.to]) && rangeSelected.from.getTime() !== rangeSelected.to.getTime();
11980
12021
  const isPreviewDate = (date) => {
11981
- if (!_optionalChain([draftRange, 'optionalAccess', _236 => _236.from]) || draftRange.to || !hoveredDate) return false;
12022
+ if (!_optionalChain([draftRange, 'optionalAccess', _238 => _238.from]) || draftRange.to || !hoveredDate) return false;
11982
12023
  const start = Math.min(draftRange.from.getTime(), hoveredDate.getTime());
11983
12024
  const end = Math.max(draftRange.from.getTime(), hoveredDate.getTime());
11984
12025
  return date.getTime() >= start && date.getTime() <= end;
11985
12026
  };
11986
12027
  const handleRangeSelect = (triggerDate) => {
11987
12028
  if (!triggerDate) return;
11988
- if (!_optionalChain([draftRange, 'optionalAccess', _237 => _237.from]) || draftRange.to) {
12029
+ if (!_optionalChain([draftRange, 'optionalAccess', _239 => _239.from]) || draftRange.to) {
11989
12030
  setDraftRange({ from: triggerDate, to: void 0 });
11990
12031
  return;
11991
12032
  }
@@ -12045,7 +12086,7 @@ function DatePickerCalendar({
12045
12086
  range_middle: "range-middle !bg-[var(--ods-open-yellow-light)] !text-ods-card !font-medium !rounded-none hover:!bg-[var(--ods-open-yellow-light)]"
12046
12087
  };
12047
12088
  const [month, setMonth] = React38.useState(
12048
- mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess', _238 => _238.from]) || today
12089
+ mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess', _240 => _240.from]) || today
12049
12090
  );
12050
12091
  const handlePreviousMonth = () => {
12051
12092
  setMonth((prev) => {
@@ -12277,14 +12318,14 @@ function DatePicker(props) {
12277
12318
  }, [props.mode, props.value, formatDate2]);
12278
12319
  const handleSelect = (value) => {
12279
12320
  if (props.mode === "single") {
12280
- _optionalChain([props, 'access', _239 => _239.onChange, 'optionalCall', _240 => _240(value)]);
12321
+ _optionalChain([props, 'access', _241 => _241.onChange, 'optionalCall', _242 => _242(value)]);
12281
12322
  if (value) {
12282
12323
  setOpen(false);
12283
12324
  }
12284
12325
  } else {
12285
12326
  const range = value;
12286
- _optionalChain([props, 'access', _241 => _241.onChange, 'optionalCall', _242 => _242(range)]);
12287
- if (_optionalChain([range, 'optionalAccess', _243 => _243.from]) && _optionalChain([range, 'optionalAccess', _244 => _244.to])) {
12327
+ _optionalChain([props, 'access', _243 => _243.onChange, 'optionalCall', _244 => _244(range)]);
12328
+ if (_optionalChain([range, 'optionalAccess', _245 => _245.from]) && _optionalChain([range, 'optionalAccess', _246 => _246.to])) {
12288
12329
  setOpen(false);
12289
12330
  }
12290
12331
  }
@@ -12391,7 +12432,7 @@ function DatePickerInput({
12391
12432
  if (newDate && value) {
12392
12433
  newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
12393
12434
  }
12394
- _optionalChain([onChange, 'optionalCall', _245 => _245(newDate)]);
12435
+ _optionalChain([onChange, 'optionalCall', _247 => _247(newDate)]);
12395
12436
  if (newDate) {
12396
12437
  setOpen(false);
12397
12438
  }
@@ -12408,12 +12449,12 @@ function DatePickerInput({
12408
12449
  }
12409
12450
  }
12410
12451
  date.setHours(hours);
12411
- _optionalChain([onChange, 'optionalCall', _246 => _246(date)]);
12452
+ _optionalChain([onChange, 'optionalCall', _248 => _248(date)]);
12412
12453
  };
12413
12454
  const handleMinuteChange = (newMinute) => {
12414
12455
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
12415
12456
  date.setMinutes(parseInt(newMinute, 10));
12416
- _optionalChain([onChange, 'optionalCall', _247 => _247(date)]);
12457
+ _optionalChain([onChange, 'optionalCall', _249 => _249(date)]);
12417
12458
  };
12418
12459
  const handlePeriodChange = (newPeriod) => {
12419
12460
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
@@ -12424,7 +12465,7 @@ function DatePickerInput({
12424
12465
  hours += 12;
12425
12466
  }
12426
12467
  date.setHours(hours);
12427
- _optionalChain([onChange, 'optionalCall', _248 => _248(date)]);
12468
+ _optionalChain([onChange, 'optionalCall', _250 => _250(date)]);
12428
12469
  };
12429
12470
  const hourOptions = React38.useMemo(() => generateHourOptions(use24HourFormat), [use24HourFormat]);
12430
12471
  const minuteOptions = React38.useMemo(() => generateMinuteOptions(), []);
@@ -12585,7 +12626,7 @@ function DatePickerInputSimple({
12585
12626
  if (newDate && value) {
12586
12627
  newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
12587
12628
  }
12588
- _optionalChain([onChange, 'optionalCall', _249 => _249(newDate)]);
12629
+ _optionalChain([onChange, 'optionalCall', _251 => _251(newDate)]);
12589
12630
  if (newDate) {
12590
12631
  setOpen(false);
12591
12632
  }
@@ -12594,7 +12635,7 @@ function DatePickerInputSimple({
12594
12635
  const [hours, minutes] = newTime.split(":").map(Number);
12595
12636
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
12596
12637
  date.setHours(hours, minutes, 0, 0);
12597
- _optionalChain([onChange, 'optionalCall', _250 => _250(date)]);
12638
+ _optionalChain([onChange, 'optionalCall', _252 => _252(date)]);
12598
12639
  };
12599
12640
  const timeOptions = React38.useMemo(
12600
12641
  () => generateTimeOptions(timeInterval, use24HourFormat),
@@ -12688,7 +12729,7 @@ function DurationInput({ value, onChange, invalid, className }) {
12688
12729
  setSegments((prev) => compose(prev) === value ? prev : split(value));
12689
12730
  }, [value]);
12690
12731
  const focusSegment = (i) => {
12691
- const el = _optionalChain([refs, 'access', _251 => _251[i], 'optionalAccess', _252 => _252.current]);
12732
+ const el = _optionalChain([refs, 'access', _253 => _253[i], 'optionalAccess', _254 => _254.current]);
12692
12733
  if (!el) return;
12693
12734
  el.focus();
12694
12735
  el.select();
@@ -13178,7 +13219,7 @@ var NoData = React112.default.forwardRef(function NoData2({
13178
13219
  ...props
13179
13220
  }, ref) {
13180
13221
  const hasMessage = !!(icon || title || description);
13181
- const hasActions = !!_optionalChain([actions, 'optionalAccess', _253 => _253.length]);
13222
+ const hasActions = !!_optionalChain([actions, 'optionalAccess', _255 => _255.length]);
13182
13223
  const footerButton = _nullishCoalesce(button, () => ( (buttonLabel != null ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13183
13224
  _chunkQJGRP2YEcjs.Button,
13184
13225
  {
@@ -13186,7 +13227,7 @@ var NoData = React112.default.forwardRef(function NoData2({
13186
13227
  leftIcon: buttonIcon,
13187
13228
  onClick: onButtonClick,
13188
13229
  ...buttonProps,
13189
- className: _chunkFIG2RKZFcjs.cn.call(void 0, "w-full md:w-auto", _optionalChain([buttonProps, 'optionalAccess', _254 => _254.className])),
13230
+ className: _chunkFIG2RKZFcjs.cn.call(void 0, "w-full md:w-auto", _optionalChain([buttonProps, 'optionalAccess', _256 => _256.className])),
13190
13231
  children: buttonLabel
13191
13232
  }
13192
13233
  ) : null)));
@@ -13421,7 +13462,7 @@ var Switch = React47.forwardRef(({ className, checked, onCheckedChange, ...props
13421
13462
  }, [checked]);
13422
13463
  const handleCheckedChange = (newChecked) => {
13423
13464
  setIsChecked(newChecked);
13424
- _optionalChain([onCheckedChange, 'optionalCall', _255 => _255(newChecked)]);
13465
+ _optionalChain([onCheckedChange, 'optionalCall', _257 => _257(newChecked)]);
13425
13466
  };
13426
13467
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13427
13468
  SwitchPrimitives.Root,
@@ -13630,7 +13671,7 @@ function TagsManager({
13630
13671
  const name = search.trim();
13631
13672
  if (!name) return;
13632
13673
  const result = await onCreateTag(name);
13633
- if (_optionalChain([result, 'optionalAccess', _256 => _256.id])) {
13674
+ if (_optionalChain([result, 'optionalAccess', _258 => _258.id])) {
13634
13675
  onChange([...selectedIds, result.id]);
13635
13676
  setSearch("");
13636
13677
  }
@@ -13638,7 +13679,7 @@ function TagsManager({
13638
13679
  const startEdit = React49.useCallback((id, name) => {
13639
13680
  setEditingId(id);
13640
13681
  setEditingName(name);
13641
- setTimeout(() => _optionalChain([editInputRef, 'access', _257 => _257.current, 'optionalAccess', _258 => _258.focus, 'call', _259 => _259()]), 0);
13682
+ setTimeout(() => _optionalChain([editInputRef, 'access', _259 => _259.current, 'optionalAccess', _260 => _260.focus, 'call', _261 => _261()]), 0);
13642
13683
  }, []);
13643
13684
  const confirmEdit = React49.useCallback(async () => {
13644
13685
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -13665,7 +13706,7 @@ function TagsManager({
13665
13706
  e.stopPropagation();
13666
13707
  onChange([]);
13667
13708
  setSearch("");
13668
- _optionalChain([inputRef, 'access', _260 => _260.current, 'optionalAccess', _261 => _261.focus, 'call', _262 => _262()]);
13709
+ _optionalChain([inputRef, 'access', _262 => _262.current, 'optionalAccess', _263 => _263.focus, 'call', _264 => _264()]);
13669
13710
  },
13670
13711
  [onChange]
13671
13712
  );
@@ -13764,10 +13805,10 @@ function TagsManager({
13764
13805
  align: "start",
13765
13806
  onOpenAutoFocus: (e) => {
13766
13807
  e.preventDefault();
13767
- _optionalChain([inputRef, 'access', _263 => _263.current, 'optionalAccess', _264 => _264.focus, 'call', _265 => _265()]);
13808
+ _optionalChain([inputRef, 'access', _265 => _265.current, 'optionalAccess', _266 => _266.focus, 'call', _267 => _267()]);
13768
13809
  },
13769
13810
  onInteractOutside: (e) => {
13770
- if (_optionalChain([containerRef, 'access', _266 => _266.current, 'optionalAccess', _267 => _267.contains, 'call', _268 => _268(e.target)])) {
13811
+ if (_optionalChain([containerRef, 'access', _268 => _268.current, 'optionalAccess', _269 => _269.contains, 'call', _270 => _270(e.target)])) {
13771
13812
  e.preventDefault();
13772
13813
  }
13773
13814
  },
@@ -14052,7 +14093,7 @@ var Textarea = React50.forwardRef(
14052
14093
  "button",
14053
14094
  {
14054
14095
  type: "button",
14055
- "aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess', _269 => _269["aria-label"]]), () => ( "Submit")),
14096
+ "aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess', _271 => _271["aria-label"]]), () => ( "Submit")),
14056
14097
  ...endIconButtonProps,
14057
14098
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
14058
14099
  // `h-6` matches the textarea's `leading-6` line box so the icon's
@@ -14066,7 +14107,7 @@ var Textarea = React50.forwardRef(
14066
14107
  "cursor-pointer hover:text-ods-text-primary",
14067
14108
  "focus-visible:outline-none focus-visible:text-ods-accent",
14068
14109
  "disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:text-ods-text-secondary",
14069
- _optionalChain([endIconButtonProps, 'optionalAccess', _270 => _270.className])
14110
+ _optionalChain([endIconButtonProps, 'optionalAccess', _272 => _272.className])
14070
14111
  ),
14071
14112
  children: endIcon
14072
14113
  }
@@ -15303,19 +15344,19 @@ function TabNavigation({
15303
15344
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
15304
15345
  const getInitialTab = () => {
15305
15346
  if (isUrlSyncEnabled) {
15306
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _271 => _271.get, 'call', _272 => _272(paramName)]) || "";
15347
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _273 => _273.get, 'call', _274 => _274(paramName)]) || "";
15307
15348
  if (validTabIds.has(fromUrl)) {
15308
15349
  return fromUrl;
15309
15350
  }
15310
15351
  }
15311
- return defaultTab || _optionalChain([tabs, 'access', _273 => _273[0], 'optionalAccess', _274 => _274.id]) || "";
15352
+ return defaultTab || _optionalChain([tabs, 'access', _275 => _275[0], 'optionalAccess', _276 => _276.id]) || "";
15312
15353
  };
15313
15354
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
15314
15355
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
15315
15356
  _react.useEffect.call(void 0, () => {
15316
15357
  if (!isUrlSyncEnabled) return;
15317
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _275 => _275.get, 'call', _276 => _276(paramName)]) || "";
15318
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _277 => _277[0], 'optionalAccess', _278 => _278.id]) || "";
15358
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _277 => _277.get, 'call', _278 => _278(paramName)]) || "";
15359
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _279 => _279[0], 'optionalAccess', _280 => _280.id]) || "";
15319
15360
  if (nextTab !== internalActiveTab) {
15320
15361
  setInternalActiveTab(nextTab);
15321
15362
  }
@@ -15323,13 +15364,13 @@ function TabNavigation({
15323
15364
  const handleTabChange = (tabId) => {
15324
15365
  if (isUrlSyncEnabled) {
15325
15366
  setInternalActiveTab(tabId);
15326
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _279 => _279.toString, 'call', _280 => _280()]));
15367
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _281 => _281.toString, 'call', _282 => _282()]));
15327
15368
  params.set(paramName, tabId);
15328
15369
  const method = replaceState ? "replace" : "push";
15329
15370
  router[method](`${pathname}?${params.toString()}`);
15330
- _optionalChain([controlledOnTabChange, 'optionalCall', _281 => _281(tabId)]);
15371
+ _optionalChain([controlledOnTabChange, 'optionalCall', _283 => _283(tabId)]);
15331
15372
  } else {
15332
- _optionalChain([controlledOnTabChange, 'optionalCall', _282 => _282(tabId)]);
15373
+ _optionalChain([controlledOnTabChange, 'optionalCall', _284 => _284(tabId)]);
15333
15374
  }
15334
15375
  };
15335
15376
  const scrollRef = _react.useRef.call(void 0, null);
@@ -15417,7 +15458,7 @@ function TabNavigation({
15417
15458
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
15418
15459
  var getTabComponent = (tabs, tabId) => {
15419
15460
  const tab = getTabById(tabs, tabId);
15420
- return _optionalChain([tab, 'optionalAccess', _283 => _283.component]) || null;
15461
+ return _optionalChain([tab, 'optionalAccess', _285 => _285.component]) || null;
15421
15462
  };
15422
15463
 
15423
15464
  // src/components/ui/alert.tsx
@@ -15668,13 +15709,13 @@ var SocialEmbedCache = class _SocialEmbedCache {
15668
15709
  errorData = await response.json();
15669
15710
  } catch (e19) {
15670
15711
  }
15671
- if (response.status === 404 && _optionalChain([errorData, 'optionalAccess', _284 => _284.error]) && _optionalChain([errorData, 'optionalAccess', _285 => _285.message])) {
15712
+ if (response.status === 404 && _optionalChain([errorData, 'optionalAccess', _286 => _286.error]) && _optionalChain([errorData, 'optionalAccess', _287 => _287.message])) {
15672
15713
  console.log(`\u{1F6AB} [${platformName} Proxy] Content unavailable: ${errorData.message}`);
15673
15714
  onError(errorData.message);
15674
15715
  onLoading(false);
15675
15716
  return;
15676
15717
  }
15677
- if (_optionalChain([errorData, 'optionalAccess', _286 => _286.error])) {
15718
+ if (_optionalChain([errorData, 'optionalAccess', _288 => _288.error])) {
15678
15719
  throw new Error(`Server error: ${errorData.error}`);
15679
15720
  }
15680
15721
  throw new Error(`Server proxy failed: ${response.status}`);
@@ -16126,7 +16167,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16126
16167
  apiEndpoint: redditProxyUrl,
16127
16168
  dataValidator: validateRedditData,
16128
16169
  onDataUpdate: (data) => {
16129
- if (_optionalChain([data, 'access', _287 => _287[0], 'optionalAccess', _288 => _288.data, 'optionalAccess', _289 => _289.children, 'optionalAccess', _290 => _290[0], 'optionalAccess', _291 => _291.data])) {
16170
+ if (_optionalChain([data, 'access', _289 => _289[0], 'optionalAccess', _290 => _290.data, 'optionalAccess', _291 => _291.children, 'optionalAccess', _292 => _292[0], 'optionalAccess', _293 => _293.data])) {
16130
16171
  setRedditData(data[0].data.children[0].data);
16131
16172
  }
16132
16173
  },
@@ -16197,11 +16238,11 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16197
16238
  gallery_data: redditData.gallery_data,
16198
16239
  media_metadata: redditData.media_metadata
16199
16240
  });
16200
- const video = _optionalChain([redditData, 'access', _292 => _292.media, 'optionalAccess', _293 => _293.reddit_video]) || _optionalChain([redditData, 'access', _294 => _294.secure_media, 'optionalAccess', _295 => _295.reddit_video]);
16241
+ const video = _optionalChain([redditData, 'access', _294 => _294.media, 'optionalAccess', _295 => _295.reddit_video]) || _optionalChain([redditData, 'access', _296 => _296.secure_media, 'optionalAccess', _297 => _297.reddit_video]);
16201
16242
  if (video && video.fallback_url) {
16202
16243
  console.log("\u{1F4F9} Found Reddit video:", video);
16203
16244
  let posterUrl = "";
16204
- if (_optionalChain([redditData, 'access', _296 => _296.preview, 'optionalAccess', _297 => _297.images, 'optionalAccess', _298 => _298[0], 'optionalAccess', _299 => _299.source, 'optionalAccess', _300 => _300.url])) {
16245
+ if (_optionalChain([redditData, 'access', _298 => _298.preview, 'optionalAccess', _299 => _299.images, 'optionalAccess', _300 => _300[0], 'optionalAccess', _301 => _301.source, 'optionalAccess', _302 => _302.url])) {
16205
16246
  posterUrl = redditData.preview.images[0].source.url.replace(/&amp;/g, "&");
16206
16247
  console.log("\u2705 Using preview image as video poster:", posterUrl);
16207
16248
  } else {
@@ -16254,7 +16295,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16254
16295
  return media;
16255
16296
  }
16256
16297
  }
16257
- if (_optionalChain([redditData, 'access', _301 => _301.preview, 'optionalAccess', _302 => _302.images, 'optionalAccess', _303 => _303[0]]) && !redditData.is_video) {
16298
+ if (_optionalChain([redditData, 'access', _303 => _303.preview, 'optionalAccess', _304 => _304.images, 'optionalAccess', _305 => _305[0]]) && !redditData.is_video) {
16258
16299
  const imageData = redditData.preview.images[0];
16259
16300
  console.log("\u{1F5BC}\uFE0F Found preview image data:", imageData);
16260
16301
  let source = imageData.source;
@@ -16289,7 +16330,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16289
16330
  } else if (directUrl.match(/\.(mp4|webm|mov|avi)(\?.*)?$/i)) {
16290
16331
  console.log("\u{1F3AC} Found direct video URL");
16291
16332
  let posterUrl = "";
16292
- if (_optionalChain([redditData, 'access', _304 => _304.preview, 'optionalAccess', _305 => _305.images, 'optionalAccess', _306 => _306[0], 'optionalAccess', _307 => _307.source, 'optionalAccess', _308 => _308.url])) {
16333
+ if (_optionalChain([redditData, 'access', _306 => _306.preview, 'optionalAccess', _307 => _307.images, 'optionalAccess', _308 => _308[0], 'optionalAccess', _309 => _309.source, 'optionalAccess', _310 => _310.url])) {
16293
16334
  posterUrl = redditData.preview.images[0].source.url.replace(/&amp;/g, "&");
16294
16335
  }
16295
16336
  media.push({
@@ -16302,7 +16343,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16302
16343
  });
16303
16344
  } else if (directUrl.includes("imgur.com") && !directUrl.includes(".gifv")) {
16304
16345
  console.log("\u{1F310} Found Imgur link");
16305
- const imgurId = _optionalChain([directUrl, 'access', _309 => _309.match, 'call', _310 => _310(/imgur\.com\/([a-zA-Z0-9]+)/), 'optionalAccess', _311 => _311[1]]);
16346
+ const imgurId = _optionalChain([directUrl, 'access', _311 => _311.match, 'call', _312 => _312(/imgur\.com\/([a-zA-Z0-9]+)/), 'optionalAccess', _313 => _313[1]]);
16306
16347
  if (imgurId && !directUrl.includes("/a/") && !directUrl.includes("/gallery/")) {
16307
16348
  media.push({
16308
16349
  type: "image",
@@ -16451,7 +16492,7 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
16451
16492
  const [loading, setLoading] = _react.useState.call(void 0, true);
16452
16493
  const [error, setError] = _react.useState.call(void 0, null);
16453
16494
  const initializationDone = _react.useRef.call(void 0, false);
16454
- const extractedTweetId = tweetId || _optionalChain([url, 'access', _312 => _312.match, 'call', _313 => _313(/status\/(\d+)/), 'optionalAccess', _314 => _314[1]]);
16495
+ const extractedTweetId = tweetId || _optionalChain([url, 'access', _314 => _314.match, 'call', _315 => _315(/status\/(\d+)/), 'optionalAccess', _316 => _316[1]]);
16455
16496
  const tweetUrl = url.includes("twitter.com") || url.includes("x.com") ? url : `https://twitter.com/twitter/status/${extractedTweetId}`;
16456
16497
  _react.useEffect.call(void 0, () => {
16457
16498
  if (initializationDone.current) return;
@@ -16518,10 +16559,10 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
16518
16559
  const parser = new DOMParser();
16519
16560
  const doc = parser.parseFromString(tweetData.html, "text/html");
16520
16561
  const blockquote = doc.querySelector("blockquote");
16521
- const fullText = _optionalChain([blockquote, 'optionalAccess', _315 => _315.textContent]) || "";
16562
+ const fullText = _optionalChain([blockquote, 'optionalAccess', _317 => _317.textContent]) || "";
16522
16563
  const tweetText = fullText.replace(/- .* \(@.*\).*$/, "").trim();
16523
16564
  const username = tweetData.author_url ? tweetData.author_url.split("/").pop() : "";
16524
- const links = Array.from(_optionalChain([blockquote, 'optionalAccess', _316 => _316.querySelectorAll, 'call', _317 => _317("a")]) || []).map((link) => ({
16565
+ const links = Array.from(_optionalChain([blockquote, 'optionalAccess', _318 => _318.querySelectorAll, 'call', _319 => _319("a")]) || []).map((link) => ({
16525
16566
  url: link.href,
16526
16567
  text: link.textContent || link.href
16527
16568
  })).filter((link) => !link.url.includes("twitter.com") && !link.url.includes("x.com"));
@@ -16776,7 +16817,7 @@ var OGLinkPreview = ({
16776
16817
  const response = await fetch(endpoint);
16777
16818
  if (response.ok) {
16778
16819
  const data = await response.json();
16779
- if (_optionalChain([data, 'optionalAccess', _318 => _318.title]) && data.title !== "Link Preview Unavailable") {
16820
+ if (_optionalChain([data, 'optionalAccess', _320 => _320.title]) && data.title !== "Link Preview Unavailable") {
16780
16821
  setOgData(data);
16781
16822
  } else {
16782
16823
  setError(true);
@@ -16803,8 +16844,8 @@ var OGLinkPreview = ({
16803
16844
  type: "website",
16804
16845
  favicon: `https://www.google.com/s2/favicons?domain=${domain}&sz=32`
16805
16846
  } : null)));
16806
- const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess', _319 => _319.title]) ? buildPlaceholderUrl(effectiveData.title, effectiveData.siteName || domain) : null;
16807
- const resolvedImageUrl = _optionalChain([effectiveData, 'optionalAccess', _320 => _320.image]) && !imageError ? effectiveData.image : _optionalChain([effectiveData, 'optionalAccess', _321 => _321.originalImage]) && !originalImageError ? effectiveData.originalImage : fallbackImage && !fallbackImageError ? fallbackImage : placeholderImageUrl;
16847
+ const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess', _321 => _321.title]) ? buildPlaceholderUrl(effectiveData.title, effectiveData.siteName || domain) : null;
16848
+ const resolvedImageUrl = _optionalChain([effectiveData, 'optionalAccess', _322 => _322.image]) && !imageError ? effectiveData.image : _optionalChain([effectiveData, 'optionalAccess', _323 => _323.originalImage]) && !originalImageError ? effectiveData.originalImage : fallbackImage && !fallbackImageError ? fallbackImage : placeholderImageUrl;
16808
16849
  const hasImage = !!resolvedImageUrl;
16809
16850
  const isFallbackImage = resolvedImageUrl === fallbackImage;
16810
16851
  const isPlaceholder = resolvedImageUrl === placeholderImageUrl && !isFallbackImage;
@@ -17050,9 +17091,9 @@ function toFigmaEmbedUrl(url, opts) {
17050
17091
  if (match2) {
17051
17092
  const [, urlType, fileKey, titleSlug, queryString] = match2;
17052
17093
  const isSlides = urlType === "slides" || urlType === "deck";
17053
- const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess', _322 => _322.slidesView]) === "browse" ? "slides" : "deck" : "design";
17094
+ const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess', _324 => _324.slidesView]) === "browse" ? "slides" : "deck" : "design";
17054
17095
  const pathSuffix = titleSlug ? `/${titleSlug}` : "";
17055
- const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess', _323 => _323.replace, 'call', _324 => _324(/^\?/, "")]) || "");
17096
+ const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess', _325 => _325.replace, 'call', _326 => _326(/^\?/, "")]) || "");
17056
17097
  if (!params.has("embed-host")) {
17057
17098
  params.set("embed-host", "flamingo");
17058
17099
  }
@@ -17133,7 +17174,7 @@ function EmbedIframe({
17133
17174
  allow,
17134
17175
  referrerPolicy,
17135
17176
  loading,
17136
- allowFullScreen: _optionalChain([allow, 'optionalAccess', _325 => _325.includes, 'call', _326 => _326("fullscreen")]) ? void 0 : allowFullScreen
17177
+ allowFullScreen: _optionalChain([allow, 'optionalAccess', _327 => _327.includes, 'call', _328 => _328("fullscreen")]) ? void 0 : allowFullScreen
17137
17178
  },
17138
17179
  src
17139
17180
  )
@@ -17884,7 +17925,7 @@ var RichMarkdownInner = ({
17884
17925
  const extractText2 = (node) => {
17885
17926
  if (typeof node === "string") return node;
17886
17927
  if (Array.isArray(node)) return node.map(extractText2).join("");
17887
- if (_optionalChain([node, 'optionalAccess', _327 => _327.props, 'optionalAccess', _328 => _328.children])) return extractText2(node.props.children);
17928
+ if (_optionalChain([node, 'optionalAccess', _329 => _329.props, 'optionalAccess', _330 => _330.children])) return extractText2(node.props.children);
17888
17929
  return "";
17889
17930
  };
17890
17931
  const text = extractText2(children);
@@ -17900,7 +17941,7 @@ var RichMarkdownInner = ({
17900
17941
  const extractText2 = (node) => {
17901
17942
  if (typeof node === "string") return node;
17902
17943
  if (Array.isArray(node)) return node.map(extractText2).join("");
17903
- if (_optionalChain([node, 'optionalAccess', _329 => _329.props, 'optionalAccess', _330 => _330.children])) return extractText2(node.props.children);
17944
+ if (_optionalChain([node, 'optionalAccess', _331 => _331.props, 'optionalAccess', _332 => _332.children])) return extractText2(node.props.children);
17904
17945
  return "";
17905
17946
  };
17906
17947
  const text = extractText2(children);
@@ -17918,7 +17959,7 @@ var RichMarkdownInner = ({
17918
17959
  const extractText2 = (node) => {
17919
17960
  if (typeof node === "string") return node;
17920
17961
  if (Array.isArray(node)) return node.map(extractText2).join("");
17921
- if (_optionalChain([node, 'optionalAccess', _331 => _331.props, 'optionalAccess', _332 => _332.children])) return extractText2(node.props.children);
17962
+ if (_optionalChain([node, 'optionalAccess', _333 => _333.props, 'optionalAccess', _334 => _334.children])) return extractText2(node.props.children);
17922
17963
  return "";
17923
17964
  };
17924
17965
  const text = extractText2(children);
@@ -17936,7 +17977,7 @@ var RichMarkdownInner = ({
17936
17977
  const extractText2 = (node) => {
17937
17978
  if (typeof node === "string") return node;
17938
17979
  if (Array.isArray(node)) return node.map(extractText2).join("");
17939
- if (_optionalChain([node, 'optionalAccess', _333 => _333.props, 'optionalAccess', _334 => _334.children])) return extractText2(node.props.children);
17980
+ if (_optionalChain([node, 'optionalAccess', _335 => _335.props, 'optionalAccess', _336 => _336.children])) return extractText2(node.props.children);
17940
17981
  return "";
17941
17982
  };
17942
17983
  const text = extractText2(children);
@@ -17954,7 +17995,7 @@ var RichMarkdownInner = ({
17954
17995
  const extractText2 = (node) => {
17955
17996
  if (typeof node === "string") return node;
17956
17997
  if (Array.isArray(node)) return node.map(extractText2).join("");
17957
- if (_optionalChain([node, 'optionalAccess', _335 => _335.props, 'optionalAccess', _336 => _336.children])) return extractText2(node.props.children);
17998
+ if (_optionalChain([node, 'optionalAccess', _337 => _337.props, 'optionalAccess', _338 => _338.children])) return extractText2(node.props.children);
17958
17999
  return "";
17959
18000
  };
17960
18001
  const text = extractText2(children);
@@ -17972,7 +18013,7 @@ var RichMarkdownInner = ({
17972
18013
  const extractText2 = (node) => {
17973
18014
  if (typeof node === "string") return node;
17974
18015
  if (Array.isArray(node)) return node.map(extractText2).join("");
17975
- if (_optionalChain([node, 'optionalAccess', _337 => _337.props, 'optionalAccess', _338 => _338.children])) return extractText2(node.props.children);
18016
+ if (_optionalChain([node, 'optionalAccess', _339 => _339.props, 'optionalAccess', _340 => _340.children])) return extractText2(node.props.children);
17976
18017
  return "";
17977
18018
  };
17978
18019
  const text = extractText2(children);
@@ -18048,8 +18089,8 @@ var RichMarkdownInner = ({
18048
18089
  {
18049
18090
  href,
18050
18091
  className: `text-ods-accent no-underline relative transition-colors duration-200 hover:after:w-full after:content-[''] after:absolute after:w-0 after:h-0.5 after:-bottom-0.5 after:left-0 after:bg-ods-accent after:transition-all after:duration-300 ${className2 || ""}`,
18051
- target: _optionalChain([href, 'optionalAccess', _339 => _339.startsWith, 'call', _340 => _340("http")]) ? "_blank" : void 0,
18052
- rel: _optionalChain([href, 'optionalAccess', _341 => _341.startsWith, 'call', _342 => _342("http")]) ? "noopener noreferrer" : void 0,
18092
+ target: _optionalChain([href, 'optionalAccess', _341 => _341.startsWith, 'call', _342 => _342("http")]) ? "_blank" : void 0,
18093
+ rel: _optionalChain([href, 'optionalAccess', _343 => _343.startsWith, 'call', _344 => _344("http")]) ? "noopener noreferrer" : void 0,
18053
18094
  children
18054
18095
  }
18055
18096
  );
@@ -18173,7 +18214,7 @@ function ReleaseChangelogSection({
18173
18214
  className: "overflow-hidden transition-[max-height] duration-500",
18174
18215
  style: {
18175
18216
  transitionTimingFunction: "cubic-bezier(0.33, 1, 0.68, 1)",
18176
- maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _343 => _343.current, 'optionalAccess', _344 => _344.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
18217
+ maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _345 => _345.current, 'optionalAccess', _346 => _346.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
18177
18218
  ...previewNeedsFade && !previewExpanded ? {
18178
18219
  maskImage: "linear-gradient(to bottom, black 30%, transparent 100%)",
18179
18220
  WebkitMaskImage: "linear-gradient(to bottom, black 30%, transparent 100%)"
@@ -18610,16 +18651,16 @@ function FilterModal({
18610
18651
  };
18611
18652
  const handleReset = () => {
18612
18653
  onFilterChange({});
18613
- _optionalChain([onTagsChange, 'optionalCall', _345 => _345([])]);
18654
+ _optionalChain([onTagsChange, 'optionalCall', _347 => _347([])]);
18614
18655
  onClose();
18615
18656
  };
18616
18657
  const handleApply = () => {
18617
18658
  onFilterChange(selectedFilters);
18618
- _optionalChain([onTagsChange, 'optionalCall', _346 => _346(pendingTags)]);
18659
+ _optionalChain([onTagsChange, 'optionalCall', _348 => _348(pendingTags)]);
18619
18660
  onClose();
18620
18661
  };
18621
18662
  const getColumnDirection = (columnKey) => {
18622
- return _optionalChain([sortConfig, 'optionalAccess', _347 => _347.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
18663
+ return _optionalChain([sortConfig, 'optionalAccess', _349 => _349.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
18623
18664
  };
18624
18665
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
18625
18666
  const hasFilterGroups = filterGroups.length > 0;
@@ -18668,7 +18709,7 @@ function FilterModal({
18668
18709
  {
18669
18710
  column,
18670
18711
  currentDirection: getColumnDirection(column.key),
18671
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _348 => _348(column.key, direction)]),
18712
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _350 => _350(column.key, direction)]),
18672
18713
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
18673
18714
  },
18674
18715
  column.key
@@ -18846,7 +18887,7 @@ function IconButtonsVariant({
18846
18887
  }) {
18847
18888
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
18848
18889
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
18849
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _349 => _349[0], 'access', _350 => _350.submenu, 'optionalAccess', _351 => _351.length]);
18890
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _351 => _351[0], 'access', _352 => _352.submenu, 'optionalAccess', _353 => _353.length]);
18850
18891
  const singleAction = isSingleAction ? actions[0] : null;
18851
18892
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
18852
18893
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -20002,7 +20043,7 @@ function getShellIcon(shellType) {
20002
20043
  if (!shellType) return void 0;
20003
20044
  const normalized = shellType.toUpperCase();
20004
20045
  const shellDef = SHELL_TYPES.find((s) => s.id === normalized);
20005
- return _optionalChain([shellDef, 'optionalAccess', _352 => _352.icon]);
20046
+ return _optionalChain([shellDef, 'optionalAccess', _354 => _354.icon]);
20006
20047
  }
20007
20048
 
20008
20049
  // src/types/os.types.ts
@@ -20075,7 +20116,7 @@ function getOSIcon(osType) {
20075
20116
  const normalized = normalizeOSType(osType);
20076
20117
  if (!normalized) return void 0;
20077
20118
  const osTypeDef = OS_TYPES.find((t) => t.id === normalized);
20078
- return _optionalChain([osTypeDef, 'optionalAccess', _353 => _353.icon]);
20119
+ return _optionalChain([osTypeDef, 'optionalAccess', _355 => _355.icon]);
20079
20120
  }
20080
20121
  function getOSTypeDefinition(osType) {
20081
20122
  if (!osType) return void 0;
@@ -20085,7 +20126,7 @@ function getOSTypeDefinition(osType) {
20085
20126
  }
20086
20127
  function getOSPlatformId(osType) {
20087
20128
  const osTypeDef = getOSTypeDefinition(osType);
20088
- return _optionalChain([osTypeDef, 'optionalAccess', _354 => _354.platformId]);
20129
+ return _optionalChain([osTypeDef, 'optionalAccess', _356 => _356.platformId]);
20089
20130
  }
20090
20131
  function isOSPlatform(deviceOS, targetPlatform) {
20091
20132
  if (!deviceOS || !targetPlatform) return false;
@@ -20178,10 +20219,10 @@ var GENERIC_EMAIL_DOMAINS = [
20178
20219
  ];
20179
20220
  function extractDomainFromEmail(email) {
20180
20221
  if (!email || !email.includes("@")) return null;
20181
- return _optionalChain([email, 'access', _355 => _355.split, 'call', _356 => _356("@"), 'access', _357 => _357[1], 'optionalAccess', _358 => _358.toLowerCase, 'call', _359 => _359()]) || null;
20222
+ return _optionalChain([email, 'access', _357 => _357.split, 'call', _358 => _358("@"), 'access', _359 => _359[1], 'optionalAccess', _360 => _360.toLowerCase, 'call', _361 => _361()]) || null;
20182
20223
  }
20183
20224
  function normalizeDomain(domain) {
20184
- return _optionalChain([domain, 'optionalAccess', _360 => _360.toLowerCase, 'call', _361 => _361(), 'access', _362 => _362.replace, 'call', _363 => _363(/^https?:\/\//, ""), 'access', _364 => _364.replace, 'call', _365 => _365(/^www\./, ""), 'access', _366 => _366.split, 'call', _367 => _367("/"), 'access', _368 => _368[0], 'access', _369 => _369.trim, 'call', _370 => _370()]) || "";
20225
+ return _optionalChain([domain, 'optionalAccess', _362 => _362.toLowerCase, 'call', _363 => _363(), 'access', _364 => _364.replace, 'call', _365 => _365(/^https?:\/\//, ""), 'access', _366 => _366.replace, 'call', _367 => _367(/^www\./, ""), 'access', _368 => _368.split, 'call', _369 => _369("/"), 'access', _370 => _370[0], 'access', _371 => _371.trim, 'call', _372 => _372()]) || "";
20185
20226
  }
20186
20227
  function isGenericDomain(domain) {
20187
20228
  const normalized = normalizeDomain(domain);
@@ -20615,7 +20656,7 @@ function defaultTableIdForDocumentType(documentType) {
20615
20656
 
20616
20657
  // src/utils/sse-decision-frame.ts
20617
20658
  async function readLeadingDecisionFrame(response) {
20618
- const reader = _optionalChain([response, 'access', _371 => _371.body, 'optionalAccess', _372 => _372.getReader, 'call', _373 => _373()]);
20659
+ const reader = _optionalChain([response, 'access', _373 => _373.body, 'optionalAccess', _374 => _374.getReader, 'call', _375 => _375()]);
20619
20660
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
20620
20661
  const decoder = new TextDecoder();
20621
20662
  let buffer = "";
@@ -20644,9 +20685,9 @@ async function readLeadingDecisionFrame(response) {
20644
20685
  );
20645
20686
  }
20646
20687
  const obj = parsed;
20647
- if (_optionalChain([obj, 'optionalAccess', _374 => _374.kind]) !== "decision_resolved") {
20688
+ if (_optionalChain([obj, 'optionalAccess', _376 => _376.kind]) !== "decision_resolved") {
20648
20689
  throw new Error(
20649
- `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _375 => _375.kind]))}`
20690
+ `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _377 => _377.kind]))}`
20650
20691
  );
20651
20692
  }
20652
20693
  frame = normalizeDecisionFrame(obj);
@@ -20687,7 +20728,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
20687
20728
  function buildAutoContinuationDirective(toolName, opts = {}) {
20688
20729
  const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
20689
20730
  const ticketHash = opts.ticketId ? ` #${opts.ticketId}` : "";
20690
- const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _376 => _376.status, 'optionalAccess', _377 => _377.toUpperCase, 'call', _378 => _378()]) === "CLOSED";
20731
+ const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _378 => _378.status, 'optionalAccess', _379 => _379.toUpperCase, 'call', _380 => _380()]) === "CLOSED";
20691
20732
  if (toolName === "create_ticket") {
20692
20733
  return `${AUTO_CONTINUATION_DIRECTIVE_PREFIX} The user just approved create_ticket${ticketRef}. Per ticket-protocol \xA71a, ask 2-4 SHORT, issue-specific diagnostic follow-up questions tailored to the symptom they reported in their original message. When they answer, propose an update_ticket with content_addendum carrying a clean Q&A digest. Do NOT call any tool in this turn \u2014 just write the questions as prose.`;
20693
20734
  }
@@ -20749,7 +20790,7 @@ function formatSingularLookupInvocation(cmdId, value) {
20749
20790
  return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
20750
20791
  }
20751
20792
  function extractEntityIdFilter(override, expectedTableId) {
20752
- const f = _optionalChain([override, 'optionalAccess', _379 => _379.entityIdFilter]);
20793
+ const f = _optionalChain([override, 'optionalAccess', _381 => _381.entityIdFilter]);
20753
20794
  if (!f) return null;
20754
20795
  const tableId = typeof f.tableId === "string" ? f.tableId : "";
20755
20796
  const id = typeof f.id === "string" ? f.id : "";
@@ -20824,7 +20865,7 @@ function getTaskTypeLabel(customItemId) {
20824
20865
 
20825
20866
  // src/components/chat/utils/agent-status-message.ts
20826
20867
  function getStatusColorScheme(status) {
20827
- const s = _optionalChain([status, 'optionalAccess', _380 => _380.toLowerCase, 'call', _381 => _381()]) || "";
20868
+ const s = _optionalChain([status, 'optionalAccess', _382 => _382.toLowerCase, 'call', _383 => _383()]) || "";
20828
20869
  switch (status) {
20829
20870
  case "completed":
20830
20871
  case "success":
@@ -21106,10 +21147,10 @@ var CONTENT_REF_GROUPS = {
21106
21147
  what_i_shipped: { label: "What I Shipped", order: 10, layout: "grid", gridSize: "default" }
21107
21148
  };
21108
21149
  function getContentRefLabel(type) {
21109
- return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _382 => _382[type], 'optionalAccess', _383 => _383.label]), () => ( null));
21150
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _384 => _384[type], 'optionalAccess', _385 => _385.label]), () => ( null));
21110
21151
  }
21111
21152
  function getContentRefLabelOrTitleCase(type) {
21112
- return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _384 => _384[type], 'optionalAccess', _385 => _385.label]), () => ( type.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())));
21153
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _386 => _386[type], 'optionalAccess', _387 => _387.label]), () => ( type.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())));
21113
21154
  }
21114
21155
  function orderContentRefTypes(present) {
21115
21156
  const presentSet = new Set(present);
@@ -21268,7 +21309,7 @@ function getDocSourceDefaultPath(structure, folderIndexFile = DEFAULT_FOLDER_IND
21268
21309
  const firstFolderWithReadme = structure.find(
21269
21310
  (node) => node.type === "folder" && node.hasReadme && !!node.path
21270
21311
  );
21271
- return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _386 => _386.path]), () => ( null));
21312
+ return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _388 => _388.path]), () => ( null));
21272
21313
  }
21273
21314
 
21274
21315
  // src/utils/doc-path-utils.ts
@@ -21279,7 +21320,7 @@ function pathToNodeId(path) {
21279
21320
  return path.replace(/[\/\s]/g, "-").toLowerCase();
21280
21321
  }
21281
21322
  function normalizeDocPath(segments, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE) {
21282
- const lowerPath = (_optionalChain([segments, 'optionalAccess', _387 => _387.join, 'call', _388 => _388("/")]) || "").toLowerCase();
21323
+ const lowerPath = (_optionalChain([segments, 'optionalAccess', _389 => _389.join, 'call', _390 => _390("/")]) || "").toLowerCase();
21283
21324
  const lowerIndex = folderIndexFile.toLowerCase();
21284
21325
  const suffix = `/${lowerIndex}`;
21285
21326
  if (lowerPath.endsWith(suffix)) return lowerPath.slice(0, -suffix.length);
@@ -22101,26 +22142,26 @@ function DeviceCard({
22101
22142
  ] }),
22102
22143
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", title: device.organization, children: device.organization })
22103
22144
  ] }),
22104
- _optionalChain([actions, 'access', _389 => _389.moreButton, 'optionalAccess', _390 => _390.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22145
+ _optionalChain([actions, 'access', _391 => _391.moreButton, 'optionalAccess', _392 => _392.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22105
22146
  "div",
22106
22147
  {
22107
22148
  className: "flex items-center justify-center p-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
22108
22149
  onClick: (e) => {
22109
22150
  e.stopPropagation();
22110
- _optionalChain([actions, 'access', _391 => _391.moreButton, 'optionalAccess', _392 => _392.onClick, 'optionalCall', _393 => _393()]);
22151
+ _optionalChain([actions, 'access', _393 => _393.moreButton, 'optionalAccess', _394 => _394.onClick, 'optionalCall', _395 => _395()]);
22111
22152
  },
22112
22153
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22113
22154
  }
22114
22155
  ),
22115
- _optionalChain([actions, 'access', _394 => _394.detailsButton, 'optionalAccess', _395 => _395.visible]) !== false && _optionalChain([actions, 'access', _396 => _396.detailsButton, 'optionalAccess', _397 => _397.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22116
- _optionalChain([actions, 'access', _398 => _398.customActions, 'optionalAccess', _399 => _399.map, 'call', _400 => _400(
22156
+ _optionalChain([actions, 'access', _396 => _396.detailsButton, 'optionalAccess', _397 => _397.visible]) !== false && _optionalChain([actions, 'access', _398 => _398.detailsButton, 'optionalAccess', _399 => _399.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22157
+ _optionalChain([actions, 'access', _400 => _400.customActions, 'optionalAccess', _401 => _401.map, 'call', _402 => _402(
22117
22158
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22118
22159
  "div",
22119
22160
  {
22120
22161
  className: "flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
22121
22162
  onClick: (e) => {
22122
22163
  e.stopPropagation();
22123
- _optionalChain([action, 'access', _401 => _401.onClick, 'optionalCall', _402 => _402()]);
22164
+ _optionalChain([action, 'access', _403 => _403.onClick, 'optionalCall', _404 => _404()]);
22124
22165
  },
22125
22166
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22126
22167
  },
@@ -22620,7 +22661,7 @@ function MoreActionsMenu({
22620
22661
  ] });
22621
22662
  const handleActivate = (e) => {
22622
22663
  e.stopPropagation();
22623
- if (!item.disabled) _optionalChain([item, 'access', _403 => _403.onClick, 'optionalCall', _404 => _404()]);
22664
+ if (!item.disabled) _optionalChain([item, 'access', _405 => _405.onClick, 'optionalCall', _406 => _406()]);
22624
22665
  };
22625
22666
  if (item.href) {
22626
22667
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22687,7 +22728,7 @@ function OrganizationCard({
22687
22728
  const handleActionClick = (e) => {
22688
22729
  e.preventDefault();
22689
22730
  e.stopPropagation();
22690
- _optionalChain([actionButton, 'optionalAccess', _405 => _405.onClick, 'call', _406 => _406(organization, e)]);
22731
+ _optionalChain([actionButton, 'optionalAccess', _407 => _407.onClick, 'call', _408 => _408(organization, e)]);
22691
22732
  };
22692
22733
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22693
22734
  "div",
@@ -23593,10 +23634,10 @@ var getContentDimensions = (config) => {
23593
23634
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
23594
23635
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
23595
23636
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
23596
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _407 => _407.mobileContentDimensions, 'optionalAccess', _408 => _408.width]))), () => ( defaultMobile.width));
23597
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _409 => _409.mobileContentDimensions, 'optionalAccess', _410 => _410.height]))), () => ( defaultMobile.height));
23598
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _411 => _411.desktopContentDimensions, 'optionalAccess', _412 => _412.width]))), () => ( defaultDesktop.width));
23599
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _413 => _413.desktopContentDimensions, 'optionalAccess', _414 => _414.height]))), () => ( defaultDesktop.height));
23637
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _409 => _409.mobileContentDimensions, 'optionalAccess', _410 => _410.width]))), () => ( defaultMobile.width));
23638
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _411 => _411.mobileContentDimensions, 'optionalAccess', _412 => _412.height]))), () => ( defaultMobile.height));
23639
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _413 => _413.desktopContentDimensions, 'optionalAccess', _414 => _414.width]))), () => ( defaultDesktop.width));
23640
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _415 => _415.desktopContentDimensions, 'optionalAccess', _416 => _416.height]))), () => ( defaultDesktop.height));
23600
23641
  return {
23601
23642
  mobile: { width: mobileWidth, height: mobileHeight },
23602
23643
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -23730,7 +23771,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
23730
23771
  const contentDimensions = getContentDimensions(config);
23731
23772
  const mobileHeight = contentDimensions.mobile.height;
23732
23773
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
23733
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _415 => _415.innerHeight]) * 0.85 || 650)}px`;
23774
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _417 => _417.innerHeight]) * 0.85 || 650)}px`;
23734
23775
  })(),
23735
23776
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
23736
23777
  const contentDimensions = getContentDimensions(config);
@@ -23835,7 +23876,7 @@ var FigmaPrototypeViewer = ({
23835
23876
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
23836
23877
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
23837
23878
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
23838
- config.defaultSectionId || _optionalChain([config, 'access', _416 => _416.sections, 'access', _417 => _417[0], 'optionalAccess', _418 => _418.id]) || ""
23879
+ config.defaultSectionId || _optionalChain([config, 'access', _418 => _418.sections, 'access', _419 => _419[0], 'optionalAccess', _420 => _420.id]) || ""
23839
23880
  );
23840
23881
  const activeSection = externalActiveSection || internalActiveSection;
23841
23882
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -23925,7 +23966,7 @@ var FigmaPrototypeViewer = ({
23925
23966
  const handleMessage = (event) => {
23926
23967
  if (event.origin !== "https://www.figma.com") return;
23927
23968
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
23928
- if (_optionalChain([event, 'access', _419 => _419.data, 'optionalAccess', _420 => _420.type]) && validEvents.includes(event.data.type)) {
23969
+ if (_optionalChain([event, 'access', _421 => _421.data, 'optionalAccess', _422 => _422.type]) && validEvents.includes(event.data.type)) {
23929
23970
  const figmaEvent = event.data;
23930
23971
  console.log("[Figma Event]", figmaEvent.type, viewMode);
23931
23972
  switch (figmaEvent.type) {
@@ -23935,19 +23976,19 @@ var FigmaPrototypeViewer = ({
23935
23976
  setIframeState("READY");
23936
23977
  break;
23937
23978
  case "PRESENTED_NODE_CHANGED":
23938
- if (_optionalChain([figmaEvent, 'access', _421 => _421.data, 'optionalAccess', _422 => _422.presentedNodeId])) {
23979
+ if (_optionalChain([figmaEvent, 'access', _423 => _423.data, 'optionalAccess', _424 => _424.presentedNodeId])) {
23939
23980
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
23940
23981
  if (!isNavigating) {
23941
23982
  const matchingSection = config.sections.find((s) => {
23942
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _423 => _423.data, 'optionalAccess', _424 => _424.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _425 => _425.data, 'optionalAccess', _426 => _426.presentedNodeId]);
23943
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _427 => _427.data, 'optionalAccess', _428 => _428.presentedNodeId]) || _optionalChain([s, 'access', _429 => _429.mobileStartingNodeId, 'optionalAccess', _430 => _430.replace, 'call', _431 => _431(":", "-")]) === _optionalChain([figmaEvent, 'access', _432 => _432.data, 'optionalAccess', _433 => _433.presentedNodeId]);
23983
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _425 => _425.data, 'optionalAccess', _426 => _426.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _427 => _427.data, 'optionalAccess', _428 => _428.presentedNodeId]);
23984
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _429 => _429.data, 'optionalAccess', _430 => _430.presentedNodeId]) || _optionalChain([s, 'access', _431 => _431.mobileStartingNodeId, 'optionalAccess', _432 => _432.replace, 'call', _433 => _433(":", "-")]) === _optionalChain([figmaEvent, 'access', _434 => _434.data, 'optionalAccess', _435 => _435.presentedNodeId]);
23944
23985
  return desktopMatch || mobileMatch;
23945
23986
  });
23946
23987
  if (matchingSection && matchingSection.id !== activeSection) {
23947
23988
  if (!externalActiveSection) {
23948
23989
  setInternalActiveSection(matchingSection.id);
23949
23990
  }
23950
- _optionalChain([config, 'access', _434 => _434.onSectionChange, 'optionalCall', _435 => _435(matchingSection.id)]);
23991
+ _optionalChain([config, 'access', _436 => _436.onSectionChange, 'optionalCall', _437 => _437(matchingSection.id)]);
23951
23992
  }
23952
23993
  }
23953
23994
  }
@@ -23960,7 +24001,7 @@ var FigmaPrototypeViewer = ({
23960
24001
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
23961
24002
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
23962
24003
  const section = config.sections.find((s) => s.id === sectionId);
23963
- if (!section || !_optionalChain([iframeRef, 'access', _436 => _436.current, 'optionalAccess', _437 => _437.contentWindow]) || !isInitialized) {
24004
+ if (!section || !_optionalChain([iframeRef, 'access', _438 => _438.current, 'optionalAccess', _439 => _439.contentWindow]) || !isInitialized) {
23964
24005
  return;
23965
24006
  }
23966
24007
  setIsNavigating(true);
@@ -23968,7 +24009,7 @@ var FigmaPrototypeViewer = ({
23968
24009
  if (!externalActiveSection) {
23969
24010
  setInternalActiveSection(sectionId);
23970
24011
  }
23971
- _optionalChain([config, 'access', _438 => _438.onSectionChange, 'optionalCall', _439 => _439(sectionId)]);
24012
+ _optionalChain([config, 'access', _440 => _440.onSectionChange, 'optionalCall', _441 => _441(sectionId)]);
23972
24013
  const command = {
23973
24014
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
23974
24015
  data: { nodeId }
@@ -24288,7 +24329,7 @@ var FiltersDropdown = ({
24288
24329
  defaults[section.id] = section.defaultSelected || [];
24289
24330
  });
24290
24331
  setSelectedFilters(defaults);
24291
- _optionalChain([onReset, 'optionalCall', _440 => _440()]);
24332
+ _optionalChain([onReset, 'optionalCall', _442 => _442()]);
24292
24333
  setIsOpen(false);
24293
24334
  };
24294
24335
  const handleApply = () => {
@@ -24581,7 +24622,7 @@ function MediaGalleryManager({
24581
24622
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
24582
24623
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
24583
24624
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
24584
- const file = _optionalChain([event, 'access', _441 => _441.target, 'access', _442 => _442.files, 'optionalAccess', _443 => _443[0]]);
24625
+ const file = _optionalChain([event, 'access', _443 => _443.target, 'access', _444 => _444.files, 'optionalAccess', _445 => _445[0]]);
24585
24626
  if (!file) return;
24586
24627
  let mediaType;
24587
24628
  if (file.type.startsWith("image/")) {
@@ -24696,7 +24737,7 @@ function MediaGalleryManager({
24696
24737
  {
24697
24738
  type: "button",
24698
24739
  variant: "outline",
24699
- onClick: () => _optionalChain([fileInputRef, 'access', _444 => _444.current, 'optionalAccess', _445 => _445.click, 'call', _446 => _446()]),
24740
+ onClick: () => _optionalChain([fileInputRef, 'access', _446 => _446.current, 'optionalAccess', _447 => _447.click, 'call', _448 => _448()]),
24700
24741
  disabled: isUploading,
24701
24742
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
24702
24743
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -25364,7 +25405,7 @@ function ReleaseMediaManager({
25364
25405
  const fileInputRef = _react.useRef.call(void 0, null);
25365
25406
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
25366
25407
  const handleFileSelect = async (event) => {
25367
- const file = _optionalChain([event, 'access', _447 => _447.target, 'access', _448 => _448.files, 'optionalAccess', _449 => _449[0]]);
25408
+ const file = _optionalChain([event, 'access', _449 => _449.target, 'access', _450 => _450.files, 'optionalAccess', _451 => _451[0]]);
25368
25409
  if (!file) return;
25369
25410
  let mediaType;
25370
25411
  if (file.type.startsWith("image/")) {
@@ -25444,7 +25485,7 @@ function ReleaseMediaManager({
25444
25485
  {
25445
25486
  type: "button",
25446
25487
  variant: "outline",
25447
- onClick: () => _optionalChain([fileInputRef, 'access', _450 => _450.current, 'optionalAccess', _451 => _451.click, 'call', _452 => _452()]),
25488
+ onClick: () => _optionalChain([fileInputRef, 'access', _452 => _452.current, 'optionalAccess', _453 => _453.click, 'call', _454 => _454()]),
25448
25489
  disabled: uploadingIndex !== null,
25449
25490
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
25450
25491
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -25659,7 +25700,7 @@ function SEOEditorPreview({
25659
25700
  const displayImage = hasOgImage || hasFeaturedImage;
25660
25701
  const handleImageUpload = async (event) => {
25661
25702
  if (!onOgImageUpload) return;
25662
- const file = _optionalChain([event, 'access', _453 => _453.target, 'access', _454 => _454.files, 'optionalAccess', _455 => _455[0]]);
25703
+ const file = _optionalChain([event, 'access', _455 => _455.target, 'access', _456 => _456.files, 'optionalAccess', _457 => _457[0]]);
25663
25704
  if (!file) return;
25664
25705
  setIsUploading(true);
25665
25706
  try {
@@ -25809,7 +25850,7 @@ function SEOEditorPreview({
25809
25850
  type: "button",
25810
25851
  variant: "outline",
25811
25852
  size: "icon",
25812
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _456 => _456.click, 'call', _457 => _457()]),
25853
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _458 => _458.click, 'call', _459 => _459()]),
25813
25854
  disabled: disabled || isUploading,
25814
25855
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
25815
25856
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -25832,7 +25873,7 @@ function SEOEditorPreview({
25832
25873
  "div",
25833
25874
  {
25834
25875
  className: "h-full min-h-[280px] border-2 border-dashed border-ods-border rounded-lg flex flex-col items-center justify-center cursor-pointer hover:border-ods-accent transition-colors bg-ods-bg-hover",
25835
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _458 => _458.click, 'call', _459 => _459()]),
25876
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _460 => _460.click, 'call', _461 => _461()]),
25836
25877
  children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
25837
25878
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
25838
25879
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-ods-text-secondary font-['DM_Sans']", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -25917,7 +25958,7 @@ function SocialLinksManager({
25917
25958
  className = ""
25918
25959
  }) {
25919
25960
  const addLink = () => {
25920
- const firstPlatform = _optionalChain([platforms, 'access', _460 => _460[0], 'optionalAccess', _461 => _461.name]) || "website";
25961
+ const firstPlatform = _optionalChain([platforms, 'access', _462 => _462[0], 'optionalAccess', _463 => _463.name]) || "website";
25921
25962
  onChange([...links, { platform: firstPlatform, url: "" }]);
25922
25963
  };
25923
25964
  const removeLink = (index) => {
@@ -25929,7 +25970,7 @@ function SocialLinksManager({
25929
25970
  onChange(updated);
25930
25971
  };
25931
25972
  const getIcon = (link, platform) => {
25932
- const iconKey = _optionalChain([platform, 'optionalAccess', _462 => _462.icon_name]) || link.platform;
25973
+ const iconKey = _optionalChain([platform, 'optionalAccess', _464 => _464.icon_name]) || link.platform;
25933
25974
  const IconComponent = iconMap[iconKey];
25934
25975
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
25935
25976
  };
@@ -25954,7 +25995,7 @@ function SocialLinksManager({
25954
25995
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25955
25996
  _chunkQJGRP2YEcjs.Input,
25956
25997
  {
25957
- placeholder: _optionalChain([platform, 'optionalAccess', _463 => _463.placeholder]) || "Profile URL",
25998
+ placeholder: _optionalChain([platform, 'optionalAccess', _465 => _465.placeholder]) || "Profile URL",
25958
25999
  value: link.url,
25959
26000
  onChange: (e) => updateLink(index, "url", e.target.value),
25960
26001
  onKeyDown: (e) => {
@@ -26333,7 +26374,7 @@ function useVideoOriginPreconnect({
26333
26374
  supabaseStorageOrigin
26334
26375
  } = {}) {
26335
26376
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
26336
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _464 => _464.endpoints, 'access', _465 => _465.supabaseStorageOrigin])));
26377
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _466 => _466.endpoints, 'access', _467 => _467.supabaseStorageOrigin])));
26337
26378
  try {
26338
26379
  ReactDOM2.default.preconnect(MUX_STREAM_ORIGIN, { crossOrigin: "anonymous" });
26339
26380
  ReactDOM2.default.preconnect(MUX_IMAGE_ORIGIN, { crossOrigin: "anonymous" });
@@ -26352,13 +26393,13 @@ function useVideoWarmup({
26352
26393
  nearMargin = "1000px"
26353
26394
  } = {}) {
26354
26395
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
26355
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _466 => _466.endpoints, 'access', _467 => _467.supabaseStorageOrigin])));
26396
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _468 => _468.endpoints, 'access', _469 => _469.supabaseStorageOrigin])));
26356
26397
  useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
26357
26398
  const { ref, isNear } = _chunk27IO7V3Pcjs.useNearViewport.call(void 0, nearMargin);
26358
26399
  _react.useEffect.call(void 0, () => {
26359
26400
  if (!isNear || !videoUrl || !resolvedOrigin) return;
26360
26401
  const conn = navigator.connection;
26361
- if (_optionalChain([conn, 'optionalAccess', _468 => _468.saveData]) === true) return;
26402
+ if (_optionalChain([conn, 'optionalAccess', _470 => _470.saveData]) === true) return;
26362
26403
  let videoOrigin;
26363
26404
  try {
26364
26405
  videoOrigin = new URL(videoUrl, "http://placeholder.local").origin;
@@ -26428,7 +26469,7 @@ function VideoSourceSelector({
26428
26469
  input.accept = "video/*";
26429
26470
  input.onchange = async (e) => {
26430
26471
  const target = e.target;
26431
- const file = _optionalChain([target, 'access', _469 => _469.files, 'optionalAccess', _470 => _470[0]]);
26472
+ const file = _optionalChain([target, 'access', _471 => _471.files, 'optionalAccess', _472 => _472[0]]);
26432
26473
  if (!file) return;
26433
26474
  setIsUploading(true);
26434
26475
  setUploadProgress(0);
@@ -26789,7 +26830,7 @@ function TranscriptSummaryEditor({
26789
26830
  {
26790
26831
  id: "subtitles",
26791
26832
  value: subtitles || "",
26792
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _471 => _471(e.target.value)]),
26833
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _473 => _473(e.target.value)]),
26793
26834
  placeholder: subtitlesPlaceholder,
26794
26835
  disabled: disabled || !onSubtitlesChange,
26795
26836
  className: "h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm",
@@ -26942,7 +26983,7 @@ var AIEnrichSection = ({
26942
26983
  }) => {
26943
26984
  const hasResults = status === "success" || status === "error";
26944
26985
  const shouldDisable = disabled || !canEnrich;
26945
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _472 => _472.filter, 'call', _473 => _473((f) => !f.isFilled)]) || [];
26986
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _474 => _474.filter, 'call', _475 => _475((f) => !f.isFilled)]) || [];
26946
26987
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26947
26988
  "div",
26948
26989
  {
@@ -26980,7 +27021,7 @@ var AIEnrichSection = ({
26980
27021
  {
26981
27022
  id: "ai-enrich-custom-instructions",
26982
27023
  value: _nullishCoalesce(customInstructions, () => ( "")),
26983
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _474 => _474(e.target.value)]),
27024
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _476 => _476(e.target.value)]),
26984
27025
  placeholder: customInstructionsPlaceholder,
26985
27026
  disabled: loading,
26986
27027
  maxLength: customInstructionsMaxLength,
@@ -27109,7 +27150,7 @@ function HighlightVideoSection({
27109
27150
  input.accept = "video/*";
27110
27151
  input.onchange = async (e) => {
27111
27152
  const target = e.target;
27112
- const file = _optionalChain([target, 'access', _475 => _475.files, 'optionalAccess', _476 => _476[0]]);
27153
+ const file = _optionalChain([target, 'access', _477 => _477.files, 'optionalAccess', _478 => _478[0]]);
27113
27154
  if (!file) return;
27114
27155
  setUploadError(null);
27115
27156
  try {
@@ -27611,7 +27652,7 @@ function HighlightVideoPreview({
27611
27652
  input.accept = "video/*";
27612
27653
  input.onchange = async (e) => {
27613
27654
  const target = e.target;
27614
- const file = _optionalChain([target, 'access', _477 => _477.files, 'optionalAccess', _478 => _478[0]]);
27655
+ const file = _optionalChain([target, 'access', _479 => _479.files, 'optionalAccess', _480 => _480[0]]);
27615
27656
  if (!file) return;
27616
27657
  await onUpload(file);
27617
27658
  };
@@ -27798,7 +27839,7 @@ function HighlightVideoCombinedSection({
27798
27839
  input.accept = "video/*";
27799
27840
  input.onchange = async (e) => {
27800
27841
  const target = e.target;
27801
- const file = _optionalChain([target, 'access', _479 => _479.files, 'optionalAccess', _480 => _480[0]]);
27842
+ const file = _optionalChain([target, 'access', _481 => _481.files, 'optionalAccess', _482 => _482[0]]);
27802
27843
  if (!file) return;
27803
27844
  await onUpload(file);
27804
27845
  };
@@ -28095,7 +28136,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
28095
28136
  return editMode ? "Set Global Permission" : "";
28096
28137
  }
28097
28138
  const option = approvalLevelOptions.find((opt) => opt.value === level);
28098
- return _optionalChain([option, 'optionalAccess', _481 => _481.label]) || level;
28139
+ return _optionalChain([option, 'optionalAccess', _483 => _483.label]) || level;
28099
28140
  };
28100
28141
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
28101
28142
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b border-ods-border flex gap-4 items-center px-4 py-3", children: [
@@ -28309,12 +28350,12 @@ function PhoneInput({
28309
28350
  const runValidation = _react.useCallback.call(void 0, (phone) => {
28310
28351
  if (!phone || digitCount(phone) === 0) {
28311
28352
  setIsInvalid(false);
28312
- _optionalChain([onValidationChange, 'optionalCall', _482 => _482(false)]);
28353
+ _optionalChain([onValidationChange, 'optionalCall', _484 => _484(false)]);
28313
28354
  return;
28314
28355
  }
28315
28356
  const invalid = !validatePhoneNumber(phone, countryCode);
28316
28357
  setIsInvalid(invalid);
28317
- _optionalChain([onValidationChange, 'optionalCall', _483 => _483(invalid)]);
28358
+ _optionalChain([onValidationChange, 'optionalCall', _485 => _485(invalid)]);
28318
28359
  }, [countryCode, digitCount, onValidationChange]);
28319
28360
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
28320
28361
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -28363,7 +28404,7 @@ function PhoneInput({
28363
28404
  debouncedValidation(val);
28364
28405
  } else if (digitCount(val) === 0) {
28365
28406
  setIsInvalid(false);
28366
- _optionalChain([onValidationChange, 'optionalCall', _484 => _484(false)]);
28407
+ _optionalChain([onValidationChange, 'optionalCall', _486 => _486(false)]);
28367
28408
  }
28368
28409
  }
28369
28410
  },
@@ -28704,19 +28745,19 @@ function NotificationsProvider({
28704
28745
  }, []);
28705
28746
  const markRead = React90.useCallback((id) => {
28706
28747
  dispatch({ type: "markRead", id });
28707
- void _optionalChain([actionsRef, 'access', _485 => _485.current, 'optionalAccess', _486 => _486.onMarkRead, 'optionalCall', _487 => _487(id)]);
28748
+ void _optionalChain([actionsRef, 'access', _487 => _487.current, 'optionalAccess', _488 => _488.onMarkRead, 'optionalCall', _489 => _489(id)]);
28708
28749
  }, []);
28709
28750
  const markAllRead = React90.useCallback(() => {
28710
28751
  dispatch({ type: "markAllRead" });
28711
- void _optionalChain([actionsRef, 'access', _488 => _488.current, 'optionalAccess', _489 => _489.onMarkAllRead, 'optionalCall', _490 => _490()]);
28752
+ void _optionalChain([actionsRef, 'access', _490 => _490.current, 'optionalAccess', _491 => _491.onMarkAllRead, 'optionalCall', _492 => _492()]);
28712
28753
  }, []);
28713
28754
  const markSettled = React90.useCallback((id) => {
28714
28755
  dispatch({ type: "markSettled", id });
28715
- void _optionalChain([actionsRef, 'access', _491 => _491.current, 'optionalAccess', _492 => _492.onMarkSettled, 'optionalCall', _493 => _493(id)]);
28756
+ void _optionalChain([actionsRef, 'access', _493 => _493.current, 'optionalAccess', _494 => _494.onMarkSettled, 'optionalCall', _495 => _495(id)]);
28716
28757
  }, []);
28717
28758
  const remove = React90.useCallback((id) => {
28718
28759
  dispatch({ type: "remove", id });
28719
- void _optionalChain([actionsRef, 'access', _494 => _494.current, 'optionalAccess', _495 => _495.onRemove, 'optionalCall', _496 => _496(id)]);
28760
+ void _optionalChain([actionsRef, 'access', _496 => _496.current, 'optionalAccess', _497 => _497.onRemove, 'optionalCall', _498 => _498(id)]);
28720
28761
  }, []);
28721
28762
  const clear = React90.useCallback(() => dispatch({ type: "clear" }), []);
28722
28763
  const open = React90.useCallback(() => setIsOpen(true), []);
@@ -28725,14 +28766,14 @@ function NotificationsProvider({
28725
28766
  const setShowPopups = React90.useCallback(
28726
28767
  (value2) => {
28727
28768
  setShowPopupsState(value2);
28728
- _optionalChain([onShowPopupsChange, 'optionalCall', _497 => _497(value2)]);
28769
+ _optionalChain([onShowPopupsChange, 'optionalCall', _499 => _499(value2)]);
28729
28770
  },
28730
28771
  [onShowPopupsChange]
28731
28772
  );
28732
28773
  const setShowDesktopPopups = React90.useCallback(
28733
28774
  (value2) => {
28734
28775
  setShowDesktopPopupsState(value2);
28735
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _498 => _498(value2)]);
28776
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _500 => _500(value2)]);
28736
28777
  },
28737
28778
  [onShowDesktopPopupsChange]
28738
28779
  );
@@ -28836,7 +28877,7 @@ function NotificationTile({
28836
28877
  if (!counting) return;
28837
28878
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
28838
28879
  const timer = window.setTimeout(() => {
28839
- _optionalChain([onSettle, 'optionalCall', _499 => _499(id)]);
28880
+ _optionalChain([onSettle, 'optionalCall', _501 => _501(id)]);
28840
28881
  }, remaining);
28841
28882
  return () => window.clearTimeout(timer);
28842
28883
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -28898,7 +28939,7 @@ function NotificationTile({
28898
28939
  "button",
28899
28940
  {
28900
28941
  type: "button",
28901
- onClick: () => _optionalChain([onSettle, 'optionalCall', _500 => _500(id)]),
28942
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _502 => _502(id)]),
28902
28943
  "aria-label": "Dismiss notification",
28903
28944
  tabIndex: isLive ? 0 : -1,
28904
28945
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -29031,7 +29072,7 @@ function DrawerScrollList({
29031
29072
  if (!sentinel || !root) return;
29032
29073
  const observer = new IntersectionObserver(
29033
29074
  (entries) => {
29034
- if (_optionalChain([entries, 'access', _501 => _501[0], 'optionalAccess', _502 => _502.isIntersecting])) _optionalChain([loadMoreRef, 'access', _503 => _503.current, 'optionalCall', _504 => _504()]);
29075
+ if (_optionalChain([entries, 'access', _503 => _503[0], 'optionalAccess', _504 => _504.isIntersecting])) _optionalChain([loadMoreRef, 'access', _505 => _505.current, 'optionalCall', _506 => _506()]);
29035
29076
  },
29036
29077
  { root, rootMargin: loadMoreRootMargin }
29037
29078
  );
@@ -29046,7 +29087,7 @@ function DrawerScrollList({
29046
29087
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
29047
29088
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
29048
29089
  unreadNotifications.map((n) => {
29049
- const custom = _optionalChain([renderTile, 'optionalCall', _505 => _505(n, { onComplete, onSettle, liveDurationMs })]);
29090
+ const custom = _optionalChain([renderTile, 'optionalCall', _507 => _507(n, { onComplete, onSettle, liveDurationMs })]);
29050
29091
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
29051
29092
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29052
29093
  NotificationTile,
@@ -29210,7 +29251,7 @@ function NotificationPopups({
29210
29251
  className
29211
29252
  ),
29212
29253
  children: live.map((n) => {
29213
- const custom = _optionalChain([renderTile, 'optionalCall', _506 => _506(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
29254
+ const custom = _optionalChain([renderTile, 'optionalCall', _508 => _508(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
29214
29255
  if (custom) {
29215
29256
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
29216
29257
  }
@@ -29390,21 +29431,21 @@ function transformWebinarToProgram(webinar) {
29390
29431
  // src/components/features/notifications/types.ts
29391
29432
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
29392
29433
  function isApprovalNotification(notification) {
29393
- return _optionalChain([notification, 'access', _507 => _507.meta, 'optionalAccess', _508 => _508.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
29434
+ return _optionalChain([notification, 'access', _509 => _509.meta, 'optionalAccess', _510 => _510.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
29394
29435
  }
29395
29436
  function getApprovalMeta(notification) {
29396
29437
  if (!isApprovalNotification(notification)) return null;
29397
29438
  const meta = notification.meta;
29398
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _509 => _509.approvalRequestId]);
29399
- const toolCalls = _optionalChain([meta, 'optionalAccess', _510 => _510.toolCalls]);
29439
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _511 => _511.approvalRequestId]);
29440
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _512 => _512.toolCalls]);
29400
29441
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
29401
29442
  return {
29402
29443
  approvalRequestId,
29403
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _511 => _511.dialogId]), () => ( null)),
29404
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _512 => _512.ticketId]), () => ( null)),
29405
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _513 => _513.approvalType]), () => ( null)),
29406
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _514 => _514.resolution]), () => ( null)),
29407
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _515 => _515.resolvedByName]), () => ( null)),
29444
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _513 => _513.dialogId]), () => ( null)),
29445
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _514 => _514.ticketId]), () => ( null)),
29446
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _515 => _515.approvalType]), () => ( null)),
29447
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _516 => _516.resolution]), () => ( null)),
29448
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _517 => _517.resolvedByName]), () => ( null)),
29408
29449
  toolCalls
29409
29450
  };
29410
29451
  }
@@ -29453,7 +29494,7 @@ function ApprovalRequestNotificationTile({
29453
29494
  const [pinned, setPinned] = _react.useState.call(void 0, defaultExpanded);
29454
29495
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
29455
29496
  const approval = getApprovalMeta(notification);
29456
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _516 => _516.resolution]));
29497
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _518 => _518.resolution]));
29457
29498
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
29458
29499
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
29459
29500
  const { innerRef, containerStyle } = useCollapsible({ expanded });
@@ -29721,7 +29762,7 @@ function TimeTrackerPanel({
29721
29762
  error: showFieldError ? "Required if no notes added" : void 0,
29722
29763
  disableClientFilter: !!onTicketSearch,
29723
29764
  onInputChange: (value, reason) => {
29724
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _517 => _517(value)]);
29765
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _519 => _519(value)]);
29725
29766
  }
29726
29767
  }
29727
29768
  )
@@ -29738,9 +29779,15 @@ function TimeTrackerPanel({
29738
29779
  }
29739
29780
  ),
29740
29781
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-m)]", children: [
29741
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)]", children: [
29782
+ visibleEntries.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-[268px] flex-col items-center justify-center gap-[var(--spacing-system-l)] p-[var(--spacing-system-l)] text-center text-ods-text-secondary", children: [
29783
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.ClockHistoryIcon, { className: "size-6" }),
29784
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
29785
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 font-medium", children: "No time logged" }),
29786
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6", children: "Last entries will appear here" })
29787
+ ] })
29788
+ ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)]", children: [
29742
29789
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-mono text-h6 uppercase tracking-wide text-ods-text-secondary", children: "Last Entries" }),
29743
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border bg-ods-card", children: visibleEntries.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center px-[var(--spacing-system-m)] py-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: "No tracked sessions yet" }) }) : visibleEntries.map((entry) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LastEntryRow, { entry, onClick: handleEntryClick }, entry.id)) })
29790
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border bg-ods-card", children: visibleEntries.map((entry) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LastEntryRow, { entry, onClick: handleEntryClick }, entry.id)) })
29744
29791
  ] }),
29745
29792
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 gap-[var(--spacing-system-m)]", children: [
29746
29793
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -29805,7 +29852,7 @@ function LastEntryRow({ entry, onClick }) {
29805
29852
  {
29806
29853
  variant: "outline",
29807
29854
  size: "icon",
29808
- onClick: () => _optionalChain([onClick, 'optionalCall', _518 => _518(entry)]),
29855
+ onClick: () => _optionalChain([onClick, 'optionalCall', _520 => _520(entry)]),
29809
29856
  disabled: !onClick,
29810
29857
  "aria-label": `Open entry: ${entry.title}`,
29811
29858
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -29849,9 +29896,9 @@ function HeaderButton({
29849
29896
  function TimeTrackerHeaderButton({ className, disabled }) {
29850
29897
  const ctx = useOptionalTimeTracker();
29851
29898
  const elapsedLabel = useTrackerClock({
29852
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _519 => _519.status]), () => ( "ready")),
29853
- runningSince: _optionalChain([ctx, 'optionalAccess', _520 => _520.runningSince]),
29854
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _521 => _521.accumulatedMs])
29899
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _521 => _521.status]), () => ( "ready")),
29900
+ runningSince: _optionalChain([ctx, 'optionalAccess', _522 => _522.runningSince]),
29901
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _523 => _523.accumulatedMs])
29855
29902
  });
29856
29903
  if (!ctx) return null;
29857
29904
  const { isOpen, open, close, status } = ctx;
@@ -30134,15 +30181,15 @@ function TicketCard({
30134
30181
  transition: sortable.transition
30135
30182
  };
30136
30183
  if (showNewMessage) style.borderColor = columnColor;
30137
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _522 => _522.deviceHostnames, 'optionalAccess', _523 => _523.length]) || ticket.organizationName);
30184
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _524 => _524.deviceHostnames, 'optionalAccess', _525 => _525.length]) || ticket.organizationName);
30138
30185
  const deviceText = [
30139
- _optionalChain([ticket, 'access', _524 => _524.deviceHostnames, 'optionalAccess', _525 => _525.join, 'call', _526 => _526(", ")]),
30186
+ _optionalChain([ticket, 'access', _526 => _526.deviceHostnames, 'optionalAccess', _527 => _527.join, 'call', _528 => _528(", ")]),
30140
30187
  ticket.organizationName
30141
30188
  ].filter(Boolean).join(", ");
30142
30189
  const handleClick = (e) => {
30143
30190
  if (sortable.isDragging) e.preventDefault();
30144
30191
  };
30145
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _527 => _527.assignees, 'optionalAccess', _528 => _528.length]) || renderAssignSlot);
30192
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _529 => _529.assignees, 'optionalAccess', _530 => _530.length]) || renderAssignSlot);
30146
30193
  const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
30147
30194
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30148
30195
  _chunkGXRWE7NBcjs.Flag02Icon,
@@ -30151,7 +30198,7 @@ function TicketCard({
30151
30198
  "aria-label": `Priority: ${ticket.priority}`
30152
30199
  }
30153
30200
  ),
30154
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _529 => _529.assignees, 'optionalAccess', _530 => _530.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
30201
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _531 => _531.assignees, 'optionalAccess', _532 => _532.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
30155
30202
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30156
30203
  SquareAvatar,
30157
30204
  {
@@ -30182,7 +30229,7 @@ function TicketCard({
30182
30229
  ] }),
30183
30230
  rightSection
30184
30231
  ] }),
30185
- _optionalChain([ticket, 'access', _531 => _531.tags, 'optionalAccess', _532 => _532.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30232
+ _optionalChain([ticket, 'access', _533 => _533.tags, 'optionalAccess', _534 => _534.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30186
30233
  timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { children: [
30187
30234
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto text-h6 truncate text-ods-text-secondary", children: timestampLabel }) }),
30188
30235
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipContent, { children: tooltipLabel })
@@ -30382,7 +30429,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30382
30429
  const observer = new IntersectionObserver(
30383
30430
  (entries) => {
30384
30431
  if (entries.some((e) => e.isIntersecting)) {
30385
- _optionalChain([loadMoreRef, 'access', _533 => _533.current, 'optionalCall', _534 => _534(columnIdRef.current)]);
30432
+ _optionalChain([loadMoreRef, 'access', _535 => _535.current, 'optionalCall', _536 => _536(columnIdRef.current)]);
30386
30433
  }
30387
30434
  },
30388
30435
  { root, rootMargin: loadMoreRootMargin }
@@ -30412,7 +30459,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30412
30459
  ticket: t,
30413
30460
  columnId: column.id,
30414
30461
  columnColor: column.color,
30415
- href: _optionalChain([getTicketHref, 'optionalCall', _535 => _535(t.id)]),
30462
+ href: _optionalChain([getTicketHref, 'optionalCall', _537 => _537(t.id)]),
30416
30463
  renderAssignSlot,
30417
30464
  onApprove,
30418
30465
  onReject,
@@ -30512,17 +30559,17 @@ function Board({
30512
30559
  const pointer = _core.pointerWithin.call(void 0, args);
30513
30560
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
30514
30561
  const ticketHit = intersections.find(
30515
- (c) => _optionalChain([c, 'access', _536 => _536.data, 'optionalAccess', _537 => _537.droppableContainer, 'optionalAccess', _538 => _538.data, 'optionalAccess', _539 => _539.current, 'optionalAccess', _540 => _540.type]) === "ticket"
30562
+ (c) => _optionalChain([c, 'access', _538 => _538.data, 'optionalAccess', _539 => _539.droppableContainer, 'optionalAccess', _540 => _540.data, 'optionalAccess', _541 => _541.current, 'optionalAccess', _542 => _542.type]) === "ticket"
30516
30563
  );
30517
30564
  if (ticketHit) return [ticketHit];
30518
30565
  const columnHit = intersections.find(
30519
- (c) => _optionalChain([c, 'access', _541 => _541.data, 'optionalAccess', _542 => _542.droppableContainer, 'optionalAccess', _543 => _543.data, 'optionalAccess', _544 => _544.current, 'optionalAccess', _545 => _545.type]) === "column"
30566
+ (c) => _optionalChain([c, 'access', _543 => _543.data, 'optionalAccess', _544 => _544.droppableContainer, 'optionalAccess', _545 => _545.data, 'optionalAccess', _546 => _546.current, 'optionalAccess', _547 => _547.type]) === "column"
30520
30567
  );
30521
30568
  if (columnHit) {
30522
- const columnId = _optionalChain([columnHit, 'access', _546 => _546.data, 'optionalAccess', _547 => _547.droppableContainer, 'optionalAccess', _548 => _548.data, 'optionalAccess', _549 => _549.current, 'optionalAccess', _550 => _550.columnId]);
30569
+ const columnId = _optionalChain([columnHit, 'access', _548 => _548.data, 'optionalAccess', _549 => _549.droppableContainer, 'optionalAccess', _550 => _550.data, 'optionalAccess', _551 => _551.current, 'optionalAccess', _552 => _552.columnId]);
30523
30570
  const ticketsInColumn = args.droppableContainers.filter((c) => {
30524
30571
  const d = c.data.current;
30525
- return _optionalChain([d, 'optionalAccess', _551 => _551.type]) === "ticket" && d.columnId === columnId;
30572
+ return _optionalChain([d, 'optionalAccess', _553 => _553.type]) === "ticket" && d.columnId === columnId;
30526
30573
  });
30527
30574
  if (ticketsInColumn.length > 0) {
30528
30575
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -30547,20 +30594,20 @@ function Board({
30547
30594
  const overId = String(over.id);
30548
30595
  if (activeId === overId) return;
30549
30596
  const overData = over.data.current;
30550
- const fromColumnId = _optionalChain([locate, 'call', _552 => _552(items, activeId), 'optionalAccess', _553 => _553.columnId]);
30551
- const toColumnId = _optionalChain([overData, 'optionalAccess', _554 => _554.columnId]);
30597
+ const fromColumnId = _optionalChain([locate, 'call', _554 => _554(items, activeId), 'optionalAccess', _555 => _555.columnId]);
30598
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _556 => _556.columnId]);
30552
30599
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
30553
30600
  const origin = dragOriginRef.current;
30554
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _555 => _555.fromColumnId]) === toColumnId;
30601
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _557 => _557.fromColumnId]) === toColumnId;
30555
30602
  const targetCol = items.find((c) => c.id === toColumnId);
30556
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _556 => _556.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
30557
- if (_optionalChain([targetCol, 'optionalAccess', _557 => _557.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
30603
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _558 => _558.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
30604
+ if (_optionalChain([targetCol, 'optionalAccess', _559 => _559.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
30558
30605
  setItems((prev) => {
30559
30606
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
30560
30607
  const toCol = prev.find((c) => c.id === toColumnId);
30561
30608
  if (fromIndex < 0 || !toCol) return prev;
30562
30609
  let toIndex;
30563
- if (_optionalChain([overData, 'optionalAccess', _558 => _558.type]) === "column") {
30610
+ if (_optionalChain([overData, 'optionalAccess', _560 => _560.type]) === "column") {
30564
30611
  toIndex = toCol.tickets.length;
30565
30612
  } else {
30566
30613
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -30602,14 +30649,14 @@ function Board({
30602
30649
  const toColumnId = located.columnId;
30603
30650
  const isCrossColumn = origin.fromColumnId !== toColumnId;
30604
30651
  const targetCol = items.find((c) => c.id === toColumnId);
30605
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _559 => _559.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _560 => _560.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
30652
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _561 => _561.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _562 => _562.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
30606
30653
  setItems(columns);
30607
30654
  return;
30608
30655
  }
30609
30656
  let finalIndex = located.index;
30610
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _561 => _561.find, 'call', _562 => _562((c) => c.id === toColumnId), 'optionalAccess', _563 => _563.tickets]), () => ( []));
30657
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _563 => _563.find, 'call', _564 => _564((c) => c.id === toColumnId), 'optionalAccess', _565 => _565.tickets]), () => ( []));
30611
30658
  const overData = over.data.current;
30612
- if (_optionalChain([overData, 'optionalAccess', _564 => _564.type]) === "ticket") {
30659
+ if (_optionalChain([overData, 'optionalAccess', _566 => _566.type]) === "ticket") {
30613
30660
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
30614
30661
  if (overIndex >= 0 && overIndex !== located.index) {
30615
30662
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -30629,8 +30676,8 @@ function Board({
30629
30676
  ticketId: origin.ticketId,
30630
30677
  fromColumnId: origin.fromColumnId,
30631
30678
  toColumnId,
30632
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _565 => _565[finalIndex - 1], 'optionalAccess', _566 => _566.id]), () => ( null)),
30633
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _567 => _567[finalIndex + 1], 'optionalAccess', _568 => _568.id]), () => ( null))
30679
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _567 => _567[finalIndex - 1], 'optionalAccess', _568 => _568.id]), () => ( null)),
30680
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _569 => _569[finalIndex + 1], 'optionalAccess', _570 => _570.id]), () => ( null))
30634
30681
  });
30635
30682
  };
30636
30683
  const handleDragCancel = () => {
@@ -30659,8 +30706,8 @@ function Board({
30659
30706
  children: items.map((column, i) => {
30660
30707
  const prev = items[i - 1];
30661
30708
  const next = items[i + 1];
30662
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _569 => _569.system]));
30663
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _570 => _570.system]));
30709
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _571 => _571.system]));
30710
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _572 => _572.system]));
30664
30711
  const showGap = i > 0 && !joinLeft;
30665
30712
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React96.Fragment, { children: [
30666
30713
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -30713,7 +30760,7 @@ function Board({
30713
30760
  {
30714
30761
  ticket: activeTicket.ticket,
30715
30762
  columnId: activeTicket.columnId,
30716
- columnColor: _optionalChain([items, 'access', _571 => _571.find, 'call', _572 => _572((c) => c.id === activeTicket.columnId), 'optionalAccess', _573 => _573.color]),
30763
+ columnColor: _optionalChain([items, 'access', _573 => _573.find, 'call', _574 => _574((c) => c.id === activeTicket.columnId), 'optionalAccess', _575 => _575.color]),
30717
30764
  isOverlay: true
30718
30765
  }
30719
30766
  ) : null })
@@ -30729,7 +30776,7 @@ function locate(cols, ticketId) {
30729
30776
  return null;
30730
30777
  }
30731
30778
  function findIndexInColumn(cols, columnId, ticketId) {
30732
- return _nullishCoalesce(_optionalChain([cols, 'access', _574 => _574.find, 'call', _575 => _575((c) => c.id === columnId), 'optionalAccess', _576 => _576.tickets, 'access', _577 => _577.findIndex, 'call', _578 => _578((t) => t.id === ticketId)]), () => ( -1));
30779
+ return _nullishCoalesce(_optionalChain([cols, 'access', _576 => _576.find, 'call', _577 => _577((c) => c.id === columnId), 'optionalAccess', _578 => _578.tickets, 'access', _579 => _579.findIndex, 'call', _580 => _580((t) => t.id === ticketId)]), () => ( -1));
30733
30780
  }
30734
30781
 
30735
30782
  // src/components/features/board/types.ts
@@ -30977,7 +31024,7 @@ function Header2({ config, platform }) {
30977
31024
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
30978
31025
  "flex justify-start w-full",
30979
31026
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
30980
- index < (_nullishCoalesce(_optionalChain([item, 'access', _579 => _579.children, 'optionalAccess', _580 => _580.length]), () => ( 0))) - 1 && "mb-1",
31027
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _581 => _581.children, 'optionalAccess', _582 => _582.length]), () => ( 0))) - 1 && "mb-1",
30981
31028
  "text-ods-text-primary",
30982
31029
  // All dropdown items use primary text color
30983
31030
  child.isActive && "bg-ods-bg-hover"
@@ -31069,7 +31116,7 @@ function Header2({ config, platform }) {
31069
31116
  style: config.style,
31070
31117
  children: [
31071
31118
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
31072
- _optionalChain([config, 'access', _581 => _581.actions, 'optionalAccess', _582 => _582.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
31119
+ _optionalChain([config, 'access', _583 => _583.actions, 'optionalAccess', _584 => _584.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
31073
31120
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWBR7H6E3cjs.next_link_default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
31074
31121
  ] }),
31075
31122
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31086,7 +31133,7 @@ function Header2({ config, platform }) {
31086
31133
  }
31087
31134
  ),
31088
31135
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
31089
- _optionalChain([config, 'access', _583 => _583.actions, 'optionalAccess', _584 => _584.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
31136
+ _optionalChain([config, 'access', _585 => _585.actions, 'optionalAccess', _586 => _586.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
31090
31137
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31091
31138
  _chunkQJGRP2YEcjs.Button,
31092
31139
  {
@@ -31094,10 +31141,10 @@ function Header2({ config, platform }) {
31094
31141
  size: "icon",
31095
31142
  className: "flex md:hidden",
31096
31143
  onClick: () => {
31097
- _optionalChain([config, 'access', _585 => _585.mobile, 'optionalAccess', _586 => _586.onToggle, 'optionalCall', _587 => _587()]);
31144
+ _optionalChain([config, 'access', _587 => _587.mobile, 'optionalAccess', _588 => _588.onToggle, 'optionalCall', _589 => _589()]);
31098
31145
  },
31099
- "aria-label": _optionalChain([config, 'access', _588 => _588.mobile, 'optionalAccess', _589 => _589.isOpen]) ? "Close menu" : "Open menu",
31100
- leftIcon: _optionalChain([config, 'access', _590 => _590.mobile, 'optionalAccess', _591 => _591.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Menu01Icon, {})
31146
+ "aria-label": _optionalChain([config, 'access', _590 => _590.mobile, 'optionalAccess', _591 => _591.isOpen]) ? "Close menu" : "Open menu",
31147
+ leftIcon: _optionalChain([config, 'access', _592 => _592.mobile, 'optionalAccess', _593 => _593.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Menu01Icon, {})
31101
31148
  }
31102
31149
  )
31103
31150
  ] })
@@ -31114,10 +31161,10 @@ function Header2({ config, platform }) {
31114
31161
  // src/components/navigation/header-skeleton.tsx
31115
31162
 
31116
31163
  function HeaderSkeleton({ config }) {
31117
- const showNavigation = _optionalChain([config, 'optionalAccess', _592 => _592.navigation]) && config.navigation.items.length > 0;
31118
- const showActions = _optionalChain([config, 'optionalAccess', _593 => _593.actions, 'optionalAccess', _594 => _594.right]) && config.actions.right.length > 0;
31119
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _595 => _595.mobile, 'optionalAccess', _596 => _596.enabled]);
31120
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _597 => _597.className, 'optionalAccess', _598 => _598.includes, 'call', _599 => _599("admin")]);
31164
+ const showNavigation = _optionalChain([config, 'optionalAccess', _594 => _594.navigation]) && config.navigation.items.length > 0;
31165
+ const showActions = _optionalChain([config, 'optionalAccess', _595 => _595.actions, 'optionalAccess', _596 => _596.right]) && config.actions.right.length > 0;
31166
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _597 => _597.mobile, 'optionalAccess', _598 => _598.enabled]);
31167
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _599 => _599.className, 'optionalAccess', _600 => _600.includes, 'call', _601 => _601("admin")]);
31121
31168
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31122
31169
  "header",
31123
31170
  {
@@ -31126,11 +31173,11 @@ function HeaderSkeleton({ config }) {
31126
31173
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
31127
31174
  "px-6 py-3",
31128
31175
  "transition-opacity duration-300 ease-in-out",
31129
- _optionalChain([config, 'optionalAccess', _600 => _600.className])
31176
+ _optionalChain([config, 'optionalAccess', _602 => _602.className])
31130
31177
  ),
31131
31178
  children: [
31132
31179
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
31133
- isAdminHeader && _optionalChain([config, 'optionalAccess', _601 => _601.actions, 'optionalAccess', _602 => _602.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
31180
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _603 => _603.actions, 'optionalAccess', _604 => _604.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
31134
31181
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
31135
31182
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
31136
31183
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -31138,8 +31185,8 @@ function HeaderSkeleton({ config }) {
31138
31185
  ] }),
31139
31186
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
31140
31187
  "hidden md:flex items-center gap-2",
31141
- _optionalChain([config, 'optionalAccess', _603 => _603.navigation, 'optionalAccess', _604 => _604.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
31142
- _optionalChain([config, 'optionalAccess', _605 => _605.navigation, 'optionalAccess', _606 => _606.position]) === "right" && "ml-auto mr-4"
31188
+ _optionalChain([config, 'optionalAccess', _605 => _605.navigation, 'optionalAccess', _606 => _606.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
31189
+ _optionalChain([config, 'optionalAccess', _607 => _607.navigation, 'optionalAccess', _608 => _608.position]) === "right" && "ml-auto mr-4"
31143
31190
  ), children: [
31144
31191
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
31145
31192
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -31187,7 +31234,7 @@ function MobileNavPanel({ isOpen, config }) {
31187
31234
  _react.useEffect.call(void 0, () => {
31188
31235
  const handleKeyDown = (e) => {
31189
31236
  if (e.key === "Escape" && isOpen) {
31190
- _optionalChain([config, 'access', _607 => _607.onClose, 'optionalCall', _608 => _608()]);
31237
+ _optionalChain([config, 'access', _609 => _609.onClose, 'optionalCall', _610 => _610()]);
31191
31238
  }
31192
31239
  };
31193
31240
  if (isOpen) {
@@ -31204,7 +31251,7 @@ function MobileNavPanel({ isOpen, config }) {
31204
31251
  if (item.onClick) {
31205
31252
  item.onClick();
31206
31253
  }
31207
- _optionalChain([config, 'access', _609 => _609.onClose, 'optionalCall', _610 => _610()]);
31254
+ _optionalChain([config, 'access', _611 => _611.onClose, 'optionalCall', _612 => _612()]);
31208
31255
  };
31209
31256
  if (item.href) {
31210
31257
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31374,7 +31421,7 @@ function SlidingSidebar({ config }) {
31374
31421
  variant: "transparent",
31375
31422
  size: "default",
31376
31423
  onClick: () => {
31377
- _optionalChain([item, 'access', _611 => _611.onClick, 'optionalCall', _612 => _612()]);
31424
+ _optionalChain([item, 'access', _613 => _613.onClick, 'optionalCall', _614 => _614()]);
31378
31425
  config.onClose();
31379
31426
  },
31380
31427
  leftIcon: item.icon,
@@ -31397,7 +31444,7 @@ function SlidingSidebar({ config }) {
31397
31444
  variant: "transparent",
31398
31445
  size: "default",
31399
31446
  onClick: () => {
31400
- _optionalChain([item, 'access', _613 => _613.onClick, 'optionalCall', _614 => _614()]);
31447
+ _optionalChain([item, 'access', _615 => _615.onClick, 'optionalCall', _616 => _616()]);
31401
31448
  config.onClose();
31402
31449
  },
31403
31450
  leftIcon: item.icon,
@@ -31524,7 +31571,7 @@ function StickySectionNav({
31524
31571
  ] });
31525
31572
  }
31526
31573
  function useSectionNavigation(sections, options) {
31527
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _615 => _615[0], 'optionalAccess', _616 => _616.id]) || "");
31574
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _617 => _617[0], 'optionalAccess', _618 => _618.id]) || "");
31528
31575
  const isScrollingFromClick = _react.useRef.call(void 0, false);
31529
31576
  const { offset: offset2 = 100 } = options || {};
31530
31577
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -31548,7 +31595,7 @@ function useSectionNavigation(sections, options) {
31548
31595
  const handleScroll = () => {
31549
31596
  if (isScrollingFromClick.current) return;
31550
31597
  const scrollPosition = window.scrollY + offset2 + 50;
31551
- let currentSection = _optionalChain([sections, 'access', _617 => _617[0], 'optionalAccess', _618 => _618.id]) || "";
31598
+ let currentSection = _optionalChain([sections, 'access', _619 => _619[0], 'optionalAccess', _620 => _620.id]) || "";
31552
31599
  for (let i = sections.length - 1; i >= 0; i--) {
31553
31600
  const element = document.getElementById(sections[i].id);
31554
31601
  if (element && scrollPosition >= element.offsetTop) {
@@ -31749,7 +31796,7 @@ function NavigationSidebar({ config, disabled = false }) {
31749
31796
  } else {
31750
31797
  setDesktopMinimized((prev) => !prev);
31751
31798
  }
31752
- _optionalChain([config, 'access', _619 => _619.onToggleMinimized, 'optionalCall', _620 => _620()]);
31799
+ _optionalChain([config, 'access', _621 => _621.onToggleMinimized, 'optionalCall', _622 => _622()]);
31753
31800
  }, [isTablet, setDesktopMinimized, config]);
31754
31801
  const closeOverlay = _react.useCallback.call(void 0, () => {
31755
31802
  setTabletMinimized(true);
@@ -31763,11 +31810,11 @@ function NavigationSidebar({ config, disabled = false }) {
31763
31810
  return () => document.removeEventListener("keydown", handleKeyDown);
31764
31811
  }, [isOverlayOpen, closeOverlay]);
31765
31812
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
31766
- _optionalChain([event, 'optionalAccess', _621 => _621.stopPropagation, 'call', _622 => _622()]);
31813
+ _optionalChain([event, 'optionalAccess', _623 => _623.stopPropagation, 'call', _624 => _624()]);
31767
31814
  if (item.onClick) {
31768
31815
  item.onClick();
31769
31816
  } else if (item.path) {
31770
- _optionalChain([config, 'access', _623 => _623.onNavigate, 'optionalCall', _624 => _624(item.path)]);
31817
+ _optionalChain([config, 'access', _625 => _625.onNavigate, 'optionalCall', _626 => _626(item.path)]);
31771
31818
  }
31772
31819
  if (isTablet) setTabletMinimized(true);
31773
31820
  }, [config, isTablet]);
@@ -31887,11 +31934,11 @@ function HeaderGlobalSearch({
31887
31934
  };
31888
31935
  const handleSubmit = (e) => {
31889
31936
  e.preventDefault();
31890
- _optionalChain([onSubmit, 'optionalCall', _625 => _625(currentValue)]);
31937
+ _optionalChain([onSubmit, 'optionalCall', _627 => _627(currentValue)]);
31891
31938
  };
31892
31939
  const handleKeyDown = (e) => {
31893
31940
  if (e.key === "Enter") {
31894
- _optionalChain([onSubmit, 'optionalCall', _626 => _626(currentValue)]);
31941
+ _optionalChain([onSubmit, 'optionalCall', _628 => _628(currentValue)]);
31895
31942
  }
31896
31943
  };
31897
31944
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -31985,8 +32032,8 @@ function HeaderOrganizationFilter({
31985
32032
  className
31986
32033
  }) {
31987
32034
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
31988
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _627 => _627.name]) || "All Organizations";
31989
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _628 => _628.deviceCount]), () => ( totalDeviceCount));
32035
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _629 => _629.name]) || "All Organizations";
32036
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _630 => _630.deviceCount]), () => ( totalDeviceCount));
31990
32037
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.DropdownMenu, { children: [
31991
32038
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31992
32039
  "button",
@@ -32011,11 +32058,11 @@ function HeaderOrganizationFilter({
32011
32058
  }
32012
32059
  ) }),
32013
32060
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
32014
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _629 => _629("")]), children: "All Organizations" }),
32061
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _631 => _631("")]), children: "All Organizations" }),
32015
32062
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32016
32063
  _chunkQJGRP2YEcjs.DropdownMenuItem,
32017
32064
  {
32018
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _630 => _630(org.id)]),
32065
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _632 => _632(org.id)]),
32019
32066
  children: org.name
32020
32067
  },
32021
32068
  org.id
@@ -32205,9 +32252,9 @@ function NotificationsHeaderButton({
32205
32252
  dimmedClass
32206
32253
  }) {
32207
32254
  const ctx = useOptionalNotifications();
32208
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _631 => _631.unreadCount]), () => ( fallbackUnreadCount))) > 0;
32209
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _632 => _632.isOpen]), () => ( false));
32210
- const onClick = _optionalChain([ctx, 'optionalAccess', _633 => _633.toggle]);
32255
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _633 => _633.unreadCount]), () => ( fallbackUnreadCount))) > 0;
32256
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _634 => _634.isOpen]), () => ( false));
32257
+ const onClick = _optionalChain([ctx, 'optionalAccess', _635 => _635.toggle]);
32211
32258
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32212
32259
  HeaderButton,
32213
32260
  {
@@ -32271,7 +32318,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32271
32318
  if (item.onClick) {
32272
32319
  item.onClick();
32273
32320
  } else if (item.path) {
32274
- _optionalChain([config, 'access', _634 => _634.onNavigate, 'optionalCall', _635 => _635(item.path)]);
32321
+ _optionalChain([config, 'access', _636 => _636.onNavigate, 'optionalCall', _637 => _637(item.path)]);
32275
32322
  }
32276
32323
  onClose();
32277
32324
  }, [config, onClose]);
@@ -32514,7 +32561,7 @@ var AppLayoutDrawerRoot = ({
32514
32561
  const handleOpenChange = React105.useCallback(
32515
32562
  (next) => {
32516
32563
  if (!isControlled) setInternalOpen(next);
32517
- _optionalChain([onOpenChange, 'optionalCall', _636 => _636(next)]);
32564
+ _optionalChain([onOpenChange, 'optionalCall', _638 => _638(next)]);
32518
32565
  },
32519
32566
  [isControlled, onOpenChange]
32520
32567
  );
@@ -32895,10 +32942,10 @@ var AppLayoutDrawerContent = React105.forwardRef(
32895
32942
  ),
32896
32943
  style,
32897
32944
  onInteractOutside: (event) => {
32898
- _optionalChain([onInteractOutside, 'optionalCall', _637 => _637(event)]);
32945
+ _optionalChain([onInteractOutside, 'optionalCall', _639 => _639(event)]);
32899
32946
  if (event.defaultPrevented) return;
32900
32947
  const target = event.target;
32901
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _638 => _638.contains, 'call', _639 => _639(target)]);
32948
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _640 => _640.contains, 'call', _641 => _641(target)]);
32902
32949
  if (!isInsideContainer) {
32903
32950
  event.preventDefault();
32904
32951
  return;
@@ -33311,7 +33358,7 @@ var ShellTypeBadge = ({
33311
33358
  className,
33312
33359
  iconClassName
33313
33360
  }) => {
33314
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _640 => _640.toUpperCase, 'call', _641 => _641()]);
33361
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _642 => _642.toUpperCase, 'call', _643 => _643()]);
33315
33362
  const label = getShellLabel(normalizedType);
33316
33363
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
33317
33364
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -33698,12 +33745,12 @@ function OnboardingWalkthrough({
33698
33745
  }
33699
33746
  }, [state.completedSteps, markComplete]);
33700
33747
  const handleStepSkip = (step) => {
33701
- _optionalChain([step, 'access', _642 => _642.onSkip, 'optionalCall', _643 => _643()]);
33748
+ _optionalChain([step, 'access', _644 => _644.onSkip, 'optionalCall', _645 => _645()]);
33702
33749
  markSkipped(step.id);
33703
33750
  };
33704
33751
  const handleDismiss = () => {
33705
33752
  dismissOnboarding();
33706
- _optionalChain([onDismiss, 'optionalCall', _644 => _644()]);
33753
+ _optionalChain([onDismiss, 'optionalCall', _646 => _646()]);
33707
33754
  };
33708
33755
  if (state.dismissed) {
33709
33756
  return null;
@@ -33833,7 +33880,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
33833
33880
  onKeyDown: (e) => {
33834
33881
  if (e.key === "Enter" || e.key === " ") {
33835
33882
  e.preventDefault();
33836
- _optionalChain([onClick, 'optionalCall', _645 => _645()]);
33883
+ _optionalChain([onClick, 'optionalCall', _647 => _647()]);
33837
33884
  }
33838
33885
  },
33839
33886
  children: [
@@ -33934,7 +33981,7 @@ var LogsList = React109.forwardRef(({
33934
33981
  log,
33935
33982
  isLast: index === logs.length - 1,
33936
33983
  showConnector,
33937
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _646 => _646(log)])
33984
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _648 => _648(log)])
33938
33985
  },
33939
33986
  log.id
33940
33987
  ))
@@ -34035,7 +34082,7 @@ var Slider = React111.forwardRef(
34035
34082
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
34036
34083
  const handleChange = (e) => {
34037
34084
  const newValue = [Number(e.target.value)];
34038
- _optionalChain([onValueChange, 'optionalCall', _647 => _647(newValue)]);
34085
+ _optionalChain([onValueChange, 'optionalCall', _649 => _649(newValue)]);
34039
34086
  };
34040
34087
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34041
34088
  "input",
@@ -34466,7 +34513,7 @@ function CursorPaginationSimple({
34466
34513
  {
34467
34514
  variant: "transparent",
34468
34515
  size: "icon",
34469
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _648 => _648("")]),
34516
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _650 => _650("")]),
34470
34517
  disabled: !hasPreviousPage || loading,
34471
34518
  className: "h-8 w-8",
34472
34519
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -34478,7 +34525,7 @@ function CursorPaginationSimple({
34478
34525
  {
34479
34526
  variant: "transparent",
34480
34527
  size: "icon",
34481
- onClick: () => _optionalChain([onNext, 'optionalCall', _649 => _649("")]),
34528
+ onClick: () => _optionalChain([onNext, 'optionalCall', _651 => _651("")]),
34482
34529
  disabled: !hasNextPage || loading,
34483
34530
  className: "h-8 w-8",
34484
34531
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -34498,8 +34545,8 @@ function TableEmptyState({ message: message2, icon, action, className }) {
34498
34545
  icon: _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}))),
34499
34546
  title: _nullishCoalesce(message2, () => ( "No results found")),
34500
34547
  description: message2 == null ? "Try adjusting your search or filters" : void 0,
34501
- buttonLabel: _optionalChain([action, 'optionalAccess', _650 => _650.label]),
34502
- onButtonClick: _optionalChain([action, 'optionalAccess', _651 => _651.onClick]),
34548
+ buttonLabel: _optionalChain([action, 'optionalAccess', _652 => _652.label]),
34549
+ onButtonClick: _optionalChain([action, 'optionalAccess', _653 => _653.onClick]),
34503
34550
  className: _chunkFIG2RKZFcjs.cn.call(void 0, "py-[var(--spacing-system-xxl)]", className)
34504
34551
  }
34505
34552
  );
@@ -34520,7 +34567,7 @@ function TableColumnFilterDropdown({
34520
34567
  placement = "bottom-start",
34521
34568
  dropdownClassName = "min-w-[240px]"
34522
34569
  }) {
34523
- const activeCount = _optionalChain([filters, 'optionalAccess', _652 => _652[columnKey], 'optionalAccess', _653 => _653.length]) || 0;
34570
+ const activeCount = _optionalChain([filters, 'optionalAccess', _654 => _654[columnKey], 'optionalAccess', _655 => _655.length]) || 0;
34524
34571
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34525
34572
  FiltersDropdown,
34526
34573
  {
@@ -34563,7 +34610,7 @@ function TableColumnFilterDropdown({
34563
34610
  delete newFilters[columnKey];
34564
34611
  onFilterChange(newFilters);
34565
34612
  },
34566
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _654 => _654[columnKey]]) || [] },
34613
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _656 => _656[columnKey]]) || [] },
34567
34614
  placement,
34568
34615
  dropdownClassName
34569
34616
  }
@@ -34860,7 +34907,7 @@ function TableRow({
34860
34907
  const keys = column.key.split(".");
34861
34908
  let value = item;
34862
34909
  for (const key of keys) {
34863
- value = _optionalChain([value, 'optionalAccess', _655 => _655[key]]);
34910
+ value = _optionalChain([value, 'optionalAccess', _657 => _657[key]]);
34864
34911
  }
34865
34912
  if (value === null || value === void 0) {
34866
34913
  return "-";
@@ -34930,7 +34977,7 @@ function TableRow({
34930
34977
  // src/components/ui/table/table.tsx
34931
34978
 
34932
34979
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
34933
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _656 => _656.length])) || Boolean(renderRowActions);
34980
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _658 => _658.length])) || Boolean(renderRowActions);
34934
34981
  const result = [...columns];
34935
34982
  if (hasActions) {
34936
34983
  const actionsColumn = {
@@ -35024,7 +35071,7 @@ function Table({
35024
35071
  return rowKey(item);
35025
35072
  }
35026
35073
  const key = item[rowKey];
35027
- return _optionalChain([key, 'optionalAccess', _657 => _657.toString, 'call', _658 => _658()]) || index.toString();
35074
+ return _optionalChain([key, 'optionalAccess', _659 => _659.toString, 'call', _660 => _660()]) || index.toString();
35028
35075
  };
35029
35076
  const getRowClassName = (item, index) => {
35030
35077
  if (typeof rowClassName === "function") {
@@ -35058,23 +35105,23 @@ function Table({
35058
35105
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
35059
35106
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
35060
35107
  const sentinelRef = _react.useRef.call(void 0, null);
35061
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _659 => _659.onLoadMore]));
35062
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _660 => _660.onLoadMore]);
35108
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _661 => _661.onLoadMore]));
35109
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _662 => _662.onLoadMore]);
35063
35110
  _react.useEffect.call(void 0, () => {
35064
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _661 => _661.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35111
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _663 => _663.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35065
35112
  const sentinel = sentinelRef.current;
35066
35113
  if (!sentinel) return;
35067
35114
  const observer = new IntersectionObserver(
35068
35115
  (entries) => {
35069
- if (_optionalChain([entries, 'access', _662 => _662[0], 'optionalAccess', _663 => _663.isIntersecting])) {
35070
- _optionalChain([onLoadMoreRef, 'access', _664 => _664.current, 'optionalCall', _665 => _665()]);
35116
+ if (_optionalChain([entries, 'access', _664 => _664[0], 'optionalAccess', _665 => _665.isIntersecting])) {
35117
+ _optionalChain([onLoadMoreRef, 'access', _666 => _666.current, 'optionalCall', _667 => _667()]);
35071
35118
  }
35072
35119
  },
35073
35120
  { rootMargin: "200px" }
35074
35121
  );
35075
35122
  observer.observe(sentinel);
35076
35123
  return () => observer.disconnect();
35077
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _666 => _666.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _667 => _667.isFetchingNextPage])]);
35124
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _668 => _668.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _669 => _669.isFetchingNextPage])]);
35078
35125
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
35079
35126
  showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
35080
35127
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -35145,7 +35192,7 @@ function Table({
35145
35192
  },
35146
35193
  getRowKey(item, index)
35147
35194
  )),
35148
- _optionalChain([infiniteScroll, 'optionalAccess', _668 => _668.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35195
+ _optionalChain([infiniteScroll, 'optionalAccess', _670 => _670.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35149
35196
  TableCardSkeleton,
35150
35197
  {
35151
35198
  columns,
@@ -35154,7 +35201,7 @@ function Table({
35154
35201
  hasChevron: Boolean(rowHref)
35155
35202
  }
35156
35203
  ),
35157
- _optionalChain([infiniteScroll, 'optionalAccess', _669 => _669.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35204
+ _optionalChain([infiniteScroll, 'optionalAccess', _671 => _671.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35158
35205
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35159
35206
  "div",
35160
35207
  {
@@ -35512,7 +35559,7 @@ function QueryReportTable({
35512
35559
  );
35513
35560
  const handleExport = () => {
35514
35561
  exportToCSV(data, columns, exportFilename);
35515
- _optionalChain([onExport, 'optionalCall', _670 => _670()]);
35562
+ _optionalChain([onExport, 'optionalCall', _672 => _672()]);
35516
35563
  };
35517
35564
  const tableMinWidth = columns.length * (columnWidth + 16);
35518
35565
  const {
@@ -35685,7 +35732,7 @@ function DataTableColumnFilter({
35685
35732
  align = "left"
35686
35733
  }) {
35687
35734
  const currentValue = column.getFilterValue();
35688
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _671 => _671.length]), () => ( 0));
35735
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _673 => _673.length]), () => ( 0));
35689
35736
  const sections = _react.useMemo.call(void 0,
35690
35737
  () => [
35691
35738
  {
@@ -35765,7 +35812,7 @@ function DataTableHeader({
35765
35812
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
35766
35813
  if (header.isPlaceholder) return false;
35767
35814
  if (isLgUp) return true;
35768
- return Boolean(_optionalChain([header, 'access', _672 => _672.column, 'access', _673 => _673.columnDef, 'access', _674 => _674.meta, 'optionalAccess', _675 => _675.filter]));
35815
+ return Boolean(_optionalChain([header, 'access', _674 => _674.column, 'access', _675 => _675.columnDef, 'access', _676 => _676.meta, 'optionalAccess', _677 => _677.filter]));
35769
35816
  });
35770
35817
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35771
35818
  "div",
@@ -35795,20 +35842,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
35795
35842
  if (header.isPlaceholder) return null;
35796
35843
  const column = header.column;
35797
35844
  const meta = column.columnDef.meta;
35798
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _676 => _676.filter]));
35799
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _677 => _677.align]), () => ( "left"));
35800
- const canSort = _optionalChain([meta, 'optionalAccess', _678 => _678.sortable]) === true;
35801
- const sortDir = _optionalChain([sort, 'optionalAccess', _679 => _679.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
35845
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _678 => _678.filter]));
35846
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _679 => _679.align]), () => ( "left"));
35847
+ const canSort = _optionalChain([meta, 'optionalAccess', _680 => _680.sortable]) === true;
35848
+ const sortDir = _optionalChain([sort, 'optionalAccess', _681 => _681.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
35802
35849
  if (!isLgUp && !hasFilter) return null;
35803
35850
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35804
35851
  "div",
35805
35852
  {
35806
35853
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
35807
35854
  "flex items-stretch",
35808
- isLgUp && (_optionalChain([meta, 'optionalAccess', _680 => _680.width]) || "flex-1 min-w-0"),
35809
- _optionalChain([meta, 'optionalAccess', _681 => _681.headerClassName]),
35855
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _682 => _682.width]) || "flex-1 min-w-0"),
35856
+ _optionalChain([meta, 'optionalAccess', _683 => _683.headerClassName]),
35810
35857
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
35811
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _682 => _682.hideAt]))
35858
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _684 => _684.hideAt]))
35812
35859
  ),
35813
35860
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35814
35861
  DataTableColumnFilter,
@@ -35827,7 +35874,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
35827
35874
  isLgUp && alignJustify(align),
35828
35875
  canSort && "group cursor-pointer"
35829
35876
  ),
35830
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _683 => _683(column.id)]) : void 0,
35877
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _685 => _685(column.id)]) : void 0,
35831
35878
  children: [
35832
35879
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
35833
35880
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -35892,7 +35939,7 @@ function DataTableSkeleton({
35892
35939
  }) {
35893
35940
  const table = useDataTableContext();
35894
35941
  const columns = table.getVisibleFlatColumns();
35895
- const firstColumnId = _optionalChain([columns, 'access', _684 => _684[0], 'optionalAccess', _685 => _685.id]);
35942
+ const firstColumnId = _optionalChain([columns, 'access', _686 => _686[0], 'optionalAccess', _687 => _687.id]);
35896
35943
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35897
35944
  "div",
35898
35945
  {
@@ -35916,7 +35963,7 @@ function DataTableSkeleton({
35916
35963
  {
35917
35964
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
35918
35965
  "flex flex-col justify-center shrink-0",
35919
- _optionalChain([meta, 'optionalAccess', _686 => _686.width]) || "flex-1"
35966
+ _optionalChain([meta, 'optionalAccess', _688 => _688.width]) || "flex-1"
35920
35967
  ),
35921
35968
  children: [
35922
35969
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -35965,7 +36012,7 @@ function DataTableRowImpl({
35965
36012
  const handleClick = _react.useCallback.call(void 0,
35966
36013
  (e) => {
35967
36014
  const target = e.target;
35968
- if (!_optionalChain([containerRef, 'access', _687 => _687.current, 'optionalAccess', _688 => _688.contains, 'call', _689 => _689(target)])) {
36015
+ if (!_optionalChain([containerRef, 'access', _689 => _689.current, 'optionalAccess', _690 => _690.contains, 'call', _691 => _691(target)])) {
35969
36016
  if (isLinkMode) e.preventDefault();
35970
36017
  return;
35971
36018
  }
@@ -35973,7 +36020,7 @@ function DataTableRowImpl({
35973
36020
  if (isLinkMode) e.preventDefault();
35974
36021
  return;
35975
36022
  }
35976
- _optionalChain([onClick, 'optionalCall', _690 => _690(row.original)]);
36023
+ _optionalChain([onClick, 'optionalCall', _692 => _692(row.original)]);
35977
36024
  },
35978
36025
  [onClick, row.original, isLinkMode]
35979
36026
  );
@@ -35998,10 +36045,10 @@ function DataTableRowImpl({
35998
36045
  {
35999
36046
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36000
36047
  "flex flex-col overflow-hidden",
36001
- alignJustify(_optionalChain([meta, 'optionalAccess', _691 => _691.align])),
36002
- _optionalChain([meta, 'optionalAccess', _692 => _692.width]) || "flex-1 min-w-0",
36003
- _optionalChain([meta, 'optionalAccess', _693 => _693.cellClassName]),
36004
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _694 => _694.hideAt]))
36048
+ alignJustify(_optionalChain([meta, 'optionalAccess', _693 => _693.align])),
36049
+ _optionalChain([meta, 'optionalAccess', _694 => _694.width]) || "flex-1 min-w-0",
36050
+ _optionalChain([meta, 'optionalAccess', _695 => _695.cellClassName]),
36051
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _696 => _696.hideAt]))
36005
36052
  ),
36006
36053
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
36007
36054
  },
@@ -36080,7 +36127,7 @@ function DataTableBody({
36080
36127
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
36081
36128
  rows.map((row, index) => {
36082
36129
  const item = row.original;
36083
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _695 => _695(item)]), () => ( void 0));
36130
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _697 => _697(item)]), () => ( void 0));
36084
36131
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
36085
36132
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36086
36133
  DataTableRow,
@@ -36090,7 +36137,7 @@ function DataTableBody({
36090
36137
  href,
36091
36138
  compact,
36092
36139
  className: cls,
36093
- subRow: _optionalChain([renderSubRow, 'optionalCall', _696 => _696(item)])
36140
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _698 => _698(item)])
36094
36141
  },
36095
36142
  row.id
36096
36143
  );
@@ -36145,7 +36192,7 @@ function DataTableInfiniteFooter({
36145
36192
  if (!sentinel) return;
36146
36193
  const observer = new IntersectionObserver(
36147
36194
  (entries) => {
36148
- if (_optionalChain([entries, 'access', _697 => _697[0], 'optionalAccess', _698 => _698.isIntersecting])) onLoadMoreRef.current();
36195
+ if (_optionalChain([entries, 'access', _699 => _699[0], 'optionalAccess', _700 => _700.isIntersecting])) onLoadMoreRef.current();
36149
36196
  },
36150
36197
  { rootMargin }
36151
36198
  );
@@ -36193,7 +36240,7 @@ function DataTableRowCount({
36193
36240
  const table = useDataTableContext();
36194
36241
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
36195
36242
  if (hideWhenEmpty && count === 0) return null;
36196
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _699 => _699(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
36243
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _701 => _701(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
36197
36244
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36198
36245
  "span",
36199
36246
  {
@@ -36352,7 +36399,7 @@ function SearchInput({
36352
36399
  if (!showHiddenTags) return;
36353
36400
  const handleClick = (e) => {
36354
36401
  const target = e.target;
36355
- if (!_optionalChain([hiddenTagsRef, 'access', _700 => _700.current, 'optionalAccess', _701 => _701.contains, 'call', _702 => _702(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _703 => _703.current, 'optionalAccess', _704 => _704.contains, 'call', _705 => _705(target)])) {
36402
+ if (!_optionalChain([hiddenTagsRef, 'access', _702 => _702.current, 'optionalAccess', _703 => _703.contains, 'call', _704 => _704(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _705 => _705.current, 'optionalAccess', _706 => _706.contains, 'call', _707 => _707(target)])) {
36356
36403
  setShowHiddenTags(false);
36357
36404
  }
36358
36405
  };
@@ -36400,10 +36447,10 @@ function SearchInput({
36400
36447
  } else {
36401
36448
  setInternalValue("");
36402
36449
  }
36403
- _optionalChain([inputRef, 'access', _706 => _706.current, 'optionalAccess', _707 => _707.focus, 'call', _708 => _708()]);
36450
+ _optionalChain([inputRef, 'access', _708 => _708.current, 'optionalAccess', _709 => _709.focus, 'call', _710 => _710()]);
36404
36451
  };
36405
36452
  const handleResultClick = (result, e) => {
36406
- _optionalChain([onResultSelect, 'optionalCall', _709 => _709(
36453
+ _optionalChain([onResultSelect, 'optionalCall', _711 => _711(
36407
36454
  result,
36408
36455
  e ? {
36409
36456
  metaKey: e.metaKey,
@@ -36435,7 +36482,7 @@ function SearchInput({
36435
36482
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
36436
36483
  handleResultClick(flatResults[highlightedIndex]);
36437
36484
  } else {
36438
- _optionalChain([onSubmit, 'optionalCall', _710 => _710(currentValue)]);
36485
+ _optionalChain([onSubmit, 'optionalCall', _712 => _712(currentValue)]);
36439
36486
  }
36440
36487
  break;
36441
36488
  case "Escape":
@@ -36513,7 +36560,7 @@ function SearchInput({
36513
36560
  dropdownVisible && "!border-ods-accent"
36514
36561
  ),
36515
36562
  onClick: () => {
36516
- _optionalChain([inputRef, 'access', _711 => _711.current, 'optionalAccess', _712 => _712.focus, 'call', _713 => _713()]);
36563
+ _optionalChain([inputRef, 'access', _713 => _713.current, 'optionalAccess', _714 => _714.focus, 'call', _715 => _715()]);
36517
36564
  setIsOpen(true);
36518
36565
  },
36519
36566
  children: [
@@ -36597,10 +36644,10 @@ function SearchInput({
36597
36644
  align: "start",
36598
36645
  onOpenAutoFocus: (e) => {
36599
36646
  e.preventDefault();
36600
- _optionalChain([inputRef, 'access', _714 => _714.current, 'optionalAccess', _715 => _715.focus, 'call', _716 => _716()]);
36647
+ _optionalChain([inputRef, 'access', _716 => _716.current, 'optionalAccess', _717 => _717.focus, 'call', _718 => _718()]);
36601
36648
  },
36602
36649
  onInteractOutside: (e) => {
36603
- if (_optionalChain([containerRef, 'access', _717 => _717.current, 'optionalAccess', _718 => _718.contains, 'call', _719 => _719(e.target)])) {
36650
+ if (_optionalChain([containerRef, 'access', _719 => _719.current, 'optionalAccess', _720 => _720.contains, 'call', _721 => _721(e.target)])) {
36604
36651
  e.preventDefault();
36605
36652
  }
36606
36653
  },
@@ -36617,10 +36664,10 @@ function SearchInput({
36617
36664
  ref: hiddenTagsPopupRef,
36618
36665
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
36619
36666
  style: {
36620
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _720 => _720.current, 'optionalAccess', _721 => _721.getBoundingClientRect, 'call', _722 => _722(), 'access', _723 => _723.left]), () => ( 0))) : 0
36667
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _722 => _722.current, 'optionalAccess', _723 => _723.getBoundingClientRect, 'call', _724 => _724(), 'access', _725 => _725.left]), () => ( 0))) : 0
36621
36668
  },
36622
36669
  onRemove: (value2) => {
36623
- _optionalChain([onFilterRemove, 'optionalCall', _724 => _724(value2)]);
36670
+ _optionalChain([onFilterRemove, 'optionalCall', _726 => _726(value2)]);
36624
36671
  if (hiddenCount <= 1) setShowHiddenTags(false);
36625
36672
  }
36626
36673
  }
@@ -36671,7 +36718,7 @@ function FilterListItem({
36671
36718
  }) {
36672
36719
  const handleToggle = () => {
36673
36720
  if (disabled) return;
36674
- _optionalChain([onToggle, 'optionalCall', _725 => _725(!selected)]);
36721
+ _optionalChain([onToggle, 'optionalCall', _727 => _727(!selected)]);
36675
36722
  };
36676
36723
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36677
36724
  "div",
@@ -36718,7 +36765,7 @@ function FilterListItem({
36718
36765
  CheckboxPrimitive4.Root,
36719
36766
  {
36720
36767
  checked: selected,
36721
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _726 => _726(c === true)]),
36768
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _728 => _728(c === true)]),
36722
36769
  onClick: (e) => e.stopPropagation(),
36723
36770
  disabled,
36724
36771
  "aria-label": title,
@@ -36817,7 +36864,7 @@ function TagSearchInput({
36817
36864
  if (!showHiddenTags) return;
36818
36865
  const handleClick = (e) => {
36819
36866
  const target = e.target;
36820
- if (!_optionalChain([hiddenTagsRef, 'access', _727 => _727.current, 'optionalAccess', _728 => _728.contains, 'call', _729 => _729(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _730 => _730.current, 'optionalAccess', _731 => _731.contains, 'call', _732 => _732(target)])) {
36867
+ if (!_optionalChain([hiddenTagsRef, 'access', _729 => _729.current, 'optionalAccess', _730 => _730.contains, 'call', _731 => _731(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _732 => _732.current, 'optionalAccess', _733 => _733.contains, 'call', _734 => _734(target)])) {
36821
36868
  setShowHiddenTags(false);
36822
36869
  }
36823
36870
  };
@@ -36833,13 +36880,13 @@ function TagSearchInput({
36833
36880
  e.preventDefault();
36834
36881
  onSubmit(searchValue);
36835
36882
  }
36836
- _optionalChain([onKeyDown, 'optionalCall', _733 => _733(e)]);
36883
+ _optionalChain([onKeyDown, 'optionalCall', _735 => _735(e)]);
36837
36884
  };
36838
36885
  const handleClearAll = (e) => {
36839
36886
  e.stopPropagation();
36840
36887
  e.preventDefault();
36841
- _optionalChain([onClearAll, 'optionalCall', _734 => _734()]);
36842
- _optionalChain([inputRef, 'access', _735 => _735.current, 'optionalAccess', _736 => _736.focus, 'call', _737 => _737()]);
36888
+ _optionalChain([onClearAll, 'optionalCall', _736 => _736()]);
36889
+ _optionalChain([inputRef, 'access', _737 => _737.current, 'optionalAccess', _738 => _738.focus, 'call', _739 => _739()]);
36843
36890
  };
36844
36891
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
36845
36892
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -36856,7 +36903,7 @@ function TagSearchInput({
36856
36903
  className
36857
36904
  ),
36858
36905
  onClick: () => {
36859
- if (!disabled) _optionalChain([inputRef, 'access', _738 => _738.current, 'optionalAccess', _739 => _739.focus, 'call', _740 => _740()]);
36906
+ if (!disabled) _optionalChain([inputRef, 'access', _740 => _740.current, 'optionalAccess', _741 => _741.focus, 'call', _742 => _742()]);
36860
36907
  },
36861
36908
  children: [
36862
36909
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
@@ -36928,7 +36975,7 @@ function TagSearchInput({
36928
36975
  items: hiddenTags,
36929
36976
  disabled,
36930
36977
  style: {
36931
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _741 => _741.current, 'optionalAccess', _742 => _742.getBoundingClientRect, 'call', _743 => _743(), 'access', _744 => _744.left]), () => ( 0))) : 0
36978
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _743 => _743.current, 'optionalAccess', _744 => _744.getBoundingClientRect, 'call', _745 => _745(), 'access', _746 => _746.left]), () => ( 0))) : 0
36932
36979
  },
36933
36980
  onRemove: (value) => {
36934
36981
  onTagRemove(value);
@@ -37029,7 +37076,7 @@ function MarkdownEditor({
37029
37076
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
37030
37077
  _react.useEffect.call(void 0, () => {
37031
37078
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
37032
- if (_optionalChain([mod, 'access', _745 => _745.commands, 'optionalAccess', _746 => _746.getExtraCommands])) {
37079
+ if (_optionalChain([mod, 'access', _747 => _747.commands, 'optionalAccess', _748 => _748.getExtraCommands])) {
37033
37080
  setDefaultExtraCommands(mod.commands.getExtraCommands());
37034
37081
  }
37035
37082
  });
@@ -37063,7 +37110,7 @@ function MarkdownEditor({
37063
37110
  const isImage = file.type.startsWith("image/");
37064
37111
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
37065
37112
  insertTextAtCursor(markdown);
37066
- _optionalChain([onFileUploaded, 'optionalCall', _747 => _747(url, file.name)]);
37113
+ _optionalChain([onFileUploaded, 'optionalCall', _749 => _749(url, file.name)]);
37067
37114
  } catch (error) {
37068
37115
  console.error("File upload failed:", error);
37069
37116
  setUploadProgress("Upload failed. Please try again.");
@@ -37076,7 +37123,7 @@ function MarkdownEditor({
37076
37123
  );
37077
37124
  const handleFileInputChange = _react.useCallback.call(void 0,
37078
37125
  (e) => {
37079
- const file = _optionalChain([e, 'access', _748 => _748.target, 'access', _749 => _749.files, 'optionalAccess', _750 => _750[0]]);
37126
+ const file = _optionalChain([e, 'access', _750 => _750.target, 'access', _751 => _751.files, 'optionalAccess', _752 => _752[0]]);
37080
37127
  if (file) {
37081
37128
  handleFileUpload(file);
37082
37129
  e.target.value = "";
@@ -37087,7 +37134,7 @@ function MarkdownEditor({
37087
37134
  const handlePaste = _react.useCallback.call(void 0,
37088
37135
  (e) => {
37089
37136
  if (!onUploadFile) return;
37090
- const items = _optionalChain([e, 'access', _751 => _751.clipboardData, 'optionalAccess', _752 => _752.items]);
37137
+ const items = _optionalChain([e, 'access', _753 => _753.clipboardData, 'optionalAccess', _754 => _754.items]);
37091
37138
  if (!items) return;
37092
37139
  for (const item of items) {
37093
37140
  if (item.type.startsWith("image/")) {
@@ -37112,7 +37159,7 @@ function MarkdownEditor({
37112
37159
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
37113
37160
  icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "w-3 h-3" }),
37114
37161
  execute: () => {
37115
- _optionalChain([fileInputRef, 'access', _753 => _753.current, 'optionalAccess', _754 => _754.click, 'call', _755 => _755()]);
37162
+ _optionalChain([fileInputRef, 'access', _755 => _755.current, 'optionalAccess', _756 => _756.click, 'call', _757 => _757()]);
37116
37163
  }
37117
37164
  } : null;
37118
37165
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -37124,7 +37171,7 @@ function MarkdownEditor({
37124
37171
  const EDGE_ZONE = 60;
37125
37172
  const MAX_SCROLL_SPEED = 15;
37126
37173
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
37127
- let node = _optionalChain([el, 'optionalAccess', _756 => _756.parentElement]);
37174
+ let node = _optionalChain([el, 'optionalAccess', _758 => _758.parentElement]);
37128
37175
  while (node && node !== document.documentElement) {
37129
37176
  const { overflowY } = window.getComputedStyle(node);
37130
37177
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -37267,7 +37314,7 @@ function matchesAccept(file, accept) {
37267
37314
  });
37268
37315
  }
37269
37316
  function dragHasFiles(e) {
37270
- const types = _optionalChain([e, 'access', _757 => _757.dataTransfer, 'optionalAccess', _758 => _758.types]);
37317
+ const types = _optionalChain([e, 'access', _759 => _759.dataTransfer, 'optionalAccess', _760 => _760.types]);
37271
37318
  if (!types) return false;
37272
37319
  for (let i = 0; i < types.length; i++) {
37273
37320
  if (types[i] === "Files") return true;
@@ -37362,7 +37409,7 @@ function FileUpload({
37362
37409
  e.stopPropagation();
37363
37410
  setDragActive(false);
37364
37411
  if (disabled) return;
37365
- if (_optionalChain([e, 'access', _759 => _759.dataTransfer, 'access', _760 => _760.files, 'optionalAccess', _761 => _761.length])) {
37412
+ if (_optionalChain([e, 'access', _761 => _761.dataTransfer, 'access', _762 => _762.files, 'optionalAccess', _763 => _763.length])) {
37366
37413
  handleFiles(e.dataTransfer.files);
37367
37414
  }
37368
37415
  };
@@ -37390,7 +37437,7 @@ function FileUpload({
37390
37437
  e.preventDefault();
37391
37438
  dragCounter = 0;
37392
37439
  setDragActive(false);
37393
- if (_optionalChain([e, 'access', _762 => _762.dataTransfer, 'optionalAccess', _763 => _763.files, 'optionalAccess', _764 => _764.length])) {
37440
+ if (_optionalChain([e, 'access', _764 => _764.dataTransfer, 'optionalAccess', _765 => _765.files, 'optionalAccess', _766 => _766.length])) {
37394
37441
  handleFilesRef.current(e.dataTransfer.files);
37395
37442
  }
37396
37443
  };
@@ -37412,7 +37459,7 @@ function FileUpload({
37412
37459
  };
37413
37460
  }, [acceptWindowDrops, disabled]);
37414
37461
  const handleFileSelect = (e) => {
37415
- if (_optionalChain([e, 'access', _765 => _765.target, 'access', _766 => _766.files, 'optionalAccess', _767 => _767.length])) {
37462
+ if (_optionalChain([e, 'access', _767 => _767.target, 'access', _768 => _768.files, 'optionalAccess', _769 => _769.length])) {
37416
37463
  handleFiles(e.target.files);
37417
37464
  }
37418
37465
  };
@@ -37429,7 +37476,7 @@ function FileUpload({
37429
37476
  };
37430
37477
  const openDialog = async () => {
37431
37478
  if (disabled) return;
37432
- _optionalChain([fileInputRef, 'access', _768 => _768.current, 'optionalAccess', _769 => _769.click, 'call', _770 => _770()]);
37479
+ _optionalChain([fileInputRef, 'access', _770 => _770.current, 'optionalAccess', _771 => _771.click, 'call', _772 => _772()]);
37433
37480
  };
37434
37481
  const displayError = error || validationError || void 0;
37435
37482
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -37507,7 +37554,7 @@ function FileUpload({
37507
37554
  "button",
37508
37555
  {
37509
37556
  type: "button",
37510
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _771 => _771(entry.id)]),
37557
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _773 => _773(entry.id)]),
37511
37558
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
37512
37559
  "aria-label": `Remove ${entry.fileName}`,
37513
37560
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -37630,7 +37677,7 @@ function ImageUploader({
37630
37677
  onChange(file);
37631
37678
  };
37632
37679
  const handleFileSelect = (e) => {
37633
- validateAndEmit(_optionalChain([e, 'access', _772 => _772.target, 'access', _773 => _773.files, 'optionalAccess', _774 => _774[0]]));
37680
+ validateAndEmit(_optionalChain([e, 'access', _774 => _774.target, 'access', _775 => _775.files, 'optionalAccess', _776 => _776[0]]));
37634
37681
  if (inputRef.current) inputRef.current.value = "";
37635
37682
  };
37636
37683
  const handleDrag = (e) => {
@@ -37645,11 +37692,11 @@ function ImageUploader({
37645
37692
  e.stopPropagation();
37646
37693
  setDragActive(false);
37647
37694
  if (!interactive) return;
37648
- validateAndEmit(_optionalChain([e, 'access', _775 => _775.dataTransfer, 'access', _776 => _776.files, 'optionalAccess', _777 => _777[0]]));
37695
+ validateAndEmit(_optionalChain([e, 'access', _777 => _777.dataTransfer, 'access', _778 => _778.files, 'optionalAccess', _779 => _779[0]]));
37649
37696
  };
37650
37697
  const openDialog = () => {
37651
37698
  if (!interactive) return;
37652
- _optionalChain([inputRef, 'access', _778 => _778.current, 'optionalAccess', _779 => _779.click, 'call', _780 => _780()]);
37699
+ _optionalChain([inputRef, 'access', _780 => _780.current, 'optionalAccess', _781 => _781.click, 'call', _782 => _782()]);
37653
37700
  };
37654
37701
  const handleRootKeyDown = (e) => {
37655
37702
  if (hasImage || !interactive) return;
@@ -37839,8 +37886,8 @@ function ColorPresetSelect({
37839
37886
  }) {
37840
37887
  const selectedPreset = presets.find((p) => p.key === presetKey);
37841
37888
  const isCustom = !selectedPreset;
37842
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _781 => _781.label]), () => ( "Custom"));
37843
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _782 => _782.color]), () => ( value));
37889
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _783 => _783.label]), () => ( "Custom"));
37890
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _784 => _784.color]), () => ( value));
37844
37891
  const groups = [
37845
37892
  {
37846
37893
  items: [
@@ -38130,7 +38177,7 @@ function TicketStatusConfigRow({
38130
38177
  _chunkQJGRP2YEcjs.Input,
38131
38178
  {
38132
38179
  value: name,
38133
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _783 => _783(e.target.value)]),
38180
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _785 => _785(e.target.value)]),
38134
38181
  disabled: isSystem,
38135
38182
  readOnly: isSystem,
38136
38183
  "aria-label": "Status name",
@@ -38213,7 +38260,7 @@ function CompactAssigneeDropdown({
38213
38260
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
38214
38261
  }, [filtered, currentAssignee]);
38215
38262
  const handleSelect = (userId) => {
38216
- const next = _optionalChain([currentAssignee, 'optionalAccess', _784 => _784.id]) === userId ? null : userId;
38263
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _786 => _786.id]) === userId ? null : userId;
38217
38264
  onAssign(next);
38218
38265
  setIsOpen(false);
38219
38266
  };
@@ -38278,7 +38325,7 @@ function CompactAssigneeDropdown({
38278
38325
  }
38279
38326
  ) }),
38280
38327
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
38281
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _785 => _785.id]) === opt.value;
38328
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _787 => _787.id]) === opt.value;
38282
38329
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
38283
38330
  "button",
38284
38331
  {
@@ -38347,7 +38394,7 @@ function DefaultAssigneeDropdown({
38347
38394
  Autocomplete,
38348
38395
  {
38349
38396
  options,
38350
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _786 => _786.id]), () => ( null)),
38397
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _788 => _788.id]), () => ( null)),
38351
38398
  onChange: (val) => {
38352
38399
  onAssign(val);
38353
38400
  setIsEditing(false);
@@ -38736,14 +38783,14 @@ function TicketInfoSection({
38736
38783
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38737
38784
  SquareAvatar,
38738
38785
  {
38739
- src: _optionalChain([organization, 'optionalAccess', _787 => _787.imageSrc]),
38740
- alt: _optionalChain([organization, 'optionalAccess', _788 => _788.name]),
38741
- fallback: _optionalChain([organization, 'optionalAccess', _789 => _789.name]) || "Org",
38786
+ src: _optionalChain([organization, 'optionalAccess', _789 => _789.imageSrc]),
38787
+ alt: _optionalChain([organization, 'optionalAccess', _790 => _790.name]),
38788
+ fallback: _optionalChain([organization, 'optionalAccess', _791 => _791.name]) || "Org",
38742
38789
  size: "md",
38743
38790
  className: "shrink-0"
38744
38791
  }
38745
38792
  ),
38746
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _790 => _790.name]) || "Unassigned", label: "Organization" })
38793
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _792 => _792.name]) || "Unassigned", label: "Organization" })
38747
38794
  ] }),
38748
38795
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38749
38796
  AssigneeDropdown,
@@ -38764,10 +38811,10 @@ function TicketInfoSection({
38764
38811
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38765
38812
  InfoCell2,
38766
38813
  {
38767
- value: _optionalChain([device, 'optionalAccess', _791 => _791.name]) || "Unassigned",
38814
+ value: _optionalChain([device, 'optionalAccess', _793 => _793.name]) || "Unassigned",
38768
38815
  label: "Device",
38769
- icon: _optionalChain([device, 'optionalAccess', _792 => _792.icon]),
38770
- onClick: _optionalChain([device, 'optionalAccess', _793 => _793.onClick])
38816
+ icon: _optionalChain([device, 'optionalAccess', _794 => _794.icon]),
38817
+ onClick: _optionalChain([device, 'optionalAccess', _795 => _795.onClick])
38771
38818
  }
38772
38819
  ),
38773
38820
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -39097,7 +39144,7 @@ function RoadmapCard({
39097
39144
  const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
39098
39145
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
39099
39146
  const hasFigma = !!item.figmaUrl;
39100
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _794 => _794.screenshots, 'optionalAccess', _795 => _795.length]), () => ( 0))) > 0;
39147
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _796 => _796.screenshots, 'optionalAccess', _797 => _797.length]), () => ( 0))) > 0;
39101
39148
  const typeLabel = getTaskTypeLabel(item.customItemId);
39102
39149
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
39103
39150
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -39116,7 +39163,7 @@ function RoadmapCard({
39116
39163
  unoptimized: true,
39117
39164
  className: "h-8 w-8 object-contain"
39118
39165
  }
39119
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _796 => _796.title, 'optionalAccess', _797 => _797.substring, 'call', _798 => _798(0, 2)]) || "??" })
39166
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _798 => _798.title, 'optionalAccess', _799 => _799.substring, 'call', _800 => _800(0, 2)]) || "??" })
39120
39167
  }
39121
39168
  ),
39122
39169
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -39191,7 +39238,7 @@ function RoadmapCard({
39191
39238
  unoptimized: true,
39192
39239
  className: "object-contain p-1"
39193
39240
  }
39194
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _799 => _799.title, 'optionalAccess', _800 => _800.substring, 'call', _801 => _801(0, 2)]) || "??" }) }),
39241
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _801 => _801.title, 'optionalAccess', _802 => _802.substring, 'call', _803 => _803(0, 2)]) || "??" }) }),
39195
39242
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
39196
39243
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2", children: item.title }) }),
39197
39244
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
@@ -39701,7 +39748,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
39701
39748
  ] }) : null,
39702
39749
  item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-[13px] leading-5 text-ods-text-secondary", children: item.preview }) }) : null
39703
39750
  ] }),
39704
- _optionalChain([anchorProps, 'optionalAccess', _802 => _802.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-3.5 h-3.5" }) }) : null
39751
+ _optionalChain([anchorProps, 'optionalAccess', _804 => _804.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-3.5 h-3.5" }) }) : null
39705
39752
  ] });
39706
39753
  if (!anchorProps) {
39707
39754
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -39771,7 +39818,7 @@ function getDefaultOptions() {
39771
39818
  // node_modules/date-fns/startOfWeek.mjs
39772
39819
  function startOfWeek(date, options) {
39773
39820
  const defaultOptions2 = getDefaultOptions();
39774
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _803 => _803.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _804 => _804.locale, 'optionalAccess', _805 => _805.options, 'optionalAccess', _806 => _806.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _807 => _807.locale, 'optionalAccess', _808 => _808.options, 'optionalAccess', _809 => _809.weekStartsOn]))), () => ( 0));
39821
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _805 => _805.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _806 => _806.locale, 'optionalAccess', _807 => _807.options, 'optionalAccess', _808 => _808.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _809 => _809.locale, 'optionalAccess', _810 => _810.options, 'optionalAccess', _811 => _811.weekStartsOn]))), () => ( 0));
39775
39822
  const _date = toDate(date);
39776
39823
  const day = _date.getDay();
39777
39824
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -39946,7 +39993,7 @@ var formatDistance = (token, count, options) => {
39946
39993
  } else {
39947
39994
  result = tokenValue.other.replace("{{count}}", count.toString());
39948
39995
  }
39949
- if (_optionalChain([options, 'optionalAccess', _810 => _810.addSuffix])) {
39996
+ if (_optionalChain([options, 'optionalAccess', _812 => _812.addSuffix])) {
39950
39997
  if (options.comparison && options.comparison > 0) {
39951
39998
  return "in " + result;
39952
39999
  } else {
@@ -40013,15 +40060,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
40013
40060
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
40014
40061
  function buildLocalizeFn(args) {
40015
40062
  return (value, options) => {
40016
- const context = _optionalChain([options, 'optionalAccess', _811 => _811.context]) ? String(options.context) : "standalone";
40063
+ const context = _optionalChain([options, 'optionalAccess', _813 => _813.context]) ? String(options.context) : "standalone";
40017
40064
  let valuesArray;
40018
40065
  if (context === "formatting" && args.formattingValues) {
40019
40066
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
40020
- const width = _optionalChain([options, 'optionalAccess', _812 => _812.width]) ? String(options.width) : defaultWidth;
40067
+ const width = _optionalChain([options, 'optionalAccess', _814 => _814.width]) ? String(options.width) : defaultWidth;
40021
40068
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
40022
40069
  } else {
40023
40070
  const defaultWidth = args.defaultWidth;
40024
- const width = _optionalChain([options, 'optionalAccess', _813 => _813.width]) ? String(options.width) : args.defaultWidth;
40071
+ const width = _optionalChain([options, 'optionalAccess', _815 => _815.width]) ? String(options.width) : args.defaultWidth;
40025
40072
  valuesArray = args.values[width] || args.values[defaultWidth];
40026
40073
  }
40027
40074
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -40401,7 +40448,7 @@ function getWeekYear(date, options) {
40401
40448
  const _date = toDate(date);
40402
40449
  const year = _date.getFullYear();
40403
40450
  const defaultOptions2 = getDefaultOptions();
40404
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _814 => _814.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _815 => _815.locale, 'optionalAccess', _816 => _816.options, 'optionalAccess', _817 => _817.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _818 => _818.locale, 'optionalAccess', _819 => _819.options, 'optionalAccess', _820 => _820.firstWeekContainsDate]))), () => ( 1));
40451
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _816 => _816.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _817 => _817.locale, 'optionalAccess', _818 => _818.options, 'optionalAccess', _819 => _819.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _820 => _820.locale, 'optionalAccess', _821 => _821.options, 'optionalAccess', _822 => _822.firstWeekContainsDate]))), () => ( 1));
40405
40452
  const firstWeekOfNextYear = constructFrom(date, 0);
40406
40453
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
40407
40454
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -40422,7 +40469,7 @@ function getWeekYear(date, options) {
40422
40469
  // node_modules/date-fns/startOfWeekYear.mjs
40423
40470
  function startOfWeekYear(date, options) {
40424
40471
  const defaultOptions2 = getDefaultOptions();
40425
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _821 => _821.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _822 => _822.locale, 'optionalAccess', _823 => _823.options, 'optionalAccess', _824 => _824.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _825 => _825.locale, 'optionalAccess', _826 => _826.options, 'optionalAccess', _827 => _827.firstWeekContainsDate]))), () => ( 1));
40472
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _823 => _823.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _824 => _824.locale, 'optionalAccess', _825 => _825.options, 'optionalAccess', _826 => _826.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _827 => _827.locale, 'optionalAccess', _828 => _828.options, 'optionalAccess', _829 => _829.firstWeekContainsDate]))), () => ( 1));
40426
40473
  const year = getWeekYear(date, options);
40427
40474
  const firstWeek = constructFrom(date, 0);
40428
40475
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -41237,9 +41284,9 @@ var doubleQuoteRegExp = /''/g;
41237
41284
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
41238
41285
  function format(date, formatStr, options) {
41239
41286
  const defaultOptions2 = getDefaultOptions();
41240
- const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _828 => _828.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
41241
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _829 => _829.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _830 => _830.locale, 'optionalAccess', _831 => _831.options, 'optionalAccess', _832 => _832.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _833 => _833.locale, 'optionalAccess', _834 => _834.options, 'optionalAccess', _835 => _835.firstWeekContainsDate]))), () => ( 1));
41242
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _836 => _836.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _837 => _837.locale, 'optionalAccess', _838 => _838.options, 'optionalAccess', _839 => _839.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _840 => _840.locale, 'optionalAccess', _841 => _841.options, 'optionalAccess', _842 => _842.weekStartsOn]))), () => ( 0));
41287
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _830 => _830.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
41288
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _831 => _831.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _832 => _832.locale, 'optionalAccess', _833 => _833.options, 'optionalAccess', _834 => _834.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _835 => _835.locale, 'optionalAccess', _836 => _836.options, 'optionalAccess', _837 => _837.firstWeekContainsDate]))), () => ( 1));
41289
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _838 => _838.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _839 => _839.locale, 'optionalAccess', _840 => _840.options, 'optionalAccess', _841 => _841.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _842 => _842.locale, 'optionalAccess', _843 => _843.options, 'optionalAccess', _844 => _844.weekStartsOn]))), () => ( 0));
41243
41290
  const originalDate = toDate(date);
41244
41291
  if (!isValid(originalDate)) {
41245
41292
  throw new RangeError("Invalid time value");
@@ -41280,7 +41327,7 @@ function format(date, formatStr, options) {
41280
41327
  return parts.map((part) => {
41281
41328
  if (!part.isToken) return part.value;
41282
41329
  const token = part.value;
41283
- if (!_optionalChain([options, 'optionalAccess', _843 => _843.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _844 => _844.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
41330
+ if (!_optionalChain([options, 'optionalAccess', _845 => _845.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _846 => _846.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
41284
41331
  warnOrThrowProtectedError(token, formatStr, String(date));
41285
41332
  }
41286
41333
  const formatter = formatters[token[0]];
@@ -41461,7 +41508,7 @@ function ProgramCard({
41461
41508
  const dur = formatDurationFromRange(w.start_at, w.end_at);
41462
41509
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
41463
41510
  }
41464
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _845 => _845.labels, 'optionalAccess', _846 => _846.singular])].filter(
41511
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _847 => _847.labels, 'optionalAccess', _848 => _848.singular])].filter(
41465
41512
  (s) => typeof s === "string" && s.length > 0
41466
41513
  );
41467
41514
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunkFIG2RKZFcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
@@ -41618,7 +41665,7 @@ function ProgramCard({
41618
41665
 
41619
41666
 
41620
41667
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
41621
- const goalsCount = _optionalChain([campaign, 'access', _847 => _847.goals, 'optionalAccess', _848 => _848.length]) || 0;
41668
+ const goalsCount = _optionalChain([campaign, 'access', _849 => _849.goals, 'optionalAccess', _850 => _850.length]) || 0;
41622
41669
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
41623
41670
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
41624
41671
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -41780,7 +41827,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
41780
41827
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
41781
41828
  const safePath = sanitizePath(row.path);
41782
41829
  if (safePath) {
41783
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _849 => _849.docPlatformTargets, 'optionalAccess', _850 => _850[row.documentType]]) : void 0;
41830
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _851 => _851.docPlatformTargets, 'optionalAccess', _852 => _852[row.documentType]]) : void 0;
41784
41831
  if (docTarget) {
41785
41832
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
41786
41833
  const base = `${_chunkFIG2RKZFcjs.getBaseUrl.call(void 0, docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -41995,8 +42042,8 @@ function cardMenuGroups(href, discuss, openDetails) {
41995
42042
  if (href) {
41996
42043
  items.push({
41997
42044
  id: "open-details",
41998
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _851 => _851.label]), () => ( "Open Details")),
41999
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _852 => _852.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.EyeIcon, { size: 20 }))),
42045
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _853 => _853.label]), () => ( "Open Details")),
42046
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _854 => _854.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.EyeIcon, { size: 20 }))),
42000
42047
  // Main row → open the entity (same tab, soft Link nav).
42001
42048
  href,
42002
42049
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -42026,8 +42073,8 @@ function HubspotTicketChatCard({
42026
42073
  isNewTab,
42027
42074
  discuss
42028
42075
  }) {
42029
- const status = typeof _optionalChain([chatRef, 'access', _853 => _853.metadata, 'optionalAccess', _854 => _854.status]) === "string" ? chatRef.metadata.status : void 0;
42030
- const statusLabel = typeof _optionalChain([chatRef, 'access', _855 => _855.metadata, 'optionalAccess', _856 => _856.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
42076
+ const status = typeof _optionalChain([chatRef, 'access', _855 => _855.metadata, 'optionalAccess', _856 => _856.status]) === "string" ? chatRef.metadata.status : void 0;
42077
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _857 => _857.metadata, 'optionalAccess', _858 => _858.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
42031
42078
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
42032
42079
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42033
42080
  MingoInfoCard,
@@ -42050,7 +42097,7 @@ function FaqChatCard({
42050
42097
  isNewTab,
42051
42098
  discuss
42052
42099
  }) {
42053
- const section = typeof _optionalChain([chatRef, 'access', _857 => _857.metadata, 'optionalAccess', _858 => _858.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
42100
+ const section = typeof _optionalChain([chatRef, 'access', _859 => _859.metadata, 'optionalAccess', _860 => _860.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
42054
42101
  const statusLabel = section && section.length > 0 ? section : "FAQ";
42055
42102
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42056
42103
  MingoInfoCard,
@@ -42070,7 +42117,7 @@ function SlackChatCard({
42070
42117
  isNewTab,
42071
42118
  discuss
42072
42119
  }) {
42073
- const channelName = typeof _optionalChain([chatRef, 'access', _859 => _859.metadata, 'optionalAccess', _860 => _860.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
42120
+ const channelName = typeof _optionalChain([chatRef, 'access', _861 => _861.metadata, 'optionalAccess', _862 => _862.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
42074
42121
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
42075
42122
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
42076
42123
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -42110,7 +42157,7 @@ function GenericFinancialChatCard({
42110
42157
  isNewTab,
42111
42158
  discuss
42112
42159
  }) {
42113
- const subtitle = typeof _optionalChain([chatRef, 'access', _861 => _861.metadata, 'optionalAccess', _862 => _862.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
42160
+ const subtitle = typeof _optionalChain([chatRef, 'access', _863 => _863.metadata, 'optionalAccess', _864 => _864.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
42114
42161
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42115
42162
  MingoInfoCard,
42116
42163
  {
@@ -42179,12 +42226,12 @@ function ProductReleaseChatCard({
42179
42226
  discuss
42180
42227
  }) {
42181
42228
  const releaseProps = buildProps(item);
42182
- const status = _optionalChain([item, 'optionalAccess', _863 => _863.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
42229
+ const status = _optionalChain([item, 'optionalAccess', _865 => _865.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
42183
42230
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42184
42231
  EntityMingoCard,
42185
42232
  {
42186
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _864 => _864.title]), () => ( "")),
42187
- description: _optionalChain([item, 'optionalAccess', _865 => _865.summary]) || releaseProps.formattedDate || void 0,
42233
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _866 => _866.title]), () => ( "")),
42234
+ description: _optionalChain([item, 'optionalAccess', _867 => _867.summary]) || releaseProps.formattedDate || void 0,
42188
42235
  cover: releaseProps.coverImage || void 0,
42189
42236
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Rocket02Icon, { size: 24 }),
42190
42237
  status,
@@ -42201,17 +42248,17 @@ function CampaignChatCard({
42201
42248
  isNewTab,
42202
42249
  discuss
42203
42250
  }) {
42204
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _866 => _866.goals])) ? item.goals.length : 0;
42251
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _868 => _868.goals])) ? item.goals.length : 0;
42205
42252
  const meta = [
42206
- _optionalChain([item, 'optionalAccess', _867 => _867.start_date]) ? formatDateShort(item.start_date) : null,
42253
+ _optionalChain([item, 'optionalAccess', _869 => _869.start_date]) ? formatDateShort(item.start_date) : null,
42207
42254
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
42208
42255
  "Marketing campaign"
42209
42256
  ].filter(Boolean).join(" \xB7 ");
42210
42257
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42211
42258
  EntityMingoCard,
42212
42259
  {
42213
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _868 => _868.name]), () => ( "")),
42214
- description: meta || _optionalChain([item, 'optionalAccess', _869 => _869.description]) || void 0,
42260
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _870 => _870.name]), () => ( "")),
42261
+ description: meta || _optionalChain([item, 'optionalAccess', _871 => _871.description]) || void 0,
42215
42262
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Megaphone01Icon, { size: 24 }),
42216
42263
  chatRef,
42217
42264
  isNewTab,
@@ -42264,14 +42311,14 @@ function BlogChatCard({
42264
42311
  hasEmbeddedVideo,
42265
42312
  discuss
42266
42313
  }) {
42267
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _870 => _870.categories])) ? _optionalChain([item, 'access', _871 => _871.categories, 'access', _872 => _872.find, 'call', _873 => _873((c) => c && c.name), 'optionalAccess', _874 => _874.name]) : void 0;
42314
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _872 => _872.categories])) ? _optionalChain([item, 'access', _873 => _873.categories, 'access', _874 => _874.find, 'call', _875 => _875((c) => c && c.name), 'optionalAccess', _876 => _876.name]) : void 0;
42268
42315
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
42269
42316
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42270
42317
  EntityMingoCard,
42271
42318
  {
42272
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _875 => _875.title]), () => ( "")),
42273
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _876 => _876.summary]), () => ( void 0)),
42274
- cover: entityCover(_optionalChain([item, 'optionalAccess', _877 => _877.featured_image]), ogPlaceholder),
42319
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _877 => _877.title]), () => ( "")),
42320
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _878 => _878.summary]), () => ( void 0)),
42321
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _879 => _879.featured_image]), ogPlaceholder),
42275
42322
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.NewspaperIcon, { size: 24 }),
42276
42323
  status,
42277
42324
  chatRef,
@@ -42288,13 +42335,13 @@ function CaseStudyChatCard({
42288
42335
  ogPlaceholder,
42289
42336
  discuss
42290
42337
  }) {
42291
- const meta = [_optionalChain([item, 'optionalAccess', _878 => _878.msp, 'optionalAccess', _879 => _879.name]), _optionalChain([item, 'optionalAccess', _880 => _880.user, 'optionalAccess', _881 => _881.full_name])].filter(Boolean).join(" \xB7 ");
42338
+ const meta = [_optionalChain([item, 'optionalAccess', _880 => _880.msp, 'optionalAccess', _881 => _881.name]), _optionalChain([item, 'optionalAccess', _882 => _882.user, 'optionalAccess', _883 => _883.full_name])].filter(Boolean).join(" \xB7 ");
42292
42339
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42293
42340
  EntityMingoCard,
42294
42341
  {
42295
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _882 => _882.title]), () => ( "")),
42296
- description: _optionalChain([item, 'optionalAccess', _883 => _883.summary]) || meta || void 0,
42297
- cover: entityCover(_optionalChain([item, 'optionalAccess', _884 => _884.featured_image]), ogPlaceholder),
42342
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _884 => _884.title]), () => ( "")),
42343
+ description: _optionalChain([item, 'optionalAccess', _885 => _885.summary]) || meta || void 0,
42344
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _886 => _886.featured_image]), ogPlaceholder),
42298
42345
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.TrophyIcon, { size: 24 }),
42299
42346
  status: { label: "Case study", variant: "grey" },
42300
42347
  chatRef,
@@ -42311,13 +42358,13 @@ function CustomerInterviewChatCard({
42311
42358
  ogPlaceholder,
42312
42359
  discuss
42313
42360
  }) {
42314
- const meta = [_optionalChain([item, 'optionalAccess', _885 => _885.user, 'optionalAccess', _886 => _886.full_name]), _optionalChain([item, 'optionalAccess', _887 => _887.msp, 'optionalAccess', _888 => _888.name])].filter(Boolean).join(" \xB7 ");
42361
+ const meta = [_optionalChain([item, 'optionalAccess', _887 => _887.user, 'optionalAccess', _888 => _888.full_name]), _optionalChain([item, 'optionalAccess', _889 => _889.msp, 'optionalAccess', _890 => _890.name])].filter(Boolean).join(" \xB7 ");
42315
42362
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42316
42363
  EntityMingoCard,
42317
42364
  {
42318
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _889 => _889.title]), () => ( "")),
42319
- description: _optionalChain([item, 'optionalAccess', _890 => _890.video_summary]) || meta || void 0,
42320
- cover: entityCover(_optionalChain([item, 'optionalAccess', _891 => _891.featured_image]), ogPlaceholder),
42365
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _891 => _891.title]), () => ( "")),
42366
+ description: _optionalChain([item, 'optionalAccess', _892 => _892.video_summary]) || meta || void 0,
42367
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _893 => _893.featured_image]), ogPlaceholder),
42321
42368
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.MicrophoneIcon, { size: 24 }),
42322
42369
  status: { label: "Interview", variant: "grey" },
42323
42370
  chatRef,
@@ -42334,13 +42381,13 @@ function InvestorUpdateChatCard({
42334
42381
  ogPlaceholder,
42335
42382
  discuss
42336
42383
  }) {
42337
- const title = _optionalChain([item, 'optionalAccess', _892 => _892.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _893 => _893.update_number]), () => ( "?"))}`;
42384
+ const title = _optionalChain([item, 'optionalAccess', _894 => _894.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _895 => _895.update_number]), () => ( "?"))}`;
42338
42385
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42339
42386
  EntityMingoCard,
42340
42387
  {
42341
42388
  title,
42342
- description: _optionalChain([item, 'optionalAccess', _894 => _894.strategic_update]) || _optionalChain([item, 'optionalAccess', _895 => _895.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _896 => _896.period_start]), _optionalChain([item, 'optionalAccess', _897 => _897.period_end])) || void 0,
42343
- cover: entityCover(_optionalChain([item, 'optionalAccess', _898 => _898.featured_image]), ogPlaceholder),
42389
+ description: _optionalChain([item, 'optionalAccess', _896 => _896.strategic_update]) || _optionalChain([item, 'optionalAccess', _897 => _897.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _898 => _898.period_start]), _optionalChain([item, 'optionalAccess', _899 => _899.period_end])) || void 0,
42390
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _900 => _900.featured_image]), ogPlaceholder),
42344
42391
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.PresentationLineIcon, { size: 24 }),
42345
42392
  status: { label: "Investor update", variant: "grey" },
42346
42393
  chatRef,
@@ -42357,12 +42404,12 @@ function OnboardingGuideChatCard({
42357
42404
  ogPlaceholder,
42358
42405
  discuss
42359
42406
  }) {
42360
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _899 => _899.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _900 => _900.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _901 => _901.og_image_url]), ogPlaceholder)));
42407
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _901 => _901.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _902 => _902.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _903 => _903.og_image_url]), ogPlaceholder)));
42361
42408
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42362
42409
  EntityMingoCard,
42363
42410
  {
42364
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _902 => _902.title]), () => ( "")),
42365
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _903 => _903.summary]), () => ( _optionalChain([item, 'optionalAccess', _904 => _904.description]))), () => ( void 0)),
42411
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _904 => _904.title]), () => ( "")),
42412
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _905 => _905.summary]), () => ( _optionalChain([item, 'optionalAccess', _906 => _906.description]))), () => ( void 0)),
42366
42413
  cover,
42367
42414
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.CompassIcon, { size: 24 }),
42368
42415
  status: { label: "Guide", variant: "grey" },
@@ -42383,25 +42430,25 @@ function ProgramChatCard({
42383
42430
  discuss
42384
42431
  }) {
42385
42432
  const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.MicrophoneIcon, { size: 24 });
42386
- const isScheduled = _optionalChain([item, 'optionalAccess', _905 => _905.status]) === "scheduled";
42433
+ const isScheduled = _optionalChain([item, 'optionalAccess', _907 => _907.status]) === "scheduled";
42387
42434
  let typeMeta;
42388
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _906 => _906.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
42435
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _908 => _908.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
42389
42436
  typeMeta = formatDurationCompact(item.duration_seconds);
42390
- } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _907 => _907.location_name]) === "string" && item.location_name.trim().length > 0) {
42437
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _909 => _909.location_name]) === "string" && item.location_name.trim().length > 0) {
42391
42438
  typeMeta = item.location_name;
42392
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _908 => _908.start_at])) {
42439
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _910 => _910.start_at])) {
42393
42440
  const time = formatTimeWithTimezone(item.start_at, _nullishCoalesce(item.timezone, () => ( null)));
42394
42441
  const dur = formatDurationFromRange(item.start_at, item.end_at);
42395
42442
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
42396
42443
  }
42397
- const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _909 => _909.date]), () => ( null)), { fallback: "", timezone: "local" });
42444
+ const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _911 => _911.date]), () => ( null)), { fallback: "", timezone: "local" });
42398
42445
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
42399
42446
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42400
42447
  EntityMingoCard,
42401
42448
  {
42402
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _910 => _910.title]), () => ( "")),
42403
- description: meta || _optionalChain([item, 'optionalAccess', _911 => _911.description]) || void 0,
42404
- cover: entityCover(_optionalChain([item, 'optionalAccess', _912 => _912.cover_url]), ogPlaceholder),
42449
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _912 => _912.title]), () => ( "")),
42450
+ description: meta || _optionalChain([item, 'optionalAccess', _913 => _913.description]) || void 0,
42451
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _914 => _914.cover_url]), ogPlaceholder),
42405
42452
  fallbackIcon: icon,
42406
42453
  status: { label, variant: "grey" },
42407
42454
  chatRef,
@@ -42418,10 +42465,10 @@ function RoadmapChatCard({
42418
42465
  cardType,
42419
42466
  discuss
42420
42467
  }) {
42421
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _913 => _913.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
42422
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _914 => _914.customItemId]) != null;
42468
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _915 => _915.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
42469
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _916 => _916.customItemId]) != null;
42423
42470
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.MapIcon, { size: 24 });
42424
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _915 => _915.customItemId]), className: "size-6" }) : logoUrl ? (
42471
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _917 => _917.customItemId]), className: "size-6" }) : logoUrl ? (
42425
42472
  // Contained (not full-bleed) so the integration logo keeps its aspect
42426
42473
  // ratio inside the bordered icon box — matches RoadmapCard.
42427
42474
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -42429,10 +42476,10 @@ function RoadmapChatCard({
42429
42476
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42430
42477
  EntityMingoCard,
42431
42478
  {
42432
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _916 => _916.title]), () => ( "")),
42433
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _917 => _917.description]), () => ( void 0)),
42479
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _918 => _918.title]), () => ( "")),
42480
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _919 => _919.description]), () => ( void 0)),
42434
42481
  fallbackIcon: icon,
42435
- status: statusPill(_optionalChain([item, 'optionalAccess', _918 => _918.status])),
42482
+ status: statusPill(_optionalChain([item, 'optionalAccess', _920 => _920.status])),
42436
42483
  chatRef,
42437
42484
  isNewTab,
42438
42485
  discuss,
@@ -42518,7 +42565,7 @@ function programRegistryEntries() {
42518
42565
  discuss: opts.discuss,
42519
42566
  configKey: cfg.configKey,
42520
42567
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
42521
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _919 => _919.extras, 'optionalAccess', _920 => _920.buildOgPlaceholderUrl, 'optionalCall', _921 => _921(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _922 => _922.title]), () => ( "")))]), () => ( null))
42568
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _921 => _921.extras, 'optionalAccess', _922 => _922.buildOgPlaceholderUrl, 'optionalCall', _923 => _923(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _924 => _924.title]), () => ( "")))]), () => ( null))
42522
42569
  }
42523
42570
  )
42524
42571
  };
@@ -42670,8 +42717,8 @@ var CHAT_CARD_REGISTRY = {
42670
42717
  chatRef,
42671
42718
  isNewTab: opts.isNewTab,
42672
42719
  discuss: opts.discuss,
42673
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _923 => _923.extras, 'optionalAccess', _924 => _924.buildOgPlaceholderUrl, 'optionalCall', _925 => _925(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _926 => _926.title]), () => ( "")))]), () => ( null)),
42674
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _927 => _927.metadata, 'optionalAccess', _928 => _928.hasEmbeddedVideo]) === true
42720
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _925 => _925.extras, 'optionalAccess', _926 => _926.buildOgPlaceholderUrl, 'optionalCall', _927 => _927(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _928 => _928.title]), () => ( "")))]), () => ( null)),
42721
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _929 => _929.metadata, 'optionalAccess', _930 => _930.hasEmbeddedVideo]) === true
42675
42722
  }
42676
42723
  )
42677
42724
  },
@@ -42688,7 +42735,7 @@ var CHAT_CARD_REGISTRY = {
42688
42735
  chatRef,
42689
42736
  isNewTab: opts.isNewTab,
42690
42737
  discuss: opts.discuss,
42691
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _929 => _929.extras, 'optionalAccess', _930 => _930.buildOgPlaceholderUrl, 'optionalCall', _931 => _931(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _932 => _932.title]), () => ( "")))]), () => ( null))
42738
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _931 => _931.extras, 'optionalAccess', _932 => _932.buildOgPlaceholderUrl, 'optionalCall', _933 => _933(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _934 => _934.title]), () => ( "")))]), () => ( null))
42692
42739
  }
42693
42740
  )
42694
42741
  },
@@ -42705,7 +42752,7 @@ var CHAT_CARD_REGISTRY = {
42705
42752
  chatRef,
42706
42753
  isNewTab: opts.isNewTab,
42707
42754
  discuss: opts.discuss,
42708
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _933 => _933.extras, 'optionalAccess', _934 => _934.buildOgPlaceholderUrl, 'optionalCall', _935 => _935(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _936 => _936.title]), () => ( "")))]), () => ( null))
42755
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _935 => _935.extras, 'optionalAccess', _936 => _936.buildOgPlaceholderUrl, 'optionalCall', _937 => _937(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _938 => _938.title]), () => ( "")))]), () => ( null))
42709
42756
  }
42710
42757
  )
42711
42758
  },
@@ -42716,7 +42763,7 @@ var CHAT_CARD_REGISTRY = {
42716
42763
  bareInline: true,
42717
42764
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
42718
42765
  render: (item, chatRef, opts) => {
42719
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _937 => _937.extras, 'optionalAccess', _938 => _938.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
42766
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _939 => _939.extras, 'optionalAccess', _940 => _940.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
42720
42767
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42721
42768
  ProductReleaseChatCard,
42722
42769
  {
@@ -42743,7 +42790,7 @@ var CHAT_CARD_REGISTRY = {
42743
42790
  chatRef,
42744
42791
  isNewTab: opts.isNewTab,
42745
42792
  discuss: opts.discuss,
42746
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _939 => _939.extras, 'optionalAccess', _940 => _940.buildOgPlaceholderUrl, 'optionalCall', _941 => _941(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _942 => _942.title]), () => ( "")))]), () => ( null))
42793
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _941 => _941.extras, 'optionalAccess', _942 => _942.buildOgPlaceholderUrl, 'optionalCall', _943 => _943(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _944 => _944.title]), () => ( "")))]), () => ( null))
42747
42794
  }
42748
42795
  )
42749
42796
  },
@@ -42762,7 +42809,7 @@ var CHAT_CARD_REGISTRY = {
42762
42809
  chatRef,
42763
42810
  isNewTab: opts.isNewTab,
42764
42811
  discuss: opts.discuss,
42765
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _943 => _943.extras, 'optionalAccess', _944 => _944.buildOgPlaceholderUrl, 'optionalCall', _945 => _945(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _946 => _946.title]), () => ( "")))]), () => ( null))
42812
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _945 => _945.extras, 'optionalAccess', _946 => _946.buildOgPlaceholderUrl, 'optionalCall', _947 => _947(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _948 => _948.title]), () => ( "")))]), () => ( null))
42766
42813
  }
42767
42814
  )
42768
42815
  },
@@ -42774,7 +42821,7 @@ var CHAT_CARD_REGISTRY = {
42774
42821
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
42775
42822
  // No public viewer — synthesize the hub-internal admin URL post-fetch
42776
42823
  // so the wrapper + isNewTab computation see the actual destination.
42777
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _947 => _947.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
42824
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _949 => _949.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
42778
42825
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42779
42826
  CampaignChatCard,
42780
42827
  {
@@ -42800,12 +42847,12 @@ function ChatCardNavWrap({
42800
42847
  const onClickCapture = (e) => {
42801
42848
  if (!href) return;
42802
42849
  const targetEl = e.target;
42803
- if (_optionalChain([targetEl, 'optionalAccess', _948 => _948.closest, 'optionalCall', _949 => _949("button")])) return;
42804
- if (!_optionalChain([targetEl, 'optionalAccess', _950 => _950.closest, 'optionalCall', _951 => _951("a")])) return;
42850
+ if (_optionalChain([targetEl, 'optionalAccess', _950 => _950.closest, 'optionalCall', _951 => _951("button")])) return;
42851
+ if (!_optionalChain([targetEl, 'optionalAccess', _952 => _952.closest, 'optionalCall', _953 => _953("a")])) return;
42805
42852
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
42806
42853
  if (!handled) return;
42807
42854
  e.stopPropagation();
42808
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _952 => _952.closeChat])) panel.closeChat();
42855
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _954 => _954.closeChat])) panel.closeChat();
42809
42856
  };
42810
42857
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
42811
42858
  }
@@ -42827,7 +42874,7 @@ function ChatCardLoader({
42827
42874
  title: chatRef.title,
42828
42875
  externalUrl: chatRef.url,
42829
42876
  targetPlatform: chatRef.targetPlatform,
42830
- path: typeof _optionalChain([chatRef, 'access', _953 => _953.metadata, 'optionalAccess', _954 => _954.path]) === "string" ? chatRef.metadata.path : null
42877
+ path: typeof _optionalChain([chatRef, 'access', _955 => _955.metadata, 'optionalAccess', _956 => _956.path]) === "string" ? chatRef.metadata.path : null
42831
42878
  },
42832
42879
  sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
42833
42880
  );
@@ -42841,7 +42888,7 @@ function ChatCardLoader({
42841
42888
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
42842
42889
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
42843
42890
  const { item, isLoading } = useChatCardItem(
42844
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _955 => _955.contentRefType]), () => ( "")),
42891
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _957 => _957.contentRefType]), () => ( "")),
42845
42892
  fetchEntry ? resolvedChatRef.id : ""
42846
42893
  );
42847
42894
  if (!entry) return null;
@@ -42872,7 +42919,7 @@ function ChatCardLoader({
42872
42919
  isNewTab,
42873
42920
  discuss
42874
42921
  };
42875
- const path = typeof _optionalChain([finalChatRef, 'access', _956 => _956.metadata, 'optionalAccess', _957 => _957.path]) === "string" ? finalChatRef.metadata.path : null;
42922
+ const path = typeof _optionalChain([finalChatRef, 'access', _958 => _958.metadata, 'optionalAccess', _959 => _959.path]) === "string" ? finalChatRef.metadata.path : null;
42876
42923
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42877
42924
  ChatCardNavWrap,
42878
42925
  {
@@ -43258,7 +43305,7 @@ function useJetStreamDialogSubscription({
43258
43305
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
43259
43306
  conn: sharedConn,
43260
43307
  wsUrl,
43261
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _958 => _958.current, 'optionalCall', _959 => _959()]),
43308
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _960 => _960.current, 'optionalCall', _961 => _961()]),
43262
43309
  backoff: reconnectionBackoffRef.current,
43263
43310
  getFreshUrl: () => getNatsWsUrlRef.current(),
43264
43311
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -43273,7 +43320,7 @@ function useJetStreamDialogSubscription({
43273
43320
  setReconnectionCount((c) => c + 1);
43274
43321
  }
43275
43322
  hadConnectionBeforeRef.current = true;
43276
- _optionalChain([onConnectRef, 'access', _960 => _960.current, 'optionalCall', _961 => _961()]);
43323
+ _optionalChain([onConnectRef, 'access', _962 => _962.current, 'optionalCall', _963 => _963()]);
43277
43324
  }
43278
43325
  if (status === "error") {
43279
43326
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -43283,7 +43330,7 @@ function useJetStreamDialogSubscription({
43283
43330
  setIsConnected(false);
43284
43331
  setIsSubscribed(false);
43285
43332
  tearDownSubscription();
43286
- _optionalChain([onDisconnectRef, 'access', _962 => _962.current, 'optionalCall', _963 => _963()]);
43333
+ _optionalChain([onDisconnectRef, 'access', _964 => _964.current, 'optionalCall', _965 => _965()]);
43287
43334
  }
43288
43335
  }
43289
43336
  });
@@ -43362,7 +43409,7 @@ function useJetStreamDialogSubscription({
43362
43409
  }
43363
43410
  subscriptionRef.current = handle;
43364
43411
  setIsSubscribed(true);
43365
- _optionalChain([onSubscribedRef, 'access', _964 => _964.current, 'optionalCall', _965 => _965()]);
43412
+ _optionalChain([onSubscribedRef, 'access', _966 => _966.current, 'optionalCall', _967 => _967()]);
43366
43413
  } catch (e44) {
43367
43414
  if (!cancelled) {
43368
43415
  setIsSubscribed(false);
@@ -43475,20 +43522,20 @@ function useNatsDialogSubscription({
43475
43522
  const tearDownSubscriptions = () => {
43476
43523
  subscriptionRefs.current.forEach((sub) => {
43477
43524
  try {
43478
- _optionalChain([sub, 'optionalAccess', _966 => _966.unsubscribe, 'call', _967 => _967()]);
43525
+ _optionalChain([sub, 'optionalAccess', _968 => _968.unsubscribe, 'call', _969 => _969()]);
43479
43526
  } catch (e46) {
43480
43527
  }
43481
43528
  });
43482
43529
  subscriptionRefs.current.clear();
43483
43530
  lastSubscribedDialogIdRef.current = null;
43484
- _optionalChain([abortControllerRef, 'access', _968 => _968.current, 'optionalAccess', _969 => _969.abort, 'call', _970 => _970()]);
43531
+ _optionalChain([abortControllerRef, 'access', _970 => _970.current, 'optionalAccess', _971 => _971.abort, 'call', _972 => _972()]);
43485
43532
  abortControllerRef.current = null;
43486
43533
  };
43487
43534
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
43488
43535
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
43489
43536
  conn: sharedConn,
43490
43537
  wsUrl,
43491
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _971 => _971.current, 'optionalCall', _972 => _972()]),
43538
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _973 => _973.current, 'optionalCall', _974 => _974()]),
43492
43539
  backoff: reconnectionBackoffRef.current,
43493
43540
  getFreshUrl: () => getNatsWsUrlRef.current(),
43494
43541
  shouldRetryOn: isDisconnectStatus,
@@ -43499,7 +43546,7 @@ function useNatsDialogSubscription({
43499
43546
  setReconnectionCount((c) => c + 1);
43500
43547
  }
43501
43548
  hadConnectionBeforeRef.current = true;
43502
- _optionalChain([onConnectRef, 'access', _973 => _973.current, 'optionalCall', _974 => _974()]);
43549
+ _optionalChain([onConnectRef, 'access', _975 => _975.current, 'optionalCall', _976 => _976()]);
43503
43550
  }
43504
43551
  if (status === "error") {
43505
43552
  console.warn("[NATS] protocol error:", evt.data);
@@ -43509,7 +43556,7 @@ function useNatsDialogSubscription({
43509
43556
  setIsConnected(false);
43510
43557
  setIsSubscribed(false);
43511
43558
  tearDownSubscriptions();
43512
- _optionalChain([onDisconnectRef, 'access', _975 => _975.current, 'optionalCall', _976 => _976()]);
43559
+ _optionalChain([onDisconnectRef, 'access', _977 => _977.current, 'optionalCall', _978 => _978()]);
43513
43560
  }
43514
43561
  }
43515
43562
  });
@@ -43540,13 +43587,13 @@ function useNatsDialogSubscription({
43540
43587
  setIsSubscribed(false);
43541
43588
  subscriptionRefs.current.forEach((sub) => {
43542
43589
  try {
43543
- _optionalChain([sub, 'optionalAccess', _977 => _977.unsubscribe, 'call', _978 => _978()]);
43590
+ _optionalChain([sub, 'optionalAccess', _979 => _979.unsubscribe, 'call', _980 => _980()]);
43544
43591
  } catch (e47) {
43545
43592
  }
43546
43593
  });
43547
43594
  subscriptionRefs.current.clear();
43548
43595
  lastSubscribedDialogIdRef.current = null;
43549
- _optionalChain([abortControllerRef, 'access', _979 => _979.current, 'optionalAccess', _980 => _980.abort, 'call', _981 => _981()]);
43596
+ _optionalChain([abortControllerRef, 'access', _981 => _981.current, 'optionalAccess', _982 => _982.abort, 'call', _983 => _983()]);
43550
43597
  abortControllerRef.current = null;
43551
43598
  }
43552
43599
  return;
@@ -43558,12 +43605,12 @@ function useNatsDialogSubscription({
43558
43605
  if (subscriptionRefs.current.size > 0) {
43559
43606
  subscriptionRefs.current.forEach((sub) => {
43560
43607
  try {
43561
- _optionalChain([sub, 'optionalAccess', _982 => _982.unsubscribe, 'call', _983 => _983()]);
43608
+ _optionalChain([sub, 'optionalAccess', _984 => _984.unsubscribe, 'call', _985 => _985()]);
43562
43609
  } catch (e48) {
43563
43610
  }
43564
43611
  });
43565
43612
  subscriptionRefs.current.clear();
43566
- _optionalChain([abortControllerRef, 'access', _984 => _984.current, 'optionalAccess', _985 => _985.abort, 'call', _986 => _986()]);
43613
+ _optionalChain([abortControllerRef, 'access', _986 => _986.current, 'optionalAccess', _987 => _987.abort, 'call', _988 => _988()]);
43567
43614
  }
43568
43615
  abortControllerRef.current = new AbortController();
43569
43616
  const abort = abortControllerRef.current;
@@ -43595,7 +43642,7 @@ function useNatsDialogSubscription({
43595
43642
  });
43596
43643
  lastSubscribedDialogIdRef.current = dialogId;
43597
43644
  setIsSubscribed(true);
43598
- _optionalChain([onSubscribedRef, 'access', _987 => _987.current, 'optionalCall', _988 => _988()]);
43645
+ _optionalChain([onSubscribedRef, 'access', _989 => _989.current, 'optionalCall', _990 => _990()]);
43599
43646
  };
43600
43647
  if (isConnectedRef.current) {
43601
43648
  createSubscriptions();
@@ -43605,7 +43652,7 @@ function useNatsDialogSubscription({
43605
43652
  abort.abort();
43606
43653
  subscriptionRefs.current.forEach((sub) => {
43607
43654
  try {
43608
- _optionalChain([sub, 'optionalAccess', _989 => _989.unsubscribe, 'call', _990 => _990()]);
43655
+ _optionalChain([sub, 'optionalAccess', _991 => _991.unsubscribe, 'call', _992 => _992()]);
43609
43656
  } catch (e50) {
43610
43657
  }
43611
43658
  });
@@ -43646,7 +43693,7 @@ function useNatsDialogSubscription({
43646
43693
  });
43647
43694
  lastSubscribedDialogIdRef.current = dialogId2;
43648
43695
  setIsSubscribed(true);
43649
- _optionalChain([onSubscribedRef, 'access', _991 => _991.current, 'optionalCall', _992 => _992()]);
43696
+ _optionalChain([onSubscribedRef, 'access', _993 => _993.current, 'optionalCall', _994 => _994()]);
43650
43697
  } else if (subscriptionRefs.current.size > 0) {
43651
43698
  setIsSubscribed(true);
43652
43699
  }
@@ -43654,10 +43701,10 @@ function useNatsDialogSubscription({
43654
43701
  return { isConnected, isSubscribed, reconnectionCount };
43655
43702
  }
43656
43703
  function buildNatsWsUrl(apiBaseUrl, options) {
43657
- const path = _optionalChain([options, 'optionalAccess', _993 => _993.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
43704
+ const path = _optionalChain([options, 'optionalAccess', _995 => _995.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
43658
43705
  const u = new URL(path, apiBaseUrl);
43659
43706
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
43660
- if (_optionalChain([options, 'optionalAccess', _994 => _994.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _995 => _995.token])) {
43707
+ if (_optionalChain([options, 'optionalAccess', _996 => _996.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _997 => _997.token])) {
43661
43708
  u.searchParams.set("authorization", options.token);
43662
43709
  }
43663
43710
  return u.toString();
@@ -43793,7 +43840,7 @@ function parseChunkToAction(chunk) {
43793
43840
  // is REQUIRED on `ChatContextItem`, so fall back to the id (same as the
43794
43841
  // historical path in `process-historical-messages.ts`) — keeps both
43795
43842
  // message sources producing an identical shape.
43796
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _996 => _996.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _997 => _997.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
43843
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _998 => _998.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _999 => _999.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
43797
43844
  };
43798
43845
  case MESSAGE_TYPE.TOKEN_USAGE:
43799
43846
  return {
@@ -43985,8 +44032,8 @@ var MessageSegmentAccumulator = class {
43985
44032
  type: "tool_execution",
43986
44033
  data: {
43987
44034
  ...toolData,
43988
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _998 => _998.data, 'access', _999 => _999.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1000 => _1000.toolTitle]))),
43989
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1001 => _1001.parameters])
44035
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1000 => _1000.data, 'access', _1001 => _1001.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1002 => _1002.toolTitle]))),
44036
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1003 => _1003.parameters])
43990
44037
  }
43991
44038
  };
43992
44039
  if (existingIndex !== -1) {
@@ -44010,8 +44057,8 @@ var MessageSegmentAccumulator = class {
44010
44057
  if (seg.type !== "approval_batch") return seg;
44011
44058
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
44012
44059
  if (!hasCall) return seg;
44013
- const prev = _optionalChain([seg, 'access', _1002 => _1002.data, 'access', _1003 => _1003.executions, 'optionalAccess', _1004 => _1004[execId]]);
44014
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1005 => _1005.result]), success: _optionalChain([prev, 'optionalAccess', _1006 => _1006.success]) };
44060
+ const prev = _optionalChain([seg, 'access', _1004 => _1004.data, 'access', _1005 => _1005.executions, 'optionalAccess', _1006 => _1006[execId]]);
44061
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1007 => _1007.result]), success: _optionalChain([prev, 'optionalAccess', _1008 => _1008.success]) };
44015
44062
  matched = true;
44016
44063
  return {
44017
44064
  ...seg,
@@ -44133,10 +44180,10 @@ var MessageSegmentAccumulator = class {
44133
44180
  const segment = {
44134
44181
  type: "approval_request",
44135
44182
  data: {
44136
- command: _optionalChain([pendingApproval, 'optionalAccess', _1007 => _1007.command]) || "",
44137
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _1008 => _1008.explanation]),
44183
+ command: _optionalChain([pendingApproval, 'optionalAccess', _1009 => _1009.command]) || "",
44184
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _1010 => _1010.explanation]),
44138
44185
  requestId,
44139
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1009 => _1009.approvalType]) || approvalType
44186
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1011 => _1011.approvalType]) || approvalType
44140
44187
  },
44141
44188
  status,
44142
44189
  onApprove: this.callbacks.onApprove,
@@ -44328,7 +44375,7 @@ function useRealtimeChunkProcessor(options) {
44328
44375
  if (initialState.escalatedApprovals) {
44329
44376
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
44330
44377
  initialState.escalatedApprovals.forEach((data, requestId) => {
44331
- _optionalChain([callbacks, 'access', _1010 => _1010.onEscalatedApproval, 'optionalCall', _1011 => _1011(requestId, data)]);
44378
+ _optionalChain([callbacks, 'access', _1012 => _1012.onEscalatedApproval, 'optionalCall', _1013 => _1013(requestId, data)]);
44332
44379
  });
44333
44380
  }
44334
44381
  hasEverStreamedRef.current = true;
@@ -44349,12 +44396,12 @@ function useRealtimeChunkProcessor(options) {
44349
44396
  if (!action) return;
44350
44397
  const accumulator = accumulatorRef.current;
44351
44398
  const streamSeq = chunk && typeof chunk === "object" && typeof chunk.streamSeq === "number" ? chunk.streamSeq : void 0;
44352
- const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1012 => _1012.onSegmentsUpdate, 'optionalCall', _1013 => _1013(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
44399
+ const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1014 => _1014.onSegmentsUpdate, 'optionalCall', _1015 => _1015(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
44353
44400
  if (action.action === "direct_message") sawDirectMessageRef.current = true;
44354
44401
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
44355
44402
  if (isInStreamRef.current) {
44356
44403
  isInStreamRef.current = false;
44357
- _optionalChain([callbacks, 'access', _1014 => _1014.onStreamEnd, 'optionalCall', _1015 => _1015()]);
44404
+ _optionalChain([callbacks, 'access', _1016 => _1016.onStreamEnd, 'optionalCall', _1017 => _1017()]);
44358
44405
  accumulator.resetSegments();
44359
44406
  }
44360
44407
  return;
@@ -44363,16 +44410,16 @@ function useRealtimeChunkProcessor(options) {
44363
44410
  case "message_start":
44364
44411
  isInStreamRef.current = true;
44365
44412
  hasEverStreamedRef.current = true;
44366
- _optionalChain([callbacks, 'access', _1016 => _1016.onStreamStart, 'optionalCall', _1017 => _1017()]);
44413
+ _optionalChain([callbacks, 'access', _1018 => _1018.onStreamStart, 'optionalCall', _1019 => _1019()]);
44367
44414
  accumulator.resetSegments();
44368
44415
  break;
44369
44416
  case "message_end":
44370
44417
  isInStreamRef.current = false;
44371
- _optionalChain([callbacks, 'access', _1018 => _1018.onStreamEnd, 'optionalCall', _1019 => _1019()]);
44418
+ _optionalChain([callbacks, 'access', _1020 => _1020.onStreamEnd, 'optionalCall', _1021 => _1021()]);
44372
44419
  accumulator.resetSegments();
44373
44420
  break;
44374
44421
  case "metadata":
44375
- _optionalChain([callbacks, 'access', _1020 => _1020.onMetadata, 'optionalCall', _1021 => _1021(action)]);
44422
+ _optionalChain([callbacks, 'access', _1022 => _1022.onMetadata, 'optionalCall', _1023 => _1023(action)]);
44376
44423
  break;
44377
44424
  case "text": {
44378
44425
  const segments = accumulator.appendText(action.text);
@@ -44415,7 +44462,7 @@ function useRealtimeChunkProcessor(options) {
44415
44462
  emitSegments(segments);
44416
44463
  } else {
44417
44464
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
44418
- _optionalChain([callbacks, 'access', _1022 => _1022.onEscalatedApproval, 'optionalCall', _1023 => _1023(requestId, { command, explanation, approvalType })]);
44465
+ _optionalChain([callbacks, 'access', _1024 => _1024.onEscalatedApproval, 'optionalCall', _1025 => _1025(requestId, { command, explanation, approvalType })]);
44419
44466
  }
44420
44467
  break;
44421
44468
  }
@@ -44427,13 +44474,13 @@ function useRealtimeChunkProcessor(options) {
44427
44474
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
44428
44475
  pendingEscalatedRef.current.set(requestId, {
44429
44476
  command: summary,
44430
- explanation: _optionalChain([required, 'optionalAccess', _1024 => _1024.toolExplanation]),
44477
+ explanation: _optionalChain([required, 'optionalAccess', _1026 => _1026.toolExplanation]),
44431
44478
  approvalType,
44432
44479
  toolCalls
44433
44480
  });
44434
- _optionalChain([callbacks, 'access', _1025 => _1025.onEscalatedApproval, 'optionalCall', _1026 => _1026(requestId, {
44481
+ _optionalChain([callbacks, 'access', _1027 => _1027.onEscalatedApproval, 'optionalCall', _1028 => _1028(requestId, {
44435
44482
  command: summary,
44436
- explanation: _optionalChain([required, 'optionalAccess', _1027 => _1027.toolExplanation]),
44483
+ explanation: _optionalChain([required, 'optionalAccess', _1029 => _1029.toolExplanation]),
44437
44484
  approvalType
44438
44485
  })]);
44439
44486
  break;
@@ -44463,7 +44510,7 @@ function useRealtimeChunkProcessor(options) {
44463
44510
  const status = approved ? "approved" : "rejected";
44464
44511
  if (escalatedData) {
44465
44512
  pendingEscalatedRef.current.delete(requestId);
44466
- _optionalChain([callbacks, 'access', _1028 => _1028.onEscalatedApprovalResult, 'optionalCall', _1029 => _1029(requestId, approved, {
44513
+ _optionalChain([callbacks, 'access', _1030 => _1030.onEscalatedApprovalResult, 'optionalCall', _1031 => _1031(requestId, approved, {
44467
44514
  command: escalatedData.command,
44468
44515
  explanation: escalatedData.explanation,
44469
44516
  approvalType: escalatedData.approvalType
@@ -44509,29 +44556,29 @@ function useRealtimeChunkProcessor(options) {
44509
44556
  emitSegments(accumulator.getSegments());
44510
44557
  }
44511
44558
  }
44512
- _optionalChain([callbacks, 'access', _1030 => _1030.onApprovalResolved, 'optionalCall', _1031 => _1031(requestId, status, approvalType, resolvedByName)]);
44559
+ _optionalChain([callbacks, 'access', _1032 => _1032.onApprovalResolved, 'optionalCall', _1033 => _1033(requestId, status, approvalType, resolvedByName)]);
44513
44560
  break;
44514
44561
  }
44515
44562
  case "error": {
44516
44563
  let message2;
44517
- if ("details" in action && _optionalChain([action, 'optionalAccess', _1032 => _1032.details])) {
44564
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _1034 => _1034.details])) {
44518
44565
  try {
44519
- message2 = _optionalChain([JSON, 'access', _1033 => _1033.parse, 'call', _1034 => _1034(action.details), 'optionalAccess', _1035 => _1035.error, 'optionalAccess', _1036 => _1036.message]);
44566
+ message2 = _optionalChain([JSON, 'access', _1035 => _1035.parse, 'call', _1036 => _1036(action.details), 'optionalAccess', _1037 => _1037.error, 'optionalAccess', _1038 => _1038.message]);
44520
44567
  } catch (e52) {
44521
44568
  message2 = action.details;
44522
44569
  }
44523
44570
  }
44524
44571
  const segments = accumulator.addError(action.error, message2);
44525
44572
  emitSegments(segments);
44526
- _optionalChain([callbacks, 'access', _1037 => _1037.onError, 'optionalCall', _1038 => _1038(action.error, message2)]);
44573
+ _optionalChain([callbacks, 'access', _1039 => _1039.onError, 'optionalCall', _1040 => _1040(action.error, message2)]);
44527
44574
  break;
44528
44575
  }
44529
44576
  case "system": {
44530
- _optionalChain([callbacks, 'access', _1039 => _1039.onSystemMessage, 'optionalCall', _1040 => _1040(action.text, { streamSeq })]);
44577
+ _optionalChain([callbacks, 'access', _1041 => _1041.onSystemMessage, 'optionalCall', _1042 => _1042(action.text, { streamSeq })]);
44531
44578
  break;
44532
44579
  }
44533
44580
  case "direct_message": {
44534
- _optionalChain([callbacks, 'access', _1041 => _1041.onDirectMessage, 'optionalCall', _1042 => _1042(action.text, {
44581
+ _optionalChain([callbacks, 'access', _1043 => _1043.onDirectMessage, 'optionalCall', _1044 => _1044(action.text, {
44535
44582
  ownerType: action.ownerType,
44536
44583
  displayName: action.displayName,
44537
44584
  userId: action.userId,
@@ -44540,7 +44587,7 @@ function useRealtimeChunkProcessor(options) {
44540
44587
  break;
44541
44588
  }
44542
44589
  case "message_request":
44543
- _optionalChain([callbacks, 'access', _1043 => _1043.onUserMessage, 'optionalCall', _1044 => _1044(action.text, {
44590
+ _optionalChain([callbacks, 'access', _1045 => _1045.onUserMessage, 'optionalCall', _1046 => _1046(action.text, {
44544
44591
  ownerType: action.ownerType,
44545
44592
  displayName: action.displayName,
44546
44593
  userId: action.userId,
@@ -44549,7 +44596,7 @@ function useRealtimeChunkProcessor(options) {
44549
44596
  })]);
44550
44597
  break;
44551
44598
  case "token_usage":
44552
- _optionalChain([callbacks, 'access', _1045 => _1045.onTokenUsage, 'optionalCall', _1046 => _1046(action.data)]);
44599
+ _optionalChain([callbacks, 'access', _1047 => _1047.onTokenUsage, 'optionalCall', _1048 => _1048(action.data)]);
44553
44600
  break;
44554
44601
  case "context_compaction_start": {
44555
44602
  const standalone = !isInStreamRef.current;
@@ -44564,7 +44611,7 @@ function useRealtimeChunkProcessor(options) {
44564
44611
  break;
44565
44612
  }
44566
44613
  case "dialog_closed":
44567
- _optionalChain([callbacks, 'access', _1047 => _1047.onDialogClosed, 'optionalCall', _1048 => _1048()]);
44614
+ _optionalChain([callbacks, 'access', _1049 => _1049.onDialogClosed, 'optionalCall', _1050 => _1050()]);
44568
44615
  break;
44569
44616
  default:
44570
44617
  break;
@@ -44611,7 +44658,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
44611
44658
  const data = await res.json();
44612
44659
  return _nullishCoalesce(data.commands, () => ( []));
44613
44660
  } catch (err) {
44614
- if (_optionalChain([err, 'optionalAccess', _1049 => _1049.name]) === "AbortError") throw err;
44661
+ if (_optionalChain([err, 'optionalAccess', _1051 => _1051.name]) === "AbortError") throw err;
44615
44662
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
44616
44663
  return [];
44617
44664
  }
@@ -44632,7 +44679,7 @@ function useSlashCommands(prefix, commandsUrl) {
44632
44679
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
44633
44680
  if (!cancelled) setCommands(next);
44634
44681
  } catch (err) {
44635
- if (!cancelled && _optionalChain([err, 'optionalAccess', _1050 => _1050.name]) !== "AbortError") {
44682
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _1052 => _1052.name]) !== "AbortError") {
44636
44683
  console.warn("[use-slash-commands] fetch failed:", err);
44637
44684
  }
44638
44685
  } finally {
@@ -44651,7 +44698,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
44651
44698
  const query = _reactquery.useQuery.call(void 0, {
44652
44699
  queryKey: ["chat-slash-commands", commandsUrl],
44653
44700
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
44654
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1051 => _1051.enabled]), () => ( true)),
44701
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1053 => _1053.enabled]), () => ( true)),
44655
44702
  staleTime: Infinity,
44656
44703
  gcTime: Infinity,
44657
44704
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -44687,18 +44734,18 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
44687
44734
  }
44688
44735
  const data = await res.json();
44689
44736
  return {
44690
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1052 => _1052.greeting]), () => ( null)),
44691
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1053 => _1053.enabledRagTableIds]), () => ( [])),
44692
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1054 => _1054.suggestedQueries]), () => ( []))
44737
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1054 => _1054.greeting]), () => ( null)),
44738
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1055 => _1055.enabledRagTableIds]), () => ( [])),
44739
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1056 => _1056.suggestedQueries]), () => ( []))
44693
44740
  };
44694
44741
  } catch (err) {
44695
- if (_optionalChain([err, 'optionalAccess', _1055 => _1055.name]) === "AbortError") throw err;
44742
+ if (_optionalChain([err, 'optionalAccess', _1057 => _1057.name]) === "AbortError") throw err;
44696
44743
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
44697
44744
  return EMPTY_STATE_FALLBACK;
44698
44745
  }
44699
44746
  }
44700
44747
  function useEmptyStateConfig(emptyStateUrl, options) {
44701
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1056 => _1056.enabled]), () => ( true))) && !!emptyStateUrl;
44748
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1058 => _1058.enabled]), () => ( true))) && !!emptyStateUrl;
44702
44749
  const query = _reactquery.useQuery.call(void 0, {
44703
44750
  queryKey: ["chat-empty-state", emptyStateUrl],
44704
44751
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -44727,7 +44774,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
44727
44774
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
44728
44775
  function uploadWithProgress(url, file, token, onProgress, signal) {
44729
44776
  return new Promise((resolve, reject) => {
44730
- if (_optionalChain([signal, 'optionalAccess', _1057 => _1057.aborted])) {
44777
+ if (_optionalChain([signal, 'optionalAccess', _1059 => _1059.aborted])) {
44731
44778
  reject(new Error("Upload cancelled"));
44732
44779
  return;
44733
44780
  }
@@ -44741,7 +44788,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
44741
44788
  xhr.removeEventListener("error", handleError);
44742
44789
  xhr.removeEventListener("abort", handleAbort);
44743
44790
  xhr.removeEventListener("timeout", handleTimeout);
44744
- _optionalChain([signal, 'optionalAccess', _1058 => _1058.removeEventListener, 'call', _1059 => _1059("abort", handleSignalAbort)]);
44791
+ _optionalChain([signal, 'optionalAccess', _1060 => _1060.removeEventListener, 'call', _1061 => _1061("abort", handleSignalAbort)]);
44745
44792
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
44746
44793
  };
44747
44794
  const handleProgress = (event) => {
@@ -44777,7 +44824,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
44777
44824
  const handleSignalAbort = () => {
44778
44825
  xhr.abort();
44779
44826
  };
44780
- _optionalChain([signal, 'optionalAccess', _1060 => _1060.addEventListener, 'call', _1061 => _1061("abort", handleSignalAbort, { once: true })]);
44827
+ _optionalChain([signal, 'optionalAccess', _1062 => _1062.addEventListener, 'call', _1063 => _1063("abort", handleSignalAbort, { once: true })]);
44781
44828
  xhr.upload.addEventListener("progress", handleProgress);
44782
44829
  xhr.addEventListener("load", handleLoad);
44783
44830
  xhr.addEventListener("error", handleError);
@@ -44821,12 +44868,12 @@ function useChatAttachments() {
44821
44868
  try {
44822
44869
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
44823
44870
  } catch (err) {
44824
- if (_optionalChain([ctrl, 'optionalAccess', _1062 => _1062.signal, 'access', _1063 => _1063.aborted])) return;
44871
+ if (_optionalChain([ctrl, 'optionalAccess', _1064 => _1064.signal, 'access', _1065 => _1065.aborted])) return;
44825
44872
  throw new Error(
44826
44873
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
44827
44874
  );
44828
44875
  }
44829
- if (_optionalChain([ctrl, 'optionalAccess', _1064 => _1064.signal, 'access', _1065 => _1065.aborted])) return;
44876
+ if (_optionalChain([ctrl, 'optionalAccess', _1066 => _1066.signal, 'access', _1067 => _1067.aborted])) return;
44830
44877
  if (!sniffed) {
44831
44878
  throw new Error("Unrecognized file format");
44832
44879
  }
@@ -44840,7 +44887,7 @@ function useChatAttachments() {
44840
44887
  const urlResp = await _chunk27IO7V3Pcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
44841
44888
  method: "POST",
44842
44889
  headers: { "Content-Type": "application/json" },
44843
- signal: _optionalChain([ctrl, 'optionalAccess', _1066 => _1066.signal]),
44890
+ signal: _optionalChain([ctrl, 'optionalAccess', _1068 => _1068.signal]),
44844
44891
  body: JSON.stringify({
44845
44892
  fileName: att.file.name,
44846
44893
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -44866,9 +44913,9 @@ function useChatAttachments() {
44866
44913
  (pct) => {
44867
44914
  updateOne(att.id, { progress: pct });
44868
44915
  },
44869
- _optionalChain([ctrl, 'optionalAccess', _1067 => _1067.signal])
44916
+ _optionalChain([ctrl, 'optionalAccess', _1069 => _1069.signal])
44870
44917
  );
44871
- if (_optionalChain([ctrl, 'optionalAccess', _1068 => _1068.signal, 'access', _1069 => _1069.aborted])) return;
44918
+ if (_optionalChain([ctrl, 'optionalAccess', _1070 => _1070.signal, 'access', _1071 => _1071.aborted])) return;
44872
44919
  updateOne(att.id, {
44873
44920
  status: "ready",
44874
44921
  progress: 100,
@@ -44876,7 +44923,7 @@ function useChatAttachments() {
44876
44923
  viewToken: mintData.viewToken
44877
44924
  });
44878
44925
  } catch (err) {
44879
- if (_optionalChain([ctrl, 'optionalAccess', _1070 => _1070.signal, 'access', _1071 => _1071.aborted])) return;
44926
+ if (_optionalChain([ctrl, 'optionalAccess', _1072 => _1072.signal, 'access', _1073 => _1073.aborted])) return;
44880
44927
  const message2 = err instanceof Error ? err.message : String(err);
44881
44928
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
44882
44929
  } finally {
@@ -45027,7 +45074,7 @@ var ANON_DEFAULTS = {
45027
45074
  function useResolveChatIdentity(enabled) {
45028
45075
  const runtime = _chunkN2DVKXN4cjs.useRequiredChatRuntime.call(void 0, );
45029
45076
  const url = runtime.endpoints.identityUrl;
45030
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunk27IO7V3Pcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1072 => _1072.email]), () => ( null));
45077
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunk27IO7V3Pcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1074 => _1074.email]), () => ( null));
45031
45078
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
45032
45079
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
45033
45080
  _react.useEffect.call(void 0, () => {
@@ -45118,7 +45165,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
45118
45165
  yield chunk;
45119
45166
  }
45120
45167
  } catch (err) {
45121
- if (_optionalChain([err, 'optionalAccess', _1073 => _1073.name]) === "AbortError" || ctrl.signal.aborted) {
45168
+ if (_optionalChain([err, 'optionalAccess', _1075 => _1075.name]) === "AbortError" || ctrl.signal.aborted) {
45122
45169
  return;
45123
45170
  }
45124
45171
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -45169,7 +45216,7 @@ function useChat({
45169
45216
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
45170
45217
  onMessagesChangeRef.current = onMessagesChange;
45171
45218
  _react.useEffect.call(void 0, () => {
45172
- _optionalChain([onMessagesChangeRef, 'access', _1074 => _1074.current, 'optionalCall', _1075 => _1075(messages)]);
45219
+ _optionalChain([onMessagesChangeRef, 'access', _1076 => _1076.current, 'optionalCall', _1077 => _1077(messages)]);
45173
45220
  }, [messages]);
45174
45221
  const {
45175
45222
  streamMessage,
@@ -45206,7 +45253,7 @@ function useChat({
45206
45253
  name: "You",
45207
45254
  content: text,
45208
45255
  timestamp: /* @__PURE__ */ new Date(),
45209
- ..._optionalChain([options, 'optionalAccess', _1076 => _1076.hidden]) ? { hidden: true } : {}
45256
+ ..._optionalChain([options, 'optionalAccess', _1078 => _1078.hidden]) ? { hidden: true } : {}
45210
45257
  };
45211
45258
  addMessage(userMessage);
45212
45259
  setIsTyping(true);
@@ -45268,7 +45315,7 @@ function useChat({
45268
45315
  currentTextSegment = "";
45269
45316
  }
45270
45317
  const seg = segment;
45271
- const proposalId = _optionalChain([seg, 'access', _1077 => _1077.data, 'optionalAccess', _1078 => _1078.requestId]);
45318
+ const proposalId = _optionalChain([seg, 'access', _1079 => _1079.data, 'optionalAccess', _1080 => _1080.requestId]);
45272
45319
  const updateApprovalMessage = (transform) => {
45273
45320
  setMessages((prev) => {
45274
45321
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -45277,7 +45324,7 @@ function useChat({
45277
45324
  if (!Array.isArray(m.content)) continue;
45278
45325
  const segments = m.content;
45279
45326
  const hasMatch = segments.some(
45280
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1079 => _1079.data, 'optionalAccess', _1080 => _1080.requestId]) === proposalId
45327
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1081 => _1081.data, 'optionalAccess', _1082 => _1082.requestId]) === proposalId
45281
45328
  );
45282
45329
  if (!hasMatch) continue;
45283
45330
  const next = [...prev];
@@ -45319,11 +45366,11 @@ function useChat({
45319
45366
  if (!Array.isArray(m.content)) continue;
45320
45367
  const segments = m.content;
45321
45368
  const hasMatch = segments.some(
45322
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1081 => _1081.data, 'optionalAccess', _1082 => _1082.requestId]) === decision.proposalId
45369
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1083 => _1083.data, 'optionalAccess', _1084 => _1084.requestId]) === decision.proposalId
45323
45370
  );
45324
45371
  if (!hasMatch) continue;
45325
45372
  const flipped = segments.map(
45326
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1083 => _1083.data, 'optionalAccess', _1084 => _1084.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
45373
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1085 => _1085.data, 'optionalAccess', _1086 => _1086.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
45327
45374
  );
45328
45375
  const next = [...prev];
45329
45376
  next[i] = { ...m, content: flipped };
@@ -45485,8 +45532,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
45485
45532
  })),
45486
45533
  { role: "user", content: message2 }
45487
45534
  ];
45488
- const targetPath = _optionalChain([extra, 'optionalAccess', _1085 => _1085.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
45489
- const requestBody = _optionalChain([extra, 'optionalAccess', _1086 => _1086.approvalAction]) ? {
45535
+ const targetPath = _optionalChain([extra, 'optionalAccess', _1087 => _1087.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
45536
+ const requestBody = _optionalChain([extra, 'optionalAccess', _1088 => _1088.approvalAction]) ? {
45490
45537
  proposal_id: extra.approvalAction.proposalId,
45491
45538
  action: extra.approvalAction.action,
45492
45539
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -45495,8 +45542,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
45495
45542
  }))
45496
45543
  } : {
45497
45544
  messages: apiMessages,
45498
- ..._optionalChain([extra, 'optionalAccess', _1087 => _1087.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
45499
- ..._optionalChain([extra, 'optionalAccess', _1088 => _1088.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
45545
+ ..._optionalChain([extra, 'optionalAccess', _1089 => _1089.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
45546
+ ..._optionalChain([extra, 'optionalAccess', _1090 => _1090.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
45500
45547
  };
45501
45548
  const response = await _chunk27IO7V3Pcjs.embedAuthedFetch.call(void 0, targetPath, {
45502
45549
  method: "POST",
@@ -45506,7 +45553,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
45506
45553
  if (!response.ok) {
45507
45554
  throw new Error(`Chat request failed: ${response.status}`);
45508
45555
  }
45509
- const reader = _optionalChain([response, 'access', _1089 => _1089.body, 'optionalAccess', _1090 => _1090.getReader, 'call', _1091 => _1091()]);
45556
+ const reader = _optionalChain([response, 'access', _1091 => _1091.body, 'optionalAccess', _1092 => _1092.getReader, 'call', _1093 => _1093()]);
45510
45557
  if (!reader) throw new Error("No response body");
45511
45558
  const decoder = new TextDecoder();
45512
45559
  let buffer = "";
@@ -45589,7 +45636,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
45589
45636
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
45590
45637
  const result = _nullishCoalesce(meta.result, () => ( null));
45591
45638
  const card = _nullishCoalesce(meta.card, () => ( null));
45592
- if (_optionalChain([card, 'optionalAccess', _1092 => _1092.ref, 'optionalAccess', _1093 => _1093.id]) && _optionalChain([card, 'optionalAccess', _1094 => _1094.type])) {
45639
+ if (_optionalChain([card, 'optionalAccess', _1094 => _1094.ref, 'optionalAccess', _1095 => _1095.id]) && _optionalChain([card, 'optionalAccess', _1096 => _1096.type])) {
45593
45640
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
45594
45641
  const key = buildChatRefKey(card.type, card.ref.id);
45595
45642
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -45602,8 +45649,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
45602
45649
  willAutoContinue: meta.willAutoContinue === true,
45603
45650
  ...toolName ? { toolName } : {},
45604
45651
  ...result ? { result } : {},
45605
- ..._optionalChain([card, 'optionalAccess', _1095 => _1095.marker]) ? { marker: card.marker } : {},
45606
- ..._optionalChain([card, 'optionalAccess', _1096 => _1096.ref]) ? { cardRef: card.ref } : {},
45652
+ ..._optionalChain([card, 'optionalAccess', _1097 => _1097.marker]) ? { marker: card.marker } : {},
45653
+ ..._optionalChain([card, 'optionalAccess', _1098 => _1098.ref]) ? { cardRef: card.ref } : {},
45607
45654
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
45608
45655
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
45609
45656
  };
@@ -45722,7 +45769,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
45722
45769
  var chatStorageKey = (source) => {
45723
45770
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
45724
45771
  const auth = _chunk27IO7V3Pcjs.getEmbedProxyAuth.call(void 0, );
45725
- if (_optionalChain([auth, 'optionalAccess', _1097 => _1097.email])) {
45772
+ if (_optionalChain([auth, 'optionalAccess', _1099 => _1099.email])) {
45726
45773
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
45727
45774
  }
45728
45775
  return base;
@@ -45777,7 +45824,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
45777
45824
  const { active = true } = runtimeOptions;
45778
45825
  const runtime = _chunkN2DVKXN4cjs.useRequiredChatRuntime.call(void 0, );
45779
45826
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
45780
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1098 => _1098.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
45827
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1100 => _1100.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
45781
45828
  const persistedRef = _react.useRef.call(void 0, null);
45782
45829
  if (persistedRef.current === null) {
45783
45830
  pruneStaleChatStorage(source);
@@ -45882,7 +45929,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
45882
45929
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
45883
45930
  sources = sourcesMapRef.current.get(lookupIdx);
45884
45931
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
45885
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1099 => _1099.current, 'access', _1100 => _1100.get, 'call', _1101 => _1101(lookupIdx), 'optionalAccess', _1102 => _1102.scrollAnchor]), () => ( void 0));
45932
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1101 => _1101.current, 'access', _1102 => _1102.get, 'call', _1103 => _1103(lookupIdx), 'optionalAccess', _1104 => _1104.scrollAnchor]), () => ( void 0));
45886
45933
  }
45887
45934
  return {
45888
45935
  id: m.id,
@@ -45930,7 +45977,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
45930
45977
  );
45931
45978
  return;
45932
45979
  }
45933
- const refSlug = typeof _optionalChain([reference, 'access', _1103 => _1103.metadata, 'optionalAccess', _1104 => _1104.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
45980
+ const refSlug = typeof _optionalChain([reference, 'access', _1105 => _1105.metadata, 'optionalAccess', _1106 => _1106.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
45934
45981
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
45935
45982
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
45936
45983
  const text = `/${cmdId} display "${escaped}"`;
@@ -46002,18 +46049,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
46002
46049
  clearMessages,
46003
46050
  streamingPhase,
46004
46051
  /** Provider key for the lib's `<ModelDisplay>` icon. */
46005
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1105 => _1105.provider]), () => ( null)),
46006
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1106 => _1106.modelLabel]), () => ( null)),
46007
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1107 => _1107.contextWindowMaxTokens]), () => ( null)),
46052
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1107 => _1107.provider]), () => ( null)),
46053
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1108 => _1108.modelLabel]), () => ( null)),
46054
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1109 => _1109.contextWindowMaxTokens]), () => ( null)),
46008
46055
  /** Input tokens (known after server's message_start frame; null until). */
46009
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1108 => _1108.inputTokens]), () => ( null)),
46056
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1110 => _1110.inputTokens]), () => ( null)),
46010
46057
  /** Output tokens (known only after server's trailing usage frame). */
46011
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1109 => _1109.outputTokens]), () => ( null)),
46058
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1111 => _1111.outputTokens]), () => ( null)),
46012
46059
  /** Cache hit % (read / total-input × 100). null during streaming. */
46013
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1110 => _1110.cacheHitRatePct]), () => ( null)),
46060
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1112 => _1112.cacheHitRatePct]), () => ( null)),
46014
46061
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
46015
46062
  * token counts). null until the trailing usage frame lands. */
46016
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1111 => _1111.breakdown]), () => ( null)),
46063
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1113 => _1113.breakdown]), () => ( null)),
46017
46064
  // ─── Dialog management — stubs for v1 ────────────────────────────────
46018
46065
  // Guide mode currently keeps its history in `localStorage` opaquely
46019
46066
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -46071,15 +46118,15 @@ var noopRejectRequest = async (_id, _reason) => {
46071
46118
 
46072
46119
  // src/components/chat/utils/process-historical-messages.ts
46073
46120
  function getOwnerDisplayName(owner) {
46074
- if (_optionalChain([owner, 'optionalAccess', _1112 => _1112.type]) === OWNER_TYPE.ADMIN && owner.user) {
46121
+ if (_optionalChain([owner, 'optionalAccess', _1114 => _1114.type]) === OWNER_TYPE.ADMIN && owner.user) {
46075
46122
  const { firstName, lastName } = owner.user;
46076
46123
  const name = [firstName, lastName].filter(Boolean).join(" ");
46077
46124
  if (name) return name;
46078
46125
  }
46079
- return _optionalChain([owner, 'optionalAccess', _1113 => _1113.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
46126
+ return _optionalChain([owner, 'optionalAccess', _1115 => _1115.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
46080
46127
  }
46081
46128
  function getOwnerAvatar(owner) {
46082
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1114 => _1114.user, 'optionalAccess', _1115 => _1115.image, 'optionalAccess', _1116 => _1116.imageUrl]), () => ( void 0));
46129
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1116 => _1116.user, 'optionalAccess', _1117 => _1117.image, 'optionalAccess', _1118 => _1118.imageUrl]), () => ( void 0));
46083
46130
  }
46084
46131
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
46085
46132
  messageDataArray.forEach((data) => {
@@ -46142,14 +46189,14 @@ function processHistoricalMessages(messages, options = {}) {
46142
46189
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
46143
46190
  return;
46144
46191
  }
46145
- const isUserMessage = _optionalChain([msg, 'access', _1117 => _1117.owner, 'optionalAccess', _1118 => _1118.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1119 => _1119.owner, 'optionalAccess', _1120 => _1120.type]) === OWNER_TYPE.ADMIN;
46192
+ const isUserMessage = _optionalChain([msg, 'access', _1119 => _1119.owner, 'optionalAccess', _1120 => _1120.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1121 => _1121.owner, 'optionalAccess', _1122 => _1122.type]) === OWNER_TYPE.ADMIN;
46146
46193
  if (isUserMessage) {
46147
46194
  flushAssistantMessage();
46148
- const userAuthorType = _optionalChain([msg, 'access', _1121 => _1121.owner, 'optionalAccess', _1122 => _1122.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
46195
+ const userAuthorType = _optionalChain([msg, 'access', _1123 => _1123.owner, 'optionalAccess', _1124 => _1124.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
46149
46196
  messageDataArray.forEach((data) => {
46150
46197
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
46151
46198
  const rawContext = data.contextItems;
46152
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1123 => _1123.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1124 => _1124.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
46199
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1125 => _1125.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1126 => _1126.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
46153
46200
  processedMessages.push({
46154
46201
  id: msg.id,
46155
46202
  role: "user",
@@ -46173,7 +46220,7 @@ function processHistoricalMessages(messages, options = {}) {
46173
46220
  });
46174
46221
  const nextMsg = messages[index + 1];
46175
46222
  const isLastMessage = index === messages.length - 1;
46176
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1125 => _1125.owner, 'optionalAccess', _1126 => _1126.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1127 => _1127.owner, 'optionalAccess', _1128 => _1128.type]) === OWNER_TYPE.ADMIN);
46223
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1127 => _1127.owner, 'optionalAccess', _1128 => _1128.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1129 => _1129.owner, 'optionalAccess', _1130 => _1130.type]) === OWNER_TYPE.ADMIN);
46177
46224
  if (isLastMessage || nextIsFromUser) {
46178
46225
  flushAssistantMessage();
46179
46226
  }
@@ -46283,7 +46330,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46283
46330
  }
46284
46331
  }
46285
46332
  } else {
46286
- _optionalChain([escalatedApprovals, 'optionalAccess', _1129 => _1129.set, 'call', _1130 => _1130(data.approvalRequestId, {
46333
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1131 => _1131.set, 'call', _1132 => _1132(data.approvalRequestId, {
46287
46334
  command: data.command || "",
46288
46335
  explanation: data.explanation,
46289
46336
  approvalType,
@@ -46297,8 +46344,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46297
46344
  const existingStatus = approvalStatuses[data.approvalRequestId];
46298
46345
  const status = existingStatus || (data.approved ? "approved" : "rejected");
46299
46346
  const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
46300
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1131 => _1131.get, 'call', _1132 => _1132(data.approvalRequestId)]);
46301
- if (_optionalChain([escalatedData, 'optionalAccess', _1133 => _1133.toolCalls]) && escalatedData.toolCalls.length > 0) {
46347
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1133 => _1133.get, 'call', _1134 => _1134(data.approvalRequestId)]);
46348
+ if (_optionalChain([escalatedData, 'optionalAccess', _1135 => _1135.toolCalls]) && escalatedData.toolCalls.length > 0) {
46302
46349
  if (batchApprovalsEnabled) {
46303
46350
  accumulator.addApprovalBatch(
46304
46351
  data.approvalRequestId,
@@ -46320,7 +46367,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46320
46367
  );
46321
46368
  }
46322
46369
  }
46323
- _optionalChain([escalatedApprovals, 'optionalAccess', _1134 => _1134.delete, 'call', _1135 => _1135(data.approvalRequestId)]);
46370
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1136 => _1136.delete, 'call', _1137 => _1137(data.approvalRequestId)]);
46324
46371
  break;
46325
46372
  }
46326
46373
  if (escalatedData) {
@@ -46329,7 +46376,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46329
46376
  explanation: escalatedData.explanation,
46330
46377
  approvalType: escalatedData.approvalType
46331
46378
  });
46332
- _optionalChain([escalatedApprovals, 'optionalAccess', _1136 => _1136.delete, 'call', _1137 => _1137(data.approvalRequestId)]);
46379
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1138 => _1138.delete, 'call', _1139 => _1139(data.approvalRequestId)]);
46333
46380
  }
46334
46381
  const before = accumulator.getSegments();
46335
46382
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
@@ -46345,9 +46392,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46345
46392
  case MESSAGE_TYPE.ERROR:
46346
46393
  if ("error" in data) {
46347
46394
  let message2;
46348
- if ("details" in data && _optionalChain([data, 'optionalAccess', _1138 => _1138.details])) {
46395
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _1140 => _1140.details])) {
46349
46396
  try {
46350
- message2 = _optionalChain([JSON, 'access', _1139 => _1139.parse, 'call', _1140 => _1140(data.details), 'optionalAccess', _1141 => _1141.error, 'optionalAccess', _1142 => _1142.message]);
46397
+ message2 = _optionalChain([JSON, 'access', _1141 => _1141.parse, 'call', _1142 => _1142(data.details), 'optionalAccess', _1143 => _1143.error, 'optionalAccess', _1144 => _1144.message]);
46351
46398
  } catch (e59) {
46352
46399
  message2 = data.details;
46353
46400
  }
@@ -46430,14 +46477,14 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
46430
46477
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
46431
46478
  return;
46432
46479
  }
46433
- const isUserMessage = _optionalChain([msg, 'access', _1143 => _1143.owner, 'optionalAccess', _1144 => _1144.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1145 => _1145.owner, 'optionalAccess', _1146 => _1146.type]) === OWNER_TYPE.ADMIN;
46480
+ const isUserMessage = _optionalChain([msg, 'access', _1145 => _1145.owner, 'optionalAccess', _1146 => _1146.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1147 => _1147.owner, 'optionalAccess', _1148 => _1148.type]) === OWNER_TYPE.ADMIN;
46434
46481
  if (isUserMessage) {
46435
46482
  flushAssistantMessage();
46436
- const userAuthorType = _optionalChain([msg, 'access', _1147 => _1147.owner, 'optionalAccess', _1148 => _1148.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
46483
+ const userAuthorType = _optionalChain([msg, 'access', _1149 => _1149.owner, 'optionalAccess', _1150 => _1150.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
46437
46484
  messageDataArray.forEach((data) => {
46438
46485
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
46439
46486
  const rawContext = data.contextItems;
46440
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1149 => _1149.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1150 => _1150.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
46487
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1151 => _1151.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1152 => _1152.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
46441
46488
  processedMessages.push({
46442
46489
  id: msg.id,
46443
46490
  role: "user",
@@ -46461,7 +46508,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
46461
46508
  });
46462
46509
  const nextMsg = messages[index + 1];
46463
46510
  const isLastMessage = index === messages.length - 1;
46464
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1151 => _1151.owner, 'optionalAccess', _1152 => _1152.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1153 => _1153.owner, 'optionalAccess', _1154 => _1154.type]) === OWNER_TYPE.ADMIN);
46511
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1153 => _1153.owner, 'optionalAccess', _1154 => _1154.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1155 => _1155.owner, 'optionalAccess', _1156 => _1156.type]) === OWNER_TYPE.ADMIN);
46465
46512
  if (isLastMessage || nextIsFromUser) {
46466
46513
  flushAssistantMessage();
46467
46514
  }
@@ -46797,7 +46844,7 @@ function useNatsChatAdapter(config, options = {}) {
46797
46844
  }, [active, fetchDialogs, loadDialogsPage]);
46798
46845
  const sendMessage = _react.useCallback.call(void 0,
46799
46846
  async (text, sendOptions) => {
46800
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1155 => _1155.hidden]), () => ( false));
46847
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1157 => _1157.hidden]), () => ( false));
46801
46848
  setMessages((prev) => [
46802
46849
  ...prev,
46803
46850
  {
@@ -46961,11 +47008,11 @@ function useNatsChatAdapter(config, options = {}) {
46961
47008
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
46962
47009
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
46963
47010
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
46964
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1156 => _1156.provider]), () => ( modelProvider)), () => ( null)),
46965
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1157 => _1157.modelLabel]), () => ( modelLabel)), () => ( null)),
46966
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1158 => _1158.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1159 => _1159.contextWindowMaxTokens]))), () => ( null)),
46967
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1160 => _1160.inputTokensSize]), () => ( null)),
46968
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1161 => _1161.outputTokensSize]), () => ( null)),
47011
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1158 => _1158.provider]), () => ( modelProvider)), () => ( null)),
47012
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1159 => _1159.modelLabel]), () => ( modelLabel)), () => ( null)),
47013
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1160 => _1160.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1161 => _1161.contextWindowMaxTokens]))), () => ( null)),
47014
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1162 => _1162.inputTokensSize]), () => ( null)),
47015
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1163 => _1163.outputTokensSize]), () => ( null)),
46969
47016
  currentCacheHitRatePct: null,
46970
47017
  currentUsageBreakdown: null,
46971
47018
  // Dialog management
@@ -47213,7 +47260,7 @@ function extractIncompleteMessageState(lastMessage) {
47213
47260
  break;
47214
47261
  case "approval_batch": {
47215
47262
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
47216
- (c) => _optionalChain([segment, 'access', _1162 => _1162.data, 'access', _1163 => _1163.executions, 'optionalAccess', _1164 => _1164[c.toolExecutionRequestId], 'optionalAccess', _1165 => _1165.status]) === "done"
47263
+ (c) => _optionalChain([segment, 'access', _1164 => _1164.data, 'access', _1165 => _1165.executions, 'optionalAccess', _1166 => _1166[c.toolExecutionRequestId], 'optionalAccess', _1167 => _1167.status]) === "done"
47217
47264
  );
47218
47265
  if (segment.status !== "rejected" && !allDone) {
47219
47266
  hasIncompleteState = true;
@@ -47281,20 +47328,20 @@ function mergeHistoryWithRealtime(input) {
47281
47328
  const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
47282
47329
  const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
47283
47330
  const trailing = processedHistory[processedHistory.length - 1];
47284
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1166 => _1166.role]) === "assistant" ? trailing : null;
47285
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1167 => _1167.content, 'access', _1168 => _1168.find, 'call', _1169 => _1169((s) => s.type === "approval_batch"), 'optionalAccess', _1170 => _1170.data, 'optionalAccess', _1171 => _1171.approvalRequestId]), () => ( null)) : null;
47331
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1168 => _1168.role]) === "assistant" ? trailing : null;
47332
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1169 => _1169.content, 'access', _1170 => _1170.find, 'call', _1171 => _1171((s) => s.type === "approval_batch"), 'optionalAccess', _1172 => _1172.data, 'optionalAccess', _1173 => _1173.approvalRequestId]), () => ( null)) : null;
47286
47333
  let processedToUse = processedHistory;
47287
47334
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
47288
47335
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
47289
47336
  if (historyBatchId) {
47290
47337
  const batchTwins = existingMessages.filter(
47291
47338
  (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
47292
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1172 => _1172.data, 'optionalAccess', _1173 => _1173.approvalRequestId]) === historyBatchId
47339
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1174 => _1174.data, 'optionalAccess', _1175 => _1175.approvalRequestId]) === historyBatchId
47293
47340
  )
47294
47341
  );
47295
47342
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
47296
47343
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
47297
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1174 => _1174.content])) ? historyTrailingAssistant.content.length : 0;
47344
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1176 => _1176.content])) ? historyTrailingAssistant.content.length : 0;
47298
47345
  const realtimeSize = existingWithSameBatch.content.length;
47299
47346
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
47300
47347
  processedToUse = processedHistory.slice(0, -1);
@@ -47310,16 +47357,16 @@ function mergeHistoryWithRealtime(input) {
47310
47357
  if (pinnedSyntheticIds.has(m.id)) return true;
47311
47358
  if (droppedSyntheticIds.has(m.id)) return false;
47312
47359
  if (processedIds.has(m.id)) return false;
47313
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1175 => _1175.has, 'call', _1176 => _1176(m.id)])) return false;
47360
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _1177 => _1177.has, 'call', _1178 => _1178(m.id)])) return false;
47314
47361
  if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
47315
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1177 => _1177.timestamp, 'optionalAccess', _1178 => _1178.getTime, 'call', _1179 => _1179()]), () => ( 0))) <= historyFetchedAt;
47362
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1179 => _1179.timestamp, 'optionalAccess', _1180 => _1180.getTime, 'call', _1181 => _1181()]), () => ( 0))) <= historyFetchedAt;
47316
47363
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
47317
47364
  }
47318
47365
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
47319
47366
  if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
47320
47367
  return false;
47321
47368
  }
47322
- const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1180 => _1180.timestamp, 'optionalAccess', _1181 => _1181.getTime, 'call', _1182 => _1182()]), () => ( 0))) <= historyFetchedAt;
47369
+ const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1182 => _1182.timestamp, 'optionalAccess', _1183 => _1183.getTime, 'call', _1184 => _1184()]), () => ( 0))) <= historyFetchedAt;
47323
47370
  if (covered) return false;
47324
47371
  }
47325
47372
  return true;
@@ -47539,7 +47586,7 @@ function useChatDialogManager({
47539
47586
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
47540
47587
  if (restoreTarget) {
47541
47588
  try {
47542
- await _optionalChain([unarchiveDialog, 'optionalCall', _1183 => _1183(restoreTarget.id)]);
47589
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1185 => _1185(restoreTarget.id)]);
47543
47590
  } catch (err) {
47544
47591
  console.error("[useChatDialogManager] unarchive failed:", err);
47545
47592
  return;
@@ -47948,7 +47995,7 @@ function EmbeddableChatInner({
47948
47995
  }),
47949
47996
  [commandsUrl]
47950
47997
  );
47951
- const userName = _optionalChain([identityUser, 'optionalAccess', _1184 => _1184.firstName, 'optionalAccess', _1185 => _1185.trim, 'call', _1186 => _1186()]) || _optionalChain([identityUser, 'optionalAccess', _1187 => _1187.name, 'optionalAccess', _1188 => _1188.split, 'call', _1189 => _1189(" "), 'access', _1190 => _1190[0], 'optionalAccess', _1191 => _1191.trim, 'call', _1192 => _1192()]) || void 0;
47998
+ const userName = _optionalChain([identityUser, 'optionalAccess', _1186 => _1186.firstName, 'optionalAccess', _1187 => _1187.trim, 'call', _1188 => _1188()]) || _optionalChain([identityUser, 'optionalAccess', _1189 => _1189.name, 'optionalAccess', _1190 => _1190.split, 'call', _1191 => _1191(" "), 'access', _1192 => _1192[0], 'optionalAccess', _1193 => _1193.trim, 'call', _1194 => _1194()]) || void 0;
47952
47999
  const effectiveModes = _react.useMemo.call(void 0, () => {
47953
48000
  if (modes) return modes;
47954
48001
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -47957,17 +48004,21 @@ function EmbeddableChatInner({
47957
48004
  const mingoCaps = _react.useMemo.call(void 0, () => {
47958
48005
  if (mingoState) {
47959
48006
  return {
47960
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1193 => _1193.canRename]), () => ( false)),
47961
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1194 => _1194.canArchive]), () => ( false)),
47962
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1195 => _1195.fetchArchivedDialogs]),
47963
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1196 => _1196.unarchiveDialog])
48007
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1195 => _1195.canRename]), () => ( false)),
48008
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1196 => _1196.canArchive]), () => ( false)),
48009
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1197 => _1197.fetchArchivedDialogs]),
48010
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1198 => _1198.unarchiveDialog]),
48011
+ searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1199 => _1199.searchQuery]),
48012
+ onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1200 => _1200.onSearchChange])
47964
48013
  };
47965
48014
  }
47966
48015
  return {
47967
- canRename: !!_optionalChain([effectiveModes, 'access', _1197 => _1197.mingo, 'optionalAccess', _1198 => _1198.renameDialog]),
47968
- canArchive: !!_optionalChain([effectiveModes, 'access', _1199 => _1199.mingo, 'optionalAccess', _1200 => _1200.archiveDialog]),
47969
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1201 => _1201.mingo, 'optionalAccess', _1202 => _1202.fetchArchivedDialogs]),
47970
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1203 => _1203.mingo, 'optionalAccess', _1204 => _1204.unarchiveDialog])
48016
+ canRename: !!_optionalChain([effectiveModes, 'access', _1201 => _1201.mingo, 'optionalAccess', _1202 => _1202.renameDialog]),
48017
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1203 => _1203.mingo, 'optionalAccess', _1204 => _1204.archiveDialog]),
48018
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1205 => _1205.mingo, 'optionalAccess', _1206 => _1206.fetchArchivedDialogs]),
48019
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1207 => _1207.mingo, 'optionalAccess', _1208 => _1208.unarchiveDialog]),
48020
+ searchQuery: void 0,
48021
+ onSearchChange: void 0
47971
48022
  };
47972
48023
  }, [mingoState, mingoDialogCapabilities, effectiveModes]);
47973
48024
  const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
@@ -47979,7 +48030,7 @@ function EmbeddableChatInner({
47979
48030
  if (controlledActiveMode === void 0) {
47980
48031
  setUncontrolledActiveMode(next);
47981
48032
  }
47982
- _optionalChain([onActiveModeChange, 'optionalCall', _1205 => _1205(next)]);
48033
+ _optionalChain([onActiveModeChange, 'optionalCall', _1209 => _1209(next)]);
47983
48034
  },
47984
48035
  [controlledActiveMode, onActiveModeChange]
47985
48036
  );
@@ -48033,7 +48084,7 @@ function EmbeddableChatInner({
48033
48084
  clear: clearAttachments
48034
48085
  } = useChatAttachments();
48035
48086
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
48036
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1206 => _1206.maxItems]), () => ( 10));
48087
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1210 => _1210.maxItems]), () => ( 10));
48037
48088
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
48038
48089
  const [contextItems, setContextItems] = _react.useState.call(void 0, []);
48039
48090
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -48050,10 +48101,10 @@ function EmbeddableChatInner({
48050
48101
  }, [activeDialogId, activeMode]);
48051
48102
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
48052
48103
  const m = /* @__PURE__ */ new Map();
48053
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1207 => _1207.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
48104
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1211 => _1211.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
48054
48105
  return m;
48055
- }, [_optionalChain([contextPicker, 'optionalAccess', _1208 => _1208.entityTypes])]);
48056
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1209 => _1209.entityTypes]);
48106
+ }, [_optionalChain([contextPicker, 'optionalAccess', _1212 => _1212.entityTypes])]);
48107
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1213 => _1213.entityTypes]);
48057
48108
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
48058
48109
  const byType = /* @__PURE__ */ new Map();
48059
48110
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -48065,7 +48116,7 @@ function EmbeddableChatInner({
48065
48116
  if (mentionActiveRef.current) {
48066
48117
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
48067
48118
  if (contextItems.length >= contextMaxItems) return;
48068
- _optionalChain([chatInputRef, 'access', _1210 => _1210.current, 'optionalAccess', _1211 => _1211.commitMention, 'call', _1212 => _1212(mentionTokenOf(key, mentionMarkerByType), {
48119
+ _optionalChain([chatInputRef, 'access', _1214 => _1214.current, 'optionalAccess', _1215 => _1215.commitMention, 'call', _1216 => _1216(mentionTokenOf(key, mentionMarkerByType), {
48069
48120
  label: item.label,
48070
48121
  icon: resolveContextIcon(item)
48071
48122
  })]);
@@ -48087,9 +48138,9 @@ function EmbeddableChatInner({
48087
48138
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
48088
48139
  if (mentionKeysRef.current.has(key)) {
48089
48140
  mentionKeysRef.current.delete(key);
48090
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1213 => _1213.current, 'optionalAccess', _1214 => _1214.getValue, 'call', _1215 => _1215()]), () => ( ""));
48141
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1217 => _1217.current, 'optionalAccess', _1218 => _1218.getValue, 'call', _1219 => _1219()]), () => ( ""));
48091
48142
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
48092
- _optionalChain([chatInputRef, 'access', _1216 => _1216.current, 'optionalAccess', _1217 => _1217.setValue, 'call', _1218 => _1218(next)]);
48143
+ _optionalChain([chatInputRef, 'access', _1220 => _1220.current, 'optionalAccess', _1221 => _1221.setValue, 'call', _1222 => _1222(next)]);
48093
48144
  }
48094
48145
  }, [mentionMarkerByType]);
48095
48146
  const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
@@ -48106,7 +48157,7 @@ function EmbeddableChatInner({
48106
48157
  }, []);
48107
48158
  const closeContextPicker = _react.useCallback.call(void 0, () => {
48108
48159
  if (mentionActiveRef.current) {
48109
- _optionalChain([chatInputRef, 'access', _1219 => _1219.current, 'optionalAccess', _1220 => _1220.removeMentionTrigger, 'call', _1221 => _1221()]);
48160
+ _optionalChain([chatInputRef, 'access', _1223 => _1223.current, 'optionalAccess', _1224 => _1224.removeMentionTrigger, 'call', _1225 => _1225()]);
48110
48161
  }
48111
48162
  setContextPickerOpen(false);
48112
48163
  setMentionQuery(null);
@@ -48140,8 +48191,8 @@ function EmbeddableChatInner({
48140
48191
  []
48141
48192
  );
48142
48193
  const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
48143
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1222 => _1222.firstName]), _optionalChain([identityUser, 'optionalAccess', _1223 => _1223.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1224 => _1224.name, 'optionalAccess', _1225 => _1225.trim, 'call', _1226 => _1226()]) || void 0 : void 0;
48144
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1227 => _1227.avatarUrl, 'optionalAccess', _1228 => _1228.trim, 'call', _1229 => _1229()]) || void 0 : void 0;
48194
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1226 => _1226.firstName]), _optionalChain([identityUser, 'optionalAccess', _1227 => _1227.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1228 => _1228.name, 'optionalAccess', _1229 => _1229.trim, 'call', _1230 => _1230()]) || void 0 : void 0;
48195
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1231 => _1231.avatarUrl, 'optionalAccess', _1232 => _1232.trim, 'call', _1233 => _1233()]) || void 0 : void 0;
48145
48196
  const messages = _react.useMemo.call(void 0, () => {
48146
48197
  const cache = timestampCacheRef.current;
48147
48198
  const seenIds = /* @__PURE__ */ new Set();
@@ -48289,9 +48340,9 @@ function EmbeddableChatInner({
48289
48340
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
48290
48341
  const lastSources = _react.useMemo.call(void 0, () => {
48291
48342
  if (chatLoading) return void 0;
48292
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1230 => _1230.sources]);
48343
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1234 => _1234.sources]);
48293
48344
  if (!sources || sources.length === 0) return void 0;
48294
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1231 => _1231.content]) || "";
48345
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1235 => _1235.content]) || "";
48295
48346
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
48296
48347
  (m) => parseInt(m[1], 10)
48297
48348
  );
@@ -48338,7 +48389,7 @@ function EmbeddableChatInner({
48338
48389
  ChatPanelHeader,
48339
48390
  {
48340
48391
  showBack: hasConversation || guideCanReturnToMingo,
48341
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1232 => _1232.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
48392
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1236 => _1236.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
48342
48393
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
48343
48394
  isArchivedView: isViewingArchived,
48344
48395
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -48420,20 +48471,30 @@ function EmbeddableChatInner({
48420
48471
  isLoadingHistory: dialogsInitialLoading,
48421
48472
  loadError: dialogsLoadError,
48422
48473
  onRetry: reloadDialogs,
48423
- dialogHistory: dialogs.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
48424
- MingoChatHistory,
48425
- {
48426
- dialogs,
48427
- onSelectDialog: handleSelectDialog,
48428
- onRequestRename: mingoCaps.canRename ? setRenameTarget : void 0,
48429
- onRequestArchive: mingoCaps.canArchive ? setArchiveTarget : void 0,
48430
- hasMore: hasMoreDialogs,
48431
- isLoadingMore: isDialogsLoading && dialogs.length > 0,
48432
- onLoadMore: () => {
48433
- void loadMoreDialogs();
48474
+ historySearchable: !!mingoCaps.onSearchChange,
48475
+ dialogHistory: (
48476
+ // Keep the history (and its search bar) mounted during an
48477
+ // active search even at 0 results — otherwise a no-match
48478
+ // query would unmount the bar and flash the new-user
48479
+ // greeting. `MingoWelcome` renders `dialogHistory` with top
48480
+ // priority, so this wins over the greeting.
48481
+ dialogs.length > 0 || !!mingoCaps.searchQuery ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
48482
+ MingoChatHistory,
48483
+ {
48484
+ dialogs,
48485
+ onSelectDialog: handleSelectDialog,
48486
+ onRequestRename: mingoCaps.canRename ? setRenameTarget : void 0,
48487
+ onRequestArchive: mingoCaps.canArchive ? setArchiveTarget : void 0,
48488
+ searchQuery: mingoCaps.searchQuery,
48489
+ onSearchChange: mingoCaps.onSearchChange,
48490
+ hasMore: hasMoreDialogs,
48491
+ isLoadingMore: isDialogsLoading && dialogs.length > 0,
48492
+ onLoadMore: () => {
48493
+ void loadMoreDialogs();
48494
+ }
48434
48495
  }
48435
- }
48436
- ) : void 0
48496
+ ) : void 0
48497
+ )
48437
48498
  }
48438
48499
  )
48439
48500
  ) : (
@@ -48446,7 +48507,7 @@ function EmbeddableChatInner({
48446
48507
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
48447
48508
  subtitleLoading: emptyStateLoading,
48448
48509
  ...guideWelcome,
48449
- quickActions: _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1233 => _1233.quickActions]), () => ( guideSuggestedActions)),
48510
+ quickActions: _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1237 => _1237.quickActions]), () => ( guideSuggestedActions)),
48450
48511
  onQuickAction: (action) => {
48451
48512
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
48452
48513
  },
@@ -49516,4 +49577,4 @@ function EmbeddableChatInner({
49516
49577
 
49517
49578
 
49518
49579
  exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ONBOARDING_ICONS = ONBOARDING_ICONS; exports.resolveOnboardingIcon = resolveOnboardingIcon; exports.ONBOARDING_ICON_OPTIONS = ONBOARDING_ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
49519
- //# sourceMappingURL=chunk-7C5G45KU.cjs.map
49580
+ //# sourceMappingURL=chunk-GLKQDTCI.cjs.map