@flamingo-stack/openframe-frontend-core 0.0.181 → 0.0.182

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 (39) hide show
  1. package/dist/{chunk-VEOBMVF5.js → chunk-CLZ3QQMJ.js} +4211 -4123
  2. package/dist/chunk-CLZ3QQMJ.js.map +1 -0
  3. package/dist/{chunk-L5AAJ3QN.cjs → chunk-IWMK4MH4.cjs} +615 -527
  4. package/dist/chunk-IWMK4MH4.cjs.map +1 -0
  5. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  6. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  7. package/dist/components/chat/cycling-phrase.d.ts +30 -0
  8. package/dist/components/chat/cycling-phrase.d.ts.map +1 -0
  9. package/dist/components/chat/hooks/index.d.ts +0 -1
  10. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  11. package/dist/components/chat/index.d.ts +0 -1
  12. package/dist/components/chat/index.d.ts.map +1 -1
  13. package/dist/components/features/index.cjs +2 -2
  14. package/dist/components/features/index.js +1 -1
  15. package/dist/components/index.cjs +2 -6
  16. package/dist/components/index.cjs.map +1 -1
  17. package/dist/components/index.js +1 -5
  18. package/dist/components/navigation/index.cjs +2 -2
  19. package/dist/components/navigation/index.js +1 -1
  20. package/dist/components/ui/index.cjs +2 -6
  21. package/dist/components/ui/index.cjs.map +1 -1
  22. package/dist/components/ui/index.js +1 -5
  23. package/dist/index.cjs +2 -6
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.js +1 -5
  26. package/package.json +1 -1
  27. package/src/components/chat/chat-message-enhanced.tsx +37 -5
  28. package/src/components/chat/chat-message-list.tsx +51 -179
  29. package/src/components/chat/cycling-phrase.tsx +129 -0
  30. package/src/components/chat/hooks/index.ts +0 -1
  31. package/src/components/chat/index.ts +0 -1
  32. package/dist/chunk-L5AAJ3QN.cjs.map +0 -1
  33. package/dist/chunk-VEOBMVF5.js.map +0 -1
  34. package/dist/components/chat/chat-message-loader.d.ts +0 -23
  35. package/dist/components/chat/chat-message-loader.d.ts.map +0 -1
  36. package/dist/components/chat/hooks/use-delayed-flag.d.ts +0 -25
  37. package/dist/components/chat/hooks/use-delayed-flag.d.ts.map +0 -1
  38. package/src/components/chat/chat-message-loader.tsx +0 -67
  39. package/src/components/chat/hooks/use-delayed-flag.ts +0 -56
@@ -66,7 +66,6 @@ var _chunkBJTOSUT4cjs = require('./chunk-BJTOSUT4.cjs');
66
66
 
67
67
 
68
68
 
69
-
70
69
 
71
70
 
72
71
  var _chunkEWIC26TWcjs = require('./chunk-EWIC26TW.cjs');
@@ -4992,6 +4991,91 @@ ChatInput.displayName = "ChatInput";
4992
4991
  _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
4993
4992
 
4994
4993
 
4994
+ // src/components/chat/cycling-phrase.tsx
4995
+ _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
4996
+
4997
+
4998
+ var BLINK_KEYFRAMES = `
4999
+ @keyframes cyclingCursorBlink {
5000
+ 50% { opacity: 0; }
5001
+ }
5002
+ `;
5003
+ function CyclingPhrase({
5004
+ words,
5005
+ className,
5006
+ charMs = 60,
5007
+ holdMs = 4500
5008
+ }) {
5009
+ const [wordIndex, setWordIndex] = _react.useState.call(void 0, 0);
5010
+ const [text, setText] = _react.useState.call(void 0, "");
5011
+ const [cursor, setCursor] = _react.useState.call(void 0, 0);
5012
+ const [holding, setHolding] = _react.useState.call(void 0, false);
5013
+ const placeholder = _react.useMemo.call(void 0,
5014
+ () => words.reduce((longest, w) => w.length > longest.length ? w : longest, ""),
5015
+ [words]
5016
+ );
5017
+ _react.useEffect.call(void 0, () => {
5018
+ if (words.length === 0) return;
5019
+ const target = words[wordIndex];
5020
+ let timeoutId;
5021
+ if (holding) {
5022
+ timeoutId = setTimeout(() => {
5023
+ setWordIndex((i) => (i + 1) % words.length);
5024
+ setCursor(0);
5025
+ setHolding(false);
5026
+ }, holdMs);
5027
+ return () => clearTimeout(timeoutId);
5028
+ }
5029
+ const maxLen = Math.max(text.length, target.length);
5030
+ if (cursor >= maxLen) {
5031
+ if (text !== target) setText(target);
5032
+ setHolding(true);
5033
+ return;
5034
+ }
5035
+ timeoutId = setTimeout(() => {
5036
+ setText((prev) => {
5037
+ if (cursor < target.length) {
5038
+ return target.slice(0, cursor + 1) + prev.slice(cursor + 1);
5039
+ }
5040
+ return prev.slice(0, cursor);
5041
+ });
5042
+ setCursor((c) => c + 1);
5043
+ }, charMs);
5044
+ return () => clearTimeout(timeoutId);
5045
+ }, [wordIndex, cursor, text, holding, words, charMs, holdMs]);
5046
+ if (words.length === 0) return null;
5047
+ const before = text.slice(0, cursor);
5048
+ const after = text.slice(cursor);
5049
+ const cursorBlock = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5050
+ "span",
5051
+ {
5052
+ "aria-hidden": true,
5053
+ className: "inline-block bg-current align-baseline",
5054
+ style: {
5055
+ width: "0.6em",
5056
+ height: "1em",
5057
+ verticalAlign: "-0.1em",
5058
+ marginLeft: "1px",
5059
+ marginRight: "1px",
5060
+ animation: "cyclingCursorBlink 1s steps(1) infinite"
5061
+ }
5062
+ }
5063
+ );
5064
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "relative inline-block whitespace-nowrap", className), children: [
5065
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { dangerouslySetInnerHTML: { __html: BLINK_KEYFRAMES } }),
5066
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "aria-hidden": true, className: "invisible", children: [
5067
+ placeholder,
5068
+ "..."
5069
+ ] }),
5070
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "absolute inset-0 inline-flex items-baseline", "aria-live": "polite", children: [
5071
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: before }),
5072
+ !holding && cursorBlock,
5073
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: after }),
5074
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "..." })
5075
+ ] })
5076
+ ] });
5077
+ }
5078
+
4995
5079
  // src/components/chat/tool-execution-display.tsx
4996
5080
  _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
4997
5081
 
@@ -5119,6 +5203,18 @@ function normalizeContent(content) {
5119
5203
  }
5120
5204
  return content;
5121
5205
  }
5206
+ var STREAMING_WORDS = [
5207
+ "Thinking",
5208
+ "Vibing",
5209
+ "Mingoing",
5210
+ "Strutting",
5211
+ "Pondering",
5212
+ "Wading",
5213
+ "Hatching",
5214
+ "Preening",
5215
+ "Conjuring",
5216
+ "Riffing"
5217
+ ];
5122
5218
  var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5123
5219
  ({ className, role, content, name, avatar, isTyping = false, timestamp, showAvatar = true, assistantType, authorType: authorTypeProp, assistantIcon, chatRefs, renderEntityCard, ...props }, ref) => {
5124
5220
  const isUser = role === "user";
@@ -5188,6 +5284,8 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5188
5284
  const avatarProps = getAvatarProps();
5189
5285
  const segments = normalizeContent(content);
5190
5286
  const isSystem = authorType === "system";
5287
+ const lastSegment = segments[segments.length - 1];
5288
+ const isPausedOnApproval = !!lastSegment && (lastSegment.type === "approval_request" || lastSegment.type === "approval_batch") && (lastSegment.status === void 0 || lastSegment.status === "pending");
5191
5289
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
5192
5290
  "div",
5193
5291
  {
@@ -5216,80 +5314,92 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5216
5314
  ] }),
5217
5315
  timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-sans text-heading-5 font-medium text-ods-text-secondary shrink-0 whitespace-nowrap", children: timestamp.toLocaleTimeString([], { hour: "numeric", minute: "2-digit" }) })
5218
5316
  ] }),
5219
- (!isSystem || segments.length > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-2", children: isTyping && segments.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatTypingIndicator, {}) : segments.map((segment, index) => {
5220
- if (segment.type === "text") {
5221
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5222
- "min-w-0 w-full break-words text-h4",
5223
- isError ? "text-ods-error" : "text-ods-text-primary"
5224
- ), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5225
- SimpleMarkdownRenderer,
5317
+ (!isSystem || segments.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
5318
+ segments.map((segment, index) => {
5319
+ if (segment.type === "text") {
5320
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5321
+ "min-w-0 w-full break-words text-h4",
5322
+ isError ? "text-ods-error" : "text-ods-text-primary"
5323
+ ), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5324
+ SimpleMarkdownRenderer,
5325
+ {
5326
+ content: segment.text,
5327
+ textSize: "compact",
5328
+ additionalRemarkPlugins: cardRemarkPlugins,
5329
+ componentOverrides: cardComponentOverrides
5330
+ }
5331
+ ) }, index);
5332
+ } else if (segment.type === "tool_execution") {
5333
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5334
+ ToolExecutionDisplay,
5335
+ {
5336
+ message: segment.data
5337
+ },
5338
+ index
5339
+ );
5340
+ } else if (segment.type === "approval_request") {
5341
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5342
+ ApprovalRequestMessage,
5343
+ {
5344
+ data: segment.data,
5345
+ status: segment.status,
5346
+ onApprove: segment.onApprove,
5347
+ onReject: segment.onReject
5348
+ },
5349
+ index
5350
+ );
5351
+ } else if (segment.type === "approval_batch") {
5352
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5353
+ ApprovalBatchMessage,
5354
+ {
5355
+ data: segment.data,
5356
+ status: segment.status,
5357
+ onApprove: segment.onApprove,
5358
+ onReject: segment.onReject
5359
+ },
5360
+ index
5361
+ );
5362
+ } else if (segment.type === "error") {
5363
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5364
+ ErrorMessageDisplay,
5365
+ {
5366
+ title: segment.title,
5367
+ details: segment.details
5368
+ },
5369
+ index
5370
+ );
5371
+ } else if (segment.type === "context_compaction") {
5372
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5373
+ ContextCompactionDisplay,
5374
+ {
5375
+ status: segment.status
5376
+ },
5377
+ index
5378
+ );
5379
+ } else if (segment.type === "thinking") {
5380
+ const isStreaming = index === segments.length - 1 && isTyping;
5381
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5382
+ ThinkingDisplay,
5383
+ {
5384
+ text: segment.text,
5385
+ isStreaming
5386
+ },
5387
+ index
5388
+ );
5389
+ }
5390
+ return null;
5391
+ }),
5392
+ isTyping && !isPausedOnApproval && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
5393
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatTypingIndicator, {}),
5394
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5395
+ CyclingPhrase,
5226
5396
  {
5227
- content: segment.text,
5228
- textSize: "compact",
5229
- additionalRemarkPlugins: cardRemarkPlugins,
5230
- componentOverrides: cardComponentOverrides
5397
+ words: STREAMING_WORDS,
5398
+ className: "text-ods-text-secondary text-body-sm"
5231
5399
  }
5232
- ) }, index);
5233
- } else if (segment.type === "tool_execution") {
5234
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5235
- ToolExecutionDisplay,
5236
- {
5237
- message: segment.data
5238
- },
5239
- index
5240
- );
5241
- } else if (segment.type === "approval_request") {
5242
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5243
- ApprovalRequestMessage,
5244
- {
5245
- data: segment.data,
5246
- status: segment.status,
5247
- onApprove: segment.onApprove,
5248
- onReject: segment.onReject
5249
- },
5250
- index
5251
- );
5252
- } else if (segment.type === "approval_batch") {
5253
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5254
- ApprovalBatchMessage,
5255
- {
5256
- data: segment.data,
5257
- status: segment.status,
5258
- onApprove: segment.onApprove,
5259
- onReject: segment.onReject
5260
- },
5261
- index
5262
- );
5263
- } else if (segment.type === "error") {
5264
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5265
- ErrorMessageDisplay,
5266
- {
5267
- title: segment.title,
5268
- details: segment.details
5269
- },
5270
- index
5271
- );
5272
- } else if (segment.type === "context_compaction") {
5273
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5274
- ContextCompactionDisplay,
5275
- {
5276
- status: segment.status
5277
- },
5278
- index
5279
- );
5280
- } else if (segment.type === "thinking") {
5281
- const isStreaming = index === segments.length - 1 && isTyping;
5282
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5283
- ThinkingDisplay,
5284
- {
5285
- text: segment.text,
5286
- isStreaming
5287
- },
5288
- index
5289
- );
5290
- }
5291
- return null;
5292
- }) })
5400
+ )
5401
+ ] })
5402
+ ] })
5293
5403
  ] })
5294
5404
  ]
5295
5405
  }
@@ -5311,69 +5421,79 @@ _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
5311
5421
 
5312
5422
  var _usesticktobottom = require('use-stick-to-bottom');
5313
5423
 
5314
- // src/components/chat/chat-message-loader.tsx
5424
+ // src/components/chat/chat-message-skeleton.tsx
5315
5425
  _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
5316
5426
 
5317
- function ChatMessageListLoader({
5427
+ function ChatMessageSkeleton({
5318
5428
  className,
5319
- assistantIcon,
5320
- assistantType = "fae",
5321
- label = "Loading conversation..."
5429
+ showAvatar = true,
5430
+ isUser = false,
5431
+ assistantType = "fae"
5322
5432
  }) {
5323
- const accentColor = assistantType === "mingo" ? "var(--ods-flamingo-cyan-base)" : "var(--ods-flamingo-pink-base)";
5433
+ const isMingo = assistantType === "mingo";
5324
5434
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
5325
5435
  "div",
5326
5436
  {
5327
- role: "status",
5328
- "aria-live": "polite",
5329
- "aria-busy": "true",
5330
5437
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5331
- "relative flex-1 min-h-0 flex flex-col items-center justify-center gap-3 px-8",
5332
- "animate-in fade-in duration-300",
5438
+ "flex flex-row items-start gap-4",
5439
+ !isUser && "bg-ods-card/50 rounded-lg px-4 -mx-4",
5333
5440
  className
5334
5441
  ),
5335
5442
  children: [
5336
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center justify-center w-10 h-10", children: [
5337
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5338
- "span",
5339
- {
5340
- className: "absolute inset-0 rounded-full opacity-30 blur-md animate-pulse",
5341
- style: { backgroundColor: accentColor },
5342
- "aria-hidden": "true"
5343
- }
5344
- ),
5345
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative motion-safe:animate-pulse", children: _nullishCoalesce(assistantIcon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWIC26TWcjs.MingoIcon, { className: "w-8 h-8", eyesColor: accentColor, cornerColor: accentColor }))) })
5346
- ] }),
5347
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium text-ods-text-secondary tracking-tight motion-safe:animate-pulse", children: label })
5443
+ showAvatar && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5444
+ "flex-shrink-0 mt-1 w-8 h-8 rounded animate-pulse",
5445
+ isUser ? "invisible" : isMingo ? "bg-gradient-to-br from-cyan-400/30 to-cyan-600/30" : "bg-gradient-to-br from-pink-400/30 to-pink-600/30"
5446
+ ) }),
5447
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col gap-1 min-w-0", children: [
5448
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between pr-2", children: [
5449
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-16 bg-ods-border rounded animate-pulse" }),
5450
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 bg-ods-border rounded animate-pulse" })
5451
+ ] }),
5452
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
5453
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full bg-ods-border rounded animate-pulse" }),
5454
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4/5 bg-ods-border rounded animate-pulse" }),
5455
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/5 bg-ods-border rounded animate-pulse" })
5456
+ ] }) })
5457
+ ] })
5348
5458
  ]
5349
5459
  }
5350
5460
  );
5351
5461
  }
5352
-
5353
- // src/components/chat/hooks/use-delayed-flag.ts
5354
-
5355
- function useDelayedFlag(source, { delay: delay2 = 200, minDuration = 400 } = {}) {
5356
- const [active, setActive] = _react.useState.call(void 0, false);
5357
- const activatedAtRef = _react.useRef.call(void 0, null);
5358
- _react.useEffect.call(void 0, () => {
5359
- if (source) {
5360
- if (active) return;
5361
- const timer2 = window.setTimeout(() => {
5362
- activatedAtRef.current = Date.now();
5363
- setActive(true);
5364
- }, delay2);
5365
- return () => window.clearTimeout(timer2);
5366
- }
5367
- if (!active) return;
5368
- const elapsed = activatedAtRef.current ? Date.now() - activatedAtRef.current : minDuration;
5369
- const remaining = Math.max(0, minDuration - elapsed);
5370
- const timer = window.setTimeout(() => {
5371
- activatedAtRef.current = null;
5372
- setActive(false);
5373
- }, remaining);
5374
- return () => window.clearTimeout(timer);
5375
- }, [source, active, delay2, minDuration]);
5376
- return active;
5462
+ function ChatMessageListSkeleton({
5463
+ className,
5464
+ messageCount = 6,
5465
+ showAvatars = true,
5466
+ assistantType = "fae",
5467
+ contentClassName
5468
+ }) {
5469
+ const messages = Array.from({ length: messageCount }, (_, index) => ({
5470
+ id: index,
5471
+ isUser: index % 3 === 0,
5472
+ assistantType
5473
+ }));
5474
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative flex-1 min-h-0 flex flex-col", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5475
+ "div",
5476
+ {
5477
+ className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5478
+ "flex h-full w-full flex-col overflow-y-auto overflow-x-hidden flex-1",
5479
+ "[scroll-behavior:smooth]",
5480
+ "scrollbar-thin scrollbar-track-transparent scrollbar-thumb-ods-border/30 hover:scrollbar-thumb-ods-text-secondary/30",
5481
+ className
5482
+ ),
5483
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "mx-auto flex w-full max-w-3xl flex-col pb-2 min-w-0", contentClassName || "px-4"), style: { minHeight: "100%" }, children: [
5484
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
5485
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-6", children: messages.map((message) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5486
+ ChatMessageSkeleton,
5487
+ {
5488
+ showAvatar: showAvatars,
5489
+ isUser: message.isUser,
5490
+ assistantType: message.assistantType
5491
+ },
5492
+ message.id
5493
+ )) })
5494
+ ] })
5495
+ }
5496
+ ) });
5377
5497
  }
5378
5498
 
5379
5499
  // src/components/chat/chat-message-list.tsx
@@ -5397,20 +5517,19 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5397
5517
  renderEntityCard,
5398
5518
  ...props
