@flamingo-stack/openframe-frontend-core 0.0.194 → 0.0.195-snapshot.20260519151313

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 (51) hide show
  1. package/dist/{chunk-PJ5KFD2V.js → chunk-4ML3NA2L.js} +75 -1
  2. package/dist/{chunk-PJ5KFD2V.js.map → chunk-4ML3NA2L.js.map} +1 -1
  3. package/dist/{chunk-C5VTN2SB.js → chunk-BXPH5SOL.js} +748 -359
  4. package/dist/chunk-BXPH5SOL.js.map +1 -0
  5. package/dist/{chunk-56JS47IQ.cjs → chunk-E6AWU7EI.cjs} +794 -405
  6. package/dist/chunk-E6AWU7EI.cjs.map +1 -0
  7. package/dist/{chunk-CVMSC7M4.cjs → chunk-OII2IERE.cjs} +77 -3
  8. package/dist/chunk-OII2IERE.cjs.map +1 -0
  9. package/dist/components/chat/hooks/index.d.ts +1 -0
  10. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  11. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +15 -0
  12. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -0
  13. package/dist/components/chat/types/api.types.d.ts +43 -0
  14. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  15. package/dist/components/chat/types/network.types.d.ts +4 -0
  16. package/dist/components/chat/types/network.types.d.ts.map +1 -1
  17. package/dist/components/chat/utils/message-segment-accumulator.d.ts +16 -0
  18. package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
  19. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  20. package/dist/components/features/index.cjs +3 -3
  21. package/dist/components/features/index.js +2 -2
  22. package/dist/components/index.cjs +5 -3
  23. package/dist/components/index.cjs.map +1 -1
  24. package/dist/components/index.js +4 -2
  25. package/dist/components/navigation/index.cjs +3 -3
  26. package/dist/components/navigation/index.js +2 -2
  27. package/dist/components/ui/index.cjs +5 -3
  28. package/dist/components/ui/index.cjs.map +1 -1
  29. package/dist/components/ui/index.js +4 -2
  30. package/dist/hooks/index.cjs +2 -2
  31. package/dist/hooks/index.js +1 -1
  32. package/dist/index.cjs +5 -3
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.js +4 -2
  35. package/dist/nats/index.cjs +73 -0
  36. package/dist/nats/index.cjs.map +1 -1
  37. package/dist/nats/index.js +73 -0
  38. package/dist/nats/index.js.map +1 -1
  39. package/dist/nats/nats.d.ts +22 -1
  40. package/dist/nats/nats.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/components/chat/hooks/index.ts +1 -0
  43. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +474 -0
  44. package/src/components/chat/types/api.types.ts +45 -0
  45. package/src/components/chat/types/network.types.ts +4 -0
  46. package/src/components/chat/utils/message-segment-accumulator.ts +28 -0
  47. package/src/components/chat/utils/process-historical-messages.ts +23 -5
  48. package/src/nats/nats.ts +117 -0
  49. package/dist/chunk-56JS47IQ.cjs.map +0 -1
  50. package/dist/chunk-C5VTN2SB.js.map +0 -1
  51. package/dist/chunk-CVMSC7M4.cjs.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();
@@ -7909,6 +8261,7 @@ var MessageSegmentAccumulator = class {
7909
8261
  return this.getSegments();
7910
8262
  }
7911
8263
  const toolKey = execId || `${toolData.integratedToolType}-${toolData.toolFunction}`;
8264
+ this.resolvePendingApprovalForExecution();
7912
8265
  if (toolData.type === "EXECUTING_TOOL") {
7913
8266
  this.executingTools.set(toolKey, {
7914
8267
  integratedToolType: toolData.integratedToolType,
@@ -7927,8 +8280,8 @@ var MessageSegmentAccumulator = class {
7927
8280
  type: "tool_execution",
7928
8281
  data: {
7929
8282
  ...toolData,
7930
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _173 => _173.data, 'access', _174 => _174.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _175 => _175.toolTitle]))),
7931
- 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])
7932
8285
  }
7933
8286
  };
7934
8287
  if (existingIndex !== -1) {
@@ -7952,8 +8305,8 @@ var MessageSegmentAccumulator = class {
7952
8305
  if (seg.type !== "approval_batch") return seg;
7953
8306
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
7954
8307
  if (!hasCall) return seg;
7955
- const prev = _optionalChain([seg, 'access', _177 => _177.data, 'access', _178 => _178.executions, 'optionalAccess', _179 => _179[execId]]);
7956
- 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]) };
7957
8310
  matched = true;
7958
8311
  return {
7959
8312
  ...seg,
@@ -7965,6 +8318,30 @@ var MessageSegmentAccumulator = class {
7965
8318
  });
7966
8319
  return matched;
7967
8320
  }
8321
+ /**
8322
+ * A tool only ever runs after its approval gate was granted. The legacy /
8323
+ * single `approval_request` segment carries no `toolExecutionRequestId` to
8324
+ * correlate with the execution, and an observer (e.g. a technician
8325
+ * mirroring the client chat) may never receive an `APPROVAL_RESULT` chunk —
8326
+ * only the tool's `EXECUTING_TOOL` / `EXECUTED_TOOL` events. Treat the
8327
+ * arrival of a tool execution as implicit approval of the most recent
8328
+ * still-pending gate so the card does not stay stuck `pending` in realtime.
8329
+ *
8330
+ * The agent stays paused while an approval is outstanding, so there is at
8331
+ * most one relevant gate; flipping only the latest pending one is safe and
8332
+ * monotonic (never downgrades, can't make a correct state wrong — an
8333
+ * unapproved tool cannot execute). `approval_batch` is handled separately by
8334
+ * `applyExecutionToBatch` and is intentionally left untouched here.
8335
+ */
8336
+ resolvePendingApprovalForExecution() {
8337
+ for (let i = this.segments.length - 1; i >= 0; i--) {
8338
+ const seg = this.segments[i];
8339
+ if (seg.type === "approval_request" && seg.status === "pending") {
8340
+ this.segments[i] = { ...seg, status: "approved" };
8341
+ return;
8342
+ }
8343
+ }
8344
+ }
7968
8345
  /**
7969
8346
  * Track a pending approval request
7970
8347
  */
@@ -8049,10 +8426,10 @@ var MessageSegmentAccumulator = class {
8049
8426
  const segment = {
8050
8427
  type: "approval_request",
8051
8428
  data: {
8052
- command: _optionalChain([pendingApproval, 'optionalAccess', _182 => _182.command]) || "",
8053
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _183 => _183.explanation]),
8429
+ command: _optionalChain([pendingApproval, 'optionalAccess', _193 => _193.command]) || "",
8430
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _194 => _194.explanation]),
8054
8431
  requestId,
8055
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _184 => _184.approvalType]) || approvalType
8432
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _195 => _195.approvalType]) || approvalType
8056
8433
  },
8057
8434
  status,
8058
8435
  onApprove: this.callbacks.onApprove,
@@ -8240,7 +8617,7 @@ function useRealtimeChunkProcessor(options) {
8240
8617
  if (initialState.escalatedApprovals) {
8241
8618
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
8242
8619
  initialState.escalatedApprovals.forEach((data, requestId) => {
8243
- _optionalChain([callbacks, 'access', _185 => _185.onEscalatedApproval, 'optionalCall', _186 => _186(requestId, data)]);
8620
+ _optionalChain([callbacks, 'access', _196 => _196.onEscalatedApproval, 'optionalCall', _197 => _197(requestId, data)]);
8244
8621
  });
8245
8622
  }
8246
8623
  hasInitializedWithData.current = true;
@@ -8259,30 +8636,30 @@ function useRealtimeChunkProcessor(options) {
8259
8636
  switch (action.action) {
8260
8637
  case "message_start":
8261
8638
  isInStreamRef.current = true;
8262
- _optionalChain([callbacks, 'access', _187 => _187.onStreamStart, 'optionalCall', _188 => _188()]);
8639
+ _optionalChain([callbacks, 'access', _198 => _198.onStreamStart, 'optionalCall', _199 => _199()]);
8263
8640
  accumulator.resetSegments();
8264
8641
  break;
8265
8642
  case "message_end":
8266
8643
  isInStreamRef.current = false;
8267
- _optionalChain([callbacks, 'access', _189 => _189.onStreamEnd, 'optionalCall', _190 => _190()]);
8644
+ _optionalChain([callbacks, 'access', _200 => _200.onStreamEnd, 'optionalCall', _201 => _201()]);
8268
8645
  accumulator.resetSegments();
8269
8646
  break;
8270
8647
  case "metadata":
8271
- _optionalChain([callbacks, 'access', _191 => _191.onMetadata, 'optionalCall', _192 => _192(action)]);
8648
+ _optionalChain([callbacks, 'access', _202 => _202.onMetadata, 'optionalCall', _203 => _203(action)]);
8272
8649
  break;
8273
8650
  case "text": {
8274
8651
  const segments = accumulator.appendText(action.text);
8275
- _optionalChain([callbacks, 'access', _193 => _193.onSegmentsUpdate, 'optionalCall', _194 => _194(segments)]);
8652
+ _optionalChain([callbacks, 'access', _204 => _204.onSegmentsUpdate, 'optionalCall', _205 => _205(segments)]);
8276
8653
  break;
8277
8654
  }
8278
8655
  case "thinking": {
8279
8656
  const segments = accumulator.appendThinking(action.text);
8280
- _optionalChain([callbacks, 'access', _195 => _195.onSegmentsUpdate, 'optionalCall', _196 => _196(segments)]);
8657
+ _optionalChain([callbacks, 'access', _206 => _206.onSegmentsUpdate, 'optionalCall', _207 => _207(segments)]);
8281
8658
  break;
8282
8659
  }
8283
8660
  case "tool_execution": {
8284
8661
  const segments = accumulator.addToolExecution(action.segment);
8285
- _optionalChain([callbacks, 'access', _197 => _197.onSegmentsUpdate, 'optionalCall', _198 => _198(segments)]);
8662
+ _optionalChain([callbacks, 'access', _208 => _208.onSegmentsUpdate, 'optionalCall', _209 => _209(segments)]);
8286
8663
  break;
8287
8664
  }
8288
8665
  case "approval_request": {
@@ -8296,10 +8673,10 @@ function useRealtimeChunkProcessor(options) {
8296
8673
  approvalType,
8297
8674
  status
8298
8675
  );
8299
- _optionalChain([callbacks, 'access', _199 => _199.onSegmentsUpdate, 'optionalCall', _200 => _200(segments)]);
8676
+ _optionalChain([callbacks, 'access', _210 => _210.onSegmentsUpdate, 'optionalCall', _211 => _211(segments)]);
8300
8677
  } else {
8301
8678
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
8302
- _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 })]);
8303
8680
  }
8304
8681
  break;
8305
8682
  }
