@flamingo-stack/openframe-frontend-core 0.0.195 → 0.0.197

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 (71) hide show
  1. package/dist/chunk-4CWSZPXH.cjs.map +1 -1
  2. package/dist/{chunk-PJ5KFD2V.js → chunk-4ML3NA2L.js} +75 -1
  3. package/dist/{chunk-PJ5KFD2V.js.map → chunk-4ML3NA2L.js.map} +1 -1
  4. package/dist/{chunk-U6AJSRJP.js → chunk-GIQZAYY5.js} +731 -365
  5. package/dist/chunk-GIQZAYY5.js.map +1 -0
  6. package/dist/{chunk-IQM3G2I6.cjs → chunk-IMDXOVYD.cjs} +777 -411
  7. package/dist/chunk-IMDXOVYD.cjs.map +1 -0
  8. package/dist/{chunk-CVMSC7M4.cjs → chunk-OII2IERE.cjs} +77 -3
  9. package/dist/chunk-OII2IERE.cjs.map +1 -0
  10. package/dist/chunk-UC43NICZ.cjs.map +1 -1
  11. package/dist/chunk-V2FNIPZJ.cjs.map +1 -1
  12. package/dist/chunk-VJTFBYVG.cjs.map +1 -1
  13. package/dist/chunk-VRHGVLSL.cjs.map +1 -1
  14. package/dist/chunk-WZW7C7TF.cjs.map +1 -1
  15. package/dist/chunk-XQFFGR6U.cjs.map +1 -1
  16. package/dist/components/chart.d.ts +7 -14
  17. package/dist/components/chart.d.ts.map +1 -1
  18. package/dist/components/chat/hooks/index.d.ts +1 -0
  19. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  20. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +15 -0
  21. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -0
  22. package/dist/components/chat/types/api.types.d.ts +43 -0
  23. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  24. package/dist/components/chat/types/network.types.d.ts +4 -0
  25. package/dist/components/chat/types/network.types.d.ts.map +1 -1
  26. package/dist/components/features/board/ticket-card-skeleton.d.ts.map +1 -1
  27. package/dist/components/features/board/ticket-card.d.ts.map +1 -1
  28. package/dist/components/features/index.cjs +3 -3
  29. package/dist/components/features/index.cjs.map +1 -1
  30. package/dist/components/features/index.js +2 -2
  31. package/dist/components/icons/index.cjs.map +1 -1
  32. package/dist/components/icons-v2-generated/index.cjs.map +1 -1
  33. package/dist/components/index.cjs +5 -3
  34. package/dist/components/index.cjs.map +1 -1
  35. package/dist/components/index.js +4 -2
  36. package/dist/components/navigation/index.cjs +3 -3
  37. package/dist/components/navigation/index.cjs.map +1 -1
  38. package/dist/components/navigation/index.js +2 -2
  39. package/dist/components/resizable.d.ts +1 -1
  40. package/dist/components/toast/index.cjs.map +1 -1
  41. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  42. package/dist/components/ui/index.cjs +5 -3
  43. package/dist/components/ui/index.cjs.map +1 -1
  44. package/dist/components/ui/index.js +4 -2
  45. package/dist/hooks/index.cjs +2 -2
  46. package/dist/hooks/index.cjs.map +1 -1
  47. package/dist/hooks/index.js +1 -1
  48. package/dist/index.cjs +5 -3
  49. package/dist/index.cjs.map +1 -1
  50. package/dist/index.js +4 -2
  51. package/dist/nats/index.cjs +73 -0
  52. package/dist/nats/index.cjs.map +1 -1
  53. package/dist/nats/index.js +73 -0
  54. package/dist/nats/index.js.map +1 -1
  55. package/dist/nats/nats.d.ts +22 -1
  56. package/dist/nats/nats.d.ts.map +1 -1
  57. package/dist/tailwind.config.cjs +7 -7
  58. package/dist/tailwind.config.cjs.map +1 -1
  59. package/dist/tailwind.config.js +7 -7
  60. package/dist/tailwind.config.js.map +1 -1
  61. package/package.json +1 -1
  62. package/src/components/chat/hooks/index.ts +1 -0
  63. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +474 -0
  64. package/src/components/chat/types/api.types.ts +45 -0
  65. package/src/components/chat/types/network.types.ts +4 -0
  66. package/src/components/features/board/ticket-card-skeleton.tsx +16 -4
  67. package/src/components/features/board/ticket-card.tsx +6 -4
  68. package/src/nats/nats.ts +117 -0
  69. package/dist/chunk-CVMSC7M4.cjs.map +0 -1
  70. package/dist/chunk-IQM3G2I6.cjs.map +0 -1
  71. package/dist/chunk-U6AJSRJP.js.map +0 -1
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- var _chunkCVMSC7M4cjs = require('./chunk-CVMSC7M4.cjs');
19
+ var _chunkOII2IEREcjs = require('./chunk-OII2IERE.cjs');
20
20
 
21
21
 
22
22
 
@@ -784,7 +784,7 @@ function AutocompleteInner(props, ref) {
784
784
  }, [valueArray, options]);
785
785
  const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
786
786
  const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
787
- const autoLimitTags = _chunkCVMSC7M4cjs.useAutoLimitTags.call(void 0, {
787
+ const autoLimitTags = _chunkOII2IEREcjs.useAutoLimitTags.call(void 0, {
788
788
  count: multiple ? selectedOptions.length : 0,
789
789
  limitTags: multiple ? limitTagsProp : 0,
790
790
  placeholder: inputPlaceholder
@@ -2731,7 +2731,7 @@ function toToolLabel(input) {
2731
2731
  if (!input) return "";
2732
2732
  const toolType = normalizeToolType(input);
2733
2733
  if (toolType) {
2734
- return _chunkCVMSC7M4cjs.toolLabels[toolType];
2734
+ return _chunkOII2IEREcjs.toolLabels[toolType];
2735
2735
  }
2736
2736
  return input;
2737
2737
  }
@@ -2742,7 +2742,7 @@ function getToolTypeAliases(toolType) {
2742
2742
  return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
2743
2743
  }
2744
2744
  function getToolLabel(toolType) {
2745
- return _chunkCVMSC7M4cjs.toolLabels[toolType] || toolType;
2745
+ return _chunkOII2IEREcjs.toolLabels[toolType] || toolType;
2746
2746
  }
2747
2747
 
2748
2748
  // src/types/shell.types.ts
@@ -3316,7 +3316,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
3316
3316
  onClick: onToggle,
3317
3317
  className: "flex gap-2 items-start w-full p-3 cursor-pointer text-left",
3318
3318
  children: [
3319
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCVMSC7M4cjs.ToolIcon, { toolType, size: 16 }) }),
3319
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOII2IEREcjs.ToolIcon, { toolType, size: 16 }) }),
3320
3320
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3321
3321
  "div",