5399
5519
  }, ref) => {
5400
- const { scrollRef, contentRef, scrollToBottom, escapedFromLock } = _usesticktobottom.useStickToBottom.call(void 0, {
5520
+ const { scrollRef, contentRef, scrollToBottom } = _usesticktobottom.useStickToBottom.call(void 0, {
5401
5521
  resize: "smooth",
5402
- initial: "instant"
5522
+ initial: false
5403
5523
  });
5404
- const [scrollEl, setScrollEl] = _react.useState.call(void 0, null);
5405
- const [sentinelEl, setSentinelEl] = _react.useState.call(void 0, null);
5524
+ const sentinelRef = _react.useRef.call(void 0, null);
5406
5525
  const onLoadMoreRef = _react.useRef.call(void 0, onLoadMore);
5407
5526
  onLoadMoreRef.current = onLoadMore;
5408
5527
  const isFetchingRef = _react.useRef.call(void 0, isFetchingNextPage);
5409
5528
  isFetchingRef.current = isFetchingNextPage;
5410
5529
  const prevRenderRef = _react.useRef.call(void 0, { dialogId: void 0, messageCount: 0, lastMessageId: void 0 });
5411
5530
  const prependRef = _react.useRef.call(void 0, { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 });
5412
- _react.useLayoutEffect.call(void 0, () => {
5413
- if (!autoScroll || !scrollEl) return;
5531
+ _react.useEffect.call(void 0, () => {
5532
+ if (!autoScroll) return;
5414
5533
  const dialogChanged = dialogId !== prevRenderRef.current.dialogId;
5415
5534
  const prevCount = prevRenderRef.current.messageCount;
5416
5535
  const newCount = messages.length;
@@ -5425,29 +5544,21 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5425
5544
  return;
5426
5545
  }
5427
5546
  if (newCount > prevCount) {
5428
- const isPrepend = prependRef.current.firstMessageId !== void 0 && _optionalChain([messages, 'access', _110 => _110[0], 'optionalAccess', _111 => _111.id]) !== prependRef.current.firstMessageId;
5429
- if (isPrepend) return;
5430
5547
  const newSlice = messages.slice(prevCount);
5431
5548
  const hasNewUser = newSlice.some((m) => m.role === "user");
5432
5549
  if (hasNewUser) {
5433
5550
  void scrollToBottom({ animation: "instant", ignoreEscapes: true });
5434
- return;
5435
5551
  }
5436
- void scrollToBottom({ animation: "instant", ignoreEscapes: true });
5437
- return;
5438
5552
  }
5439
- if (!escapedFromLock) {
5440
- void scrollToBottom({ animation: "smooth" });
5441
- }
5442
- }, [autoScroll, messages, dialogId, scrollToBottom, scrollEl, escapedFromLock]);
5553
+ }, [autoScroll, messages, dialogId, scrollToBottom]);
5443
5554
  _react.useLayoutEffect.call(void 0, () => {
5444
- const el = scrollEl;
5555
+ const el = scrollRef.current;
5445
5556
  if (!el) {
5446
5557
  prependRef.current = { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 };
5447
5558
  return;
5448
5559
  }
5449
- const currentFirstId = _optionalChain([messages, 'access', _112 => _112[0], 'optionalAccess', _113 => _113.id]);
5450
- const currentFirstContent = _optionalChain([messages, 'access', _114 => _114[0], 'optionalAccess', _115 => _115.content]);
5560
+ const currentFirstId = _optionalChain([messages, 'access', _110 => _110[0], 'optionalAccess', _111 => _111.id]);
5561
+ const currentFirstContent = _optionalChain([messages, 'access', _112 => _112[0], 'optionalAccess', _113 => _113.content]);
5451
5562
  const prevFirstId = prependRef.current.firstMessageId;
5452
5563
  const prevHeight = prependRef.current.scrollHeight;
5453
5564
  if (currentFirstId !== prevFirstId) {
@@ -5469,54 +5580,43 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5469
5580
  if (currentFirstContent !== prependRef.current.firstMessageContent) {
5470
5581
  prependRef.current.firstMessageContent = currentFirstContent;
5471
5582
  }
5472
- }, [messages, scrollEl]);
5583
+ }, [messages, scrollRef]);
5473
5584
  _react.useEffect.call(void 0, () => {
5474
- const scrollContainer = scrollEl;
5475
- const sentinelElement = sentinelEl;
5476
- if (!scrollContainer || !hasNextPage) return;
5477
- const tryLoad = () => {
5478
- if (isFetchingRef.current) return;
5479
- _optionalChain([onLoadMoreRef, 'access', _116 => _116.current, 'optionalCall', _117 => _117()]);
5480
- };
5481
- let observer;
5482
- if (sentinelElement) {
5483
- observer = new IntersectionObserver(
5484
- (entries) => {
5485
- const entry = entries[0];
5486
- if (_optionalChain([entry, 'optionalAccess', _118 => _118.isIntersecting])) tryLoad();
5487
- },
5488
- { root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
5489
- );
5490
- observer.observe(sentinelElement);
5491
- }
5492
- const onScroll = () => {
5493
- if (scrollContainer.scrollTop <= 200) tryLoad();
5494
- };
5495
- scrollContainer.addEventListener("scroll", onScroll, { passive: true });
5496
- return () => {
5497
- _optionalChain([observer, 'optionalAccess', _119 => _119.disconnect, 'call', _120 => _120()]);
5498
- scrollContainer.removeEventListener("scroll", onScroll);
5499
- };
5500
- }, [hasNextPage, scrollEl, sentinelEl, messages.length]);
5585
+ const scrollContainer = scrollRef.current;
5586
+ const sentinelElement = sentinelRef.current;
5587
+ if (!scrollContainer || !sentinelElement || !hasNextPage) return;
5588
+ const observer = new IntersectionObserver(
5589
+ (entries) => {
5590
+ const entry = entries[0];
5591
+ if (!entry) return;
5592
+ if (entry.isIntersecting && !isFetchingRef.current) {
5593
+ _optionalChain([onLoadMoreRef, 'access', _114 => _114.current, 'optionalCall', _115 => _115()]);
5594
+ }
5595
+ },
5596
+ { root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
5597
+ );
5598
+ observer.observe(sentinelElement);
5599
+ return () => observer.disconnect();
5600
+ }, [hasNextPage, scrollRef]);
5501
5601
  _react.useImperativeHandle.call(void 0, ref, () => scrollRef.current, [scrollRef]);
5502
- const showLoader = useDelayedFlag(isLoading, { delay: 200, minDuration: 400 });
5503
- const setScrollRef = _react.useCallback.call(void 0, (el) => {
5504
- scrollRef(el);
5505
- setScrollEl(el);
5506
- }, [scrollRef]);
5507
- const setContentRef = _react.useCallback.call(void 0, (el) => {
5508
- contentRef(el);
5509
- }, [contentRef]);
5510
- if (showLoader) {
5602
+ if (isLoading) {
5511
5603
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5512
- ChatMessageListLoader,
5604
+ ChatMessageListSkeleton,
5513
5605
  {
5514
5606
  className,
5515
- assistantIcon,
5516
- assistantType
5607
+ showAvatars,
5608
+ assistantType,
5609
+ contentClassName,
5610
+ messageCount: 6
5517
5611
  }
5518
5612
  );
5519
5613
  }
5614
+ const setScrollRef = (el) => {
5615
+ scrollRef(el);
5616
+ };
5617
+ const setContentRef = (el) => {
5618
+ contentRef(el);
5619
+ };
5520
5620
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex-1 min-h-0 flex flex-col", children: [
5521
5621
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5522
5622
  "div",
@@ -5538,17 +5638,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5538
5638
  ),
5539
5639
  style: { minHeight: "100%" },
