@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.
- package/dist/{chunk-PJ5KFD2V.js → chunk-4ML3NA2L.js} +75 -1
- package/dist/{chunk-PJ5KFD2V.js.map → chunk-4ML3NA2L.js.map} +1 -1
- package/dist/{chunk-C5VTN2SB.js → chunk-BXPH5SOL.js} +748 -359
- package/dist/chunk-BXPH5SOL.js.map +1 -0
- package/dist/{chunk-56JS47IQ.cjs → chunk-E6AWU7EI.cjs} +794 -405
- package/dist/chunk-E6AWU7EI.cjs.map +1 -0
- package/dist/{chunk-CVMSC7M4.cjs → chunk-OII2IERE.cjs} +77 -3
- package/dist/chunk-OII2IERE.cjs.map +1 -0
- package/dist/components/chat/hooks/index.d.ts +1 -0
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +15 -0
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -0
- package/dist/components/chat/types/api.types.d.ts +43 -0
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/chat/types/network.types.d.ts +4 -0
- package/dist/components/chat/types/network.types.d.ts.map +1 -1
- package/dist/components/chat/utils/message-segment-accumulator.d.ts +16 -0
- package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/index.cjs +5 -3
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +4 -2
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/ui/index.cjs +5 -3
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +4 -2
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +5 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -2
- package/dist/nats/index.cjs +73 -0
- package/dist/nats/index.cjs.map +1 -1
- package/dist/nats/index.js +73 -0
- package/dist/nats/index.js.map +1 -1
- package/dist/nats/nats.d.ts +22 -1
- package/dist/nats/nats.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/hooks/index.ts +1 -0
- package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +474 -0
- package/src/components/chat/types/api.types.ts +45 -0
- package/src/components/chat/types/network.types.ts +4 -0
- package/src/components/chat/utils/message-segment-accumulator.ts +28 -0
- package/src/components/chat/utils/process-historical-messages.ts +23 -5
- package/src/nats/nats.ts +117 -0
- package/dist/chunk-56JS47IQ.cjs.map +0 -1
- package/dist/chunk-C5VTN2SB.js.map +0 -1
- package/dist/chunk-CVMSC7M4.cjs.map +0 -1
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
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 =
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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 } =
|
|
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-
|
|
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([
|
|
7300
|
-
if (
|
|
7301
|
-
|
|
7302
|
-
const old =
|
|
7303
|
-
|
|
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 =
|
|
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
|
-
|
|
7670
|
+
shared2 = { wsUrl: url, client, connectPromise: null, refCount: 0, closeTimer: null, retryTimer: null };
|
|
7319
7671
|
}
|
|
7320
|
-
|
|
7321
|
-
|
|
7322
|
-
|
|
7323
|
-
return
|
|
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 (!
|
|
7327
|
-
|
|
7328
|
-
if (
|
|
7329
|
-
|
|
7330
|
-
const s =
|
|
7331
|
-
|
|
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 (
|
|
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 (
|
|
7740
|
+
if (shared2 !== sharedConn) return;
|
|
7389
7741
|
try {
|
|
7390
|
-
await _optionalChain([onBeforeReconnectRef, 'access',
|
|
7391
|
-
} catch (
|
|
7742
|
+
await _optionalChain([onBeforeReconnectRef, 'access', _150 => _150.current, 'optionalCall', _151 => _151()]);
|
|
7743
|
+
} catch (e20) {
|
|
7392
7744
|
}
|
|
7393
7745
|
if (closed) return;
|
|
7394
|
-
if (
|
|
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 &&
|
|
7753
|
+
if (!closed && shared2 === sharedConn) {
|
|
7402
7754
|
retryAttempt = 0;
|
|
7403
7755
|
setIsConnected(true);
|
|
7404
7756
|
}
|
|
7405
|
-
} catch (
|
|
7757
|
+
} catch (e21) {
|
|
7406
7758
|
sharedConn.connectPromise = null;
|
|
7407
|
-
if (!closed &&
|
|
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',
|
|
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',
|
|
7431
|
-
} catch (
|
|
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',
|
|
7788
|
+
_optionalChain([abortControllerRef, 'access', _156 => _156.current, 'optionalAccess', _157 => _157.abort, 'call', _158 => _158()]);
|
|
7437
7789
|
abortControllerRef.current = null;
|
|
7438
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
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 (
|
|
7802
|
+
} catch (e23) {
|
|
7451
7803
|
sharedConn.connectPromise = null;
|
|
7452
7804
|
if (!closed) {
|
|
7453
7805
|
setIsConnected(false);
|
|
7454
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
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',
|
|
7471
|
-
} catch (
|
|
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',
|
|
7499
|
-
} catch (
|
|
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',
|
|
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',
|
|
7517
|
-
} catch (
|
|
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',
|
|
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 (
|
|
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',
|
|
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',
|
|
7564
|
-
} catch (
|
|
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 (
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
7931
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
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',
|
|
7956
|
-
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess',
|
|
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',
|
|
8053
|
-
explanation: _optionalChain([pendingApproval, 'optionalAccess',
|
|
8429
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _193 => _193.command]) || "",
|
|
8430
|
+
explanation: _optionalChain([pendingApproval, 'optionalAccess', _194 => _194.explanation]),
|
|
8054
8431
|
requestId,
|
|
8055
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
8691
|
+
explanation: _optionalChain([required, 'optionalAccess', _214 => _214.toolExplanation]),
|
|
8315
8692
|
approvalType,
|
|
8316
8693
|
toolCalls
|
|
8317
8694
|
});
|
|
8318
|
-
_optionalChain([callbacks, 'access',
|
|
8695
|
+
_optionalChain([callbacks, 'access', _215 => _215.onEscalatedApproval, 'optionalCall', _216 => _216(requestId, {
|
|
8319
8696
|
command: summary,
|
|
8320
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
8774
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _232 => _232.details])) {
|
|
8398
8775
|
try {
|
|
8399
|
-
message = _optionalChain([JSON, 'access',
|
|
8400
|
-
} catch (
|
|
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',
|
|
8406
|
-
_optionalChain([callbacks, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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
|
-
|
|
8666
|
-
|
|
8667
|
-
|
|
8668
|
-
|
|
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',
|
|
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',
|
|
8686
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
9119
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _276 => _276.details])) {
|
|
8732
9120
|
try {
|
|
8733
|
-
message = _optionalChain([JSON, 'access',
|
|
8734
|
-
} catch (
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
9570
|
+
_optionalChain([config, 'access', _301 => _301.mobile, 'optionalAccess', _302 => _302.onToggle, 'optionalCall', _303 => _303()]);
|
|
9183
9571
|
},
|
|
9184
|
-
"aria-label": _optionalChain([config, 'access',
|
|
9185
|
-
leftIcon: _optionalChain([config, 'access',
|
|
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',
|
|
9203
|
-
const showActions = _optionalChain([config, 'optionalAccess',
|
|
9204
|
-
const showMobileMenu = _optionalChain([config, 'optionalAccess',
|
|
9205
|
-
const isAdminHeader = _optionalChain([config, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
9227
|
-
_optionalChain([config, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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(
|
|
9860
|
-
const [minimized, setMinimized] =
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
10509
|
+
_optionalChain([onSubmit, 'optionalCall', _342 => _342(currentValue)]);
|
|
10122
10510
|
};
|
|
10123
10511
|
const handleKeyDown = (e) => {
|
|
10124
10512
|
if (e.key === "Enter") {
|
|
10125
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
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',
|
|
10172
|
-
const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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(
|
|
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',
|
|
10374
|
-
const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
10375
|
-
const onClick = _optionalChain([ctx, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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",
|
|
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',
|
|
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
|
-
|
|
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',
|
|
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,
|
|
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',
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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',
|
|
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',
|
|
11740
|
-
if (_optionalChain([logoMedia, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
13052
|
-
const categories = _optionalChain([searchParams, 'optionalAccess',
|
|
13053
|
-
const subcategories = _optionalChain([searchParams, 'optionalAccess',
|
|
13054
|
-
const tags = _optionalChain([searchParams, 'optionalAccess',
|
|
13055
|
-
const filters = _optionalChain([searchParams, 'optionalAccess',
|
|
13056
|
-
const pricing = _optionalChain([searchParams, 'optionalAccess',
|
|
13057
|
-
const page = parseInt(_optionalChain([searchParams, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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 } =
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
14466
|
-
const unit = _optionalChain([item, 'access',
|
|
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',
|
|
14476
|
-
const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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
|
-
} =
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
17381
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
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',
|
|
17386
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
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',
|
|
17413
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
18196
|
-
alt: _optionalChain([author, 'optionalAccess',
|
|
18197
|
-
fallback: getInitials4(_optionalChain([author, 'optionalAccess',
|
|
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',
|
|
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',
|
|
18235
|
-
captionsUrl: _optionalChain([release, 'optionalAccess',
|
|
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',
|
|
18252
|
-
captionsUrl: _optionalChain([release, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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 } =
|
|
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(
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
20270
|
-
const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access',
|
|
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',
|
|
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',
|
|
20670
|
+
_optionalChain([controlledOnTabChange, 'optionalCall', _499 => _499(tabId)]);
|
|
20283
20671
|
} else {
|
|
20284
|
-
_optionalChain([controlledOnTabChange, 'optionalCall',
|
|
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',
|
|
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',
|
|
21097
|
+
_optionalChain([onTagsChange, 'optionalCall', _502 => _502([])]);
|
|
20710
21098
|
onClose();
|
|
20711
21099
|
};
|
|
20712
21100
|
const handleApply = () => {
|
|
20713
21101
|
onFilterChange(selectedFilters);
|
|
20714
|
-
_optionalChain([onTagsChange, 'optionalCall',
|
|
21102
|
+
_optionalChain([onTagsChange, 'optionalCall', _503 => _503(pendingTags)]);
|
|
20715
21103
|
onClose();
|
|
20716
21104
|
};
|
|
20717
21105
|
const getColumnDirection = (columnKey) => {
|
|
20718
|
-
return _optionalChain([sortConfig, 'optionalAccess',
|
|
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',
|
|
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 =
|
|
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',
|
|
21321
|
+
}, [_optionalChain([image, 'optionalAccess', _506 => _506.src])]);
|
|
20934
21322
|
const showImageFallback = !!image && (imageFailed || !image.src);
|
|
20935
|
-
const initials = getInitials3(_optionalChain([image, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
21743
|
-
_optionalChain([actions, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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,
|
|
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',
|
|
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 } =
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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(
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
23768
|
-
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess',
|
|
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',
|
|
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',
|
|
23776
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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
|
-
} =
|
|
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',
|
|
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(
|
|
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',
|
|
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',
|
|
24505
|
-
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
24506
|
-
const canSort = _optionalChain([meta, 'optionalAccess',
|
|
24507
|
-
const sortDir = _optionalChain([sort, 'optionalAccess',
|
|
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',
|
|
24515
|
-
_optionalChain([meta, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
24729
|
-
_optionalChain([meta, 'optionalAccess',
|
|
24730
|
-
_optionalChain([meta, 'optionalAccess',
|
|
24731
|
-
getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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 =
|
|
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
|
-
} =
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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
|
-
} =
|
|
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',
|
|
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',
|
|
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',
|
|
25631
|
-
_optionalChain([inputRef, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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})`;
|
|
25855
26243
|
insertTextAtCursor(markdown);
|
|
25856
|
-
_optionalChain([onFileUploaded, 'optionalCall',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
27092
|
-
alt: _optionalChain([organization, 'optionalAccess',
|
|
27093
|
-
fallback: _optionalChain([organization, 'optionalAccess',
|
|
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',
|
|
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',
|
|
27507
|
+
value: _optionalChain([device, 'optionalAccess', _667 => _667.name]) || "Unassigned",
|
|
27120
27508
|
label: "Device",
|
|
27121
|
-
icon: _optionalChain([device, 'optionalAccess',
|
|
27122
|
-
onClick: _optionalChain([device, 'optionalAccess',
|
|
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',
|
|
27882
|
-
const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess',
|
|
27883
|
-
const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess',
|
|
27884
|
-
const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
28228
|
-
const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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 ?
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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,
|
|
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 } =
|
|
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 (
|
|
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',
|
|
33272
|
+
const showDeviceRow = !!(_optionalChain([ticket, 'access', _740 => _740.deviceHostnames, 'optionalAccess', _741 => _741.length]) || ticket.organizationName);
|
|
32885
33273
|
const deviceText = [
|
|
32886
|
-
_optionalChain([ticket, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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] =
|
|
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
|
-
} =
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
33250
|
-
const toColumnId = _optionalChain([overData, 'optionalAccess',
|
|
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',
|
|
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',
|
|
33256
|
-
if (_optionalChain([targetCol, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
33332
|
-
beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access',
|
|
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',
|
|
33362
|
-
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess',
|
|
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',
|
|
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
|