3322
3322
  {
@@ -5024,7 +5024,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5024
5024
  className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
5025
5025
  onClick: () => setExpanded((prev) => !prev),
5026
5026
  children: [
5027
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCVMSC7M4cjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
5027
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOII2IEREcjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
5028
5028
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5029
5029
  "div",
5030
5030
  {
@@ -6236,7 +6236,7 @@ var RATIO_TO_CSS_ASPECT = {
6236
6236
  landscape: "16 / 9"
6237
6237
  };
6238
6238
  function LazyBite({ ratio, children }) {
6239
- const { ref, isNear } = _chunkCVMSC7M4cjs.useNearViewport.call(void 0, "500px");
6239
+ const { ref, isNear } = _chunkOII2IEREcjs.useNearViewport.call(void 0, "500px");
6240
6240
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, style: { aspectRatio: RATIO_TO_CSS_ASPECT[ratio] }, children: isNear ? children : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full h-full bg-ods-card rounded-md" }) });
6241
6241
  }
6242
6242
  function VideoBitesDisplay({
@@ -7245,9 +7245,361 @@ function useChunkCatchup({
7245
7245
  };
7246
7246
  }
7247
7247
 
7248
- // src/components/chat/hooks/use-nats-dialog-subscription.ts
7248
+ // src/components/chat/hooks/use-jetstream-dialog-subscription.ts
7249
7249
 
7250
7250
  var shared = null;
7251
+ var DEFAULT_INACTIVE_THRESHOLD_MS = 5 * 6e4;
7252
+ var DEFAULT_STREAM_NAME = "CHAT_CHUNKS";
7253
+ function useJetStreamDialogSubscription({
7254
+ enabled,
7255
+ dialogId,
7256
+ streamName = DEFAULT_STREAM_NAME,
7257
+ topic,
7258
+ optStartSeq,
7259
+ onEvent,
7260
+ onConnect,
7261
+ onDisconnect,
7262
+ onSubscribed,
7263
+ onBeforeReconnect,
7264
+ getNatsWsUrl,
7265
+ clientConfig = {},
7266
+ reconnectionBackoff,
7267
+ inactiveThresholdMs
7268
+ }) {
7269
+ const [isConnected, setIsConnected] = _react.useState.call(void 0, false);
7270
+ const [isSubscribed, setIsSubscribed] = _react.useState.call(void 0, false);
7271
+ const [reconnectionCount, setReconnectionCount] = _react.useState.call(void 0, 0);
7272
+ const [currentStreamSeq, setCurrentStreamSeq] = _react.useState.call(void 0, null);
7273
+ const clientRef = _react.useRef.call(void 0, null);
7274
+ const subscriptionRef = _react.useRef.call(void 0, null);
7275
+ const highestStreamSeqRef = _react.useRef.call(void 0, null);
7276
+ const onEventRef = _react.useRef.call(void 0, onEvent);
7277
+ _react.useEffect.call(void 0, () => {
7278
+ onEventRef.current = onEvent;
7279
+ }, [onEvent]);
7280
+ const onConnectRef = _react.useRef.call(void 0, onConnect);
7281
+ _react.useEffect.call(void 0, () => {
7282
+ onConnectRef.current = onConnect;
7283
+ }, [onConnect]);
7284
+ const onDisconnectRef = _react.useRef.call(void 0, onDisconnect);
7285
+ _react.useEffect.call(void 0, () => {
7286
+ onDisconnectRef.current = onDisconnect;
7287
+ }, [onDisconnect]);
7288
+ const onSubscribedRef = _react.useRef.call(void 0, onSubscribed);
7289
+ _react.useEffect.call(void 0, () => {
7290
+ onSubscribedRef.current = onSubscribed;
7291
+ }, [onSubscribed]);
7292
+ const onBeforeReconnectRef = _react.useRef.call(void 0, onBeforeReconnect);
7293
+ _react.useEffect.call(void 0, () => {
7294
+ onBeforeReconnectRef.current = onBeforeReconnect;
7295
+ }, [onBeforeReconnect]);
7296
+ const getNatsWsUrlRef = _react.useRef.call(void 0, getNatsWsUrl);
7297
+ _react.useEffect.call(void 0, () => {
7298
+ getNatsWsUrlRef.current = getNatsWsUrl;
7299
+ }, [getNatsWsUrl]);
7300
+ const reconnectionBackoffRef = _react.useRef.call(void 0, reconnectionBackoff);
7301
+ _react.useEffect.call(void 0, () => {
7302
+ reconnectionBackoffRef.current = reconnectionBackoff;
7303
+ }, [reconnectionBackoff]);
7304
+ const optStartSeqRef = _react.useRef.call(void 0, optStartSeq);
7305
+ _react.useEffect.call(void 0, () => {
7306
+ optStartSeqRef.current = optStartSeq;
7307
+ }, [optStartSeq]);
7308
+ const inactiveThresholdRef = _react.useRef.call(void 0, inactiveThresholdMs);
7309
+ _react.useEffect.call(void 0, () => {
7310
+ inactiveThresholdRef.current = inactiveThresholdMs;
7311
+ }, [inactiveThresholdMs]);
7312
+ const hadConnectionBeforeRef = _react.useRef.call(void 0, false);
7313
+ const acquireClient = _react.useCallback.call(void 0,
7314
+ (url) => {
7315
+ if (_optionalChain([shared, 'optionalAccess', _138 => _138.wsUrl]) !== url) {
7316
+ if (shared) {
7317
+ if (shared.closeTimer) clearTimeout(shared.closeTimer);
7318
+ const old = shared;
7319
+ shared = null;
7320
+ void old.client.close().catch(() => {
7321
+ });
7322
+ }
7323
+ const { name = "openframe-frontend-jetstream", user = "machine", pass = "" } = clientConfig;
7324
+ const client = _chunkOII2IEREcjs.createNatsClient.call(void 0, {
7325
+ servers: url,
7326
+ name,
7327
+ user,
7328
+ pass,
7329
+ connectTimeoutMs: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
7330
+ reconnect: false,
7331
+ pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
7332
+ maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
7333
+ });
7334
+ shared = {
7335
+ wsUrl: url,
7336
+ client,
7337
+ connectPromise: null,
7338
+ refCount: 0,
7339
+ closeTimer: null,
7340
+ retryTimer: null
7341
+ };
7342
+ }
7343
+ shared.refCount += 1;
7344
+ if (shared.closeTimer) {
7345
+ clearTimeout(shared.closeTimer);
7346
+ shared.closeTimer = null;
7347
+ }
7348
+ return shared;
7349
+ },
7350
+ [clientConfig]
7351
+ );
7352
+ const releaseClient = _react.useCallback.call(void 0, (url) => {
7353
+ if (!shared || shared.wsUrl !== url) return;
7354
+ shared.refCount = Math.max(0, shared.refCount - 1);
7355
+ if (shared.refCount > 0) return;
7356
+ shared.closeTimer = setTimeout(() => {
7357
+ const s = shared;
7358
+ shared = null;
7359
+ if (s) {
7360
+ if (s.retryTimer) {
7361
+ clearTimeout(s.retryTimer);
7362
+ s.retryTimer = null;
7363
+ }
7364
+ void s.client.close().catch(() => {
7365
+ });
7366
+ }
7367
+ }, NETWORK_CONFIG.SHARED_CLOSE_DELAY_MS);
7368
+ }, []);
7369
+ const currentWsUrlRef = _react.useRef.call(void 0, "");
7370
+ _react.useEffect.call(void 0, () => {
7371
+ const wsUrl = getNatsWsUrl();
7372
+ if (!enabled || !wsUrl) {
7373
+ if (currentWsUrlRef.current && clientRef.current) {
7374
+ releaseClient(currentWsUrlRef.current);
7375
+ clientRef.current = null;
7376
+ currentWsUrlRef.current = "";
7377
+ setIsConnected(false);
7378
+ }
7379
+ return;
7380
+ }
7381
+ if (wsUrl === currentWsUrlRef.current && clientRef.current && clientRef.current.isConnected()) {
7382
+ return;
7383
+ }
7384
+ if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
7385
+ releaseClient(currentWsUrlRef.current);
7386
+ clientRef.current = null;
7387
+ setIsConnected(false);
7388
+ }
7389
+ currentWsUrlRef.current = wsUrl;
7390
+ const sharedConn = acquireClient(wsUrl);
7391
+ const client = sharedConn.client;
7392
+ clientRef.current = client;
7393
+ setIsConnected(false);
7394
+ let closed = false;
7395
+ let retryAttempt = 0;
7396
+ function scheduleRetry() {
7397
+ if (closed) return;
7398
+ if (shared !== sharedConn) return;
7399
+ if (sharedConn.retryTimer) {
7400
+ clearTimeout(sharedConn.retryTimer);
7401
+ sharedConn.retryTimer = null;
7402
+ }
7403
+ const cfg = _nullishCoalesce(reconnectionBackoffRef.current, () => ( {}));
7404
+ const fastRetries = _nullishCoalesce(cfg.fastRetries, () => ( 0));
7405
+ const fastDelay = _nullishCoalesce(cfg.fastRetryDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
7406
+ const baseDelay = _nullishCoalesce(cfg.initialDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
7407
+ const maxDelay = _nullishCoalesce(cfg.maxDelayMs, () => ( NETWORK_CONFIG.RETRY_MAX_DELAY_MS));
7408
+ const multiplier = _nullishCoalesce(cfg.multiplier, () => ( NETWORK_CONFIG.RETRY_BACKOFF_MULTIPLIER));
7409
+ const delay2 = retryAttempt < fastRetries ? fastDelay : Math.min(baseDelay * multiplier ** (retryAttempt - fastRetries), maxDelay);
7410
+ const jitteredDelay = delay2 * (0.5 + Math.random() * 0.5);
7411
+ retryAttempt++;
7412
+ sharedConn.retryTimer = setTimeout(async () => {
7413
+ sharedConn.retryTimer = null;
7414
+ if (closed) return;
7415
+ if (shared !== sharedConn) return;
7416
+ try {
7417
+ await _optionalChain([onBeforeReconnectRef, 'access', _139 => _139.current, 'optionalCall', _140 => _140()]);
7418
+ } catch (e10) {
7419
+ }
7420
+ if (closed) return;
7421
+ if (shared !== sharedConn) return;
7422
+ const freshUrl = getNatsWsUrlRef.current();
7423
+ if (freshUrl !== wsUrl) return;
7424
+ try {
7425
+ sharedConn.connectPromise = null;
7426
+ sharedConn.connectPromise = client.connect();
7427
+ await sharedConn.connectPromise;
7428
+ if (!closed && shared === sharedConn) {
7429
+ retryAttempt = 0;
7430
+ setIsConnected(true);
7431
+ }
7432
+ } catch (e11) {
7433
+ sharedConn.connectPromise = null;
7434
+ if (!closed && shared === sharedConn) {
7435
+ scheduleRetry();
7436
+ }
7437
+ }
7438
+ }, jitteredDelay);
7439
+ }
7440
+ const unsubscribeStatus = client.onStatus((event) => {
7441
+ const connected = event.status === "connected";
7442
+ const disconnected = event.status === "closed" || event.status === "disconnected";
7443
+ if (connected) {
7444
+ setIsConnected(true);
7445
+ if (hadConnectionBeforeRef.current) {
7446
+ setReconnectionCount((c) => c + 1);
7447
+ }
7448
+ hadConnectionBeforeRef.current = true;
7449
+ retryAttempt = 0;
7450
+ _optionalChain([onConnectRef, 'access', _141 => _141.current, 'optionalCall', _142 => _142()]);
7451
+ }
7452
+ if (event.status === "error") {
7453
+ console.warn("[JetStream] NATS protocol error:", event.data);
7454
+ return;
7455
+ }
7456
+ if (disconnected) {
7457
+ setIsConnected(false);
7458
+ setIsSubscribed(false);
7459
+ if (subscriptionRef.current) {
7460
+ try {
7461
+ subscriptionRef.current.unsubscribe();
7462
+ } catch (e12) {
7463
+ }
7464
+ subscriptionRef.current = null;
7465
+ }
7466
+ _optionalChain([onDisconnectRef, 'access', _143 => _143.current, 'optionalCall', _144 => _144()]);
7467
+ scheduleRetry();
7468
+ }
7469
+ });
7470
+ (async () => {
7471
+ try {
7472
+ sharedConn.connectPromise || (sharedConn.connectPromise = client.connect());
7473
+ await sharedConn.connectPromise;
7474
+ if (!closed) {
7475
+ setIsConnected(true);
7476
+ hadConnectionBeforeRef.current = true;
7477
+ }
7478
+ } catch (e13) {
7479
+ sharedConn.connectPromise = null;
7480
+ if (!closed) {
7481
+ setIsConnected(false);
7482
+ _optionalChain([onDisconnectRef, 'access', _145 => _145.current, 'optionalCall', _146 => _146()]);
7483
+ scheduleRetry();
7484
+ }
7485
+ }
7486
+ })();
7487
+ return () => {
7488
+ closed = true;
7489
+ setIsConnected(false);
7490
+ setIsSubscribed(false);
7491
+ unsubscribeStatus();
7492
+ if (sharedConn.retryTimer) {
7493
+ clearTimeout(sharedConn.retryTimer);
7494
+ sharedConn.retryTimer = null;
7495
+ }
7496
+ if (subscriptionRef.current) {
7497
+ try {
7498
+ subscriptionRef.current.unsubscribe();
7499
+ } catch (e14) {
7500
+ }
7501
+ subscriptionRef.current = null;
7502
+ }
7503
+ if (clientRef.current && currentWsUrlRef.current) {
7504
+ releaseClient(currentWsUrlRef.current);
7505
+ clientRef.current = null;
7506
+ currentWsUrlRef.current = "";
7507
+ }
7508
+ };
7509
+ }, [enabled, getNatsWsUrl, acquireClient, releaseClient]);
7510
+ _react.useEffect.call(void 0, () => {
7511
+ if (!enabled || !dialogId || !isConnected) {
7512
+ if (subscriptionRef.current) {
7513
+ try {
7514
+ subscriptionRef.current.unsubscribe();
7515
+ } catch (e15) {
7516
+ }
7517
+ subscriptionRef.current = null;
7518
+ }
7519
+ setIsSubscribed(false);
7520
+ return;
7521
+ }
7522
+ const client = clientRef.current;
7523
+ if (!client) return;
7524
+ const abortController = new AbortController();
7525
+ const decoder = new TextDecoder();
7526
+ const filterSubject = `chat.${dialogId}.${topic}`;
7527
+ const resumeSeq = highestStreamSeqRef.current;
7528
+ const initialOptStart = optStartSeqRef.current;
7529
+ const startSeq = resumeSeq != null ? resumeSeq + 1 : initialOptStart != null ? initialOptStart + 1 : void 0;
7530
+ let cancelled = false;
7531
+ void (async () => {
7532
+ try {
7533
+ const handle = await client.subscribeJetStreamOrdered(
7534
+ (msg) => {
7535
+ if (cancelled) return;
7536
+ const streamSeq = msg.info.streamSequence;
7537
+ if (typeof streamSeq === "number") {
7538
+ if (highestStreamSeqRef.current == null || streamSeq > highestStreamSeqRef.current) {
7539
+ highestStreamSeqRef.current = streamSeq;
7540
+ setCurrentStreamSeq(streamSeq);
7541
+ }
7542
+ }
7543
+ const cb = onEventRef.current;
7544
+ if (!cb) return;
7545
+ try {
7546
+ const parsed = JSON.parse(decoder.decode(msg.data));
7547
+ if (typeof streamSeq === "number") {
7548
+ ;
7549
+ parsed.streamSeq = streamSeq;
7550
+ }
7551
+ cb(parsed, topic);
7552
+ } catch (e16) {
7553
+ }
7554
+ },
7555
+ {
7556
+ streamName,
7557
+ filterSubject,
7558
+ deliverPolicy: startSeq != null ? "byStartSequence" : "new",
7559
+ optStartSeq: startSeq,
7560
+ inactiveThresholdMs: _nullishCoalesce(inactiveThresholdRef.current, () => ( DEFAULT_INACTIVE_THRESHOLD_MS)),
7561
+ signal: abortController.signal
7562
+ }
7563
+ );
7564
+ if (cancelled) {
7565
+ try {
7566
+ handle.unsubscribe();
7567
+ } catch (e17) {
7568
+ }
7569
+ return;
7570
+ }
7571
+ subscriptionRef.current = handle;
7572
+ setIsSubscribed(true);
7573
+ _optionalChain([onSubscribedRef, 'access', _147 => _147.current, 'optionalCall', _148 => _148()]);
7574
+ } catch (e18) {
7575
+ if (!cancelled) {
7576
+ setIsSubscribed(false);
7577
+ }
7578
+ }
7579
+ })();
7580
+ return () => {
7581
+ cancelled = true;
7582
+ abortController.abort();
7583
+ if (subscriptionRef.current) {
7584
+ try {
7585
+ subscriptionRef.current.unsubscribe();
7586
+ } catch (e19) {
7587
+ }
7588
+ subscriptionRef.current = null;
7589
+ }
7590
+ setIsSubscribed(false);
7591
+ };
7592
+ }, [enabled, dialogId, isConnected, streamName, topic, reconnectionCount]);
7593
+ _react.useEffect.call(void 0, () => {
7594
+ highestStreamSeqRef.current = null;
7595
+ setCurrentStreamSeq(null);
7596
+ }, [dialogId]);
7597
+ return { isConnected, isSubscribed, reconnectionCount, currentStreamSeq };
7598
+ }
7599
+
7600
+ // src/components/chat/hooks/use-nats-dialog-subscription.ts
7601
+
7602
+ var shared2 = null;
7251
7603
  function useNatsDialogSubscription({
7252
7604
  enabled,
7253
7605
  dialogId,
@@ -7296,16 +7648,16 @@ function useNatsDialogSubscription({
7296
7648
  reconnectionBackoffRef.current = reconnectionBackoff;
7297
7649
  }, [reconnectionBackoff]);
7298
7650
  const acquireClient = _react.useCallback.call(void 0, (url) => {
7299
- if (_optionalChain([shared, 'optionalAccess', _138 => _138.wsUrl]) !== url) {
7300
- if (shared) {
7301
- shared.closeTimer && clearTimeout(shared.closeTimer);
7302
- const old = shared;
7303
- shared = null;
7651
+ if (_optionalChain([shared2, 'optionalAccess', _149 => _149.wsUrl]) !== url) {
7652
+ if (shared2) {
7653
+ shared2.closeTimer && clearTimeout(shared2.closeTimer);
7654
+ const old = shared2;
7655
+ shared2 = null;
7304
7656
  void old.client.close().catch(() => {
7305
7657
  });
7306
7658
  }
7307
7659
  const { name = "openframe-frontend", user = "machine", pass = "" } = clientConfig;
7308
- const client = _chunkCVMSC7M4cjs.createNatsClient.call(void 0, {
7660
+ const client = _chunkOII2IEREcjs.createNatsClient.call(void 0, {
7309
7661
  servers: url,
7310
7662
  name,
7311
7663
  user,
@@ -7315,20 +7667,20 @@ function useNatsDialogSubscription({
7315
7667
  pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
7316
7668
  maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
7317
7669
  });
7318
- shared = { wsUrl: url, client, connectPromise: null, refCount: 0, closeTimer: null, retryTimer: null };
7670
+ shared2 = { wsUrl: url, client, connectPromise: null, refCount: 0, closeTimer: null, retryTimer: null };
7319
7671
  }
7320
- shared.refCount += 1;
7321
- shared.closeTimer && clearTimeout(shared.closeTimer);
7322
- shared.closeTimer = null;
7323
- return shared;
7672
+ shared2.refCount += 1;
7673
+ shared2.closeTimer && clearTimeout(shared2.closeTimer);
7674
+ shared2.closeTimer = null;
7675
+ return shared2;
7324
7676
  }, [clientConfig]);
7325
7677
  const releaseClient = _react.useCallback.call(void 0, (url) => {
7326
- if (!shared || shared.wsUrl !== url) return;
7327
- shared.refCount = Math.max(0, shared.refCount - 1);
7328
- if (shared.refCount > 0) return;
7329
- shared.closeTimer = setTimeout(() => {
7330
- const s = shared;
7331
- shared = null;
7678
+ if (!shared2 || shared2.wsUrl !== url) return;
7679
+ shared2.refCount = Math.max(0, shared2.refCount - 1);
7680
+ if (shared2.refCount > 0) return;
7681
+ shared2.closeTimer = setTimeout(() => {
7682
+ const s = shared2;
7683
+ shared2 = null;
7332
7684
  if (s) {
7333
7685
  if (s.retryTimer) {
7334
7686
  clearTimeout(s.retryTimer);
@@ -7368,7 +7720,7 @@ function useNatsDialogSubscription({
7368
7720
  let retryAttempt = 0;
7369
7721
  function scheduleRetry() {
7370
7722
  if (closed) return;
7371
- if (shared !== sharedConn) return;
7723
+ if (shared2 !== sharedConn) return;
7372
7724
  if (sharedConn.retryTimer) {
7373
7725
  clearTimeout(sharedConn.retryTimer);
7374
7726
  sharedConn.retryTimer = null;
@@ -7385,26 +7737,26 @@ function useNatsDialogSubscription({
7385
7737
  sharedConn.retryTimer = setTimeout(async () => {
7386
7738
  sharedConn.retryTimer = null;
7387
7739
  if (closed) return;
7388
- if (shared !== sharedConn) return;
7740
+ if (shared2 !== sharedConn) return;
7389
7741
  try {
7390
- await _optionalChain([onBeforeReconnectRef, 'access', _139 => _139.current, 'optionalCall', _140 => _140()]);
7391
- } catch (e10) {
7742
+ await _optionalChain([onBeforeReconnectRef, 'access', _150 => _150.current, 'optionalCall', _151 => _151()]);
7743
+ } catch (e20) {
7392
7744
  }
7393
7745
  if (closed) return;
7394
- if (shared !== sharedConn) return;
7746
+ if (shared2 !== sharedConn) return;
7395
7747
  const freshUrl = getNatsWsUrlRef.current();
7396
7748
  if (freshUrl !== wsUrl) return;
7397
7749
  try {
7398
7750
  sharedConn.connectPromise = null;
7399
7751
  sharedConn.connectPromise = client.connect();
7400
7752
  await sharedConn.connectPromise;
7401
- if (!closed && shared === sharedConn) {
7753
+ if (!closed && shared2 === sharedConn) {
7402
7754
  retryAttempt = 0;
7403
7755
  setIsConnected(true);
7404
7756
  }
7405
- } catch (e11) {
7757
+ } catch (e21) {
7406
7758
  sharedConn.connectPromise = null;
7407
- if (!closed && shared === sharedConn) {
7759
+ if (!closed && shared2 === sharedConn) {
7408
7760
  scheduleRetry();
7409
7761
  }
7410
7762
  }
@@ -7420,22 +7772,22 @@ function useNatsDialogSubscription({
7420
7772
  }
7421
7773
  hadConnectionBeforeRef.current = true;
7422
7774
  retryAttempt = 0;
7423
- _optionalChain([onConnectRef, 'access', _141 => _141.current, 'optionalCall', _142 => _142()]);
7775
+ _optionalChain([onConnectRef, 'access', _152 => _152.current, 'optionalCall', _153 => _153()]);
7424
7776
  }
7425
7777
  if (disconnected) {
7426
7778
  setIsConnected(false);
7427
7779
  setIsSubscribed(false);
7428
7780
  subscriptionRefs.current.forEach((sub) => {
7429
7781
  try {
7430
- _optionalChain([sub, 'optionalAccess', _143 => _143.unsubscribe, 'call', _144 => _144()]);
7431
- } catch (e12) {
7782
+ _optionalChain([sub, 'optionalAccess', _154 => _154.unsubscribe, 'call', _155 => _155()]);
7783
+ } catch (e22) {
7432
7784
  }
7433
7785
  });
7434
7786
  subscriptionRefs.current.clear();
7435
7787
  lastSubscribedDialogIdRef.current = null;
7436
- _optionalChain([abortControllerRef, 'access', _145 => _145.current, 'optionalAccess', _146 => _146.abort, 'call', _147 => _147()]);
7788
+ _optionalChain([abortControllerRef, 'access', _156 => _156.current, 'optionalAccess', _157 => _157.abort, 'call', _158 => _158()]);
7437
7789
  abortControllerRef.current = null;
7438
- _optionalChain([onDisconnectRef, 'access', _148 => _148.current, 'optionalCall', _149 => _149()]);
7790
+ _optionalChain([onDisconnectRef, 'access', _159 => _159.current, 'optionalCall', _160 => _160()]);
7439
7791
  scheduleRetry();
7440
7792
  }
7441
7793
  });
@@ -7447,11 +7799,11 @@ function useNatsDialogSubscription({
7447
7799
  setIsConnected(true);
7448
7800
  hadConnectionBeforeRef.current = true;
7449
7801
  }
7450
- } catch (e13) {
7802
+ } catch (e23) {
7451
7803
  sharedConn.connectPromise = null;
7452
7804
  if (!closed) {
7453
7805
  setIsConnected(false);
7454
- _optionalChain([onDisconnectRef, 'access', _150 => _150.current, 'optionalCall', _151 => _151()]);
7806
+ _optionalChain([onDisconnectRef, 'access', _161 => _161.current, 'optionalCall', _162 => _162()]);
7455
7807
  scheduleRetry();
7456
7808
  }
7457
7809
  }
@@ -7467,8 +7819,8 @@ function useNatsDialogSubscription({
7467
7819
  }
7468
7820
  subscriptionRefs.current.forEach((sub) => {
7469
7821
  try {
7470
- _optionalChain([sub, 'optionalAccess', _152 => _152.unsubscribe, 'call', _153 => _153()]);
7471
- } catch (e14) {
7822
+ _optionalChain([sub, 'optionalAccess', _163 => _163.unsubscribe, 'call', _164 => _164()]);
7823
+ } catch (e24) {
7472
7824
  }
7473
7825
  });
7474
7826
  subscriptionRefs.current.clear();
@@ -7495,13 +7847,13 @@ function useNatsDialogSubscription({
7495
7847
  setIsSubscribed(false);
7496
7848
  subscriptionRefs.current.forEach((sub) => {
7497
7849
  try {
7498
- _optionalChain([sub, 'optionalAccess', _154 => _154.unsubscribe, 'call', _155 => _155()]);
7499
- } catch (e15) {
7850
+ _optionalChain([sub, 'optionalAccess', _165 => _165.unsubscribe, 'call', _166 => _166()]);
7851
+ } catch (e25) {
7500
7852
  }
7501
7853
  });
7502
7854
  subscriptionRefs.current.clear();
7503
7855
  lastSubscribedDialogIdRef.current = null;
7504
- _optionalChain([abortControllerRef, 'access', _156 => _156.current, 'optionalAccess', _157 => _157.abort, 'call', _158 => _158()]);
7856
+ _optionalChain([abortControllerRef, 'access', _167 => _167.current, 'optionalAccess', _168 => _168.abort, 'call', _169 => _169()]);
7505
7857
  abortControllerRef.current = null;
7506
7858
  }
7507
7859
  return;
@@ -7513,12 +7865,12 @@ function useNatsDialogSubscription({
7513
7865
  if (subscriptionRefs.current.size > 0) {
7514
7866
  subscriptionRefs.current.forEach((sub) => {
7515
7867
  try {
7516
- _optionalChain([sub, 'optionalAccess', _159 => _159.unsubscribe, 'call', _160 => _160()]);
7517
- } catch (e16) {
7868
+ _optionalChain([sub, 'optionalAccess', _170 => _170.unsubscribe, 'call', _171 => _171()]);
7869
+ } catch (e26) {
7518
7870
  }
7519
7871
  });
7520
7872
  subscriptionRefs.current.clear();
7521
- _optionalChain([abortControllerRef, 'access', _161 => _161.current, 'optionalAccess', _162 => _162.abort, 'call', _163 => _163()]);
7873
+ _optionalChain([abortControllerRef, 'access', _172 => _172.current, 'optionalAccess', _173 => _173.abort, 'call', _174 => _174()]);
7522
7874
  }
7523
7875
  abortControllerRef.current = new AbortController();
7524
7876
  const abort = abortControllerRef.current;
@@ -7537,7 +7889,7 @@ function useNatsDialogSubscription({
7537
7889
  const dataStr = decoder.decode(msg.data);
7538
7890
  const parsed = JSON.parse(dataStr);
7539
7891
  onEventRef.current(parsed, messageType);
7540
- } catch (e17) {
7892
+ } catch (e27) {
7541
7893
  }
7542
7894
  };
7543
7895
  topics.forEach((topic) => {
@@ -7550,7 +7902,7 @@ function useNatsDialogSubscription({
7550
7902
  });
7551
7903
  lastSubscribedDialogIdRef.current = dialogId;
7552
7904
  setIsSubscribed(true);
7553
- _optionalChain([onSubscribedRef, 'access', _164 => _164.current, 'optionalCall', _165 => _165()]);
7905
+ _optionalChain([onSubscribedRef, 'access', _175 => _175.current, 'optionalCall', _176 => _176()]);
7554
7906
  };
7555
7907
  if (isConnectedRef.current) {
7556
7908
  createSubscriptions();
@@ -7560,8 +7912,8 @@ function useNatsDialogSubscription({
7560
7912
  abort.abort();
7561
7913
  subscriptionRefs.current.forEach((sub) => {
7562
7914
  try {
7563
- _optionalChain([sub, 'optionalAccess', _166 => _166.unsubscribe, 'call', _167 => _167()]);
7564
- } catch (e18) {
7915
+ _optionalChain([sub, 'optionalAccess', _177 => _177.unsubscribe, 'call', _178 => _178()]);
7916
+ } catch (e28) {
7565
7917
  }
7566
7918
  });
7567
7919
  subscriptionRefs.current.clear();
@@ -7588,7 +7940,7 @@ function useNatsDialogSubscription({
7588
7940
  const dataStr = decoder.decode(msg.data);
7589
7941
  const parsed = JSON.parse(dataStr);
7590
7942
  onEventRef.current(parsed, messageType);
7591
- } catch (e19) {
7943
+ } catch (e29) {
7592
7944
  }
7593
7945
  };
7594
7946
  topics.forEach((topic) => {
@@ -7601,7 +7953,7 @@ function useNatsDialogSubscription({
7601
7953
  });
7602
7954
  lastSubscribedDialogIdRef.current = dialogId2;
7603
7955
  setIsSubscribed(true);
7604
- _optionalChain([onSubscribedRef, 'access', _168 => _168.current, 'optionalCall', _169 => _169()]);
7956
+ _optionalChain([onSubscribedRef, 'access', _179 => _179.current, 'optionalCall', _180 => _180()]);
7605
7957
  } else if (subscriptionRefs.current.size > 0) {
7606
7958
  setIsSubscribed(true);
7607
7959
  }
@@ -7609,10 +7961,10 @@ function useNatsDialogSubscription({
7609
7961
  return { isConnected, isSubscribed, reconnectionCount };
7610
7962
  }
7611
7963
  function buildNatsWsUrl(apiBaseUrl, options) {
7612
- const path = _optionalChain([options, 'optionalAccess', _170 => _170.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
7964
+ const path = _optionalChain([options, 'optionalAccess', _181 => _181.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
7613
7965
  const u = new URL(path, apiBaseUrl);
7614
7966
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
7615
- if (_optionalChain([options, 'optionalAccess', _171 => _171.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _172 => _172.token])) {
7967
+ if (_optionalChain([options, 'optionalAccess', _182 => _182.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _183 => _183.token])) {
7616
7968
  u.searchParams.set("authorization", options.token);
7617
7969
  }
7618
7970
  return u.toString();
@@ -7928,8 +8280,8 @@ var MessageSegmentAccumulator = class {
7928
8280
  type: "tool_execution",
7929
8281
  data: {
7930
8282
  ...toolData,
7931
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _173 => _173.data, 'access', _174 => _174.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _175 => _175.toolTitle]))),
7932
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _176 => _176.parameters])
8283
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _184 => _184.data, 'access', _185 => _185.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _186 => _186.toolTitle]))),
8284
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _187 => _187.parameters])
7933
8285
  }
7934
8286
  };
7935
8287
  if (existingIndex !== -1) {
@@ -7953,8 +8305,8 @@ var MessageSegmentAccumulator = class {
7953
8305
  if (seg.type !== "approval_batch") return seg;
7954
8306
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
7955
8307
  if (!hasCall) return seg;
7956
- const prev = _optionalChain([seg, 'access', _177 => _177.data, 'access', _178 => _178.executions, 'optionalAccess', _179 => _179[execId]]);
7957
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _180 => _180.result]), success: _optionalChain([prev, 'optionalAccess', _181 => _181.success]) };
8308
+ const prev = _optionalChain([seg, 'access', _188 => _188.data, 'access', _189 => _189.executions, 'optionalAccess', _190 => _190[execId]]);
8309
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _191 => _191.result]), success: _optionalChain([prev, 'optionalAccess', _192 => _192.success]) };
7958
8310
  matched = true;
7959
8311
  return {
7960
8312
  ...seg,
@@ -8074,10 +8426,10 @@ var MessageSegmentAccumulator = class {
8074
8426
  const segment = {
8075
8427
  type: "approval_request",
8076
8428
  data: {
8077
- command: _optionalChain([pendingApproval, 'optionalAccess', _182 => _182.command]) || "",
8078
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _183 => _183.explanation]),
8429
+ command: _optionalChain([pendingApproval, 'optionalAccess', _193 => _193.command]) || "",
8430
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _194 => _194.explanation]),
8079
8431
  requestId,
8080
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _184 => _184.approvalType]) || approvalType
8432
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _195 => _195.approvalType]) || approvalType
8081
8433
  },
8082
8434
  status,
8083
8435
  onApprove: this.callbacks.onApprove,
@@ -8265,7 +8617,7 @@ function useRealtimeChunkProcessor(options) {
8265
8617
  if (initialState.escalatedApprovals) {
8266
8618
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
8267
8619
  initialState.escalatedApprovals.forEach((data, requestId) => {
8268
- _optionalChain([callbacks, 'access', _185 => _185.onEscalatedApproval, 'optionalCall', _186 => _186(requestId, data)]);
8620
+ _optionalChain([callbacks, 'access', _196 => _196.onEscalatedApproval, 'optionalCall', _197 => _197(requestId, data)]);
8269
8621
  });
8270
8622
  }
8271
8623
  hasInitializedWithData.current = true;
@@ -8284,30 +8636,30 @@ function useRealtimeChunkProcessor(options) {
8284
8636
  switch (action.action) {
8285
8637
  case "message_start":
8286
8638
  isInStreamRef.current = true;
8287
- _optionalChain([callbacks, 'access', _187 => _187.onStreamStart, 'optionalCall', _188 => _188()]);
8639
+ _optionalChain([callbacks, 'access', _198 => _198.onStreamStart, 'optionalCall', _199 => _199()]);
8288
8640
  accumulator.resetSegments();
8289
8641
  break;
8290
8642
  case "message_end":
8291
8643
  isInStreamRef.current = false;
8292
- _optionalChain([callbacks, 'access', _189 => _189.onStreamEnd, 'optionalCall', _190 => _190()]);
8644
+ _optionalChain([callbacks, 'access', _200 => _200.onStreamEnd, 'optionalCall', _201 => _201()]);
8293
8645
  accumulator.resetSegments();
8294
8646
  break;
8295
8647
  case "metadata":
8296
- _optionalChain([callbacks, 'access', _191 => _191.onMetadata, 'optionalCall', _192 => _192(action)]);
8648
+ _optionalChain([callbacks, 'access', _202 => _202.onMetadata, 'optionalCall', _203 => _203(action)]);
8297
8649
  break;
8298
8650
  case "text": {
8299
8651
  const segments = accumulator.appendText(action.text);
8300
- _optionalChain([callbacks, 'access', _193 => _193.onSegmentsUpdate, 'optionalCall', _194 => _194(segments)]);
8652
+ _optionalChain([callbacks, 'access', _204 => _204.onSegmentsUpdate, 'optionalCall', _205 => _205(segments)]);
8301
8653
  break;
8302
8654
  }
8303
8655
  case "thinking": {
8304
8656
  const segments = accumulator.appendThinking(action.text);
8305
- _optionalChain([callbacks, 'access', _195 => _195.onSegmentsUpdate, 'optionalCall', _196 => _196(segments)]);
8657
+ _optionalChain([callbacks, 'access', _206 => _206.onSegmentsUpdate, 'optionalCall', _207 => _207(segments)]);
8306
8658
  break;
8307
8659
  }
8308
8660
  case "tool_execution": {
8309
8661
  const segments = accumulator.addToolExecution(action.segment);
8310
- _optionalChain([callbacks, 'access', _197 => _197.onSegmentsUpdate, 'optionalCall', _198 => _198(segments)]);
8662
+ _optionalChain([callbacks, 'access', _208 => _208.onSegmentsUpdate, 'optionalCall', _209 => _209(segments)]);
8311
8663
  break;
8312
8664
  }
8313
8665
  case "approval_request": {
@@ -8321,10 +8673,10 @@ function useRealtimeChunkProcessor(options) {
8321
8673
  approvalType,
8322
8674
  status
8323
8675
  );
8324
- _optionalChain([callbacks, 'access', _199 => _199.onSegmentsUpdate, 'optionalCall', _200 => _200(segments)]);
8676
+ _optionalChain([callbacks, 'access', _210 => _210.onSegmentsUpdate, 'optionalCall', _211 => _211(segments)]);
8325
8677
  } else {
8326
8678
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
8327
- _optionalChain([callbacks, 'access', _201 => _201.onEscalatedApproval, 'optionalCall', _202 => _202(requestId, { command, explanation, approvalType })]);
8679
+ _optionalChain([callbacks, 'access', _212 => _212.onEscalatedApproval, 'optionalCall', _213 => _213(requestId, { command, explanation, approvalType })]);
8328
8680
  }
8329
8681
  break;
8330
8682
  }
@@ -8336,20 +8688,20 @@ function useRealtimeChunkProcessor(options) {
8336
8688
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
8337
8689
  pendingEscalatedRef.current.set(requestId, {
8338
8690
  command: summary,
8339
- explanation: _optionalChain([required, 'optionalAccess', _203 => _203.toolExplanation]),
8691
+ explanation: _optionalChain([required, 'optionalAccess', _214 => _214.toolExplanation]),
8340
8692
  approvalType,
8341
8693
  toolCalls
8342
8694
  });
8343
- _optionalChain([callbacks, 'access', _204 => _204.onEscalatedApproval, 'optionalCall', _205 => _205(requestId, {
8695
+ _optionalChain([callbacks, 'access', _215 => _215.onEscalatedApproval, 'optionalCall', _216 => _216(requestId, {
8344
8696
  command: summary,
8345
- explanation: _optionalChain([required, 'optionalAccess', _206 => _206.toolExplanation]),
8697
+ explanation: _optionalChain([required, 'optionalAccess', _217 => _217.toolExplanation]),
8346
8698
  approvalType
8347
8699
  })]);
8348
8700
  break;
8349
8701
  }
8350
8702
  if (batchApprovalsEnabled) {
8351
8703
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
8352
- _optionalChain([callbacks, 'access', _207 => _207.onSegmentsUpdate, 'optionalCall', _208 => _208(segments2)]);
8704
+ _optionalChain([callbacks, 'access', _218 => _218.onSegmentsUpdate, 'optionalCall', _219 => _219(segments2)]);
8353
8705
  break;
8354
8706
  }
8355
8707
  let segments = accumulator.getSegments();
@@ -8363,7 +8715,7 @@ function useRealtimeChunkProcessor(options) {
8363
8715
  status
8364
8716
  );
8365
8717
  }
8366
- _optionalChain([callbacks, 'access', _209 => _209.onSegmentsUpdate, 'optionalCall', _210 => _210(segments)]);
8718
+ _optionalChain([callbacks, 'access', _220 => _220.onSegmentsUpdate, 'optionalCall', _221 => _221(segments)]);
8367
8719
  break;
8368
8720
  }
8369
8721
  case "approval_result": {
@@ -8372,7 +8724,7 @@ function useRealtimeChunkProcessor(options) {
8372
8724
  const status = approved ? "approved" : "rejected";
8373
8725
  if (escalatedData) {
8374
8726
  pendingEscalatedRef.current.delete(requestId);
8375
- _optionalChain([callbacks, 'access', _211 => _211.onEscalatedApprovalResult, 'optionalCall', _212 => _212(requestId, approved, {
8727
+ _optionalChain([callbacks, 'access', _222 => _222.onEscalatedApprovalResult, 'optionalCall', _223 => _223(requestId, approved, {
8376
8728
  command: escalatedData.command,
8377
8729
  explanation: escalatedData.explanation,
8378
8730
  approvalType: escalatedData.approvalType
@@ -8385,7 +8737,7 @@ function useRealtimeChunkProcessor(options) {
8385
8737
  escalatedData.toolCalls,
8386
8738
  status
8387
8739
  );
8388
- _optionalChain([callbacks, 'access', _213 => _213.onSegmentsUpdate, 'optionalCall', _214 => _214(segments)]);
8740
+ _optionalChain([callbacks, 'access', _224 => _224.onSegmentsUpdate, 'optionalCall', _225 => _225(segments)]);
8389
8741
  } else {
8390
8742
  let segments = accumulator.getSegments();
8391
8743
  for (const call of escalatedData.toolCalls) {
@@ -8398,7 +8750,7 @@ function useRealtimeChunkProcessor(options) {
8398
8750
  status
8399
8751
  );
8400
8752
  }
8401
- _optionalChain([callbacks, 'access', _215 => _215.onSegmentsUpdate, 'optionalCall', _216 => _216(segments)]);
8753
+ _optionalChain([callbacks, 'access', _226 => _226.onSegmentsUpdate, 'optionalCall', _227 => _227(segments)]);
8402
8754
  }
8403
8755
  } else {
8404
8756
  const segments = accumulator.addApprovalRequest(
@@ -8408,63 +8760,63 @@ function useRealtimeChunkProcessor(options) {
8408
8760
  escalatedData.approvalType,
8409
8761
  status
8410
8762
  );
8411
- _optionalChain([callbacks, 'access', _217 => _217.onSegmentsUpdate, 'optionalCall', _218 => _218(segments)]);
8763
+ _optionalChain([callbacks, 'access', _228 => _228.onSegmentsUpdate, 'optionalCall', _229 => _229(segments)]);
8412
8764
  }
8413
8765
  } else {
8414
8766
  const segments = accumulator.updateApprovalStatus(requestId, status);
8415
- _optionalChain([callbacks, 'access', _219 => _219.onSegmentsUpdate, 'optionalCall', _220 => _220(segments)]);
8767
+ _optionalChain([callbacks, 'access', _230 => _230.onSegmentsUpdate, 'optionalCall', _231 => _231(segments)]);
8416
8768
  }
8417
8769
  void approvalType;
8418
8770
  break;
8419
8771
  }
8420
8772
  case "error": {
8421
8773
  let message;
8422
- if ("details" in action && _optionalChain([action, 'optionalAccess', _221 => _221.details])) {
8774
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _232 => _232.details])) {
8423
8775
  try {
8424
- message = _optionalChain([JSON, 'access', _222 => _222.parse, 'call', _223 => _223(action.details), 'optionalAccess', _224 => _224.error, 'optionalAccess', _225 => _225.message]);
8425
- } catch (e20) {
8776
+ message = _optionalChain([JSON, 'access', _233 => _233.parse, 'call', _234 => _234(action.details), 'optionalAccess', _235 => _235.error, 'optionalAccess', _236 => _236.message]);
8777
+ } catch (e30) {
8426
8778
  message = action.details;
8427
8779
  }
8428
8780
  }
8429
8781
  const segments = accumulator.addError(action.error, message);
8430
- _optionalChain([callbacks, 'access', _226 => _226.onSegmentsUpdate, 'optionalCall', _227 => _227(segments)]);
8431
- _optionalChain([callbacks, 'access', _228 => _228.onError, 'optionalCall', _229 => _229(action.error, message)]);
8782
+ _optionalChain([callbacks, 'access', _237 => _237.onSegmentsUpdate, 'optionalCall', _238 => _238(segments)]);
8783
+ _optionalChain([callbacks, 'access', _239 => _239.onError, 'optionalCall', _240 => _240(action.error, message)]);
8432
8784
  break;
8433
8785
  }
8434
8786
  case "system": {
8435
- _optionalChain([callbacks, 'access', _230 => _230.onSystemMessage, 'optionalCall', _231 => _231(action.text)]);
8787
+ _optionalChain([callbacks, 'access', _241 => _241.onSystemMessage, 'optionalCall', _242 => _242(action.text)]);
8436
8788
  break;
8437
8789
  }
8438
8790
  case "direct_message": {
8439
- _optionalChain([callbacks, 'access', _232 => _232.onDirectMessage, 'optionalCall', _233 => _233(action.text, {
8791
+ _optionalChain([callbacks, 'access', _243 => _243.onDirectMessage, 'optionalCall', _244 => _244(action.text, {
8440
8792
  ownerType: action.ownerType,
8441
8793
  displayName: action.displayName
8442
8794
  })]);
8443
8795
  break;
8444
8796
  }
8445
8797
  case "message_request":
8446
- _optionalChain([callbacks, 'access', _234 => _234.onUserMessage, 'optionalCall', _235 => _235(action.text, {
8798
+ _optionalChain([callbacks, 'access', _245 => _245.onUserMessage, 'optionalCall', _246 => _246(action.text, {
8447
8799
  ownerType: action.ownerType,
8448
8800
  displayName: action.displayName
8449
8801
  })]);
8450
8802
  break;
8451
8803
  case "token_usage":
8452
- _optionalChain([callbacks, 'access', _236 => _236.onTokenUsage, 'optionalCall', _237 => _237(action.data)]);
8804
+ _optionalChain([callbacks, 'access', _247 => _247.onTokenUsage, 'optionalCall', _248 => _248(action.data)]);
8453
8805
  break;
8454
8806
  case "context_compaction_start": {
8455
8807
  const standalone = !isInStreamRef.current;
8456
8808
  const segments = accumulator.addContextCompaction();
8457
- _optionalChain([callbacks, 'access', _238 => _238.onSegmentsUpdate, 'optionalCall', _239 => _239(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8809
+ _optionalChain([callbacks, 'access', _249 => _249.onSegmentsUpdate, 'optionalCall', _250 => _250(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8458
8810
  break;
8459
8811
  }
8460
8812
  case "context_compaction_end": {
8461
8813
  const standalone = !isInStreamRef.current;
8462
8814
  const segments = accumulator.completeContextCompaction(action.summary);
8463
- _optionalChain([callbacks, 'access', _240 => _240.onSegmentsUpdate, 'optionalCall', _241 => _241(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8815
+ _optionalChain([callbacks, 'access', _251 => _251.onSegmentsUpdate, 'optionalCall', _252 => _252(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8464
8816
  break;
8465
8817
  }
8466
8818
  case "dialog_closed":
8467
- _optionalChain([callbacks, 'access', _242 => _242.onDialogClosed, 'optionalCall', _243 => _243()]);
8819
+ _optionalChain([callbacks, 'access', _253 => _253.onDialogClosed, 'optionalCall', _254 => _254()]);
8468
8820
  break;
8469
8821
  default:
8470
8822
  break;
@@ -8500,12 +8852,12 @@ function useRealtimeChunkProcessor(options) {
8500
8852
 
8501
8853
  // src/components/chat/utils/process-historical-messages.ts
8502
8854
  function getOwnerDisplayName(owner) {
8503
- if (_optionalChain([owner, 'optionalAccess', _244 => _244.type]) === OWNER_TYPE.ADMIN && owner.user) {
8855
+ if (_optionalChain([owner, 'optionalAccess', _255 => _255.type]) === OWNER_TYPE.ADMIN && owner.user) {
8504
8856
  const { firstName, lastName } = owner.user;
8505
8857
  const name = [firstName, lastName].filter(Boolean).join(" ");
8506
8858
  if (name) return name;
8507
8859
  }
8508
- return _optionalChain([owner, 'optionalAccess', _245 => _245.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
8860
+ return _optionalChain([owner, 'optionalAccess', _256 => _256.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
8509
8861
  }
8510
8862
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
8511
8863
  messageDataArray.forEach((data) => {
@@ -8568,10 +8920,10 @@ function processHistoricalMessages(messages, options = {}) {
8568
8920
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
8569
8921
  return;
8570
8922
  }
8571
- const isUserMessage = _optionalChain([msg, 'access', _246 => _246.owner, 'optionalAccess', _247 => _247.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _248 => _248.owner, 'optionalAccess', _249 => _249.type]) === OWNER_TYPE.ADMIN;
8923
+ const isUserMessage = _optionalChain([msg, 'access', _257 => _257.owner, 'optionalAccess', _258 => _258.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _259 => _259.owner, 'optionalAccess', _260 => _260.type]) === OWNER_TYPE.ADMIN;
8572
8924
  if (isUserMessage) {
8573
8925
  flushAssistantMessage();
8574
- const userAuthorType = _optionalChain([msg, 'access', _250 => _250.owner, 'optionalAccess', _251 => _251.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8926
+ const userAuthorType = _optionalChain([msg, 'access', _261 => _261.owner, 'optionalAccess', _262 => _262.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8575
8927
  messageDataArray.forEach((data) => {
8576
8928
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8577
8929
  processedMessages.push({
@@ -8595,7 +8947,7 @@ function processHistoricalMessages(messages, options = {}) {
8595
8947
  });
8596
8948
  const nextMsg = messages[index + 1];
8597
8949
  const isLastMessage = index === messages.length - 1;
8598
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _252 => _252.owner, 'optionalAccess', _253 => _253.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _254 => _254.owner, 'optionalAccess', _255 => _255.type]) === OWNER_TYPE.ADMIN);
8950
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _263 => _263.owner, 'optionalAccess', _264 => _264.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _265 => _265.owner, 'optionalAccess', _266 => _266.type]) === OWNER_TYPE.ADMIN);
8599
8951
  if (isLastMessage || nextIsFromUser) {
8600
8952
  flushAssistantMessage();
8601
8953
  }
@@ -8705,7 +9057,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8705
9057
  }
8706
9058
  }
8707
9059
  } else {
8708
- _optionalChain([escalatedApprovals, 'optionalAccess', _256 => _256.set, 'call', _257 => _257(data.approvalRequestId, {
9060
+ _optionalChain([escalatedApprovals, 'optionalAccess', _267 => _267.set, 'call', _268 => _268(data.approvalRequestId, {
8709
9061
  command: data.command || "",
8710
9062
  explanation: data.explanation,
8711
9063
  approvalType,
@@ -8718,8 +9070,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8718
9070
  if ("approvalRequestId" in data && data.approvalRequestId) {
8719
9071
  const existingStatus = approvalStatuses[data.approvalRequestId];
8720
9072
  const status = existingStatus || (data.approved ? "approved" : "rejected");
8721
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _258 => _258.get, 'call', _259 => _259(data.approvalRequestId)]);
8722
- if (_optionalChain([escalatedData, 'optionalAccess', _260 => _260.toolCalls]) && escalatedData.toolCalls.length > 0) {
9073
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _269 => _269.get, 'call', _270 => _270(data.approvalRequestId)]);
9074
+ if (_optionalChain([escalatedData, 'optionalAccess', _271 => _271.toolCalls]) && escalatedData.toolCalls.length > 0) {
8723
9075
  if (batchApprovalsEnabled) {
8724
9076
  accumulator.addApprovalBatch(
8725
9077
  data.approvalRequestId,
@@ -8739,7 +9091,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8739
9091
  );
8740
9092
  }
8741
9093
  }
8742
- _optionalChain([escalatedApprovals, 'optionalAccess', _261 => _261.delete, 'call', _262 => _262(data.approvalRequestId)]);
9094
+ _optionalChain([escalatedApprovals, 'optionalAccess', _272 => _272.delete, 'call', _273 => _273(data.approvalRequestId)]);
8743
9095
  break;
8744
9096
  }
8745
9097
  if (escalatedData) {
@@ -8748,7 +9100,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8748
9100
  explanation: escalatedData.explanation,
8749
9101
  approvalType: escalatedData.approvalType
8750
9102
  });
8751
- _optionalChain([escalatedApprovals, 'optionalAccess', _263 => _263.delete, 'call', _264 => _264(data.approvalRequestId)]);
9103
+ _optionalChain([escalatedApprovals, 'optionalAccess', _274 => _274.delete, 'call', _275 => _275(data.approvalRequestId)]);
8752
9104
  }
8753
9105
  const before = accumulator.getSegments();
8754
9106
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -8764,10 +9116,10 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8764
9116
  case MESSAGE_TYPE.ERROR:
8765
9117
  if ("error" in data) {
8766
9118
  let message;
8767
- if ("details" in data && _optionalChain([data, 'optionalAccess', _265 => _265.details])) {
9119
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _276 => _276.details])) {
8768
9120
  try {
8769
- message = _optionalChain([JSON, 'access', _266 => _266.parse, 'call', _267 => _267(data.details), 'optionalAccess', _268 => _268.error, 'optionalAccess', _269 => _269.message]);
8770
- } catch (e21) {
9121
+ message = _optionalChain([JSON, 'access', _277 => _277.parse, 'call', _278 => _278(data.details), 'optionalAccess', _279 => _279.error, 'optionalAccess', _280 => _280.message]);
9122
+ } catch (e31) {
8771
9123
  message = data.details;
8772
9124
  }
8773
9125
  }
@@ -8849,10 +9201,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8849
9201
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
8850
9202
  return;
8851
9203
  }
8852
- const isUserMessage = _optionalChain([msg, 'access', _270 => _270.owner, 'optionalAccess', _271 => _271.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _272 => _272.owner, 'optionalAccess', _273 => _273.type]) === OWNER_TYPE.ADMIN;
9204
+ const isUserMessage = _optionalChain([msg, 'access', _281 => _281.owner, 'optionalAccess', _282 => _282.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _283 => _283.owner, 'optionalAccess', _284 => _284.type]) === OWNER_TYPE.ADMIN;
8853
9205
  if (isUserMessage) {
8854
9206
  flushAssistantMessage();
8855
- const userAuthorType = _optionalChain([msg, 'access', _274 => _274.owner, 'optionalAccess', _275 => _275.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
9207
+ const userAuthorType = _optionalChain([msg, 'access', _285 => _285.owner, 'optionalAccess', _286 => _286.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8856
9208
  messageDataArray.forEach((data) => {
8857
9209
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8858
9210
  processedMessages.push({
@@ -8876,7 +9228,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8876
9228
  });
8877
9229
  const nextMsg = messages[index + 1];
8878
9230
  const isLastMessage = index === messages.length - 1;
8879
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _276 => _276.owner, 'optionalAccess', _277 => _277.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _278 => _278.owner, 'optionalAccess', _279 => _279.type]) === OWNER_TYPE.ADMIN);
9231
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _287 => _287.owner, 'optionalAccess', _288 => _288.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _289 => _289.owner, 'optionalAccess', _290 => _290.type]) === OWNER_TYPE.ADMIN);
8880
9232
  if (isLastMessage || nextIsFromUser) {
8881
9233
  flushAssistantMessage();
8882
9234
  }
@@ -8936,7 +9288,7 @@ function extractIncompleteMessageState(lastMessage) {
8936
9288
  break;
8937
9289
  case "approval_batch": {
8938
9290
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
8939
- (c) => _optionalChain([segment, 'access', _280 => _280.data, 'access', _281 => _281.executions, 'optionalAccess', _282 => _282[c.toolExecutionRequestId], 'optionalAccess', _283 => _283.status]) === "done"
9291
+ (c) => _optionalChain([segment, 'access', _291 => _291.data, 'access', _292 => _292.executions, 'optionalAccess', _293 => _293[c.toolExecutionRequestId], 'optionalAccess', _294 => _294.status]) === "done"
8940
9292
  );
8941
9293
  if (segment.status !== "rejected" && !allDone) {
8942
9294
  hasIncompleteState = true;
@@ -9098,7 +9450,7 @@ function Header({ config, platform }) {
9098
9450
  className: _chunkUC43NICZcjs.cn.call(void 0,
9099
9451
  "flex justify-start w-full",
9100
9452
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
9101
- index < (_nullishCoalesce(_optionalChain([item, 'access', _284 => _284.children, 'optionalAccess', _285 => _285.length]), () => ( 0))) - 1 && "mb-1",
9453
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _295 => _295.children, 'optionalAccess', _296 => _296.length]), () => ( 0))) - 1 && "mb-1",
9102
9454
  "text-ods-text-primary",
9103
9455
  // All dropdown items use primary text color
9104
9456
  child.isActive && "bg-ods-bg-hover"
@@ -9190,7 +9542,7 @@ function Header({ config, platform }) {
9190
9542
  style: config.style,
9191
9543
  children: [
9192
9544
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
9193
- _optionalChain([config, 'access', _286 => _286.actions, 'optionalAccess', _287 => _287.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
9545
+ _optionalChain([config, 'access', _297 => _297.actions, 'optionalAccess', _298 => _298.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
9194
9546
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
9195
9547
  ] }),
9196
9548
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -9207,7 +9559,7 @@ function Header({ config, platform }) {
9207
9559
  }
9208
9560
  ),
9209
9561
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
9210
- _optionalChain([config, 'access', _288 => _288.actions, 'optionalAccess', _289 => _289.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
9562
+ _optionalChain([config, 'access', _299 => _299.actions, 'optionalAccess', _300 => _300.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
9211
9563
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9212
9564
  _chunkV2FNIPZJcjs.Button,
9213
9565
  {
@@ -9215,10 +9567,10 @@ function Header({ config, platform }) {
9215
9567
  size: "icon",
9216
9568
  className: "flex md:hidden",
9217
9569
  onClick: () => {
9218
- _optionalChain([config, 'access', _290 => _290.mobile, 'optionalAccess', _291 => _291.onToggle, 'optionalCall', _292 => _292()]);
9570
+ _optionalChain([config, 'access', _301 => _301.mobile, 'optionalAccess', _302 => _302.onToggle, 'optionalCall', _303 => _303()]);
9219
9571
  },
9220
- "aria-label": _optionalChain([config, 'access', _293 => _293.mobile, 'optionalAccess', _294 => _294.isOpen]) ? "Close menu" : "Open menu",
9221
- leftIcon: _optionalChain([config, 'access', _295 => _295.mobile, 'optionalAccess', _296 => _296.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Menu01Icon, {})
9572
+ "aria-label": _optionalChain([config, 'access', _304 => _304.mobile, 'optionalAccess', _305 => _305.isOpen]) ? "Close menu" : "Open menu",
9573
+ leftIcon: _optionalChain([config, 'access', _306 => _306.mobile, 'optionalAccess', _307 => _307.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Menu01Icon, {})
9222
9574
  }
9223
9575
  )
9224
9576
  ] })
@@ -9235,10 +9587,10 @@ function Header({ config, platform }) {
9235
9587
  // src/components/navigation/header-skeleton.tsx
9236
9588
 
9237
9589
  function HeaderSkeleton({ config }) {
9238
- const showNavigation = _optionalChain([config, 'optionalAccess', _297 => _297.navigation]) && config.navigation.items.length > 0;
9239
- const showActions = _optionalChain([config, 'optionalAccess', _298 => _298.actions, 'optionalAccess', _299 => _299.right]) && config.actions.right.length > 0;
9240
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _300 => _300.mobile, 'optionalAccess', _301 => _301.enabled]);
9241
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _302 => _302.className, 'optionalAccess', _303 => _303.includes, 'call', _304 => _304("admin")]);
9590
+ const showNavigation = _optionalChain([config, 'optionalAccess', _308 => _308.navigation]) && config.navigation.items.length > 0;
9591
+ const showActions = _optionalChain([config, 'optionalAccess', _309 => _309.actions, 'optionalAccess', _310 => _310.right]) && config.actions.right.length > 0;
9592
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _311 => _311.mobile, 'optionalAccess', _312 => _312.enabled]);
9593
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _313 => _313.className, 'optionalAccess', _314 => _314.includes, 'call', _315 => _315("admin")]);
9242
9594
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9243
9595
  "header",
9244
9596
  {
@@ -9247,11 +9599,11 @@ function HeaderSkeleton({ config }) {
9247
9599
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
9248
9600
  "px-6 py-3",
9249
9601
  "transition-opacity duration-300 ease-in-out",
9250
- _optionalChain([config, 'optionalAccess', _305 => _305.className])
9602
+ _optionalChain([config, 'optionalAccess', _316 => _316.className])
9251
9603
  ),
9252
9604
  children: [
9253
9605
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
9254
- isAdminHeader && _optionalChain([config, 'optionalAccess', _306 => _306.actions, 'optionalAccess', _307 => _307.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" }) }),
9606
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _317 => _317.actions, 'optionalAccess', _318 => _318.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" }) }),
9255
9607
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
9256
9608
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
9257
9609
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -9259,8 +9611,8 @@ function HeaderSkeleton({ config }) {
9259
9611
  ] }),
9260
9612
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkUC43NICZcjs.cn.call(void 0,
9261
9613
  "hidden md:flex items-center gap-2",
9262
- _optionalChain([config, 'optionalAccess', _308 => _308.navigation, 'optionalAccess', _309 => _309.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
9263
- _optionalChain([config, 'optionalAccess', _310 => _310.navigation, 'optionalAccess', _311 => _311.position]) === "right" && "ml-auto mr-4"
9614
+ _optionalChain([config, 'optionalAccess', _319 => _319.navigation, 'optionalAccess', _320 => _320.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
9615
+ _optionalChain([config, 'optionalAccess', _321 => _321.navigation, 'optionalAccess', _322 => _322.position]) === "right" && "ml-auto mr-4"
9264
9616
  ), children: [
9265
9617
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
9266
9618
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -9308,7 +9660,7 @@ function MobileNavPanel({ isOpen, config }) {
9308
9660
  _react.useEffect.call(void 0, () => {
9309
9661
  const handleKeyDown = (e) => {
9310
9662
  if (e.key === "Escape" && isOpen) {
9311
- _optionalChain([config, 'access', _312 => _312.onClose, 'optionalCall', _313 => _313()]);
9663
+ _optionalChain([config, 'access', _323 => _323.onClose, 'optionalCall', _324 => _324()]);
9312
9664
  }
9313
9665
  };
9314
9666
  if (isOpen) {
@@ -9325,7 +9677,7 @@ function MobileNavPanel({ isOpen, config }) {
9325
9677
  if (item.onClick) {
9326
9678
  item.onClick();
9327
9679
  }
9328
- _optionalChain([config, 'access', _314 => _314.onClose, 'optionalCall', _315 => _315()]);
9680
+ _optionalChain([config, 'access', _325 => _325.onClose, 'optionalCall', _326 => _326()]);
9329
9681
  };
9330
9682
  if (item.href) {
9331
9683
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -9543,7 +9895,7 @@ function SlidingSidebar({ config }) {
9543
9895
  variant: "transparent",
9544
9896
  size: "default",
9545
9897
  onClick: () => {
9546
- _optionalChain([item, 'access', _316 => _316.onClick, 'optionalCall', _317 => _317()]);
9898
+ _optionalChain([item, 'access', _327 => _327.onClick, 'optionalCall', _328 => _328()]);
9547
9899
  config.onClose();
9548
9900
  },
9549
9901
  leftIcon: item.icon,
@@ -9566,7 +9918,7 @@ function SlidingSidebar({ config }) {
9566
9918
  variant: "transparent",
9567
9919
  size: "default",
9568
9920
  onClick: () => {
9569
- _optionalChain([item, 'access', _318 => _318.onClick, 'optionalCall', _319 => _319()]);
9921
+ _optionalChain([item, 'access', _329 => _329.onClick, 'optionalCall', _330 => _330()]);
9570
9922
  config.onClose();
9571
9923
  },
9572
9924
  leftIcon: item.icon,
@@ -9693,7 +10045,7 @@ function StickySectionNav({
9693
10045
  ] });
9694
10046
  }
9695
10047
  function useSectionNavigation(sections, options) {
9696
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _320 => _320[0], 'optionalAccess', _321 => _321.id]) || "");
10048
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _331 => _331[0], 'optionalAccess', _332 => _332.id]) || "");
9697
10049
  const isScrollingFromClick = _react.useRef.call(void 0, false);
9698
10050
  const { offset: offset2 = 100 } = options || {};
9699
10051
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -9718,7 +10070,7 @@ function useSectionNavigation(sections, options) {
9718
10070
  const handleScroll = () => {
9719
10071
  if (isScrollingFromClick.current) return;
9720
10072
  const scrollPosition = window.scrollY + offset2 + 50;
9721
- let currentSection = _optionalChain([sections, 'access', _322 => _322[0], 'optionalAccess', _323 => _323.id]) || "";
10073
+ let currentSection = _optionalChain([sections, 'access', _333 => _333[0], 'optionalAccess', _334 => _334.id]) || "";
9722
10074
  for (let i = sections.length - 1; i >= 0; i--) {
9723
10075
  const element = document.getElementById(sections[i].id);
9724
10076
  if (element && scrollPosition >= element.offsetTop) {
@@ -9892,8 +10244,8 @@ var MINIMIZED_WIDTH = 56;
9892
10244
  var EXPANDED_WIDTH = 224;
9893
10245
  var STORAGE_KEY = "of.navigationSidebar.minimized";
9894
10246
  function NavigationSidebar({ config, disabled = false }) {
9895
- const isLgUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useLgUp.call(void 0, ), () => ( false));
9896
- const [minimized, setMinimized] = _chunkCVMSC7M4cjs.useLocalStorage.call(void 0,
10247
+ const isLgUp = _nullishCoalesce(_chunkOII2IEREcjs.useLgUp.call(void 0, ), () => ( false));
10248
+ const [minimized, setMinimized] = _chunkOII2IEREcjs.useLocalStorage.call(void 0,
9897
10249
  STORAGE_KEY,
9898
10250
  !isLgUp || (_nullishCoalesce(config.minimized, () => ( false)))
9899
10251
  );
@@ -9902,14 +10254,14 @@ function NavigationSidebar({ config, disabled = false }) {
9902
10254
  const showLabel = isLgUp && !minimized;
9903
10255
  const handleToggle = _react.useCallback.call(void 0, () => {
9904
10256
  setMinimized((prev) => !prev);
9905
- _optionalChain([config, 'access', _324 => _324.onToggleMinimized, 'optionalCall', _325 => _325()]);
10257
+ _optionalChain([config, 'access', _335 => _335.onToggleMinimized, 'optionalCall', _336 => _336()]);
9906
10258
  }, [setMinimized, config]);
9907
10259
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
9908
- _optionalChain([event, 'optionalAccess', _326 => _326.stopPropagation, 'call', _327 => _327()]);
10260
+ _optionalChain([event, 'optionalAccess', _337 => _337.stopPropagation, 'call', _338 => _338()]);
9909
10261
  if (item.onClick) {
9910
10262
  item.onClick();
9911
10263
  } else if (item.path) {
9912
- _optionalChain([config, 'access', _328 => _328.onNavigate, 'optionalCall', _329 => _329(item.path)]);
10264
+ _optionalChain([config, 'access', _339 => _339.onNavigate, 'optionalCall', _340 => _340(item.path)]);
9913
10265
  }
9914
10266
  }, [config]);
9915
10267
  const { primaryItems, secondaryItems } = _react.useMemo.call(void 0, () => ({
@@ -10049,7 +10401,7 @@ function NotificationsProvider({
10049
10401
  const setShowPopups = React28.useCallback(
10050
10402
  (value2) => {
10051
10403
  setShowPopupsState(value2);
10052
- _optionalChain([onShowPopupsChange, 'optionalCall', _330 => _330(value2)]);
10404
+ _optionalChain([onShowPopupsChange, 'optionalCall', _341 => _341(value2)]);
10053
10405
  },
10054
10406
  [onShowPopupsChange]
10055
10407
  );
@@ -10154,11 +10506,11 @@ function HeaderGlobalSearch({
10154
10506
  };
10155
10507
  const handleSubmit = (e) => {
10156
10508
  e.preventDefault();
10157
- _optionalChain([onSubmit, 'optionalCall', _331 => _331(currentValue)]);
10509
+ _optionalChain([onSubmit, 'optionalCall', _342 => _342(currentValue)]);
10158
10510
  };
10159
10511
  const handleKeyDown = (e) => {
10160
10512
  if (e.key === "Enter") {
10161
- _optionalChain([onSubmit, 'optionalCall', _332 => _332(currentValue)]);
10513
+ _optionalChain([onSubmit, 'optionalCall', _343 => _343(currentValue)]);
10162
10514
  }
10163
10515
  };
10164
10516
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -10204,8 +10556,8 @@ function HeaderOrganizationFilter({
10204
10556
  className
10205
10557
  }) {
10206
10558
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
10207
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _333 => _333.name]) || "All Organizations";
10208
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _334 => _334.deviceCount]), () => ( totalDeviceCount));
10559
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _344 => _344.name]) || "All Organizations";
10560
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _345 => _345.deviceCount]), () => ( totalDeviceCount));
10209
10561
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV2FNIPZJcjs.DropdownMenu, { children: [
10210
10562
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10211
10563
  "button",
@@ -10230,11 +10582,11 @@ function HeaderOrganizationFilter({
10230
10582
  }
10231
10583
  ) }),
10232
10584
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV2FNIPZJcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
10233
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _335 => _335("")]), children: "All Organizations" }),
10585
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _346 => _346("")]), children: "All Organizations" }),
10234
10586
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10235
10587
  _chunkV2FNIPZJcjs.DropdownMenuItem,
10236
10588
  {
10237
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _336 => _336(org.id)]),
10589
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _347 => _347(org.id)]),
10238
10590
  children: org.name
10239
10591
  },
10240
10592
  org.id
@@ -10265,7 +10617,7 @@ var AppHeader = React37.default.memo(function AppHeader2({
10265
10617
  onToggleMobileMenu,
10266
10618
  disabled = false
10267
10619
  }) {
10268
- const isMdUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useMdUp.call(void 0, ), () => ( false));
10620
+ const isMdUp = _nullishCoalesce(_chunkOII2IEREcjs.useMdUp.call(void 0, ), () => ( false));
10269
10621
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
10270
10622
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10271
10623
  "header",
@@ -10406,9 +10758,9 @@ function NotificationsHeaderButton({
10406
10758
  dimmedClass
10407
10759
  }) {
10408
10760
  const ctx = useOptionalNotifications();
10409
- const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _337 => _337.unreadCount]), () => ( fallbackUnreadCount));
10410
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _338 => _338.isOpen]), () => ( false));
10411
- const onClick = _optionalChain([ctx, 'optionalAccess', _339 => _339.toggle]);
10761
+ const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _348 => _348.unreadCount]), () => ( fallbackUnreadCount));
10762
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _349 => _349.isOpen]), () => ( false));
10763
+ const onClick = _optionalChain([ctx, 'optionalAccess', _350 => _350.toggle]);
10412
10764
  const Icon2 = unreadCount > 0 ? _chunkVJTFBYVGcjs.BellRingingIcon : _chunkVJTFBYVGcjs.BellIcon;
10413
10765
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10414
10766
  HeaderButton,
@@ -10582,7 +10934,7 @@ var Switch = React32.forwardRef(({ className, checked, onCheckedChange, ...props
10582
10934
  }, [checked]);
10583
10935
  const handleCheckedChange = (newChecked) => {
10584
10936
  setIsChecked(newChecked);
10585
- _optionalChain([onCheckedChange, 'optionalCall', _340 => _340(newChecked)]);
10937
+ _optionalChain([onCheckedChange, 'optionalCall', _351 => _351(newChecked)]);
10586
10938
  };
10587
10939
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10588
10940
  SwitchPrimitives.Root,
@@ -10635,7 +10987,7 @@ function NotificationTile({
10635
10987
  if (!isLive) return;
10636
10988
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
10637
10989
  const timer = window.setTimeout(() => {
10638
- _optionalChain([onSettle, 'optionalCall', _341 => _341(id)]);
10990
+ _optionalChain([onSettle, 'optionalCall', _352 => _352(id)]);
10639
10991
  }, remaining);
10640
10992
  return () => window.clearTimeout(timer);
10641
10993
  }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
@@ -10648,7 +11000,7 @@ function NotificationTile({
10648
11000
  ),
10649
11001
  children: [
10650
11002
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
10651
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkUC43NICZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkCVMSC7M4cjs.dotColorByVariant[variant]) }) }),
11003
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkUC43NICZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkOII2IEREcjs.dotColorByVariant[variant]) }) }),
10652
11004
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
10653
11005
  title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h4 text-ods-text-primary", children: title }) : null,
10654
11006
  description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", children: description }) : null
@@ -10673,7 +11025,7 @@ function NotificationTile({
10673
11025
  "button",
10674
11026
  {
10675
11027
  type: "button",
10676
- onClick: () => _optionalChain([onSettle, 'optionalCall', _342 => _342(id)]),
11028
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _353 => _353(id)]),
10677
11029
  "aria-label": "Dismiss notification",
10678
11030
  tabIndex: isLive ? 0 : -1,
10679
11031
  className: _chunkUC43NICZcjs.cn.call(void 0,
@@ -10689,7 +11041,7 @@ function NotificationTile({
10689
11041
  "aria-hidden": true,
10690
11042
  className: _chunkUC43NICZcjs.cn.call(void 0,
10691
11043
  "absolute inset-x-0 -bottom-px h-1 origin-left",
10692
- _chunkCVMSC7M4cjs.progressColorByVariant[variant]
11044
+ _chunkOII2IEREcjs.progressColorByVariant[variant]
10693
11045
  ),
10694
11046
  style: {
10695
11047
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -10845,7 +11197,7 @@ var MobileBurgerMenu = React37.default.memo(function MobileBurgerMenu2({
10845
11197
  if (item.onClick) {
10846
11198
  item.onClick();
10847
11199
  } else if (item.path) {
10848
- _optionalChain([config, 'access', _343 => _343.onNavigate, 'optionalCall', _344 => _344(item.path)]);
11200
+ _optionalChain([config, 'access', _354 => _354.onNavigate, 'optionalCall', _355 => _355(item.path)]);
10849
11201
  }
10850
11202
  onClose();
10851
11203
  }, [config, onClose]);
@@ -11141,7 +11493,7 @@ var ToolBadge = ({
11141
11493
  }) => {
11142
11494
  const label = getToolLabel(toolType);
11143
11495
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
11144
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCVMSC7M4cjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
11496
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOII2IEREcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
11145
11497
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
11146
11498
  ] });
11147
11499
  };
@@ -11189,7 +11541,7 @@ var ShellTypeBadge = ({
11189
11541
  className,
11190
11542
  iconClassName
11191
11543
  }) => {
11192
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _345 => _345.toUpperCase, 'call', _346 => _346()]);
11544
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _356 => _356.toUpperCase, 'call', _357 => _357()]);
11193
11545
  const label = getShellLabel(normalizedType);
11194
11546
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
11195
11547
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -11561,7 +11913,7 @@ function getStoredAnnouncement(key) {
11561
11913
  if (typeof window !== "undefined") {
11562
11914
  try {
11563
11915
  return JSON.parse(localStorage.getItem(key) || "null");
11564
- } catch (e22) {
11916
+ } catch (e32) {
11565
11917
  return null;
11566
11918
  }
11567
11919
  }
@@ -11571,7 +11923,7 @@ function setStoredAnnouncement(key, value) {
11571
11923
  if (typeof window !== "undefined") {
11572
11924
  try {
11573
11925
  localStorage.setItem(key, JSON.stringify(value));
11574
- } catch (e23) {
11926
+ } catch (e33) {
11575
11927
  }
11576
11928
  }
11577
11929
  }
@@ -11579,7 +11931,7 @@ function clearStoredAnnouncement(key = "announcement") {
11579
11931
  if (typeof window !== "undefined") {
11580
11932
  try {
11581
11933
  localStorage.removeItem(key);
11582
- } catch (e24) {
11934
+ } catch (e34) {
11583
11935
  }
11584
11936
  }
11585
11937
  }
@@ -11646,7 +11998,7 @@ function AnnouncementBar() {
11646
11998
  setIsVisible(false);
11647
11999
  };
11648
12000
  const handleCtaClick = () => {
11649
- if (!_optionalChain([announcement, 'optionalAccess', _347 => _347.cta_url])) return;
12001
+ if (!_optionalChain([announcement, 'optionalAccess', _358 => _358.cta_url])) return;
11650
12002
  announcement.cta_target === "_blank" ? window.open(announcement.cta_url, "_blank", "noopener,noreferrer") : window.location.href = announcement.cta_url;
11651
12003
  };
11652
12004
  const renderIcon = () => {
@@ -11772,8 +12124,8 @@ function getVendorLogo(vendor) {
11772
12124
  if (vendor.logo) {
11773
12125
  return fixSupabaseStorageUrl(vendor.logo);
11774
12126
  }
11775
- const logoMedia = _optionalChain([vendor, 'access', _348 => _348.vendor_media, 'optionalAccess', _349 => _349.find, 'call', _350 => _350((m) => m.media_type === "logo")]);
11776
- if (_optionalChain([logoMedia, 'optionalAccess', _351 => _351.media_url])) {
12127
+ const logoMedia = _optionalChain([vendor, 'access', _359 => _359.vendor_media, 'optionalAccess', _360 => _360.find, 'call', _361 => _361((m) => m.media_type === "logo")]);
12128
+ if (_optionalChain([logoMedia, 'optionalAccess', _362 => _362.media_url])) {
11777
12129
  return fixSupabaseStorageUrl(logoMedia.media_url);
11778
12130
  }
11779
12131
  return null;
@@ -11848,7 +12200,7 @@ function VendorIcon({
11848
12200
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0,
11849
12201
  "flex items-center justify-center text-xs font-medium uppercase",
11850
12202
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
11851
- ), children: _optionalChain([vendor, 'access', _352 => _352.title, 'optionalAccess', _353 => _353.substring, 'call', _354 => _354(0, 2)]) || "??" }) });
12203
+ ), children: _optionalChain([vendor, 'access', _363 => _363.title, 'optionalAccess', _364 => _364.substring, 'call', _365 => _365(0, 2)]) || "??" }) });
11852
12204
  }
11853
12205
 
11854
12206
  // src/components/categories-cart.tsx
@@ -12132,7 +12484,7 @@ function UserSummary({
12132
12484
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
12133
12485
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", children: [
12134
12486
  name,
12135
- _optionalChain([mspPreview, 'optionalAccess', _355 => _355.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
12487
+ _optionalChain([mspPreview, 'optionalAccess', _366 => _366.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
12136
12488
  " \u2022 ",
12137
12489
  mspPreview.name
12138
12490
  ] })
@@ -12154,7 +12506,7 @@ function UserSummary({
12154
12506
  height: 40,
12155
12507
  className: "object-cover"
12156
12508
  }
12157
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _356 => _356.name, 'optionalAccess', _357 => _357.charAt, 'call', _358 => _358(0), 'access', _359 => _359.toUpperCase, 'call', _360 => _360()]) || "?" }) })
12509
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _367 => _367.name, 'optionalAccess', _368 => _368.charAt, 'call', _369 => _369(0), 'access', _370 => _370.toUpperCase, 'call', _371 => _371()]) || "?" }) })
12158
12510
  ] }),
12159
12511
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 grid grid-cols-[1fr_auto] gap-4", children: [
12160
12512
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[6rem] flex flex-col justify-center space-y-3 truncate", children: [
@@ -12167,7 +12519,7 @@ function UserSummary({
12167
12519
  typeof mspPreview.annualRevenue === "number" ? `$${formatNumber2(mspPreview.annualRevenue)}` : null
12168
12520
  ].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)) })
12169
12521
  ] }),
12170
- (_optionalChain([authProviders, 'optionalAccess', _361 => _361.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: [
12522
+ (_optionalChain([authProviders, 'optionalAccess', _372 => _372.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: [
12171
12523
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
12172
12524
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
12173
12525
  /* @__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)) })
@@ -12176,7 +12528,7 @@ function UserSummary({
12176
12528
  ] })
12177
12529
  ] })
12178
12530
  ] }),
12179
- (_optionalChain([authProviders, 'optionalAccess', _362 => _362.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
12531
+ (_optionalChain([authProviders, 'optionalAccess', _373 => _373.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
12180
12532
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
12181
12533
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
12182
12534
  /* @__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)) })
@@ -12897,7 +13249,7 @@ function FilterChip({
12897
13249
  onClick: disabled ? void 0 : (e) => {
12898
13250
  e.preventDefault();
12899
13251
  e.stopPropagation();
12900
- _optionalChain([onClick, 'optionalCall', _363 => _363()]);
13252
+ _optionalChain([onClick, 'optionalCall', _374 => _374()]);
12901
13253
  },
12902
13254
  role: onClick ? "button" : void 0,
12903
13255
  tabIndex: onClick && !disabled ? 0 : void 0,
@@ -13084,13 +13436,13 @@ function useUnifiedFiltering(config) {
13084
13436
  const searchParams = _navigation.useSearchParams.call(void 0, );
13085
13437
  const [isPending, startTransition] = _react.useTransition.call(void 0, );
13086
13438
  const getCurrentFilterState = () => {
13087
- const search = _optionalChain([searchParams, 'optionalAccess', _364 => _364.get, 'call', _365 => _365("search")]) || void 0;
13088
- const categories = _optionalChain([searchParams, 'optionalAccess', _366 => _366.get, 'call', _367 => _367("category"), 'optionalAccess', _368 => _368.split, 'call', _369 => _369(","), 'access', _370 => _370.filter, 'call', _371 => _371(Boolean)]) || [];
13089
- const subcategories = _optionalChain([searchParams, 'optionalAccess', _372 => _372.get, 'call', _373 => _373("subcategory"), 'optionalAccess', _374 => _374.split, 'call', _375 => _375(","), 'access', _376 => _376.filter, 'call', _377 => _377(Boolean)]) || [];
13090
- const tags = _optionalChain([searchParams, 'optionalAccess', _378 => _378.get, 'call', _379 => _379("tag"), 'optionalAccess', _380 => _380.split, 'call', _381 => _381(","), 'access', _382 => _382.filter, 'call', _383 => _383(Boolean)]) || [];
13091
- const filters = _optionalChain([searchParams, 'optionalAccess', _384 => _384.getAll, 'call', _385 => _385("filter")]) || [];
13092
- const pricing = _optionalChain([searchParams, 'optionalAccess', _386 => _386.get, 'call', _387 => _387("pricing")]) || void 0;
13093
- const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _388 => _388.get, 'call', _389 => _389("page")]) || "1");
13439
+ const search = _optionalChain([searchParams, 'optionalAccess', _375 => _375.get, 'call', _376 => _376("search")]) || void 0;
13440
+ const categories = _optionalChain([searchParams, 'optionalAccess', _377 => _377.get, 'call', _378 => _378("category"), 'optionalAccess', _379 => _379.split, 'call', _380 => _380(","), 'access', _381 => _381.filter, 'call', _382 => _382(Boolean)]) || [];
13441
+ const subcategories = _optionalChain([searchParams, 'optionalAccess', _383 => _383.get, 'call', _384 => _384("subcategory"), 'optionalAccess', _385 => _385.split, 'call', _386 => _386(","), 'access', _387 => _387.filter, 'call', _388 => _388(Boolean)]) || [];
13442
+ const tags = _optionalChain([searchParams, 'optionalAccess', _389 => _389.get, 'call', _390 => _390("tag"), 'optionalAccess', _391 => _391.split, 'call', _392 => _392(","), 'access', _393 => _393.filter, 'call', _394 => _394(Boolean)]) || [];
13443
+ const filters = _optionalChain([searchParams, 'optionalAccess', _395 => _395.getAll, 'call', _396 => _396("filter")]) || [];
13444
+ const pricing = _optionalChain([searchParams, 'optionalAccess', _397 => _397.get, 'call', _398 => _398("pricing")]) || void 0;
13445
+ const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _399 => _399.get, 'call', _400 => _400("page")]) || "1");
13094
13446
  return {
13095
13447
  search,
13096
13448
  categories,
@@ -13371,13 +13723,13 @@ function FooterWaitlistButton({ className }) {
13371
13723
  const router = _navigation.useRouter.call(void 0, );
13372
13724
  const pathname = _navigation.usePathname.call(void 0, );
13373
13725
  const handleClick = _react.useCallback.call(void 0, () => {
13374
- if (_optionalChain([pathname, 'optionalAccess', _390 => _390.startsWith, 'call', _391 => _391("/waitlist")])) {
13726
+ if (_optionalChain([pathname, 'optionalAccess', _401 => _401.startsWith, 'call', _402 => _402("/waitlist")])) {
13375
13727
  const anchor = document.getElementById("waitlist-form");
13376
13728
  if (anchor) {
13377
13729
  anchor.scrollIntoView({ behavior: "smooth", block: "center" });
13378
13730
  setTimeout(() => {
13379
13731
  const input = anchor.querySelector('input[type="email"]');
13380
- _optionalChain([input, 'optionalAccess', _392 => _392.focus, 'call', _393 => _393()]);
13732
+ _optionalChain([input, 'optionalAccess', _403 => _403.focus, 'call', _404 => _404()]);
13381
13733
  }, 400);
13382
13734
  return;
13383
13735
  }
@@ -13402,11 +13754,11 @@ _chunkV2FNIPZJcjs.init_button2.call(void 0, );
13402
13754
 
13403
13755
  function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
13404
13756
  const inputRef = _react.useRef.call(void 0, null);
13405
- const { toast } = _chunkCVMSC7M4cjs.useToast.call(void 0, );
13757
+ const { toast } = _chunkOII2IEREcjs.useToast.call(void 0, );
13406
13758
  const [uploading, setUploading] = _react.useState.call(void 0, false);
13407
13759
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
13408
13760
  const MAX_SIZE = 5 * 1024 * 1024;
13409
- const openDialog = () => _optionalChain([inputRef, 'access', _394 => _394.current, 'optionalAccess', _395 => _395.click, 'call', _396 => _396()]);
13761
+ const openDialog = () => _optionalChain([inputRef, 'access', _405 => _405.current, 'optionalAccess', _406 => _406.click, 'call', _407 => _407()]);
13410
13762
  async function handleFile(file) {
13411
13763
  if (!file) return;
13412
13764
  if (!ALLOWED_TYPES.includes(file.type)) {
@@ -13462,7 +13814,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
13462
13814
  }
13463
13815
  }
13464
13816
  const handleSelect = (e) => {
13465
- handleFile(_optionalChain([e, 'access', _397 => _397.target, 'access', _398 => _398.files, 'optionalAccess', _399 => _399[0]]));
13817
+ handleFile(_optionalChain([e, 'access', _408 => _408.target, 'access', _409 => _409.files, 'optionalAccess', _410 => _410[0]]));
13466
13818
  };
13467
13819
  const handleRemove = async () => {
13468
13820
  if (onDelete) {
@@ -13599,7 +13951,7 @@ function ResponsiveIconsBlock({ loading = false }) {
13599
13951
  const getIconForIndex = (index) => {
13600
13952
  const col = index % displayColumns;
13601
13953
  const row = Math.floor(index / displayColumns);
13602
- return _optionalChain([iconGrid, 'access', _400 => _400[row], 'optionalAccess', _401 => _401[col]]) || availableIcons[0];
13954
+ return _optionalChain([iconGrid, 'access', _411 => _411[row], 'optionalAccess', _412 => _412[col]]) || availableIcons[0];
13603
13955
  };
13604
13956
  if (loading || iconGrid.length === 0) {
13605
13957
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -13685,7 +14037,7 @@ var Slider = React39.forwardRef(
13685
14037
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
13686
14038
  const handleChange = (e) => {
13687
14039
  const newValue = [Number(e.target.value)];
13688
- _optionalChain([onValueChange, 'optionalCall', _402 => _402(newValue)]);
14040
+ _optionalChain([onValueChange, 'optionalCall', _413 => _413(newValue)]);
13689
14041
  };
13690
14042
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13691
14043
  "input",
@@ -13798,7 +14150,7 @@ var ImageCropper = ({
13798
14150
  });
13799
14151
  } else if (e.key === "Escape") {
13800
14152
  e.preventDefault();
13801
- _optionalChain([onCancel, 'optionalCall', _403 => _403()]);
14153
+ _optionalChain([onCancel, 'optionalCall', _414 => _414()]);
13802
14154
  }
13803
14155
  };
13804
14156
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -14498,8 +14850,8 @@ function PricingDisplay({
14498
14850
  }
14499
14851
  if (pricingArray.length === 1) {
14500
14852
  const item = pricingArray[0];
14501
- const price = _optionalChain([item, 'access', _404 => _404.ranges, 'optionalAccess', _405 => _405[0], 'optionalAccess', _406 => _406.min]) || 0;
14502
- const unit = _optionalChain([item, 'access', _407 => _407.ranges, 'optionalAccess', _408 => _408[0], 'optionalAccess', _409 => _409.unit]);
14853
+ const price = _optionalChain([item, 'access', _415 => _415.ranges, 'optionalAccess', _416 => _416[0], 'optionalAccess', _417 => _417.min]) || 0;
14854
+ const unit = _optionalChain([item, 'access', _418 => _418.ranges, 'optionalAccess', _419 => _419[0], 'optionalAccess', _420 => _420.unit]);
14503
14855
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
14504
14856
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
14505
14857
  unit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
@@ -14508,11 +14860,11 @@ function PricingDisplay({
14508
14860
  ] })
14509
14861
  ] });
14510
14862
  }
14511
- const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _410 => _410.ranges, 'optionalAccess', _411 => _411[0], 'optionalAccess', _412 => _412.min]) || 0, styleConfig.showTildePrefix));
14512
- const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _413 => _413.ranges, 'optionalAccess', _414 => _414[0], 'optionalAccess', _415 => _415.unit]));
14863
+ const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _421 => _421.ranges, 'optionalAccess', _422 => _422[0], 'optionalAccess', _423 => _423.min]) || 0, styleConfig.showTildePrefix));
14864
+ const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _424 => _424.ranges, 'optionalAccess', _425 => _425[0], 'optionalAccess', _426 => _426.unit]));
14513
14865
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
14514
14866
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
14515
- itemWithUnit && _optionalChain([itemWithUnit, 'access', _416 => _416.ranges, 'optionalAccess', _417 => _417[0], 'optionalAccess', _418 => _418.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
14867
+ itemWithUnit && _optionalChain([itemWithUnit, 'access', _427 => _427.ranges, 'optionalAccess', _428 => _428[0], 'optionalAccess', _429 => _429.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
14516
14868
  "/",
14517
14869
  itemWithUnit.ranges[0].unit
14518
14870
  ] })
@@ -14710,7 +15062,7 @@ function VendorTag({
14710
15062
  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" }) })
14711
15063
  };
14712
15064
  case "classification":
14713
- const classificationType = _optionalChain([text, 'optionalAccess', _419 => _419.toLowerCase, 'call', _420 => _420()]);
15065
+ const classificationType = _optionalChain([text, 'optionalAccess', _430 => _430.toLowerCase, 'call', _431 => _431()]);
14714
15066
  if (classificationType === "open_source") {
14715
15067
  return {
14716
15068
  text: "Open Source",
@@ -14764,7 +15116,7 @@ function SelectionSourceBadge({ source, hidden = false }) {
14764
15116
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14765
15117
  VendorTag,
14766
15118
  {
14767
- type: _optionalChain([source, 'optionalAccess', _421 => _421.toLowerCase, 'call', _422 => _422()]),
15119
+ type: _optionalChain([source, 'optionalAccess', _432 => _432.toLowerCase, 'call', _433 => _433()]),
14768
15120
  size: "sm",
14769
15121
  hidden
14770
15122
  },
@@ -16821,7 +17173,7 @@ function OnboardingWalkthrough({
16821
17173
  isStepSkipped,
16822
17174
  allStepsComplete,
16823
17175
  markMultipleComplete
16824
- } = _chunkCVMSC7M4cjs.useOnboardingState.call(void 0, storageKey);
17176
+ } = _chunkOII2IEREcjs.useOnboardingState.call(void 0, storageKey);
16825
17177
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
16826
17178
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
16827
17179
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -16884,12 +17236,12 @@ function OnboardingWalkthrough({
16884
17236
  }
16885
17237
  }, [state.completedSteps, markComplete]);
16886
17238
  const handleStepSkip = (step) => {
16887
- _optionalChain([step, 'access', _423 => _423.onSkip, 'optionalCall', _424 => _424()]);
17239
+ _optionalChain([step, 'access', _434 => _434.onSkip, 'optionalCall', _435 => _435()]);
16888
17240
  markSkipped(step.id);
16889
17241
  };
16890
17242
  const handleDismiss = () => {
16891
17243
  dismissOnboarding();
16892
- _optionalChain([onDismiss, 'optionalCall', _425 => _425()]);
17244
+ _optionalChain([onDismiss, 'optionalCall', _436 => _436()]);
16893
17245
  };
16894
17246
  if (state.dismissed) {
16895
17247
  return null;
@@ -17372,7 +17724,7 @@ var SecondaryAction = ({ action }) => {
17372
17724
  e.preventDefault();
17373
17725
  return;
17374
17726
  }
17375
- _optionalChain([action, 'access', _426 => _426.onClick, 'optionalCall', _427 => _427()]);
17727
+ _optionalChain([action, 'access', _437 => _437.onClick, 'optionalCall', _438 => _438()]);
17376
17728
  },
17377
17729
  [action]
17378
17730
  );
@@ -17413,13 +17765,13 @@ var MenuItem = ({ item, onItemClick }) => {
17413
17765
  const activate = _react.useCallback.call(void 0, () => {
17414
17766
  if (item.disabled) return;
17415
17767
  if (item.type === "checkbox") {
17416
- _optionalChain([item, 'access', _428 => _428.onClick, 'optionalCall', _429 => _429()]);
17417
- _optionalChain([onItemClick, 'optionalCall', _430 => _430(item)]);
17768
+ _optionalChain([item, 'access', _439 => _439.onClick, 'optionalCall', _440 => _440()]);
17769
+ _optionalChain([onItemClick, 'optionalCall', _441 => _441(item)]);
17418
17770
  return;
17419
17771
  }
17420
17772
  if (item.type === "submenu") return;
17421
- _optionalChain([item, 'access', _431 => _431.onClick, 'optionalCall', _432 => _432()]);
17422
- _optionalChain([onItemClick, 'optionalCall', _433 => _433(item)]);
17773
+ _optionalChain([item, 'access', _442 => _442.onClick, 'optionalCall', _443 => _443()]);
17774
+ _optionalChain([onItemClick, 'optionalCall', _444 => _444(item)]);
17423
17775
  }, [item, onItemClick]);
17424
17776
  const handleClick = _react.useCallback.call(void 0,
17425
17777
  (e) => {
@@ -17445,8 +17797,8 @@ var MenuItem = ({ item, onItemClick }) => {
17445
17797
  e.stopPropagation();
17446
17798
  return;
17447
17799
  }
17448
- _optionalChain([item, 'access', _434 => _434.onClick, 'optionalCall', _435 => _435()]);
17449
- _optionalChain([onItemClick, 'optionalCall', _436 => _436(item)]);
17800
+ _optionalChain([item, 'access', _445 => _445.onClick, 'optionalCall', _446 => _446()]);
17801
+ _optionalChain([onItemClick, 'optionalCall', _447 => _447(item)]);
17450
17802
  },
17451
17803
  [item, onItemClick]
17452
17804
  );
@@ -17601,7 +17953,7 @@ var ActionsMenuDropdown = ({
17601
17953
  const [open, setOpen] = _react.useState.call(void 0, false);
17602
17954
  const handleItemClick = _react.useCallback.call(void 0,
17603
17955
  (item) => {
17604
- _optionalChain([onItemClick, 'optionalCall', _437 => _437(item)]);
17956
+ _optionalChain([onItemClick, 'optionalCall', _448 => _448(item)]);
17605
17957
  if (item.type !== "checkbox" && item.type !== "submenu") {
17606
17958
  setOpen(false);
17607
17959
  }
@@ -17772,7 +18124,7 @@ function IconButtonsVariant({
17772
18124
  }) {
17773
18125
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
17774
18126
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
17775
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _438 => _438[0], 'access', _439 => _439.submenu, 'optionalAccess', _440 => _440.length]);
18127
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _449 => _449[0], 'access', _450 => _450.submenu, 'optionalAccess', _451 => _451.length]);
17776
18128
  const singleAction = isSingleAction ? actions[0] : null;
17777
18129
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
17778
18130
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -18202,14 +18554,14 @@ function ReleaseDetailPage({
18202
18554
  releaseVersion
18203
18555
  ] })
18204
18556
  ] }) }),
18205
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _441 => _441.map, 'call', _442 => _442((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18557
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _452 => _452.map, 'call', _453 => _453((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18206
18558
  StatusBadge,
18207
18559
  {
18208
- text: (tag.name || _optionalChain([tag, 'access', _443 => _443.blog_tags, 'optionalAccess', _444 => _444.name]) || "").toUpperCase(),
18560
+ text: (tag.name || _optionalChain([tag, 'access', _454 => _454.blog_tags, 'optionalAccess', _455 => _455.name]) || "").toUpperCase(),
18209
18561
  variant: "card",
18210
18562
  className: "bg-ods-card border border-ods-border"
18211
18563
  },
18212
- tag.id || _optionalChain([tag, 'access', _445 => _445.blog_tags, 'optionalAccess', _446 => _446.id])
18564
+ tag.id || _optionalChain([tag, 'access', _456 => _456.blog_tags, 'optionalAccess', _457 => _457.id])
18213
18565
  ))]) }),
18214
18566
  /* @__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: [
18215
18567
  /* @__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: [
@@ -18228,15 +18580,15 @@ function ReleaseDetailPage({
18228
18580
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18229
18581
  SquareAvatar,
18230
18582
  {
18231
- src: _optionalChain([author, 'optionalAccess', _447 => _447.avatar_url]) || "",
18232
- alt: _optionalChain([author, 'optionalAccess', _448 => _448.full_name]) || "Author",
18233
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _449 => _449.full_name]) || "Unknown"),
18583
+ src: _optionalChain([author, 'optionalAccess', _458 => _458.avatar_url]) || "",
18584
+ alt: _optionalChain([author, 'optionalAccess', _459 => _459.full_name]) || "Author",
18585
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _460 => _460.full_name]) || "Unknown"),
18234
18586
  size: "md",
18235
18587
  variant: "round"
18236
18588
  }
18237
18589
  ),
18238
18590
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
18239
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _450 => _450.full_name]) || "Unknown Author" }),
18591
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _461 => _461.full_name]) || "Unknown Author" }),
18240
18592
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
18241
18593
  ] })
18242
18594
  ] })
@@ -18267,8 +18619,8 @@ function ReleaseDetailPage({
18267
18619
  videoBites,
18268
18620
  bitesTitle: "Video Clips",
18269
18621
  filterPublishedBites: true,
18270
- srtContent: _optionalChain([release, 'optionalAccess', _451 => _451.srt_content]),
18271
- captionsUrl: _optionalChain([release, 'optionalAccess', _452 => _452.captionsUrl])
18622
+ srtContent: _optionalChain([release, 'optionalAccess', _462 => _462.srt_content]),
18623
+ captionsUrl: _optionalChain([release, 'optionalAccess', _463 => _463.captionsUrl])
18272
18624
  }
18273
18625
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18274
18626
  youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -18284,8 +18636,8 @@ function ReleaseDetailPage({
18284
18636
  Video2,
18285
18637
  {
18286
18638
  url: mainVideoUrl,
18287
- srtContent: _optionalChain([release, 'optionalAccess', _453 => _453.srt_content]),
18288
- captionsUrl: _optionalChain([release, 'optionalAccess', _454 => _454.captionsUrl]),
18639
+ srtContent: _optionalChain([release, 'optionalAccess', _464 => _464.srt_content]),
18640
+ captionsUrl: _optionalChain([release, 'optionalAccess', _465 => _465.captionsUrl]),
18289
18641
  layout: "centered"
18290
18642
  }
18291
18643
  ),
@@ -18375,7 +18727,7 @@ function ReleaseDetailPage({
18375
18727
  }
18376
18728
  )
18377
18729
  ] }),
18378
- (_optionalChain([githubReleases, 'optionalAccess', _455 => _455.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _456 => _456.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18730
+ (_optionalChain([githubReleases, 'optionalAccess', _466 => _466.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _467 => _467.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18379
18731
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
18380
18732
  /* @__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: [
18381
18733
  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: [
@@ -18404,7 +18756,7 @@ function ReleaseDetailPage({
18404
18756
  {
18405
18757
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
18406
18758
  className: "text-h4 text-[#ffc008] hover:underline",
18407
- children: _optionalChain([path, 'access', _457 => _457.replace, 'call', _458 => _458(/^\//, ""), 'access', _459 => _459.split, 'call', _460 => _460("/"), 'access', _461 => _461.pop, 'call', _462 => _462(), 'optionalAccess', _463 => _463.replace, 'call', _464 => _464(/-/g, " ")]) || "View Article"
18759
+ children: _optionalChain([path, 'access', _468 => _468.replace, 'call', _469 => _469(/^\//, ""), 'access', _470 => _470.split, 'call', _471 => _471("/"), 'access', _472 => _472.pop, 'call', _473 => _473(), 'optionalAccess', _474 => _474.replace, 'call', _475 => _475(/-/g, " ")]) || "View Article"
18408
18760
  }
18409
18761
  ),
18410
18762
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -18503,7 +18855,7 @@ function InfoCard({ data, className = "" }) {
18503
18855
  );
18504
18856
  }
18505
18857
  function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
18506
- const { copy, copied } = _chunkCVMSC7M4cjs.useCopyToClipboard.call(void 0, );
18858
+ const { copy, copied } = _chunkOII2IEREcjs.useCopyToClipboard.call(void 0, );
18507
18859
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
18508
18860
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
18509
18861
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -18715,7 +19067,7 @@ var ProgressBar = ({
18715
19067
  mobileHeight = 8,
18716
19068
  inverted = false
18717
19069
  }) => {
18718
- const isMdUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useMdUp.call(void 0, ), () => ( true));
19070
+ const isMdUp = _nullishCoalesce(_chunkOII2IEREcjs.useMdUp.call(void 0, ), () => ( true));
18719
19071
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
18720
19072
  const effectiveHeight = isMdUp ? height : mobileHeight;
18721
19073
  const containerRef = _react.useRef.call(void 0, null);
@@ -19050,7 +19402,7 @@ function TagsManager({
19050
19402
  const name = search.trim();
19051
19403
  if (!name) return;
19052
19404
  const result = await onCreateTag(name);
19053
- if (_optionalChain([result, 'optionalAccess', _465 => _465.id])) {
19405
+ if (_optionalChain([result, 'optionalAccess', _476 => _476.id])) {
19054
19406
  onChange([...selectedIds, result.id]);
19055
19407
  setSearch("");
19056
19408
  }
@@ -19058,7 +19410,7 @@ function TagsManager({
19058
19410
  const startEdit = React55.useCallback((id, name) => {
19059
19411
  setEditingId(id);
19060
19412
  setEditingName(name);
19061
- setTimeout(() => _optionalChain([editInputRef, 'access', _466 => _466.current, 'optionalAccess', _467 => _467.focus, 'call', _468 => _468()]), 0);
19413
+ setTimeout(() => _optionalChain([editInputRef, 'access', _477 => _477.current, 'optionalAccess', _478 => _478.focus, 'call', _479 => _479()]), 0);
19062
19414
  }, []);
19063
19415
  const confirmEdit = React55.useCallback(async () => {
19064
19416
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -19085,7 +19437,7 @@ function TagsManager({
19085
19437
  e.stopPropagation();
19086
19438
  onChange([]);
19087
19439
  setSearch("");
19088
- _optionalChain([inputRef, 'access', _469 => _469.current, 'optionalAccess', _470 => _470.focus, 'call', _471 => _471()]);
19440
+ _optionalChain([inputRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.focus, 'call', _482 => _482()]);
19089
19441
  },
19090
19442
  [onChange]
19091
19443
  );
@@ -19184,10 +19536,10 @@ function TagsManager({
19184
19536
  align: "start",
19185
19537
  onOpenAutoFocus: (e) => {
19186
19538
  e.preventDefault();
19187
- _optionalChain([inputRef, 'access', _472 => _472.current, 'optionalAccess', _473 => _473.focus, 'call', _474 => _474()]);
19539
+ _optionalChain([inputRef, 'access', _483 => _483.current, 'optionalAccess', _484 => _484.focus, 'call', _485 => _485()]);
19188
19540
  },
19189
19541
  onInteractOutside: (e) => {
19190
- if (_optionalChain([containerRef, 'access', _475 => _475.current, 'optionalAccess', _476 => _476.contains, 'call', _477 => _477(e.target)])) {
19542
+ if (_optionalChain([containerRef, 'access', _486 => _486.current, 'optionalAccess', _487 => _487.contains, 'call', _488 => _488(e.target)])) {
19191
19543
  e.preventDefault();
19192
19544
  }
19193
19545
  },
@@ -20291,19 +20643,19 @@ function TabNavigation({
20291
20643
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
20292
20644
  const getInitialTab = () => {
20293
20645
  if (isUrlSyncEnabled) {
20294
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _478 => _478.get, 'call', _479 => _479(paramName)]) || "";
20646
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _489 => _489.get, 'call', _490 => _490(paramName)]) || "";
20295
20647
  if (validTabIds.has(fromUrl)) {
20296
20648
  return fromUrl;
20297
20649
  }
20298
20650
  }
20299
- return defaultTab || _optionalChain([tabs, 'access', _480 => _480[0], 'optionalAccess', _481 => _481.id]) || "";
20651
+ return defaultTab || _optionalChain([tabs, 'access', _491 => _491[0], 'optionalAccess', _492 => _492.id]) || "";
20300
20652
  };
20301
20653
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
20302
20654
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
20303
20655
  _react.useEffect.call(void 0, () => {
20304
20656
  if (!isUrlSyncEnabled) return;
20305
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _482 => _482.get, 'call', _483 => _483(paramName)]) || "";
20306
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _484 => _484[0], 'optionalAccess', _485 => _485.id]) || "";
20657
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _493 => _493.get, 'call', _494 => _494(paramName)]) || "";
20658
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _495 => _495[0], 'optionalAccess', _496 => _496.id]) || "";
20307
20659
  if (nextTab !== internalActiveTab) {
20308
20660
  setInternalActiveTab(nextTab);
20309
20661
  }
@@ -20311,13 +20663,13 @@ function TabNavigation({
20311
20663
  const handleTabChange = (tabId) => {
20312
20664
  if (isUrlSyncEnabled) {
20313
20665
  setInternalActiveTab(tabId);
20314
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _486 => _486.toString, 'call', _487 => _487()]));
20666
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _497 => _497.toString, 'call', _498 => _498()]));
20315
20667
  params.set(paramName, tabId);
20316
20668
  const method = replaceState ? "replace" : "push";
20317
20669
  router[method](`${pathname}?${params.toString()}`);
20318
- _optionalChain([controlledOnTabChange, 'optionalCall', _488 => _488(tabId)]);
20670
+ _optionalChain([controlledOnTabChange, 'optionalCall', _499 => _499(tabId)]);
20319
20671
  } else {
20320
- _optionalChain([controlledOnTabChange, 'optionalCall', _489 => _489(tabId)]);
20672
+ _optionalChain([controlledOnTabChange, 'optionalCall', _500 => _500(tabId)]);
20321
20673
  }
20322
20674
  };
20323
20675
  const scrollRef = _react.useRef.call(void 0, null);
@@ -20405,7 +20757,7 @@ function TabNavigation({
20405
20757
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
20406
20758
  var getTabComponent = (tabs, tabId) => {
20407
20759
  const tab = getTabById(tabs, tabId);
20408
- return _optionalChain([tab, 'optionalAccess', _490 => _490.component]) || null;
20760
+ return _optionalChain([tab, 'optionalAccess', _501 => _501.component]) || null;
20409
20761
  };
20410
20762
 
20411
20763
  // src/components/ui/alert.tsx
@@ -20742,16 +21094,16 @@ function FilterModal({
20742
21094
  };
20743
21095
  const handleReset = () => {
20744
21096
  onFilterChange({});
20745
- _optionalChain([onTagsChange, 'optionalCall', _491 => _491([])]);
21097
+ _optionalChain([onTagsChange, 'optionalCall', _502 => _502([])]);
20746
21098
  onClose();
20747
21099
  };
20748
21100
  const handleApply = () => {
20749
21101
  onFilterChange(selectedFilters);
20750
- _optionalChain([onTagsChange, 'optionalCall', _492 => _492(pendingTags)]);
21102
+ _optionalChain([onTagsChange, 'optionalCall', _503 => _503(pendingTags)]);
20751
21103
  onClose();
20752
21104
  };
20753
21105
  const getColumnDirection = (columnKey) => {
20754
- return _optionalChain([sortConfig, 'optionalAccess', _493 => _493.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
21106
+ return _optionalChain([sortConfig, 'optionalAccess', _504 => _504.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20755
21107
  };
20756
21108
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
20757
21109
  const hasFilterGroups = filterGroups.length > 0;
@@ -20800,7 +21152,7 @@ function FilterModal({
20800
21152
  {
20801
21153
  column,
20802
21154
  currentDirection: getColumnDirection(column.key),
20803
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _494 => _494(column.key, direction)]),
21155
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _505 => _505(column.key, direction)]),
20804
21156
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
20805
21157
  },
20806
21158
  column.key
@@ -20867,7 +21219,7 @@ function ListPageLayout({
20867
21219
  }) {
20868
21220
  const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
20869
21221
  const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
20870
- const debouncedSearchValue = _chunkCVMSC7M4cjs.useDebounce.call(void 0, localSearchValue, 500);
21222
+ const debouncedSearchValue = _chunkOII2IEREcjs.useDebounce.call(void 0, localSearchValue, 500);
20871
21223
  _react.useEffect.call(void 0, () => {
20872
21224
  setLocalSearchValue(searchValue);
20873
21225
  }, [searchValue]);
@@ -20966,9 +21318,9 @@ function TitleBlock({
20966
21318
  const [imageFailed, setImageFailed] = React37.default.useState(false);
20967
21319
  React37.default.useEffect(() => {
20968
21320
  setImageFailed(false);
20969
- }, [_optionalChain([image, 'optionalAccess', _495 => _495.src])]);
21321
+ }, [_optionalChain([image, 'optionalAccess', _506 => _506.src])]);
20970
21322
  const showImageFallback = !!image && (imageFailed || !image.src);
20971
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _496 => _496.alt]) || title);
21323
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _507 => _507.alt]) || title);
20972
21324
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20973
21325
  "div",
20974
21326
  {
@@ -21764,26 +22116,26 @@ function DeviceCard({
21764
22116
  ] }),
21765
22117
  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 })
21766
22118
  ] }),
21767
- _optionalChain([actions, 'access', _497 => _497.moreButton, 'optionalAccess', _498 => _498.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22119
+ _optionalChain([actions, 'access', _508 => _508.moreButton, 'optionalAccess', _509 => _509.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21768
22120
  "div",
21769
22121
  {
21770
22122
  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",
21771
22123
  onClick: (e) => {
21772
22124
  e.stopPropagation();
21773
- _optionalChain([actions, 'access', _499 => _499.moreButton, 'optionalAccess', _500 => _500.onClick, 'optionalCall', _501 => _501()]);
22125
+ _optionalChain([actions, 'access', _510 => _510.moreButton, 'optionalAccess', _511 => _511.onClick, 'optionalCall', _512 => _512()]);
21774
22126
  },
21775
22127
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
21776
22128
  }
21777
22129
  ),
21778
- _optionalChain([actions, 'access', _502 => _502.detailsButton, 'optionalAccess', _503 => _503.visible]) !== false && _optionalChain([actions, 'access', _504 => _504.detailsButton, 'optionalAccess', _505 => _505.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21779
- _optionalChain([actions, 'access', _506 => _506.customActions, 'optionalAccess', _507 => _507.map, 'call', _508 => _508(
22130
+ _optionalChain([actions, 'access', _513 => _513.detailsButton, 'optionalAccess', _514 => _514.visible]) !== false && _optionalChain([actions, 'access', _515 => _515.detailsButton, 'optionalAccess', _516 => _516.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22131
+ _optionalChain([actions, 'access', _517 => _517.customActions, 'optionalAccess', _518 => _518.map, 'call', _519 => _519(
21780
22132
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21781
22133
  "div",
21782
22134
  {
21783
22135
  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",
21784
22136
  onClick: (e) => {
21785
22137
  e.stopPropagation();
21786
- _optionalChain([action, 'access', _509 => _509.onClick, 'optionalCall', _510 => _510()]);
22138
+ _optionalChain([action, 'access', _520 => _520.onClick, 'optionalCall', _521 => _521()]);
21787
22139
  },
21788
22140
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
21789
22141
  },
@@ -22142,7 +22494,7 @@ function MoreActionsMenu({
22142
22494
  ] });
22143
22495
  const handleActivate = (e) => {
22144
22496
  e.stopPropagation();
22145
- if (!item.disabled) _optionalChain([item, 'access', _511 => _511.onClick, 'optionalCall', _512 => _512()]);
22497
+ if (!item.disabled) _optionalChain([item, 'access', _522 => _522.onClick, 'optionalCall', _523 => _523()]);
22146
22498
  };
22147
22499
  if (item.href) {
22148
22500
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22292,7 +22644,7 @@ function OrganizationIcon({
22292
22644
  backgroundStyle = "dark"
22293
22645
  }) {
22294
22646
  const { width, height } = imageSizeMap2[size];
22295
- const initials = _optionalChain([organizationName, 'optionalAccess', _513 => _513.substring, 'call', _514 => _514(0, 2)]) || "??";
22647
+ const initials = _optionalChain([organizationName, 'optionalAccess', _524 => _524.substring, 'call', _525 => _525(0, 2)]) || "??";
22296
22648
  const containerClasses = _chunkUC43NICZcjs.cn.call(void 0,
22297
22649
  sizeClasses3[size],
22298
22650
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -22343,7 +22695,7 @@ function OrganizationCard({
22343
22695
  const handleActionClick = (e) => {
22344
22696
  e.preventDefault();
22345
22697
  e.stopPropagation();
22346
- _optionalChain([actionButton, 'optionalAccess', _515 => _515.onClick, 'call', _516 => _516(organization, e)]);
22698
+ _optionalChain([actionButton, 'optionalAccess', _526 => _526.onClick, 'call', _527 => _527(organization, e)]);
22347
22699
  };
22348
22700
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22349
22701
  "div",
@@ -22500,7 +22852,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22500
22852
  onKeyDown: (e) => {
22501
22853
  if (e.key === "Enter" || e.key === " ") {
22502
22854
  e.preventDefault();
22503
- _optionalChain([onClick, 'optionalCall', _517 => _517()]);
22855
+ _optionalChain([onClick, 'optionalCall', _528 => _528()]);
22504
22856
  }
22505
22857
  },
22506
22858
  children: [
@@ -22509,7 +22861,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22509
22861
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
22510
22862
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
22511
22863
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['Azeret_Mono'] font-normal text-[13px] leading-4 text-[#888888] uppercase tracking-wider", children: formatTimestamp(log.timestamp) }),
22512
- log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCVMSC7M4cjs.ToolIcon, { toolType: log.toolType, size: 16 })
22864
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOII2IEREcjs.ToolIcon, { toolType: log.toolType, size: 16 })
22513
22865
  ] })
22514
22866
  ] })
22515
22867
  ]
@@ -22601,7 +22953,7 @@ var LogsList = React79.forwardRef(({
22601
22953
  log,
22602
22954
  isLast: index === logs.length - 1,
22603
22955
  showConnector,
22604
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _518 => _518(log)])
22956
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _529 => _529(log)])
22605
22957
  },
22606
22958
  log.id
22607
22959
  ))
@@ -22714,7 +23066,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
22714
23066
  }
22715
23067
  function ServiceCardRowItem({ row }) {
22716
23068
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
22717
- const { copy, copied } = _chunkCVMSC7M4cjs.useCopyToClipboard.call(void 0, );
23069
+ const { copy, copied } = _chunkOII2IEREcjs.useCopyToClipboard.call(void 0, );
22718
23070
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
22719
23071
  const displayValue = row.isSecret ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MaskedValue, { value: row.value, isRevealed: revealed }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.value });
22720
23072
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -23190,7 +23542,7 @@ function CursorPaginationSimple({
23190
23542
  {
23191
23543
  variant: "transparent",
23192
23544
  size: "icon",
23193
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _519 => _519("")]),
23545
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _530 => _530("")]),
23194
23546
  disabled: !hasPreviousPage || loading,
23195
23547
  className: "h-8 w-8",
23196
23548
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -23202,7 +23554,7 @@ function CursorPaginationSimple({
23202
23554
  {
23203
23555
  variant: "transparent",
23204
23556
  size: "icon",
23205
- onClick: () => _optionalChain([onNext, 'optionalCall', _520 => _520("")]),
23557
+ onClick: () => _optionalChain([onNext, 'optionalCall', _531 => _531("")]),
23206
23558
  disabled: !hasNextPage || loading,
23207
23559
  className: "h-8 w-8",
23208
23560
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -23262,7 +23614,7 @@ function TableColumnFilterDropdown({
23262
23614
  placement = "bottom-start",
23263
23615
  dropdownClassName = "min-w-[240px]"
23264
23616
  }) {
23265
- const activeCount = _optionalChain([filters, 'optionalAccess', _521 => _521[columnKey], 'optionalAccess', _522 => _522.length]) || 0;
23617
+ const activeCount = _optionalChain([filters, 'optionalAccess', _532 => _532[columnKey], 'optionalAccess', _533 => _533.length]) || 0;
23266
23618
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23267
23619
  FiltersDropdown,
23268
23620
  {
@@ -23305,7 +23657,7 @@ function TableColumnFilterDropdown({
23305
23657
  delete newFilters[columnKey];
23306
23658
  onFilterChange(newFilters);
23307
23659
  },
23308
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _523 => _523[columnKey]]) || [] },
23660
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _534 => _534[columnKey]]) || [] },
23309
23661
  placement,
23310
23662
  dropdownClassName
23311
23663
  }
@@ -23380,7 +23732,7 @@ function TableHeader({
23380
23732
  }
23381
23733
  return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
23382
23734
  };
23383
- const isLgUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useLgUp.call(void 0, ), () => ( false));
23735
+ const isLgUp = _nullishCoalesce(_chunkOII2IEREcjs.useLgUp.call(void 0, ), () => ( false));
23384
23736
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23385
23737
  "div",
23386
23738
  {
@@ -23602,7 +23954,7 @@ function TableRow({
23602
23954
  const keys = column.key.split(".");
23603
23955
  let value = item;
23604
23956
  for (const key of keys) {
23605
- value = _optionalChain([value, 'optionalAccess', _524 => _524[key]]);
23957
+ value = _optionalChain([value, 'optionalAccess', _535 => _535[key]]);
23606
23958
  }
23607
23959
  if (value === null || value === void 0) {
23608
23960
  return "-";
@@ -23672,7 +24024,7 @@ function TableRow({
23672
24024
  // src/components/ui/table/table.tsx
23673
24025
 
23674
24026
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
23675
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _525 => _525.length])) || Boolean(renderRowActions);
24027
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _536 => _536.length])) || Boolean(renderRowActions);
23676
24028
  const result = [...columns];
23677
24029
  if (hasActions) {
23678
24030
  const actionsColumn = {
@@ -23766,7 +24118,7 @@ function Table({
23766
24118
  return rowKey(item);
23767
24119
  }
23768
24120
  const key = item[rowKey];
23769
- return _optionalChain([key, 'optionalAccess', _526 => _526.toString, 'call', _527 => _527()]) || index.toString();
24121
+ return _optionalChain([key, 'optionalAccess', _537 => _537.toString, 'call', _538 => _538()]) || index.toString();
23770
24122
  };
23771
24123
  const getRowClassName = (item, index) => {
23772
24124
  if (typeof rowClassName === "function") {
@@ -23800,23 +24152,23 @@ function Table({
23800
24152
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
23801
24153
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
23802
24154
  const sentinelRef = _react.useRef.call(void 0, null);
23803
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _528 => _528.onLoadMore]));
23804
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _529 => _529.onLoadMore]);
24155
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _539 => _539.onLoadMore]));
24156
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _540 => _540.onLoadMore]);
23805
24157
  _react.useEffect.call(void 0, () => {
23806
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _530 => _530.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24158
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _541 => _541.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23807
24159
  const sentinel = sentinelRef.current;
23808
24160
  if (!sentinel) return;
23809
24161
  const observer = new IntersectionObserver(
23810
24162
  (entries) => {
23811
- if (_optionalChain([entries, 'access', _531 => _531[0], 'optionalAccess', _532 => _532.isIntersecting])) {
23812
- _optionalChain([onLoadMoreRef, 'access', _533 => _533.current, 'optionalCall', _534 => _534()]);
24163
+ if (_optionalChain([entries, 'access', _542 => _542[0], 'optionalAccess', _543 => _543.isIntersecting])) {
24164
+ _optionalChain([onLoadMoreRef, 'access', _544 => _544.current, 'optionalCall', _545 => _545()]);
23813
24165
  }
23814
24166
  },
23815
24167
  { rootMargin: "200px" }
23816
24168
  );
23817
24169
  observer.observe(sentinel);
23818
24170
  return () => observer.disconnect();
23819
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _535 => _535.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _536 => _536.isFetchingNextPage])]);
24171
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _546 => _546.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _547 => _547.isFetchingNextPage])]);
23820
24172
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
23821
24173
  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: [
23822
24174
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -23887,7 +24239,7 @@ function Table({
23887
24239
  },
23888
24240
  getRowKey(item, index)
23889
24241
  )),
23890
- _optionalChain([infiniteScroll, 'optionalAccess', _537 => _537.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24242
+ _optionalChain([infiniteScroll, 'optionalAccess', _548 => _548.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23891
24243
  TableCardSkeleton,
23892
24244
  {
23893
24245
  columns,
@@ -23896,7 +24248,7 @@ function Table({
23896
24248
  hasChevron: Boolean(rowHref)
23897
24249
  }
23898
24250
  ),
23899
- _optionalChain([infiniteScroll, 'optionalAccess', _538 => _538.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24251
+ _optionalChain([infiniteScroll, 'optionalAccess', _549 => _549.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23900
24252
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23901
24253
  "div",
23902
24254
  {
@@ -24254,7 +24606,7 @@ function QueryReportTable({
24254
24606
  );
24255
24607
  const handleExport = () => {
24256
24608
  exportToCSV(data, columns, exportFilename);
24257
- _optionalChain([onExport, 'optionalCall', _539 => _539()]);
24609
+ _optionalChain([onExport, 'optionalCall', _550 => _550()]);
24258
24610
  };
24259
24611
  const tableMinWidth = columns.length * (columnWidth + 16);
24260
24612
  const {
@@ -24270,7 +24622,7 @@ function QueryReportTable({
24270
24622
  onThumbPointerDown,
24271
24623
  onThumbPointerMove,
24272
24624
  onThumbPointerUp
24273
- } = _chunkCVMSC7M4cjs.useHorizontalScrollbar.call(void 0, );
24625
+ } = _chunkOII2IEREcjs.useHorizontalScrollbar.call(void 0, );
24274
24626
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
24275
24627
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
24276
24628
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -24427,7 +24779,7 @@ function DataTableColumnFilter({
24427
24779
  align = "left"
24428
24780
  }) {
24429
24781
  const currentValue = column.getFilterValue();
24430
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _540 => _540.length]), () => ( 0));
24782
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _551 => _551.length]), () => ( 0));
24431
24783
  const sections = _react.useMemo.call(void 0,
24432
24784
  () => [
24433
24785
  {
@@ -24501,13 +24853,13 @@ function DataTableHeader({
24501
24853
  onSortChange
24502
24854
  }) {
24503
24855
  const table = useDataTableContext();
24504
- const isLgUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useLgUp.call(void 0, ), () => ( false));
24856
+ const isLgUp = _nullishCoalesce(_chunkOII2IEREcjs.useLgUp.call(void 0, ), () => ( false));
24505
24857
  const headerGroup = table.getHeaderGroups()[0];
24506
24858
  if (!headerGroup) return null;
24507
24859
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
24508
24860
  if (header.isPlaceholder) return false;
24509
24861
  if (isLgUp) return true;
24510
- return Boolean(_optionalChain([header, 'access', _541 => _541.column, 'access', _542 => _542.columnDef, 'access', _543 => _543.meta, 'optionalAccess', _544 => _544.filter]));
24862
+ return Boolean(_optionalChain([header, 'access', _552 => _552.column, 'access', _553 => _553.columnDef, 'access', _554 => _554.meta, 'optionalAccess', _555 => _555.filter]));
24511
24863
  });
24512
24864
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24513
24865
  "div",
@@ -24537,20 +24889,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24537
24889
  if (header.isPlaceholder) return null;
24538
24890
  const column = header.column;
24539
24891
  const meta = column.columnDef.meta;
24540
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _545 => _545.filter]));
24541
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _546 => _546.align]), () => ( "left"));
24542
- const canSort = _optionalChain([meta, 'optionalAccess', _547 => _547.sortable]) === true;
24543
- const sortDir = _optionalChain([sort, 'optionalAccess', _548 => _548.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24892
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _556 => _556.filter]));
24893
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _557 => _557.align]), () => ( "left"));
24894
+ const canSort = _optionalChain([meta, 'optionalAccess', _558 => _558.sortable]) === true;
24895
+ const sortDir = _optionalChain([sort, 'optionalAccess', _559 => _559.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24544
24896
  if (!isLgUp && !hasFilter) return null;
24545
24897
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24546
24898
  "div",
24547
24899
  {
24548
24900
  className: _chunkUC43NICZcjs.cn.call(void 0,
24549
24901
  "flex items-stretch",
24550
- isLgUp && (_optionalChain([meta, 'optionalAccess', _549 => _549.width]) || "flex-1 min-w-0"),
24551
- _optionalChain([meta, 'optionalAccess', _550 => _550.headerClassName]),
24902
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _560 => _560.width]) || "flex-1 min-w-0"),
24903
+ _optionalChain([meta, 'optionalAccess', _561 => _561.headerClassName]),
24552
24904
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24553
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _551 => _551.hideAt]))
24905
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _562 => _562.hideAt]))
24554
24906
  ),
24555
24907
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24556
24908
  DataTableColumnFilter,
@@ -24569,7 +24921,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24569
24921
  isLgUp && alignJustify(align),
24570
24922
  canSort && "group cursor-pointer"
24571
24923
  ),
24572
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _552 => _552(column.id)]) : void 0,
24924
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _563 => _563(column.id)]) : void 0,
24573
24925
  children: [
24574
24926
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24575
24927
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24653,7 +25005,7 @@ function DataTableSkeleton({
24653
25005
  }) {
24654
25006
  const table = useDataTableContext();
24655
25007
  const columns = table.getVisibleFlatColumns();
24656
- const firstColumnId = _optionalChain([columns, 'access', _553 => _553[0], 'optionalAccess', _554 => _554.id]);
25008
+ const firstColumnId = _optionalChain([columns, 'access', _564 => _564[0], 'optionalAccess', _565 => _565.id]);
24657
25009
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24658
25010
  "div",
24659
25011
  {
@@ -24677,7 +25029,7 @@ function DataTableSkeleton({
24677
25029
  {
24678
25030
  className: _chunkUC43NICZcjs.cn.call(void 0,
24679
25031
  "flex flex-col justify-center shrink-0",
24680
- _optionalChain([meta, 'optionalAccess', _555 => _555.width]) || "flex-1"
25032
+ _optionalChain([meta, 'optionalAccess', _566 => _566.width]) || "flex-1"
24681
25033
  ),
24682
25034
  children: [
24683
25035
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -24723,7 +25075,7 @@ function DataTableRowImpl({
24723
25075
  (e) => {
24724
25076
  const target = e.target;
24725
25077
  if (target.closest("[data-no-row-click]")) return;
24726
- _optionalChain([onClick, 'optionalCall', _556 => _556(row.original)]);
25078
+ _optionalChain([onClick, 'optionalCall', _567 => _567(row.original)]);
24727
25079
  },
24728
25080
  [onClick, row.original]
24729
25081
  );
@@ -24761,10 +25113,10 @@ function DataTableRowImpl({
24761
25113
  {
24762
25114
  className: _chunkUC43NICZcjs.cn.call(void 0,
24763
25115
  "flex flex-col overflow-hidden",
24764
- alignJustify(_optionalChain([meta, 'optionalAccess', _557 => _557.align])),
24765
- _optionalChain([meta, 'optionalAccess', _558 => _558.width]) || "flex-1 min-w-0",
24766
- _optionalChain([meta, 'optionalAccess', _559 => _559.cellClassName]),
24767
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _560 => _560.hideAt]))
25116
+ alignJustify(_optionalChain([meta, 'optionalAccess', _568 => _568.align])),
25117
+ _optionalChain([meta, 'optionalAccess', _569 => _569.width]) || "flex-1 min-w-0",
25118
+ _optionalChain([meta, 'optionalAccess', _570 => _570.cellClassName]),
25119
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _571 => _571.hideAt]))
24768
25120
  ),
24769
25121
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
24770
25122
  },
@@ -24810,7 +25162,7 @@ function DataTableBody({
24810
25162
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
24811
25163
  rows.map((row, index) => {
24812
25164
  const item = row.original;
24813
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _561 => _561(item)]), () => ( void 0));
25165
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _572 => _572(item)]), () => ( void 0));
24814
25166
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
24815
25167
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24816
25168
  DataTableRow,
@@ -24874,7 +25226,7 @@ function DataTableInfiniteFooter({
24874
25226
  if (!sentinel) return;
24875
25227
  const observer = new IntersectionObserver(
24876
25228
  (entries) => {
24877
- if (_optionalChain([entries, 'access', _562 => _562[0], 'optionalAccess', _563 => _563.isIntersecting])) onLoadMoreRef.current();
25229
+ if (_optionalChain([entries, 'access', _573 => _573[0], 'optionalAccess', _574 => _574.isIntersecting])) onLoadMoreRef.current();
24878
25230
  },
24879
25231
  { rootMargin }
24880
25232
  );
@@ -24922,7 +25274,7 @@ function DataTableRowCount({
24922
25274
  const table = useDataTableContext();
24923
25275
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
24924
25276
  if (hideWhenEmpty && count === 0) return null;
24925
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _564 => _564(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25277
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _575 => _575(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
24926
25278
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24927
25279
  "span",
24928
25280
  {
@@ -25016,12 +25368,12 @@ function PhoneInput({
25016
25368
  const runValidation = _react.useCallback.call(void 0, (phone) => {
25017
25369
  if (!phone || digitCount(phone) === 0) {
25018
25370
  setIsInvalid(false);
25019
- _optionalChain([onValidationChange, 'optionalCall', _565 => _565(false)]);
25371
+ _optionalChain([onValidationChange, 'optionalCall', _576 => _576(false)]);
25020
25372
  return;
25021
25373
  }
25022
25374
  const invalid = !validatePhoneNumber(phone, countryCode);
25023
25375
  setIsInvalid(invalid);
25024
- _optionalChain([onValidationChange, 'optionalCall', _566 => _566(invalid)]);
25376
+ _optionalChain([onValidationChange, 'optionalCall', _577 => _577(invalid)]);
25025
25377
  }, [countryCode, digitCount, onValidationChange]);
25026
25378
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
25027
25379
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -25070,7 +25422,7 @@ function PhoneInput({
25070
25422
  debouncedValidation(val);
25071
25423
  } else if (digitCount(val) === 0) {
25072
25424
  setIsInvalid(false);
25073
- _optionalChain([onValidationChange, 'optionalCall', _567 => _567(false)]);
25425
+ _optionalChain([onValidationChange, 'optionalCall', _578 => _578(false)]);
25074
25426
  }
25075
25427
  }
25076
25428
  },
@@ -25150,7 +25502,7 @@ function SearchInput({
25150
25502
  }) {
25151
25503
  const [internalValue, setInternalValue] = React83.useState(defaultValue);
25152
25504
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
25153
- const debouncedValue = _chunkCVMSC7M4cjs.useDebounce.call(void 0, currentValue, debounceMs);
25505
+ const debouncedValue = _chunkOII2IEREcjs.useDebounce.call(void 0, currentValue, debounceMs);
25154
25506
  const [isOpen, setIsOpen] = React83.useState(false);
25155
25507
  const [highlightedIndex, setHighlightedIndex] = React83.useState(-1);
25156
25508
  const containerRef = React83.useRef(null);
@@ -25162,7 +25514,7 @@ function SearchInput({
25162
25514
  textMeasureRef,
25163
25515
  badgeRef,
25164
25516
  inputRef
25165
- } = _chunkCVMSC7M4cjs.useAutoLimitTags.call(void 0, {
25517
+ } = _chunkOII2IEREcjs.useAutoLimitTags.call(void 0, {
25166
25518
  count: filterChips.length,
25167
25519
  limitTags,
25168
25520
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -25177,7 +25529,7 @@ function SearchInput({
25177
25529
  if (!showHiddenTags) return;
25178
25530
  const handleClick = (e) => {
25179
25531
  const target = e.target;
25180
- if (!_optionalChain([hiddenTagsRef, 'access', _568 => _568.current, 'optionalAccess', _569 => _569.contains, 'call', _570 => _570(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _571 => _571.current, 'optionalAccess', _572 => _572.contains, 'call', _573 => _573(target)])) {
25532
+ if (!_optionalChain([hiddenTagsRef, 'access', _579 => _579.current, 'optionalAccess', _580 => _580.contains, 'call', _581 => _581(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _582 => _582.current, 'optionalAccess', _583 => _583.contains, 'call', _584 => _584(target)])) {
25181
25533
  setShowHiddenTags(false);
25182
25534
  }
25183
25535
  };
@@ -25225,10 +25577,10 @@ function SearchInput({
25225
25577
  } else {
25226
25578
  setInternalValue("");
25227
25579
  }
25228
- _optionalChain([inputRef, 'access', _574 => _574.current, 'optionalAccess', _575 => _575.focus, 'call', _576 => _576()]);
25580
+ _optionalChain([inputRef, 'access', _585 => _585.current, 'optionalAccess', _586 => _586.focus, 'call', _587 => _587()]);
25229
25581
  };
25230
25582
  const handleResultClick = (result, e) => {
25231
- _optionalChain([onResultSelect, 'optionalCall', _577 => _577(
25583
+ _optionalChain([onResultSelect, 'optionalCall', _588 => _588(
25232
25584
  result,
25233
25585
  e ? {
25234
25586
  metaKey: e.metaKey,
@@ -25260,7 +25612,7 @@ function SearchInput({
25260
25612
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
25261
25613
  handleResultClick(flatResults[highlightedIndex]);
25262
25614
  } else {
25263
- _optionalChain([onSubmit, 'optionalCall', _578 => _578(currentValue)]);
25615
+ _optionalChain([onSubmit, 'optionalCall', _589 => _589(currentValue)]);
25264
25616
  }
25265
25617
  break;
25266
25618
  case "Escape":
@@ -25338,7 +25690,7 @@ function SearchInput({
25338
25690
  dropdownVisible && "!border-ods-accent"
25339
25691
  ),
25340
25692
  onClick: () => {
25341
- _optionalChain([inputRef, 'access', _579 => _579.current, 'optionalAccess', _580 => _580.focus, 'call', _581 => _581()]);
25693
+ _optionalChain([inputRef, 'access', _590 => _590.current, 'optionalAccess', _591 => _591.focus, 'call', _592 => _592()]);
25342
25694
  setIsOpen(true);
25343
25695
  },
25344
25696
  children: [
@@ -25422,10 +25774,10 @@ function SearchInput({
25422
25774
  align: "start",
25423
25775
  onOpenAutoFocus: (e) => {
25424
25776
  e.preventDefault();
25425
- _optionalChain([inputRef, 'access', _582 => _582.current, 'optionalAccess', _583 => _583.focus, 'call', _584 => _584()]);
25777
+ _optionalChain([inputRef, 'access', _593 => _593.current, 'optionalAccess', _594 => _594.focus, 'call', _595 => _595()]);
25426
25778
  },
25427
25779
  onInteractOutside: (e) => {
25428
- if (_optionalChain([containerRef, 'access', _585 => _585.current, 'optionalAccess', _586 => _586.contains, 'call', _587 => _587(e.target)])) {
25780
+ if (_optionalChain([containerRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.contains, 'call', _598 => _598(e.target)])) {
25429
25781
  e.preventDefault();
25430
25782
  }
25431
25783
  },
@@ -25442,10 +25794,10 @@ function SearchInput({
25442
25794
  ref: hiddenTagsPopupRef,
25443
25795
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
25444
25796
  style: {
25445
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _588 => _588.current, 'optionalAccess', _589 => _589.getBoundingClientRect, 'call', _590 => _590(), 'access', _591 => _591.left]), () => ( 0))) : 0
25797
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _599 => _599.current, 'optionalAccess', _600 => _600.getBoundingClientRect, 'call', _601 => _601(), 'access', _602 => _602.left]), () => ( 0))) : 0
25446
25798
  },
25447
25799
  onRemove: (value2) => {
25448
- _optionalChain([onFilterRemove, 'optionalCall', _592 => _592(value2)]);
25800
+ _optionalChain([onFilterRemove, 'optionalCall', _603 => _603(value2)]);
25449
25801
  if (hiddenCount <= 1) setShowHiddenTags(false);
25450
25802
  }
25451
25803
  }
@@ -25496,7 +25848,7 @@ function FilterListItem({
25496
25848
  }) {
25497
25849
  const handleToggle = () => {
25498
25850
  if (disabled) return;
25499
- _optionalChain([onToggle, 'optionalCall', _593 => _593(!selected)]);
25851
+ _optionalChain([onToggle, 'optionalCall', _604 => _604(!selected)]);
25500
25852
  };
25501
25853
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25502
25854
  "div",
@@ -25543,7 +25895,7 @@ function FilterListItem({
25543
25895
  CheckboxPrimitive4.Root,
25544
25896
  {
25545
25897
  checked: selected,
25546
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _594 => _594(c === true)]),
25898
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _605 => _605(c === true)]),
25547
25899
  onClick: (e) => e.stopPropagation(),
25548
25900
  disabled,
25549
25901
  "aria-label": title,
@@ -25629,7 +25981,7 @@ function TagSearchInput({
25629
25981
  textMeasureRef,
25630
25982
  badgeRef,
25631
25983
  inputRef
25632
- } = _chunkCVMSC7M4cjs.useAutoLimitTags.call(void 0, {
25984
+ } = _chunkOII2IEREcjs.useAutoLimitTags.call(void 0, {
25633
25985
  count: tags.length,
25634
25986
  limitTags,
25635
25987
  placeholder: currentPlaceholder
@@ -25642,7 +25994,7 @@ function TagSearchInput({
25642
25994
  if (!showHiddenTags) return;
25643
25995
  const handleClick = (e) => {
25644
25996
  const target = e.target;
25645
- if (!_optionalChain([hiddenTagsRef, 'access', _595 => _595.current, 'optionalAccess', _596 => _596.contains, 'call', _597 => _597(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _598 => _598.current, 'optionalAccess', _599 => _599.contains, 'call', _600 => _600(target)])) {
25997
+ if (!_optionalChain([hiddenTagsRef, 'access', _606 => _606.current, 'optionalAccess', _607 => _607.contains, 'call', _608 => _608(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _609 => _609.current, 'optionalAccess', _610 => _610.contains, 'call', _611 => _611(target)])) {
25646
25998
  setShowHiddenTags(false);
25647
25999
  }
25648
26000
  };
@@ -25658,13 +26010,13 @@ function TagSearchInput({
25658
26010
  e.preventDefault();
25659
26011
  onSubmit(searchValue);
25660
26012
  }
25661
- _optionalChain([onKeyDown, 'optionalCall', _601 => _601(e)]);
26013
+ _optionalChain([onKeyDown, 'optionalCall', _612 => _612(e)]);
25662
26014
  };
25663
26015
  const handleClearAll = (e) => {
25664
26016
  e.stopPropagation();
25665
26017
  e.preventDefault();
25666
- _optionalChain([onClearAll, 'optionalCall', _602 => _602()]);
25667
- _optionalChain([inputRef, 'access', _603 => _603.current, 'optionalAccess', _604 => _604.focus, 'call', _605 => _605()]);
26018
+ _optionalChain([onClearAll, 'optionalCall', _613 => _613()]);
26019
+ _optionalChain([inputRef, 'access', _614 => _614.current, 'optionalAccess', _615 => _615.focus, 'call', _616 => _616()]);
25668
26020
  };
25669
26021
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
25670
26022
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25681,7 +26033,7 @@ function TagSearchInput({
25681
26033
  className
25682
26034
  ),
25683
26035
  onClick: () => {
25684
- if (!disabled) _optionalChain([inputRef, 'access', _606 => _606.current, 'optionalAccess', _607 => _607.focus, 'call', _608 => _608()]);
26036
+ if (!disabled) _optionalChain([inputRef, 'access', _617 => _617.current, 'optionalAccess', _618 => _618.focus, 'call', _619 => _619()]);
25685
26037
  },
25686
26038
  children: [
25687
26039
  /* @__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" }) }),
@@ -25753,7 +26105,7 @@ function TagSearchInput({
25753
26105
  items: hiddenTags,
25754
26106
  disabled,
25755
26107
  style: {
25756
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _609 => _609.current, 'optionalAccess', _610 => _610.getBoundingClientRect, 'call', _611 => _611(), 'access', _612 => _612.left]), () => ( 0))) : 0
26108
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _620 => _620.current, 'optionalAccess', _621 => _621.getBoundingClientRect, 'call', _622 => _622(), 'access', _623 => _623.left]), () => ( 0))) : 0
25757
26109
  },
25758
26110
  onRemove: (value) => {
25759
26111
  onTagRemove(value);
@@ -25855,7 +26207,7 @@ function MarkdownEditor({
25855
26207
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
25856
26208
  _react.useEffect.call(void 0, () => {
25857
26209
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
25858
- if (_optionalChain([mod, 'access', _613 => _613.commands, 'optionalAccess', _614 => _614.getExtraCommands])) {
26210
+ if (_optionalChain([mod, 'access', _624 => _624.commands, 'optionalAccess', _625 => _625.getExtraCommands])) {
25859
26211
  setDefaultExtraCommands(mod.commands.getExtraCommands());
25860
26212
  }
25861
26213
  });
@@ -25889,7 +26241,7 @@ function MarkdownEditor({
25889
26241
  const isImage = file.type.startsWith("image/");
25890
26242
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
25891
26243
  insertTextAtCursor(markdown);
25892
- _optionalChain([onFileUploaded, 'optionalCall', _615 => _615(url, file.name)]);
26244
+ _optionalChain([onFileUploaded, 'optionalCall', _626 => _626(url, file.name)]);
25893
26245
  } catch (error) {
25894
26246
  console.error("File upload failed:", error);
25895
26247
  setUploadProgress("Upload failed. Please try again.");
@@ -25902,7 +26254,7 @@ function MarkdownEditor({
25902
26254
  );
25903
26255
  const handleFileInputChange = _react.useCallback.call(void 0,
25904
26256
  (e) => {
25905
- const file = _optionalChain([e, 'access', _616 => _616.target, 'access', _617 => _617.files, 'optionalAccess', _618 => _618[0]]);
26257
+ const file = _optionalChain([e, 'access', _627 => _627.target, 'access', _628 => _628.files, 'optionalAccess', _629 => _629[0]]);
25906
26258
  if (file) {
25907
26259
  handleFileUpload(file);
25908
26260
  e.target.value = "";
@@ -25913,7 +26265,7 @@ function MarkdownEditor({
25913
26265
  const handlePaste = _react.useCallback.call(void 0,
25914
26266
  (e) => {
25915
26267
  if (!onUploadFile) return;
25916
- const items = _optionalChain([e, 'access', _619 => _619.clipboardData, 'optionalAccess', _620 => _620.items]);
26268
+ const items = _optionalChain([e, 'access', _630 => _630.clipboardData, 'optionalAccess', _631 => _631.items]);
25917
26269
  if (!items) return;
25918
26270
  for (const item of items) {
25919
26271
  if (item.type.startsWith("image/")) {
@@ -25938,7 +26290,7 @@ function MarkdownEditor({
25938
26290
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
25939
26291
  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" }),
25940
26292
  execute: () => {
25941
- _optionalChain([fileInputRef, 'access', _621 => _621.current, 'optionalAccess', _622 => _622.click, 'call', _623 => _623()]);
26293
+ _optionalChain([fileInputRef, 'access', _632 => _632.current, 'optionalAccess', _633 => _633.click, 'call', _634 => _634()]);
25942
26294
  }
25943
26295
  } : null;
25944
26296
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -25950,7 +26302,7 @@ function MarkdownEditor({
25950
26302
  const EDGE_ZONE = 60;
25951
26303
  const MAX_SCROLL_SPEED = 15;
25952
26304
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
25953
- let node = _optionalChain([el, 'optionalAccess', _624 => _624.parentElement]);
26305
+ let node = _optionalChain([el, 'optionalAccess', _635 => _635.parentElement]);
25954
26306
  while (node && node !== document.documentElement) {
25955
26307
  const { overflowY } = window.getComputedStyle(node);
25956
26308
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -26093,7 +26445,7 @@ function matchesAccept(file, accept) {
26093
26445
  });
26094
26446
  }
26095
26447
  function dragHasFiles(e) {
26096
- const types = _optionalChain([e, 'access', _625 => _625.dataTransfer, 'optionalAccess', _626 => _626.types]);
26448
+ const types = _optionalChain([e, 'access', _636 => _636.dataTransfer, 'optionalAccess', _637 => _637.types]);
26097
26449
  if (!types) return false;
26098
26450
  for (let i = 0; i < types.length; i++) {
26099
26451
  if (types[i] === "Files") return true;
@@ -26188,7 +26540,7 @@ function FileUpload({
26188
26540
  e.stopPropagation();
26189
26541
  setDragActive(false);
26190
26542
  if (disabled) return;
26191
- if (_optionalChain([e, 'access', _627 => _627.dataTransfer, 'access', _628 => _628.files, 'optionalAccess', _629 => _629.length])) {
26543
+ if (_optionalChain([e, 'access', _638 => _638.dataTransfer, 'access', _639 => _639.files, 'optionalAccess', _640 => _640.length])) {
26192
26544
  handleFiles(e.dataTransfer.files);
26193
26545
  }
26194
26546
  };
@@ -26216,7 +26568,7 @@ function FileUpload({
26216
26568
  e.preventDefault();
26217
26569
  dragCounter = 0;
26218
26570
  setDragActive(false);
26219
- if (_optionalChain([e, 'access', _630 => _630.dataTransfer, 'optionalAccess', _631 => _631.files, 'optionalAccess', _632 => _632.length])) {
26571
+ if (_optionalChain([e, 'access', _641 => _641.dataTransfer, 'optionalAccess', _642 => _642.files, 'optionalAccess', _643 => _643.length])) {
26220
26572
  handleFilesRef.current(e.dataTransfer.files);
26221
26573
  }
26222
26574
  };
@@ -26238,7 +26590,7 @@ function FileUpload({
26238
26590
  };
26239
26591
  }, [acceptWindowDrops, disabled]);
26240
26592
  const handleFileSelect = (e) => {
26241
- if (_optionalChain([e, 'access', _633 => _633.target, 'access', _634 => _634.files, 'optionalAccess', _635 => _635.length])) {
26593
+ if (_optionalChain([e, 'access', _644 => _644.target, 'access', _645 => _645.files, 'optionalAccess', _646 => _646.length])) {
26242
26594
  handleFiles(e.target.files);
26243
26595
  }
26244
26596
  };
@@ -26255,7 +26607,7 @@ function FileUpload({
26255
26607
  };
26256
26608
  const openDialog = async () => {
26257
26609
  if (disabled) return;
26258
- _optionalChain([fileInputRef, 'access', _636 => _636.current, 'optionalAccess', _637 => _637.click, 'call', _638 => _638()]);
26610
+ _optionalChain([fileInputRef, 'access', _647 => _647.current, 'optionalAccess', _648 => _648.click, 'call', _649 => _649()]);
26259
26611
  };
26260
26612
  const displayError = error || validationError || void 0;
26261
26613
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -26333,7 +26685,7 @@ function FileUpload({
26333
26685
  "button",
26334
26686
  {
26335
26687
  type: "button",
26336
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _639 => _639(entry.id)]),
26688
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _650 => _650(entry.id)]),
26337
26689
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
26338
26690
  "aria-label": `Remove ${entry.fileName}`,
26339
26691
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -26456,7 +26808,7 @@ function ImageUploader({
26456
26808
  onChange(file);
26457
26809
  };
26458
26810
  const handleFileSelect = (e) => {
26459
- validateAndEmit(_optionalChain([e, 'access', _640 => _640.target, 'access', _641 => _641.files, 'optionalAccess', _642 => _642[0]]));
26811
+ validateAndEmit(_optionalChain([e, 'access', _651 => _651.target, 'access', _652 => _652.files, 'optionalAccess', _653 => _653[0]]));
26460
26812
  if (inputRef.current) inputRef.current.value = "";
26461
26813
  };
26462
26814
  const handleDrag = (e) => {
@@ -26471,11 +26823,11 @@ function ImageUploader({
26471
26823
  e.stopPropagation();
26472
26824
  setDragActive(false);
26473
26825
  if (!interactive) return;
26474
- validateAndEmit(_optionalChain([e, 'access', _643 => _643.dataTransfer, 'access', _644 => _644.files, 'optionalAccess', _645 => _645[0]]));
26826
+ validateAndEmit(_optionalChain([e, 'access', _654 => _654.dataTransfer, 'access', _655 => _655.files, 'optionalAccess', _656 => _656[0]]));
26475
26827
  };
26476
26828
  const openDialog = () => {
26477
26829
  if (!interactive) return;
26478
- _optionalChain([inputRef, 'access', _646 => _646.current, 'optionalAccess', _647 => _647.click, 'call', _648 => _648()]);
26830
+ _optionalChain([inputRef, 'access', _657 => _657.current, 'optionalAccess', _658 => _658.click, 'call', _659 => _659()]);
26479
26831
  };
26480
26832
  const handleRootKeyDown = (e) => {
26481
26833
  if (hasImage || !interactive) return;
@@ -26632,7 +26984,7 @@ function CompactAssigneeDropdown({
26632
26984
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26633
26985
  }, [filtered, currentAssignee]);
26634
26986
  const handleSelect = (userId) => {
26635
- const next = _optionalChain([currentAssignee, 'optionalAccess', _649 => _649.id]) === userId ? null : userId;
26987
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _660 => _660.id]) === userId ? null : userId;
26636
26988
  onAssign(next);
26637
26989
  setIsOpen(false);
26638
26990
  };
@@ -26697,7 +27049,7 @@ function CompactAssigneeDropdown({
26697
27049
  }
26698
27050
  ) }),
26699
27051
  /* @__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) => {
26700
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _650 => _650.id]) === opt.value;
27052
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _661 => _661.id]) === opt.value;
26701
27053
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26702
27054
  "button",
26703
27055
  {
@@ -26766,7 +27118,7 @@ function DefaultAssigneeDropdown({
26766
27118
  Autocomplete,
26767
27119
  {
26768
27120
  options,
26769
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _651 => _651.id]), () => ( null)),
27121
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _662 => _662.id]), () => ( null)),
26770
27122
  onChange: (val) => {
26771
27123
  onAssign(val);
26772
27124
  setIsEditing(false);
@@ -27124,14 +27476,14 @@ function TicketInfoSection({
27124
27476
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27125
27477
  SquareAvatar,
27126
27478
  {
27127
- src: _optionalChain([organization, 'optionalAccess', _652 => _652.imageSrc]),
27128
- alt: _optionalChain([organization, 'optionalAccess', _653 => _653.name]),
27129
- fallback: _optionalChain([organization, 'optionalAccess', _654 => _654.name]) || "Org",
27479
+ src: _optionalChain([organization, 'optionalAccess', _663 => _663.imageSrc]),
27480
+ alt: _optionalChain([organization, 'optionalAccess', _664 => _664.name]),
27481
+ fallback: _optionalChain([organization, 'optionalAccess', _665 => _665.name]) || "Org",
27130
27482
  size: "md",
27131
27483
  className: "shrink-0"
27132
27484
  }
27133
27485
  ),
27134
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _655 => _655.name]) || "Unassigned", label: "Organization" })
27486
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _666 => _666.name]) || "Unassigned", label: "Organization" })
27135
27487
  ] }),
27136
27488
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27137
27489
  AssigneeDropdown,
@@ -27152,10 +27504,10 @@ function TicketInfoSection({
27152
27504
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27153
27505
  InfoCell2,
27154
27506
  {
27155
- value: _optionalChain([device, 'optionalAccess', _656 => _656.name]) || "Unassigned",
27507
+ value: _optionalChain([device, 'optionalAccess', _667 => _667.name]) || "Unassigned",
27156
27508
  label: "Device",
27157
- icon: _optionalChain([device, 'optionalAccess', _657 => _657.icon]),
27158
- onClick: _optionalChain([device, 'optionalAccess', _658 => _658.onClick])
27509
+ icon: _optionalChain([device, 'optionalAccess', _668 => _668.icon]),
27510
+ onClick: _optionalChain([device, 'optionalAccess', _669 => _669.onClick])
27159
27511
  }
27160
27512
  ),
27161
27513
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -27914,10 +28266,10 @@ var getContentDimensions = (config) => {
27914
28266
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
27915
28267
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
27916
28268
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
27917
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _659 => _659.mobileContentDimensions, 'optionalAccess', _660 => _660.width]))), () => ( defaultMobile.width));
27918
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _661 => _661.mobileContentDimensions, 'optionalAccess', _662 => _662.height]))), () => ( defaultMobile.height));
27919
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _663 => _663.desktopContentDimensions, 'optionalAccess', _664 => _664.width]))), () => ( defaultDesktop.width));
27920
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _665 => _665.desktopContentDimensions, 'optionalAccess', _666 => _666.height]))), () => ( defaultDesktop.height));
28269
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _670 => _670.mobileContentDimensions, 'optionalAccess', _671 => _671.width]))), () => ( defaultMobile.width));
28270
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _672 => _672.mobileContentDimensions, 'optionalAccess', _673 => _673.height]))), () => ( defaultMobile.height));
28271
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _674 => _674.desktopContentDimensions, 'optionalAccess', _675 => _675.width]))), () => ( defaultDesktop.width));
28272
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _676 => _676.desktopContentDimensions, 'optionalAccess', _677 => _677.height]))), () => ( defaultDesktop.height));
27921
28273
  return {
27922
28274
  mobile: { width: mobileWidth, height: mobileHeight },
27923
28275
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -28051,7 +28403,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
28051
28403
  const contentDimensions = getContentDimensions(config);
28052
28404
  const mobileHeight = contentDimensions.mobile.height;
28053
28405
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
28054
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _667 => _667.innerHeight]) * 0.85 || 650)}px`;
28406
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _678 => _678.innerHeight]) * 0.85 || 650)}px`;
28055
28407
  })(),
28056
28408
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
28057
28409
  const contentDimensions = getContentDimensions(config);
@@ -28156,7 +28508,7 @@ var FigmaPrototypeViewer = ({
28156
28508
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
28157
28509
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
28158
28510
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
28159
- config.defaultSectionId || _optionalChain([config, 'access', _668 => _668.sections, 'access', _669 => _669[0], 'optionalAccess', _670 => _670.id]) || ""
28511
+ config.defaultSectionId || _optionalChain([config, 'access', _679 => _679.sections, 'access', _680 => _680[0], 'optionalAccess', _681 => _681.id]) || ""
28160
28512
  );
28161
28513
  const activeSection = externalActiveSection || internalActiveSection;
28162
28514
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -28246,7 +28598,7 @@ var FigmaPrototypeViewer = ({
28246
28598
  const handleMessage = (event) => {
28247
28599
  if (event.origin !== "https://www.figma.com") return;
28248
28600
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
28249
- if (_optionalChain([event, 'access', _671 => _671.data, 'optionalAccess', _672 => _672.type]) && validEvents.includes(event.data.type)) {
28601
+ if (_optionalChain([event, 'access', _682 => _682.data, 'optionalAccess', _683 => _683.type]) && validEvents.includes(event.data.type)) {
28250
28602
  const figmaEvent = event.data;
28251
28603
  console.log("[Figma Event]", figmaEvent.type, viewMode);
28252
28604
  switch (figmaEvent.type) {
@@ -28256,19 +28608,19 @@ var FigmaPrototypeViewer = ({
28256
28608
  setIframeState("READY");
28257
28609
  break;
28258
28610
  case "PRESENTED_NODE_CHANGED":
28259
- if (_optionalChain([figmaEvent, 'access', _673 => _673.data, 'optionalAccess', _674 => _674.presentedNodeId])) {
28611
+ if (_optionalChain([figmaEvent, 'access', _684 => _684.data, 'optionalAccess', _685 => _685.presentedNodeId])) {
28260
28612
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
28261
28613
  if (!isNavigating) {
28262
28614
  const matchingSection = config.sections.find((s) => {
28263
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _675 => _675.data, 'optionalAccess', _676 => _676.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _677 => _677.data, 'optionalAccess', _678 => _678.presentedNodeId]);
28264
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _679 => _679.data, 'optionalAccess', _680 => _680.presentedNodeId]) || _optionalChain([s, 'access', _681 => _681.mobileStartingNodeId, 'optionalAccess', _682 => _682.replace, 'call', _683 => _683(":", "-")]) === _optionalChain([figmaEvent, 'access', _684 => _684.data, 'optionalAccess', _685 => _685.presentedNodeId]);
28615
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _686 => _686.data, 'optionalAccess', _687 => _687.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _688 => _688.data, 'optionalAccess', _689 => _689.presentedNodeId]);
28616
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _690 => _690.data, 'optionalAccess', _691 => _691.presentedNodeId]) || _optionalChain([s, 'access', _692 => _692.mobileStartingNodeId, 'optionalAccess', _693 => _693.replace, 'call', _694 => _694(":", "-")]) === _optionalChain([figmaEvent, 'access', _695 => _695.data, 'optionalAccess', _696 => _696.presentedNodeId]);
28265
28617
  return desktopMatch || mobileMatch;
28266
28618
  });
28267
28619
  if (matchingSection && matchingSection.id !== activeSection) {
28268
28620
  if (!externalActiveSection) {
28269
28621
  setInternalActiveSection(matchingSection.id);
28270
28622
  }
28271
- _optionalChain([config, 'access', _686 => _686.onSectionChange, 'optionalCall', _687 => _687(matchingSection.id)]);
28623
+ _optionalChain([config, 'access', _697 => _697.onSectionChange, 'optionalCall', _698 => _698(matchingSection.id)]);
28272
28624
  }
28273
28625
  }
28274
28626
  }
@@ -28281,7 +28633,7 @@ var FigmaPrototypeViewer = ({
28281
28633
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
28282
28634
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
28283
28635
  const section = config.sections.find((s) => s.id === sectionId);
28284
- if (!section || !_optionalChain([iframeRef, 'access', _688 => _688.current, 'optionalAccess', _689 => _689.contentWindow]) || !isInitialized) {
28636
+ if (!section || !_optionalChain([iframeRef, 'access', _699 => _699.current, 'optionalAccess', _700 => _700.contentWindow]) || !isInitialized) {
28285
28637
  return;
28286
28638
  }
28287
28639
  setIsNavigating(true);
@@ -28289,7 +28641,7 @@ var FigmaPrototypeViewer = ({
28289
28641
  if (!externalActiveSection) {
28290
28642
  setInternalActiveSection(sectionId);
28291
28643
  }
28292
- _optionalChain([config, 'access', _690 => _690.onSectionChange, 'optionalCall', _691 => _691(sectionId)]);
28644
+ _optionalChain([config, 'access', _701 => _701.onSectionChange, 'optionalCall', _702 => _702(sectionId)]);
28293
28645
  const command = {
28294
28646
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
28295
28647
  data: { nodeId }
@@ -28609,7 +28961,7 @@ var FiltersDropdown = ({
28609
28961
  defaults[section.id] = section.defaultSelected || [];
28610
28962
  });
28611
28963
  setSelectedFilters(defaults);
28612
- _optionalChain([onReset, 'optionalCall', _692 => _692()]);
28964
+ _optionalChain([onReset, 'optionalCall', _703 => _703()]);
28613
28965
  setIsOpen(false);
28614
28966
  };
28615
28967
  const handleApply = () => {
@@ -28903,7 +29255,7 @@ function MediaGalleryManager({
28903
29255
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
28904
29256
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
28905
29257
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
28906
- const file = _optionalChain([event, 'access', _693 => _693.target, 'access', _694 => _694.files, 'optionalAccess', _695 => _695[0]]);
29258
+ const file = _optionalChain([event, 'access', _704 => _704.target, 'access', _705 => _705.files, 'optionalAccess', _706 => _706[0]]);
28907
29259
  if (!file) return;
28908
29260
  let mediaType;
28909
29261
  if (file.type.startsWith("image/")) {
@@ -29018,7 +29370,7 @@ function MediaGalleryManager({
29018
29370
  {
29019
29371
  type: "button",
29020
29372
  variant: "outline",
29021
- onClick: () => _optionalChain([fileInputRef, 'access', _696 => _696.current, 'optionalAccess', _697 => _697.click, 'call', _698 => _698()]),
29373
+ onClick: () => _optionalChain([fileInputRef, 'access', _707 => _707.current, 'optionalAccess', _708 => _708.click, 'call', _709 => _709()]),
29022
29374
  disabled: isUploading,
29023
29375
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29024
29376
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29628,7 +29980,7 @@ function PlatformFilterComponent({
29628
29980
  variant: selectedPlatform === platform.value ? "accent" : "outline",
29629
29981
  size,
29630
29982
  onClick: () => onPlatformChange(platform.value),
29631
- leftIcon: showIcons ? _chunkCVMSC7M4cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29983
+ leftIcon: showIcons ? _chunkOII2IEREcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29632
29984
  className: "text-h3",
29633
29985
  children: platform.label
29634
29986
  },
@@ -29803,7 +30155,7 @@ function ReleaseMediaManager({
29803
30155
  const fileInputRef = _react.useRef.call(void 0, null);
29804
30156
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
29805
30157
  const handleFileSelect = async (event) => {
29806
- const file = _optionalChain([event, 'access', _699 => _699.target, 'access', _700 => _700.files, 'optionalAccess', _701 => _701[0]]);
30158
+ const file = _optionalChain([event, 'access', _710 => _710.target, 'access', _711 => _711.files, 'optionalAccess', _712 => _712[0]]);
29807
30159
  if (!file) return;
29808
30160
  let mediaType;
29809
30161
  if (file.type.startsWith("image/")) {
@@ -29883,7 +30235,7 @@ function ReleaseMediaManager({
29883
30235
  {
29884
30236
  type: "button",
29885
30237
  variant: "outline",
29886
- onClick: () => _optionalChain([fileInputRef, 'access', _702 => _702.current, 'optionalAccess', _703 => _703.click, 'call', _704 => _704()]),
30238
+ onClick: () => _optionalChain([fileInputRef, 'access', _713 => _713.current, 'optionalAccess', _714 => _714.click, 'call', _715 => _715()]),
29887
30239
  disabled: uploadingIndex !== null,
29888
30240
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29889
30241
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30096,7 +30448,7 @@ function SEOEditorPreview({
30096
30448
  const displayImage = hasOgImage || hasFeaturedImage;
30097
30449
  const handleImageUpload = async (event) => {
30098
30450
  if (!onOgImageUpload) return;
30099
- const file = _optionalChain([event, 'access', _705 => _705.target, 'access', _706 => _706.files, 'optionalAccess', _707 => _707[0]]);
30451
+ const file = _optionalChain([event, 'access', _716 => _716.target, 'access', _717 => _717.files, 'optionalAccess', _718 => _718[0]]);
30100
30452
  if (!file) return;
30101
30453
  setIsUploading(true);
30102
30454
  try {
@@ -30227,7 +30579,7 @@ function SEOEditorPreview({
30227
30579
  type: "button",
30228
30580
  variant: "outline",
30229
30581
  size: "icon",
30230
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _708 => _708.click, 'call', _709 => _709()]),
30582
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _719 => _719.click, 'call', _720 => _720()]),
30231
30583
  disabled: disabled || isUploading,
30232
30584
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
30233
30585
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -30250,7 +30602,7 @@ function SEOEditorPreview({
30250
30602
  "div",
30251
30603
  {
30252
30604
  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",
30253
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _710 => _710.click, 'call', _711 => _711()]),
30605
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _721 => _721.click, 'call', _722 => _722()]),
30254
30606
  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: [
30255
30607
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
30256
30608
  /* @__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" })
@@ -30335,7 +30687,7 @@ function SocialLinksManager({
30335
30687
  className = ""
30336
30688
  }) {
30337
30689
  const addLink = () => {
30338
- const firstPlatform = _optionalChain([platforms, 'access', _712 => _712[0], 'optionalAccess', _713 => _713.name]) || "website";
30690
+ const firstPlatform = _optionalChain([platforms, 'access', _723 => _723[0], 'optionalAccess', _724 => _724.name]) || "website";
30339
30691
  onChange([...links, { platform: firstPlatform, url: "" }]);
30340
30692
  };
30341
30693
  const removeLink = (index) => {
@@ -30347,7 +30699,7 @@ function SocialLinksManager({
30347
30699
  onChange(updated);
30348
30700
  };
30349
30701
  const getIcon = (link, platform) => {
30350
- const iconKey = _optionalChain([platform, 'optionalAccess', _714 => _714.icon_name]) || link.platform;
30702
+ const iconKey = _optionalChain([platform, 'optionalAccess', _725 => _725.icon_name]) || link.platform;
30351
30703
  const IconComponent = iconMap[iconKey];
30352
30704
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
30353
30705
  };
@@ -30372,7 +30724,7 @@ function SocialLinksManager({
30372
30724
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30373
30725
  _chunkV2FNIPZJcjs.Input,
30374
30726
  {
30375
- placeholder: _optionalChain([platform, 'optionalAccess', _715 => _715.placeholder]) || "Profile URL",
30727
+ placeholder: _optionalChain([platform, 'optionalAccess', _726 => _726.placeholder]) || "Profile URL",
30376
30728
  value: link.url,
30377
30729
  onChange: (e) => updateLink(index, "url", e.target.value),
30378
30730
  onKeyDown: (e) => {
@@ -30749,7 +31101,7 @@ function VideoSourceSelector({
30749
31101
  input.accept = "video/*";
30750
31102
  input.onchange = async (e) => {
30751
31103
  const target = e.target;
30752
- const file = _optionalChain([target, 'access', _716 => _716.files, 'optionalAccess', _717 => _717[0]]);
31104
+ const file = _optionalChain([target, 'access', _727 => _727.files, 'optionalAccess', _728 => _728[0]]);
30753
31105
  if (!file) return;
30754
31106
  setIsUploading(true);
30755
31107
  setUploadProgress(0);
@@ -31079,7 +31431,7 @@ function TranscriptSummaryEditor({
31079
31431
  {
31080
31432
  id: "subtitles",
31081
31433
  value: subtitles || "",
31082
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _718 => _718(e.target.value)]),
31434
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _729 => _729(e.target.value)]),
31083
31435
  placeholder: subtitlesPlaceholder,
31084
31436
  disabled: disabled || !onSubtitlesChange,
31085
31437
  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",
@@ -31232,7 +31584,7 @@ var AIEnrichSection = ({
31232
31584
  }) => {
31233
31585
  const hasResults = status === "success" || status === "error";
31234
31586
  const shouldDisable = disabled || !canEnrich;
31235
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _719 => _719.filter, 'call', _720 => _720((f) => !f.isFilled)]) || [];
31587
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _730 => _730.filter, 'call', _731 => _731((f) => !f.isFilled)]) || [];
31236
31588
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31237
31589
  "div",
31238
31590
  {
@@ -31270,7 +31622,7 @@ var AIEnrichSection = ({
31270
31622
  {
31271
31623
  id: "ai-enrich-custom-instructions",
31272
31624
  value: _nullishCoalesce(customInstructions, () => ( "")),
31273
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _721 => _721(e.target.value)]),
31625
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _732 => _732(e.target.value)]),
31274
31626
  placeholder: customInstructionsPlaceholder,
31275
31627
  disabled: loading,
31276
31628
  maxLength: customInstructionsMaxLength,
@@ -31399,7 +31751,7 @@ function HighlightVideoSection({
31399
31751
  input.accept = "video/*";
31400
31752
  input.onchange = async (e) => {
31401
31753
  const target = e.target;
31402
- const file = _optionalChain([target, 'access', _722 => _722.files, 'optionalAccess', _723 => _723[0]]);
31754
+ const file = _optionalChain([target, 'access', _733 => _733.files, 'optionalAccess', _734 => _734[0]]);
31403
31755
  if (!file) return;
31404
31756
  setUploadError(null);
31405
31757
  try {
@@ -31901,7 +32253,7 @@ function HighlightVideoPreview({
31901
32253
  input.accept = "video/*";
31902
32254
  input.onchange = async (e) => {
31903
32255
  const target = e.target;
31904
- const file = _optionalChain([target, 'access', _724 => _724.files, 'optionalAccess', _725 => _725[0]]);
32256
+ const file = _optionalChain([target, 'access', _735 => _735.files, 'optionalAccess', _736 => _736[0]]);
31905
32257
  if (!file) return;
31906
32258
  await onUpload(file);
31907
32259
  };
@@ -32088,7 +32440,7 @@ function HighlightVideoCombinedSection({
32088
32440
  input.accept = "video/*";
32089
32441
  input.onchange = async (e) => {
32090
32442
  const target = e.target;
32091
- const file = _optionalChain([target, 'access', _726 => _726.files, 'optionalAccess', _727 => _727[0]]);
32443
+ const file = _optionalChain([target, 'access', _737 => _737.files, 'optionalAccess', _738 => _738[0]]);
32092
32444
  if (!file) return;
32093
32445
  await onUpload(file);
32094
32446
  };
@@ -32385,11 +32737,11 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32385
32737
  return editMode ? "Set Global Permission" : "";
32386
32738
  }
32387
32739
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32388
- return _optionalChain([option, 'optionalAccess', _728 => _728.label]) || level;
32740
+ return _optionalChain([option, 'optionalAccess', _739 => _739.label]) || level;
32389
32741
  };
32390
32742
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32391
32743
  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: [
32392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCVMSC7M4cjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
32744
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOII2IEREcjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
32393
32745
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
32394
32746
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", children: policy.name }),
32395
32747
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -32598,7 +32950,7 @@ function WaitlistForm({
32598
32950
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
32599
32951
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
32600
32952
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
32601
- const { toast } = _chunkCVMSC7M4cjs.useToast.call(void 0, );
32953
+ const { toast } = _chunkOII2IEREcjs.useToast.call(void 0, );
32602
32954
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
32603
32955
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
32604
32956
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -32637,7 +32989,7 @@ function WaitlistForm({
32637
32989
  const finalPhone = phone ? formatPhoneE164(phone, countryCode) : void 0;
32638
32990
  try {
32639
32991
  await onRegister(email, finalPhone);
32640
- } catch (e25) {
32992
+ } catch (e35) {
32641
32993
  }
32642
32994
  };
32643
32995
  if (!isClient) {
@@ -32917,15 +33269,15 @@ function TicketCard({
32917
33269
  transform: _utilities.CSS.Transform.toString(sortable.transform),
32918
33270
  transition: sortable.transition
32919
33271
  };
32920
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _729 => _729.deviceHostnames, 'optionalAccess', _730 => _730.length]) || ticket.organizationName);
33272
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _740 => _740.deviceHostnames, 'optionalAccess', _741 => _741.length]) || ticket.organizationName);
32921
33273
  const deviceText = [
32922
- _optionalChain([ticket, 'access', _731 => _731.deviceHostnames, 'optionalAccess', _732 => _732.join, 'call', _733 => _733(", ")]),
33274
+ _optionalChain([ticket, 'access', _742 => _742.deviceHostnames, 'optionalAccess', _743 => _743.join, 'call', _744 => _744(", ")]),
32923
33275
  ticket.organizationName
32924
33276
  ].filter(Boolean).join(", ");
32925
33277
  const handleClick = (e) => {
32926
33278
  if (sortable.isDragging) e.preventDefault();
32927
33279
  };
32928
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _734 => _734.assignees, 'optionalAccess', _735 => _735.length]) || renderAssignSlot);
33280
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _745 => _745.assignees, 'optionalAccess', _746 => _746.length]) || renderAssignSlot);
32929
33281
  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: [
32930
33282
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32931
33283
  _chunkVJTFBYVGcjs.Flag02Icon,
@@ -32934,7 +33286,7 @@ function TicketCard({
32934
33286
  "aria-label": `Priority: ${ticket.priority}`
32935
33287
  }
32936
33288
  ),
32937
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _736 => _736.assignees, 'optionalAccess', _737 => _737.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33289
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _747 => _747.assignees, 'optionalAccess', _748 => _748.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
32938
33290
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32939
33291
  SquareAvatar,
32940
33292
  {
@@ -32954,7 +33306,7 @@ function TicketCard({
32954
33306
  ] }) : null;
32955
33307
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32956
33308
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
32957
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-xxs)]", children: [
33309
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", children: [
32958
33310
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 truncate text-ods-text-primary", children: ticket.title }),
32959
33311
  showDeviceRow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xxs)] text-h6 text-ods-text-secondary", children: [
32960
33312
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXQFFGR6Ucjs.LaptopIcon, { className: "size-4 shrink-0" }),
@@ -32963,7 +33315,7 @@ function TicketCard({
32963
33315
  ] }),
32964
33316
  rightSection
32965
33317
  ] }),
32966
- _optionalChain([ticket, 'access', _738 => _738.tags, 'optionalAccess', _739 => _739.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33318
+ _optionalChain([ticket, 'access', _749 => _749.tags, 'optionalAccess', _750 => _750.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
32967
33319
  ] });
32968
33320
  const cardClasses = _chunkUC43NICZcjs.cn.call(void 0,
32969
33321
  "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",
@@ -32978,8 +33330,9 @@ function TicketCard({
32978
33330
  ...isOverlay ? {} : sortable.attributes,
32979
33331
  ...isOverlay ? {} : sortable.listeners
32980
33332
  };
33333
+ const innerWrapperClass = "relative z-10 flex flex-col gap-[var(--spacing-system-sf)]";
32981
33334
  if (isOverlay) {
32982
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...outerProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative z-10", children: body }) });
33335
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...outerProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: innerWrapperClass, children: body }) });
32983
33336
  }
32984
33337
  if (href) {
32985
33338
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ...outerProps, children: [
@@ -32994,7 +33347,7 @@ function TicketCard({
32994
33347
  className: "absolute inset-0 z-0 rounded-md focus-visible:outline-none"
32995
33348
  }
32996
33349
  ),
32997
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none relative z-10", children: body })
33350
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "pointer-events-none", innerWrapperClass), children: body })
32998
33351
  ] });
32999
33352
  }
33000
33353
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ...outerProps, children: [
@@ -33007,7 +33360,7 @@ function TicketCard({
33007
33360
  className: "absolute inset-0 z-0 cursor-pointer rounded-md focus-visible:outline-none"
33008
33361
  }
33009
33362
  ),
33010
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none relative z-10", children: body })
33363
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "pointer-events-none", innerWrapperClass), children: body })
33011
33364
  ] });
33012
33365
  }
33013
33366
  function TicketTagRow({ tags }) {
@@ -33024,7 +33377,7 @@ function TicketTagRow({ tags }) {
33024
33377
  _chunkUC43NICZcjs.init_cn.call(void 0, );
33025
33378
 
33026
33379
  var TicketCardSkeleton = React100.forwardRef(
33027
- ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33380
+ ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
33028
33381
  "div",
33029
33382
  {
33030
33383
  ref,
@@ -33033,13 +33386,25 @@ var TicketCardSkeleton = React100.forwardRef(
33033
33386
  className
33034
33387
  ),
33035
33388
  ...props,
33036
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
33037
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col gap-[var(--spacing-system-xsf)]", children: [
33038
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "h-5 w-3/4" }),
33039
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "h-4 w-1/2" })
33389
+ children: [
33390
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
33391
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-xxs)]", children: [
33392
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h3 flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "h-4 w-3/4" }) }),
33393
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-h6 flex items-center gap-[var(--spacing-system-xxs)]", children: [
33394
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "size-4 shrink-0 rounded-sm" }),
33395
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "h-3 w-1/2" })
33396
+ ] })
33397
+ ] }),
33398
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33399
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "size-4 rounded-sm" }),
33400
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "size-8 rounded-full" })
33401
+ ] })
33040
33402
  ] }),
33041
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "size-8 rounded-full" })
33042
- ] })
33403
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 items-center gap-[var(--spacing-system-xxs)]", children: [
33404
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "h-8 w-16 rounded-md" }),
33405
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.Skeleton, { className: "h-8 w-12 rounded-md" })
33406
+ ] })
33407
+ ]
33043
33408
  }
33044
33409
  )
33045
33410
  );
@@ -33123,7 +33488,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33123
33488
  const observer = new IntersectionObserver(
33124
33489
  (entries) => {
33125
33490
  if (entries.some((e) => e.isIntersecting)) {
33126
- _optionalChain([loadMoreRef, 'access', _740 => _740.current, 'optionalCall', _741 => _741(columnIdRef.current)]);
33491
+ _optionalChain([loadMoreRef, 'access', _751 => _751.current, 'optionalCall', _752 => _752(columnIdRef.current)]);
33127
33492
  }
33128
33493
  },
33129
33494
  { root, rootMargin: loadMoreRootMargin }
@@ -33152,7 +33517,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33152
33517
  {
33153
33518
  ticket: t,
33154
33519
  columnId: column.id,
33155
- href: _optionalChain([getTicketHref, 'optionalCall', _742 => _742(t.id)]),
33520
+ href: _optionalChain([getTicketHref, 'optionalCall', _753 => _753(t.id)]),
33156
33521
  renderAssignSlot,
33157
33522
  dragDisabled: column.dragDisabled
33158
33523
  },
@@ -33184,7 +33549,7 @@ function EmptyState3() {
33184
33549
  // src/components/features/board/use-board-collapse.ts
33185
33550
 
33186
33551
  function useBoardCollapse(storageKey) {
33187
- const [persisted, setPersisted] = _chunkCVMSC7M4cjs.useLocalStorage.call(void 0,
33552
+ const [persisted, setPersisted] = _chunkOII2IEREcjs.useLocalStorage.call(void 0,
33188
33553
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
33189
33554
  {}
33190
33555
  );
@@ -33231,7 +33596,7 @@ function Board({
33231
33596
  onThumbPointerDown,
33232
33597
  onThumbPointerMove,
33233
33598
  onThumbPointerUp
33234
- } = _chunkCVMSC7M4cjs.useHorizontalScrollbar.call(void 0, );
33599
+ } = _chunkOII2IEREcjs.useHorizontalScrollbar.call(void 0, );
33235
33600
  const [items, setItems] = React102.useState(columns);
33236
33601
  const isDraggingRef = React102.useRef(false);
33237
33602
  React102.useEffect(() => {
@@ -33247,17 +33612,17 @@ function Board({
33247
33612
  const pointer = _core.pointerWithin.call(void 0, args);
33248
33613
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
33249
33614
  const ticketHit = intersections.find(
33250
- (c) => _optionalChain([c, 'access', _743 => _743.data, 'optionalAccess', _744 => _744.droppableContainer, 'optionalAccess', _745 => _745.data, 'optionalAccess', _746 => _746.current, 'optionalAccess', _747 => _747.type]) === "ticket"
33615
+ (c) => _optionalChain([c, 'access', _754 => _754.data, 'optionalAccess', _755 => _755.droppableContainer, 'optionalAccess', _756 => _756.data, 'optionalAccess', _757 => _757.current, 'optionalAccess', _758 => _758.type]) === "ticket"
33251
33616
  );
33252
33617
  if (ticketHit) return [ticketHit];
33253
33618
  const columnHit = intersections.find(
33254
- (c) => _optionalChain([c, 'access', _748 => _748.data, 'optionalAccess', _749 => _749.droppableContainer, 'optionalAccess', _750 => _750.data, 'optionalAccess', _751 => _751.current, 'optionalAccess', _752 => _752.type]) === "column"
33619
+ (c) => _optionalChain([c, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.droppableContainer, 'optionalAccess', _761 => _761.data, 'optionalAccess', _762 => _762.current, 'optionalAccess', _763 => _763.type]) === "column"
33255
33620
  );
33256
33621
  if (columnHit) {
33257
- const columnId = _optionalChain([columnHit, 'access', _753 => _753.data, 'optionalAccess', _754 => _754.droppableContainer, 'optionalAccess', _755 => _755.data, 'optionalAccess', _756 => _756.current, 'optionalAccess', _757 => _757.columnId]);
33622
+ const columnId = _optionalChain([columnHit, 'access', _764 => _764.data, 'optionalAccess', _765 => _765.droppableContainer, 'optionalAccess', _766 => _766.data, 'optionalAccess', _767 => _767.current, 'optionalAccess', _768 => _768.columnId]);
33258
33623
  const ticketsInColumn = args.droppableContainers.filter((c) => {
33259
33624
  const d = c.data.current;
33260
- return _optionalChain([d, 'optionalAccess', _758 => _758.type]) === "ticket" && d.columnId === columnId;
33625
+ return _optionalChain([d, 'optionalAccess', _769 => _769.type]) === "ticket" && d.columnId === columnId;
33261
33626
  });
33262
33627
  if (ticketsInColumn.length > 0) {
33263
33628
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -33282,20 +33647,20 @@ function Board({
33282
33647
  const overId = String(over.id);
33283
33648
  if (activeId === overId) return;
33284
33649
  const overData = over.data.current;
33285
- const fromColumnId = _optionalChain([locate, 'call', _759 => _759(items, activeId), 'optionalAccess', _760 => _760.columnId]);
33286
- const toColumnId = _optionalChain([overData, 'optionalAccess', _761 => _761.columnId]);
33650
+ const fromColumnId = _optionalChain([locate, 'call', _770 => _770(items, activeId), 'optionalAccess', _771 => _771.columnId]);
33651
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _772 => _772.columnId]);
33287
33652
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
33288
33653
  const origin = dragOriginRef.current;
33289
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _762 => _762.fromColumnId]) === toColumnId;
33654
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _773 => _773.fromColumnId]) === toColumnId;
33290
33655
  const targetCol = items.find((c) => c.id === toColumnId);
33291
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _763 => _763.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33292
- if (_optionalChain([targetCol, 'optionalAccess', _764 => _764.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33656
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _774 => _774.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33657
+ if (_optionalChain([targetCol, 'optionalAccess', _775 => _775.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33293
33658
  setItems((prev) => {
33294
33659
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
33295
33660
  const toCol = prev.find((c) => c.id === toColumnId);
33296
33661
  if (fromIndex < 0 || !toCol) return prev;
33297
33662
  let toIndex;
33298
- if (_optionalChain([overData, 'optionalAccess', _765 => _765.type]) === "column") {
33663
+ if (_optionalChain([overData, 'optionalAccess', _776 => _776.type]) === "column") {
33299
33664
  toIndex = toCol.tickets.length;
33300
33665
  } else {
33301
33666
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33337,14 +33702,14 @@ function Board({
33337
33702
  const toColumnId = located.columnId;
33338
33703
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33339
33704
  const targetCol = items.find((c) => c.id === toColumnId);
33340
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _766 => _766.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _767 => _767.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33705
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _777 => _777.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _778 => _778.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33341
33706
  setItems(columns);
33342
33707
  return;
33343
33708
  }
33344
33709
  let finalIndex = located.index;
33345
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _768 => _768.find, 'call', _769 => _769((c) => c.id === toColumnId), 'optionalAccess', _770 => _770.tickets]), () => ( []));
33710
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _779 => _779.find, 'call', _780 => _780((c) => c.id === toColumnId), 'optionalAccess', _781 => _781.tickets]), () => ( []));
33346
33711
  const overData = over.data.current;
33347
- if (_optionalChain([overData, 'optionalAccess', _771 => _771.type]) === "ticket") {
33712
+ if (_optionalChain([overData, 'optionalAccess', _782 => _782.type]) === "ticket") {
33348
33713
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33349
33714
  if (overIndex >= 0 && overIndex !== located.index) {
33350
33715
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33364,8 +33729,8 @@ function Board({
33364
33729
  ticketId: origin.ticketId,
33365
33730
  fromColumnId: origin.fromColumnId,
33366
33731
  toColumnId,
33367
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _772 => _772[finalIndex - 1], 'optionalAccess', _773 => _773.id]), () => ( null)),
33368
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _774 => _774[finalIndex + 1], 'optionalAccess', _775 => _775.id]), () => ( null))
33732
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _783 => _783[finalIndex - 1], 'optionalAccess', _784 => _784.id]), () => ( null)),
33733
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _785 => _785[finalIndex + 1], 'optionalAccess', _786 => _786.id]), () => ( null))
33369
33734
  });
33370
33735
  };
33371
33736
  const handleDragCancel = () => {
@@ -33394,8 +33759,8 @@ function Board({
33394
33759
  children: items.map((column, i) => {
33395
33760
  const prev = items[i - 1];
33396
33761
  const next = items[i + 1];
33397
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _776 => _776.system]));
33398
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _777 => _777.system]));
33762
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _787 => _787.system]));
33763
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _788 => _788.system]));
33399
33764
  const showGap = i > 0 && !joinLeft;
33400
33765
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React102.Fragment, { children: [
33401
33766
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33453,7 +33818,7 @@ function locate(cols, ticketId) {
33453
33818
  return null;
33454
33819
  }
33455
33820
  function findIndexInColumn(cols, columnId, ticketId) {
33456
- return _nullishCoalesce(_optionalChain([cols, 'access', _778 => _778.find, 'call', _779 => _779((c) => c.id === columnId), 'optionalAccess', _780 => _780.tickets, 'access', _781 => _781.findIndex, 'call', _782 => _782((t) => t.id === ticketId)]), () => ( -1));
33821
+ return _nullishCoalesce(_optionalChain([cols, 'access', _789 => _789.find, 'call', _790 => _790((c) => c.id === columnId), 'optionalAccess', _791 => _791.tickets, 'access', _792 => _792.findIndex, 'call', _793 => _793((t) => t.id === ticketId)]), () => ( -1));
33457
33822
  }
33458
33823
 
33459
33824
  // src/components/features/board/types.ts
@@ -34118,5 +34483,6 @@ function canonicalize(status) {
34118
34483
 
34119
34484
 
34120
34485
 
34121
- 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.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.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.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.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.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;
34122
- //# sourceMappingURL=chunk-IQM3G2I6.cjs.map
34486
+
34487
+ 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.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.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.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.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.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.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;
34488
+ //# sourceMappingURL=chunk-IMDXOVYD.cjs.map