5540
5640
  children: [
5541
- hasNextPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setSentinelEl, className: "h-px" }),
5542
- isFetchingNextPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5543
- "div",
5544
- {
5545
- className: "flex justify-center py-3 animate-in fade-in duration-200",
5546
- role: "status",
5547
- "aria-live": "polite",
5548
- "aria-busy": "true",
5549
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PulseDots, { size: "sm" })
5550
- }
5551
- ),
5641
+ hasNextPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-px" }),
5552
5642
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
5553
5643
  messages.map((message, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5554
5644
  MemoizedChatMessageEnhanced,
@@ -5657,7 +5747,7 @@ var ChatTicketItem = React15.forwardRef(
5657
5747
  {
5658
5748
  ref,
5659
5749
  type: "button",
5660
- onClick: () => _optionalChain([onClick, 'optionalCall', _121 => _121(ticket.id)]),
5750
+ onClick: () => _optionalChain([onClick, 'optionalCall', _116 => _116(ticket.id)]),
5661
5751
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5662
5752
  "flex items-center gap-4 w-full h-20 px-4",
5663
5753
  "bg-ods-card border-b border-ods-border",
@@ -6005,8 +6095,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
6005
6095
  var DialogListItem = _react.forwardRef.call(void 0,
6006
6096
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
6007
6097
  const handleClick = (e) => {
6008
- _optionalChain([onDialogSelect, 'optionalCall', _122 => _122(dialog.id)]);
6009
- _optionalChain([onClick, 'optionalCall', _123 => _123(e)]);
6098
+ _optionalChain([onDialogSelect, 'optionalCall', _117 => _117(dialog.id)]);
6099
+ _optionalChain([onClick, 'optionalCall', _118 => _118(e)]);
6010
6100
  };
6011
6101
  const formatTimestamp2 = (timestamp) => {
6012
6102
  if (!timestamp) return "";
@@ -6065,7 +6155,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
6065
6155
  (entries) => {
6066
6156
  const [entry] = entries;
6067
6157
  if (entry.isIntersecting && !isFetchingRef.current) {
6068
- _optionalChain([onLoadMoreRef, 'access', _124 => _124.current, 'optionalCall', _125 => _125()]);
6158
+ _optionalChain([onLoadMoreRef, 'access', _119 => _119.current, 'optionalCall', _120 => _120()]);
6069
6159
  }
6070
6160
  },
6071
6161
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -6483,7 +6573,7 @@ function useNatsDialogSubscription({
6483
6573
  reconnectionBackoffRef.current = reconnectionBackoff;
6484
6574
  }, [reconnectionBackoff]);
6485
6575
  const acquireClient = _react.useCallback.call(void 0, (url) => {
6486
- if (_optionalChain([shared, 'optionalAccess', _126 => _126.wsUrl]) !== url) {
6576
+ if (_optionalChain([shared, 'optionalAccess', _121 => _121.wsUrl]) !== url) {
6487
6577
  if (shared) {
6488
6578
  shared.closeTimer && clearTimeout(shared.closeTimer);
6489
6579
  const old = shared;
@@ -6574,7 +6664,7 @@ function useNatsDialogSubscription({
6574
6664
  if (closed) return;
6575
6665
  if (shared !== sharedConn) return;
6576
6666
  try {
6577
- await _optionalChain([onBeforeReconnectRef, 'access', _127 => _127.current, 'optionalCall', _128 => _128()]);
6667
+ await _optionalChain([onBeforeReconnectRef, 'access', _122 => _122.current, 'optionalCall', _123 => _123()]);
6578
6668
  } catch (e7) {
6579
6669
  }
6580
6670
  if (closed) return;
@@ -6607,22 +6697,22 @@ function useNatsDialogSubscription({
6607
6697
  }
6608
6698
  hadConnectionBeforeRef.current = true;
6609
6699
  retryAttempt = 0;
6610
- _optionalChain([onConnectRef, 'access', _129 => _129.current, 'optionalCall', _130 => _130()]);
6700
+ _optionalChain([onConnectRef, 'access', _124 => _124.current, 'optionalCall', _125 => _125()]);
6611
6701
  }
6612
6702
  if (disconnected) {
6613
6703
  setIsConnected(false);
6614
6704
  setIsSubscribed(false);
6615
6705
  subscriptionRefs.current.forEach((sub) => {
6616
6706
  try {
6617
- _optionalChain([sub, 'optionalAccess', _131 => _131.unsubscribe, 'call', _132 => _132()]);
6707
+ _optionalChain([sub, 'optionalAccess', _126 => _126.unsubscribe, 'call', _127 => _127()]);
6618
6708
  } catch (e9) {
6619
6709
  }
6620
6710
  });
6621
6711
  subscriptionRefs.current.clear();
6622
6712
  lastSubscribedDialogIdRef.current = null;
6623
- _optionalChain([abortControllerRef, 'access', _133 => _133.current, 'optionalAccess', _134 => _134.abort, 'call', _135 => _135()]);
6713
+ _optionalChain([abortControllerRef, 'access', _128 => _128.current, 'optionalAccess', _129 => _129.abort, 'call', _130 => _130()]);
6624
6714
  abortControllerRef.current = null;
6625
- _optionalChain([onDisconnectRef, 'access', _136 => _136.current, 'optionalCall', _137 => _137()]);
6715
+ _optionalChain([onDisconnectRef, 'access', _131 => _131.current, 'optionalCall', _132 => _132()]);
6626
6716
  scheduleRetry();
6627
6717
  }
6628
6718
  });
@@ -6638,7 +6728,7 @@ function useNatsDialogSubscription({
6638
6728
  sharedConn.connectPromise = null;
6639
6729
  if (!closed) {
6640
6730
  setIsConnected(false);
6641
- _optionalChain([onDisconnectRef, 'access', _138 => _138.current, 'optionalCall', _139 => _139()]);
6731
+ _optionalChain([onDisconnectRef, 'access', _133 => _133.current, 'optionalCall', _134 => _134()]);
6642
6732
  scheduleRetry();
6643
6733
  }
6644
6734
  }
@@ -6654,7 +6744,7 @@ function useNatsDialogSubscription({
6654
6744
  }
6655
6745
  subscriptionRefs.current.forEach((sub) => {
6656
6746
  try {
6657
- _optionalChain([sub, 'optionalAccess', _140 => _140.unsubscribe, 'call', _141 => _141()]);
6747
+ _optionalChain([sub, 'optionalAccess', _135 => _135.unsubscribe, 'call', _136 => _136()]);
6658
6748
  } catch (e11) {
6659
6749
  }
6660
6750
  });
@@ -6682,13 +6772,13 @@ function useNatsDialogSubscription({
6682
6772
  setIsSubscribed(false);
6683
6773
  subscriptionRefs.current.forEach((sub) => {
6684
6774
  try {
6685
- _optionalChain([sub, 'optionalAccess', _142 => _142.unsubscribe, 'call', _143 => _143()]);
6775
+ _optionalChain([sub, 'optionalAccess', _137 => _137.unsubscribe, 'call', _138 => _138()]);
6686
6776
  } catch (e12) {
6687
6777
  }
6688
6778
  });
6689
6779
  subscriptionRefs.current.clear();
6690
6780
  lastSubscribedDialogIdRef.current = null;
6691
- _optionalChain([abortControllerRef, 'access', _144 => _144.current, 'optionalAccess', _145 => _145.abort, 'call', _146 => _146()]);
6781
+ _optionalChain([abortControllerRef, 'access', _139 => _139.current, 'optionalAccess', _140 => _140.abort, 'call', _141 => _141()]);
6692
6782
  abortControllerRef.current = null;
6693
6783
  }
6694
6784
  return;
@@ -6700,12 +6790,12 @@ function useNatsDialogSubscription({
6700
6790
  if (subscriptionRefs.current.size > 0) {
6701
6791
  subscriptionRefs.current.forEach((sub) => {
6702
6792
  try {
6703
- _optionalChain([sub, 'optionalAccess', _147 => _147.unsubscribe, 'call', _148 => _148()]);
6793
+ _optionalChain([sub, 'optionalAccess', _142 => _142.unsubscribe, 'call', _143 => _143()]);
6704
6794
  } catch (e13) {
6705
6795
  }
6706
6796
  });
6707
6797
  subscriptionRefs.current.clear();
6708
- _optionalChain([abortControllerRef, 'access', _149 => _149.current, 'optionalAccess', _150 => _150.abort, 'call', _151 => _151()]);
6798
+ _optionalChain([abortControllerRef, 'access', _144 => _144.current, 'optionalAccess', _145 => _145.abort, 'call', _146 => _146()]);
6709
6799
  }
6710
6800
  abortControllerRef.current = new AbortController();
6711
6801
  const abort = abortControllerRef.current;
@@ -6737,7 +6827,7 @@ function useNatsDialogSubscription({
6737
6827
  });
6738
6828
  lastSubscribedDialogIdRef.current = dialogId;
6739
6829
  setIsSubscribed(true);
6740
- _optionalChain([onSubscribedRef, 'access', _152 => _152.current, 'optionalCall', _153 => _153()]);
6830
+ _optionalChain([onSubscribedRef, 'access', _147 => _147.current, 'optionalCall', _148 => _148()]);
6741
6831
  };
6742
6832
  if (isConnectedRef.current) {
6743
6833
  createSubscriptions();
@@ -6747,7 +6837,7 @@ function useNatsDialogSubscription({
6747
6837
  abort.abort();
6748
6838
  subscriptionRefs.current.forEach((sub) => {
6749
6839
  try {
6750
- _optionalChain([sub, 'optionalAccess', _154 => _154.unsubscribe, 'call', _155 => _155()]);
6840
+ _optionalChain([sub, 'optionalAccess', _149 => _149.unsubscribe, 'call', _150 => _150()]);
6751
6841
  } catch (e15) {
6752
6842
  }
6753
6843
  });
@@ -6788,7 +6878,7 @@ function useNatsDialogSubscription({
6788
6878
  });
6789
6879
  lastSubscribedDialogIdRef.current = dialogId2;
6790
6880
  setIsSubscribed(true);
6791
- _optionalChain([onSubscribedRef, 'access', _156 => _156.current, 'optionalCall', _157 => _157()]);
6881
+ _optionalChain([onSubscribedRef, 'access', _151 => _151.current, 'optionalCall', _152 => _152()]);
6792
6882
  } else if (subscriptionRefs.current.size > 0) {
6793
6883
  setIsSubscribed(true);
6794
6884
  }
@@ -6796,10 +6886,10 @@ function useNatsDialogSubscription({
6796
6886
  return { isConnected, isSubscribed, reconnectionCount };
6797
6887
  }
6798
6888
  function buildNatsWsUrl(apiBaseUrl, options) {
6799
- const path = _optionalChain([options, 'optionalAccess', _158 => _158.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
6889
+ const path = _optionalChain([options, 'optionalAccess', _153 => _153.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
6800
6890
  const u = new URL(path, apiBaseUrl);
6801
6891
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
6802
- if (_optionalChain([options, 'optionalAccess', _159 => _159.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _160 => _160.token])) {
6892
+ if (_optionalChain([options, 'optionalAccess', _154 => _154.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _155 => _155.token])) {
6803
6893
  u.searchParams.set("authorization", options.token);
6804
6894
  }
6805
6895
  return u.toString();
@@ -7110,7 +7200,7 @@ var MessageSegmentAccumulator = class {
7110
7200
  type: "tool_execution",
7111
7201
  data: {
7112
7202
  ...toolData,
7113
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _161 => _161.parameters])
7203
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _156 => _156.parameters])
7114
7204
  }
7115
7205
  };
7116
7206
  if (existingIndex !== -1) {
@@ -7134,8 +7224,8 @@ var MessageSegmentAccumulator = class {
7134
7224
  if (seg.type !== "approval_batch") return seg;
7135
7225
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
7136
7226
  if (!hasCall) return seg;
7137
- const prev = _optionalChain([seg, 'access', _162 => _162.data, 'access', _163 => _163.executions, 'optionalAccess', _164 => _164[execId]]);
7138
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _165 => _165.result]), success: _optionalChain([prev, 'optionalAccess', _166 => _166.success]) };
7227
+ const prev = _optionalChain([seg, 'access', _157 => _157.data, 'access', _158 => _158.executions, 'optionalAccess', _159 => _159[execId]]);
7228
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _160 => _160.result]), success: _optionalChain([prev, 'optionalAccess', _161 => _161.success]) };
7139
7229
  matched = true;
7140
7230
  return {
7141
7231
  ...seg,
@@ -7231,10 +7321,10 @@ var MessageSegmentAccumulator = class {
7231
7321
  const segment = {
7232
7322
  type: "approval_request",
7233
7323
  data: {
7234
- command: _optionalChain([pendingApproval, 'optionalAccess', _167 => _167.command]) || "",
7235
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _168 => _168.explanation]),
7324
+ command: _optionalChain([pendingApproval, 'optionalAccess', _162 => _162.command]) || "",
7325
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _163 => _163.explanation]),
7236
7326
  requestId,
7237
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _169 => _169.approvalType]) || approvalType
7327
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _164 => _164.approvalType]) || approvalType
7238
7328
  },
7239
7329
  status,
7240
7330
  onApprove: this.callbacks.onApprove,
@@ -7422,7 +7512,7 @@ function useRealtimeChunkProcessor(options) {
7422
7512
  if (initialState.escalatedApprovals) {
7423
7513
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
7424
7514
  initialState.escalatedApprovals.forEach((data, requestId) => {
7425
- _optionalChain([callbacks, 'access', _170 => _170.onEscalatedApproval, 'optionalCall', _171 => _171(requestId, data)]);
7515
+ _optionalChain([callbacks, 'access', _165 => _165.onEscalatedApproval, 'optionalCall', _166 => _166(requestId, data)]);
7426
7516
  });
7427
7517
  }
7428
7518
  hasInitializedWithData.current = true;
@@ -7441,30 +7531,30 @@ function useRealtimeChunkProcessor(options) {
7441
7531
  switch (action.action) {
7442
7532
  case "message_start":
7443
7533
  isInStreamRef.current = true;
7444
- _optionalChain([callbacks, 'access', _172 => _172.onStreamStart, 'optionalCall', _173 => _173()]);
7534
+ _optionalChain([callbacks, 'access', _167 => _167.onStreamStart, 'optionalCall', _168 => _168()]);
7445
7535
  accumulator.resetSegments();
7446
7536
  break;
7447
7537
  case "message_end":
7448
7538
  isInStreamRef.current = false;
7449
- _optionalChain([callbacks, 'access', _174 => _174.onStreamEnd, 'optionalCall', _175 => _175()]);
7539
+ _optionalChain([callbacks, 'access', _169 => _169.onStreamEnd, 'optionalCall', _170 => _170()]);
7450
7540
  accumulator.resetSegments();
7451
7541
  break;
7452
7542
  case "metadata":
7453
- _optionalChain([callbacks, 'access', _176 => _176.onMetadata, 'optionalCall', _177 => _177(action)]);
7543
+ _optionalChain([callbacks, 'access', _171 => _171.onMetadata, 'optionalCall', _172 => _172(action)]);
7454
7544
  break;
7455
7545
  case "text": {
7456
7546
  const segments = accumulator.appendText(action.text);
7457
- _optionalChain([callbacks, 'access', _178 => _178.onSegmentsUpdate, 'optionalCall', _179 => _179(segments)]);
7547
+ _optionalChain([callbacks, 'access', _173 => _173.onSegmentsUpdate, 'optionalCall', _174 => _174(segments)]);
7458
7548
  break;
7459
7549
  }
7460
7550
  case "thinking": {
7461
7551
  const segments = accumulator.appendThinking(action.text);
7462
- _optionalChain([callbacks, 'access', _180 => _180.onSegmentsUpdate, 'optionalCall', _181 => _181(segments)]);
7552
+ _optionalChain([callbacks, 'access', _175 => _175.onSegmentsUpdate, 'optionalCall', _176 => _176(segments)]);
7463
7553
  break;
7464
7554
  }
7465
7555
  case "tool_execution": {
7466
7556
  const segments = accumulator.addToolExecution(action.segment);
7467
- _optionalChain([callbacks, 'access', _182 => _182.onSegmentsUpdate, 'optionalCall', _183 => _183(segments)]);
7557
+ _optionalChain([callbacks, 'access', _177 => _177.onSegmentsUpdate, 'optionalCall', _178 => _178(segments)]);
7468
7558
  break;
7469
7559
  }
7470
7560
  case "approval_request": {
@@ -7478,10 +7568,10 @@ function useRealtimeChunkProcessor(options) {
7478
7568
  approvalType,
7479
7569
  status
7480
7570
  );
7481
- _optionalChain([callbacks, 'access', _184 => _184.onSegmentsUpdate, 'optionalCall', _185 => _185(segments)]);
7571
+ _optionalChain([callbacks, 'access', _179 => _179.onSegmentsUpdate, 'optionalCall', _180 => _180(segments)]);
7482
7572
  } else {
7483
7573
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
7484
- _optionalChain([callbacks, 'access', _186 => _186.onEscalatedApproval, 'optionalCall', _187 => _187(requestId, { command, explanation, approvalType })]);
7574
+ _optionalChain([callbacks, 'access', _181 => _181.onEscalatedApproval, 'optionalCall', _182 => _182(requestId, { command, explanation, approvalType })]);
7485
7575
  }
7486
7576
  break;
7487
7577
  }
@@ -7493,20 +7583,20 @@ function useRealtimeChunkProcessor(options) {
7493
7583
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
7494
7584
  pendingEscalatedRef.current.set(requestId, {
7495
7585
  command: summary,
7496
- explanation: _optionalChain([required, 'optionalAccess', _188 => _188.toolExplanation]),
7586
+ explanation: _optionalChain([required, 'optionalAccess', _183 => _183.toolExplanation]),
7497
7587
  approvalType,
7498
7588
  toolCalls
7499
7589
  });
7500
- _optionalChain([callbacks, 'access', _189 => _189.onEscalatedApproval, 'optionalCall', _190 => _190(requestId, {
7590
+ _optionalChain([callbacks, 'access', _184 => _184.onEscalatedApproval, 'optionalCall', _185 => _185(requestId, {
7501
7591
  command: summary,
7502
- explanation: _optionalChain([required, 'optionalAccess', _191 => _191.toolExplanation]),
7592
+ explanation: _optionalChain([required, 'optionalAccess', _186 => _186.toolExplanation]),
7503
7593
  approvalType
7504
7594
  })]);
7505
7595
  break;
7506
7596
  }
7507
7597
  if (batchApprovalsEnabled) {
7508
7598
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
7509
- _optionalChain([callbacks, 'access', _192 => _192.onSegmentsUpdate, 'optionalCall', _193 => _193(segments2)]);
7599
+ _optionalChain([callbacks, 'access', _187 => _187.onSegmentsUpdate, 'optionalCall', _188 => _188(segments2)]);
7510
7600
  break;
7511
7601
  }
7512
7602
  let segments = accumulator.getSegments();
@@ -7520,7 +7610,7 @@ function useRealtimeChunkProcessor(options) {
7520
7610
  status
7521
7611
  );
7522
7612
  }
7523
- _optionalChain([callbacks, 'access', _194 => _194.onSegmentsUpdate, 'optionalCall', _195 => _195(segments)]);
7613
+ _optionalChain([callbacks, 'access', _189 => _189.onSegmentsUpdate, 'optionalCall', _190 => _190(segments)]);
7524
7614
  break;
7525
7615
  }
7526
7616
  case "approval_result": {
@@ -7529,7 +7619,7 @@ function useRealtimeChunkProcessor(options) {
7529
7619
  const status = approved ? "approved" : "rejected";
7530
7620
  if (escalatedData) {
7531
7621
  pendingEscalatedRef.current.delete(requestId);
7532
- _optionalChain([callbacks, 'access', _196 => _196.onEscalatedApprovalResult, 'optionalCall', _197 => _197(requestId, approved, {
7622
+ _optionalChain([callbacks, 'access', _191 => _191.onEscalatedApprovalResult, 'optionalCall', _192 => _192(requestId, approved, {
7533
7623
  command: escalatedData.command,
7534
7624
  explanation: escalatedData.explanation,
7535
7625
  approvalType: escalatedData.approvalType
@@ -7542,7 +7632,7 @@ function useRealtimeChunkProcessor(options) {
7542
7632
  escalatedData.toolCalls,
7543
7633
  status
7544
7634
  );
7545
- _optionalChain([callbacks, 'access', _198 => _198.onSegmentsUpdate, 'optionalCall', _199 => _199(segments)]);
7635
+ _optionalChain([callbacks, 'access', _193 => _193.onSegmentsUpdate, 'optionalCall', _194 => _194(segments)]);
7546
7636
  } else {
7547
7637
  let segments = accumulator.getSegments();
7548
7638
  for (const call of escalatedData.toolCalls) {
@@ -7555,7 +7645,7 @@ function useRealtimeChunkProcessor(options) {
7555
7645
  status
7556
7646
  );
7557
7647
  }
7558
- _optionalChain([callbacks, 'access', _200 => _200.onSegmentsUpdate, 'optionalCall', _201 => _201(segments)]);
7648
+ _optionalChain([callbacks, 'access', _195 => _195.onSegmentsUpdate, 'optionalCall', _196 => _196(segments)]);
7559
7649
  }
7560
7650
  } else {
7561
7651
  const segments = accumulator.addApprovalRequest(
@@ -7565,63 +7655,63 @@ function useRealtimeChunkProcessor(options) {
7565
7655
  escalatedData.approvalType,
7566
7656
  status
7567
7657
  );
7568
- _optionalChain([callbacks, 'access', _202 => _202.onSegmentsUpdate, 'optionalCall', _203 => _203(segments)]);
7658
+ _optionalChain([callbacks, 'access', _197 => _197.onSegmentsUpdate, 'optionalCall', _198 => _198(segments)]);
7569
7659
  }
7570
7660
  } else {
7571
7661
  const segments = accumulator.updateApprovalStatus(requestId, status);
7572
- _optionalChain([callbacks, 'access', _204 => _204.onSegmentsUpdate, 'optionalCall', _205 => _205(segments)]);
7662
+ _optionalChain([callbacks, 'access', _199 => _199.onSegmentsUpdate, 'optionalCall', _200 => _200(segments)]);
7573
7663
  }
7574
7664
  void approvalType;
7575
7665
  break;
7576
7666
  }
7577
7667
  case "error": {
7578
7668
  let message;
7579
- if ("details" in action && _optionalChain([action, 'optionalAccess', _206 => _206.details])) {
7669
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _201 => _201.details])) {
7580
7670
  try {
7581
- message = _optionalChain([JSON, 'access', _207 => _207.parse, 'call', _208 => _208(action.details), 'optionalAccess', _209 => _209.error, 'optionalAccess', _210 => _210.message]);
7671
+ message = _optionalChain([JSON, 'access', _202 => _202.parse, 'call', _203 => _203(action.details), 'optionalAccess', _204 => _204.error, 'optionalAccess', _205 => _205.message]);
7582
7672
  } catch (e17) {
7583
7673
  message = action.details;
7584
7674
  }
7585
7675
  }
7586
7676
  const segments = accumulator.addError(action.error, message);
7587
- _optionalChain([callbacks, 'access', _211 => _211.onSegmentsUpdate, 'optionalCall', _212 => _212(segments)]);
7588
- _optionalChain([callbacks, 'access', _213 => _213.onError, 'optionalCall', _214 => _214(action.error, message)]);
7677
+ _optionalChain([callbacks, 'access', _206 => _206.onSegmentsUpdate, 'optionalCall', _207 => _207(segments)]);
7678
+ _optionalChain([callbacks, 'access', _208 => _208.onError, 'optionalCall', _209 => _209(action.error, message)]);
7589
7679
  break;
7590
7680
  }
7591
7681
  case "system": {
7592
- _optionalChain([callbacks, 'access', _215 => _215.onSystemMessage, 'optionalCall', _216 => _216(action.text)]);
7682
+ _optionalChain([callbacks, 'access', _210 => _210.onSystemMessage, 'optionalCall', _211 => _211(action.text)]);
7593
7683
  break;
7594
7684
  }
7595
7685
  case "direct_message": {
7596
- _optionalChain([callbacks, 'access', _217 => _217.onDirectMessage, 'optionalCall', _218 => _218(action.text, {
7686
+ _optionalChain([callbacks, 'access', _212 => _212.onDirectMessage, 'optionalCall', _213 => _213(action.text, {
7597
7687
  ownerType: action.ownerType,
7598
7688
  displayName: action.displayName
7599
7689
  })]);
7600
7690
  break;
7601
7691
  }
7602
7692
  case "message_request":
7603
- _optionalChain([callbacks, 'access', _219 => _219.onUserMessage, 'optionalCall', _220 => _220(action.text, {
7693
+ _optionalChain([callbacks, 'access', _214 => _214.onUserMessage, 'optionalCall', _215 => _215(action.text, {
7604
7694
  ownerType: action.ownerType,
7605
7695
  displayName: action.displayName
7606
7696
  })]);
7607
7697
  break;
7608
7698
  case "token_usage":
7609
- _optionalChain([callbacks, 'access', _221 => _221.onTokenUsage, 'optionalCall', _222 => _222(action.data)]);
7699
+ _optionalChain([callbacks, 'access', _216 => _216.onTokenUsage, 'optionalCall', _217 => _217(action.data)]);
7610
7700
  break;
7611
7701
  case "context_compaction_start": {
7612
7702
  const standalone = !isInStreamRef.current;
7613
7703
  const segments = accumulator.addContextCompaction();
7614
- _optionalChain([callbacks, 'access', _223 => _223.onSegmentsUpdate, 'optionalCall', _224 => _224(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7704
+ _optionalChain([callbacks, 'access', _218 => _218.onSegmentsUpdate, 'optionalCall', _219 => _219(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7615
7705
  break;
7616
7706
  }
7617
7707
  case "context_compaction_end": {
7618
7708
  const standalone = !isInStreamRef.current;
7619
7709
  const segments = accumulator.completeContextCompaction(action.summary);
7620
- _optionalChain([callbacks, 'access', _225 => _225.onSegmentsUpdate, 'optionalCall', _226 => _226(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7710
+ _optionalChain([callbacks, 'access', _220 => _220.onSegmentsUpdate, 'optionalCall', _221 => _221(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7621
7711
  break;
7622
7712
  }
7623
7713
  case "dialog_closed":
7624
- _optionalChain([callbacks, 'access', _227 => _227.onDialogClosed, 'optionalCall', _228 => _228()]);
7714
+ _optionalChain([callbacks, 'access', _222 => _222.onDialogClosed, 'optionalCall', _223 => _223()]);
7625
7715
  break;
7626
7716
  default:
7627
7717
  break;
@@ -7657,12 +7747,12 @@ function useRealtimeChunkProcessor(options) {
7657
7747
 
7658
7748
  // src/components/chat/utils/process-historical-messages.ts
7659
7749
  function getOwnerDisplayName(owner) {
7660
- if (_optionalChain([owner, 'optionalAccess', _229 => _229.type]) === OWNER_TYPE.ADMIN && owner.user) {
7750
+ if (_optionalChain([owner, 'optionalAccess', _224 => _224.type]) === OWNER_TYPE.ADMIN && owner.user) {
7661
7751
  const { firstName, lastName } = owner.user;
7662
7752
  const name = [firstName, lastName].filter(Boolean).join(" ");
7663
7753
  if (name) return name;
7664
7754
  }
7665
- return _optionalChain([owner, 'optionalAccess', _230 => _230.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
7755
+ return _optionalChain([owner, 'optionalAccess', _225 => _225.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
7666
7756
  }
7667
7757
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
7668
7758
  messageDataArray.forEach((data) => {
@@ -7725,10 +7815,10 @@ function processHistoricalMessages(messages, options = {}) {
7725
7815
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
7726
7816
  return;
7727
7817
  }
7728
- const isUserMessage = _optionalChain([msg, 'access', _231 => _231.owner, 'optionalAccess', _232 => _232.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _233 => _233.owner, 'optionalAccess', _234 => _234.type]) === OWNER_TYPE.ADMIN;
7818
+ const isUserMessage = _optionalChain([msg, 'access', _226 => _226.owner, 'optionalAccess', _227 => _227.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _228 => _228.owner, 'optionalAccess', _229 => _229.type]) === OWNER_TYPE.ADMIN;
7729
7819
  if (isUserMessage) {
7730
7820
  flushAssistantMessage();
7731
- const userAuthorType = _optionalChain([msg, 'access', _235 => _235.owner, 'optionalAccess', _236 => _236.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7821
+ const userAuthorType = _optionalChain([msg, 'access', _230 => _230.owner, 'optionalAccess', _231 => _231.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7732
7822
  messageDataArray.forEach((data) => {
7733
7823
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
7734
7824
  processedMessages.push({
@@ -7752,7 +7842,7 @@ function processHistoricalMessages(messages, options = {}) {
7752
7842
  });
7753
7843
  const nextMsg = messages[index + 1];
7754
7844
  const isLastMessage = index === messages.length - 1;
7755
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _237 => _237.owner, 'optionalAccess', _238 => _238.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _239 => _239.owner, 'optionalAccess', _240 => _240.type]) === OWNER_TYPE.ADMIN);
7845
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _232 => _232.owner, 'optionalAccess', _233 => _233.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _234 => _234.owner, 'optionalAccess', _235 => _235.type]) === OWNER_TYPE.ADMIN);
7756
7846
  if (isLastMessage || nextIsFromUser) {
7757
7847
  flushAssistantMessage();
7758
7848
  }
@@ -7849,7 +7939,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7849
7939
  });
7850
7940
  }
7851
7941
  } else {
7852
- _optionalChain([escalatedApprovals, 'optionalAccess', _241 => _241.set, 'call', _242 => _242(data.approvalRequestId, {
7942
+ _optionalChain([escalatedApprovals, 'optionalAccess', _236 => _236.set, 'call', _237 => _237(data.approvalRequestId, {
7853
7943
  command: data.command || "",
7854
7944
  explanation: data.explanation,
7855
7945
  approvalType,
@@ -7862,8 +7952,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7862
7952
  if ("approvalRequestId" in data && data.approvalRequestId) {
7863
7953
  const existingStatus = approvalStatuses[data.approvalRequestId];
7864
7954
  const status = existingStatus || (data.approved ? "approved" : "rejected");
7865
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _243 => _243.get, 'call', _244 => _244(data.approvalRequestId)]);
7866
- if (_optionalChain([escalatedData, 'optionalAccess', _245 => _245.toolCalls]) && escalatedData.toolCalls.length > 0) {
7955
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _238 => _238.get, 'call', _239 => _239(data.approvalRequestId)]);
7956
+ if (_optionalChain([escalatedData, 'optionalAccess', _240 => _240.toolCalls]) && escalatedData.toolCalls.length > 0) {
7867
7957
  if (batchApprovalsEnabled) {
7868
7958
  accumulator.addApprovalBatch(
7869
7959
  data.approvalRequestId,
@@ -7883,7 +7973,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7883
7973
  );
7884
7974
  }
7885
7975
  }
7886
- _optionalChain([escalatedApprovals, 'optionalAccess', _246 => _246.delete, 'call', _247 => _247(data.approvalRequestId)]);
7976
+ _optionalChain([escalatedApprovals, 'optionalAccess', _241 => _241.delete, 'call', _242 => _242(data.approvalRequestId)]);
7887
7977
  break;
7888
7978
  }
7889
7979
  if (escalatedData) {
@@ -7892,7 +7982,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7892
7982
  explanation: escalatedData.explanation,
7893
7983
  approvalType: escalatedData.approvalType
7894
7984
  });
7895
- _optionalChain([escalatedApprovals, 'optionalAccess', _248 => _248.delete, 'call', _249 => _249(data.approvalRequestId)]);
7985
+ _optionalChain([escalatedApprovals, 'optionalAccess', _243 => _243.delete, 'call', _244 => _244(data.approvalRequestId)]);
7896
7986
  }
7897
7987
  const before = accumulator.getSegments();
7898
7988
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -7908,9 +7998,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7908
7998
  case MESSAGE_TYPE.ERROR:
7909
7999
  if ("error" in data) {
7910
8000
  let message;
7911
- if ("details" in data && _optionalChain([data, 'optionalAccess', _250 => _250.details])) {
8001
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _245 => _245.details])) {
7912
8002
  try {
7913
- message = _optionalChain([JSON, 'access', _251 => _251.parse, 'call', _252 => _252(data.details), 'optionalAccess', _253 => _253.error, 'optionalAccess', _254 => _254.message]);
8003
+ message = _optionalChain([JSON, 'access', _246 => _246.parse, 'call', _247 => _247(data.details), 'optionalAccess', _248 => _248.error, 'optionalAccess', _249 => _249.message]);
7914
8004
  } catch (e18) {
7915
8005
  message = data.details;
7916
8006
  }
@@ -7993,10 +8083,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
7993
8083
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
7994
8084
  return;
7995
8085
  }
7996
- const isUserMessage = _optionalChain([msg, 'access', _255 => _255.owner, 'optionalAccess', _256 => _256.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _257 => _257.owner, 'optionalAccess', _258 => _258.type]) === OWNER_TYPE.ADMIN;
8086
+ const isUserMessage = _optionalChain([msg, 'access', _250 => _250.owner, 'optionalAccess', _251 => _251.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _252 => _252.owner, 'optionalAccess', _253 => _253.type]) === OWNER_TYPE.ADMIN;
7997
8087
  if (isUserMessage) {
7998
8088
  flushAssistantMessage();
7999
- const userAuthorType = _optionalChain([msg, 'access', _259 => _259.owner, 'optionalAccess', _260 => _260.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8089
+ const userAuthorType = _optionalChain([msg, 'access', _254 => _254.owner, 'optionalAccess', _255 => _255.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8000
8090
  messageDataArray.forEach((data) => {
8001
8091
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8002
8092
  processedMessages.push({
@@ -8020,7 +8110,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8020
8110
  });
8021
8111
  const nextMsg = messages[index + 1];
8022
8112
  const isLastMessage = index === messages.length - 1;
8023
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _261 => _261.owner, 'optionalAccess', _262 => _262.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _263 => _263.owner, 'optionalAccess', _264 => _264.type]) === OWNER_TYPE.ADMIN);
8113
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _256 => _256.owner, 'optionalAccess', _257 => _257.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _258 => _258.owner, 'optionalAccess', _259 => _259.type]) === OWNER_TYPE.ADMIN);
8024
8114
  if (isLastMessage || nextIsFromUser) {
8025
8115
  flushAssistantMessage();
8026
8116
  }
@@ -8079,7 +8169,7 @@ function extractIncompleteMessageState(lastMessage) {
8079
8169
  break;
8080
8170
  case "approval_batch": {
8081
8171
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
8082
- (c) => _optionalChain([segment, 'access', _265 => _265.data, 'access', _266 => _266.executions, 'optionalAccess', _267 => _267[c.toolExecutionRequestId], 'optionalAccess', _268 => _268.status]) === "done"
8172
+ (c) => _optionalChain([segment, 'access', _260 => _260.data, 'access', _261 => _261.executions, 'optionalAccess', _262 => _262[c.toolExecutionRequestId], 'optionalAccess', _263 => _263.status]) === "done"
8083
8173
  );
8084
8174
  if (segment.status !== "rejected" && !allDone) {
8085
8175
  hasIncompleteState = true;
@@ -8241,7 +8331,7 @@ function Header({ config, platform }) {
8241
8331
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
8242
8332
  "flex justify-start w-full",
8243
8333
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
8244
- index < (_nullishCoalesce(_optionalChain([item, 'access', _269 => _269.children, 'optionalAccess', _270 => _270.length]), () => ( 0))) - 1 && "mb-1",
8334
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _264 => _264.children, 'optionalAccess', _265 => _265.length]), () => ( 0))) - 1 && "mb-1",
8245
8335
  "text-ods-text-primary",
8246
8336
  // All dropdown items use primary text color
8247
8337
  child.isActive && "bg-ods-bg-hover"
@@ -8333,7 +8423,7 @@ function Header({ config, platform }) {
8333
8423
  style: config.style,
8334
8424
  children: [
8335
8425
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
8336
- _optionalChain([config, 'access', _271 => _271.actions, 'optionalAccess', _272 => _272.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
8426
+ _optionalChain([config, 'access', _266 => _266.actions, 'optionalAccess', _267 => _267.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
8337
8427
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
8338
8428
  ] }),
8339
8429
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8350,7 +8440,7 @@ function Header({ config, platform }) {
8350
8440
  }
8351
8441
  ),
8352
8442
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
8353
- _optionalChain([config, 'access', _273 => _273.actions, 'optionalAccess', _274 => _274.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
8443
+ _optionalChain([config, 'access', _268 => _268.actions, 'optionalAccess', _269 => _269.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
8354
8444
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8355
8445
  _chunkBJTOSUT4cjs.Button,
8356
8446
  {
@@ -8358,10 +8448,10 @@ function Header({ config, platform }) {
8358
8448
  size: "icon",
8359
8449
  className: "flex md:hidden",
8360
8450
  onClick: () => {
8361
- _optionalChain([config, 'access', _275 => _275.mobile, 'optionalAccess', _276 => _276.onToggle, 'optionalCall', _277 => _277()]);
8451
+ _optionalChain([config, 'access', _270 => _270.mobile, 'optionalAccess', _271 => _271.onToggle, 'optionalCall', _272 => _272()]);
8362
8452
  },
8363
- "aria-label": _optionalChain([config, 'access', _278 => _278.mobile, 'optionalAccess', _279 => _279.isOpen]) ? "Close menu" : "Open menu",
8364
- leftIcon: _optionalChain([config, 'access', _280 => _280.mobile, 'optionalAccess', _281 => _281.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, {})
8453
+ "aria-label": _optionalChain([config, 'access', _273 => _273.mobile, 'optionalAccess', _274 => _274.isOpen]) ? "Close menu" : "Open menu",
8454
+ leftIcon: _optionalChain([config, 'access', _275 => _275.mobile, 'optionalAccess', _276 => _276.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, {})
8365
8455
  }
8366
8456
  )
8367
8457
  ] })
@@ -8378,10 +8468,10 @@ function Header({ config, platform }) {
8378
8468
  // src/components/navigation/header-skeleton.tsx
8379
8469
 
8380
8470
  function HeaderSkeleton({ config }) {
8381
- const showNavigation = _optionalChain([config, 'optionalAccess', _282 => _282.navigation]) && config.navigation.items.length > 0;
8382
- const showActions = _optionalChain([config, 'optionalAccess', _283 => _283.actions, 'optionalAccess', _284 => _284.right]) && config.actions.right.length > 0;
8383
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _285 => _285.mobile, 'optionalAccess', _286 => _286.enabled]);
8384
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _287 => _287.className, 'optionalAccess', _288 => _288.includes, 'call', _289 => _289("admin")]);
8471
+ const showNavigation = _optionalChain([config, 'optionalAccess', _277 => _277.navigation]) && config.navigation.items.length > 0;
8472
+ const showActions = _optionalChain([config, 'optionalAccess', _278 => _278.actions, 'optionalAccess', _279 => _279.right]) && config.actions.right.length > 0;
8473
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _280 => _280.mobile, 'optionalAccess', _281 => _281.enabled]);
8474
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _282 => _282.className, 'optionalAccess', _283 => _283.includes, 'call', _284 => _284("admin")]);
8385
8475
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
8386
8476
  "header",
8387
8477
  {
@@ -8390,11 +8480,11 @@ function HeaderSkeleton({ config }) {
8390
8480
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
8391
8481
  "px-6 py-3",
8392
8482
  "transition-opacity duration-300 ease-in-out",
8393
- _optionalChain([config, 'optionalAccess', _290 => _290.className])
8483
+ _optionalChain([config, 'optionalAccess', _285 => _285.className])
8394
8484
  ),
8395
8485
  children: [
8396
8486
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
8397
- isAdminHeader && _optionalChain([config, 'optionalAccess', _291 => _291.actions, 'optionalAccess', _292 => _292.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" }) }),
8487
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _286 => _286.actions, 'optionalAccess', _287 => _287.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" }) }),
8398
8488
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
8399
8489
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
8400
8490
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -8402,8 +8492,8 @@ function HeaderSkeleton({ config }) {
8402
8492
  ] }),
8403
8493
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
8404
8494
  "hidden md:flex items-center gap-2",
8405
- _optionalChain([config, 'optionalAccess', _293 => _293.navigation, 'optionalAccess', _294 => _294.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
8406
- _optionalChain([config, 'optionalAccess', _295 => _295.navigation, 'optionalAccess', _296 => _296.position]) === "right" && "ml-auto mr-4"
8495
+ _optionalChain([config, 'optionalAccess', _288 => _288.navigation, 'optionalAccess', _289 => _289.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
8496
+ _optionalChain([config, 'optionalAccess', _290 => _290.navigation, 'optionalAccess', _291 => _291.position]) === "right" && "ml-auto mr-4"
8407
8497
  ), children: [
8408
8498
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
8409
8499
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -8451,7 +8541,7 @@ function MobileNavPanel({ isOpen, config }) {
8451
8541
  _react.useEffect.call(void 0, () => {
8452
8542
  const handleKeyDown = (e) => {
8453
8543
  if (e.key === "Escape" && isOpen) {
8454
- _optionalChain([config, 'access', _297 => _297.onClose, 'optionalCall', _298 => _298()]);
8544
+ _optionalChain([config, 'access', _292 => _292.onClose, 'optionalCall', _293 => _293()]);
8455
8545
  }
8456
8546
  };
8457
8547
  if (isOpen) {
@@ -8468,7 +8558,7 @@ function MobileNavPanel({ isOpen, config }) {
8468
8558
  if (item.onClick) {
8469
8559
  item.onClick();
8470
8560
  }
8471
- _optionalChain([config, 'access', _299 => _299.onClose, 'optionalCall', _300 => _300()]);
8561
+ _optionalChain([config, 'access', _294 => _294.onClose, 'optionalCall', _295 => _295()]);
8472
8562
  };
8473
8563
  if (item.href) {
8474
8564
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8686,7 +8776,7 @@ function SlidingSidebar({ config }) {
8686
8776
  variant: "transparent",
8687
8777
  size: "default",
8688
8778
  onClick: () => {
8689
- _optionalChain([item, 'access', _301 => _301.onClick, 'optionalCall', _302 => _302()]);
8779
+ _optionalChain([item, 'access', _296 => _296.onClick, 'optionalCall', _297 => _297()]);
8690
8780
  config.onClose();
8691
8781
  },
8692
8782
  leftIcon: item.icon,
@@ -8709,7 +8799,7 @@ function SlidingSidebar({ config }) {
8709
8799
  variant: "transparent",
8710
8800
  size: "default",
8711
8801
  onClick: () => {
8712
- _optionalChain([item, 'access', _303 => _303.onClick, 'optionalCall', _304 => _304()]);
8802
+ _optionalChain([item, 'access', _298 => _298.onClick, 'optionalCall', _299 => _299()]);
8713
8803
  config.onClose();
8714
8804
  },
8715
8805
  leftIcon: item.icon,
@@ -8836,7 +8926,7 @@ function StickySectionNav({
8836
8926
  ] });
8837
8927
  }
8838
8928
  function useSectionNavigation(sections, options) {
8839
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _305 => _305[0], 'optionalAccess', _306 => _306.id]) || "");
8929
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _300 => _300[0], 'optionalAccess', _301 => _301.id]) || "");
8840
8930
  const isScrollingFromClick = _react.useRef.call(void 0, false);
8841
8931
  const { offset: offset2 = 100 } = options || {};
8842
8932
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -8861,7 +8951,7 @@ function useSectionNavigation(sections, options) {
8861
8951
  const handleScroll = () => {
8862
8952
  if (isScrollingFromClick.current) return;
8863
8953
  const scrollPosition = window.scrollY + offset2 + 50;
8864
- let currentSection = _optionalChain([sections, 'access', _307 => _307[0], 'optionalAccess', _308 => _308.id]) || "";
8954
+ let currentSection = _optionalChain([sections, 'access', _302 => _302[0], 'optionalAccess', _303 => _303.id]) || "";
8865
8955
  for (let i = sections.length - 1; i >= 0; i--) {
8866
8956
  const element = document.getElementById(sections[i].id);
8867
8957
  if (element && scrollPosition >= element.offsetTop) {
@@ -9045,14 +9135,14 @@ function NavigationSidebar({ config, disabled = false }) {
9045
9135
  const showLabel = isLgUp && !minimized;
9046
9136
  const handleToggle = _react.useCallback.call(void 0, () => {
9047
9137
  setMinimized((prev) => !prev);
9048
- _optionalChain([config, 'access', _309 => _309.onToggleMinimized, 'optionalCall', _310 => _310()]);
9138
+ _optionalChain([config, 'access', _304 => _304.onToggleMinimized, 'optionalCall', _305 => _305()]);
9049
9139
  }, [setMinimized, config]);
9050
9140
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
9051
- _optionalChain([event, 'optionalAccess', _311 => _311.stopPropagation, 'call', _312 => _312()]);
9141
+ _optionalChain([event, 'optionalAccess', _306 => _306.stopPropagation, 'call', _307 => _307()]);
9052
9142
  if (item.onClick) {
9053
9143
  item.onClick();
9054
9144
  } else if (item.path) {
9055
- _optionalChain([config, 'access', _313 => _313.onNavigate, 'optionalCall', _314 => _314(item.path)]);
9145
+ _optionalChain([config, 'access', _308 => _308.onNavigate, 'optionalCall', _309 => _309(item.path)]);
9056
9146
  }
9057
9147
  }, [config]);
9058
9148
  const { primaryItems, secondaryItems } = _react.useMemo.call(void 0, () => ({
@@ -9192,7 +9282,7 @@ function NotificationsProvider({
9192
9282
  const setShowPopups = React24.useCallback(
9193
9283
  (value2) => {
9194
9284
  setShowPopupsState(value2);
9195
- _optionalChain([onShowPopupsChange, 'optionalCall', _315 => _315(value2)]);
9285
+ _optionalChain([onShowPopupsChange, 'optionalCall', _310 => _310(value2)]);
9196
9286
  },
9197
9287
  [onShowPopupsChange]
9198
9288
  );
@@ -9297,11 +9387,11 @@ function HeaderGlobalSearch({
9297
9387
  };
9298
9388
  const handleSubmit = (e) => {
9299
9389
  e.preventDefault();
9300
- _optionalChain([onSubmit, 'optionalCall', _316 => _316(currentValue)]);
9390
+ _optionalChain([onSubmit, 'optionalCall', _311 => _311(currentValue)]);
9301
9391
  };
9302
9392
  const handleKeyDown = (e) => {
9303
9393
  if (e.key === "Enter") {
9304
- _optionalChain([onSubmit, 'optionalCall', _317 => _317(currentValue)]);
9394
+ _optionalChain([onSubmit, 'optionalCall', _312 => _312(currentValue)]);
9305
9395
  }
9306
9396
  };
9307
9397
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -9347,8 +9437,8 @@ function HeaderOrganizationFilter({
9347
9437
  className
9348
9438
  }) {
9349
9439
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
9350
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _318 => _318.name]) || "All Organizations";
9351
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _319 => _319.deviceCount]), () => ( totalDeviceCount));
9440
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _313 => _313.name]) || "All Organizations";
9441
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _314 => _314.deviceCount]), () => ( totalDeviceCount));
9352
9442
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenu, { children: [
9353
9443
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9354
9444
  "button",
@@ -9373,11 +9463,11 @@ function HeaderOrganizationFilter({
9373
9463
  }
9374
9464
  ) }),
9375
9465
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
9376
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _320 => _320("")]), children: "All Organizations" }),
9466
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _315 => _315("")]), children: "All Organizations" }),
9377
9467
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9378
9468
  _chunkBJTOSUT4cjs.DropdownMenuItem,
9379
9469
  {
9380
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _321 => _321(org.id)]),
9470
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _316 => _316(org.id)]),
9381
9471
  children: org.name
9382
9472
  },
9383
9473
  org.id
@@ -9549,9 +9639,9 @@ function NotificationsHeaderButton({
9549
9639
  dimmedClass
9550
9640
  }) {
9551
9641
  const ctx = useOptionalNotifications();
9552
- const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _322 => _322.unreadCount]), () => ( fallbackUnreadCount));
9553
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _323 => _323.isOpen]), () => ( false));
9554
- const onClick = _optionalChain([ctx, 'optionalAccess', _324 => _324.toggle]);
9642
+ const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _317 => _317.unreadCount]), () => ( fallbackUnreadCount));
9643
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _318 => _318.isOpen]), () => ( false));
9644
+ const onClick = _optionalChain([ctx, 'optionalAccess', _319 => _319.toggle]);
9555
9645
  const Icon2 = unreadCount > 0 ? _chunkTMD5LDX4cjs.BellRingingIcon : _chunkTMD5LDX4cjs.BellIcon;
9556
9646
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9557
9647
  HeaderButton,
@@ -9725,7 +9815,7 @@ var Switch = React28.forwardRef(({ className, checked, onCheckedChange, ...props
9725
9815
  }, [checked]);
9726
9816
  const handleCheckedChange = (newChecked) => {
9727
9817
  setIsChecked(newChecked);
9728
- _optionalChain([onCheckedChange, 'optionalCall', _325 => _325(newChecked)]);
9818
+ _optionalChain([onCheckedChange, 'optionalCall', _320 => _320(newChecked)]);
9729
9819
  };
9730
9820
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9731
9821
  SwitchPrimitives.Root,
@@ -9778,7 +9868,7 @@ function NotificationTile({
9778
9868
  if (!isLive) return;
9779
9869
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
9780
9870
  const timer = window.setTimeout(() => {
9781
- _optionalChain([onSettle, 'optionalCall', _326 => _326(id)]);
9871
+ _optionalChain([onSettle, 'optionalCall', _321 => _321(id)]);
9782
9872
  }, remaining);
9783
9873
  return () => window.clearTimeout(timer);
9784
9874
  }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
@@ -9816,7 +9906,7 @@ function NotificationTile({
9816
9906
  "button",
9817
9907
  {
9818
9908
  type: "button",
9819
- onClick: () => _optionalChain([onSettle, 'optionalCall', _327 => _327(id)]),
9909
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _322 => _322(id)]),
9820
9910
  "aria-label": "Dismiss notification",
9821
9911
  tabIndex: isLive ? 0 : -1,
9822
9912
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
@@ -9988,7 +10078,7 @@ var MobileBurgerMenu = React33.default.memo(function MobileBurgerMenu2({
9988
10078
  if (item.onClick) {
9989
10079
  item.onClick();
9990
10080
  } else if (item.path) {
9991
- _optionalChain([config, 'access', _328 => _328.onNavigate, 'optionalCall', _329 => _329(item.path)]);
10081
+ _optionalChain([config, 'access', _323 => _323.onNavigate, 'optionalCall', _324 => _324(item.path)]);
9992
10082
  }
9993
10083
  onClose();
9994
10084
  }, [config, onClose]);
@@ -10332,7 +10422,7 @@ var ShellTypeBadge = ({
10332
10422
  className,
10333
10423
  iconClassName
10334
10424
  }) => {
10335
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _330 => _330.toUpperCase, 'call', _331 => _331()]);
10425
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _325 => _325.toUpperCase, 'call', _326 => _326()]);
10336
10426
  const label = getShellLabel(normalizedType);
10337
10427
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
10338
10428
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -10789,7 +10879,7 @@ function AnnouncementBar() {
10789
10879
  setIsVisible(false);
10790
10880
  };
10791
10881
  const handleCtaClick = () => {
10792
- if (!_optionalChain([announcement, 'optionalAccess', _332 => _332.cta_url])) return;
10882
+ if (!_optionalChain([announcement, 'optionalAccess', _327 => _327.cta_url])) return;
10793
10883
  announcement.cta_target === "_blank" ? window.open(announcement.cta_url, "_blank", "noopener,noreferrer") : window.location.href = announcement.cta_url;
10794
10884
  };
10795
10885
  const renderIcon = () => {
@@ -10915,8 +11005,8 @@ function getVendorLogo(vendor) {
10915
11005
  if (vendor.logo) {
10916
11006
  return fixSupabaseStorageUrl(vendor.logo);
10917
11007
  }
10918
- const logoMedia = _optionalChain([vendor, 'access', _333 => _333.vendor_media, 'optionalAccess', _334 => _334.find, 'call', _335 => _335((m) => m.media_type === "logo")]);
10919
- if (_optionalChain([logoMedia, 'optionalAccess', _336 => _336.media_url])) {
11008
+ const logoMedia = _optionalChain([vendor, 'access', _328 => _328.vendor_media, 'optionalAccess', _329 => _329.find, 'call', _330 => _330((m) => m.media_type === "logo")]);
11009
+ if (_optionalChain([logoMedia, 'optionalAccess', _331 => _331.media_url])) {
10920
11010
  return fixSupabaseStorageUrl(logoMedia.media_url);
10921
11011
  }
10922
11012
  return null;
@@ -10991,7 +11081,7 @@ function VendorIcon({
10991
11081
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
10992
11082
  "flex items-center justify-center text-xs font-medium uppercase",
10993
11083
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
10994
- ), children: _optionalChain([vendor, 'access', _337 => _337.title, 'optionalAccess', _338 => _338.substring, 'call', _339 => _339(0, 2)]) || "??" }) });
11084
+ ), children: _optionalChain([vendor, 'access', _332 => _332.title, 'optionalAccess', _333 => _333.substring, 'call', _334 => _334(0, 2)]) || "??" }) });
10995
11085
  }
10996
11086
 
10997
11087
  // src/components/categories-cart.tsx
@@ -11275,7 +11365,7 @@ function UserSummary({
11275
11365
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
11276
11366
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", children: [
11277
11367
  name,
11278
- _optionalChain([mspPreview, 'optionalAccess', _340 => _340.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
11368
+ _optionalChain([mspPreview, 'optionalAccess', _335 => _335.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
11279
11369
  " \u2022 ",
11280
11370
  mspPreview.name
11281
11371
  ] })
@@ -11297,7 +11387,7 @@ function UserSummary({
11297
11387
  height: 40,
11298
11388
  className: "object-cover"
11299
11389
  }
11300
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _341 => _341.name, 'optionalAccess', _342 => _342.charAt, 'call', _343 => _343(0), 'access', _344 => _344.toUpperCase, 'call', _345 => _345()]) || "?" }) })
11390
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _336 => _336.name, 'optionalAccess', _337 => _337.charAt, 'call', _338 => _338(0), 'access', _339 => _339.toUpperCase, 'call', _340 => _340()]) || "?" }) })
11301
11391
  ] }),
11302
11392
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 grid grid-cols-[1fr_auto] gap-4", children: [
11303
11393
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[6rem] flex flex-col justify-center space-y-3 truncate", children: [
@@ -11310,7 +11400,7 @@ function UserSummary({
11310
11400
  typeof mspPreview.annualRevenue === "number" ? `$${formatNumber2(mspPreview.annualRevenue)}` : null
11311
11401
  ].filter(Boolean).flatMap((txt, idx) => idx === 0 ? [txt] : [" \u2022 ", txt]).map((seg, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: seg === " \u2022 " ? "text-ods-text-secondary" : "", children: seg }, idx)) })
11312
11402
  ] }),
11313
- (_optionalChain([authProviders, 'optionalAccess', _346 => _346.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
11403
+ (_optionalChain([authProviders, 'optionalAccess', _341 => _341.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
11314
11404
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
11315
11405
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
11316
11406
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -11319,7 +11409,7 @@ function UserSummary({
11319
11409
  ] })
11320
11410
  ] })
11321
11411
  ] }),
11322
- (_optionalChain([authProviders, 'optionalAccess', _347 => _347.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
11412
+ (_optionalChain([authProviders, 'optionalAccess', _342 => _342.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
11323
11413
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
11324
11414
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
11325
11415
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -12040,7 +12130,7 @@ function FilterChip({
12040
12130
  onClick: disabled ? void 0 : (e) => {
12041
12131
  e.preventDefault();
12042
12132
  e.stopPropagation();
12043
- _optionalChain([onClick, 'optionalCall', _348 => _348()]);
12133
+ _optionalChain([onClick, 'optionalCall', _343 => _343()]);
12044
12134
  },
12045
12135
  role: onClick ? "button" : void 0,
12046
12136
  tabIndex: onClick && !disabled ? 0 : void 0,
@@ -12227,13 +12317,13 @@ function useUnifiedFiltering(config) {
12227
12317
  const searchParams = _navigation.useSearchParams.call(void 0, );
12228
12318
  const [isPending, startTransition] = _react.useTransition.call(void 0, );
12229
12319
  const getCurrentFilterState = () => {
12230
- const search = _optionalChain([searchParams, 'optionalAccess', _349 => _349.get, 'call', _350 => _350("search")]) || void 0;
12231
- const categories = _optionalChain([searchParams, 'optionalAccess', _351 => _351.get, 'call', _352 => _352("category"), 'optionalAccess', _353 => _353.split, 'call', _354 => _354(","), 'access', _355 => _355.filter, 'call', _356 => _356(Boolean)]) || [];
12232
- const subcategories = _optionalChain([searchParams, 'optionalAccess', _357 => _357.get, 'call', _358 => _358("subcategory"), 'optionalAccess', _359 => _359.split, 'call', _360 => _360(","), 'access', _361 => _361.filter, 'call', _362 => _362(Boolean)]) || [];
12233
- const tags = _optionalChain([searchParams, 'optionalAccess', _363 => _363.get, 'call', _364 => _364("tag"), 'optionalAccess', _365 => _365.split, 'call', _366 => _366(","), 'access', _367 => _367.filter, 'call', _368 => _368(Boolean)]) || [];
12234
- const filters = _optionalChain([searchParams, 'optionalAccess', _369 => _369.getAll, 'call', _370 => _370("filter")]) || [];
12235
- const pricing = _optionalChain([searchParams, 'optionalAccess', _371 => _371.get, 'call', _372 => _372("pricing")]) || void 0;
12236
- const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _373 => _373.get, 'call', _374 => _374("page")]) || "1");
12320
+ const search = _optionalChain([searchParams, 'optionalAccess', _344 => _344.get, 'call', _345 => _345("search")]) || void 0;
12321
+ const categories = _optionalChain([searchParams, 'optionalAccess', _346 => _346.get, 'call', _347 => _347("category"), 'optionalAccess', _348 => _348.split, 'call', _349 => _349(","), 'access', _350 => _350.filter, 'call', _351 => _351(Boolean)]) || [];
12322
+ const subcategories = _optionalChain([searchParams, 'optionalAccess', _352 => _352.get, 'call', _353 => _353("subcategory"), 'optionalAccess', _354 => _354.split, 'call', _355 => _355(","), 'access', _356 => _356.filter, 'call', _357 => _357(Boolean)]) || [];
12323
+ const tags = _optionalChain([searchParams, 'optionalAccess', _358 => _358.get, 'call', _359 => _359("tag"), 'optionalAccess', _360 => _360.split, 'call', _361 => _361(","), 'access', _362 => _362.filter, 'call', _363 => _363(Boolean)]) || [];
12324
+ const filters = _optionalChain([searchParams, 'optionalAccess', _364 => _364.getAll, 'call', _365 => _365("filter")]) || [];
12325
+ const pricing = _optionalChain([searchParams, 'optionalAccess', _366 => _366.get, 'call', _367 => _367("pricing")]) || void 0;
12326
+ const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _368 => _368.get, 'call', _369 => _369("page")]) || "1");
12237
12327
  return {
12238
12328
  search,
12239
12329
  categories,
@@ -12514,13 +12604,13 @@ function FooterWaitlistButton({ className }) {
12514
12604
  const router = _navigation.useRouter.call(void 0, );
12515
12605
  const pathname = _navigation.usePathname.call(void 0, );
12516
12606
  const handleClick = _react.useCallback.call(void 0, () => {
12517
- if (_optionalChain([pathname, 'optionalAccess', _375 => _375.startsWith, 'call', _376 => _376("/waitlist")])) {
12607
+ if (_optionalChain([pathname, 'optionalAccess', _370 => _370.startsWith, 'call', _371 => _371("/waitlist")])) {
12518
12608
  const anchor = document.getElementById("waitlist-form");
12519
12609
  if (anchor) {
12520
12610
  anchor.scrollIntoView({ behavior: "smooth", block: "center" });
12521
12611
  setTimeout(() => {
12522
12612
  const input = anchor.querySelector('input[type="email"]');
12523
- _optionalChain([input, 'optionalAccess', _377 => _377.focus, 'call', _378 => _378()]);
12613
+ _optionalChain([input, 'optionalAccess', _372 => _372.focus, 'call', _373 => _373()]);
12524
12614
  }, 400);
12525
12615
  return;
12526
12616
  }
@@ -12549,7 +12639,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
12549
12639
  const [uploading, setUploading] = _react.useState.call(void 0, false);
12550
12640
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
12551
12641
  const MAX_SIZE = 5 * 1024 * 1024;
12552
- const openDialog = () => _optionalChain([inputRef, 'access', _379 => _379.current, 'optionalAccess', _380 => _380.click, 'call', _381 => _381()]);
12642
+ const openDialog = () => _optionalChain([inputRef, 'access', _374 => _374.current, 'optionalAccess', _375 => _375.click, 'call', _376 => _376()]);
12553
12643
  async function handleFile(file) {
12554
12644
  if (!file) return;
12555
12645
  if (!ALLOWED_TYPES.includes(file.type)) {
@@ -12605,7 +12695,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
12605
12695
  }
12606
12696
  }
12607
12697
  const handleSelect = (e) => {
12608
- handleFile(_optionalChain([e, 'access', _382 => _382.target, 'access', _383 => _383.files, 'optionalAccess', _384 => _384[0]]));
12698
+ handleFile(_optionalChain([e, 'access', _377 => _377.target, 'access', _378 => _378.files, 'optionalAccess', _379 => _379[0]]));
12609
12699
  };
12610
12700
  const handleRemove = async () => {
12611
12701
  if (onDelete) {
@@ -12742,7 +12832,7 @@ function ResponsiveIconsBlock({ loading = false }) {
12742
12832
  const getIconForIndex = (index) => {
12743
12833
  const col = index % displayColumns;
12744
12834
  const row = Math.floor(index / displayColumns);
12745
- return _optionalChain([iconGrid, 'access', _385 => _385[row], 'optionalAccess', _386 => _386[col]]) || availableIcons[0];
12835
+ return _optionalChain([iconGrid, 'access', _380 => _380[row], 'optionalAccess', _381 => _381[col]]) || availableIcons[0];
12746
12836
  };
12747
12837
  if (loading || iconGrid.length === 0) {
12748
12838
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -12828,7 +12918,7 @@ var Slider = React35.forwardRef(
12828
12918
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
12829
12919
  const handleChange = (e) => {
12830
12920
  const newValue = [Number(e.target.value)];
12831
- _optionalChain([onValueChange, 'optionalCall', _387 => _387(newValue)]);
12921
+ _optionalChain([onValueChange, 'optionalCall', _382 => _382(newValue)]);
12832
12922
  };
12833
12923
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12834
12924
  "input",
@@ -12941,7 +13031,7 @@ var ImageCropper = ({
12941
13031
  });
12942
13032
  } else if (e.key === "Escape") {
12943
13033
  e.preventDefault();
12944
- _optionalChain([onCancel, 'optionalCall', _388 => _388()]);
13034
+ _optionalChain([onCancel, 'optionalCall', _383 => _383()]);
12945
13035
  }
12946
13036
  };
12947
13037
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -13213,7 +13303,7 @@ function YouTubeFacadeInner({
13213
13303
  function handleOutsideClick(event) {
13214
13304
  const target = event.target;
13215
13305
  if (!target) return;
13216
- if (_optionalChain([wrapperRef, 'access', _389 => _389.current, 'optionalAccess', _390 => _390.contains, 'call', _391 => _391(target)])) return;
13306
+ if (_optionalChain([wrapperRef, 'access', _384 => _384.current, 'optionalAccess', _385 => _385.contains, 'call', _386 => _386(target)])) return;
13217
13307
  setActivated(false);
13218
13308
  }
13219
13309
  document.addEventListener("pointerdown", handleOutsideClick);
@@ -13864,8 +13954,8 @@ function PricingDisplay({
13864
13954
  }
13865
13955
  if (pricingArray.length === 1) {
13866
13956
  const item = pricingArray[0];
13867
- const price = _optionalChain([item, 'access', _392 => _392.ranges, 'optionalAccess', _393 => _393[0], 'optionalAccess', _394 => _394.min]) || 0;
13868
- const unit = _optionalChain([item, 'access', _395 => _395.ranges, 'optionalAccess', _396 => _396[0], 'optionalAccess', _397 => _397.unit]);
13957
+ const price = _optionalChain([item, 'access', _387 => _387.ranges, 'optionalAccess', _388 => _388[0], 'optionalAccess', _389 => _389.min]) || 0;
13958
+ const unit = _optionalChain([item, 'access', _390 => _390.ranges, 'optionalAccess', _391 => _391[0], 'optionalAccess', _392 => _392.unit]);
13869
13959
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13870
13960
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
13871
13961
  unit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
@@ -13874,11 +13964,11 @@ function PricingDisplay({
13874
13964
  ] })
13875
13965
  ] });
13876
13966
  }
13877
- const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _398 => _398.ranges, 'optionalAccess', _399 => _399[0], 'optionalAccess', _400 => _400.min]) || 0, styleConfig.showTildePrefix));
13878
- const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _401 => _401.ranges, 'optionalAccess', _402 => _402[0], 'optionalAccess', _403 => _403.unit]));
13967
+ const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _393 => _393.ranges, 'optionalAccess', _394 => _394[0], 'optionalAccess', _395 => _395.min]) || 0, styleConfig.showTildePrefix));
13968
+ const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _396 => _396.ranges, 'optionalAccess', _397 => _397[0], 'optionalAccess', _398 => _398.unit]));
13879
13969
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13880
13970
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
13881
- itemWithUnit && _optionalChain([itemWithUnit, 'access', _404 => _404.ranges, 'optionalAccess', _405 => _405[0], 'optionalAccess', _406 => _406.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
13971
+ itemWithUnit && _optionalChain([itemWithUnit, 'access', _399 => _399.ranges, 'optionalAccess', _400 => _400[0], 'optionalAccess', _401 => _401.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
13882
13972
  "/",
13883
13973
  itemWithUnit.ranges[0].unit
13884
13974
  ] })
@@ -14076,7 +14166,7 @@ function VendorTag({
14076
14166
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
14077
14167
  };
14078
14168
  case "classification":
14079
- const classificationType = _optionalChain([text, 'optionalAccess', _407 => _407.toLowerCase, 'call', _408 => _408()]);
14169
+ const classificationType = _optionalChain([text, 'optionalAccess', _402 => _402.toLowerCase, 'call', _403 => _403()]);
14080
14170
  if (classificationType === "open_source") {
14081
14171
  return {
14082
14172
  text: "Open Source",
@@ -14130,7 +14220,7 @@ function SelectionSourceBadge({ source, hidden = false }) {
14130
14220
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14131
14221
  VendorTag,
14132
14222
  {
14133
- type: _optionalChain([source, 'optionalAccess', _409 => _409.toLowerCase, 'call', _410 => _410()]),
14223
+ type: _optionalChain([source, 'optionalAccess', _404 => _404.toLowerCase, 'call', _405 => _405()]),
14134
14224
  size: "sm",
14135
14225
  hidden
14136
14226
  },
@@ -16250,12 +16340,12 @@ function OnboardingWalkthrough({
16250
16340
  }
16251
16341
  }, [state.completedSteps, markComplete]);
16252
16342
  const handleStepSkip = (step) => {
16253
- _optionalChain([step, 'access', _411 => _411.onSkip, 'optionalCall', _412 => _412()]);
16343
+ _optionalChain([step, 'access', _406 => _406.onSkip, 'optionalCall', _407 => _407()]);
16254
16344
  markSkipped(step.id);
16255
16345
  };
16256
16346
  const handleDismiss = () => {
16257
16347
  dismissOnboarding();
16258
- _optionalChain([onDismiss, 'optionalCall', _413 => _413()]);
16348
+ _optionalChain([onDismiss, 'optionalCall', _408 => _408()]);
16259
16349
  };
16260
16350
  if (state.dismissed) {
16261
16351
  return null;
@@ -16700,7 +16790,7 @@ var SecondaryAction = ({ action }) => {
16700
16790
  e.preventDefault();
16701
16791
  return;
16702
16792
  }
16703
- _optionalChain([action, 'access', _414 => _414.onClick, 'optionalCall', _415 => _415()]);
16793
+ _optionalChain([action, 'access', _409 => _409.onClick, 'optionalCall', _410 => _410()]);
16704
16794
  },
16705
16795
  [action]
16706
16796
  );
@@ -16741,13 +16831,13 @@ var MenuItem = ({ item, onItemClick }) => {
16741
16831
  const activate = _react.useCallback.call(void 0, () => {
16742
16832
  if (item.disabled) return;
16743
16833
  if (item.type === "checkbox") {
16744
- _optionalChain([item, 'access', _416 => _416.onClick, 'optionalCall', _417 => _417()]);
16745
- _optionalChain([onItemClick, 'optionalCall', _418 => _418(item)]);
16834
+ _optionalChain([item, 'access', _411 => _411.onClick, 'optionalCall', _412 => _412()]);
16835
+ _optionalChain([onItemClick, 'optionalCall', _413 => _413(item)]);
16746
16836
  return;
16747
16837
  }
16748
16838
  if (item.type === "submenu") return;
16749
- _optionalChain([item, 'access', _419 => _419.onClick, 'optionalCall', _420 => _420()]);
16750
- _optionalChain([onItemClick, 'optionalCall', _421 => _421(item)]);
16839
+ _optionalChain([item, 'access', _414 => _414.onClick, 'optionalCall', _415 => _415()]);
16840
+ _optionalChain([onItemClick, 'optionalCall', _416 => _416(item)]);
16751
16841
  }, [item, onItemClick]);
16752
16842
  const handleClick = _react.useCallback.call(void 0,
16753
16843
  (e) => {
@@ -16773,8 +16863,8 @@ var MenuItem = ({ item, onItemClick }) => {
16773
16863
  e.stopPropagation();
16774
16864
  return;
16775
16865
  }
16776
- _optionalChain([item, 'access', _422 => _422.onClick, 'optionalCall', _423 => _423()]);
16777
- _optionalChain([onItemClick, 'optionalCall', _424 => _424(item)]);
16866
+ _optionalChain([item, 'access', _417 => _417.onClick, 'optionalCall', _418 => _418()]);
16867
+ _optionalChain([onItemClick, 'optionalCall', _419 => _419(item)]);
16778
16868
  },
16779
16869
  [item, onItemClick]
16780
16870
  );
@@ -16929,7 +17019,7 @@ var ActionsMenuDropdown = ({
16929
17019
  const [open, setOpen] = _react.useState.call(void 0, false);
16930
17020
  const handleItemClick = _react.useCallback.call(void 0,
16931
17021
  (item) => {
16932
- _optionalChain([onItemClick, 'optionalCall', _425 => _425(item)]);
17022
+ _optionalChain([onItemClick, 'optionalCall', _420 => _420(item)]);
16933
17023
  if (item.type !== "checkbox" && item.type !== "submenu") {
16934
17024
  setOpen(false);
16935
17025
  }
@@ -17100,7 +17190,7 @@ function IconButtonsVariant({
17100
17190
  }) {
17101
17191
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
17102
17192
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
17103
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _426 => _426[0], 'access', _427 => _427.submenu, 'optionalAccess', _428 => _428.length]);
17193
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _421 => _421[0], 'access', _422 => _422.submenu, 'optionalAccess', _423 => _423.length]);
17104
17194
  const singleAction = isSingleAction ? actions[0] : null;
17105
17195
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
17106
17196
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -17530,14 +17620,14 @@ function ReleaseDetailPage({
17530
17620
  releaseVersion
17531
17621
  ] })
17532
17622
  ] }) }),
17533
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _429 => _429.map, 'call', _430 => _430((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17623
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _424 => _424.map, 'call', _425 => _425((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17534
17624
  StatusBadge,
17535
17625
  {
17536
- text: (tag.name || _optionalChain([tag, 'access', _431 => _431.blog_tags, 'optionalAccess', _432 => _432.name]) || "").toUpperCase(),
17626
+ text: (tag.name || _optionalChain([tag, 'access', _426 => _426.blog_tags, 'optionalAccess', _427 => _427.name]) || "").toUpperCase(),
17537
17627
  variant: "card",
17538
17628
  className: "bg-ods-card border border-ods-border"
17539
17629
  },
17540
- tag.id || _optionalChain([tag, 'access', _433 => _433.blog_tags, 'optionalAccess', _434 => _434.id])
17630
+ tag.id || _optionalChain([tag, 'access', _428 => _428.blog_tags, 'optionalAccess', _429 => _429.id])
17541
17631
  ))]) }),
17542
17632
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
17543
17633
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
@@ -17556,15 +17646,15 @@ function ReleaseDetailPage({
17556
17646
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17557
17647
  SquareAvatar,
17558
17648
  {
17559
- src: _optionalChain([author, 'optionalAccess', _435 => _435.avatar_url]) || "",
17560
- alt: _optionalChain([author, 'optionalAccess', _436 => _436.full_name]) || "Author",
17561
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _437 => _437.full_name]) || "Unknown"),
17649
+ src: _optionalChain([author, 'optionalAccess', _430 => _430.avatar_url]) || "",
17650
+ alt: _optionalChain([author, 'optionalAccess', _431 => _431.full_name]) || "Author",
17651
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _432 => _432.full_name]) || "Unknown"),
17562
17652
  size: "md",
17563
17653
  variant: "round"
17564
17654
  }
17565
17655
  ),