@@ -8311,20 +8688,20 @@ function useRealtimeChunkProcessor(options) {
8311
8688
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
8312
8689
  pendingEscalatedRef.current.set(requestId, {
8313
8690
  command: summary,
8314
- explanation: _optionalChain([required, 'optionalAccess', _203 => _203.toolExplanation]),
8691
+ explanation: _optionalChain([required, 'optionalAccess', _214 => _214.toolExplanation]),
8315
8692
  approvalType,
8316
8693
  toolCalls
8317
8694
  });
8318
- _optionalChain([callbacks, 'access', _204 => _204.onEscalatedApproval, 'optionalCall', _205 => _205(requestId, {
8695
+ _optionalChain([callbacks, 'access', _215 => _215.onEscalatedApproval, 'optionalCall', _216 => _216(requestId, {
8319
8696
  command: summary,
8320
- explanation: _optionalChain([required, 'optionalAccess', _206 => _206.toolExplanation]),
8697
+ explanation: _optionalChain([required, 'optionalAccess', _217 => _217.toolExplanation]),
8321
8698
  approvalType
8322
8699
  })]);
8323
8700
  break;
8324
8701
  }
8325
8702
  if (batchApprovalsEnabled) {
8326
8703
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
8327
- _optionalChain([callbacks, 'access', _207 => _207.onSegmentsUpdate, 'optionalCall', _208 => _208(segments2)]);
8704
+ _optionalChain([callbacks, 'access', _218 => _218.onSegmentsUpdate, 'optionalCall', _219 => _219(segments2)]);
8328
8705
  break;
8329
8706
  }
8330
8707
  let segments = accumulator.getSegments();
@@ -8338,7 +8715,7 @@ function useRealtimeChunkProcessor(options) {
8338
8715
  status
8339
8716
  );
8340
8717
  }
8341
- _optionalChain([callbacks, 'access', _209 => _209.onSegmentsUpdate, 'optionalCall', _210 => _210(segments)]);
8718
+ _optionalChain([callbacks, 'access', _220 => _220.onSegmentsUpdate, 'optionalCall', _221 => _221(segments)]);
8342
8719
  break;
8343
8720
  }
8344
8721
  case "approval_result": {
@@ -8347,7 +8724,7 @@ function useRealtimeChunkProcessor(options) {
8347
8724
  const status = approved ? "approved" : "rejected";
8348
8725
  if (escalatedData) {
8349
8726
  pendingEscalatedRef.current.delete(requestId);
8350
- _optionalChain([callbacks, 'access', _211 => _211.onEscalatedApprovalResult, 'optionalCall', _212 => _212(requestId, approved, {
8727
+ _optionalChain([callbacks, 'access', _222 => _222.onEscalatedApprovalResult, 'optionalCall', _223 => _223(requestId, approved, {
8351
8728
  command: escalatedData.command,
8352
8729
  explanation: escalatedData.explanation,
8353
8730
  approvalType: escalatedData.approvalType
@@ -8360,7 +8737,7 @@ function useRealtimeChunkProcessor(options) {
8360
8737
  escalatedData.toolCalls,
8361
8738
  status
8362
8739
  );
8363
- _optionalChain([callbacks, 'access', _213 => _213.onSegmentsUpdate, 'optionalCall', _214 => _214(segments)]);
8740
+ _optionalChain([callbacks, 'access', _224 => _224.onSegmentsUpdate, 'optionalCall', _225 => _225(segments)]);
8364
8741
  } else {
8365
8742
  let segments = accumulator.getSegments();
8366
8743
  for (const call of escalatedData.toolCalls) {
@@ -8373,7 +8750,7 @@ function useRealtimeChunkProcessor(options) {
8373
8750
  status
8374
8751
  );
8375
8752
  }
8376
- _optionalChain([callbacks, 'access', _215 => _215.onSegmentsUpdate, 'optionalCall', _216 => _216(segments)]);
8753
+ _optionalChain([callbacks, 'access', _226 => _226.onSegmentsUpdate, 'optionalCall', _227 => _227(segments)]);
8377
8754
  }
8378
8755
  } else {
8379
8756
  const segments = accumulator.addApprovalRequest(
@@ -8383,63 +8760,63 @@ function useRealtimeChunkProcessor(options) {
8383
8760
  escalatedData.approvalType,
8384
8761
  status
8385
8762
  );
8386
- _optionalChain([callbacks, 'access', _217 => _217.onSegmentsUpdate, 'optionalCall', _218 => _218(segments)]);
8763
+ _optionalChain([callbacks, 'access', _228 => _228.onSegmentsUpdate, 'optionalCall', _229 => _229(segments)]);
8387
8764
  }
8388
8765
  } else {
8389
8766
  const segments = accumulator.updateApprovalStatus(requestId, status);
8390
- _optionalChain([callbacks, 'access', _219 => _219.onSegmentsUpdate, 'optionalCall', _220 => _220(segments)]);
8767
+ _optionalChain([callbacks, 'access', _230 => _230.onSegmentsUpdate, 'optionalCall', _231 => _231(segments)]);
8391
8768
  }
8392
8769
  void approvalType;
8393
8770
  break;
8394
8771
  }
8395
8772
  case "error": {
8396
8773
  let message;
8397
- if ("details" in action && _optionalChain([action, 'optionalAccess', _221 => _221.details])) {
8774
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _232 => _232.details])) {
8398
8775
  try {
8399
- message = _optionalChain([JSON, 'access', _222 => _222.parse, 'call', _223 => _223(action.details), 'optionalAccess', _224 => _224.error, 'optionalAccess', _225 => _225.message]);
8400
- } 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) {
8401
8778
  message = action.details;
8402
8779
  }
8403
8780
  }
8404
8781
  const segments = accumulator.addError(action.error, message);
8405
- _optionalChain([callbacks, 'access', _226 => _226.onSegmentsUpdate, 'optionalCall', _227 => _227(segments)]);
8406
- _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)]);
8407
8784
  break;
8408
8785
  }
8409
8786
  case "system": {
8410
- _optionalChain([callbacks, 'access', _230 => _230.onSystemMessage, 'optionalCall', _231 => _231(action.text)]);
8787
+ _optionalChain([callbacks, 'access', _241 => _241.onSystemMessage, 'optionalCall', _242 => _242(action.text)]);
8411
8788
  break;
8412
8789
  }
8413
8790
  case "direct_message": {
8414
- _optionalChain([callbacks, 'access', _232 => _232.onDirectMessage, 'optionalCall', _233 => _233(action.text, {
8791
+ _optionalChain([callbacks, 'access', _243 => _243.onDirectMessage, 'optionalCall', _244 => _244(action.text, {
8415
8792
  ownerType: action.ownerType,
8416
8793
  displayName: action.displayName
8417
8794
  })]);
8418
8795
  break;
8419
8796
  }
8420
8797
  case "message_request":
8421
- _optionalChain([callbacks, 'access', _234 => _234.onUserMessage, 'optionalCall', _235 => _235(action.text, {
8798
+ _optionalChain([callbacks, 'access', _245 => _245.onUserMessage, 'optionalCall', _246 => _246(action.text, {
8422
8799
  ownerType: action.ownerType,
8423
8800
  displayName: action.displayName
8424
8801
  })]);
8425
8802
  break;
8426
8803
  case "token_usage":
8427
- _optionalChain([callbacks, 'access', _236 => _236.onTokenUsage, 'optionalCall', _237 => _237(action.data)]);
8804
+ _optionalChain([callbacks, 'access', _247 => _247.onTokenUsage, 'optionalCall', _248 => _248(action.data)]);
8428
8805
  break;
8429
8806
  case "context_compaction_start": {
8430
8807
  const standalone = !isInStreamRef.current;
8431
8808
  const segments = accumulator.addContextCompaction();
8432
- _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)]);
8433
8810
  break;
8434
8811
  }
8435
8812
  case "context_compaction_end": {
8436
8813
  const standalone = !isInStreamRef.current;
8437
8814
  const segments = accumulator.completeContextCompaction(action.summary);
8438
- _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)]);
8439
8816
  break;
8440
8817
  }
8441
8818
  case "dialog_closed":
8442
- _optionalChain([callbacks, 'access', _242 => _242.onDialogClosed, 'optionalCall', _243 => _243()]);
8819
+ _optionalChain([callbacks, 'access', _253 => _253.onDialogClosed, 'optionalCall', _254 => _254()]);
8443
8820
  break;
8444
8821
  default:
8445
8822
  break;
@@ -8475,12 +8852,12 @@ function useRealtimeChunkProcessor(options) {
8475
8852
 
8476
8853
  // src/components/chat/utils/process-historical-messages.ts
8477
8854
  function getOwnerDisplayName(owner) {
8478
- 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) {
8479
8856
  const { firstName, lastName } = owner.user;
8480
8857
  const name = [firstName, lastName].filter(Boolean).join(" ");
8481
8858
  if (name) return name;
8482
8859
  }
8483
- 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";
8484
8861
  }
8485
8862
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
8486
8863
  messageDataArray.forEach((data) => {
@@ -8543,10 +8920,10 @@ function processHistoricalMessages(messages, options = {}) {
8543
8920
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
8544
8921
  return;
8545
8922
  }
8546
- 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;
8547
8924
  if (isUserMessage) {
8548
8925
  flushAssistantMessage();
8549
- 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";
8550
8927
  messageDataArray.forEach((data) => {
8551
8928
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8552
8929
  processedMessages.push({
@@ -8570,7 +8947,7 @@ function processHistoricalMessages(messages, options = {}) {
8570
8947
  });
8571
8948
  const nextMsg = messages[index + 1];
8572
8949
  const isLastMessage = index === messages.length - 1;
8573
- 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);
8574
8951
  if (isLastMessage || nextIsFromUser) {
8575
8952
  flushAssistantMessage();
8576
8953
  }
@@ -8662,14 +9039,25 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8662
9039
  }
8663
9040
  }
8664
9041
  } else {
8665
- accumulator.trackApprovalRequest(data.approvalRequestId, {
8666
- command: data.command || "",
8667
- explanation: data.explanation,
8668
- approvalType
8669
- });
9042
+ const resolvedStatus = approvalStatuses[data.approvalRequestId];
9043
+ if (resolvedStatus === "approved" || resolvedStatus === "rejected") {
9044
+ accumulator.addApprovalRequest(
9045
+ data.approvalRequestId,
9046
+ data.command || "",
9047
+ data.explanation,
9048
+ approvalType,
9049
+ resolvedStatus
9050
+ );
9051
+ } else {
9052
+ accumulator.trackApprovalRequest(data.approvalRequestId, {
9053
+ command: data.command || "",
9054
+ explanation: data.explanation,
9055
+ approvalType
9056
+ });
9057
+ }
8670
9058
  }
8671
9059
  } else {
8672
- _optionalChain([escalatedApprovals, 'optionalAccess', _256 => _256.set, 'call', _257 => _257(data.approvalRequestId, {
9060
+ _optionalChain([escalatedApprovals, 'optionalAccess', _267 => _267.set, 'call', _268 => _268(data.approvalRequestId, {
8673
9061
  command: data.command || "",
8674
9062
  explanation: data.explanation,
8675
9063
  approvalType,
@@ -8682,8 +9070,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8682
9070
  if ("approvalRequestId" in data && data.approvalRequestId) {
8683
9071
  const existingStatus = approvalStatuses[data.approvalRequestId];
8684
9072
  const status = existingStatus || (data.approved ? "approved" : "rejected");
8685
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _258 => _258.get, 'call', _259 => _259(data.approvalRequestId)]);
8686
- 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) {
8687
9075
  if (batchApprovalsEnabled) {
8688
9076
  accumulator.addApprovalBatch(
8689
9077
  data.approvalRequestId,
@@ -8703,7 +9091,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8703
9091
  );
8704
9092
  }
8705
9093
  }
8706
- _optionalChain([escalatedApprovals, 'optionalAccess', _261 => _261.delete, 'call', _262 => _262(data.approvalRequestId)]);
9094
+ _optionalChain([escalatedApprovals, 'optionalAccess', _272 => _272.delete, 'call', _273 => _273(data.approvalRequestId)]);
8707
9095
  break;
8708
9096
  }
8709
9097
  if (escalatedData) {
@@ -8712,7 +9100,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8712
9100
  explanation: escalatedData.explanation,
8713
9101
  approvalType: escalatedData.approvalType
8714
9102
  });
8715
- _optionalChain([escalatedApprovals, 'optionalAccess', _263 => _263.delete, 'call', _264 => _264(data.approvalRequestId)]);
9103
+ _optionalChain([escalatedApprovals, 'optionalAccess', _274 => _274.delete, 'call', _275 => _275(data.approvalRequestId)]);
8716
9104
  }
8717
9105
  const before = accumulator.getSegments();
8718
9106
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -8728,10 +9116,10 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8728
9116
  case MESSAGE_TYPE.ERROR:
8729
9117
  if ("error" in data) {
8730
9118
  let message;
8731
- if ("details" in data && _optionalChain([data, 'optionalAccess', _265 => _265.details])) {
9119
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _276 => _276.details])) {
8732
9120
  try {
8733
- message = _optionalChain([JSON, 'access', _266 => _266.parse, 'call', _267 => _267(data.details), 'optionalAccess', _268 => _268.error, 'optionalAccess', _269 => _269.message]);
8734
- } 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) {
8735
9123
  message = data.details;
8736
9124
  }
8737
9125
  }
@@ -8813,10 +9201,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8813
9201
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
8814
9202
  return;
8815
9203
  }
8816
- 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;
8817
9205
  if (isUserMessage) {
8818
9206
  flushAssistantMessage();
8819
- 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";
8820
9208
  messageDataArray.forEach((data) => {
8821
9209
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8822
9210
  processedMessages.push({
@@ -8840,7 +9228,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8840
9228
  });
8841
9229
  const nextMsg = messages[index + 1];
8842
9230
  const isLastMessage = index === messages.length - 1;
8843
- 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);
8844
9232
  if (isLastMessage || nextIsFromUser) {
8845
9233
  flushAssistantMessage();
8846
9234
  }
@@ -8900,7 +9288,7 @@ function extractIncompleteMessageState(lastMessage) {
8900
9288
  break;
8901
9289
  case "approval_batch": {
8902
9290
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
8903
- (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"
8904
9292
  );
8905
9293
  if (segment.status !== "rejected" && !allDone) {
8906
9294
  hasIncompleteState = true;
@@ -9062,7 +9450,7 @@ function Header({ config, platform }) {
9062
9450
  className: _chunkUC43NICZcjs.cn.call(void 0,
9063
9451
  "flex justify-start w-full",
9064
9452
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
9065
- 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",
9066
9454
  "text-ods-text-primary",
9067
9455
  // All dropdown items use primary text color
9068
9456
  child.isActive && "bg-ods-bg-hover"
@@ -9154,7 +9542,7 @@ function Header({ config, platform }) {
9154
9542
  style: config.style,
9155
9543
  children: [
9156
9544
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
9157
- _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 }),
9158
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 })
9159
9547
  ] }),
9160
9548
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -9171,7 +9559,7 @@ function Header({ config, platform }) {
9171
9559
  }
9172
9560
  ),
9173
9561
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
9174
- _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 }),
9175
9563
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9176
9564
  _chunkV2FNIPZJcjs.Button,
9177
9565
  {
@@ -9179,10 +9567,10 @@ function Header({ config, platform }) {
9179
9567
  size: "icon",
9180
9568
  className: "flex md:hidden",
9181
9569
  onClick: () => {
9182
- _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()]);
9183
9571
  },
9184
- "aria-label": _optionalChain([config, 'access', _293 => _293.mobile, 'optionalAccess', _294 => _294.isOpen]) ? "Close menu" : "Open menu",
9185
- 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, {})
9186
9574
  }
9187
9575
  )
9188
9576
  ] })
@@ -9199,10 +9587,10 @@ function Header({ config, platform }) {
9199
9587
  // src/components/navigation/header-skeleton.tsx
9200
9588
 
9201
9589
  function HeaderSkeleton({ config }) {
9202
- const showNavigation = _optionalChain([config, 'optionalAccess', _297 => _297.navigation]) && config.navigation.items.length > 0;
9203
- const showActions = _optionalChain([config, 'optionalAccess', _298 => _298.actions, 'optionalAccess', _299 => _299.right]) && config.actions.right.length > 0;
9204
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _300 => _300.mobile, 'optionalAccess', _301 => _301.enabled]);
9205
- 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")]);
9206
9594
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9207
9595
  "header",
9208
9596
  {
@@ -9211,11 +9599,11 @@ function HeaderSkeleton({ config }) {
9211
9599
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
9212
9600
  "px-6 py-3",
9213
9601
  "transition-opacity duration-300 ease-in-out",
9214
- _optionalChain([config, 'optionalAccess', _305 => _305.className])
9602
+ _optionalChain([config, 'optionalAccess', _316 => _316.className])
9215
9603
  ),
9216
9604
  children: [
9217
9605
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
9218
- 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" }) }),
9219
9607
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
9220
9608
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
9221
9609
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -9223,8 +9611,8 @@ function HeaderSkeleton({ config }) {
9223
9611
  ] }),
9224
9612
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkUC43NICZcjs.cn.call(void 0,
9225
9613
  "hidden md:flex items-center gap-2",
9226
- _optionalChain([config, 'optionalAccess', _308 => _308.navigation, 'optionalAccess', _309 => _309.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
9227
- _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"
9228
9616
  ), children: [
9229
9617
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
9230
9618
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -9272,7 +9660,7 @@ function MobileNavPanel({ isOpen, config }) {
9272
9660
  _react.useEffect.call(void 0, () => {
9273
9661
  const handleKeyDown = (e) => {
9274
9662
  if (e.key === "Escape" && isOpen) {
9275
- _optionalChain([config, 'access', _312 => _312.onClose, 'optionalCall', _313 => _313()]);
9663
+ _optionalChain([config, 'access', _323 => _323.onClose, 'optionalCall', _324 => _324()]);
9276
9664
  }
9277
9665
  };
9278
9666
  if (isOpen) {
@@ -9289,7 +9677,7 @@ function MobileNavPanel({ isOpen, config }) {
9289
9677
  if (item.onClick) {
9290
9678
  item.onClick();
9291
9679
  }
9292
- _optionalChain([config, 'access', _314 => _314.onClose, 'optionalCall', _315 => _315()]);
9680
+ _optionalChain([config, 'access', _325 => _325.onClose, 'optionalCall', _326 => _326()]);
9293
9681
  };
9294
9682
  if (item.href) {
9295
9683
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -9507,7 +9895,7 @@ function SlidingSidebar({ config }) {
9507
9895
  variant: "transparent",
9508
9896
  size: "default",
9509
9897
  onClick: () => {
9510
- _optionalChain([item, 'access', _316 => _316.onClick, 'optionalCall', _317 => _317()]);
9898
+ _optionalChain([item, 'access', _327 => _327.onClick, 'optionalCall', _328 => _328()]);
9511
9899
  config.onClose();
9512
9900
  },
9513
9901
  leftIcon: item.icon,
@@ -9530,7 +9918,7 @@ function SlidingSidebar({ config }) {
9530
9918
  variant: "transparent",
9531
9919
  size: "default",
9532
9920
  onClick: () => {
9533
- _optionalChain([item, 'access', _318 => _318.onClick, 'optionalCall', _319 => _319()]);
9921
+ _optionalChain([item, 'access', _329 => _329.onClick, 'optionalCall', _330 => _330()]);
9534
9922
  config.onClose();
9535
9923
  },
9536
9924
  leftIcon: item.icon,
@@ -9657,7 +10045,7 @@ function StickySectionNav({
9657
10045
  ] });
9658
10046
  }
9659
10047
  function useSectionNavigation(sections, options) {
9660
- 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]) || "");
9661
10049
  const isScrollingFromClick = _react.useRef.call(void 0, false);
9662
10050
  const { offset: offset2 = 100 } = options || {};
9663
10051
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -9682,7 +10070,7 @@ function useSectionNavigation(sections, options) {
9682
10070
  const handleScroll = () => {
9683
10071
  if (isScrollingFromClick.current) return;
9684
10072
  const scrollPosition = window.scrollY + offset2 + 50;
9685
- 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]) || "";
9686
10074
  for (let i = sections.length - 1; i >= 0; i--) {
9687
10075
  const element = document.getElementById(sections[i].id);
9688
10076
  if (element && scrollPosition >= element.offsetTop) {
@@ -9856,8 +10244,8 @@ var MINIMIZED_WIDTH = 56;
9856
10244
  var EXPANDED_WIDTH = 224;
9857
10245
  var STORAGE_KEY = "of.navigationSidebar.minimized";
9858
10246
  function NavigationSidebar({ config, disabled = false }) {
9859
- const isLgUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useLgUp.call(void 0, ), () => ( false));
9860
- 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,
9861
10249
  STORAGE_KEY,
9862
10250
  !isLgUp || (_nullishCoalesce(config.minimized, () => ( false)))
9863
10251
  );
@@ -9866,14 +10254,14 @@ function NavigationSidebar({ config, disabled = false }) {
9866
10254
  const showLabel = isLgUp && !minimized;
9867
10255
  const handleToggle = _react.useCallback.call(void 0, () => {
9868
10256
  setMinimized((prev) => !prev);
9869
- _optionalChain([config, 'access', _324 => _324.onToggleMinimized, 'optionalCall', _325 => _325()]);
10257
+ _optionalChain([config, 'access', _335 => _335.onToggleMinimized, 'optionalCall', _336 => _336()]);
9870
10258
  }, [setMinimized, config]);
9871
10259
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
9872
- _optionalChain([event, 'optionalAccess', _326 => _326.stopPropagation, 'call', _327 => _327()]);
10260
+ _optionalChain([event, 'optionalAccess', _337 => _337.stopPropagation, 'call', _338 => _338()]);
9873
10261
  if (item.onClick) {
9874
10262
  item.onClick();
9875
10263
  } else if (item.path) {
9876
- _optionalChain([config, 'access', _328 => _328.onNavigate, 'optionalCall', _329 => _329(item.path)]);
10264
+ _optionalChain([config, 'access', _339 => _339.onNavigate, 'optionalCall', _340 => _340(item.path)]);
9877
10265
  }
9878
10266
  }, [config]);
9879
10267
  const { primaryItems, secondaryItems } = _react.useMemo.call(void 0, () => ({
@@ -10013,7 +10401,7 @@ function NotificationsProvider({
10013
10401
  const setShowPopups = React28.useCallback(
10014
10402
  (value2) => {
10015
10403
  setShowPopupsState(value2);
10016
- _optionalChain([onShowPopupsChange, 'optionalCall', _330 => _330(value2)]);
10404
+ _optionalChain([onShowPopupsChange, 'optionalCall', _341 => _341(value2)]);
10017
10405
  },
10018
10406
  [onShowPopupsChange]
10019
10407
  );
@@ -10118,11 +10506,11 @@ function HeaderGlobalSearch({
10118
10506
  };
10119
10507
  const handleSubmit = (e) => {
10120
10508
  e.preventDefault();
10121
- _optionalChain([onSubmit, 'optionalCall', _331 => _331(currentValue)]);
10509
+ _optionalChain([onSubmit, 'optionalCall', _342 => _342(currentValue)]);
10122
10510
  };
10123
10511
  const handleKeyDown = (e) => {
10124
10512
  if (e.key === "Enter") {
10125
- _optionalChain([onSubmit, 'optionalCall', _332 => _332(currentValue)]);
10513
+ _optionalChain([onSubmit, 'optionalCall', _343 => _343(currentValue)]);
10126
10514
  }
10127
10515
  };
10128
10516
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -10168,8 +10556,8 @@ function HeaderOrganizationFilter({
10168
10556
  className
10169
10557
  }) {
10170
10558
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
10171
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _333 => _333.name]) || "All Organizations";
10172
- 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));
10173
10561
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV2FNIPZJcjs.DropdownMenu, { children: [
10174
10562
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2FNIPZJcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10175
10563
  "button",
@@ -10194,11 +10582,11 @@ function HeaderOrganizationFilter({
10194
10582
  }
10195
10583
  ) }),
10196
10584
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV2FNIPZJcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
10197
- /* @__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" }),
10198
10586
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10199
10587
  _chunkV2FNIPZJcjs.DropdownMenuItem,
10200
10588
  {
10201
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _336 => _336(org.id)]),
10589
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _347 => _347(org.id)]),
10202
10590
  children: org.name
10203
10591
  },
10204
10592
  org.id
@@ -10229,7 +10617,7 @@ var AppHeader = React37.default.memo(function AppHeader2({
10229
10617
  onToggleMobileMenu,
10230
10618
  disabled = false
10231
10619
  }) {
10232
- const isMdUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useMdUp.call(void 0, ), () => ( false));
10620
+ const isMdUp = _nullishCoalesce(_chunkOII2IEREcjs.useMdUp.call(void 0, ), () => ( false));
10233
10621
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
10234
10622
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10235
10623
  "header",
@@ -10370,9 +10758,9 @@ function NotificationsHeaderButton({
10370
10758
  dimmedClass
10371
10759
  }) {
10372
10760
  const ctx = useOptionalNotifications();
10373
- const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _337 => _337.unreadCount]), () => ( fallbackUnreadCount));
10374
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _338 => _338.isOpen]), () => ( false));
10375
- 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]);
10376
10764
  const Icon2 = unreadCount > 0 ? _chunkVJTFBYVGcjs.BellRingingIcon : _chunkVJTFBYVGcjs.BellIcon;
10377
10765
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10378
10766
  HeaderButton,
@@ -10546,7 +10934,7 @@ var Switch = React32.forwardRef(({ className, checked, onCheckedChange, ...props
10546
10934
  }, [checked]);
10547
10935
  const handleCheckedChange = (newChecked) => {
10548
10936
  setIsChecked(newChecked);
10549
- _optionalChain([onCheckedChange, 'optionalCall', _340 => _340(newChecked)]);
10937
+ _optionalChain([onCheckedChange, 'optionalCall', _351 => _351(newChecked)]);
10550
10938
  };
10551
10939
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10552
10940
  SwitchPrimitives.Root,
@@ -10599,7 +10987,7 @@ function NotificationTile({
10599
10987
  if (!isLive) return;
10600
10988
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
10601
10989
  const timer = window.setTimeout(() => {
10602
- _optionalChain([onSettle, 'optionalCall', _341 => _341(id)]);
10990
+ _optionalChain([onSettle, 'optionalCall', _352 => _352(id)]);
10603
10991
  }, remaining);
10604
10992
  return () => window.clearTimeout(timer);
10605
10993
  }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
@@ -10612,7 +11000,7 @@ function NotificationTile({
10612
11000
  ),
10613
11001
  children: [
10614
11002
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
10615
- /* @__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]) }) }),
10616
11004
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
10617
11005
  title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h4 text-ods-text-primary", children: title }) : null,
10618
11006
  description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", children: description }) : null
@@ -10637,7 +11025,7 @@ function NotificationTile({
10637
11025
  "button",
10638
11026
  {
10639
11027
  type: "button",
10640
- onClick: () => _optionalChain([onSettle, 'optionalCall', _342 => _342(id)]),
11028
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _353 => _353(id)]),
10641
11029
  "aria-label": "Dismiss notification",
10642
11030
  tabIndex: isLive ? 0 : -1,
10643
11031
  className: _chunkUC43NICZcjs.cn.call(void 0,
@@ -10653,7 +11041,7 @@ function NotificationTile({
10653
11041
  "aria-hidden": true,
10654
11042
  className: _chunkUC43NICZcjs.cn.call(void 0,
10655
11043
  "absolute inset-x-0 -bottom-px h-1 origin-left",
10656
- _chunkCVMSC7M4cjs.progressColorByVariant[variant]
11044
+ _chunkOII2IEREcjs.progressColorByVariant[variant]
10657
11045
  ),
10658
11046
  style: {
10659
11047
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -10809,7 +11197,7 @@ var MobileBurgerMenu = React37.default.memo(function MobileBurgerMenu2({
10809
11197
  if (item.onClick) {
10810
11198
  item.onClick();
10811
11199
  } else if (item.path) {
10812
- _optionalChain([config, 'access', _343 => _343.onNavigate, 'optionalCall', _344 => _344(item.path)]);
11200
+ _optionalChain([config, 'access', _354 => _354.onNavigate, 'optionalCall', _355 => _355(item.path)]);
10813
11201
  }
10814
11202
  onClose();
10815
11203
  }, [config, onClose]);
@@ -11105,7 +11493,7 @@ var ToolBadge = ({
11105
11493
  }) => {
11106
11494
  const label = getToolLabel(toolType);
11107
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: [
11108
- /* @__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 }),
11109
11497
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
11110
11498
  ] });
11111
11499
  };
@@ -11153,7 +11541,7 @@ var ShellTypeBadge = ({
11153
11541
  className,
11154
11542
  iconClassName
11155
11543
  }) => {
11156
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _345 => _345.toUpperCase, 'call', _346 => _346()]);
11544
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _356 => _356.toUpperCase, 'call', _357 => _357()]);
11157
11545
  const label = getShellLabel(normalizedType);
11158
11546
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
11159
11547
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -11525,7 +11913,7 @@ function getStoredAnnouncement(key) {
11525
11913
  if (typeof window !== "undefined") {
11526
11914
  try {
11527
11915
  return JSON.parse(localStorage.getItem(key) || "null");
11528
- } catch (e22) {
11916
+ } catch (e32) {
11529
11917
  return null;
11530
11918
  }
11531
11919
  }
@@ -11535,7 +11923,7 @@ function setStoredAnnouncement(key, value) {
11535
11923
  if (typeof window !== "undefined") {
11536
11924
  try {
11537
11925
  localStorage.setItem(key, JSON.stringify(value));
11538
- } catch (e23) {
11926
+ } catch (e33) {
11539
11927
  }
11540
11928
  }
11541
11929
  }
@@ -11543,7 +11931,7 @@ function clearStoredAnnouncement(key = "announcement") {
11543
11931
  if (typeof window !== "undefined") {
11544
11932
  try {
11545
11933
  localStorage.removeItem(key);
11546
- } catch (e24) {
11934
+ } catch (e34) {
11547
11935
  }
11548
11936
  }
11549
11937
  }
@@ -11610,7 +11998,7 @@ function AnnouncementBar() {
11610
11998
  setIsVisible(false);
11611
11999
  };
11612
12000
  const handleCtaClick = () => {
11613
- if (!_optionalChain([announcement, 'optionalAccess', _347 => _347.cta_url])) return;
12001
+ if (!_optionalChain([announcement, 'optionalAccess', _358 => _358.cta_url])) return;
11614
12002
  announcement.cta_target === "_blank" ? window.open(announcement.cta_url, "_blank", "noopener,noreferrer") : window.location.href = announcement.cta_url;
11615
12003
  };
11616
12004
  const renderIcon = () => {
@@ -11736,8 +12124,8 @@ function getVendorLogo(vendor) {
11736
12124
  if (vendor.logo) {
11737
12125
  return fixSupabaseStorageUrl(vendor.logo);
11738
12126
  }
11739
- const logoMedia = _optionalChain([vendor, 'access', _348 => _348.vendor_media, 'optionalAccess', _349 => _349.find, 'call', _350 => _350((m) => m.media_type === "logo")]);
11740
- 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])) {
11741
12129
  return fixSupabaseStorageUrl(logoMedia.media_url);
11742
12130
  }
11743
12131
  return null;
@@ -11812,7 +12200,7 @@ function VendorIcon({
11812
12200
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0,
11813
12201
  "flex items-center justify-center text-xs font-medium uppercase",
11814
12202
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
11815
- ), 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)]) || "??" }) });
11816
12204
  }
11817
12205
 
11818
12206
  // src/components/categories-cart.tsx
@@ -12096,7 +12484,7 @@ function UserSummary({
12096
12484
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
12097
12485
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", children: [
12098
12486
  name,
12099
- _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: [
12100
12488
  " \u2022 ",
12101
12489
  mspPreview.name
12102
12490
  ] })
@@ -12118,7 +12506,7 @@ function UserSummary({
12118
12506
  height: 40,
12119
12507
  className: "object-cover"
12120
12508
  }
12121
- ) : /* @__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()]) || "?" }) })
12122
12510
  ] }),
12123
12511
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 grid grid-cols-[1fr_auto] gap-4", children: [
12124
12512
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[6rem] flex flex-col justify-center space-y-3 truncate", children: [
@@ -12131,7 +12519,7 @@ function UserSummary({
12131
12519
  typeof mspPreview.annualRevenue === "number" ? `$${formatNumber2(mspPreview.annualRevenue)}` : null
12132
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)) })
12133
12521
  ] }),
12134
- (_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: [
12135
12523
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
12136
12524
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
12137
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)) })
@@ -12140,7 +12528,7 @@ function UserSummary({
12140
12528
  ] })
12141
12529
  ] })
12142
12530
  ] }),
12143
- (_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: [
12144
12532
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
12145
12533
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
12146
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)) })
@@ -12861,7 +13249,7 @@ function FilterChip({
12861
13249
  onClick: disabled ? void 0 : (e) => {
12862
13250
  e.preventDefault();
12863
13251
  e.stopPropagation();
12864
- _optionalChain([onClick, 'optionalCall', _363 => _363()]);
13252
+ _optionalChain([onClick, 'optionalCall', _374 => _374()]);
12865
13253
  },
12866
13254
  role: onClick ? "button" : void 0,
12867
13255
  tabIndex: onClick && !disabled ? 0 : void 0,
@@ -13048,13 +13436,13 @@ function useUnifiedFiltering(config) {
13048
13436
  const searchParams = _navigation.useSearchParams.call(void 0, );
13049
13437
  const [isPending, startTransition] = _react.useTransition.call(void 0, );
13050
13438
  const getCurrentFilterState = () => {
13051
- const search = _optionalChain([searchParams, 'optionalAccess', _364 => _364.get, 'call', _365 => _365("search")]) || void 0;
13052
- 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)]) || [];
13053
- 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)]) || [];
13054
- 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)]) || [];
13055
- const filters = _optionalChain([searchParams, 'optionalAccess', _384 => _384.getAll, 'call', _385 => _385("filter")]) || [];
13056
- const pricing = _optionalChain([searchParams, 'optionalAccess', _386 => _386.get, 'call', _387 => _387("pricing")]) || void 0;
13057
- 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");
13058
13446
  return {
13059
13447
  search,
13060
13448
  categories,
@@ -13335,13 +13723,13 @@ function FooterWaitlistButton({ className }) {
13335
13723
  const router = _navigation.useRouter.call(void 0, );
13336
13724
  const pathname = _navigation.usePathname.call(void 0, );
13337
13725
  const handleClick = _react.useCallback.call(void 0, () => {
13338
- if (_optionalChain([pathname, 'optionalAccess', _390 => _390.startsWith, 'call', _391 => _391("/waitlist")])) {
13726
+ if (_optionalChain([pathname, 'optionalAccess', _401 => _401.startsWith, 'call', _402 => _402("/waitlist")])) {
13339
13727
  const anchor = document.getElementById("waitlist-form");
13340
13728
  if (anchor) {
13341
13729
  anchor.scrollIntoView({ behavior: "smooth", block: "center" });
13342
13730
  setTimeout(() => {
13343
13731
  const input = anchor.querySelector('input[type="email"]');
13344
- _optionalChain([input, 'optionalAccess', _392 => _392.focus, 'call', _393 => _393()]);
13732
+ _optionalChain([input, 'optionalAccess', _403 => _403.focus, 'call', _404 => _404()]);
13345
13733
  }, 400);
13346
13734
  return;
13347
13735
  }
@@ -13366,11 +13754,11 @@ _chunkV2FNIPZJcjs.init_button2.call(void 0, );
13366
13754
 
13367
13755
  function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
13368
13756
  const inputRef = _react.useRef.call(void 0, null);
13369
- const { toast } = _chunkCVMSC7M4cjs.useToast.call(void 0, );
13757
+ const { toast } = _chunkOII2IEREcjs.useToast.call(void 0, );
13370
13758
  const [uploading, setUploading] = _react.useState.call(void 0, false);
13371
13759
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
13372
13760
  const MAX_SIZE = 5 * 1024 * 1024;
13373
- 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()]);
13374
13762
  async function handleFile(file) {
13375
13763
  if (!file) return;
13376
13764
  if (!ALLOWED_TYPES.includes(file.type)) {
@@ -13426,7 +13814,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
13426
13814
  }
13427
13815
  }
13428
13816
  const handleSelect = (e) => {
13429
- 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]]));
13430
13818
  };
13431
13819
  const handleRemove = async () => {
13432
13820
  if (onDelete) {
@@ -13563,7 +13951,7 @@ function ResponsiveIconsBlock({ loading = false }) {
13563
13951
  const getIconForIndex = (index) => {
13564
13952
  const col = index % displayColumns;
13565
13953
  const row = Math.floor(index / displayColumns);
13566
- 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];
13567
13955
  };
13568
13956
  if (loading || iconGrid.length === 0) {
13569
13957
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -13649,7 +14037,7 @@ var Slider = React39.forwardRef(
13649
14037
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
13650
14038
  const handleChange = (e) => {
13651
14039
  const newValue = [Number(e.target.value)];
13652
- _optionalChain([onValueChange, 'optionalCall', _402 => _402(newValue)]);
14040
+ _optionalChain([onValueChange, 'optionalCall', _413 => _413(newValue)]);
13653
14041
  };
13654
14042
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13655
14043
  "input",
@@ -13762,7 +14150,7 @@ var ImageCropper = ({
13762
14150
  });
13763
14151
  } else if (e.key === "Escape") {
13764
14152
  e.preventDefault();
13765
- _optionalChain([onCancel, 'optionalCall', _403 => _403()]);
14153
+ _optionalChain([onCancel, 'optionalCall', _414 => _414()]);
13766
14154
  }
13767
14155
  };
13768
14156
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -14462,8 +14850,8 @@ function PricingDisplay({
14462
14850
  }
14463
14851
  if (pricingArray.length === 1) {
14464
14852
  const item = pricingArray[0];
14465
- const price = _optionalChain([item, 'access', _404 => _404.ranges, 'optionalAccess', _405 => _405[0], 'optionalAccess', _406 => _406.min]) || 0;
14466
- 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]);
14467
14855
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
14468
14856
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
14469
14857
  unit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
@@ -14472,11 +14860,11 @@ function PricingDisplay({
14472
14860
  ] })
14473
14861
  ] });
14474
14862
  }
14475
- const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _410 => _410.ranges, 'optionalAccess', _411 => _411[0], 'optionalAccess', _412 => _412.min]) || 0, styleConfig.showTildePrefix));
14476
- 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]));
14477
14865
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
14478
14866
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
14479
- 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: [
14480
14868
  "/",
14481
14869
  itemWithUnit.ranges[0].unit
14482
14870
  ] })
@@ -14674,7 +15062,7 @@ function VendorTag({
14674
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" }) })
14675
15063
  };
14676
15064
  case "classification":
14677
- const classificationType = _optionalChain([text, 'optionalAccess', _419 => _419.toLowerCase, 'call', _420 => _420()]);
15065
+ const classificationType = _optionalChain([text, 'optionalAccess', _430 => _430.toLowerCase, 'call', _431 => _431()]);
14678
15066
  if (classificationType === "open_source") {
14679
15067
  return {
14680
15068
  text: "Open Source",
@@ -14728,7 +15116,7 @@ function SelectionSourceBadge({ source, hidden = false }) {
14728
15116
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14729
15117
  VendorTag,
14730
15118
  {
14731
- type: _optionalChain([source, 'optionalAccess', _421 => _421.toLowerCase, 'call', _422 => _422()]),
15119
+ type: _optionalChain([source, 'optionalAccess', _432 => _432.toLowerCase, 'call', _433 => _433()]),
14732
15120
  size: "sm",
14733
15121
  hidden
14734
15122
  },
@@ -16785,7 +17173,7 @@ function OnboardingWalkthrough({
16785
17173
  isStepSkipped,
16786
17174
  allStepsComplete,
16787
17175
  markMultipleComplete
16788
- } = _chunkCVMSC7M4cjs.useOnboardingState.call(void 0, storageKey);
17176
+ } = _chunkOII2IEREcjs.useOnboardingState.call(void 0, storageKey);
16789
17177
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
16790
17178
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
16791
17179
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -16848,12 +17236,12 @@ function OnboardingWalkthrough({
16848
17236
  }
16849
17237
  }, [state.completedSteps, markComplete]);
16850
17238
  const handleStepSkip = (step) => {
16851
- _optionalChain([step, 'access', _423 => _423.onSkip, 'optionalCall', _424 => _424()]);
17239
+ _optionalChain([step, 'access', _434 => _434.onSkip, 'optionalCall', _435 => _435()]);
16852
17240
  markSkipped(step.id);
16853
17241
  };
16854
17242
  const handleDismiss = () => {
16855
17243
  dismissOnboarding();
16856
- _optionalChain([onDismiss, 'optionalCall', _425 => _425()]);
17244
+ _optionalChain([onDismiss, 'optionalCall', _436 => _436()]);
16857
17245
  };
16858
17246
  if (state.dismissed) {
16859
17247
  return null;
@@ -17336,7 +17724,7 @@ var SecondaryAction = ({ action }) => {
17336
17724
  e.preventDefault();
17337
17725
  return;
17338
17726
  }
17339
- _optionalChain([action, 'access', _426 => _426.onClick, 'optionalCall', _427 => _427()]);
17727
+ _optionalChain([action, 'access', _437 => _437.onClick, 'optionalCall', _438 => _438()]);
17340
17728
  },
17341
17729
  [action]
17342
17730
  );
@@ -17377,13 +17765,13 @@ var MenuItem = ({ item, onItemClick }) => {
17377
17765
  const activate = _react.useCallback.call(void 0, () => {
17378
17766
  if (item.disabled) return;
17379
17767
  if (item.type === "checkbox") {
17380
- _optionalChain([item, 'access', _428 => _428.onClick, 'optionalCall', _429 => _429()]);
17381
- _optionalChain([onItemClick, 'optionalCall', _430 => _430(item)]);
17768
+ _optionalChain([item, 'access', _439 => _439.onClick, 'optionalCall', _440 => _440()]);
17769
+ _optionalChain([onItemClick, 'optionalCall', _441 => _441(item)]);
17382
17770
  return;
17383
17771
  }
17384
17772
  if (item.type === "submenu") return;
17385
- _optionalChain([item, 'access', _431 => _431.onClick, 'optionalCall', _432 => _432()]);
17386
- _optionalChain([onItemClick, 'optionalCall', _433 => _433(item)]);
17773
+ _optionalChain([item, 'access', _442 => _442.onClick, 'optionalCall', _443 => _443()]);
17774
+ _optionalChain([onItemClick, 'optionalCall', _444 => _444(item)]);
17387
17775
  }, [item, onItemClick]);
17388
17776
  const handleClick = _react.useCallback.call(void 0,
17389
17777
  (e) => {
@@ -17409,8 +17797,8 @@ var MenuItem = ({ item, onItemClick }) => {
17409
17797
  e.stopPropagation();
17410
17798
  return;
17411
17799
  }
17412
- _optionalChain([item, 'access', _434 => _434.onClick, 'optionalCall', _435 => _435()]);
17413
- _optionalChain([onItemClick, 'optionalCall', _436 => _436(item)]);
17800
+ _optionalChain([item, 'access', _445 => _445.onClick, 'optionalCall', _446 => _446()]);
17801
+ _optionalChain([onItemClick, 'optionalCall', _447 => _447(item)]);
17414
17802
  },
17415
17803
  [item, onItemClick]
17416
17804
  );
@@ -17565,7 +17953,7 @@ var ActionsMenuDropdown = ({
17565
17953
  const [open, setOpen] = _react.useState.call(void 0, false);
17566
17954
  const handleItemClick = _react.useCallback.call(void 0,
17567
17955
  (item) => {
17568
- _optionalChain([onItemClick, 'optionalCall', _437 => _437(item)]);
17956
+ _optionalChain([onItemClick, 'optionalCall', _448 => _448(item)]);
17569
17957
  if (item.type !== "checkbox" && item.type !== "submenu") {
17570
17958
  setOpen(false);
17571
17959
  }
@@ -17736,7 +18124,7 @@ function IconButtonsVariant({
17736
18124
  }) {
17737
18125
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
17738
18126
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
17739
- 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]);
17740
18128
  const singleAction = isSingleAction ? actions[0] : null;
17741
18129
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
17742
18130
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -18166,14 +18554,14 @@ function ReleaseDetailPage({
18166
18554
  releaseVersion
18167
18555
  ] })
18168
18556
  ] }) }),
18169
- /* @__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,
18170
18558
  StatusBadge,
18171
18559
  {
18172
- 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(),
18173
18561
  variant: "card",
18174
18562
  className: "bg-ods-card border border-ods-border"
18175
18563
  },
18176
- 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])
18177
18565
  ))]) }),
18178
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: [
18179
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: [
@@ -18192,15 +18580,15 @@ function ReleaseDetailPage({
18192
18580
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18193
18581
  SquareAvatar,
18194
18582
  {
18195
- src: _optionalChain([author, 'optionalAccess', _447 => _447.avatar_url]) || "",
18196
- alt: _optionalChain([author, 'optionalAccess', _448 => _448.full_name]) || "Author",
18197
- 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"),
18198
18586
  size: "md",
18199
18587
  variant: "round"
18200
18588
  }
18201
18589
  ),
18202
18590
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
18203
- /* @__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" }),
18204
18592
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
18205
18593
  ] })
18206
18594
  ] })
@@ -18231,8 +18619,8 @@ function ReleaseDetailPage({
18231
18619
  videoBites,
18232
18620
  bitesTitle: "Video Clips",
18233
18621
  filterPublishedBites: true,
18234
- srtContent: _optionalChain([release, 'optionalAccess', _451 => _451.srt_content]),
18235
- captionsUrl: _optionalChain([release, 'optionalAccess', _452 => _452.captionsUrl])
18622
+ srtContent: _optionalChain([release, 'optionalAccess', _462 => _462.srt_content]),
18623
+ captionsUrl: _optionalChain([release, 'optionalAccess', _463 => _463.captionsUrl])
18236
18624
  }
18237
18625
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18238
18626
  youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -18248,8 +18636,8 @@ function ReleaseDetailPage({
18248
18636
  Video2,
18249
18637
  {
18250
18638
  url: mainVideoUrl,
18251
- srtContent: _optionalChain([release, 'optionalAccess', _453 => _453.srt_content]),
18252
- captionsUrl: _optionalChain([release, 'optionalAccess', _454 => _454.captionsUrl]),
18639
+ srtContent: _optionalChain([release, 'optionalAccess', _464 => _464.srt_content]),
18640
+ captionsUrl: _optionalChain([release, 'optionalAccess', _465 => _465.captionsUrl]),
18253
18641
  layout: "centered"
18254
18642
  }
18255
18643
  ),
@@ -18339,7 +18727,7 @@ function ReleaseDetailPage({
18339
18727
  }
18340
18728
  )
18341
18729
  ] }),
18342
- (_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: [
18343
18731
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
18344
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: [
18345
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: [
@@ -18368,7 +18756,7 @@ function ReleaseDetailPage({
18368
18756
  {
18369
18757
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
18370
18758
  className: "text-h4 text-[#ffc008] hover:underline",
18371
- 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"
18372
18760
  }
18373
18761
  ),
18374
18762
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -18467,7 +18855,7 @@ function InfoCard({ data, className = "" }) {
18467
18855
  );
18468
18856
  }
18469
18857
  function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
18470
- const { copy, copied } = _chunkCVMSC7M4cjs.useCopyToClipboard.call(void 0, );
18858
+ const { copy, copied } = _chunkOII2IEREcjs.useCopyToClipboard.call(void 0, );
18471
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: [
18472
18860
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
18473
18861
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -18679,7 +19067,7 @@ var ProgressBar = ({
18679
19067
  mobileHeight = 8,
18680
19068
  inverted = false
18681
19069
  }) => {
18682
- const isMdUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useMdUp.call(void 0, ), () => ( true));
19070
+ const isMdUp = _nullishCoalesce(_chunkOII2IEREcjs.useMdUp.call(void 0, ), () => ( true));
18683
19071
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
18684
19072
  const effectiveHeight = isMdUp ? height : mobileHeight;
18685
19073
  const containerRef = _react.useRef.call(void 0, null);
@@ -19014,7 +19402,7 @@ function TagsManager({
19014
19402
  const name = search.trim();
19015
19403
  if (!name) return;
19016
19404
  const result = await onCreateTag(name);
19017
- if (_optionalChain([result, 'optionalAccess', _465 => _465.id])) {
19405
+ if (_optionalChain([result, 'optionalAccess', _476 => _476.id])) {
19018
19406
  onChange([...selectedIds, result.id]);
19019
19407
  setSearch("");
19020
19408
  }
@@ -19022,7 +19410,7 @@ function TagsManager({
19022
19410
  const startEdit = React55.useCallback((id, name) => {
19023
19411
  setEditingId(id);
19024
19412
  setEditingName(name);
19025
- 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);
19026
19414
  }, []);
19027
19415
  const confirmEdit = React55.useCallback(async () => {
19028
19416
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -19049,7 +19437,7 @@ function TagsManager({
19049
19437
  e.stopPropagation();
19050
19438
  onChange([]);
19051
19439
  setSearch("");
19052
- _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()]);
19053
19441
  },
19054
19442
  [onChange]
19055
19443
  );
@@ -19148,10 +19536,10 @@ function TagsManager({
19148
19536
  align: "start",
19149
19537
  onOpenAutoFocus: (e) => {
19150
19538
  e.preventDefault();
19151
- _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()]);
19152
19540
  },
19153
19541
  onInteractOutside: (e) => {
19154
- 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)])) {
19155
19543
  e.preventDefault();
19156
19544
  }
19157
19545
  },
@@ -20255,19 +20643,19 @@ function TabNavigation({
20255
20643
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
20256
20644
  const getInitialTab = () => {
20257
20645
  if (isUrlSyncEnabled) {
20258
- 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)]) || "";
20259
20647
  if (validTabIds.has(fromUrl)) {
20260
20648
  return fromUrl;
20261
20649
  }
20262
20650
  }
20263
- 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]) || "";
20264
20652
  };
20265
20653
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
20266
20654
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
20267
20655
  _react.useEffect.call(void 0, () => {
20268
20656
  if (!isUrlSyncEnabled) return;
20269
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _482 => _482.get, 'call', _483 => _483(paramName)]) || "";
20270
- 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]) || "";
20271
20659
  if (nextTab !== internalActiveTab) {
20272
20660
  setInternalActiveTab(nextTab);
20273
20661
  }
@@ -20275,13 +20663,13 @@ function TabNavigation({
20275
20663
  const handleTabChange = (tabId) => {
20276
20664
  if (isUrlSyncEnabled) {
20277
20665
  setInternalActiveTab(tabId);
20278
- 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()]));
20279
20667
  params.set(paramName, tabId);
20280
20668
  const method = replaceState ? "replace" : "push";
20281
20669
  router[method](`${pathname}?${params.toString()}`);
20282
- _optionalChain([controlledOnTabChange, 'optionalCall', _488 => _488(tabId)]);
20670
+ _optionalChain([controlledOnTabChange, 'optionalCall', _499 => _499(tabId)]);
20283
20671
  } else {
20284
- _optionalChain([controlledOnTabChange, 'optionalCall', _489 => _489(tabId)]);
20672
+ _optionalChain([controlledOnTabChange, 'optionalCall', _500 => _500(tabId)]);
20285
20673
  }
20286
20674
  };
20287
20675
  const scrollRef = _react.useRef.call(void 0, null);
@@ -20369,7 +20757,7 @@ function TabNavigation({
20369
20757
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
20370
20758
  var getTabComponent = (tabs, tabId) => {
20371
20759
  const tab = getTabById(tabs, tabId);
20372
- return _optionalChain([tab, 'optionalAccess', _490 => _490.component]) || null;
20760
+ return _optionalChain([tab, 'optionalAccess', _501 => _501.component]) || null;
20373
20761
  };
20374
20762
 
20375
20763
  // src/components/ui/alert.tsx
@@ -20706,16 +21094,16 @@ function FilterModal({
20706
21094
  };
20707
21095
  const handleReset = () => {
20708
21096
  onFilterChange({});
20709
- _optionalChain([onTagsChange, 'optionalCall', _491 => _491([])]);
21097
+ _optionalChain([onTagsChange, 'optionalCall', _502 => _502([])]);
20710
21098
  onClose();
20711
21099
  };
20712
21100
  const handleApply = () => {
20713
21101
  onFilterChange(selectedFilters);
20714
- _optionalChain([onTagsChange, 'optionalCall', _492 => _492(pendingTags)]);
21102
+ _optionalChain([onTagsChange, 'optionalCall', _503 => _503(pendingTags)]);
20715
21103
  onClose();
20716
21104
  };
20717
21105
  const getColumnDirection = (columnKey) => {
20718
- 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;
20719
21107
  };
20720
21108
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
20721
21109
  const hasFilterGroups = filterGroups.length > 0;
@@ -20764,7 +21152,7 @@ function FilterModal({
20764
21152
  {
20765
21153
  column,
20766
21154
  currentDirection: getColumnDirection(column.key),
20767
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _494 => _494(column.key, direction)]),
21155
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _505 => _505(column.key, direction)]),
20768
21156
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
20769
21157
  },
20770
21158
  column.key
@@ -20831,7 +21219,7 @@ function ListPageLayout({
20831
21219
  }) {
20832
21220
  const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
20833
21221
  const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
20834
- const debouncedSearchValue = _chunkCVMSC7M4cjs.useDebounce.call(void 0, localSearchValue, 500);
21222
+ const debouncedSearchValue = _chunkOII2IEREcjs.useDebounce.call(void 0, localSearchValue, 500);
20835
21223
  _react.useEffect.call(void 0, () => {
20836
21224
  setLocalSearchValue(searchValue);
20837
21225
  }, [searchValue]);
@@ -20930,9 +21318,9 @@ function TitleBlock({
20930
21318
  const [imageFailed, setImageFailed] = React37.default.useState(false);
20931
21319
  React37.default.useEffect(() => {
20932
21320
  setImageFailed(false);
20933
- }, [_optionalChain([image, 'optionalAccess', _495 => _495.src])]);
21321
+ }, [_optionalChain([image, 'optionalAccess', _506 => _506.src])]);
20934
21322
  const showImageFallback = !!image && (imageFailed || !image.src);
20935
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _496 => _496.alt]) || title);
21323
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _507 => _507.alt]) || title);
20936
21324
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20937
21325
  "div",
20938
21326
  {
@@ -21728,26 +22116,26 @@ function DeviceCard({
21728
22116
  ] }),
21729
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 })
21730
22118
  ] }),
21731
- _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,
21732
22120
  "div",
21733
22121
  {
21734
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",
21735
22123
  onClick: (e) => {
21736
22124
  e.stopPropagation();
21737
- _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()]);
21738
22126
  },
21739
22127
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
21740
22128
  }
21741
22129
  ),
21742
- _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 }),
21743
- _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(
21744
22132
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21745
22133
  "div",
21746
22134
  {
21747
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",
21748
22136
  onClick: (e) => {
21749
22137
  e.stopPropagation();
21750
- _optionalChain([action, 'access', _509 => _509.onClick, 'optionalCall', _510 => _510()]);
22138
+ _optionalChain([action, 'access', _520 => _520.onClick, 'optionalCall', _521 => _521()]);
21751
22139
  },
21752
22140
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
21753
22141
  },
@@ -22106,7 +22494,7 @@ function MoreActionsMenu({
22106
22494
  ] });
22107
22495
  const handleActivate = (e) => {
22108
22496
  e.stopPropagation();
22109
- 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()]);
22110
22498
  };
22111
22499
  if (item.href) {
22112
22500
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22256,7 +22644,7 @@ function OrganizationIcon({
22256
22644
  backgroundStyle = "dark"
22257
22645
  }) {
22258
22646
  const { width, height } = imageSizeMap2[size];
22259
- 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)]) || "??";
22260
22648
  const containerClasses = _chunkUC43NICZcjs.cn.call(void 0,
22261
22649
  sizeClasses3[size],
22262
22650
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -22307,7 +22695,7 @@ function OrganizationCard({
22307
22695
  const handleActionClick = (e) => {
22308
22696
  e.preventDefault();
22309
22697
  e.stopPropagation();
22310
- _optionalChain([actionButton, 'optionalAccess', _515 => _515.onClick, 'call', _516 => _516(organization, e)]);
22698
+ _optionalChain([actionButton, 'optionalAccess', _526 => _526.onClick, 'call', _527 => _527(organization, e)]);
22311
22699
  };
22312
22700
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22313
22701
  "div",
@@ -22464,7 +22852,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22464
22852
  onKeyDown: (e) => {
22465
22853
  if (e.key === "Enter" || e.key === " ") {
22466
22854
  e.preventDefault();
22467
- _optionalChain([onClick, 'optionalCall', _517 => _517()]);
22855
+ _optionalChain([onClick, 'optionalCall', _528 => _528()]);
22468
22856
  }
22469
22857
  },
22470
22858
  children: [
@@ -22473,7 +22861,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22473
22861
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
22474
22862
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
22475
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) }),
22476
- 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 })
22477
22865
  ] })
22478
22866
  ] })
22479
22867
  ]
@@ -22565,7 +22953,7 @@ var LogsList = React79.forwardRef(({
22565
22953
  log,
22566
22954
  isLast: index === logs.length - 1,
22567
22955
  showConnector,
22568
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _518 => _518(log)])
22956
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _529 => _529(log)])
22569
22957
  },
22570
22958
  log.id
22571
22959
  ))
@@ -22678,7 +23066,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
22678
23066
  }
22679
23067
  function ServiceCardRowItem({ row }) {
22680
23068
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
22681
- const { copy, copied } = _chunkCVMSC7M4cjs.useCopyToClipboard.call(void 0, );
23069
+ const { copy, copied } = _chunkOII2IEREcjs.useCopyToClipboard.call(void 0, );
22682
23070
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
22683
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 });
22684
23072
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -23154,7 +23542,7 @@ function CursorPaginationSimple({
23154
23542
  {
23155
23543
  variant: "transparent",
23156
23544
  size: "icon",
23157
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _519 => _519("")]),
23545
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _530 => _530("")]),
23158
23546
  disabled: !hasPreviousPage || loading,
23159
23547
  className: "h-8 w-8",
23160
23548
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -23166,7 +23554,7 @@ function CursorPaginationSimple({
23166
23554
  {
23167
23555
  variant: "transparent",
23168
23556
  size: "icon",
23169
- onClick: () => _optionalChain([onNext, 'optionalCall', _520 => _520("")]),
23557
+ onClick: () => _optionalChain([onNext, 'optionalCall', _531 => _531("")]),
23170
23558
  disabled: !hasNextPage || loading,
23171
23559
  className: "h-8 w-8",
23172
23560
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -23226,7 +23614,7 @@ function TableColumnFilterDropdown({
23226
23614
  placement = "bottom-start",
23227
23615
  dropdownClassName = "min-w-[240px]"
23228
23616
  }) {
23229
- 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;
23230
23618
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23231
23619
  FiltersDropdown,
23232
23620
  {
@@ -23269,7 +23657,7 @@ function TableColumnFilterDropdown({
23269
23657
  delete newFilters[columnKey];
23270
23658
  onFilterChange(newFilters);
23271
23659
  },
23272
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _523 => _523[columnKey]]) || [] },
23660
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _534 => _534[columnKey]]) || [] },
23273
23661
  placement,
23274
23662
  dropdownClassName
23275
23663
  }
@@ -23344,7 +23732,7 @@ function TableHeader({
23344
23732
  }
23345
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" });
23346
23734
  };
23347
- const isLgUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useLgUp.call(void 0, ), () => ( false));
23735
+ const isLgUp = _nullishCoalesce(_chunkOII2IEREcjs.useLgUp.call(void 0, ), () => ( false));
23348
23736
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23349
23737
  "div",
23350
23738
  {
@@ -23566,7 +23954,7 @@ function TableRow({
23566
23954
  const keys = column.key.split(".");
23567
23955
  let value = item;
23568
23956
  for (const key of keys) {
23569
- value = _optionalChain([value, 'optionalAccess', _524 => _524[key]]);
23957
+ value = _optionalChain([value, 'optionalAccess', _535 => _535[key]]);
23570
23958
  }
23571
23959
  if (value === null || value === void 0) {
23572
23960
  return "-";
@@ -23636,7 +24024,7 @@ function TableRow({
23636
24024
  // src/components/ui/table/table.tsx
23637
24025
 
23638
24026
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
23639
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _525 => _525.length])) || Boolean(renderRowActions);
24027
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _536 => _536.length])) || Boolean(renderRowActions);
23640
24028
  const result = [...columns];
23641
24029
  if (hasActions) {
23642
24030
  const actionsColumn = {
@@ -23730,7 +24118,7 @@ function Table({
23730
24118
  return rowKey(item);
23731
24119
  }
23732
24120
  const key = item[rowKey];
23733
- 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();
23734
24122
  };
23735
24123
  const getRowClassName = (item, index) => {
23736
24124
  if (typeof rowClassName === "function") {
@@ -23764,23 +24152,23 @@ function Table({
23764
24152
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
23765
24153
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
23766
24154
  const sentinelRef = _react.useRef.call(void 0, null);
23767
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _528 => _528.onLoadMore]));
23768
- 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]);
23769
24157
  _react.useEffect.call(void 0, () => {
23770
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _530 => _530.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24158
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _541 => _541.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23771
24159
  const sentinel = sentinelRef.current;
23772
24160
  if (!sentinel) return;
23773
24161
  const observer = new IntersectionObserver(
23774
24162
  (entries) => {
23775
- if (_optionalChain([entries, 'access', _531 => _531[0], 'optionalAccess', _532 => _532.isIntersecting])) {
23776
- _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()]);
23777
24165
  }
23778
24166
  },
23779
24167
  { rootMargin: "200px" }
23780
24168
  );
23781
24169
  observer.observe(sentinel);
23782
24170
  return () => observer.disconnect();
23783
- }, [_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])]);
23784
24172
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
23785
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: [
23786
24174
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -23851,7 +24239,7 @@ function Table({
23851
24239
  },
23852
24240
  getRowKey(item, index)
23853
24241
  )),
23854
- _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,
23855
24243
  TableCardSkeleton,
23856
24244
  {
23857
24245
  columns,
@@ -23860,7 +24248,7 @@ function Table({
23860
24248
  hasChevron: Boolean(rowHref)
23861
24249
  }
23862
24250
  ),
23863
- _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" }),
23864
24252
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23865
24253
  "div",
23866
24254
  {
@@ -24218,7 +24606,7 @@ function QueryReportTable({
24218
24606
  );
24219
24607
  const handleExport = () => {
24220
24608
  exportToCSV(data, columns, exportFilename);
24221
- _optionalChain([onExport, 'optionalCall', _539 => _539()]);
24609
+ _optionalChain([onExport, 'optionalCall', _550 => _550()]);
24222
24610
  };
24223
24611
  const tableMinWidth = columns.length * (columnWidth + 16);
24224
24612
  const {
@@ -24234,7 +24622,7 @@ function QueryReportTable({
24234
24622
  onThumbPointerDown,
24235
24623
  onThumbPointerMove,
24236
24624
  onThumbPointerUp
24237
- } = _chunkCVMSC7M4cjs.useHorizontalScrollbar.call(void 0, );
24625
+ } = _chunkOII2IEREcjs.useHorizontalScrollbar.call(void 0, );
24238
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: [
24239
24627
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
24240
24628
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -24391,7 +24779,7 @@ function DataTableColumnFilter({
24391
24779
  align = "left"
24392
24780
  }) {
24393
24781
  const currentValue = column.getFilterValue();
24394
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _540 => _540.length]), () => ( 0));
24782
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _551 => _551.length]), () => ( 0));
24395
24783
  const sections = _react.useMemo.call(void 0,
24396
24784
  () => [
24397
24785
  {
@@ -24465,13 +24853,13 @@ function DataTableHeader({
24465
24853
  onSortChange
24466
24854
  }) {
24467
24855
  const table = useDataTableContext();
24468
- const isLgUp = _nullishCoalesce(_chunkCVMSC7M4cjs.useLgUp.call(void 0, ), () => ( false));
24856
+ const isLgUp = _nullishCoalesce(_chunkOII2IEREcjs.useLgUp.call(void 0, ), () => ( false));
24469
24857
  const headerGroup = table.getHeaderGroups()[0];
24470
24858
  if (!headerGroup) return null;
24471
24859
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
24472
24860
  if (header.isPlaceholder) return false;
24473
24861
  if (isLgUp) return true;
24474
- 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]));
24475
24863
  });
24476
24864
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24477
24865
  "div",
@@ -24501,20 +24889,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24501
24889
  if (header.isPlaceholder) return null;
24502
24890
  const column = header.column;
24503
24891
  const meta = column.columnDef.meta;
24504
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _545 => _545.filter]));
24505
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _546 => _546.align]), () => ( "left"));
24506
- const canSort = _optionalChain([meta, 'optionalAccess', _547 => _547.sortable]) === true;
24507
- 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;
24508
24896
  if (!isLgUp && !hasFilter) return null;
24509
24897
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24510
24898
  "div",
24511
24899
  {
24512
24900
  className: _chunkUC43NICZcjs.cn.call(void 0,
24513
24901
  "flex items-stretch",
24514
- isLgUp && (_optionalChain([meta, 'optionalAccess', _549 => _549.width]) || "flex-1 min-w-0"),
24515
- _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]),
24516
24904
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24517
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _551 => _551.hideAt]))
24905
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _562 => _562.hideAt]))
24518
24906
  ),
24519
24907
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24520
24908
  DataTableColumnFilter,
@@ -24533,7 +24921,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24533
24921
  isLgUp && alignJustify(align),
24534
24922
  canSort && "group cursor-pointer"
24535
24923
  ),
24536
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _552 => _552(column.id)]) : void 0,
24924
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _563 => _563(column.id)]) : void 0,
24537
24925
  children: [
24538
24926
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24539
24927
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24617,7 +25005,7 @@ function DataTableSkeleton({
24617
25005
  }) {
24618
25006
  const table = useDataTableContext();
24619
25007
  const columns = table.getVisibleFlatColumns();
24620
- 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]);
24621
25009
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24622
25010
  "div",
24623
25011
  {
@@ -24641,7 +25029,7 @@ function DataTableSkeleton({
24641
25029
  {
24642
25030
  className: _chunkUC43NICZcjs.cn.call(void 0,
24643
25031
  "flex flex-col justify-center shrink-0",
24644
- _optionalChain([meta, 'optionalAccess', _555 => _555.width]) || "flex-1"
25032
+ _optionalChain([meta, 'optionalAccess', _566 => _566.width]) || "flex-1"
24645
25033
  ),
24646
25034
  children: [
24647
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)]" }),
@@ -24687,7 +25075,7 @@ function DataTableRowImpl({
24687
25075
  (e) => {
24688
25076
  const target = e.target;
24689
25077
  if (target.closest("[data-no-row-click]")) return;
24690
- _optionalChain([onClick, 'optionalCall', _556 => _556(row.original)]);
25078
+ _optionalChain([onClick, 'optionalCall', _567 => _567(row.original)]);
24691
25079
  },
24692
25080
  [onClick, row.original]
24693
25081
  );
@@ -24725,10 +25113,10 @@ function DataTableRowImpl({
24725
25113
  {
24726
25114
  className: _chunkUC43NICZcjs.cn.call(void 0,
24727
25115
  "flex flex-col overflow-hidden",
24728
- alignJustify(_optionalChain([meta, 'optionalAccess', _557 => _557.align])),
24729
- _optionalChain([meta, 'optionalAccess', _558 => _558.width]) || "flex-1 min-w-0",
24730
- _optionalChain([meta, 'optionalAccess', _559 => _559.cellClassName]),
24731
- 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]))
24732
25120
  ),
24733
25121
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
24734
25122
  },
@@ -24774,7 +25162,7 @@ function DataTableBody({
24774
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: [
24775
25163
  rows.map((row, index) => {
24776
25164
  const item = row.original;
24777
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _561 => _561(item)]), () => ( void 0));
25165
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _572 => _572(item)]), () => ( void 0));
24778
25166
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
24779
25167
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24780
25168
  DataTableRow,
@@ -24838,7 +25226,7 @@ function DataTableInfiniteFooter({
24838
25226
  if (!sentinel) return;
24839
25227
  const observer = new IntersectionObserver(
24840
25228
  (entries) => {
24841
- 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();
24842
25230
  },
24843
25231
  { rootMargin }
24844
25232
  );
@@ -24886,7 +25274,7 @@ function DataTableRowCount({
24886
25274
  const table = useDataTableContext();
24887
25275
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
24888
25276
  if (hideWhenEmpty && count === 0) return null;
24889
- 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`)));
24890
25278
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24891
25279
  "span",
24892
25280
  {
@@ -24980,12 +25368,12 @@ function PhoneInput({
24980
25368
  const runValidation = _react.useCallback.call(void 0, (phone) => {
24981
25369
  if (!phone || digitCount(phone) === 0) {
24982
25370
  setIsInvalid(false);
24983
- _optionalChain([onValidationChange, 'optionalCall', _565 => _565(false)]);
25371
+ _optionalChain([onValidationChange, 'optionalCall', _576 => _576(false)]);
24984
25372
  return;
24985
25373
  }
24986
25374
  const invalid = !validatePhoneNumber(phone, countryCode);
24987
25375
  setIsInvalid(invalid);
24988
- _optionalChain([onValidationChange, 'optionalCall', _566 => _566(invalid)]);
25376
+ _optionalChain([onValidationChange, 'optionalCall', _577 => _577(invalid)]);
24989
25377
  }, [countryCode, digitCount, onValidationChange]);
24990
25378
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
24991
25379
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -25034,7 +25422,7 @@ function PhoneInput({
25034
25422
  debouncedValidation(val);
25035
25423
  } else if (digitCount(val) === 0) {
25036
25424
  setIsInvalid(false);
25037
- _optionalChain([onValidationChange, 'optionalCall', _567 => _567(false)]);
25425
+ _optionalChain([onValidationChange, 'optionalCall', _578 => _578(false)]);
25038
25426
  }
25039
25427
  }
25040
25428
  },
@@ -25114,7 +25502,7 @@ function SearchInput({
25114
25502
  }) {
25115
25503
  const [internalValue, setInternalValue] = React83.useState(defaultValue);
25116
25504
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
25117
- const debouncedValue = _chunkCVMSC7M4cjs.useDebounce.call(void 0, currentValue, debounceMs);
25505
+ const debouncedValue = _chunkOII2IEREcjs.useDebounce.call(void 0, currentValue, debounceMs);
25118
25506
  const [isOpen, setIsOpen] = React83.useState(false);
25119
25507
  const [highlightedIndex, setHighlightedIndex] = React83.useState(-1);
25120
25508
  const containerRef = React83.useRef(null);
@@ -25126,7 +25514,7 @@ function SearchInput({
25126
25514
  textMeasureRef,
25127
25515
  badgeRef,
25128
25516
  inputRef
25129
- } = _chunkCVMSC7M4cjs.useAutoLimitTags.call(void 0, {
25517
+ } = _chunkOII2IEREcjs.useAutoLimitTags.call(void 0, {
25130
25518
  count: filterChips.length,
25131
25519
  limitTags,
25132
25520
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -25141,7 +25529,7 @@ function SearchInput({
25141
25529
  if (!showHiddenTags) return;
25142
25530
  const handleClick = (e) => {
25143
25531
  const target = e.target;
25144
- 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)])) {
25145
25533
  setShowHiddenTags(false);
25146
25534
  }
25147
25535
  };
@@ -25189,10 +25577,10 @@ function SearchInput({
25189
25577
  } else {
25190
25578
  setInternalValue("");
25191
25579
  }
25192
- _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()]);
25193
25581
  };
25194
25582
  const handleResultClick = (result, e) => {
25195
- _optionalChain([onResultSelect, 'optionalCall', _577 => _577(
25583
+ _optionalChain([onResultSelect, 'optionalCall', _588 => _588(
25196
25584
  result,
25197
25585
  e ? {
25198
25586
  metaKey: e.metaKey,
@@ -25224,7 +25612,7 @@ function SearchInput({
25224
25612
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
25225
25613
  handleResultClick(flatResults[highlightedIndex]);
25226
25614
  } else {
25227
- _optionalChain([onSubmit, 'optionalCall', _578 => _578(currentValue)]);
25615
+ _optionalChain([onSubmit, 'optionalCall', _589 => _589(currentValue)]);
25228
25616
  }
25229
25617
  break;
25230
25618
  case "Escape":
@@ -25302,7 +25690,7 @@ function SearchInput({
25302
25690
  dropdownVisible && "!border-ods-accent"
25303
25691
  ),
25304
25692
  onClick: () => {
25305
- _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()]);
25306
25694
  setIsOpen(true);
25307
25695
  },
25308
25696
  children: [
@@ -25386,10 +25774,10 @@ function SearchInput({
25386
25774
  align: "start",
25387
25775
  onOpenAutoFocus: (e) => {
25388
25776
  e.preventDefault();
25389
- _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()]);
25390
25778
  },
25391
25779
  onInteractOutside: (e) => {
25392
- 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)])) {
25393
25781
  e.preventDefault();
25394
25782
  }
25395
25783
  },
@@ -25406,10 +25794,10 @@ function SearchInput({
25406
25794
  ref: hiddenTagsPopupRef,
25407
25795
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
25408
25796
  style: {
25409
- 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
25410
25798
  },
25411
25799
  onRemove: (value2) => {
25412
- _optionalChain([onFilterRemove, 'optionalCall', _592 => _592(value2)]);
25800
+ _optionalChain([onFilterRemove, 'optionalCall', _603 => _603(value2)]);
25413
25801
  if (hiddenCount <= 1) setShowHiddenTags(false);
25414
25802
  }
25415
25803
  }
@@ -25460,7 +25848,7 @@ function FilterListItem({
25460
25848
  }) {
25461
25849
  const handleToggle = () => {
25462
25850
  if (disabled) return;
25463
- _optionalChain([onToggle, 'optionalCall', _593 => _593(!selected)]);
25851
+ _optionalChain([onToggle, 'optionalCall', _604 => _604(!selected)]);
25464
25852
  };
25465
25853
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25466
25854
  "div",
@@ -25507,7 +25895,7 @@ function FilterListItem({
25507
25895
  CheckboxPrimitive4.Root,
25508
25896
  {
25509
25897
  checked: selected,
25510
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _594 => _594(c === true)]),
25898
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _605 => _605(c === true)]),
25511
25899
  onClick: (e) => e.stopPropagation(),
25512
25900
  disabled,
25513
25901
  "aria-label": title,
@@ -25593,7 +25981,7 @@ function TagSearchInput({
25593
25981
  textMeasureRef,
25594
25982
  badgeRef,
25595
25983
  inputRef
25596
- } = _chunkCVMSC7M4cjs.useAutoLimitTags.call(void 0, {
25984
+ } = _chunkOII2IEREcjs.useAutoLimitTags.call(void 0, {
25597
25985
  count: tags.length,
25598
25986
  limitTags,
25599
25987
  placeholder: currentPlaceholder
@@ -25606,7 +25994,7 @@ function TagSearchInput({
25606
25994
  if (!showHiddenTags) return;
25607
25995
  const handleClick = (e) => {
25608
25996
  const target = e.target;
25609
- 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)])) {
25610
25998
  setShowHiddenTags(false);
25611
25999
  }
25612
26000
  };
@@ -25622,13 +26010,13 @@ function TagSearchInput({
25622
26010
  e.preventDefault();
25623
26011
  onSubmit(searchValue);
25624
26012
  }
25625
- _optionalChain([onKeyDown, 'optionalCall', _601 => _601(e)]);
26013
+ _optionalChain([onKeyDown, 'optionalCall', _612 => _612(e)]);
25626
26014
  };
25627
26015
  const handleClearAll = (e) => {
25628
26016
  e.stopPropagation();
25629
26017
  e.preventDefault();
25630
- _optionalChain([onClearAll, 'optionalCall', _602 => _602()]);
25631
- _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()]);
25632
26020
  };
25633
26021
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
25634
26022
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25645,7 +26033,7 @@ function TagSearchInput({
25645
26033
  className
25646
26034
  ),
25647
26035
  onClick: () => {
25648
- 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()]);
25649
26037
  },
25650
26038
  children: [
25651
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" }) }),
@@ -25717,7 +26105,7 @@ function TagSearchInput({
25717
26105
  items: hiddenTags,
25718
26106
  disabled,
25719
26107
  style: {
25720
- 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
25721
26109
  },
25722
26110
  onRemove: (value) => {
25723
26111
  onTagRemove(value);
@@ -25819,7 +26207,7 @@ function MarkdownEditor({
25819
26207
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
25820
26208
  _react.useEffect.call(void 0, () => {
25821
26209
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
25822
- if (_optionalChain([mod, 'access', _613 => _613.commands, 'optionalAccess', _614 => _614.getExtraCommands])) {
26210
+ if (_optionalChain([mod, 'access', _624 => _624.commands, 'optionalAccess', _625 => _625.getExtraCommands])) {
25823
26211
  setDefaultExtraCommands(mod.commands.getExtraCommands());
25824
26212
  }
25825
26213
  });
@@ -25853,7 +26241,7 @@ function MarkdownEditor({
25853
26241
  const isImage = file.type.startsWith("image/");
25854
26242
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
25855
26243
  insertTextAtCursor(markdown);
25856
- _optionalChain([onFileUploaded, 'optionalCall', _615 => _615(url, file.name)]);
26244
+ _optionalChain([onFileUploaded, 'optionalCall', _626 => _626(url, file.name)]);
25857
26245
  } catch (error) {
25858
26246
  console.error("File upload failed:", error);
25859
26247
  setUploadProgress("Upload failed. Please try again.");
@@ -25866,7 +26254,7 @@ function MarkdownEditor({
25866
26254
  );
25867
26255
  const handleFileInputChange = _react.useCallback.call(void 0,
25868
26256
  (e) => {
25869
- 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]]);
25870
26258
  if (file) {
25871
26259
  handleFileUpload(file);
25872
26260
  e.target.value = "";
@@ -25877,7 +26265,7 @@ function MarkdownEditor({
25877
26265
  const handlePaste = _react.useCallback.call(void 0,
25878
26266
  (e) => {
25879
26267
  if (!onUploadFile) return;
25880
- 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]);
25881
26269
  if (!items) return;
25882
26270
  for (const item of items) {
25883
26271
  if (item.type.startsWith("image/")) {
@@ -25902,7 +26290,7 @@ function MarkdownEditor({
25902
26290
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
25903
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" }),
25904
26292
  execute: () => {
25905
- _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()]);
25906
26294
  }
25907
26295
  } : null;
25908
26296
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -25914,7 +26302,7 @@ function MarkdownEditor({
25914
26302
  const EDGE_ZONE = 60;
25915
26303
  const MAX_SCROLL_SPEED = 15;
25916
26304
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
25917
- let node = _optionalChain([el, 'optionalAccess', _624 => _624.parentElement]);
26305
+ let node = _optionalChain([el, 'optionalAccess', _635 => _635.parentElement]);
25918
26306
  while (node && node !== document.documentElement) {
25919
26307
  const { overflowY } = window.getComputedStyle(node);
25920
26308
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -26057,7 +26445,7 @@ function matchesAccept(file, accept) {
26057
26445
  });
26058
26446
  }
26059
26447
  function dragHasFiles(e) {
26060
- 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]);
26061
26449
  if (!types) return false;
26062
26450
  for (let i = 0; i < types.length; i++) {
26063
26451
  if (types[i] === "Files") return true;
@@ -26152,7 +26540,7 @@ function FileUpload({
26152
26540
  e.stopPropagation();
26153
26541
  setDragActive(false);
26154
26542
  if (disabled) return;
26155
- 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])) {
26156
26544
  handleFiles(e.dataTransfer.files);
26157
26545
  }
26158
26546
  };
@@ -26180,7 +26568,7 @@ function FileUpload({
26180
26568
  e.preventDefault();
26181
26569
  dragCounter = 0;
26182
26570
  setDragActive(false);
26183
- 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])) {
26184
26572
  handleFilesRef.current(e.dataTransfer.files);
26185
26573
  }
26186
26574
  };
@@ -26202,7 +26590,7 @@ function FileUpload({
26202
26590
  };
26203
26591
  }, [acceptWindowDrops, disabled]);
26204
26592
  const handleFileSelect = (e) => {
26205
- 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])) {
26206
26594
  handleFiles(e.target.files);
26207
26595
  }
26208
26596
  };
@@ -26219,7 +26607,7 @@ function FileUpload({
26219
26607
  };
26220
26608
  const openDialog = async () => {
26221
26609
  if (disabled) return;
26222
- _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()]);
26223
26611
  };
26224
26612
  const displayError = error || validationError || void 0;
26225
26613
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -26297,7 +26685,7 @@ function FileUpload({
26297
26685
  "button",
26298
26686
  {
26299
26687
  type: "button",
26300
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _639 => _639(entry.id)]),
26688
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _650 => _650(entry.id)]),
26301
26689
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
26302
26690
  "aria-label": `Remove ${entry.fileName}`,
26303
26691
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -26420,7 +26808,7 @@ function ImageUploader({
26420
26808
  onChange(file);
26421
26809
  };
26422
26810
  const handleFileSelect = (e) => {
26423
- 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]]));
26424
26812
  if (inputRef.current) inputRef.current.value = "";
26425
26813
  };
26426
26814
  const handleDrag = (e) => {
@@ -26435,11 +26823,11 @@ function ImageUploader({
26435
26823
  e.stopPropagation();
26436
26824
  setDragActive(false);
26437
26825
  if (!interactive) return;
26438
- 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]]));
26439
26827
  };
26440
26828
  const openDialog = () => {
26441
26829
  if (!interactive) return;
26442
- _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()]);
26443
26831
  };
26444
26832
  const handleRootKeyDown = (e) => {
26445
26833
  if (hasImage || !interactive) return;
@@ -26596,7 +26984,7 @@ function CompactAssigneeDropdown({
26596
26984
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26597
26985
  }, [filtered, currentAssignee]);
26598
26986
  const handleSelect = (userId) => {
26599
- const next = _optionalChain([currentAssignee, 'optionalAccess', _649 => _649.id]) === userId ? null : userId;
26987
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _660 => _660.id]) === userId ? null : userId;
26600
26988
  onAssign(next);
26601
26989
  setIsOpen(false);
26602
26990
  };
@@ -26661,7 +27049,7 @@ function CompactAssigneeDropdown({
26661
27049
  }
26662
27050
  ) }),
26663
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) => {
26664
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _650 => _650.id]) === opt.value;
27052
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _661 => _661.id]) === opt.value;
26665
27053
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26666
27054
  "button",
26667
27055
  {
@@ -26730,7 +27118,7 @@ function DefaultAssigneeDropdown({
26730
27118
  Autocomplete,
26731
27119
  {
26732
27120
  options,
26733
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _651 => _651.id]), () => ( null)),
27121
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _662 => _662.id]), () => ( null)),
26734
27122
  onChange: (val) => {
26735
27123
  onAssign(val);
26736
27124
  setIsEditing(false);
@@ -27088,14 +27476,14 @@ function TicketInfoSection({
27088
27476
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27089
27477
  SquareAvatar,
27090
27478
  {
27091
- src: _optionalChain([organization, 'optionalAccess', _652 => _652.imageSrc]),
27092
- alt: _optionalChain([organization, 'optionalAccess', _653 => _653.name]),
27093
- 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",
27094
27482
  size: "md",
27095
27483
  className: "shrink-0"
27096
27484
  }
27097
27485
  ),
27098
- /* @__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" })
27099
27487
  ] }),
27100
27488
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27101
27489
  AssigneeDropdown,
@@ -27116,10 +27504,10 @@ function TicketInfoSection({
27116
27504
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27117
27505
  InfoCell2,
27118
27506
  {
27119
- value: _optionalChain([device, 'optionalAccess', _656 => _656.name]) || "Unassigned",
27507
+ value: _optionalChain([device, 'optionalAccess', _667 => _667.name]) || "Unassigned",
27120
27508
  label: "Device",
27121
- icon: _optionalChain([device, 'optionalAccess', _657 => _657.icon]),
27122
- onClick: _optionalChain([device, 'optionalAccess', _658 => _658.onClick])
27509
+ icon: _optionalChain([device, 'optionalAccess', _668 => _668.icon]),
27510
+ onClick: _optionalChain([device, 'optionalAccess', _669 => _669.onClick])
27123
27511
  }
27124
27512
  ),
27125
27513
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -27878,10 +28266,10 @@ var getContentDimensions = (config) => {
27878
28266
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
27879
28267
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
27880
28268
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
27881
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _659 => _659.mobileContentDimensions, 'optionalAccess', _660 => _660.width]))), () => ( defaultMobile.width));
27882
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _661 => _661.mobileContentDimensions, 'optionalAccess', _662 => _662.height]))), () => ( defaultMobile.height));
27883
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _663 => _663.desktopContentDimensions, 'optionalAccess', _664 => _664.width]))), () => ( defaultDesktop.width));
27884
- 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));
27885
28273
  return {
27886
28274
  mobile: { width: mobileWidth, height: mobileHeight },
27887
28275
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -28015,7 +28403,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
28015
28403
  const contentDimensions = getContentDimensions(config);
28016
28404
  const mobileHeight = contentDimensions.mobile.height;
28017
28405
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
28018
- 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`;
28019
28407
  })(),
28020
28408
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
28021
28409
  const contentDimensions = getContentDimensions(config);
@@ -28120,7 +28508,7 @@ var FigmaPrototypeViewer = ({
28120
28508
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
28121
28509
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
28122
28510
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
28123
- 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]) || ""
28124
28512
  );
28125
28513
  const activeSection = externalActiveSection || internalActiveSection;
28126
28514
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -28210,7 +28598,7 @@ var FigmaPrototypeViewer = ({
28210
28598
  const handleMessage = (event) => {
28211
28599
  if (event.origin !== "https://www.figma.com") return;
28212
28600
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
28213
- 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)) {
28214
28602
  const figmaEvent = event.data;
28215
28603
  console.log("[Figma Event]", figmaEvent.type, viewMode);
28216
28604
  switch (figmaEvent.type) {
@@ -28220,19 +28608,19 @@ var FigmaPrototypeViewer = ({
28220
28608
  setIframeState("READY");
28221
28609
  break;
28222
28610
  case "PRESENTED_NODE_CHANGED":
28223
- if (_optionalChain([figmaEvent, 'access', _673 => _673.data, 'optionalAccess', _674 => _674.presentedNodeId])) {
28611
+ if (_optionalChain([figmaEvent, 'access', _684 => _684.data, 'optionalAccess', _685 => _685.presentedNodeId])) {
28224
28612
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
28225
28613
  if (!isNavigating) {
28226
28614
  const matchingSection = config.sections.find((s) => {
28227
- 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]);
28228
- 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]);
28229
28617
  return desktopMatch || mobileMatch;
28230
28618
  });
28231
28619
  if (matchingSection && matchingSection.id !== activeSection) {
28232
28620
  if (!externalActiveSection) {
28233
28621
  setInternalActiveSection(matchingSection.id);
28234
28622
  }
28235
- _optionalChain([config, 'access', _686 => _686.onSectionChange, 'optionalCall', _687 => _687(matchingSection.id)]);
28623
+ _optionalChain([config, 'access', _697 => _697.onSectionChange, 'optionalCall', _698 => _698(matchingSection.id)]);
28236
28624
  }
28237
28625
  }
28238
28626
  }
@@ -28245,7 +28633,7 @@ var FigmaPrototypeViewer = ({
28245
28633
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
28246
28634
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
28247
28635
  const section = config.sections.find((s) => s.id === sectionId);
28248
- 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) {
28249
28637
  return;
28250
28638
  }
28251
28639
  setIsNavigating(true);
@@ -28253,7 +28641,7 @@ var FigmaPrototypeViewer = ({
28253
28641
  if (!externalActiveSection) {
28254
28642
  setInternalActiveSection(sectionId);
28255
28643
  }
28256
- _optionalChain([config, 'access', _690 => _690.onSectionChange, 'optionalCall', _691 => _691(sectionId)]);
28644
+ _optionalChain([config, 'access', _701 => _701.onSectionChange, 'optionalCall', _702 => _702(sectionId)]);
28257
28645
  const command = {
28258
28646
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
28259
28647
  data: { nodeId }
@@ -28573,7 +28961,7 @@ var FiltersDropdown = ({
28573
28961
  defaults[section.id] = section.defaultSelected || [];
28574
28962
  });
28575
28963
  setSelectedFilters(defaults);
28576
- _optionalChain([onReset, 'optionalCall', _692 => _692()]);
28964
+ _optionalChain([onReset, 'optionalCall', _703 => _703()]);
28577
28965
  setIsOpen(false);
28578
28966
  };
28579
28967
  const handleApply = () => {
@@ -28867,7 +29255,7 @@ function MediaGalleryManager({
28867
29255
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
28868
29256
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
28869
29257
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
28870
- 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]]);
28871
29259
  if (!file) return;
28872
29260
  let mediaType;
28873
29261
  if (file.type.startsWith("image/")) {
@@ -28982,7 +29370,7 @@ function MediaGalleryManager({
28982
29370
  {
28983
29371
  type: "button",
28984
29372
  variant: "outline",
28985
- 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()]),
28986
29374
  disabled: isUploading,
28987
29375
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
28988
29376
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29592,7 +29980,7 @@ function PlatformFilterComponent({
29592
29980
  variant: selectedPlatform === platform.value ? "accent" : "outline",
29593
29981
  size,
29594
29982
  onClick: () => onPlatformChange(platform.value),
29595
- leftIcon: showIcons ? _chunkCVMSC7M4cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29983
+ leftIcon: showIcons ? _chunkOII2IEREcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29596
29984
  className: "text-h3",
29597
29985
  children: platform.label
29598
29986
  },
@@ -29767,7 +30155,7 @@ function ReleaseMediaManager({
29767
30155
  const fileInputRef = _react.useRef.call(void 0, null);
29768
30156
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
29769
30157
  const handleFileSelect = async (event) => {
29770
- 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]]);
29771
30159
  if (!file) return;
29772
30160
  let mediaType;
29773
30161
  if (file.type.startsWith("image/")) {
@@ -29847,7 +30235,7 @@ function ReleaseMediaManager({
29847
30235
  {
29848
30236
  type: "button",
29849
30237
  variant: "outline",
29850
- 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()]),
29851
30239
  disabled: uploadingIndex !== null,
29852
30240
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29853
30241
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30060,7 +30448,7 @@ function SEOEditorPreview({
30060
30448
  const displayImage = hasOgImage || hasFeaturedImage;
30061
30449
  const handleImageUpload = async (event) => {
30062
30450
  if (!onOgImageUpload) return;
30063
- 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]]);
30064
30452
  if (!file) return;
30065
30453
  setIsUploading(true);
30066
30454
  try {
@@ -30191,7 +30579,7 @@ function SEOEditorPreview({
30191
30579
  type: "button",
30192
30580
  variant: "outline",
30193
30581
  size: "icon",
30194
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _708 => _708.click, 'call', _709 => _709()]),
30582
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _719 => _719.click, 'call', _720 => _720()]),
30195
30583
  disabled: disabled || isUploading,
30196
30584
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
30197
30585
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -30214,7 +30602,7 @@ function SEOEditorPreview({
30214
30602
  "div",
30215
30603
  {
30216
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",
30217
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _710 => _710.click, 'call', _711 => _711()]),
30605
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _721 => _721.click, 'call', _722 => _722()]),
30218
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: [
30219
30607
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
30220
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" })
@@ -30299,7 +30687,7 @@ function SocialLinksManager({
30299
30687
  className = ""
30300
30688
  }) {
30301
30689
  const addLink = () => {
30302
- 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";
30303
30691
  onChange([...links, { platform: firstPlatform, url: "" }]);
30304
30692
  };
30305
30693
  const removeLink = (index) => {
@@ -30311,7 +30699,7 @@ function SocialLinksManager({
30311
30699
  onChange(updated);
30312
30700
  };
30313
30701
  const getIcon = (link, platform) => {
30314
- const iconKey = _optionalChain([platform, 'optionalAccess', _714 => _714.icon_name]) || link.platform;
30702
+ const iconKey = _optionalChain([platform, 'optionalAccess', _725 => _725.icon_name]) || link.platform;
30315
30703
  const IconComponent = iconMap[iconKey];
30316
30704
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
30317
30705
  };
@@ -30336,7 +30724,7 @@ function SocialLinksManager({
30336
30724
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30337
30725
  _chunkV2FNIPZJcjs.Input,
30338
30726
  {
30339
- placeholder: _optionalChain([platform, 'optionalAccess', _715 => _715.placeholder]) || "Profile URL",
30727
+ placeholder: _optionalChain([platform, 'optionalAccess', _726 => _726.placeholder]) || "Profile URL",
30340
30728
  value: link.url,
30341
30729
  onChange: (e) => updateLink(index, "url", e.target.value),
30342
30730
  onKeyDown: (e) => {
@@ -30713,7 +31101,7 @@ function VideoSourceSelector({
30713
31101
  input.accept = "video/*";
30714
31102
  input.onchange = async (e) => {
30715
31103
  const target = e.target;
30716
- 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]]);
30717
31105
  if (!file) return;
30718
31106
  setIsUploading(true);
30719
31107
  setUploadProgress(0);
@@ -31043,7 +31431,7 @@ function TranscriptSummaryEditor({
31043
31431
  {
31044
31432
  id: "subtitles",
31045
31433
  value: subtitles || "",
31046
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _718 => _718(e.target.value)]),
31434
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _729 => _729(e.target.value)]),
31047
31435
  placeholder: subtitlesPlaceholder,
31048
31436
  disabled: disabled || !onSubtitlesChange,
31049
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",
@@ -31196,7 +31584,7 @@ var AIEnrichSection = ({
31196
31584
  }) => {
31197
31585
  const hasResults = status === "success" || status === "error";
31198
31586
  const shouldDisable = disabled || !canEnrich;
31199
- 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)]) || [];
31200
31588
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31201
31589
  "div",
31202
31590
  {
@@ -31234,7 +31622,7 @@ var AIEnrichSection = ({
31234
31622
  {
31235
31623
  id: "ai-enrich-custom-instructions",
31236
31624
  value: _nullishCoalesce(customInstructions, () => ( "")),
31237
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _721 => _721(e.target.value)]),
31625
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _732 => _732(e.target.value)]),
31238
31626
  placeholder: customInstructionsPlaceholder,
31239
31627
  disabled: loading,
31240
31628
  maxLength: customInstructionsMaxLength,
@@ -31363,7 +31751,7 @@ function HighlightVideoSection({
31363
31751
  input.accept = "video/*";
31364
31752
  input.onchange = async (e) => {
31365
31753
  const target = e.target;
31366
- 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]]);
31367
31755
  if (!file) return;
31368
31756
  setUploadError(null);
31369
31757
  try {
@@ -31865,7 +32253,7 @@ function HighlightVideoPreview({
31865
32253
  input.accept = "video/*";
31866
32254
  input.onchange = async (e) => {
31867
32255
  const target = e.target;
31868
- 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]]);
31869
32257
  if (!file) return;
31870
32258
  await onUpload(file);
31871
32259
  };
@@ -32052,7 +32440,7 @@ function HighlightVideoCombinedSection({
32052
32440
  input.accept = "video/*";
32053
32441
  input.onchange = async (e) => {
32054
32442
  const target = e.target;
32055
- 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]]);
32056
32444
  if (!file) return;
32057
32445
  await onUpload(file);
32058
32446
  };
@@ -32349,11 +32737,11 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32349
32737
  return editMode ? "Set Global Permission" : "";
32350
32738
  }
32351
32739
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32352
- return _optionalChain([option, 'optionalAccess', _728 => _728.label]) || level;
32740
+ return _optionalChain([option, 'optionalAccess', _739 => _739.label]) || level;
32353
32741
  };
32354
32742
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32355
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: [
32356
- /* @__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 }) }),
32357
32745
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
32358
32746
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", children: policy.name }),
32359
32747
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -32562,7 +32950,7 @@ function WaitlistForm({
32562
32950
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
32563
32951
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
32564
32952
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
32565
- const { toast } = _chunkCVMSC7M4cjs.useToast.call(void 0, );
32953
+ const { toast } = _chunkOII2IEREcjs.useToast.call(void 0, );
32566
32954
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
32567
32955
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
32568
32956
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -32601,7 +32989,7 @@ function WaitlistForm({
32601
32989
  const finalPhone = phone ? formatPhoneE164(phone, countryCode) : void 0;
32602
32990
  try {
32603
32991
  await onRegister(email, finalPhone);
32604
- } catch (e25) {
32992
+ } catch (e35) {
32605
32993
  }
32606
32994
  };
32607
32995
  if (!isClient) {
@@ -32881,15 +33269,15 @@ function TicketCard({
32881
33269
  transform: _utilities.CSS.Transform.toString(sortable.transform),
32882
33270
  transition: sortable.transition
32883
33271
  };
32884
- 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);
32885
33273
  const deviceText = [
32886
- _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(", ")]),
32887
33275
  ticket.organizationName
32888
33276
  ].filter(Boolean).join(", ");
32889
33277
  const handleClick = (e) => {
32890
33278
  if (sortable.isDragging) e.preventDefault();
32891
33279
  };
32892
- 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);
32893
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: [
32894
33282
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32895
33283
  _chunkVJTFBYVGcjs.Flag02Icon,
@@ -32898,7 +33286,7 @@ function TicketCard({
32898
33286
  "aria-label": `Priority: ${ticket.priority}`
32899
33287
  }
32900
33288
  ),
32901
- 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: [
32902
33290
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32903
33291
  SquareAvatar,
32904
33292
  {
@@ -32927,7 +33315,7 @@ function TicketCard({
32927
33315
  ] }),
32928
33316
  rightSection
32929
33317
  ] }),
32930
- _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
32931
33319
  ] });
32932
33320
  const cardClasses = _chunkUC43NICZcjs.cn.call(void 0,
32933
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",
@@ -33087,7 +33475,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33087
33475
  const observer = new IntersectionObserver(
33088
33476
  (entries) => {
33089
33477
  if (entries.some((e) => e.isIntersecting)) {
33090
- _optionalChain([loadMoreRef, 'access', _740 => _740.current, 'optionalCall', _741 => _741(columnIdRef.current)]);
33478
+ _optionalChain([loadMoreRef, 'access', _751 => _751.current, 'optionalCall', _752 => _752(columnIdRef.current)]);
33091
33479
  }
33092
33480
  },
33093
33481
  { root, rootMargin: loadMoreRootMargin }
@@ -33116,7 +33504,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33116
33504
  {
33117
33505
  ticket: t,
33118
33506
  columnId: column.id,
33119
- href: _optionalChain([getTicketHref, 'optionalCall', _742 => _742(t.id)]),
33507
+ href: _optionalChain([getTicketHref, 'optionalCall', _753 => _753(t.id)]),
33120
33508
  renderAssignSlot,
33121
33509
  dragDisabled: column.dragDisabled
33122
33510
  },
@@ -33148,7 +33536,7 @@ function EmptyState3() {
33148
33536
  // src/components/features/board/use-board-collapse.ts
33149
33537
 
33150
33538
  function useBoardCollapse(storageKey) {
33151
- const [persisted, setPersisted] = _chunkCVMSC7M4cjs.useLocalStorage.call(void 0,
33539
+ const [persisted, setPersisted] = _chunkOII2IEREcjs.useLocalStorage.call(void 0,
33152
33540
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
33153
33541
  {}
33154
33542
  );
@@ -33195,7 +33583,7 @@ function Board({
33195
33583
  onThumbPointerDown,
33196
33584
  onThumbPointerMove,
33197
33585
  onThumbPointerUp
33198
- } = _chunkCVMSC7M4cjs.useHorizontalScrollbar.call(void 0, );
33586
+ } = _chunkOII2IEREcjs.useHorizontalScrollbar.call(void 0, );
33199
33587
  const [items, setItems] = React102.useState(columns);
33200
33588
  const isDraggingRef = React102.useRef(false);
33201
33589
  React102.useEffect(() => {
@@ -33211,17 +33599,17 @@ function Board({
33211
33599
  const pointer = _core.pointerWithin.call(void 0, args);
33212
33600
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
33213
33601
  const ticketHit = intersections.find(
33214
- (c) => _optionalChain([c, 'access', _743 => _743.data, 'optionalAccess', _744 => _744.droppableContainer, 'optionalAccess', _745 => _745.data, 'optionalAccess', _746 => _746.current, 'optionalAccess', _747 => _747.type]) === "ticket"
33602
+ (c) => _optionalChain([c, 'access', _754 => _754.data, 'optionalAccess', _755 => _755.droppableContainer, 'optionalAccess', _756 => _756.data, 'optionalAccess', _757 => _757.current, 'optionalAccess', _758 => _758.type]) === "ticket"
33215
33603
  );
33216
33604
  if (ticketHit) return [ticketHit];
33217
33605
  const columnHit = intersections.find(
33218
- (c) => _optionalChain([c, 'access', _748 => _748.data, 'optionalAccess', _749 => _749.droppableContainer, 'optionalAccess', _750 => _750.data, 'optionalAccess', _751 => _751.current, 'optionalAccess', _752 => _752.type]) === "column"
33606
+ (c) => _optionalChain([c, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.droppableContainer, 'optionalAccess', _761 => _761.data, 'optionalAccess', _762 => _762.current, 'optionalAccess', _763 => _763.type]) === "column"
33219
33607
  );
33220
33608
  if (columnHit) {
33221
- const columnId = _optionalChain([columnHit, 'access', _753 => _753.data, 'optionalAccess', _754 => _754.droppableContainer, 'optionalAccess', _755 => _755.data, 'optionalAccess', _756 => _756.current, 'optionalAccess', _757 => _757.columnId]);
33609
+ const columnId = _optionalChain([columnHit, 'access', _764 => _764.data, 'optionalAccess', _765 => _765.droppableContainer, 'optionalAccess', _766 => _766.data, 'optionalAccess', _767 => _767.current, 'optionalAccess', _768 => _768.columnId]);
33222
33610
  const ticketsInColumn = args.droppableContainers.filter((c) => {
33223
33611
  const d = c.data.current;
33224
- return _optionalChain([d, 'optionalAccess', _758 => _758.type]) === "ticket" && d.columnId === columnId;
33612
+ return _optionalChain([d, 'optionalAccess', _769 => _769.type]) === "ticket" && d.columnId === columnId;
33225
33613
  });
33226
33614
  if (ticketsInColumn.length > 0) {
33227
33615
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -33246,20 +33634,20 @@ function Board({
33246
33634
  const overId = String(over.id);
33247
33635
  if (activeId === overId) return;
33248
33636
  const overData = over.data.current;
33249
- const fromColumnId = _optionalChain([locate, 'call', _759 => _759(items, activeId), 'optionalAccess', _760 => _760.columnId]);
33250
- const toColumnId = _optionalChain([overData, 'optionalAccess', _761 => _761.columnId]);
33637
+ const fromColumnId = _optionalChain([locate, 'call', _770 => _770(items, activeId), 'optionalAccess', _771 => _771.columnId]);
33638
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _772 => _772.columnId]);
33251
33639
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
33252
33640
  const origin = dragOriginRef.current;
33253
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _762 => _762.fromColumnId]) === toColumnId;
33641
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _773 => _773.fromColumnId]) === toColumnId;
33254
33642
  const targetCol = items.find((c) => c.id === toColumnId);
33255
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _763 => _763.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33256
- if (_optionalChain([targetCol, 'optionalAccess', _764 => _764.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33643
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _774 => _774.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33644
+ if (_optionalChain([targetCol, 'optionalAccess', _775 => _775.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33257
33645
  setItems((prev) => {
33258
33646
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
33259
33647
  const toCol = prev.find((c) => c.id === toColumnId);
33260
33648
  if (fromIndex < 0 || !toCol) return prev;
33261
33649
  let toIndex;
33262
- if (_optionalChain([overData, 'optionalAccess', _765 => _765.type]) === "column") {
33650
+ if (_optionalChain([overData, 'optionalAccess', _776 => _776.type]) === "column") {
33263
33651
  toIndex = toCol.tickets.length;
33264
33652
  } else {
33265
33653
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33301,14 +33689,14 @@ function Board({
33301
33689
  const toColumnId = located.columnId;
33302
33690
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33303
33691
  const targetCol = items.find((c) => c.id === toColumnId);
33304
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _766 => _766.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _767 => _767.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33692
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _777 => _777.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _778 => _778.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33305
33693
  setItems(columns);
33306
33694
  return;
33307
33695
  }
33308
33696
  let finalIndex = located.index;
33309
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _768 => _768.find, 'call', _769 => _769((c) => c.id === toColumnId), 'optionalAccess', _770 => _770.tickets]), () => ( []));
33697
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _779 => _779.find, 'call', _780 => _780((c) => c.id === toColumnId), 'optionalAccess', _781 => _781.tickets]), () => ( []));
33310
33698
  const overData = over.data.current;
33311
- if (_optionalChain([overData, 'optionalAccess', _771 => _771.type]) === "ticket") {
33699
+ if (_optionalChain([overData, 'optionalAccess', _782 => _782.type]) === "ticket") {
33312
33700
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33313
33701
  if (overIndex >= 0 && overIndex !== located.index) {
33314
33702
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33328,8 +33716,8 @@ function Board({
33328
33716
  ticketId: origin.ticketId,
33329
33717
  fromColumnId: origin.fromColumnId,
33330
33718
  toColumnId,
33331
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _772 => _772[finalIndex - 1], 'optionalAccess', _773 => _773.id]), () => ( null)),
33332
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _774 => _774[finalIndex + 1], 'optionalAccess', _775 => _775.id]), () => ( null))
33719
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _783 => _783[finalIndex - 1], 'optionalAccess', _784 => _784.id]), () => ( null)),
33720
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _785 => _785[finalIndex + 1], 'optionalAccess', _786 => _786.id]), () => ( null))
33333
33721
  });
33334
33722
  };
33335
33723
  const handleDragCancel = () => {
@@ -33358,8 +33746,8 @@ function Board({
33358
33746
  children: items.map((column, i) => {
33359
33747
  const prev = items[i - 1];
33360
33748
  const next = items[i + 1];
33361
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _776 => _776.system]));
33362
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _777 => _777.system]));
33749
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _787 => _787.system]));
33750
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _788 => _788.system]));
33363
33751
  const showGap = i > 0 && !joinLeft;
33364
33752
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React102.Fragment, { children: [
33365
33753
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33417,7 +33805,7 @@ function locate(cols, ticketId) {
33417
33805
  return null;
33418
33806
  }
33419
33807
  function findIndexInColumn(cols, columnId, ticketId) {
33420
- 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));
33808
+ 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));
33421
33809
  }
33422
33810
 
33423
33811
  // src/components/features/board/types.ts
@@ -34082,5 +34470,6 @@ function canonicalize(status) {
34082
34470
 
34083
34471
 
34084
34472
 
34085
- 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;
34086
- //# sourceMappingURL=chunk-56JS47IQ.cjs.map
34473
+
34474
+ 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;
34475
+ //# sourceMappingURL=chunk-E6AWU7EI.cjs.map