17566
17656
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
17567
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _438 => _438.full_name]) || "Unknown Author" }),
17657
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _433 => _433.full_name]) || "Unknown Author" }),
17568
17658
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
17569
17659
  ] })
17570
17660
  ] })
@@ -17595,8 +17685,8 @@ function ReleaseDetailPage({
17595
17685
  videoBites,
17596
17686
  bitesTitle: "Video Clips",
17597
17687
  filterPublishedBites: true,
17598
- srtContent: _optionalChain([release, 'optionalAccess', _439 => _439.srt_content]),
17599
- captionsUrl: _optionalChain([release, 'optionalAccess', _440 => _440.captionsUrl])
17688
+ srtContent: _optionalChain([release, 'optionalAccess', _434 => _434.srt_content]),
17689
+ captionsUrl: _optionalChain([release, 'optionalAccess', _435 => _435.captionsUrl])
17600
17690
  }
17601
17691
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17602
17692
  youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17612,8 +17702,8 @@ function ReleaseDetailPage({
17612
17702
  Video2,
17613
17703
  {
17614
17704
  url: mainVideoUrl,
17615
- srtContent: _optionalChain([release, 'optionalAccess', _441 => _441.srt_content]),
17616
- captionsUrl: _optionalChain([release, 'optionalAccess', _442 => _442.captionsUrl]),
17705
+ srtContent: _optionalChain([release, 'optionalAccess', _436 => _436.srt_content]),
17706
+ captionsUrl: _optionalChain([release, 'optionalAccess', _437 => _437.captionsUrl]),
17617
17707
  layout: "centered"
17618
17708
  }
17619
17709
  ),
@@ -17703,7 +17793,7 @@ function ReleaseDetailPage({
17703
17793
  }
17704
17794
  )
17705
17795
  ] }),
17706
- (_optionalChain([githubReleases, 'optionalAccess', _443 => _443.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _444 => _444.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
17796
+ (_optionalChain([githubReleases, 'optionalAccess', _438 => _438.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _439 => _439.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
17707
17797
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
17708
17798
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
17709
17799
  githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
@@ -17732,7 +17822,7 @@ function ReleaseDetailPage({
17732
17822
  {
17733
17823
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
17734
17824
  className: "text-h4 text-[#ffc008] hover:underline",
17735
- children: _optionalChain([path, 'access', _445 => _445.replace, 'call', _446 => _446(/^\//, ""), 'access', _447 => _447.split, 'call', _448 => _448("/"), 'access', _449 => _449.pop, 'call', _450 => _450(), 'optionalAccess', _451 => _451.replace, 'call', _452 => _452(/-/g, " ")]) || "View Article"
17825
+ children: _optionalChain([path, 'access', _440 => _440.replace, 'call', _441 => _441(/^\//, ""), 'access', _442 => _442.split, 'call', _443 => _443("/"), 'access', _444 => _444.pop, 'call', _445 => _445(), 'optionalAccess', _446 => _446.replace, 'call', _447 => _447(/-/g, " ")]) || "View Article"
17736
17826
  }
17737
17827
  ),
17738
17828
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -18378,7 +18468,7 @@ function TagsManager({
18378
18468
  const name = search.trim();
18379
18469
  if (!name) return;
18380
18470
  const result = await onCreateTag(name);
18381
- if (_optionalChain([result, 'optionalAccess', _453 => _453.id])) {
18471
+ if (_optionalChain([result, 'optionalAccess', _448 => _448.id])) {
18382
18472
  onChange([...selectedIds, result.id]);
18383
18473
  setSearch("");
18384
18474
  }
@@ -18386,7 +18476,7 @@ function TagsManager({
18386
18476
  const startEdit = React52.useCallback((id, name) => {
18387
18477
  setEditingId(id);
18388
18478
  setEditingName(name);
18389
- setTimeout(() => _optionalChain([editInputRef, 'access', _454 => _454.current, 'optionalAccess', _455 => _455.focus, 'call', _456 => _456()]), 0);
18479
+ setTimeout(() => _optionalChain([editInputRef, 'access', _449 => _449.current, 'optionalAccess', _450 => _450.focus, 'call', _451 => _451()]), 0);
18390
18480
  }, []);
18391
18481
  const confirmEdit = React52.useCallback(async () => {
18392
18482
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -18413,7 +18503,7 @@ function TagsManager({
18413
18503
  e.stopPropagation();
18414
18504
  onChange([]);
18415
18505
  setSearch("");
18416
- _optionalChain([inputRef, 'access', _457 => _457.current, 'optionalAccess', _458 => _458.focus, 'call', _459 => _459()]);
18506
+ _optionalChain([inputRef, 'access', _452 => _452.current, 'optionalAccess', _453 => _453.focus, 'call', _454 => _454()]);
18417
18507
  },
18418
18508
  [onChange]
18419
18509
  );
@@ -18512,10 +18602,10 @@ function TagsManager({
18512
18602
  align: "start",
18513
18603
  onOpenAutoFocus: (e) => {
18514
18604
  e.preventDefault();
18515
- _optionalChain([inputRef, 'access', _460 => _460.current, 'optionalAccess', _461 => _461.focus, 'call', _462 => _462()]);
18605
+ _optionalChain([inputRef, 'access', _455 => _455.current, 'optionalAccess', _456 => _456.focus, 'call', _457 => _457()]);
18516
18606
  },
18517
18607
  onInteractOutside: (e) => {
18518
- if (_optionalChain([containerRef, 'access', _463 => _463.current, 'optionalAccess', _464 => _464.contains, 'call', _465 => _465(e.target)])) {
18608
+ if (_optionalChain([containerRef, 'access', _458 => _458.current, 'optionalAccess', _459 => _459.contains, 'call', _460 => _460(e.target)])) {
18519
18609
  e.preventDefault();
18520
18610
  }
18521
18611
  },
@@ -19662,19 +19752,19 @@ function TabNavigation({
19662
19752
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
19663
19753
  const getInitialTab = () => {
19664
19754
  if (isUrlSyncEnabled) {
19665
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _466 => _466.get, 'call', _467 => _467(paramName)]) || "";
19755
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _461 => _461.get, 'call', _462 => _462(paramName)]) || "";
19666
19756
  if (validTabIds.has(fromUrl)) {
19667
19757
  return fromUrl;
19668
19758
  }
19669
19759
  }
19670
- return defaultTab || _optionalChain([tabs, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.id]) || "";
19760
+ return defaultTab || _optionalChain([tabs, 'access', _463 => _463[0], 'optionalAccess', _464 => _464.id]) || "";
19671
19761
  };
19672
19762
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
19673
19763
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
19674
19764
  _react.useEffect.call(void 0, () => {
19675
19765
  if (!isUrlSyncEnabled) return;
19676
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _470 => _470.get, 'call', _471 => _471(paramName)]) || "";
19677
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _472 => _472[0], 'optionalAccess', _473 => _473.id]) || "";
19766
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _465 => _465.get, 'call', _466 => _466(paramName)]) || "";
19767
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _467 => _467[0], 'optionalAccess', _468 => _468.id]) || "";
19678
19768
  if (nextTab !== internalActiveTab) {
19679
19769
  setInternalActiveTab(nextTab);
19680
19770
  }
@@ -19682,13 +19772,13 @@ function TabNavigation({
19682
19772
  const handleTabChange = (tabId) => {
19683
19773
  if (isUrlSyncEnabled) {
19684
19774
  setInternalActiveTab(tabId);
19685
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _474 => _474.toString, 'call', _475 => _475()]));
19775
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _469 => _469.toString, 'call', _470 => _470()]));
19686
19776
  params.set(paramName, tabId);
19687
19777
  const method = replaceState ? "replace" : "push";
19688
19778
  router[method](`${pathname}?${params.toString()}`);
19689
- _optionalChain([controlledOnTabChange, 'optionalCall', _476 => _476(tabId)]);
19779
+ _optionalChain([controlledOnTabChange, 'optionalCall', _471 => _471(tabId)]);
19690
19780
  } else {
19691
- _optionalChain([controlledOnTabChange, 'optionalCall', _477 => _477(tabId)]);
19781
+ _optionalChain([controlledOnTabChange, 'optionalCall', _472 => _472(tabId)]);
19692
19782
  }
19693
19783
  };
19694
19784
  const scrollRef = _react.useRef.call(void 0, null);
@@ -19776,7 +19866,7 @@ function TabNavigation({
19776
19866
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
19777
19867
  var getTabComponent = (tabs, tabId) => {
19778
19868
  const tab = getTabById(tabs, tabId);
19779
- return _optionalChain([tab, 'optionalAccess', _478 => _478.component]) || null;
19869
+ return _optionalChain([tab, 'optionalAccess', _473 => _473.component]) || null;
19780
19870
  };
19781
19871
 
19782
19872
  // src/components/ui/alert.tsx
@@ -20113,16 +20203,16 @@ function FilterModal({
20113
20203
  };
20114
20204
  const handleReset = () => {
20115
20205
  onFilterChange({});
20116
- _optionalChain([onTagsChange, 'optionalCall', _479 => _479([])]);
20206
+ _optionalChain([onTagsChange, 'optionalCall', _474 => _474([])]);
20117
20207
  onClose();
20118
20208
  };
20119
20209
  const handleApply = () => {
20120
20210
  onFilterChange(selectedFilters);
20121
- _optionalChain([onTagsChange, 'optionalCall', _480 => _480(pendingTags)]);
20211
+ _optionalChain([onTagsChange, 'optionalCall', _475 => _475(pendingTags)]);
20122
20212
  onClose();
20123
20213
  };
20124
20214
  const getColumnDirection = (columnKey) => {
20125
- return _optionalChain([sortConfig, 'optionalAccess', _481 => _481.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20215
+ return _optionalChain([sortConfig, 'optionalAccess', _476 => _476.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20126
20216
  };
20127
20217
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
20128
20218
  const hasFilterGroups = filterGroups.length > 0;
@@ -20171,7 +20261,7 @@ function FilterModal({
20171
20261
  {
20172
20262
  column,
20173
20263
  currentDirection: getColumnDirection(column.key),
20174
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _482 => _482(column.key, direction)]),
20264
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _477 => _477(column.key, direction)]),
20175
20265
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
20176
20266
  },
20177
20267
  column.key
@@ -20337,9 +20427,9 @@ function TitleBlock({
20337
20427
  const [imageFailed, setImageFailed] = React33.default.useState(false);
20338
20428
  React33.default.useEffect(() => {
20339
20429
  setImageFailed(false);
20340
- }, [_optionalChain([image, 'optionalAccess', _483 => _483.src])]);
20430
+ }, [_optionalChain([image, 'optionalAccess', _478 => _478.src])]);
20341
20431
  const showImageFallback = !!image && (imageFailed || !image.src);
20342
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _484 => _484.alt]) || title);
20432
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _479 => _479.alt]) || title);
20343
20433
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20344
20434
  "div",
20345
20435
  {
@@ -21135,26 +21225,26 @@ function DeviceCard({
21135
21225
  ] }),
21136
21226
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", children: device.organization })
21137
21227
  ] }),
21138
- _optionalChain([actions, 'access', _485 => _485.moreButton, 'optionalAccess', _486 => _486.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21228
+ _optionalChain([actions, 'access', _480 => _480.moreButton, 'optionalAccess', _481 => _481.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21139
21229
  "div",
21140
21230
  {
21141
21231
  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",
21142
21232
  onClick: (e) => {
21143
21233
  e.stopPropagation();
21144
- _optionalChain([actions, 'access', _487 => _487.moreButton, 'optionalAccess', _488 => _488.onClick, 'optionalCall', _489 => _489()]);
21234
+ _optionalChain([actions, 'access', _482 => _482.moreButton, 'optionalAccess', _483 => _483.onClick, 'optionalCall', _484 => _484()]);
21145
21235
  },
21146
21236
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
21147
21237
  }
21148
21238
  ),
21149
- _optionalChain([actions, 'access', _490 => _490.detailsButton, 'optionalAccess', _491 => _491.visible]) !== false && _optionalChain([actions, 'access', _492 => _492.detailsButton, 'optionalAccess', _493 => _493.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21150
- _optionalChain([actions, 'access', _494 => _494.customActions, 'optionalAccess', _495 => _495.map, 'call', _496 => _496(
21239
+ _optionalChain([actions, 'access', _485 => _485.detailsButton, 'optionalAccess', _486 => _486.visible]) !== false && _optionalChain([actions, 'access', _487 => _487.detailsButton, 'optionalAccess', _488 => _488.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21240
+ _optionalChain([actions, 'access', _489 => _489.customActions, 'optionalAccess', _490 => _490.map, 'call', _491 => _491(
21151
21241
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21152
21242
  "div",
21153
21243
  {
21154
21244
  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",
21155
21245
  onClick: (e) => {
21156
21246
  e.stopPropagation();
21157
- _optionalChain([action, 'access', _497 => _497.onClick, 'optionalCall', _498 => _498()]);
21247
+ _optionalChain([action, 'access', _492 => _492.onClick, 'optionalCall', _493 => _493()]);
21158
21248
  },
21159
21249
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
21160
21250
  },
@@ -21513,7 +21603,7 @@ function MoreActionsMenu({
21513
21603
  ] });
21514
21604
  const handleActivate = (e) => {
21515
21605
  e.stopPropagation();
21516
- if (!item.disabled) _optionalChain([item, 'access', _499 => _499.onClick, 'optionalCall', _500 => _500()]);
21606
+ if (!item.disabled) _optionalChain([item, 'access', _494 => _494.onClick, 'optionalCall', _495 => _495()]);
21517
21607
  };
21518
21608
  if (item.href) {
21519
21609
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -21663,7 +21753,7 @@ function OrganizationIcon({
21663
21753
  backgroundStyle = "dark"
21664
21754
  }) {
21665
21755
  const { width, height } = imageSizeMap2[size];
21666
- const initials = _optionalChain([organizationName, 'optionalAccess', _501 => _501.substring, 'call', _502 => _502(0, 2)]) || "??";
21756
+ const initials = _optionalChain([organizationName, 'optionalAccess', _496 => _496.substring, 'call', _497 => _497(0, 2)]) || "??";
21667
21757
  const containerClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
21668
21758
  sizeClasses3[size],
21669
21759
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -21714,7 +21804,7 @@ function OrganizationCard({
21714
21804
  const handleActionClick = (e) => {
21715
21805
  e.preventDefault();
21716
21806
  e.stopPropagation();
21717
- _optionalChain([actionButton, 'optionalAccess', _503 => _503.onClick, 'call', _504 => _504(organization, e)]);
21807
+ _optionalChain([actionButton, 'optionalAccess', _498 => _498.onClick, 'call', _499 => _499(organization, e)]);
21718
21808
  };
21719
21809
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21720
21810
  "div",
@@ -21871,7 +21961,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
21871
21961
  onKeyDown: (e) => {
21872
21962
  if (e.key === "Enter" || e.key === " ") {
21873
21963
  e.preventDefault();
21874
- _optionalChain([onClick, 'optionalCall', _505 => _505()]);
21964
+ _optionalChain([onClick, 'optionalCall', _500 => _500()]);
21875
21965
  }
21876
21966
  },
21877
21967
  children: [
@@ -21972,7 +22062,7 @@ var LogsList = React77.forwardRef(({
21972
22062
  log,
21973
22063
  isLast: index === logs.length - 1,
21974
22064
  showConnector,
21975
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _506 => _506(log)])
22065
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _501 => _501(log)])
21976
22066
  },
21977
22067
  log.id
21978
22068
  ))
@@ -22561,7 +22651,7 @@ function CursorPaginationSimple({
22561
22651
  {
22562
22652
  variant: "transparent",
22563
22653
  size: "icon",
22564
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _507 => _507("")]),
22654
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _502 => _502("")]),
22565
22655
  disabled: !hasPreviousPage || loading,
22566
22656
  className: "h-8 w-8",
22567
22657
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -22573,7 +22663,7 @@ function CursorPaginationSimple({
22573
22663
  {
22574
22664
  variant: "transparent",
22575
22665
  size: "icon",
22576
- onClick: () => _optionalChain([onNext, 'optionalCall', _508 => _508("")]),
22666
+ onClick: () => _optionalChain([onNext, 'optionalCall', _503 => _503("")]),
22577
22667
  disabled: !hasNextPage || loading,
22578
22668
  className: "h-8 w-8",
22579
22669
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -22633,7 +22723,7 @@ function TableColumnFilterDropdown({
22633
22723
  placement = "bottom-start",
22634
22724
  dropdownClassName = "min-w-[240px]"
22635
22725
  }) {
22636
- const activeCount = _optionalChain([filters, 'optionalAccess', _509 => _509[columnKey], 'optionalAccess', _510 => _510.length]) || 0;
22726
+ const activeCount = _optionalChain([filters, 'optionalAccess', _504 => _504[columnKey], 'optionalAccess', _505 => _505.length]) || 0;
22637
22727
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22638
22728
  FiltersDropdown,
22639
22729
  {
@@ -22676,7 +22766,7 @@ function TableColumnFilterDropdown({
22676
22766
  delete newFilters[columnKey];
22677
22767
  onFilterChange(newFilters);
22678
22768
  },
22679
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _511 => _511[columnKey]]) || [] },
22769
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _506 => _506[columnKey]]) || [] },
22680
22770
  placement,
22681
22771
  dropdownClassName
22682
22772
  }
@@ -22973,7 +23063,7 @@ function TableRow({
22973
23063
  const keys = column.key.split(".");
22974
23064
  let value = item;
22975
23065
  for (const key of keys) {
22976
- value = _optionalChain([value, 'optionalAccess', _512 => _512[key]]);
23066
+ value = _optionalChain([value, 'optionalAccess', _507 => _507[key]]);
22977
23067
  }
22978
23068
  if (value === null || value === void 0) {
22979
23069
  return "-";
@@ -23043,7 +23133,7 @@ function TableRow({
23043
23133
  // src/components/ui/table/table.tsx
23044
23134
 
23045
23135
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
23046
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _513 => _513.length])) || Boolean(renderRowActions);
23136
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _508 => _508.length])) || Boolean(renderRowActions);
23047
23137
  const result = [...columns];
23048
23138
  if (hasActions) {
23049
23139
  const actionsColumn = {
@@ -23137,7 +23227,7 @@ function Table({
23137
23227
  return rowKey(item);
23138
23228
  }
23139
23229
  const key = item[rowKey];
23140
- return _optionalChain([key, 'optionalAccess', _514 => _514.toString, 'call', _515 => _515()]) || index.toString();
23230
+ return _optionalChain([key, 'optionalAccess', _509 => _509.toString, 'call', _510 => _510()]) || index.toString();
23141
23231
  };
23142
23232
  const getRowClassName = (item, index) => {
23143
23233
  if (typeof rowClassName === "function") {
@@ -23171,23 +23261,23 @@ function Table({
23171
23261
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
23172
23262
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
23173
23263
  const sentinelRef = _react.useRef.call(void 0, null);
23174
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _516 => _516.onLoadMore]));
23175
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _517 => _517.onLoadMore]);
23264
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _511 => _511.onLoadMore]));
23265
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _512 => _512.onLoadMore]);
23176
23266
  _react.useEffect.call(void 0, () => {
23177
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23267
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _513 => _513.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23178
23268
  const sentinel = sentinelRef.current;
23179
23269
  if (!sentinel) return;
23180
23270
  const observer = new IntersectionObserver(
23181
23271
  (entries) => {
23182
- if (_optionalChain([entries, 'access', _519 => _519[0], 'optionalAccess', _520 => _520.isIntersecting])) {
23183
- _optionalChain([onLoadMoreRef, 'access', _521 => _521.current, 'optionalCall', _522 => _522()]);
23272
+ if (_optionalChain([entries, 'access', _514 => _514[0], 'optionalAccess', _515 => _515.isIntersecting])) {
23273
+ _optionalChain([onLoadMoreRef, 'access', _516 => _516.current, 'optionalCall', _517 => _517()]);
23184
23274
  }
23185
23275
  },
23186
23276
  { rootMargin: "200px" }
23187
23277
  );
23188
23278
  observer.observe(sentinel);
23189
23279
  return () => observer.disconnect();
23190
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _523 => _523.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _524 => _524.isFetchingNextPage])]);
23280
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.isFetchingNextPage])]);
23191
23281
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
23192
23282
  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: [
23193
23283
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -23258,7 +23348,7 @@ function Table({
23258
23348
  },
23259
23349
  getRowKey(item, index)
23260
23350
  )),
23261
- _optionalChain([infiniteScroll, 'optionalAccess', _525 => _525.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23351
+ _optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23262
23352
  TableCardSkeleton,
23263
23353
  {
23264
23354
  columns,
@@ -23267,7 +23357,7 @@ function Table({
23267
23357
  hasChevron: Boolean(rowHref)
23268
23358
  }
23269
23359
  ),
23270
- _optionalChain([infiniteScroll, 'optionalAccess', _526 => _526.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23360
+ _optionalChain([infiniteScroll, 'optionalAccess', _521 => _521.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23271
23361
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23272
23362
  "div",
23273
23363
  {
@@ -23625,7 +23715,7 @@ function QueryReportTable({
23625
23715
  );
23626
23716
  const handleExport = () => {
23627
23717
  exportToCSV(data, columns, exportFilename);
23628
- _optionalChain([onExport, 'optionalCall', _527 => _527()]);
23718
+ _optionalChain([onExport, 'optionalCall', _522 => _522()]);
23629
23719
  };
23630
23720
  const tableMinWidth = columns.length * (columnWidth + 16);
23631
23721
  const {
@@ -23798,7 +23888,7 @@ function DataTableColumnFilter({
23798
23888
  align = "left"
23799
23889
  }) {
23800
23890
  const currentValue = column.getFilterValue();
23801
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _528 => _528.length]), () => ( 0));
23891
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _523 => _523.length]), () => ( 0));
23802
23892
  const sections = _react.useMemo.call(void 0,
23803
23893
  () => [
23804
23894
  {
@@ -23878,7 +23968,7 @@ function DataTableHeader({
23878
23968
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
23879
23969
  if (header.isPlaceholder) return false;
23880
23970
  if (isLgUp) return true;
23881
- return Boolean(_optionalChain([header, 'access', _529 => _529.column, 'access', _530 => _530.columnDef, 'access', _531 => _531.meta, 'optionalAccess', _532 => _532.filter]));
23971
+ return Boolean(_optionalChain([header, 'access', _524 => _524.column, 'access', _525 => _525.columnDef, 'access', _526 => _526.meta, 'optionalAccess', _527 => _527.filter]));
23882
23972
  });
23883
23973
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23884
23974
  "div",
@@ -23908,20 +23998,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
23908
23998
  if (header.isPlaceholder) return null;
23909
23999
  const column = header.column;
23910
24000
  const meta = column.columnDef.meta;
23911
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _533 => _533.filter]));
23912
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _534 => _534.align]), () => ( "left"));
23913
- const canSort = _optionalChain([meta, 'optionalAccess', _535 => _535.sortable]) === true;
23914
- const sortDir = _optionalChain([sort, 'optionalAccess', _536 => _536.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24001
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _528 => _528.filter]));
24002
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _529 => _529.align]), () => ( "left"));
24003
+ const canSort = _optionalChain([meta, 'optionalAccess', _530 => _530.sortable]) === true;
24004
+ const sortDir = _optionalChain([sort, 'optionalAccess', _531 => _531.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
23915
24005
  if (!isLgUp && !hasFilter) return null;
23916
24006
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23917
24007
  "div",
23918
24008
  {
23919
24009
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
23920
24010
  "flex items-stretch",
23921
- isLgUp && (_optionalChain([meta, 'optionalAccess', _537 => _537.width]) || "flex-1 min-w-0"),
23922
- _optionalChain([meta, 'optionalAccess', _538 => _538.headerClassName]),
24011
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _532 => _532.width]) || "flex-1 min-w-0"),
24012
+ _optionalChain([meta, 'optionalAccess', _533 => _533.headerClassName]),
23923
24013
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
23924
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _539 => _539.hideAt]))
24014
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _534 => _534.hideAt]))
23925
24015
  ),
23926
24016
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23927
24017
  DataTableColumnFilter,
@@ -23940,7 +24030,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
23940
24030
  isLgUp && alignJustify(align),
23941
24031
  canSort && "group cursor-pointer"
23942
24032
  ),
23943
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _540 => _540(column.id)]) : void 0,
24033
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _535 => _535(column.id)]) : void 0,
23944
24034
  children: [
23945
24035
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
23946
24036
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24024,7 +24114,7 @@ function DataTableSkeleton({
24024
24114
  }) {
24025
24115
  const table = useDataTableContext();
24026
24116
  const columns = table.getVisibleFlatColumns();
24027
- const firstColumnId = _optionalChain([columns, 'access', _541 => _541[0], 'optionalAccess', _542 => _542.id]);
24117
+ const firstColumnId = _optionalChain([columns, 'access', _536 => _536[0], 'optionalAccess', _537 => _537.id]);
24028
24118
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24029
24119
  "div",
24030
24120
  {
@@ -24048,7 +24138,7 @@ function DataTableSkeleton({
24048
24138
  {
24049
24139
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24050
24140
  "flex flex-col justify-center shrink-0",
24051
- _optionalChain([meta, 'optionalAccess', _543 => _543.width]) || "flex-1"
24141
+ _optionalChain([meta, 'optionalAccess', _538 => _538.width]) || "flex-1"
24052
24142
  ),
24053
24143
  children: [
24054
24144
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -24094,7 +24184,7 @@ function DataTableRowImpl({
24094
24184
  (e) => {
24095
24185
  const target = e.target;
24096
24186
  if (target.closest("[data-no-row-click]")) return;
24097
- _optionalChain([onClick, 'optionalCall', _544 => _544(row.original)]);
24187
+ _optionalChain([onClick, 'optionalCall', _539 => _539(row.original)]);
24098
24188
  },
24099
24189
  [onClick, row.original]
24100
24190
  );
@@ -24132,10 +24222,10 @@ function DataTableRowImpl({
24132
24222
  {
24133
24223
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24134
24224
  "flex flex-col overflow-hidden",
24135
- alignJustify(_optionalChain([meta, 'optionalAccess', _545 => _545.align])),
24136
- _optionalChain([meta, 'optionalAccess', _546 => _546.width]) || "flex-1 min-w-0",
24137
- _optionalChain([meta, 'optionalAccess', _547 => _547.cellClassName]),
24138
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _548 => _548.hideAt]))
24225
+ alignJustify(_optionalChain([meta, 'optionalAccess', _540 => _540.align])),
24226
+ _optionalChain([meta, 'optionalAccess', _541 => _541.width]) || "flex-1 min-w-0",
24227
+ _optionalChain([meta, 'optionalAccess', _542 => _542.cellClassName]),
24228
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _543 => _543.hideAt]))
24139
24229
  ),
24140
24230
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
24141
24231
  },
@@ -24181,7 +24271,7 @@ function DataTableBody({
24181
24271
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
24182
24272
  rows.map((row, index) => {
24183
24273
  const item = row.original;
24184
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _549 => _549(item)]), () => ( void 0));
24274
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _544 => _544(item)]), () => ( void 0));
24185
24275
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
24186
24276
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24187
24277
  DataTableRow,
@@ -24245,7 +24335,7 @@ function DataTableInfiniteFooter({
24245
24335
  if (!sentinel) return;
24246
24336
  const observer = new IntersectionObserver(
24247
24337
  (entries) => {
24248
- if (_optionalChain([entries, 'access', _550 => _550[0], 'optionalAccess', _551 => _551.isIntersecting])) onLoadMoreRef.current();
24338
+ if (_optionalChain([entries, 'access', _545 => _545[0], 'optionalAccess', _546 => _546.isIntersecting])) onLoadMoreRef.current();
24249
24339
  },
24250
24340
  { rootMargin }
24251
24341
  );
@@ -24293,7 +24383,7 @@ function DataTableRowCount({
24293
24383
  const table = useDataTableContext();
24294
24384
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
24295
24385
  if (hideWhenEmpty && count === 0) return null;
24296
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _552 => _552(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
24386
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _547 => _547(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
24297
24387
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24298
24388
  "span",
24299
24389
  {
@@ -24387,12 +24477,12 @@ function PhoneInput({
24387
24477
  const runValidation = _react.useCallback.call(void 0, (phone) => {
24388
24478
  if (!phone || digitCount(phone) === 0) {
24389
24479
  setIsInvalid(false);
24390
- _optionalChain([onValidationChange, 'optionalCall', _553 => _553(false)]);
24480
+ _optionalChain([onValidationChange, 'optionalCall', _548 => _548(false)]);
24391
24481
  return;
24392
24482
  }
24393
24483
  const invalid = !validatePhoneNumber(phone, countryCode);
24394
24484
  setIsInvalid(invalid);
24395
- _optionalChain([onValidationChange, 'optionalCall', _554 => _554(invalid)]);
24485
+ _optionalChain([onValidationChange, 'optionalCall', _549 => _549(invalid)]);
24396
24486
  }, [countryCode, digitCount, onValidationChange]);
24397
24487
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
24398
24488
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -24441,7 +24531,7 @@ function PhoneInput({
24441
24531
  debouncedValidation(val);
24442
24532
  } else if (digitCount(val) === 0) {
24443
24533
  setIsInvalid(false);
24444
- _optionalChain([onValidationChange, 'optionalCall', _555 => _555(false)]);
24534
+ _optionalChain([onValidationChange, 'optionalCall', _550 => _550(false)]);
24445
24535
  }
24446
24536
  }
24447
24537
  },
@@ -24548,7 +24638,7 @@ function SearchInput({
24548
24638
  if (!showHiddenTags) return;
24549
24639
  const handleClick = (e) => {
24550
24640
  const target = e.target;
24551
- if (!_optionalChain([hiddenTagsRef, 'access', _556 => _556.current, 'optionalAccess', _557 => _557.contains, 'call', _558 => _558(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _559 => _559.current, 'optionalAccess', _560 => _560.contains, 'call', _561 => _561(target)])) {
24641
+ if (!_optionalChain([hiddenTagsRef, 'access', _551 => _551.current, 'optionalAccess', _552 => _552.contains, 'call', _553 => _553(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _554 => _554.current, 'optionalAccess', _555 => _555.contains, 'call', _556 => _556(target)])) {
24552
24642
  setShowHiddenTags(false);
24553
24643
  }
24554
24644
  };
@@ -24596,10 +24686,10 @@ function SearchInput({
24596
24686
  } else {
24597
24687
  setInternalValue("");
24598
24688
  }
24599
- _optionalChain([inputRef, 'access', _562 => _562.current, 'optionalAccess', _563 => _563.focus, 'call', _564 => _564()]);
24689
+ _optionalChain([inputRef, 'access', _557 => _557.current, 'optionalAccess', _558 => _558.focus, 'call', _559 => _559()]);
24600
24690
  };
24601
24691
  const handleResultClick = (result) => {
24602
- _optionalChain([onResultSelect, 'optionalCall', _565 => _565(result)]);
24692
+ _optionalChain([onResultSelect, 'optionalCall', _560 => _560(result)]);
24603
24693
  setIsOpen(false);
24604
24694
  };
24605
24695
  const handleKeyDown = (e) => {
@@ -24622,7 +24712,7 @@ function SearchInput({
24622
24712
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
24623
24713
  handleResultClick(flatResults[highlightedIndex]);
24624
24714
  } else {
24625
- _optionalChain([onSubmit, 'optionalCall', _566 => _566(currentValue)]);
24715
+ _optionalChain([onSubmit, 'optionalCall', _561 => _561(currentValue)]);
24626
24716
  }
24627
24717
  break;
24628
24718
  case "Escape":
@@ -24700,7 +24790,7 @@ function SearchInput({
24700
24790
  dropdownVisible && "!border-ods-accent"
24701
24791
  ),
24702
24792
  onClick: () => {
24703
- _optionalChain([inputRef, 'access', _567 => _567.current, 'optionalAccess', _568 => _568.focus, 'call', _569 => _569()]);
24793
+ _optionalChain([inputRef, 'access', _562 => _562.current, 'optionalAccess', _563 => _563.focus, 'call', _564 => _564()]);
24704
24794
  setIsOpen(true);
24705
24795
  },
24706
24796
  children: [
@@ -24784,10 +24874,10 @@ function SearchInput({
24784
24874
  align: "start",
24785
24875
  onOpenAutoFocus: (e) => {
24786
24876
  e.preventDefault();
24787
- _optionalChain([inputRef, 'access', _570 => _570.current, 'optionalAccess', _571 => _571.focus, 'call', _572 => _572()]);
24877
+ _optionalChain([inputRef, 'access', _565 => _565.current, 'optionalAccess', _566 => _566.focus, 'call', _567 => _567()]);
24788
24878
  },
24789
24879
  onInteractOutside: (e) => {
24790
- if (_optionalChain([containerRef, 'access', _573 => _573.current, 'optionalAccess', _574 => _574.contains, 'call', _575 => _575(e.target)])) {
24880
+ if (_optionalChain([containerRef, 'access', _568 => _568.current, 'optionalAccess', _569 => _569.contains, 'call', _570 => _570(e.target)])) {
24791
24881
  e.preventDefault();
24792
24882
  }
24793
24883
  },
@@ -24804,10 +24894,10 @@ function SearchInput({
24804
24894
  ref: hiddenTagsPopupRef,
24805
24895
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
24806
24896
  style: {
24807
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _576 => _576.current, 'optionalAccess', _577 => _577.getBoundingClientRect, 'call', _578 => _578(), 'access', _579 => _579.left]), () => ( 0))) : 0
24897
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _571 => _571.current, 'optionalAccess', _572 => _572.getBoundingClientRect, 'call', _573 => _573(), 'access', _574 => _574.left]), () => ( 0))) : 0
24808
24898
  },
24809
24899
  onRemove: (value2) => {
24810
- _optionalChain([onFilterRemove, 'optionalCall', _580 => _580(value2)]);
24900
+ _optionalChain([onFilterRemove, 'optionalCall', _575 => _575(value2)]);
24811
24901
  if (hiddenCount <= 1) setShowHiddenTags(false);
24812
24902
  }
24813
24903
  }
@@ -24858,7 +24948,7 @@ function FilterListItem({
24858
24948
  }) {
24859
24949
  const handleToggle = () => {
24860
24950
  if (disabled) return;
24861
- _optionalChain([onToggle, 'optionalCall', _581 => _581(!selected)]);
24951
+ _optionalChain([onToggle, 'optionalCall', _576 => _576(!selected)]);
24862
24952
  };
24863
24953
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24864
24954
  "div",
@@ -24905,7 +24995,7 @@ function FilterListItem({
24905
24995
  CheckboxPrimitive4.Root,
24906
24996
  {
24907
24997
  checked: selected,
24908
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _582 => _582(c === true)]),
24998
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _577 => _577(c === true)]),
24909
24999
  onClick: (e) => e.stopPropagation(),
24910
25000
  disabled,
24911
25001
  "aria-label": title,
@@ -25004,7 +25094,7 @@ function TagSearchInput({
25004
25094
  if (!showHiddenTags) return;
25005
25095
  const handleClick = (e) => {
25006
25096
  const target = e.target;
25007
- if (!_optionalChain([hiddenTagsRef, 'access', _583 => _583.current, 'optionalAccess', _584 => _584.contains, 'call', _585 => _585(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _586 => _586.current, 'optionalAccess', _587 => _587.contains, 'call', _588 => _588(target)])) {
25097
+ if (!_optionalChain([hiddenTagsRef, 'access', _578 => _578.current, 'optionalAccess', _579 => _579.contains, 'call', _580 => _580(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _581 => _581.current, 'optionalAccess', _582 => _582.contains, 'call', _583 => _583(target)])) {
25008
25098
  setShowHiddenTags(false);
25009
25099
  }
25010
25100
  };
@@ -25020,13 +25110,13 @@ function TagSearchInput({
25020
25110
  e.preventDefault();
25021
25111
  onSubmit(searchValue);
25022
25112
  }
25023
- _optionalChain([onKeyDown, 'optionalCall', _589 => _589(e)]);
25113
+ _optionalChain([onKeyDown, 'optionalCall', _584 => _584(e)]);
25024
25114
  };
25025
25115
  const handleClearAll = (e) => {
25026
25116
  e.stopPropagation();
25027
25117
  e.preventDefault();
25028
- _optionalChain([onClearAll, 'optionalCall', _590 => _590()]);
25029
- _optionalChain([inputRef, 'access', _591 => _591.current, 'optionalAccess', _592 => _592.focus, 'call', _593 => _593()]);
25118
+ _optionalChain([onClearAll, 'optionalCall', _585 => _585()]);
25119
+ _optionalChain([inputRef, 'access', _586 => _586.current, 'optionalAccess', _587 => _587.focus, 'call', _588 => _588()]);
25030
25120
  };
25031
25121
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
25032
25122
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25043,7 +25133,7 @@ function TagSearchInput({
25043
25133
  className
25044
25134
  ),
25045
25135
  onClick: () => {
25046
- if (!disabled) _optionalChain([inputRef, 'access', _594 => _594.current, 'optionalAccess', _595 => _595.focus, 'call', _596 => _596()]);
25136
+ if (!disabled) _optionalChain([inputRef, 'access', _589 => _589.current, 'optionalAccess', _590 => _590.focus, 'call', _591 => _591()]);
25047
25137
  },
25048
25138
  children: [
25049
25139
  /* @__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" }) }),
@@ -25115,7 +25205,7 @@ function TagSearchInput({
25115
25205
  items: hiddenTags,
25116
25206
  disabled,
25117
25207
  style: {
25118
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _597 => _597.current, 'optionalAccess', _598 => _598.getBoundingClientRect, 'call', _599 => _599(), 'access', _600 => _600.left]), () => ( 0))) : 0
25208
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _592 => _592.current, 'optionalAccess', _593 => _593.getBoundingClientRect, 'call', _594 => _594(), 'access', _595 => _595.left]), () => ( 0))) : 0
25119
25209
  },
25120
25210
  onRemove: (value) => {
25121
25211
  onTagRemove(value);
@@ -25217,7 +25307,7 @@ function MarkdownEditor({
25217
25307
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
25218
25308
  _react.useEffect.call(void 0, () => {
25219
25309
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
25220
- if (_optionalChain([mod, 'access', _601 => _601.commands, 'optionalAccess', _602 => _602.getExtraCommands])) {
25310
+ if (_optionalChain([mod, 'access', _596 => _596.commands, 'optionalAccess', _597 => _597.getExtraCommands])) {
25221
25311
  setDefaultExtraCommands(mod.commands.getExtraCommands());
25222
25312
  }
25223
25313
  });
@@ -25251,7 +25341,7 @@ function MarkdownEditor({
25251
25341
  const isImage = file.type.startsWith("image/");
25252
25342
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
25253
25343
  insertTextAtCursor(markdown);
25254
- _optionalChain([onFileUploaded, 'optionalCall', _603 => _603(url, file.name)]);
25344
+ _optionalChain([onFileUploaded, 'optionalCall', _598 => _598(url, file.name)]);
25255
25345
  } catch (error) {
25256
25346
  console.error("File upload failed:", error);
25257
25347
  setUploadProgress("Upload failed. Please try again.");
@@ -25264,7 +25354,7 @@ function MarkdownEditor({
25264
25354
  );
25265
25355
  const handleFileInputChange = _react.useCallback.call(void 0,
25266
25356
  (e) => {
25267
- const file = _optionalChain([e, 'access', _604 => _604.target, 'access', _605 => _605.files, 'optionalAccess', _606 => _606[0]]);
25357
+ const file = _optionalChain([e, 'access', _599 => _599.target, 'access', _600 => _600.files, 'optionalAccess', _601 => _601[0]]);
25268
25358
  if (file) {
25269
25359
  handleFileUpload(file);
25270
25360
  e.target.value = "";
@@ -25275,7 +25365,7 @@ function MarkdownEditor({
25275
25365
  const handlePaste = _react.useCallback.call(void 0,
25276
25366
  (e) => {
25277
25367
  if (!onUploadFile) return;
25278
- const items = _optionalChain([e, 'access', _607 => _607.clipboardData, 'optionalAccess', _608 => _608.items]);
25368
+ const items = _optionalChain([e, 'access', _602 => _602.clipboardData, 'optionalAccess', _603 => _603.items]);
25279
25369
  if (!items) return;
25280
25370
  for (const item of items) {
25281
25371
  if (item.type.startsWith("image/")) {
@@ -25300,7 +25390,7 @@ function MarkdownEditor({
25300
25390
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
25301
25391
  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" }),
25302
25392
  execute: () => {
25303
- _optionalChain([fileInputRef, 'access', _609 => _609.current, 'optionalAccess', _610 => _610.click, 'call', _611 => _611()]);
25393
+ _optionalChain([fileInputRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.click, 'call', _606 => _606()]);
25304
25394
  }
25305
25395
  } : null;
25306
25396
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -25312,7 +25402,7 @@ function MarkdownEditor({
25312
25402
  const EDGE_ZONE = 60;
25313
25403
  const MAX_SCROLL_SPEED = 15;
25314
25404
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
25315
- let node = _optionalChain([el, 'optionalAccess', _612 => _612.parentElement]);
25405
+ let node = _optionalChain([el, 'optionalAccess', _607 => _607.parentElement]);
25316
25406
  while (node && node !== document.documentElement) {
25317
25407
  const { overflowY } = window.getComputedStyle(node);
25318
25408
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -25455,7 +25545,7 @@ function matchesAccept(file, accept) {
25455
25545
  });
25456
25546
  }
25457
25547
  function dragHasFiles(e) {
25458
- const types = _optionalChain([e, 'access', _613 => _613.dataTransfer, 'optionalAccess', _614 => _614.types]);
25548
+ const types = _optionalChain([e, 'access', _608 => _608.dataTransfer, 'optionalAccess', _609 => _609.types]);
25459
25549
  if (!types) return false;
25460
25550
  for (let i = 0; i < types.length; i++) {
25461
25551
  if (types[i] === "Files") return true;
@@ -25550,7 +25640,7 @@ function FileUpload({
25550
25640
  e.stopPropagation();
25551
25641
  setDragActive(false);
25552
25642
  if (disabled) return;
25553
- if (_optionalChain([e, 'access', _615 => _615.dataTransfer, 'access', _616 => _616.files, 'optionalAccess', _617 => _617.length])) {
25643
+ if (_optionalChain([e, 'access', _610 => _610.dataTransfer, 'access', _611 => _611.files, 'optionalAccess', _612 => _612.length])) {
25554
25644
  handleFiles(e.dataTransfer.files);
25555
25645
  }
25556
25646
  };
@@ -25578,7 +25668,7 @@ function FileUpload({
25578
25668
  e.preventDefault();
25579
25669
  dragCounter = 0;
25580
25670
  setDragActive(false);
25581
- if (_optionalChain([e, 'access', _618 => _618.dataTransfer, 'optionalAccess', _619 => _619.files, 'optionalAccess', _620 => _620.length])) {
25671
+ if (_optionalChain([e, 'access', _613 => _613.dataTransfer, 'optionalAccess', _614 => _614.files, 'optionalAccess', _615 => _615.length])) {
25582
25672
  handleFilesRef.current(e.dataTransfer.files);
25583
25673
  }
25584
25674
  };
@@ -25600,7 +25690,7 @@ function FileUpload({
25600
25690
  };
25601
25691
  }, [acceptWindowDrops, disabled]);
25602
25692
  const handleFileSelect = (e) => {
25603
- if (_optionalChain([e, 'access', _621 => _621.target, 'access', _622 => _622.files, 'optionalAccess', _623 => _623.length])) {
25693
+ if (_optionalChain([e, 'access', _616 => _616.target, 'access', _617 => _617.files, 'optionalAccess', _618 => _618.length])) {
25604
25694
  handleFiles(e.target.files);
25605
25695
  }
25606
25696
  };
@@ -25617,7 +25707,7 @@ function FileUpload({
25617
25707
  };
25618
25708
  const openDialog = async () => {
25619
25709
  if (disabled) return;
25620
- _optionalChain([fileInputRef, 'access', _624 => _624.current, 'optionalAccess', _625 => _625.click, 'call', _626 => _626()]);
25710
+ _optionalChain([fileInputRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.click, 'call', _621 => _621()]);
25621
25711
  };
25622
25712
  const displayError = error || validationError || void 0;
25623
25713
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -25695,7 +25785,7 @@ function FileUpload({
25695
25785
  "button",
25696
25786
  {
25697
25787
  type: "button",
25698
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _627 => _627(entry.id)]),
25788
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _622 => _622(entry.id)]),
25699
25789
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
25700
25790
  "aria-label": `Remove ${entry.fileName}`,
25701
25791
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -25818,7 +25908,7 @@ function ImageUploader({
25818
25908
  onChange(file);
25819
25909
  };
25820
25910
  const handleFileSelect = (e) => {
25821
- validateAndEmit(_optionalChain([e, 'access', _628 => _628.target, 'access', _629 => _629.files, 'optionalAccess', _630 => _630[0]]));
25911
+ validateAndEmit(_optionalChain([e, 'access', _623 => _623.target, 'access', _624 => _624.files, 'optionalAccess', _625 => _625[0]]));
25822
25912
  if (inputRef.current) inputRef.current.value = "";
25823
25913
  };
25824
25914
  const handleDrag = (e) => {
@@ -25833,11 +25923,11 @@ function ImageUploader({
25833
25923
  e.stopPropagation();
25834
25924
  setDragActive(false);
25835
25925
  if (!interactive) return;
25836
- validateAndEmit(_optionalChain([e, 'access', _631 => _631.dataTransfer, 'access', _632 => _632.files, 'optionalAccess', _633 => _633[0]]));
25926
+ validateAndEmit(_optionalChain([e, 'access', _626 => _626.dataTransfer, 'access', _627 => _627.files, 'optionalAccess', _628 => _628[0]]));
25837
25927
  };
25838
25928
  const openDialog = () => {
25839
25929
  if (!interactive) return;
25840
- _optionalChain([inputRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.click, 'call', _636 => _636()]);
25930
+ _optionalChain([inputRef, 'access', _629 => _629.current, 'optionalAccess', _630 => _630.click, 'call', _631 => _631()]);
25841
25931
  };
25842
25932
  const handleRootKeyDown = (e) => {
25843
25933
  if (hasImage || !interactive) return;
@@ -25994,7 +26084,7 @@ function CompactAssigneeDropdown({
25994
26084
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
25995
26085
  }, [filtered, currentAssignee]);
25996
26086
  const handleSelect = (userId) => {
25997
- const next = _optionalChain([currentAssignee, 'optionalAccess', _637 => _637.id]) === userId ? null : userId;
26087
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _632 => _632.id]) === userId ? null : userId;
25998
26088
  onAssign(next);
25999
26089
  setIsOpen(false);
26000
26090
  };
@@ -26059,7 +26149,7 @@ function CompactAssigneeDropdown({
26059
26149
  }
26060
26150
  ) }),
26061
26151
  /* @__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) => {
26062
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _638 => _638.id]) === opt.value;
26152
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _633 => _633.id]) === opt.value;
26063
26153
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26064
26154
  "button",
26065
26155
  {
@@ -26128,7 +26218,7 @@ function DefaultAssigneeDropdown({
26128
26218
  Autocomplete,
26129
26219
  {
26130
26220
  options,
26131
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _639 => _639.id]), () => ( null)),
26221
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _634 => _634.id]), () => ( null)),
26132
26222
  onChange: (val) => {
26133
26223
  onAssign(val);
26134
26224
  setIsEditing(false);
@@ -26486,14 +26576,14 @@ function TicketInfoSection({
26486
26576
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26487
26577
  SquareAvatar,
26488
26578
  {
26489
- src: _optionalChain([organization, 'optionalAccess', _640 => _640.imageSrc]),
26490
- alt: _optionalChain([organization, 'optionalAccess', _641 => _641.name]),
26491
- fallback: _optionalChain([organization, 'optionalAccess', _642 => _642.name]) || "Org",
26579
+ src: _optionalChain([organization, 'optionalAccess', _635 => _635.imageSrc]),
26580
+ alt: _optionalChain([organization, 'optionalAccess', _636 => _636.name]),
26581
+ fallback: _optionalChain([organization, 'optionalAccess', _637 => _637.name]) || "Org",
26492
26582
  size: "md",
26493
26583
  className: "shrink-0"
26494
26584
  }
26495
26585
  ),
26496
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _643 => _643.name]) || "Unassigned", label: "Organization" })
26586
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _638 => _638.name]) || "Unassigned", label: "Organization" })
26497
26587
  ] }),
26498
26588
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26499
26589
  AssigneeDropdown,
@@ -26514,10 +26604,10 @@ function TicketInfoSection({
26514
26604
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26515
26605
  InfoCell2,
26516
26606
  {
26517
- value: _optionalChain([device, 'optionalAccess', _644 => _644.name]) || "Unassigned",
26607
+ value: _optionalChain([device, 'optionalAccess', _639 => _639.name]) || "Unassigned",
26518
26608
  label: "Device",
26519
- icon: _optionalChain([device, 'optionalAccess', _645 => _645.icon]),
26520
- onClick: _optionalChain([device, 'optionalAccess', _646 => _646.onClick])
26609
+ icon: _optionalChain([device, 'optionalAccess', _640 => _640.icon]),
26610
+ onClick: _optionalChain([device, 'optionalAccess', _641 => _641.onClick])
26521
26611
  }
26522
26612
  ),
26523
26613
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -27276,10 +27366,10 @@ var getContentDimensions = (config) => {
27276
27366
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
27277
27367
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
27278
27368
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
27279
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _647 => _647.mobileContentDimensions, 'optionalAccess', _648 => _648.width]))), () => ( defaultMobile.width));
27280
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _649 => _649.mobileContentDimensions, 'optionalAccess', _650 => _650.height]))), () => ( defaultMobile.height));
27281
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _651 => _651.desktopContentDimensions, 'optionalAccess', _652 => _652.width]))), () => ( defaultDesktop.width));
27282
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _653 => _653.desktopContentDimensions, 'optionalAccess', _654 => _654.height]))), () => ( defaultDesktop.height));
27369
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _642 => _642.mobileContentDimensions, 'optionalAccess', _643 => _643.width]))), () => ( defaultMobile.width));
27370
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _644 => _644.mobileContentDimensions, 'optionalAccess', _645 => _645.height]))), () => ( defaultMobile.height));
27371
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _646 => _646.desktopContentDimensions, 'optionalAccess', _647 => _647.width]))), () => ( defaultDesktop.width));
27372
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _648 => _648.desktopContentDimensions, 'optionalAccess', _649 => _649.height]))), () => ( defaultDesktop.height));
27283
27373
  return {
27284
27374
  mobile: { width: mobileWidth, height: mobileHeight },
27285
27375
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -27413,7 +27503,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
27413
27503
  const contentDimensions = getContentDimensions(config);
27414
27504
  const mobileHeight = contentDimensions.mobile.height;
27415
27505
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
27416
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _655 => _655.innerHeight]) * 0.85 || 650)}px`;
27506
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _650 => _650.innerHeight]) * 0.85 || 650)}px`;
27417
27507
  })(),
27418
27508
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
27419
27509
  const contentDimensions = getContentDimensions(config);
@@ -27518,7 +27608,7 @@ var FigmaPrototypeViewer = ({
27518
27608
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
27519
27609
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
27520
27610
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
27521
- config.defaultSectionId || _optionalChain([config, 'access', _656 => _656.sections, 'access', _657 => _657[0], 'optionalAccess', _658 => _658.id]) || ""
27611
+ config.defaultSectionId || _optionalChain([config, 'access', _651 => _651.sections, 'access', _652 => _652[0], 'optionalAccess', _653 => _653.id]) || ""
27522
27612
  );
27523
27613
  const activeSection = externalActiveSection || internalActiveSection;
27524
27614
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -27608,7 +27698,7 @@ var FigmaPrototypeViewer = ({
27608
27698
  const handleMessage = (event) => {
27609
27699
  if (event.origin !== "https://www.figma.com") return;
27610
27700
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
27611
- if (_optionalChain([event, 'access', _659 => _659.data, 'optionalAccess', _660 => _660.type]) && validEvents.includes(event.data.type)) {
27701
+ if (_optionalChain([event, 'access', _654 => _654.data, 'optionalAccess', _655 => _655.type]) && validEvents.includes(event.data.type)) {
27612
27702
  const figmaEvent = event.data;
27613
27703
  console.log("[Figma Event]", figmaEvent.type, viewMode);
27614
27704
  switch (figmaEvent.type) {
@@ -27618,19 +27708,19 @@ var FigmaPrototypeViewer = ({
27618
27708
  setIframeState("READY");
27619
27709
  break;
27620
27710
  case "PRESENTED_NODE_CHANGED":
27621
- if (_optionalChain([figmaEvent, 'access', _661 => _661.data, 'optionalAccess', _662 => _662.presentedNodeId])) {
27711
+ if (_optionalChain([figmaEvent, 'access', _656 => _656.data, 'optionalAccess', _657 => _657.presentedNodeId])) {
27622
27712
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
27623
27713
  if (!isNavigating) {
27624
27714
  const matchingSection = config.sections.find((s) => {
27625
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _663 => _663.data, 'optionalAccess', _664 => _664.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _665 => _665.data, 'optionalAccess', _666 => _666.presentedNodeId]);
27626
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _667 => _667.data, 'optionalAccess', _668 => _668.presentedNodeId]) || _optionalChain([s, 'access', _669 => _669.mobileStartingNodeId, 'optionalAccess', _670 => _670.replace, 'call', _671 => _671(":", "-")]) === _optionalChain([figmaEvent, 'access', _672 => _672.data, 'optionalAccess', _673 => _673.presentedNodeId]);
27715
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _658 => _658.data, 'optionalAccess', _659 => _659.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _660 => _660.data, 'optionalAccess', _661 => _661.presentedNodeId]);
27716
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _662 => _662.data, 'optionalAccess', _663 => _663.presentedNodeId]) || _optionalChain([s, 'access', _664 => _664.mobileStartingNodeId, 'optionalAccess', _665 => _665.replace, 'call', _666 => _666(":", "-")]) === _optionalChain([figmaEvent, 'access', _667 => _667.data, 'optionalAccess', _668 => _668.presentedNodeId]);
27627
27717
  return desktopMatch || mobileMatch;
27628
27718
  });
27629
27719
  if (matchingSection && matchingSection.id !== activeSection) {
27630
27720
  if (!externalActiveSection) {
27631
27721
  setInternalActiveSection(matchingSection.id);
27632
27722
  }
27633
- _optionalChain([config, 'access', _674 => _674.onSectionChange, 'optionalCall', _675 => _675(matchingSection.id)]);
27723
+ _optionalChain([config, 'access', _669 => _669.onSectionChange, 'optionalCall', _670 => _670(matchingSection.id)]);
27634
27724
  }
27635
27725
  }
27636
27726
  }
@@ -27643,7 +27733,7 @@ var FigmaPrototypeViewer = ({
27643
27733
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
27644
27734
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
27645
27735
  const section = config.sections.find((s) => s.id === sectionId);
27646
- if (!section || !_optionalChain([iframeRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.contentWindow]) || !isInitialized) {
27736
+ if (!section || !_optionalChain([iframeRef, 'access', _671 => _671.current, 'optionalAccess', _672 => _672.contentWindow]) || !isInitialized) {
27647
27737
  return;
27648
27738
  }
27649
27739
  setIsNavigating(true);
@@ -27651,7 +27741,7 @@ var FigmaPrototypeViewer = ({
27651
27741
  if (!externalActiveSection) {
27652
27742
  setInternalActiveSection(sectionId);
27653
27743
  }
27654
- _optionalChain([config, 'access', _678 => _678.onSectionChange, 'optionalCall', _679 => _679(sectionId)]);
27744
+ _optionalChain([config, 'access', _673 => _673.onSectionChange, 'optionalCall', _674 => _674(sectionId)]);
27655
27745
  const command = {
27656
27746
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
27657
27747
  data: { nodeId }
@@ -27971,7 +28061,7 @@ var FiltersDropdown = ({
27971
28061
  defaults[section.id] = section.defaultSelected || [];
27972
28062
  });
27973
28063
  setSelectedFilters(defaults);
27974
- _optionalChain([onReset, 'optionalCall', _680 => _680()]);
28064
+ _optionalChain([onReset, 'optionalCall', _675 => _675()]);
27975
28065
  setIsOpen(false);
27976
28066
  };
27977
28067
  const handleApply = () => {
@@ -28265,7 +28355,7 @@ function MediaGalleryManager({
28265
28355
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
28266
28356
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
28267
28357
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
28268
- const file = _optionalChain([event, 'access', _681 => _681.target, 'access', _682 => _682.files, 'optionalAccess', _683 => _683[0]]);
28358
+ const file = _optionalChain([event, 'access', _676 => _676.target, 'access', _677 => _677.files, 'optionalAccess', _678 => _678[0]]);
28269
28359
  if (!file) return;
28270
28360
  let mediaType;
28271
28361
  if (file.type.startsWith("image/")) {
@@ -28380,7 +28470,7 @@ function MediaGalleryManager({
28380
28470
  {
28381
28471
  type: "button",
28382
28472
  variant: "outline",
28383
- onClick: () => _optionalChain([fileInputRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.click, 'call', _686 => _686()]),
28473
+ onClick: () => _optionalChain([fileInputRef, 'access', _679 => _679.current, 'optionalAccess', _680 => _680.click, 'call', _681 => _681()]),
28384
28474
  disabled: isUploading,
28385
28475
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
28386
28476
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29165,7 +29255,7 @@ function ReleaseMediaManager({
29165
29255
  const fileInputRef = _react.useRef.call(void 0, null);
29166
29256
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
29167
29257
  const handleFileSelect = async (event) => {
29168
- const file = _optionalChain([event, 'access', _687 => _687.target, 'access', _688 => _688.files, 'optionalAccess', _689 => _689[0]]);
29258
+ const file = _optionalChain([event, 'access', _682 => _682.target, 'access', _683 => _683.files, 'optionalAccess', _684 => _684[0]]);
29169
29259
  if (!file) return;
29170
29260
  let mediaType;
29171
29261
  if (file.type.startsWith("image/")) {
@@ -29245,7 +29335,7 @@ function ReleaseMediaManager({
29245
29335
  {
29246
29336
  type: "button",
29247
29337
  variant: "outline",
29248
- onClick: () => _optionalChain([fileInputRef, 'access', _690 => _690.current, 'optionalAccess', _691 => _691.click, 'call', _692 => _692()]),
29338
+ onClick: () => _optionalChain([fileInputRef, 'access', _685 => _685.current, 'optionalAccess', _686 => _686.click, 'call', _687 => _687()]),
29249
29339
  disabled: uploadingIndex !== null,
29250
29340
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29251
29341
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29458,7 +29548,7 @@ function SEOEditorPreview({
29458
29548
  const displayImage = hasOgImage || hasFeaturedImage;
29459
29549
  const handleImageUpload = async (event) => {
29460
29550
  if (!onOgImageUpload) return;
29461
- const file = _optionalChain([event, 'access', _693 => _693.target, 'access', _694 => _694.files, 'optionalAccess', _695 => _695[0]]);
29551
+ const file = _optionalChain([event, 'access', _688 => _688.target, 'access', _689 => _689.files, 'optionalAccess', _690 => _690[0]]);
29462
29552
  if (!file) return;
29463
29553
  setIsUploading(true);
29464
29554
  try {
@@ -29589,7 +29679,7 @@ function SEOEditorPreview({
29589
29679
  type: "button",
29590
29680
  variant: "outline",
29591
29681
  size: "icon",
29592
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _696 => _696.click, 'call', _697 => _697()]),
29682
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _691 => _691.click, 'call', _692 => _692()]),
29593
29683
  disabled: disabled || isUploading,
29594
29684
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
29595
29685
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -29612,7 +29702,7 @@ function SEOEditorPreview({
29612
29702
  "div",
29613
29703
  {
29614
29704
  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",
29615
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _698 => _698.click, 'call', _699 => _699()]),
29705
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _693 => _693.click, 'call', _694 => _694()]),
29616
29706
  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: [
29617
29707
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
29618
29708
  /* @__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" })
@@ -29697,7 +29787,7 @@ function SocialLinksManager({
29697
29787
  className = ""
29698
29788
  }) {
29699
29789
  const addLink = () => {
29700
- const firstPlatform = _optionalChain([platforms, 'access', _700 => _700[0], 'optionalAccess', _701 => _701.name]) || "website";
29790
+ const firstPlatform = _optionalChain([platforms, 'access', _695 => _695[0], 'optionalAccess', _696 => _696.name]) || "website";
29701
29791
  onChange([...links, { platform: firstPlatform, url: "" }]);
29702
29792
  };
29703
29793
  const removeLink = (index) => {
@@ -29709,7 +29799,7 @@ function SocialLinksManager({
29709
29799
  onChange(updated);
29710
29800
  };
29711
29801
  const getIcon = (link, platform) => {
29712
- const iconKey = _optionalChain([platform, 'optionalAccess', _702 => _702.icon_name]) || link.platform;
29802
+ const iconKey = _optionalChain([platform, 'optionalAccess', _697 => _697.icon_name]) || link.platform;
29713
29803
  const IconComponent = iconMap[iconKey];
29714
29804
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
29715
29805
  };
@@ -29734,7 +29824,7 @@ function SocialLinksManager({
29734
29824
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29735
29825
  _chunkBJTOSUT4cjs.Input,
29736
29826
  {
29737
- placeholder: _optionalChain([platform, 'optionalAccess', _703 => _703.placeholder]) || "Profile URL",
29827
+ placeholder: _optionalChain([platform, 'optionalAccess', _698 => _698.placeholder]) || "Profile URL",
29738
29828
  value: link.url,
29739
29829
  onChange: (e) => updateLink(index, "url", e.target.value),
29740
29830
  onKeyDown: (e) => {
@@ -30363,7 +30453,7 @@ function VideoSourceSelector({
30363
30453
  input.accept = "video/*";
30364
30454
  input.onchange = async (e) => {
30365
30455
  const target = e.target;
30366
- const file = _optionalChain([target, 'access', _704 => _704.files, 'optionalAccess', _705 => _705[0]]);
30456
+ const file = _optionalChain([target, 'access', _699 => _699.files, 'optionalAccess', _700 => _700[0]]);
30367
30457
  if (!file) return;
30368
30458
  setIsUploading(true);
30369
30459
  setUploadProgress(0);
@@ -30693,7 +30783,7 @@ function TranscriptSummaryEditor({
30693
30783
  {
30694
30784
  id: "subtitles",
30695
30785
  value: subtitles || "",
30696
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _706 => _706(e.target.value)]),
30786
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _701 => _701(e.target.value)]),
30697
30787
  placeholder: subtitlesPlaceholder,
30698
30788
  disabled: disabled || !onSubtitlesChange,
30699
30789
  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",
@@ -30846,7 +30936,7 @@ var AIEnrichSection = ({
30846
30936
  }) => {
30847
30937
  const hasResults = status === "success" || status === "error";
30848
30938
  const shouldDisable = disabled || !canEnrich;
30849
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _707 => _707.filter, 'call', _708 => _708((f) => !f.isFilled)]) || [];
30939
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _702 => _702.filter, 'call', _703 => _703((f) => !f.isFilled)]) || [];
30850
30940
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30851
30941
  "div",
30852
30942
  {
@@ -30884,7 +30974,7 @@ var AIEnrichSection = ({
30884
30974
  {
30885
30975
  id: "ai-enrich-custom-instructions",
30886
30976
  value: _nullishCoalesce(customInstructions, () => ( "")),
30887
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _709 => _709(e.target.value)]),
30977
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _704 => _704(e.target.value)]),
30888
30978
  placeholder: customInstructionsPlaceholder,
30889
30979
  disabled: loading,
30890
30980
  maxLength: customInstructionsMaxLength,
@@ -31013,7 +31103,7 @@ function HighlightVideoSection({
31013
31103
  input.accept = "video/*";
31014
31104
  input.onchange = async (e) => {
31015
31105
  const target = e.target;
31016
- const file = _optionalChain([target, 'access', _710 => _710.files, 'optionalAccess', _711 => _711[0]]);
31106
+ const file = _optionalChain([target, 'access', _705 => _705.files, 'optionalAccess', _706 => _706[0]]);
31017
31107
  if (!file) return;
31018
31108
  setUploadError(null);
31019
31109
  try {
@@ -31515,7 +31605,7 @@ function HighlightVideoPreview({
31515
31605
  input.accept = "video/*";
31516
31606
  input.onchange = async (e) => {
31517
31607
  const target = e.target;
31518
- const file = _optionalChain([target, 'access', _712 => _712.files, 'optionalAccess', _713 => _713[0]]);
31608
+ const file = _optionalChain([target, 'access', _707 => _707.files, 'optionalAccess', _708 => _708[0]]);
31519
31609
  if (!file) return;
31520
31610
  await onUpload(file);
31521
31611
  };
@@ -31702,7 +31792,7 @@ function HighlightVideoCombinedSection({
31702
31792
  input.accept = "video/*";
31703
31793
  input.onchange = async (e) => {
31704
31794
  const target = e.target;
31705
- const file = _optionalChain([target, 'access', _714 => _714.files, 'optionalAccess', _715 => _715[0]]);
31795
+ const file = _optionalChain([target, 'access', _709 => _709.files, 'optionalAccess', _710 => _710[0]]);
31706
31796
  if (!file) return;
31707
31797
  await onUpload(file);
31708
31798
  };
@@ -31999,7 +32089,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
31999
32089
  return editMode ? "Set Global Permission" : "";
32000
32090
  }
32001
32091
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32002
- return _optionalChain([option, 'optionalAccess', _716 => _716.label]) || level;
32092
+ return _optionalChain([option, 'optionalAccess', _711 => _711.label]) || level;
32003
32093
  };
32004
32094
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32005
32095
  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: [
@@ -32531,15 +32621,15 @@ function TicketCard({
32531
32621
  transform: _utilities.CSS.Transform.toString(sortable.transform),
32532
32622
  transition: sortable.transition
32533
32623
  };
32534
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _717 => _717.deviceHostnames, 'optionalAccess', _718 => _718.length]) || ticket.organizationName);
32624
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _712 => _712.deviceHostnames, 'optionalAccess', _713 => _713.length]) || ticket.organizationName);
32535
32625
  const deviceText = [
32536
- _optionalChain([ticket, 'access', _719 => _719.deviceHostnames, 'optionalAccess', _720 => _720.join, 'call', _721 => _721(", ")]),
32626
+ _optionalChain([ticket, 'access', _714 => _714.deviceHostnames, 'optionalAccess', _715 => _715.join, 'call', _716 => _716(", ")]),
32537
32627
  ticket.organizationName
32538
32628
  ].filter(Boolean).join(", ");
32539
32629
  const handleClick = (e) => {
32540
32630
  if (sortable.isDragging) e.preventDefault();
32541
32631
  };
32542
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _722 => _722.assignees, 'optionalAccess', _723 => _723.length]) || renderAssignSlot);
32632
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _717 => _717.assignees, 'optionalAccess', _718 => _718.length]) || renderAssignSlot);
32543
32633
  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: [
32544
32634
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32545
32635
  _chunkTMD5LDX4cjs.Flag02Icon,
@@ -32548,7 +32638,7 @@ function TicketCard({
32548
32638
  "aria-label": `Priority: ${ticket.priority}`
32549
32639
  }
32550
32640
  ),
32551
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _724 => _724.assignees, 'optionalAccess', _725 => _725.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
32641
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _719 => _719.assignees, 'optionalAccess', _720 => _720.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
32552
32642
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32553
32643
  SquareAvatar,
32554
32644
  {
@@ -32577,7 +32667,7 @@ function TicketCard({
32577
32667
  ] }),
32578
32668
  rightSection
32579
32669
  ] }),
32580
- _optionalChain([ticket, 'access', _726 => _726.tags, 'optionalAccess', _727 => _727.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
32670
+ _optionalChain([ticket, 'access', _721 => _721.tags, 'optionalAccess', _722 => _722.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
32581
32671
  ] });
32582
32672
  const cardClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
32583
32673
  "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
@@ -32737,7 +32827,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
32737
32827
  const observer = new IntersectionObserver(
32738
32828
  (entries) => {
32739
32829
  if (entries.some((e) => e.isIntersecting)) {
32740
- _optionalChain([loadMoreRef, 'access', _728 => _728.current, 'optionalCall', _729 => _729(columnIdRef.current)]);
32830
+ _optionalChain([loadMoreRef, 'access', _723 => _723.current, 'optionalCall', _724 => _724(columnIdRef.current)]);
32741
32831
  }
32742
32832
  },
32743
32833
  { root, rootMargin: loadMoreRootMargin }
@@ -32766,7 +32856,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
32766
32856
  {
32767
32857
  ticket: t,
32768
32858
  columnId: column.id,
32769
- href: _optionalChain([getTicketHref, 'optionalCall', _730 => _730(t.id)]),
32859
+ href: _optionalChain([getTicketHref, 'optionalCall', _725 => _725(t.id)]),
32770
32860
  renderAssignSlot,
32771
32861
  dragDisabled: column.dragDisabled
32772
32862
  },
@@ -32849,17 +32939,17 @@ function Board({
32849
32939
  const pointer = _core.pointerWithin.call(void 0, args);
32850
32940
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
32851
32941
  const ticketHit = intersections.find(
32852
- (c) => _optionalChain([c, 'access', _731 => _731.data, 'optionalAccess', _732 => _732.droppableContainer, 'optionalAccess', _733 => _733.data, 'optionalAccess', _734 => _734.current, 'optionalAccess', _735 => _735.type]) === "ticket"
32942
+ (c) => _optionalChain([c, 'access', _726 => _726.data, 'optionalAccess', _727 => _727.droppableContainer, 'optionalAccess', _728 => _728.data, 'optionalAccess', _729 => _729.current, 'optionalAccess', _730 => _730.type]) === "ticket"
32853
32943
  );
32854
32944
  if (ticketHit) return [ticketHit];
32855
32945
  const columnHit = intersections.find(
32856
- (c) => _optionalChain([c, 'access', _736 => _736.data, 'optionalAccess', _737 => _737.droppableContainer, 'optionalAccess', _738 => _738.data, 'optionalAccess', _739 => _739.current, 'optionalAccess', _740 => _740.type]) === "column"
32946
+ (c) => _optionalChain([c, 'access', _731 => _731.data, 'optionalAccess', _732 => _732.droppableContainer, 'optionalAccess', _733 => _733.data, 'optionalAccess', _734 => _734.current, 'optionalAccess', _735 => _735.type]) === "column"
32857
32947
  );
32858
32948
  if (columnHit) {
32859
- const columnId = _optionalChain([columnHit, 'access', _741 => _741.data, 'optionalAccess', _742 => _742.droppableContainer, 'optionalAccess', _743 => _743.data, 'optionalAccess', _744 => _744.current, 'optionalAccess', _745 => _745.columnId]);
32949
+ const columnId = _optionalChain([columnHit, 'access', _736 => _736.data, 'optionalAccess', _737 => _737.droppableContainer, 'optionalAccess', _738 => _738.data, 'optionalAccess', _739 => _739.current, 'optionalAccess', _740 => _740.columnId]);
32860
32950
  const ticketsInColumn = args.droppableContainers.filter((c) => {
32861
32951
  const d = c.data.current;
32862
- return _optionalChain([d, 'optionalAccess', _746 => _746.type]) === "ticket" && d.columnId === columnId;
32952
+ return _optionalChain([d, 'optionalAccess', _741 => _741.type]) === "ticket" && d.columnId === columnId;
32863
32953
  });
32864
32954
  if (ticketsInColumn.length > 0) {
32865
32955
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -32884,20 +32974,20 @@ function Board({
32884
32974
  const overId = String(over.id);
32885
32975
  if (activeId === overId) return;
32886
32976
  const overData = over.data.current;
32887
- const fromColumnId = _optionalChain([locate, 'call', _747 => _747(items, activeId), 'optionalAccess', _748 => _748.columnId]);
32888
- const toColumnId = _optionalChain([overData, 'optionalAccess', _749 => _749.columnId]);
32977
+ const fromColumnId = _optionalChain([locate, 'call', _742 => _742(items, activeId), 'optionalAccess', _743 => _743.columnId]);
32978
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _744 => _744.columnId]);
32889
32979
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
32890
32980
  const origin = dragOriginRef.current;
32891
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _750 => _750.fromColumnId]) === toColumnId;
32981
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _745 => _745.fromColumnId]) === toColumnId;
32892
32982
  const targetCol = items.find((c) => c.id === toColumnId);
32893
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _751 => _751.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
32894
- if (_optionalChain([targetCol, 'optionalAccess', _752 => _752.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
32983
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _746 => _746.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
32984
+ if (_optionalChain([targetCol, 'optionalAccess', _747 => _747.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
32895
32985
  setItems((prev) => {
32896
32986
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
32897
32987
  const toCol = prev.find((c) => c.id === toColumnId);
32898
32988
  if (fromIndex < 0 || !toCol) return prev;
32899
32989
  let toIndex;
32900
- if (_optionalChain([overData, 'optionalAccess', _753 => _753.type]) === "column") {
32990
+ if (_optionalChain([overData, 'optionalAccess', _748 => _748.type]) === "column") {
32901
32991
  toIndex = toCol.tickets.length;
32902
32992
  } else {
32903
32993
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -32939,14 +33029,14 @@ function Board({
32939
33029
  const toColumnId = located.columnId;
32940
33030
  const isCrossColumn = origin.fromColumnId !== toColumnId;
32941
33031
  const targetCol = items.find((c) => c.id === toColumnId);
32942
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _754 => _754.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _755 => _755.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33032
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _749 => _749.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _750 => _750.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
32943
33033
  setItems(columns);
32944
33034
  return;
32945
33035
  }
32946
33036
  let finalIndex = located.index;
32947
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _756 => _756.find, 'call', _757 => _757((c) => c.id === toColumnId), 'optionalAccess', _758 => _758.tickets]), () => ( []));
33037
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _751 => _751.find, 'call', _752 => _752((c) => c.id === toColumnId), 'optionalAccess', _753 => _753.tickets]), () => ( []));
32948
33038
  const overData = over.data.current;
32949
- if (_optionalChain([overData, 'optionalAccess', _759 => _759.type]) === "ticket") {
33039
+ if (_optionalChain([overData, 'optionalAccess', _754 => _754.type]) === "ticket") {
32950
33040
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
32951
33041
  if (overIndex >= 0 && overIndex !== located.index) {
32952
33042
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -32966,8 +33056,8 @@ function Board({
32966
33056
  ticketId: origin.ticketId,
32967
33057
  fromColumnId: origin.fromColumnId,
32968
33058
  toColumnId,
32969
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _760 => _760[finalIndex - 1], 'optionalAccess', _761 => _761.id]), () => ( null)),
32970
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _762 => _762[finalIndex + 1], 'optionalAccess', _763 => _763.id]), () => ( null))
33059
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _755 => _755[finalIndex - 1], 'optionalAccess', _756 => _756.id]), () => ( null)),
33060
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _757 => _757[finalIndex + 1], 'optionalAccess', _758 => _758.id]), () => ( null))
32971
33061
  });
32972
33062
  };
32973
33063
  const handleDragCancel = () => {
@@ -32989,8 +33079,8 @@ function Board({
32989
33079
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex h-full overflow-x-auto", className), children: items.map((column, i) => {
32990
33080
  const prev = items[i - 1];
32991
33081
  const next = items[i + 1];
32992
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _764 => _764.system]));
32993
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _765 => _765.system]));
33082
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _759 => _759.system]));
33083
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _760 => _760.system]));
32994
33084
  const showGap = i > 0 && !joinLeft;
32995
33085
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React101.Fragment, { children: [
32996
33086
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33024,7 +33114,7 @@ function locate(cols, ticketId) {
33024
33114
  return null;
33025
33115
  }
33026
33116
  function findIndexInColumn(cols, columnId, ticketId) {
33027
- return _nullishCoalesce(_optionalChain([cols, 'access', _766 => _766.find, 'call', _767 => _767((c) => c.id === columnId), 'optionalAccess', _768 => _768.tickets, 'access', _769 => _769.findIndex, 'call', _770 => _770((t) => t.id === ticketId)]), () => ( -1));
33117
+ return _nullishCoalesce(_optionalChain([cols, 'access', _761 => _761.find, 'call', _762 => _762((c) => c.id === columnId), 'optionalAccess', _763 => _763.tickets, 'access', _764 => _764.findIndex, 'call', _765 => _765((t) => t.id === ticketId)]), () => ( -1));
33028
33118
  }
33029
33119
 
33030
33120
  // src/components/features/board/types.ts
@@ -33687,7 +33777,5 @@ function canonicalize(status) {
33687
33777
 
33688
33778
 
33689
33779
 
33690
-
33691
-
33692
- 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.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; 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.formatReleaseDate = formatReleaseDate; exports.formatRelativeTime = formatRelativeTime; exports.getDynamicIcon = getDynamicIcon; 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.ApprovalRequestMessage = ApprovalRequestMessage; exports.PulseDots = PulseDots; 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.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageListLoader = ChatMessageListLoader; exports.useDelayedFlag = useDelayedFlag; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; 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.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; 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.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OrganizationIcon = OrganizationIcon; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformBadge = PlatformBadge; 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.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; 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.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.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.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState2; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; 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.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; 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.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.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; 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.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; 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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
33693
- //# sourceMappingURL=chunk-L5AAJ3QN.cjs.map
33780
+ 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.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; 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.formatReleaseDate = formatReleaseDate; exports.formatRelativeTime = formatRelativeTime; exports.getDynamicIcon = getDynamicIcon; 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.ApprovalRequestMessage = ApprovalRequestMessage; exports.PulseDots = PulseDots; 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.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; 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.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; 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.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OrganizationIcon = OrganizationIcon; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformBadge = PlatformBadge; 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.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; 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.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.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.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState2; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; 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.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; 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.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.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; 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.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; 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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
33781
+ //# sourceMappingURL=chunk-IWMK4MH4.cjs.map