@flamingo-stack/openframe-frontend-core 0.0.210 → 0.0.212-snapshot.20260528112413
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-VBFOCTMD.cjs → chunk-35XIT2CF.cjs} +17 -17
- package/dist/{chunk-VBFOCTMD.cjs.map → chunk-35XIT2CF.cjs.map} +1 -1
- package/dist/{chunk-ATEUJQKU.js → chunk-3JWIJJ44.js} +2 -2
- package/dist/chunk-CZR7ARBA.js +698 -0
- package/dist/chunk-CZR7ARBA.js.map +1 -0
- package/dist/{chunk-UYQOPC57.js → chunk-HICZPTRR.js} +4 -351
- package/dist/chunk-HICZPTRR.js.map +1 -0
- package/dist/{chunk-WJBPLMBX.js → chunk-IK2X5YJU.js} +3 -3
- package/dist/{chunk-MDTIOPVS.cjs → chunk-OTKJASSX.cjs} +26 -26
- package/dist/{chunk-MDTIOPVS.cjs.map → chunk-OTKJASSX.cjs.map} +1 -1
- package/dist/chunk-OZ3GH6OQ.cjs +698 -0
- package/dist/chunk-OZ3GH6OQ.cjs.map +1 -0
- package/dist/{chunk-6RZYJICV.cjs → chunk-P5EE2VJX.cjs} +1 -1
- package/dist/chunk-P5EE2VJX.cjs.map +1 -0
- package/dist/{chunk-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
- package/dist/chunk-WT5JV2GS.cjs.map +1 -0
- package/dist/{chunk-TWKPYZNQ.cjs → chunk-ZDF6F7ED.cjs} +569 -694
- package/dist/chunk-ZDF6F7ED.cjs.map +1 -0
- package/dist/{chunk-7L4DWM7P.js → chunk-ZG2YY5E7.js} +1 -1
- package/dist/chunk-ZG2YY5E7.js.map +1 -0
- package/dist/{chunk-R5RNRH62.js → chunk-ZTJVRSN5.js} +422 -547
- package/dist/chunk-ZTJVRSN5.js.map +1 -0
- package/dist/components/chat/hooks/use-chat-identity.d.ts +3 -3
- package/dist/components/chat/hooks/use-chat-identity.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts +0 -9
- package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +6 -5
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +5 -4
- package/dist/components/contact/index.cjs +7 -6
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +6 -5
- package/dist/components/features/index.cjs +6 -5
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +5 -4
- package/dist/components/features/notifications/index.d.ts +2 -2
- package/dist/components/features/notifications/index.d.ts.map +1 -1
- package/dist/components/features/notifications/notifications-context.d.ts +16 -1
- package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
- package/dist/components/features/notifications/types.d.ts +4 -0
- package/dist/components/features/notifications/types.d.ts.map +1 -1
- package/dist/components/footer-waitlist-button.d.ts +21 -2
- package/dist/components/footer-waitlist-button.d.ts.map +1 -1
- package/dist/components/index.cjs +93 -96
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +17 -20
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/app-header.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +6 -5
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +5 -4
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/tickets/help-center-card.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +144 -102
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +98 -56
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/tickets/ticket-row.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +6 -5
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +5 -4
- package/dist/contexts/chat-runtime-context.d.ts +6 -3
- package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
- package/dist/contexts/index.cjs +2 -2
- package/dist/contexts/index.js +1 -1
- package/dist/embed-shims/index.cjs +3 -3
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +4 -4
- package/dist/hooks/index.cjs +3 -2
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +2 -1
- package/dist/index.cjs +8 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -4
- package/dist/nats/index.cjs +28 -346
- package/dist/nats/index.cjs.map +1 -1
- package/dist/nats/index.d.ts +3 -0
- package/dist/nats/index.d.ts.map +1 -1
- package/dist/nats/index.js +30 -346
- package/dist/nats/index.js.map +1 -1
- package/dist/nats/nats-provider.d.ts +28 -0
- package/dist/nats/nats-provider.d.ts.map +1 -0
- package/dist/nats/nats.d.ts +1 -0
- package/dist/nats/nats.d.ts.map +1 -1
- package/dist/nats/shared-connection.d.ts +73 -0
- package/dist/nats/shared-connection.d.ts.map +1 -0
- package/dist/nats/use-nats-subscription.d.ts +18 -0
- package/dist/nats/use-nats-subscription.d.ts.map +1 -0
- package/dist/utils/index.cjs +10 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +10 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/scroll-into-view.d.ts +63 -0
- package/dist/utils/scroll-into-view.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/chat/hooks/use-chat-identity.ts +8 -7
- package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +60 -207
- package/src/components/chat/hooks/use-nats-dialog-subscription.ts +71 -214
- package/src/components/features/notifications/index.ts +2 -1
- package/src/components/features/notifications/notifications-context.tsx +104 -6
- package/src/components/features/notifications/types.ts +5 -0
- package/src/components/footer-waitlist-button.tsx +33 -16
- package/src/components/navigation/app-header.tsx +7 -9
- package/src/components/navigation/sticky-section-nav.tsx +6 -4
- package/src/components/tickets/help-center-card.tsx +55 -1
- package/src/components/tickets/help-center-list.tsx +9 -1
- package/src/components/tickets/ticket-detail-drawer.tsx +19 -4
- package/src/components/tickets/ticket-row.tsx +30 -19
- package/src/contexts/chat-runtime-context.tsx +6 -3
- package/src/nats/index.ts +3 -0
- package/src/nats/nats-provider.tsx +146 -0
- package/src/nats/nats.ts +2 -0
- package/src/nats/shared-connection.ts +285 -0
- package/src/nats/use-nats-subscription.ts +99 -0
- package/src/stories/EmbeddableChat.stories.tsx +1 -1
- package/src/utils/index.ts +12 -0
- package/src/utils/scroll-into-view.ts +74 -0
- package/dist/chunk-6RZYJICV.cjs.map +0 -1
- package/dist/chunk-7L4DWM7P.js.map +0 -1
- package/dist/chunk-EH3RWVF3.cjs.map +0 -1
- package/dist/chunk-R5RNRH62.js.map +0 -1
- package/dist/chunk-TWKPYZNQ.cjs.map +0 -1
- package/dist/chunk-UYQOPC57.js.map +0 -1
- /package/dist/{chunk-ATEUJQKU.js.map → chunk-3JWIJJ44.js.map} +0 -0
- /package/dist/{chunk-WJBPLMBX.js.map → chunk-IK2X5YJU.js.map} +0 -0
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
var _chunkEH3RWVF3cjs = require('./chunk-EH3RWVF3.cjs');
|
|
19
|
+
var _chunkWT5JV2GScjs = require('./chunk-WT5JV2GS.cjs');
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
|
|
@@ -129,7 +128,6 @@ var _chunk24KCAECRcjs = require('./chunk-24KCAECR.cjs');
|
|
|
129
128
|
|
|
130
129
|
|
|
131
130
|
|
|
132
|
-
|
|
133
131
|
|
|
134
132
|
|
|
135
133
|
var _chunk65CPJ4SXcjs = require('./chunk-65CPJ4SX.cjs');
|
|
@@ -139,7 +137,10 @@ var _chunk65CPJ4SXcjs = require('./chunk-65CPJ4SX.cjs');
|
|
|
139
137
|
var _chunkXQFFGR6Ucjs = require('./chunk-XQFFGR6U.cjs');
|
|
140
138
|
|
|
141
139
|
|
|
142
|
-
var
|
|
140
|
+
var _chunkP5EE2VJXcjs = require('./chunk-P5EE2VJX.cjs');
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
var _chunkXL4V2PYGcjs = require('./chunk-XL4V2PYG.cjs');
|
|
143
144
|
|
|
144
145
|
|
|
145
146
|
var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
|
|
@@ -151,7 +152,9 @@ var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
|
|
|
151
152
|
var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
|
|
152
153
|
|
|
153
154
|
|
|
154
|
-
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
var _chunkOZ3GH6OQcjs = require('./chunk-OZ3GH6OQ.cjs');
|
|
155
158
|
|
|
156
159
|
|
|
157
160
|
|
|
@@ -772,7 +775,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
|
|
|
772
775
|
onClick: onToggle,
|
|
773
776
|
className: "flex gap-2 items-start w-full p-3 cursor-pointer text-left",
|
|
774
777
|
children: [
|
|
775
|
-
/* @__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,
|
|
778
|
+
/* @__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, _chunkWT5JV2GScjs.ToolIcon, { toolType, size: 16 }) }),
|
|
776
779
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
777
780
|
"div",
|
|
778
781
|
{
|
|
@@ -3175,7 +3178,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
3175
3178
|
className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
|
|
3176
3179
|
onClick: () => setExpanded((prev) => !prev),
|
|
3177
3180
|
children: [
|
|
3178
|
-
/* @__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,
|
|
3181
|
+
/* @__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, _chunkWT5JV2GScjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
3179
3182
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3180
3183
|
"div",
|
|
3181
3184
|
{
|
|
@@ -4776,7 +4779,7 @@ function NavLinkAnchorViaRuntime({
|
|
|
4776
4779
|
className,
|
|
4777
4780
|
children
|
|
4778
4781
|
}) {
|
|
4779
|
-
const runtime =
|
|
4782
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
4780
4783
|
const panel = useChatPanel();
|
|
4781
4784
|
const resolvedHref = resolveHrefForRuntime(href, runtime);
|
|
4782
4785
|
const isNewTab = computeIsNewTab(runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
|
|
@@ -5416,7 +5419,7 @@ function AdminContentCard({
|
|
|
5416
5419
|
const [imageError, setImageError] = _react.useState.call(void 0, false);
|
|
5417
5420
|
const [imageLoaded, setImageLoaded] = _react.useState.call(void 0, false);
|
|
5418
5421
|
const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
|
|
5419
|
-
const imageBgColor =
|
|
5422
|
+
const imageBgColor = _chunkWT5JV2GScjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
|
|
5420
5423
|
_react.useEffect.call(void 0, () => {
|
|
5421
5424
|
setImageLoaded(false);
|
|
5422
5425
|
}, [displayUrl]);
|
|
@@ -5975,7 +5978,7 @@ var RATIO_TO_CSS_ASPECT = {
|
|
|
5975
5978
|
landscape: "16 / 9"
|
|
5976
5979
|
};
|
|
5977
5980
|
function LazyBite({ ratio, children }) {
|
|
5978
|
-
const { ref, isNear } =
|
|
5981
|
+
const { ref, isNear } = _chunkWT5JV2GScjs.useNearViewport.call(void 0, "500px");
|
|
5979
5982
|
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" }) });
|
|
5980
5983
|
}
|
|
5981
5984
|
function VideoBitesDisplay({
|
|
@@ -7718,7 +7721,7 @@ function AutocompleteInner(props, ref) {
|
|
|
7718
7721
|
}, [valueArray, options]);
|
|
7719
7722
|
const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
|
|
7720
7723
|
const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
|
|
7721
|
-
const autoLimitTags =
|
|
7724
|
+
const autoLimitTags = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
|
|
7722
7725
|
count: multiple ? selectedOptions.length : 0,
|
|
7723
7726
|
limitTags: multiple ? limitTagsProp : 0,
|
|
7724
7727
|
placeholder: inputPlaceholder
|
|
@@ -9116,7 +9119,7 @@ var ProgressBar = ({
|
|
|
9116
9119
|
mobileHeight = 8,
|
|
9117
9120
|
inverted = false
|
|
9118
9121
|
}) => {
|
|
9119
|
-
const isMdUp = _nullishCoalesce(
|
|
9122
|
+
const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( true));
|
|
9120
9123
|
const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
|
|
9121
9124
|
const effectiveHeight = isMdUp ? height : mobileHeight;
|
|
9122
9125
|
const containerRef = _react.useRef.call(void 0, null);
|
|
@@ -9211,7 +9214,7 @@ function InfoCard({ data, className = "" }) {
|
|
|
9211
9214
|
);
|
|
9212
9215
|
}
|
|
9213
9216
|
function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
|
|
9214
|
-
const { copy, copied } =
|
|
9217
|
+
const { copy, copied } = _chunkWT5JV2GScjs.useCopyToClipboard.call(void 0, );
|
|
9215
9218
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
|
|
9216
9219
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
|
|
9217
9220
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
|
|
@@ -12940,7 +12943,7 @@ function ListPageLayout({
|
|
|
12940
12943
|
}) {
|
|
12941
12944
|
const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
|
|
12942
12945
|
const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
|
|
12943
|
-
const debouncedSearchValue =
|
|
12946
|
+
const debouncedSearchValue = _chunkWT5JV2GScjs.useDebounce.call(void 0, localSearchValue, 500);
|
|
12944
12947
|
_react.useEffect.call(void 0, () => {
|
|
12945
12948
|
setLocalSearchValue(searchValue);
|
|
12946
12949
|
}, [searchValue]);
|
|
@@ -13743,7 +13746,7 @@ function toToolLabel(input) {
|
|
|
13743
13746
|
if (!input) return "";
|
|
13744
13747
|
const toolType = normalizeToolType(input);
|
|
13745
13748
|
if (toolType) {
|
|
13746
|
-
return
|
|
13749
|
+
return _chunkWT5JV2GScjs.toolLabels[toolType];
|
|
13747
13750
|
}
|
|
13748
13751
|
return input;
|
|
13749
13752
|
}
|
|
@@ -13754,7 +13757,7 @@ function getToolTypeAliases(toolType) {
|
|
|
13754
13757
|
return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
|
|
13755
13758
|
}
|
|
13756
13759
|
function getToolLabel(toolType) {
|
|
13757
|
-
return
|
|
13760
|
+
return _chunkWT5JV2GScjs.toolLabels[toolType] || toolType;
|
|
13758
13761
|
}
|
|
13759
13762
|
|
|
13760
13763
|
// src/types/shell.types.ts
|
|
@@ -15016,6 +15019,15 @@ var OPENFRAME_DEV_SECTIONS = {
|
|
|
15016
15019
|
}
|
|
15017
15020
|
};
|
|
15018
15021
|
|
|
15022
|
+
// src/utils/scroll-into-view.ts
|
|
15023
|
+
function scrollElementIntoView(target, options = {}) {
|
|
15024
|
+
if (typeof window === "undefined" || !target) return;
|
|
15025
|
+
const { headerOffset = 0, behavior = "smooth", adjustTargetY } = options;
|
|
15026
|
+
const rawTargetY = target.getBoundingClientRect().top + window.scrollY - headerOffset;
|
|
15027
|
+
const finalY = adjustTargetY ? adjustTargetY(rawTargetY) : rawTargetY;
|
|
15028
|
+
window.scrollTo({ top: Math.max(0, finalY), behavior });
|
|
15029
|
+
}
|
|
15030
|
+
|
|
15019
15031
|
// src/components/ui/benefit-card.tsx
|
|
15020
15032
|
|
|
15021
15033
|
var BenefitCard = ({
|
|
@@ -18720,7 +18732,7 @@ function PlatformFilterComponent({
|
|
|
18720
18732
|
variant: selectedPlatform === platform.value ? "accent" : "outline",
|
|
18721
18733
|
size,
|
|
18722
18734
|
onClick: () => onPlatformChange(platform.value),
|
|
18723
|
-
leftIcon: showIcons ?
|
|
18735
|
+
leftIcon: showIcons ? _chunkWT5JV2GScjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
|
|
18724
18736
|
className: "text-h3",
|
|
18725
18737
|
children: platform.label
|
|
18726
18738
|
},
|
|
@@ -21480,7 +21492,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
|
|
|
21480
21492
|
};
|
|
21481
21493
|
var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
21482
21494
|
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: [
|
|
21483
|
-
/* @__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,
|
|
21495
|
+
/* @__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, _chunkWT5JV2GScjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
|
|
21484
21496
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
|
|
21485
21497
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", title: policy.name, children: policy.name }),
|
|
21486
21498
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
|
|
@@ -21790,7 +21802,7 @@ function WaitlistForm({
|
|
|
21790
21802
|
const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
|
|
21791
21803
|
const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
|
|
21792
21804
|
const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
|
|
21793
|
-
const { toast } =
|
|
21805
|
+
const { toast } = _chunkWT5JV2GScjs.useToast.call(void 0, );
|
|
21794
21806
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
21795
21807
|
const [isClient, setIsClient] = _react.useState.call(void 0, false);
|
|
21796
21808
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
@@ -21962,12 +21974,48 @@ function WaitlistForm({
|
|
|
21962
21974
|
|
|
21963
21975
|
|
|
21964
21976
|
var NotificationsContext = React73.createContext(null);
|
|
21977
|
+
function mergeNotification(base, incoming) {
|
|
21978
|
+
const out = { ...base };
|
|
21979
|
+
for (const key of Object.keys(incoming)) {
|
|
21980
|
+
const value = incoming[key];
|
|
21981
|
+
if (value !== void 0) out[key] = value;
|
|
21982
|
+
}
|
|
21983
|
+
out.read = (_nullishCoalesce(incoming.read, () => ( false))) || (_nullishCoalesce(base.read, () => ( false))) || false;
|
|
21984
|
+
out.settled = (_nullishCoalesce(incoming.settled, () => ( false))) || (_nullishCoalesce(base.settled, () => ( false))) || false;
|
|
21985
|
+
return out;
|
|
21986
|
+
}
|
|
21965
21987
|
function reducer(state, action) {
|
|
21966
21988
|
switch (action.type) {
|
|
21967
21989
|
case "add": {
|
|
21968
|
-
const
|
|
21990
|
+
const existing = state.find((n) => n.id === action.notification.id);
|
|
21991
|
+
if (existing) {
|
|
21992
|
+
const merged = mergeNotification(existing, action.notification);
|
|
21993
|
+
return [merged, ...state.filter((n) => n.id !== action.notification.id)];
|
|
21994
|
+
}
|
|
21995
|
+
const next = [action.notification, ...state];
|
|
21969
21996
|
return next.length > action.max ? next.slice(0, action.max) : next;
|
|
21970
21997
|
}
|
|
21998
|
+
case "upsert": {
|
|
21999
|
+
const existing = state.find((n) => n.id === action.notification.id);
|
|
22000
|
+
if (existing) {
|
|
22001
|
+
const merged = mergeNotification(existing, action.notification);
|
|
22002
|
+
return state.map((n) => n.id === action.notification.id ? merged : n);
|
|
22003
|
+
}
|
|
22004
|
+
const next = [action.notification, ...state];
|
|
22005
|
+
return next.length > action.max ? next.slice(0, action.max) : next;
|
|
22006
|
+
}
|
|
22007
|
+
case "set": {
|
|
22008
|
+
const existingById = new Map(state.map((n) => [n.id, n]));
|
|
22009
|
+
return action.notifications.map((incoming) => {
|
|
22010
|
+
const existing = existingById.get(incoming.id);
|
|
22011
|
+
if (!existing) return incoming;
|
|
22012
|
+
return {
|
|
22013
|
+
...incoming,
|
|
22014
|
+
read: incoming.read || existing.read,
|
|
22015
|
+
settled: incoming.settled || existing.settled
|
|
22016
|
+
};
|
|
22017
|
+
});
|
|
22018
|
+
}
|
|
21971
22019
|
case "markRead":
|
|
21972
22020
|
return state.map((n) => n.id === action.id ? { ...n, read: true } : n);
|
|
21973
22021
|
case "markAllRead":
|
|
@@ -21994,11 +22042,16 @@ function NotificationsProvider({
|
|
|
21994
22042
|
maxNotifications = 50,
|
|
21995
22043
|
defaultShowPopups = true,
|
|
21996
22044
|
onShowPopupsChange,
|
|
21997
|
-
onHistoryClick
|
|
22045
|
+
onHistoryClick,
|
|
22046
|
+
actions
|
|
21998
22047
|
}) {
|
|
21999
22048
|
const [notifications, dispatch] = React73.useReducer(reducer, initialNotifications);
|
|
22000
22049
|
const [isOpen, setIsOpen] = React73.useState(false);
|
|
22001
22050
|
const [showPopups, setShowPopupsState] = React73.useState(defaultShowPopups);
|
|
22051
|
+
const actionsRef = React73.useRef(actions);
|
|
22052
|
+
React73.useEffect(() => {
|
|
22053
|
+
actionsRef.current = actions;
|
|
22054
|
+
}, [actions]);
|
|
22002
22055
|
const addNotification = React73.useCallback(
|
|
22003
22056
|
(input) => {
|
|
22004
22057
|
const id = _nullishCoalesce(input.id, () => ( generateId()));
|
|
@@ -22006,17 +22059,45 @@ function NotificationsProvider({
|
|
|
22006
22059
|
...input,
|
|
22007
22060
|
id,
|
|
22008
22061
|
createdAt: _nullishCoalesce(input.createdAt, () => ( Date.now())),
|
|
22009
|
-
read: false
|
|
22062
|
+
read: _nullishCoalesce(input.read, () => ( false))
|
|
22010
22063
|
};
|
|
22011
22064
|
dispatch({ type: "add", notification, max: maxNotifications });
|
|
22012
22065
|
return id;
|
|
22013
22066
|
},
|
|
22014
22067
|
[maxNotifications]
|
|
22015
22068
|
);
|
|
22016
|
-
const
|
|
22017
|
-
|
|
22018
|
-
|
|
22019
|
-
|
|
22069
|
+
const upsertNotification = React73.useCallback(
|
|
22070
|
+
(input) => {
|
|
22071
|
+
const notification = {
|
|
22072
|
+
...input,
|
|
22073
|
+
id: input.id,
|
|
22074
|
+
createdAt: _nullishCoalesce(input.createdAt, () => ( Date.now())),
|
|
22075
|
+
read: _nullishCoalesce(input.read, () => ( false))
|
|
22076
|
+
};
|
|
22077
|
+
dispatch({ type: "upsert", notification, max: maxNotifications });
|
|
22078
|
+
return input.id;
|
|
22079
|
+
},
|
|
22080
|
+
[maxNotifications]
|
|
22081
|
+
);
|
|
22082
|
+
const setNotifications = React73.useCallback((list) => {
|
|
22083
|
+
dispatch({ type: "set", notifications: list });
|
|
22084
|
+
}, []);
|
|
22085
|
+
const markRead = React73.useCallback((id) => {
|
|
22086
|
+
dispatch({ type: "markRead", id });
|
|
22087
|
+
void _optionalChain([actionsRef, 'access', _375 => _375.current, 'optionalAccess', _376 => _376.onMarkRead, 'optionalCall', _377 => _377(id)]);
|
|
22088
|
+
}, []);
|
|
22089
|
+
const markAllRead = React73.useCallback(() => {
|
|
22090
|
+
dispatch({ type: "markAllRead" });
|
|
22091
|
+
void _optionalChain([actionsRef, 'access', _378 => _378.current, 'optionalAccess', _379 => _379.onMarkAllRead, 'optionalCall', _380 => _380()]);
|
|
22092
|
+
}, []);
|
|
22093
|
+
const markSettled = React73.useCallback((id) => {
|
|
22094
|
+
dispatch({ type: "markSettled", id });
|
|
22095
|
+
void _optionalChain([actionsRef, 'access', _381 => _381.current, 'optionalAccess', _382 => _382.onMarkSettled, 'optionalCall', _383 => _383(id)]);
|
|
22096
|
+
}, []);
|
|
22097
|
+
const remove = React73.useCallback((id) => {
|
|
22098
|
+
dispatch({ type: "remove", id });
|
|
22099
|
+
void _optionalChain([actionsRef, 'access', _384 => _384.current, 'optionalAccess', _385 => _385.onRemove, 'optionalCall', _386 => _386(id)]);
|
|
22100
|
+
}, []);
|
|
22020
22101
|
const clear = React73.useCallback(() => dispatch({ type: "clear" }), []);
|
|
22021
22102
|
const open = React73.useCallback(() => setIsOpen(true), []);
|
|
22022
22103
|
const close = React73.useCallback(() => setIsOpen(false), []);
|
|
@@ -22024,7 +22105,7 @@ function NotificationsProvider({
|
|
|
22024
22105
|
const setShowPopups = React73.useCallback(
|
|
22025
22106
|
(value2) => {
|
|
22026
22107
|
setShowPopupsState(value2);
|
|
22027
|
-
_optionalChain([onShowPopupsChange, 'optionalCall',
|
|
22108
|
+
_optionalChain([onShowPopupsChange, 'optionalCall', _387 => _387(value2)]);
|
|
22028
22109
|
},
|
|
22029
22110
|
[onShowPopupsChange]
|
|
22030
22111
|
);
|
|
@@ -22039,6 +22120,8 @@ function NotificationsProvider({
|
|
|
22039
22120
|
isOpen,
|
|
22040
22121
|
showPopups,
|
|
22041
22122
|
addNotification,
|
|
22123
|
+
upsertNotification,
|
|
22124
|
+
setNotifications,
|
|
22042
22125
|
markRead,
|
|
22043
22126
|
markAllRead,
|
|
22044
22127
|
markSettled,
|
|
@@ -22056,6 +22139,8 @@ function NotificationsProvider({
|
|
|
22056
22139
|
isOpen,
|
|
22057
22140
|
showPopups,
|
|
22058
22141
|
addNotification,
|
|
22142
|
+
upsertNotification,
|
|
22143
|
+
setNotifications,
|
|
22059
22144
|
markRead,
|
|
22060
22145
|
markAllRead,
|
|
22061
22146
|
markSettled,
|
|
@@ -22105,7 +22190,7 @@ function NotificationTile({
|
|
|
22105
22190
|
if (!isLive) return;
|
|
22106
22191
|
const remaining = Math.max(0, liveDurationMs - initialElapsed);
|
|
22107
22192
|
const timer = window.setTimeout(() => {
|
|
22108
|
-
_optionalChain([onSettle, 'optionalCall',
|
|
22193
|
+
_optionalChain([onSettle, 'optionalCall', _388 => _388(id)]);
|
|
22109
22194
|
}, remaining);
|
|
22110
22195
|
return () => window.clearTimeout(timer);
|
|
22111
22196
|
}, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
|
|
@@ -22118,7 +22203,7 @@ function NotificationTile({
|
|
|
22118
22203
|
),
|
|
22119
22204
|
children: [
|
|
22120
22205
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
|
|
22121
|
-
/* @__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: _chunk664KA5FIcjs.cn.call(void 0, "size-1.5 rounded-full",
|
|
22206
|
+
/* @__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: _chunk664KA5FIcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkWT5JV2GScjs.dotColorByVariant[variant]) }) }),
|
|
22122
22207
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
22123
22208
|
title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h4 text-ods-text-primary", title: typeof title === "string" ? title : void 0, children: title }) : null,
|
|
22124
22209
|
description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", title: typeof description === "string" ? description : void 0, children: description }) : null
|
|
@@ -22143,7 +22228,7 @@ function NotificationTile({
|
|
|
22143
22228
|
"button",
|
|
22144
22229
|
{
|
|
22145
22230
|
type: "button",
|
|
22146
|
-
onClick: () => _optionalChain([onSettle, 'optionalCall',
|
|
22231
|
+
onClick: () => _optionalChain([onSettle, 'optionalCall', _389 => _389(id)]),
|
|
22147
22232
|
"aria-label": "Dismiss notification",
|
|
22148
22233
|
tabIndex: isLive ? 0 : -1,
|
|
22149
22234
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
@@ -22159,7 +22244,7 @@ function NotificationTile({
|
|
|
22159
22244
|
"aria-hidden": true,
|
|
22160
22245
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
22161
22246
|
"absolute inset-x-0 -bottom-px h-1 origin-left",
|
|
22162
|
-
|
|
22247
|
+
_chunkWT5JV2GScjs.progressColorByVariant[variant]
|
|
22163
22248
|
),
|
|
22164
22249
|
style: {
|
|
22165
22250
|
animation: `toast-progress ${liveDurationMs}ms linear forwards`,
|
|
@@ -22427,15 +22512,15 @@ function TicketCard({
|
|
|
22427
22512
|
transform: _utilities.CSS.Transform.toString(sortable.transform),
|
|
22428
22513
|
transition: sortable.transition
|
|
22429
22514
|
};
|
|
22430
|
-
const showDeviceRow = !!(_optionalChain([ticket, 'access',
|
|
22515
|
+
const showDeviceRow = !!(_optionalChain([ticket, 'access', _390 => _390.deviceHostnames, 'optionalAccess', _391 => _391.length]) || ticket.organizationName);
|
|
22431
22516
|
const deviceText = [
|
|
22432
|
-
_optionalChain([ticket, 'access',
|
|
22517
|
+
_optionalChain([ticket, 'access', _392 => _392.deviceHostnames, 'optionalAccess', _393 => _393.join, 'call', _394 => _394(", ")]),
|
|
22433
22518
|
ticket.organizationName
|
|
22434
22519
|
].filter(Boolean).join(", ");
|
|
22435
22520
|
const handleClick = (e) => {
|
|
22436
22521
|
if (sortable.isDragging) e.preventDefault();
|
|
22437
22522
|
};
|
|
22438
|
-
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access',
|
|
22523
|
+
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _395 => _395.assignees, 'optionalAccess', _396 => _396.length]) || renderAssignSlot);
|
|
22439
22524
|
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: [
|
|
22440
22525
|
ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22441
22526
|
_chunk65CPJ4SXcjs.Flag02Icon,
|
|
@@ -22444,7 +22529,7 @@ function TicketCard({
|
|
|
22444
22529
|
"aria-label": `Priority: ${ticket.priority}`
|
|
22445
22530
|
}
|
|
22446
22531
|
),
|
|
22447
|
-
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access',
|
|
22532
|
+
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _397 => _397.assignees, 'optionalAccess', _398 => _398.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
|
|
22448
22533
|
ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22449
22534
|
SquareAvatar,
|
|
22450
22535
|
{
|
|
@@ -22473,7 +22558,7 @@ function TicketCard({
|
|
|
22473
22558
|
] }),
|
|
22474
22559
|
rightSection
|
|
22475
22560
|
] }),
|
|
22476
|
-
_optionalChain([ticket, 'access',
|
|
22561
|
+
_optionalChain([ticket, 'access', _399 => _399.tags, 'optionalAccess', _400 => _400.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
|
|
22477
22562
|
] });
|
|
22478
22563
|
const cardClasses = _chunk664KA5FIcjs.cn.call(void 0,
|
|
22479
22564
|
"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",
|
|
@@ -22646,7 +22731,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
|
|
|
22646
22731
|
const observer = new IntersectionObserver(
|
|
22647
22732
|
(entries) => {
|
|
22648
22733
|
if (entries.some((e) => e.isIntersecting)) {
|
|
22649
|
-
_optionalChain([loadMoreRef, 'access',
|
|
22734
|
+
_optionalChain([loadMoreRef, 'access', _401 => _401.current, 'optionalCall', _402 => _402(columnIdRef.current)]);
|
|
22650
22735
|
}
|
|
22651
22736
|
},
|
|
22652
22737
|
{ root, rootMargin: loadMoreRootMargin }
|
|
@@ -22675,7 +22760,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
|
|
|
22675
22760
|
{
|
|
22676
22761
|
ticket: t,
|
|
22677
22762
|
columnId: column.id,
|
|
22678
|
-
href: _optionalChain([getTicketHref, 'optionalCall',
|
|
22763
|
+
href: _optionalChain([getTicketHref, 'optionalCall', _403 => _403(t.id)]),
|
|
22679
22764
|
renderAssignSlot,
|
|
22680
22765
|
dragDisabled: column.dragDisabled
|
|
22681
22766
|
},
|
|
@@ -22707,7 +22792,7 @@ function EmptyState2() {
|
|
|
22707
22792
|
// src/components/features/board/use-board-collapse.ts
|
|
22708
22793
|
|
|
22709
22794
|
function useBoardCollapse(storageKey) {
|
|
22710
|
-
const [persisted, setPersisted] =
|
|
22795
|
+
const [persisted, setPersisted] = _chunkWT5JV2GScjs.useLocalStorage.call(void 0,
|
|
22711
22796
|
_nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
|
|
22712
22797
|
{}
|
|
22713
22798
|
);
|
|
@@ -22754,7 +22839,7 @@ function Board({
|
|
|
22754
22839
|
onThumbPointerDown,
|
|
22755
22840
|
onThumbPointerMove,
|
|
22756
22841
|
onThumbPointerUp
|
|
22757
|
-
} =
|
|
22842
|
+
} = _chunkWT5JV2GScjs.useHorizontalScrollbar.call(void 0, );
|
|
22758
22843
|
const [items, setItems] = React77.useState(columns);
|
|
22759
22844
|
const isDraggingRef = React77.useRef(false);
|
|
22760
22845
|
React77.useEffect(() => {
|
|
@@ -22770,17 +22855,17 @@ function Board({
|
|
|
22770
22855
|
const pointer = _core.pointerWithin.call(void 0, args);
|
|
22771
22856
|
const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
|
|
22772
22857
|
const ticketHit = intersections.find(
|
|
22773
|
-
(c) => _optionalChain([c, 'access',
|
|
22858
|
+
(c) => _optionalChain([c, 'access', _404 => _404.data, 'optionalAccess', _405 => _405.droppableContainer, 'optionalAccess', _406 => _406.data, 'optionalAccess', _407 => _407.current, 'optionalAccess', _408 => _408.type]) === "ticket"
|
|
22774
22859
|
);
|
|
22775
22860
|
if (ticketHit) return [ticketHit];
|
|
22776
22861
|
const columnHit = intersections.find(
|
|
22777
|
-
(c) => _optionalChain([c, 'access',
|
|
22862
|
+
(c) => _optionalChain([c, 'access', _409 => _409.data, 'optionalAccess', _410 => _410.droppableContainer, 'optionalAccess', _411 => _411.data, 'optionalAccess', _412 => _412.current, 'optionalAccess', _413 => _413.type]) === "column"
|
|
22778
22863
|
);
|
|
22779
22864
|
if (columnHit) {
|
|
22780
|
-
const columnId = _optionalChain([columnHit, 'access',
|
|
22865
|
+
const columnId = _optionalChain([columnHit, 'access', _414 => _414.data, 'optionalAccess', _415 => _415.droppableContainer, 'optionalAccess', _416 => _416.data, 'optionalAccess', _417 => _417.current, 'optionalAccess', _418 => _418.columnId]);
|
|
22781
22866
|
const ticketsInColumn = args.droppableContainers.filter((c) => {
|
|
22782
22867
|
const d = c.data.current;
|
|
22783
|
-
return _optionalChain([d, 'optionalAccess',
|
|
22868
|
+
return _optionalChain([d, 'optionalAccess', _419 => _419.type]) === "ticket" && d.columnId === columnId;
|
|
22784
22869
|
});
|
|
22785
22870
|
if (ticketsInColumn.length > 0) {
|
|
22786
22871
|
const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
|
|
@@ -22805,20 +22890,20 @@ function Board({
|
|
|
22805
22890
|
const overId = String(over.id);
|
|
22806
22891
|
if (activeId === overId) return;
|
|
22807
22892
|
const overData = over.data.current;
|
|
22808
|
-
const fromColumnId = _optionalChain([locate, 'call',
|
|
22809
|
-
const toColumnId = _optionalChain([overData, 'optionalAccess',
|
|
22893
|
+
const fromColumnId = _optionalChain([locate, 'call', _420 => _420(items, activeId), 'optionalAccess', _421 => _421.columnId]);
|
|
22894
|
+
const toColumnId = _optionalChain([overData, 'optionalAccess', _422 => _422.columnId]);
|
|
22810
22895
|
if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
|
|
22811
22896
|
const origin = dragOriginRef.current;
|
|
22812
|
-
const isReturnToOrigin = _optionalChain([origin, 'optionalAccess',
|
|
22897
|
+
const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _423 => _423.fromColumnId]) === toColumnId;
|
|
22813
22898
|
const targetCol = items.find((c) => c.id === toColumnId);
|
|
22814
|
-
const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess',
|
|
22815
|
-
if (_optionalChain([targetCol, 'optionalAccess',
|
|
22899
|
+
const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _424 => _424.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
|
|
22900
|
+
if (_optionalChain([targetCol, 'optionalAccess', _425 => _425.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
|
|
22816
22901
|
setItems((prev) => {
|
|
22817
22902
|
const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
|
|
22818
22903
|
const toCol = prev.find((c) => c.id === toColumnId);
|
|
22819
22904
|
if (fromIndex < 0 || !toCol) return prev;
|
|
22820
22905
|
let toIndex;
|
|
22821
|
-
if (_optionalChain([overData, 'optionalAccess',
|
|
22906
|
+
if (_optionalChain([overData, 'optionalAccess', _426 => _426.type]) === "column") {
|
|
22822
22907
|
toIndex = toCol.tickets.length;
|
|
22823
22908
|
} else {
|
|
22824
22909
|
const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
|
|
@@ -22860,14 +22945,14 @@ function Board({
|
|
|
22860
22945
|
const toColumnId = located.columnId;
|
|
22861
22946
|
const isCrossColumn = origin.fromColumnId !== toColumnId;
|
|
22862
22947
|
const targetCol = items.find((c) => c.id === toColumnId);
|
|
22863
|
-
if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess',
|
|
22948
|
+
if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _427 => _427.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _428 => _428.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
|
|
22864
22949
|
setItems(columns);
|
|
22865
22950
|
return;
|
|
22866
22951
|
}
|
|
22867
22952
|
let finalIndex = located.index;
|
|
22868
|
-
let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access',
|
|
22953
|
+
let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _429 => _429.find, 'call', _430 => _430((c) => c.id === toColumnId), 'optionalAccess', _431 => _431.tickets]), () => ( []));
|
|
22869
22954
|
const overData = over.data.current;
|
|
22870
|
-
if (_optionalChain([overData, 'optionalAccess',
|
|
22955
|
+
if (_optionalChain([overData, 'optionalAccess', _432 => _432.type]) === "ticket") {
|
|
22871
22956
|
const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
|
|
22872
22957
|
if (overIndex >= 0 && overIndex !== located.index) {
|
|
22873
22958
|
finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
|
|
@@ -22887,8 +22972,8 @@ function Board({
|
|
|
22887
22972
|
ticketId: origin.ticketId,
|
|
22888
22973
|
fromColumnId: origin.fromColumnId,
|
|
22889
22974
|
toColumnId,
|
|
22890
|
-
afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access',
|
|
22891
|
-
beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access',
|
|
22975
|
+
afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _433 => _433[finalIndex - 1], 'optionalAccess', _434 => _434.id]), () => ( null)),
|
|
22976
|
+
beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _435 => _435[finalIndex + 1], 'optionalAccess', _436 => _436.id]), () => ( null))
|
|
22892
22977
|
});
|
|
22893
22978
|
};
|
|
22894
22979
|
const handleDragCancel = () => {
|
|
@@ -22917,8 +23002,8 @@ function Board({
|
|
|
22917
23002
|
children: items.map((column, i) => {
|
|
22918
23003
|
const prev = items[i - 1];
|
|
22919
23004
|
const next = items[i + 1];
|
|
22920
|
-
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess',
|
|
22921
|
-
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess',
|
|
23005
|
+
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _437 => _437.system]));
|
|
23006
|
+
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _438 => _438.system]));
|
|
22922
23007
|
const showGap = i > 0 && !joinLeft;
|
|
22923
23008
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React77.Fragment, { children: [
|
|
22924
23009
|
showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
|
|
@@ -22976,7 +23061,7 @@ function locate(cols, ticketId) {
|
|
|
22976
23061
|
return null;
|
|
22977
23062
|
}
|
|
22978
23063
|
function findIndexInColumn(cols, columnId, ticketId) {
|
|
22979
|
-
return _nullishCoalesce(_optionalChain([cols, 'access',
|
|
23064
|
+
return _nullishCoalesce(_optionalChain([cols, 'access', _439 => _439.find, 'call', _440 => _440((c) => c.id === columnId), 'optionalAccess', _441 => _441.tickets, 'access', _442 => _442.findIndex, 'call', _443 => _443((t) => t.id === ticketId)]), () => ( -1));
|
|
22980
23065
|
}
|
|
22981
23066
|
|
|
22982
23067
|
// src/components/features/board/types.ts
|
|
@@ -23165,7 +23250,7 @@ function Header2({ config, platform }) {
|
|
|
23165
23250
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
23166
23251
|
"flex justify-start w-full",
|
|
23167
23252
|
"font-bold text-[16px] leading-none tracking-[-0.32px]",
|
|
23168
|
-
index < (_nullishCoalesce(_optionalChain([item, 'access',
|
|
23253
|
+
index < (_nullishCoalesce(_optionalChain([item, 'access', _444 => _444.children, 'optionalAccess', _445 => _445.length]), () => ( 0))) - 1 && "mb-1",
|
|
23169
23254
|
"text-ods-text-primary",
|
|
23170
23255
|
// All dropdown items use primary text color
|
|
23171
23256
|
child.isActive && "bg-ods-bg-hover"
|
|
@@ -23257,7 +23342,7 @@ function Header2({ config, platform }) {
|
|
|
23257
23342
|
style: config.style,
|
|
23258
23343
|
children: [
|
|
23259
23344
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
|
|
23260
|
-
_optionalChain([config, 'access',
|
|
23345
|
+
_optionalChain([config, 'access', _446 => _446.actions, 'optionalAccess', _447 => _447.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
|
|
23261
23346
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWBR7H6E3cjs.next_link_default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
|
|
23262
23347
|
] }),
|
|
23263
23348
|
config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -23274,7 +23359,7 @@ function Header2({ config, platform }) {
|
|
|
23274
23359
|
}
|
|
23275
23360
|
),
|
|
23276
23361
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
|
|
23277
|
-
_optionalChain([config, 'access',
|
|
23362
|
+
_optionalChain([config, 'access', _448 => _448.actions, 'optionalAccess', _449 => _449.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
|
|
23278
23363
|
config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23279
23364
|
_chunkUXZ3ZJ3Mcjs.Button,
|
|
23280
23365
|
{
|
|
@@ -23282,10 +23367,10 @@ function Header2({ config, platform }) {
|
|
|
23282
23367
|
size: "icon",
|
|
23283
23368
|
className: "flex md:hidden",
|
|
23284
23369
|
onClick: () => {
|
|
23285
|
-
_optionalChain([config, 'access',
|
|
23370
|
+
_optionalChain([config, 'access', _450 => _450.mobile, 'optionalAccess', _451 => _451.onToggle, 'optionalCall', _452 => _452()]);
|
|
23286
23371
|
},
|
|
23287
|
-
"aria-label": _optionalChain([config, 'access',
|
|
23288
|
-
leftIcon: _optionalChain([config, 'access',
|
|
23372
|
+
"aria-label": _optionalChain([config, 'access', _453 => _453.mobile, 'optionalAccess', _454 => _454.isOpen]) ? "Close menu" : "Open menu",
|
|
23373
|
+
leftIcon: _optionalChain([config, 'access', _455 => _455.mobile, 'optionalAccess', _456 => _456.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.Menu01Icon, {})
|
|
23289
23374
|
}
|
|
23290
23375
|
)
|
|
23291
23376
|
] })
|
|
@@ -23302,10 +23387,10 @@ function Header2({ config, platform }) {
|
|
|
23302
23387
|
// src/components/navigation/header-skeleton.tsx
|
|
23303
23388
|
|
|
23304
23389
|
function HeaderSkeleton({ config }) {
|
|
23305
|
-
const showNavigation = _optionalChain([config, 'optionalAccess',
|
|
23306
|
-
const showActions = _optionalChain([config, 'optionalAccess',
|
|
23307
|
-
const showMobileMenu = _optionalChain([config, 'optionalAccess',
|
|
23308
|
-
const isAdminHeader = _optionalChain([config, 'optionalAccess',
|
|
23390
|
+
const showNavigation = _optionalChain([config, 'optionalAccess', _457 => _457.navigation]) && config.navigation.items.length > 0;
|
|
23391
|
+
const showActions = _optionalChain([config, 'optionalAccess', _458 => _458.actions, 'optionalAccess', _459 => _459.right]) && config.actions.right.length > 0;
|
|
23392
|
+
const showMobileMenu = _optionalChain([config, 'optionalAccess', _460 => _460.mobile, 'optionalAccess', _461 => _461.enabled]);
|
|
23393
|
+
const isAdminHeader = _optionalChain([config, 'optionalAccess', _462 => _462.className, 'optionalAccess', _463 => _463.includes, 'call', _464 => _464("admin")]);
|
|
23309
23394
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
23310
23395
|
"header",
|
|
23311
23396
|
{
|
|
@@ -23314,11 +23399,11 @@ function HeaderSkeleton({ config }) {
|
|
|
23314
23399
|
"bg-ods-card border-b border-ods-border backdrop-blur-sm",
|
|
23315
23400
|
"px-6 py-3",
|
|
23316
23401
|
"transition-opacity duration-300 ease-in-out",
|
|
23317
|
-
_optionalChain([config, 'optionalAccess',
|
|
23402
|
+
_optionalChain([config, 'optionalAccess', _465 => _465.className])
|
|
23318
23403
|
),
|
|
23319
23404
|
children: [
|
|
23320
23405
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
|
|
23321
|
-
isAdminHeader && _optionalChain([config, 'optionalAccess',
|
|
23406
|
+
isAdminHeader && _optionalChain([config, 'optionalAccess', _466 => _466.actions, 'optionalAccess', _467 => _467.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" }) }),
|
|
23322
23407
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
23323
23408
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
|
|
23324
23409
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
|
|
@@ -23326,8 +23411,8 @@ function HeaderSkeleton({ config }) {
|
|
|
23326
23411
|
] }),
|
|
23327
23412
|
showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
23328
23413
|
"hidden md:flex items-center gap-2",
|
|
23329
|
-
_optionalChain([config, 'optionalAccess',
|
|
23330
|
-
_optionalChain([config, 'optionalAccess',
|
|
23414
|
+
_optionalChain([config, 'optionalAccess', _468 => _468.navigation, 'optionalAccess', _469 => _469.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
|
|
23415
|
+
_optionalChain([config, 'optionalAccess', _470 => _470.navigation, 'optionalAccess', _471 => _471.position]) === "right" && "ml-auto mr-4"
|
|
23331
23416
|
), children: [
|
|
23332
23417
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
|
|
23333
23418
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
|
|
@@ -23375,7 +23460,7 @@ function MobileNavPanel({ isOpen, config }) {
|
|
|
23375
23460
|
_react.useEffect.call(void 0, () => {
|
|
23376
23461
|
const handleKeyDown = (e) => {
|
|
23377
23462
|
if (e.key === "Escape" && isOpen) {
|
|
23378
|
-
_optionalChain([config, 'access',
|
|
23463
|
+
_optionalChain([config, 'access', _472 => _472.onClose, 'optionalCall', _473 => _473()]);
|
|
23379
23464
|
}
|
|
23380
23465
|
};
|
|
23381
23466
|
if (isOpen) {
|
|
@@ -23392,7 +23477,7 @@ function MobileNavPanel({ isOpen, config }) {
|
|
|
23392
23477
|
if (item.onClick) {
|
|
23393
23478
|
item.onClick();
|
|
23394
23479
|
}
|
|
23395
|
-
_optionalChain([config, 'access',
|
|
23480
|
+
_optionalChain([config, 'access', _474 => _474.onClose, 'optionalCall', _475 => _475()]);
|
|
23396
23481
|
};
|
|
23397
23482
|
if (item.href) {
|
|
23398
23483
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -23610,7 +23695,7 @@ function SlidingSidebar({ config }) {
|
|
|
23610
23695
|
variant: "transparent",
|
|
23611
23696
|
size: "default",
|
|
23612
23697
|
onClick: () => {
|
|
23613
|
-
_optionalChain([item, 'access',
|
|
23698
|
+
_optionalChain([item, 'access', _476 => _476.onClick, 'optionalCall', _477 => _477()]);
|
|
23614
23699
|
config.onClose();
|
|
23615
23700
|
},
|
|
23616
23701
|
leftIcon: item.icon,
|
|
@@ -23633,7 +23718,7 @@ function SlidingSidebar({ config }) {
|
|
|
23633
23718
|
variant: "transparent",
|
|
23634
23719
|
size: "default",
|
|
23635
23720
|
onClick: () => {
|
|
23636
|
-
_optionalChain([item, 'access',
|
|
23721
|
+
_optionalChain([item, 'access', _478 => _478.onClick, 'optionalCall', _479 => _479()]);
|
|
23637
23722
|
config.onClose();
|
|
23638
23723
|
},
|
|
23639
23724
|
leftIcon: item.icon,
|
|
@@ -23760,7 +23845,7 @@ function StickySectionNav({
|
|
|
23760
23845
|
] });
|
|
23761
23846
|
}
|
|
23762
23847
|
function useSectionNavigation(sections, options) {
|
|
23763
|
-
const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access',
|
|
23848
|
+
const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _480 => _480[0], 'optionalAccess', _481 => _481.id]) || "");
|
|
23764
23849
|
const isScrollingFromClick = _react.useRef.call(void 0, false);
|
|
23765
23850
|
const { offset: offset2 = 100 } = options || {};
|
|
23766
23851
|
const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
|
|
@@ -23768,8 +23853,7 @@ function useSectionNavigation(sections, options) {
|
|
|
23768
23853
|
if (!targetElement) return;
|
|
23769
23854
|
isScrollingFromClick.current = true;
|
|
23770
23855
|
setActiveSection(sectionId);
|
|
23771
|
-
|
|
23772
|
-
window.scrollTo({ top, behavior: "smooth" });
|
|
23856
|
+
scrollElementIntoView(targetElement, { headerOffset: offset2 });
|
|
23773
23857
|
setTimeout(() => {
|
|
23774
23858
|
isScrollingFromClick.current = false;
|
|
23775
23859
|
}, 500);
|
|
@@ -23785,7 +23869,7 @@ function useSectionNavigation(sections, options) {
|
|
|
23785
23869
|
const handleScroll = () => {
|
|
23786
23870
|
if (isScrollingFromClick.current) return;
|
|
23787
23871
|
const scrollPosition = window.scrollY + offset2 + 50;
|
|
23788
|
-
let currentSection = _optionalChain([sections, 'access',
|
|
23872
|
+
let currentSection = _optionalChain([sections, 'access', _482 => _482[0], 'optionalAccess', _483 => _483.id]) || "";
|
|
23789
23873
|
for (let i = sections.length - 1; i >= 0; i--) {
|
|
23790
23874
|
const element = document.getElementById(sections[i].id);
|
|
23791
23875
|
if (element && scrollPosition >= element.offsetTop) {
|
|
@@ -23959,10 +24043,10 @@ var MINIMIZED_WIDTH = 56;
|
|
|
23959
24043
|
var EXPANDED_WIDTH = 224;
|
|
23960
24044
|
var STORAGE_KEY = "of.navigationSidebar.minimized";
|
|
23961
24045
|
function NavigationSidebar({ config, disabled = false }) {
|
|
23962
|
-
const isMdUp = _nullishCoalesce(
|
|
23963
|
-
const isLgUp = _nullishCoalesce(
|
|
24046
|
+
const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( false));
|
|
24047
|
+
const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
|
|
23964
24048
|
const isTablet = isMdUp && !isLgUp;
|
|
23965
|
-
const [desktopMinimized, setDesktopMinimized] =
|
|
24049
|
+
const [desktopMinimized, setDesktopMinimized] = _chunkWT5JV2GScjs.useLocalStorage.call(void 0,
|
|
23966
24050
|
STORAGE_KEY,
|
|
23967
24051
|
_nullishCoalesce(config.minimized, () => ( false))
|
|
23968
24052
|
);
|
|
@@ -23980,7 +24064,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
23980
24064
|
} else {
|
|
23981
24065
|
setDesktopMinimized((prev) => !prev);
|
|
23982
24066
|
}
|
|
23983
|
-
_optionalChain([config, 'access',
|
|
24067
|
+
_optionalChain([config, 'access', _484 => _484.onToggleMinimized, 'optionalCall', _485 => _485()]);
|
|
23984
24068
|
}, [isTablet, setDesktopMinimized, config]);
|
|
23985
24069
|
const closeOverlay = _react.useCallback.call(void 0, () => {
|
|
23986
24070
|
setTabletMinimized(true);
|
|
@@ -23994,11 +24078,11 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
23994
24078
|
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
23995
24079
|
}, [isOverlayOpen, closeOverlay]);
|
|
23996
24080
|
const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
|
|
23997
|
-
_optionalChain([event, 'optionalAccess',
|
|
24081
|
+
_optionalChain([event, 'optionalAccess', _486 => _486.stopPropagation, 'call', _487 => _487()]);
|
|
23998
24082
|
if (item.onClick) {
|
|
23999
24083
|
item.onClick();
|
|
24000
24084
|
} else if (item.path) {
|
|
24001
|
-
_optionalChain([config, 'access',
|
|
24085
|
+
_optionalChain([config, 'access', _488 => _488.onNavigate, 'optionalCall', _489 => _489(item.path)]);
|
|
24002
24086
|
}
|
|
24003
24087
|
if (isTablet) setTabletMinimized(true);
|
|
24004
24088
|
}, [config, isTablet]);
|
|
@@ -24143,11 +24227,11 @@ function HeaderGlobalSearch({
|
|
|
24143
24227
|
};
|
|
24144
24228
|
const handleSubmit = (e) => {
|
|
24145
24229
|
e.preventDefault();
|
|
24146
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
24230
|
+
_optionalChain([onSubmit, 'optionalCall', _490 => _490(currentValue)]);
|
|
24147
24231
|
};
|
|
24148
24232
|
const handleKeyDown = (e) => {
|
|
24149
24233
|
if (e.key === "Enter") {
|
|
24150
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
24234
|
+
_optionalChain([onSubmit, 'optionalCall', _491 => _491(currentValue)]);
|
|
24151
24235
|
}
|
|
24152
24236
|
};
|
|
24153
24237
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -24193,8 +24277,8 @@ function HeaderOrganizationFilter({
|
|
|
24193
24277
|
className
|
|
24194
24278
|
}) {
|
|
24195
24279
|
const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
|
|
24196
|
-
const displayName = _optionalChain([selectedOrg, 'optionalAccess',
|
|
24197
|
-
const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess',
|
|
24280
|
+
const displayName = _optionalChain([selectedOrg, 'optionalAccess', _492 => _492.name]) || "All Organizations";
|
|
24281
|
+
const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _493 => _493.deviceCount]), () => ( totalDeviceCount));
|
|
24198
24282
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenu, { children: [
|
|
24199
24283
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24200
24284
|
"button",
|
|
@@ -24219,11 +24303,11 @@ function HeaderOrganizationFilter({
|
|
|
24219
24303
|
}
|
|
24220
24304
|
) }),
|
|
24221
24305
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
|
|
24222
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall',
|
|
24306
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _494 => _494("")]), children: "All Organizations" }),
|
|
24223
24307
|
organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24224
24308
|
_chunkUXZ3ZJ3Mcjs.DropdownMenuItem,
|
|
24225
24309
|
{
|
|
24226
|
-
onClick: () => _optionalChain([onOrgChange, 'optionalCall',
|
|
24310
|
+
onClick: () => _optionalChain([onOrgChange, 'optionalCall', _495 => _495(org.id)]),
|
|
24227
24311
|
children: org.name
|
|
24228
24312
|
},
|
|
24229
24313
|
org.id
|
|
@@ -24254,7 +24338,7 @@ var AppHeader = React92.default.memo(function AppHeader2({
|
|
|
24254
24338
|
onToggleMobileMenu,
|
|
24255
24339
|
disabled = false
|
|
24256
24340
|
}) {
|
|
24257
|
-
const isMdUp = _nullishCoalesce(
|
|
24341
|
+
const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( false));
|
|
24258
24342
|
const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
|
|
24259
24343
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24260
24344
|
"header",
|
|
@@ -24395,16 +24479,20 @@ function NotificationsHeaderButton({
|
|
|
24395
24479
|
dimmedClass
|
|
24396
24480
|
}) {
|
|
24397
24481
|
const ctx = useOptionalNotifications();
|
|
24398
|
-
const
|
|
24399
|
-
const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
24400
|
-
const onClick = _optionalChain([ctx, 'optionalAccess',
|
|
24401
|
-
const Icon2 = unreadCount > 0 ? _chunk65CPJ4SXcjs.BellRingingIcon : _chunk65CPJ4SXcjs.BellIcon;
|
|
24482
|
+
const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _496 => _496.unreadCount]), () => ( fallbackUnreadCount))) > 0;
|
|
24483
|
+
const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _497 => _497.isOpen]), () => ( false));
|
|
24484
|
+
const onClick = _optionalChain([ctx, 'optionalAccess', _498 => _498.toggle]);
|
|
24402
24485
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24403
24486
|
HeaderButton,
|
|
24404
24487
|
{
|
|
24405
|
-
icon: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative w-
|
|
24406
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24407
|
-
|
|
24488
|
+
icon: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative w-4 h-4 md:w-6 md:h-6", children: [
|
|
24489
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.BellIcon, { className: "w-full h-full" }),
|
|
24490
|
+
hasUnread && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24491
|
+
"span",
|
|
24492
|
+
{
|
|
24493
|
+
className: "absolute top-0 right-0 bg-ods-warning rounded-full w-1.5 h-1.5 md:w-2 md:h-2"
|
|
24494
|
+
}
|
|
24495
|
+
)
|
|
24408
24496
|
] }),
|
|
24409
24497
|
"aria-label": "Notifications",
|
|
24410
24498
|
onClick,
|
|
@@ -24457,7 +24545,7 @@ var MobileBurgerMenu = React92.default.memo(function MobileBurgerMenu2({
|
|
|
24457
24545
|
if (item.onClick) {
|
|
24458
24546
|
item.onClick();
|
|
24459
24547
|
} else if (item.path) {
|
|
24460
|
-
_optionalChain([config, 'access',
|
|
24548
|
+
_optionalChain([config, 'access', _499 => _499.onNavigate, 'optionalCall', _500 => _500(item.path)]);
|
|
24461
24549
|
}
|
|
24462
24550
|
onClose();
|
|
24463
24551
|
}, [config, onClose]);
|
|
@@ -24753,7 +24841,7 @@ var ToolBadge = ({
|
|
|
24753
24841
|
}) => {
|
|
24754
24842
|
const label = getToolLabel(toolType);
|
|
24755
24843
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
|
|
24756
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24844
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
|
|
24757
24845
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
|
|
24758
24846
|
] });
|
|
24759
24847
|
};
|
|
@@ -24801,7 +24889,7 @@ var ShellTypeBadge = ({
|
|
|
24801
24889
|
className,
|
|
24802
24890
|
iconClassName
|
|
24803
24891
|
}) => {
|
|
24804
|
-
const normalizedType = _optionalChain([shellType, 'optionalAccess',
|
|
24892
|
+
const normalizedType = _optionalChain([shellType, 'optionalAccess', _501 => _501.toUpperCase, 'call', _502 => _502()]);
|
|
24805
24893
|
const label = getShellLabel(normalizedType);
|
|
24806
24894
|
const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
|
|
24807
24895
|
const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
|
|
@@ -25125,7 +25213,7 @@ function OnboardingWalkthrough({
|
|
|
25125
25213
|
isStepSkipped,
|
|
25126
25214
|
allStepsComplete,
|
|
25127
25215
|
markMultipleComplete
|
|
25128
|
-
} =
|
|
25216
|
+
} = _chunkWT5JV2GScjs.useOnboardingState.call(void 0, storageKey);
|
|
25129
25217
|
const hasAutoMarkedRef = _react.useRef.call(void 0, false);
|
|
25130
25218
|
const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
|
|
25131
25219
|
const lastCompletionStatusRef = _react.useRef.call(void 0, null);
|
|
@@ -25188,12 +25276,12 @@ function OnboardingWalkthrough({
|
|
|
25188
25276
|
}
|
|
25189
25277
|
}, [state.completedSteps, markComplete]);
|
|
25190
25278
|
const handleStepSkip = (step) => {
|
|
25191
|
-
_optionalChain([step, 'access',
|
|
25279
|
+
_optionalChain([step, 'access', _503 => _503.onSkip, 'optionalCall', _504 => _504()]);
|
|
25192
25280
|
markSkipped(step.id);
|
|
25193
25281
|
};
|
|
25194
25282
|
const handleDismiss = () => {
|
|
25195
25283
|
dismissOnboarding();
|
|
25196
|
-
_optionalChain([onDismiss, 'optionalCall',
|
|
25284
|
+
_optionalChain([onDismiss, 'optionalCall', _505 => _505()]);
|
|
25197
25285
|
};
|
|
25198
25286
|
if (state.dismissed) {
|
|
25199
25287
|
return null;
|
|
@@ -25323,7 +25411,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
25323
25411
|
onKeyDown: (e) => {
|
|
25324
25412
|
if (e.key === "Enter" || e.key === " ") {
|
|
25325
25413
|
e.preventDefault();
|
|
25326
|
-
_optionalChain([onClick, 'optionalCall',
|
|
25414
|
+
_optionalChain([onClick, 'optionalCall', _506 => _506()]);
|
|
25327
25415
|
}
|
|
25328
25416
|
},
|
|
25329
25417
|
children: [
|
|
@@ -25332,7 +25420,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
25332
25420
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
|
|
25333
25421
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
25334
25422
|
/* @__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) }),
|
|
25335
|
-
log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25423
|
+
log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType: log.toolType, size: 16 })
|
|
25336
25424
|
] })
|
|
25337
25425
|
] })
|
|
25338
25426
|
]
|
|
@@ -25424,7 +25512,7 @@ var LogsList = React88.forwardRef(({
|
|
|
25424
25512
|
log,
|
|
25425
25513
|
isLast: index === logs.length - 1,
|
|
25426
25514
|
showConnector,
|
|
25427
|
-
onClick: () => _optionalChain([onLogClick, 'optionalCall',
|
|
25515
|
+
onClick: () => _optionalChain([onLogClick, 'optionalCall', _507 => _507(log)])
|
|
25428
25516
|
},
|
|
25429
25517
|
log.id
|
|
25430
25518
|
))
|
|
@@ -25469,7 +25557,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
|
|
|
25469
25557
|
}
|
|
25470
25558
|
function ServiceCardRowItem({ row }) {
|
|
25471
25559
|
const [revealed, setRevealed] = _react.useState.call(void 0, false);
|
|
25472
|
-
const { copy, copied } =
|
|
25560
|
+
const { copy, copied } = _chunkWT5JV2GScjs.useCopyToClipboard.call(void 0, );
|
|
25473
25561
|
const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
|
|
25474
25562
|
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 });
|
|
25475
25563
|
const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
|
|
@@ -25525,7 +25613,7 @@ var Slider = React90.forwardRef(
|
|
|
25525
25613
|
({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
|
|
25526
25614
|
const handleChange = (e) => {
|
|
25527
25615
|
const newValue = [Number(e.target.value)];
|
|
25528
|
-
_optionalChain([onValueChange, 'optionalCall',
|
|
25616
|
+
_optionalChain([onValueChange, 'optionalCall', _508 => _508(newValue)]);
|
|
25529
25617
|
};
|
|
25530
25618
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25531
25619
|
"input",
|
|
@@ -25978,7 +26066,7 @@ function CursorPaginationSimple({
|
|
|
25978
26066
|
{
|
|
25979
26067
|
variant: "transparent",
|
|
25980
26068
|
size: "icon",
|
|
25981
|
-
onClick: () => _optionalChain([onPrevious, 'optionalCall',
|
|
26069
|
+
onClick: () => _optionalChain([onPrevious, 'optionalCall', _509 => _509("")]),
|
|
25982
26070
|
disabled: !hasPreviousPage || loading,
|
|
25983
26071
|
className: "h-8 w-8",
|
|
25984
26072
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
|
|
@@ -25990,7 +26078,7 @@ function CursorPaginationSimple({
|
|
|
25990
26078
|
{
|
|
25991
26079
|
variant: "transparent",
|
|
25992
26080
|
size: "icon",
|
|
25993
|
-
onClick: () => _optionalChain([onNext, 'optionalCall',
|
|
26081
|
+
onClick: () => _optionalChain([onNext, 'optionalCall', _510 => _510("")]),
|
|
25994
26082
|
disabled: !hasNextPage || loading,
|
|
25995
26083
|
className: "h-8 w-8",
|
|
25996
26084
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
|
|
@@ -26050,7 +26138,7 @@ function TableColumnFilterDropdown({
|
|
|
26050
26138
|
placement = "bottom-start",
|
|
26051
26139
|
dropdownClassName = "min-w-[240px]"
|
|
26052
26140
|
}) {
|
|
26053
|
-
const activeCount = _optionalChain([filters, 'optionalAccess',
|
|
26141
|
+
const activeCount = _optionalChain([filters, 'optionalAccess', _511 => _511[columnKey], 'optionalAccess', _512 => _512.length]) || 0;
|
|
26054
26142
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26055
26143
|
FiltersDropdown,
|
|
26056
26144
|
{
|
|
@@ -26093,7 +26181,7 @@ function TableColumnFilterDropdown({
|
|
|
26093
26181
|
delete newFilters[columnKey];
|
|
26094
26182
|
onFilterChange(newFilters);
|
|
26095
26183
|
},
|
|
26096
|
-
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess',
|
|
26184
|
+
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _513 => _513[columnKey]]) || [] },
|
|
26097
26185
|
placement,
|
|
26098
26186
|
dropdownClassName
|
|
26099
26187
|
}
|
|
@@ -26168,7 +26256,7 @@ function TableHeader({
|
|
|
26168
26256
|
}
|
|
26169
26257
|
return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
|
|
26170
26258
|
};
|
|
26171
|
-
const isLgUp = _nullishCoalesce(
|
|
26259
|
+
const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
|
|
26172
26260
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
26173
26261
|
"div",
|
|
26174
26262
|
{
|
|
@@ -26390,7 +26478,7 @@ function TableRow({
|
|
|
26390
26478
|
const keys = column.key.split(".");
|
|
26391
26479
|
let value = item;
|
|
26392
26480
|
for (const key of keys) {
|
|
26393
|
-
value = _optionalChain([value, 'optionalAccess',
|
|
26481
|
+
value = _optionalChain([value, 'optionalAccess', _514 => _514[key]]);
|
|
26394
26482
|
}
|
|
26395
26483
|
if (value === null || value === void 0) {
|
|
26396
26484
|
return "-";
|
|
@@ -26460,7 +26548,7 @@ function TableRow({
|
|
|
26460
26548
|
// src/components/ui/table/table.tsx
|
|
26461
26549
|
|
|
26462
26550
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
26463
|
-
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess',
|
|
26551
|
+
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _515 => _515.length])) || Boolean(renderRowActions);
|
|
26464
26552
|
const result = [...columns];
|
|
26465
26553
|
if (hasActions) {
|
|
26466
26554
|
const actionsColumn = {
|
|
@@ -26554,7 +26642,7 @@ function Table({
|
|
|
26554
26642
|
return rowKey(item);
|
|
26555
26643
|
}
|
|
26556
26644
|
const key = item[rowKey];
|
|
26557
|
-
return _optionalChain([key, 'optionalAccess',
|
|
26645
|
+
return _optionalChain([key, 'optionalAccess', _516 => _516.toString, 'call', _517 => _517()]) || index.toString();
|
|
26558
26646
|
};
|
|
26559
26647
|
const getRowClassName = (item, index) => {
|
|
26560
26648
|
if (typeof rowClassName === "function") {
|
|
@@ -26588,23 +26676,23 @@ function Table({
|
|
|
26588
26676
|
const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
|
|
26589
26677
|
const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
|
|
26590
26678
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
26591
|
-
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess',
|
|
26592
|
-
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess',
|
|
26679
|
+
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.onLoadMore]));
|
|
26680
|
+
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.onLoadMore]);
|
|
26593
26681
|
_react.useEffect.call(void 0, () => {
|
|
26594
|
-
if (!_optionalChain([infiniteScroll, 'optionalAccess',
|
|
26682
|
+
if (!_optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
|
|
26595
26683
|
const sentinel = sentinelRef.current;
|
|
26596
26684
|
if (!sentinel) return;
|
|
26597
26685
|
const observer = new IntersectionObserver(
|
|
26598
26686
|
(entries) => {
|
|
26599
|
-
if (_optionalChain([entries, 'access',
|
|
26600
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
26687
|
+
if (_optionalChain([entries, 'access', _521 => _521[0], 'optionalAccess', _522 => _522.isIntersecting])) {
|
|
26688
|
+
_optionalChain([onLoadMoreRef, 'access', _523 => _523.current, 'optionalCall', _524 => _524()]);
|
|
26601
26689
|
}
|
|
26602
26690
|
},
|
|
26603
26691
|
{ rootMargin: "200px" }
|
|
26604
26692
|
);
|
|
26605
26693
|
observer.observe(sentinel);
|
|
26606
26694
|
return () => observer.disconnect();
|
|
26607
|
-
}, [_optionalChain([infiniteScroll, 'optionalAccess',
|
|
26695
|
+
}, [_optionalChain([infiniteScroll, 'optionalAccess', _525 => _525.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _526 => _526.isFetchingNextPage])]);
|
|
26608
26696
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
|
|
26609
26697
|
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: [
|
|
26610
26698
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
|
|
@@ -26675,7 +26763,7 @@ function Table({
|
|
|
26675
26763
|
},
|
|
26676
26764
|
getRowKey(item, index)
|
|
26677
26765
|
)),
|
|
26678
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
26766
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _527 => _527.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26679
26767
|
TableCardSkeleton,
|
|
26680
26768
|
{
|
|
26681
26769
|
columns,
|
|
@@ -26684,7 +26772,7 @@ function Table({
|
|
|
26684
26772
|
hasChevron: Boolean(rowHref)
|
|
26685
26773
|
}
|
|
26686
26774
|
),
|
|
26687
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
26775
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _528 => _528.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
|
|
26688
26776
|
!infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
26689
26777
|
"div",
|
|
26690
26778
|
{
|
|
@@ -27042,7 +27130,7 @@ function QueryReportTable({
|
|
|
27042
27130
|
);
|
|
27043
27131
|
const handleExport = () => {
|
|
27044
27132
|
exportToCSV(data, columns, exportFilename);
|
|
27045
|
-
_optionalChain([onExport, 'optionalCall',
|
|
27133
|
+
_optionalChain([onExport, 'optionalCall', _529 => _529()]);
|
|
27046
27134
|
};
|
|
27047
27135
|
const tableMinWidth = columns.length * (columnWidth + 16);
|
|
27048
27136
|
const {
|
|
@@ -27058,7 +27146,7 @@ function QueryReportTable({
|
|
|
27058
27146
|
onThumbPointerDown,
|
|
27059
27147
|
onThumbPointerMove,
|
|
27060
27148
|
onThumbPointerUp
|
|
27061
|
-
} =
|
|
27149
|
+
} = _chunkWT5JV2GScjs.useHorizontalScrollbar.call(void 0, );
|
|
27062
27150
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
|
|
27063
27151
|
!isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
|
|
27064
27152
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
|
|
@@ -27215,7 +27303,7 @@ function DataTableColumnFilter({
|
|
|
27215
27303
|
align = "left"
|
|
27216
27304
|
}) {
|
|
27217
27305
|
const currentValue = column.getFilterValue();
|
|
27218
|
-
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess',
|
|
27306
|
+
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _530 => _530.length]), () => ( 0));
|
|
27219
27307
|
const sections = _react.useMemo.call(void 0,
|
|
27220
27308
|
() => [
|
|
27221
27309
|
{
|
|
@@ -27289,13 +27377,13 @@ function DataTableHeader({
|
|
|
27289
27377
|
onSortChange
|
|
27290
27378
|
}) {
|
|
27291
27379
|
const table = useDataTableContext();
|
|
27292
|
-
const isLgUp = _nullishCoalesce(
|
|
27380
|
+
const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
|
|
27293
27381
|
const headerGroup = table.getHeaderGroups()[0];
|
|
27294
27382
|
if (!headerGroup) return null;
|
|
27295
27383
|
const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
|
|
27296
27384
|
if (header.isPlaceholder) return false;
|
|
27297
27385
|
if (isLgUp) return true;
|
|
27298
|
-
return Boolean(_optionalChain([header, 'access',
|
|
27386
|
+
return Boolean(_optionalChain([header, 'access', _531 => _531.column, 'access', _532 => _532.columnDef, 'access', _533 => _533.meta, 'optionalAccess', _534 => _534.filter]));
|
|
27299
27387
|
});
|
|
27300
27388
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27301
27389
|
"div",
|
|
@@ -27325,20 +27413,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
27325
27413
|
if (header.isPlaceholder) return null;
|
|
27326
27414
|
const column = header.column;
|
|
27327
27415
|
const meta = column.columnDef.meta;
|
|
27328
|
-
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess',
|
|
27329
|
-
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27330
|
-
const canSort = _optionalChain([meta, 'optionalAccess',
|
|
27331
|
-
const sortDir = _optionalChain([sort, 'optionalAccess',
|
|
27416
|
+
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _535 => _535.filter]));
|
|
27417
|
+
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _536 => _536.align]), () => ( "left"));
|
|
27418
|
+
const canSort = _optionalChain([meta, 'optionalAccess', _537 => _537.sortable]) === true;
|
|
27419
|
+
const sortDir = _optionalChain([sort, 'optionalAccess', _538 => _538.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
|
|
27332
27420
|
if (!isLgUp && !hasFilter) return null;
|
|
27333
27421
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27334
27422
|
"div",
|
|
27335
27423
|
{
|
|
27336
27424
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
27337
27425
|
"flex items-stretch",
|
|
27338
|
-
isLgUp && (_optionalChain([meta, 'optionalAccess',
|
|
27339
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27426
|
+
isLgUp && (_optionalChain([meta, 'optionalAccess', _539 => _539.width]) || "flex-1 min-w-0"),
|
|
27427
|
+
_optionalChain([meta, 'optionalAccess', _540 => _540.headerClassName]),
|
|
27340
27428
|
// Don't apply hide classes if column is filterable on tablet (keep filter accessible)
|
|
27341
|
-
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
27429
|
+
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _541 => _541.hideAt]))
|
|
27342
27430
|
),
|
|
27343
27431
|
children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27344
27432
|
DataTableColumnFilter,
|
|
@@ -27357,7 +27445,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
27357
27445
|
isLgUp && alignJustify(align),
|
|
27358
27446
|
canSort && "group cursor-pointer"
|
|
27359
27447
|
),
|
|
27360
|
-
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall',
|
|
27448
|
+
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _542 => _542(column.id)]) : void 0,
|
|
27361
27449
|
children: [
|
|
27362
27450
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
|
|
27363
27451
|
canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
|
|
@@ -27441,7 +27529,7 @@ function DataTableSkeleton({
|
|
|
27441
27529
|
}) {
|
|
27442
27530
|
const table = useDataTableContext();
|
|
27443
27531
|
const columns = table.getVisibleFlatColumns();
|
|
27444
|
-
const firstColumnId = _optionalChain([columns, 'access',
|
|
27532
|
+
const firstColumnId = _optionalChain([columns, 'access', _543 => _543[0], 'optionalAccess', _544 => _544.id]);
|
|
27445
27533
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
27446
27534
|
"div",
|
|
27447
27535
|
{
|
|
@@ -27465,7 +27553,7 @@ function DataTableSkeleton({
|
|
|
27465
27553
|
{
|
|
27466
27554
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
27467
27555
|
"flex flex-col justify-center shrink-0",
|
|
27468
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27556
|
+
_optionalChain([meta, 'optionalAccess', _545 => _545.width]) || "flex-1"
|
|
27469
27557
|
),
|
|
27470
27558
|
children: [
|
|
27471
27559
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
|
|
@@ -27511,7 +27599,7 @@ function DataTableRowImpl({
|
|
|
27511
27599
|
const handleClick = _react.useCallback.call(void 0,
|
|
27512
27600
|
(e) => {
|
|
27513
27601
|
const target = e.target;
|
|
27514
|
-
if (!_optionalChain([containerRef, 'access',
|
|
27602
|
+
if (!_optionalChain([containerRef, 'access', _546 => _546.current, 'optionalAccess', _547 => _547.contains, 'call', _548 => _548(target)])) {
|
|
27515
27603
|
if (isLinkMode) e.preventDefault();
|
|
27516
27604
|
return;
|
|
27517
27605
|
}
|
|
@@ -27519,7 +27607,7 @@ function DataTableRowImpl({
|
|
|
27519
27607
|
if (isLinkMode) e.preventDefault();
|
|
27520
27608
|
return;
|
|
27521
27609
|
}
|
|
27522
|
-
_optionalChain([onClick, 'optionalCall',
|
|
27610
|
+
_optionalChain([onClick, 'optionalCall', _549 => _549(row.original)]);
|
|
27523
27611
|
},
|
|
27524
27612
|
[onClick, row.original, isLinkMode]
|
|
27525
27613
|
);
|
|
@@ -27542,10 +27630,10 @@ function DataTableRowImpl({
|
|
|
27542
27630
|
{
|
|
27543
27631
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
27544
27632
|
"flex flex-col overflow-hidden",
|
|
27545
|
-
alignJustify(_optionalChain([meta, 'optionalAccess',
|
|
27546
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27547
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27548
|
-
getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
27633
|
+
alignJustify(_optionalChain([meta, 'optionalAccess', _550 => _550.align])),
|
|
27634
|
+
_optionalChain([meta, 'optionalAccess', _551 => _551.width]) || "flex-1 min-w-0",
|
|
27635
|
+
_optionalChain([meta, 'optionalAccess', _552 => _552.cellClassName]),
|
|
27636
|
+
getHideClasses2(_optionalChain([meta, 'optionalAccess', _553 => _553.hideAt]))
|
|
27549
27637
|
),
|
|
27550
27638
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
|
|
27551
27639
|
},
|
|
@@ -27610,7 +27698,7 @@ function DataTableBody({
|
|
|
27610
27698
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
|
|
27611
27699
|
rows.map((row, index) => {
|
|
27612
27700
|
const item = row.original;
|
|
27613
|
-
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall',
|
|
27701
|
+
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _554 => _554(item)]), () => ( void 0));
|
|
27614
27702
|
const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
|
|
27615
27703
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27616
27704
|
DataTableRow,
|
|
@@ -27674,7 +27762,7 @@ function DataTableInfiniteFooter({
|
|
|
27674
27762
|
if (!sentinel) return;
|
|
27675
27763
|
const observer = new IntersectionObserver(
|
|
27676
27764
|
(entries) => {
|
|
27677
|
-
if (_optionalChain([entries, 'access',
|
|
27765
|
+
if (_optionalChain([entries, 'access', _555 => _555[0], 'optionalAccess', _556 => _556.isIntersecting])) onLoadMoreRef.current();
|
|
27678
27766
|
},
|
|
27679
27767
|
{ rootMargin }
|
|
27680
27768
|
);
|
|
@@ -27722,7 +27810,7 @@ function DataTableRowCount({
|
|
|
27722
27810
|
const table = useDataTableContext();
|
|
27723
27811
|
const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
|
|
27724
27812
|
if (hideWhenEmpty && count === 0) return null;
|
|
27725
|
-
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall',
|
|
27813
|
+
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _557 => _557(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
|
|
27726
27814
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
27727
27815
|
"span",
|
|
27728
27816
|
{
|
|
@@ -27851,7 +27939,7 @@ function SearchInput({
|
|
|
27851
27939
|
}) {
|
|
27852
27940
|
const [internalValue, setInternalValue] = React94.useState(defaultValue);
|
|
27853
27941
|
const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
|
|
27854
|
-
const debouncedValue =
|
|
27942
|
+
const debouncedValue = _chunkWT5JV2GScjs.useDebounce.call(void 0, currentValue, debounceMs);
|
|
27855
27943
|
const [isOpen, setIsOpen] = React94.useState(false);
|
|
27856
27944
|
const [highlightedIndex, setHighlightedIndex] = React94.useState(-1);
|
|
27857
27945
|
const containerRef = React94.useRef(null);
|
|
@@ -27863,7 +27951,7 @@ function SearchInput({
|
|
|
27863
27951
|
textMeasureRef,
|
|
27864
27952
|
badgeRef,
|
|
27865
27953
|
inputRef
|
|
27866
|
-
} =
|
|
27954
|
+
} = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
|
|
27867
27955
|
count: filterChips.length,
|
|
27868
27956
|
limitTags,
|
|
27869
27957
|
// When chips exist, pass empty placeholder so the hook only reserves input minWidth,
|
|
@@ -27878,7 +27966,7 @@ function SearchInput({
|
|
|
27878
27966
|
if (!showHiddenTags) return;
|
|
27879
27967
|
const handleClick = (e) => {
|
|
27880
27968
|
const target = e.target;
|
|
27881
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
27969
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _558 => _558.current, 'optionalAccess', _559 => _559.contains, 'call', _560 => _560(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _561 => _561.current, 'optionalAccess', _562 => _562.contains, 'call', _563 => _563(target)])) {
|
|
27882
27970
|
setShowHiddenTags(false);
|
|
27883
27971
|
}
|
|
27884
27972
|
};
|
|
@@ -27926,10 +28014,10 @@ function SearchInput({
|
|
|
27926
28014
|
} else {
|
|
27927
28015
|
setInternalValue("");
|
|
27928
28016
|
}
|
|
27929
|
-
_optionalChain([inputRef, 'access',
|
|
28017
|
+
_optionalChain([inputRef, 'access', _564 => _564.current, 'optionalAccess', _565 => _565.focus, 'call', _566 => _566()]);
|
|
27930
28018
|
};
|
|
27931
28019
|
const handleResultClick = (result, e) => {
|
|
27932
|
-
_optionalChain([onResultSelect, 'optionalCall',
|
|
28020
|
+
_optionalChain([onResultSelect, 'optionalCall', _567 => _567(
|
|
27933
28021
|
result,
|
|
27934
28022
|
e ? {
|
|
27935
28023
|
metaKey: e.metaKey,
|
|
@@ -27961,7 +28049,7 @@ function SearchInput({
|
|
|
27961
28049
|
if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
|
|
27962
28050
|
handleResultClick(flatResults[highlightedIndex]);
|
|
27963
28051
|
} else {
|
|
27964
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
28052
|
+
_optionalChain([onSubmit, 'optionalCall', _568 => _568(currentValue)]);
|
|
27965
28053
|
}
|
|
27966
28054
|
break;
|
|
27967
28055
|
case "Escape":
|
|
@@ -28039,7 +28127,7 @@ function SearchInput({
|
|
|
28039
28127
|
dropdownVisible && "!border-ods-accent"
|
|
28040
28128
|
),
|
|
28041
28129
|
onClick: () => {
|
|
28042
|
-
_optionalChain([inputRef, 'access',
|
|
28130
|
+
_optionalChain([inputRef, 'access', _569 => _569.current, 'optionalAccess', _570 => _570.focus, 'call', _571 => _571()]);
|
|
28043
28131
|
setIsOpen(true);
|
|
28044
28132
|
},
|
|
28045
28133
|
children: [
|
|
@@ -28123,10 +28211,10 @@ function SearchInput({
|
|
|
28123
28211
|
align: "start",
|
|
28124
28212
|
onOpenAutoFocus: (e) => {
|
|
28125
28213
|
e.preventDefault();
|
|
28126
|
-
_optionalChain([inputRef, 'access',
|
|
28214
|
+
_optionalChain([inputRef, 'access', _572 => _572.current, 'optionalAccess', _573 => _573.focus, 'call', _574 => _574()]);
|
|
28127
28215
|
},
|
|
28128
28216
|
onInteractOutside: (e) => {
|
|
28129
|
-
if (_optionalChain([containerRef, 'access',
|
|
28217
|
+
if (_optionalChain([containerRef, 'access', _575 => _575.current, 'optionalAccess', _576 => _576.contains, 'call', _577 => _577(e.target)])) {
|
|
28130
28218
|
e.preventDefault();
|
|
28131
28219
|
}
|
|
28132
28220
|
},
|
|
@@ -28143,10 +28231,10 @@ function SearchInput({
|
|
|
28143
28231
|
ref: hiddenTagsPopupRef,
|
|
28144
28232
|
items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
|
|
28145
28233
|
style: {
|
|
28146
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access',
|
|
28234
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _578 => _578.current, 'optionalAccess', _579 => _579.getBoundingClientRect, 'call', _580 => _580(), 'access', _581 => _581.left]), () => ( 0))) : 0
|
|
28147
28235
|
},
|
|
28148
28236
|
onRemove: (value2) => {
|
|
28149
|
-
_optionalChain([onFilterRemove, 'optionalCall',
|
|
28237
|
+
_optionalChain([onFilterRemove, 'optionalCall', _582 => _582(value2)]);
|
|
28150
28238
|
if (hiddenCount <= 1) setShowHiddenTags(false);
|
|
28151
28239
|
}
|
|
28152
28240
|
}
|
|
@@ -28197,7 +28285,7 @@ function FilterListItem({
|
|
|
28197
28285
|
}) {
|
|
28198
28286
|
const handleToggle = () => {
|
|
28199
28287
|
if (disabled) return;
|
|
28200
|
-
_optionalChain([onToggle, 'optionalCall',
|
|
28288
|
+
_optionalChain([onToggle, 'optionalCall', _583 => _583(!selected)]);
|
|
28201
28289
|
};
|
|
28202
28290
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
28203
28291
|
"div",
|
|
@@ -28244,7 +28332,7 @@ function FilterListItem({
|
|
|
28244
28332
|
CheckboxPrimitive4.Root,
|
|
28245
28333
|
{
|
|
28246
28334
|
checked: selected,
|
|
28247
|
-
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall',
|
|
28335
|
+
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _584 => _584(c === true)]),
|
|
28248
28336
|
onClick: (e) => e.stopPropagation(),
|
|
28249
28337
|
disabled,
|
|
28250
28338
|
"aria-label": title,
|
|
@@ -28330,7 +28418,7 @@ function TagSearchInput({
|
|
|
28330
28418
|
textMeasureRef,
|
|
28331
28419
|
badgeRef,
|
|
28332
28420
|
inputRef
|
|
28333
|
-
} =
|
|
28421
|
+
} = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
|
|
28334
28422
|
count: tags.length,
|
|
28335
28423
|
limitTags,
|
|
28336
28424
|
placeholder: currentPlaceholder
|
|
@@ -28343,7 +28431,7 @@ function TagSearchInput({
|
|
|
28343
28431
|
if (!showHiddenTags) return;
|
|
28344
28432
|
const handleClick = (e) => {
|
|
28345
28433
|
const target = e.target;
|
|
28346
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
28434
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _585 => _585.current, 'optionalAccess', _586 => _586.contains, 'call', _587 => _587(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _588 => _588.current, 'optionalAccess', _589 => _589.contains, 'call', _590 => _590(target)])) {
|
|
28347
28435
|
setShowHiddenTags(false);
|
|
28348
28436
|
}
|
|
28349
28437
|
};
|
|
@@ -28359,13 +28447,13 @@ function TagSearchInput({
|
|
|
28359
28447
|
e.preventDefault();
|
|
28360
28448
|
onSubmit(searchValue);
|
|
28361
28449
|
}
|
|
28362
|
-
_optionalChain([onKeyDown, 'optionalCall',
|
|
28450
|
+
_optionalChain([onKeyDown, 'optionalCall', _591 => _591(e)]);
|
|
28363
28451
|
};
|
|
28364
28452
|
const handleClearAll = (e) => {
|
|
28365
28453
|
e.stopPropagation();
|
|
28366
28454
|
e.preventDefault();
|
|
28367
|
-
_optionalChain([onClearAll, 'optionalCall',
|
|
28368
|
-
_optionalChain([inputRef, 'access',
|
|
28455
|
+
_optionalChain([onClearAll, 'optionalCall', _592 => _592()]);
|
|
28456
|
+
_optionalChain([inputRef, 'access', _593 => _593.current, 'optionalAccess', _594 => _594.focus, 'call', _595 => _595()]);
|
|
28369
28457
|
};
|
|
28370
28458
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
|
|
28371
28459
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -28382,7 +28470,7 @@ function TagSearchInput({
|
|
|
28382
28470
|
className
|
|
28383
28471
|
),
|
|
28384
28472
|
onClick: () => {
|
|
28385
|
-
if (!disabled) _optionalChain([inputRef, 'access',
|
|
28473
|
+
if (!disabled) _optionalChain([inputRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.focus, 'call', _598 => _598()]);
|
|
28386
28474
|
},
|
|
28387
28475
|
children: [
|
|
28388
28476
|
/* @__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" }) }),
|
|
@@ -28454,7 +28542,7 @@ function TagSearchInput({
|
|
|
28454
28542
|
items: hiddenTags,
|
|
28455
28543
|
disabled,
|
|
28456
28544
|
style: {
|
|
28457
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access',
|
|
28545
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _599 => _599.current, 'optionalAccess', _600 => _600.getBoundingClientRect, 'call', _601 => _601(), 'access', _602 => _602.left]), () => ( 0))) : 0
|
|
28458
28546
|
},
|
|
28459
28547
|
onRemove: (value) => {
|
|
28460
28548
|
onTagRemove(value);
|
|
@@ -28555,7 +28643,7 @@ function MarkdownEditor({
|
|
|
28555
28643
|
const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
|
|
28556
28644
|
_react.useEffect.call(void 0, () => {
|
|
28557
28645
|
Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
|
|
28558
|
-
if (_optionalChain([mod, 'access',
|
|
28646
|
+
if (_optionalChain([mod, 'access', _603 => _603.commands, 'optionalAccess', _604 => _604.getExtraCommands])) {
|
|
28559
28647
|
setDefaultExtraCommands(mod.commands.getExtraCommands());
|
|
28560
28648
|
}
|
|
28561
28649
|
});
|
|
@@ -28589,7 +28677,7 @@ function MarkdownEditor({
|
|
|
28589
28677
|
const isImage = file.type.startsWith("image/");
|
|
28590
28678
|
const markdown = isImage ? `` : `[${file.name}](${url})`;
|
|
28591
28679
|
insertTextAtCursor(markdown);
|
|
28592
|
-
_optionalChain([onFileUploaded, 'optionalCall',
|
|
28680
|
+
_optionalChain([onFileUploaded, 'optionalCall', _605 => _605(url, file.name)]);
|
|
28593
28681
|
} catch (error) {
|
|
28594
28682
|
console.error("File upload failed:", error);
|
|
28595
28683
|
setUploadProgress("Upload failed. Please try again.");
|
|
@@ -28602,7 +28690,7 @@ function MarkdownEditor({
|
|
|
28602
28690
|
);
|
|
28603
28691
|
const handleFileInputChange = _react.useCallback.call(void 0,
|
|
28604
28692
|
(e) => {
|
|
28605
|
-
const file = _optionalChain([e, 'access',
|
|
28693
|
+
const file = _optionalChain([e, 'access', _606 => _606.target, 'access', _607 => _607.files, 'optionalAccess', _608 => _608[0]]);
|
|
28606
28694
|
if (file) {
|
|
28607
28695
|
handleFileUpload(file);
|
|
28608
28696
|
e.target.value = "";
|
|
@@ -28613,7 +28701,7 @@ function MarkdownEditor({
|
|
|
28613
28701
|
const handlePaste = _react.useCallback.call(void 0,
|
|
28614
28702
|
(e) => {
|
|
28615
28703
|
if (!onUploadFile) return;
|
|
28616
|
-
const items = _optionalChain([e, 'access',
|
|
28704
|
+
const items = _optionalChain([e, 'access', _609 => _609.clipboardData, 'optionalAccess', _610 => _610.items]);
|
|
28617
28705
|
if (!items) return;
|
|
28618
28706
|
for (const item of items) {
|
|
28619
28707
|
if (item.type.startsWith("image/")) {
|
|
@@ -28638,7 +28726,7 @@ function MarkdownEditor({
|
|
|
28638
28726
|
buttonProps: { "aria-label": "Upload file", title: "Upload file" },
|
|
28639
28727
|
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" }),
|
|
28640
28728
|
execute: () => {
|
|
28641
|
-
_optionalChain([fileInputRef, 'access',
|
|
28729
|
+
_optionalChain([fileInputRef, 'access', _611 => _611.current, 'optionalAccess', _612 => _612.click, 'call', _613 => _613()]);
|
|
28642
28730
|
}
|
|
28643
28731
|
} : null;
|
|
28644
28732
|
const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
|
|
@@ -28650,7 +28738,7 @@ function MarkdownEditor({
|
|
|
28650
28738
|
const EDGE_ZONE = 60;
|
|
28651
28739
|
const MAX_SCROLL_SPEED = 15;
|
|
28652
28740
|
const findScrollParent = _react.useCallback.call(void 0, (el) => {
|
|
28653
|
-
let node = _optionalChain([el, 'optionalAccess',
|
|
28741
|
+
let node = _optionalChain([el, 'optionalAccess', _614 => _614.parentElement]);
|
|
28654
28742
|
while (node && node !== document.documentElement) {
|
|
28655
28743
|
const { overflowY } = window.getComputedStyle(node);
|
|
28656
28744
|
if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
|
|
@@ -28793,7 +28881,7 @@ function matchesAccept(file, accept) {
|
|
|
28793
28881
|
});
|
|
28794
28882
|
}
|
|
28795
28883
|
function dragHasFiles(e) {
|
|
28796
|
-
const types = _optionalChain([e, 'access',
|
|
28884
|
+
const types = _optionalChain([e, 'access', _615 => _615.dataTransfer, 'optionalAccess', _616 => _616.types]);
|
|
28797
28885
|
if (!types) return false;
|
|
28798
28886
|
for (let i = 0; i < types.length; i++) {
|
|
28799
28887
|
if (types[i] === "Files") return true;
|
|
@@ -28888,7 +28976,7 @@ function FileUpload({
|
|
|
28888
28976
|
e.stopPropagation();
|
|
28889
28977
|
setDragActive(false);
|
|
28890
28978
|
if (disabled) return;
|
|
28891
|
-
if (_optionalChain([e, 'access',
|
|
28979
|
+
if (_optionalChain([e, 'access', _617 => _617.dataTransfer, 'access', _618 => _618.files, 'optionalAccess', _619 => _619.length])) {
|
|
28892
28980
|
handleFiles(e.dataTransfer.files);
|
|
28893
28981
|
}
|
|
28894
28982
|
};
|
|
@@ -28916,7 +29004,7 @@ function FileUpload({
|
|
|
28916
29004
|
e.preventDefault();
|
|
28917
29005
|
dragCounter = 0;
|
|
28918
29006
|
setDragActive(false);
|
|
28919
|
-
if (_optionalChain([e, 'access',
|
|
29007
|
+
if (_optionalChain([e, 'access', _620 => _620.dataTransfer, 'optionalAccess', _621 => _621.files, 'optionalAccess', _622 => _622.length])) {
|
|
28920
29008
|
handleFilesRef.current(e.dataTransfer.files);
|
|
28921
29009
|
}
|
|
28922
29010
|
};
|
|
@@ -28938,7 +29026,7 @@ function FileUpload({
|
|
|
28938
29026
|
};
|
|
28939
29027
|
}, [acceptWindowDrops, disabled]);
|
|
28940
29028
|
const handleFileSelect = (e) => {
|
|
28941
|
-
if (_optionalChain([e, 'access',
|
|
29029
|
+
if (_optionalChain([e, 'access', _623 => _623.target, 'access', _624 => _624.files, 'optionalAccess', _625 => _625.length])) {
|
|
28942
29030
|
handleFiles(e.target.files);
|
|
28943
29031
|
}
|
|
28944
29032
|
};
|
|
@@ -28955,7 +29043,7 @@ function FileUpload({
|
|
|
28955
29043
|
};
|
|
28956
29044
|
const openDialog = async () => {
|
|
28957
29045
|
if (disabled) return;
|
|
28958
|
-
_optionalChain([fileInputRef, 'access',
|
|
29046
|
+
_optionalChain([fileInputRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.click, 'call', _628 => _628()]);
|
|
28959
29047
|
};
|
|
28960
29048
|
const displayError = error || validationError || void 0;
|
|
28961
29049
|
const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
|
|
@@ -29033,7 +29121,7 @@ function FileUpload({
|
|
|
29033
29121
|
"button",
|
|
29034
29122
|
{
|
|
29035
29123
|
type: "button",
|
|
29036
|
-
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall',
|
|
29124
|
+
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _629 => _629(entry.id)]),
|
|
29037
29125
|
className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
|
|
29038
29126
|
"aria-label": `Remove ${entry.fileName}`,
|
|
29039
29127
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
|
|
@@ -29156,7 +29244,7 @@ function ImageUploader({
|
|
|
29156
29244
|
onChange(file);
|
|
29157
29245
|
};
|
|
29158
29246
|
const handleFileSelect = (e) => {
|
|
29159
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
29247
|
+
validateAndEmit(_optionalChain([e, 'access', _630 => _630.target, 'access', _631 => _631.files, 'optionalAccess', _632 => _632[0]]));
|
|
29160
29248
|
if (inputRef.current) inputRef.current.value = "";
|
|
29161
29249
|
};
|
|
29162
29250
|
const handleDrag = (e) => {
|
|
@@ -29171,11 +29259,11 @@ function ImageUploader({
|
|
|
29171
29259
|
e.stopPropagation();
|
|
29172
29260
|
setDragActive(false);
|
|
29173
29261
|
if (!interactive) return;
|
|
29174
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
29262
|
+
validateAndEmit(_optionalChain([e, 'access', _633 => _633.dataTransfer, 'access', _634 => _634.files, 'optionalAccess', _635 => _635[0]]));
|
|
29175
29263
|
};
|
|
29176
29264
|
const openDialog = () => {
|
|
29177
29265
|
if (!interactive) return;
|
|
29178
|
-
_optionalChain([inputRef, 'access',
|
|
29266
|
+
_optionalChain([inputRef, 'access', _636 => _636.current, 'optionalAccess', _637 => _637.click, 'call', _638 => _638()]);
|
|
29179
29267
|
};
|
|
29180
29268
|
const handleRootKeyDown = (e) => {
|
|
29181
29269
|
if (hasImage || !interactive) return;
|
|
@@ -29332,7 +29420,7 @@ function CompactAssigneeDropdown({
|
|
|
29332
29420
|
return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
|
|
29333
29421
|
}, [filtered, currentAssignee]);
|
|
29334
29422
|
const handleSelect = (userId) => {
|
|
29335
|
-
const next = _optionalChain([currentAssignee, 'optionalAccess',
|
|
29423
|
+
const next = _optionalChain([currentAssignee, 'optionalAccess', _639 => _639.id]) === userId ? null : userId;
|
|
29336
29424
|
onAssign(next);
|
|
29337
29425
|
setIsOpen(false);
|
|
29338
29426
|
};
|
|
@@ -29397,7 +29485,7 @@ function CompactAssigneeDropdown({
|
|
|
29397
29485
|
}
|
|
29398
29486
|
) }),
|
|
29399
29487
|
/* @__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) => {
|
|
29400
|
-
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess',
|
|
29488
|
+
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _640 => _640.id]) === opt.value;
|
|
29401
29489
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
29402
29490
|
"button",
|
|
29403
29491
|
{
|
|
@@ -29466,7 +29554,7 @@ function DefaultAssigneeDropdown({
|
|
|
29466
29554
|
Autocomplete,
|
|
29467
29555
|
{
|
|
29468
29556
|
options,
|
|
29469
|
-
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess',
|
|
29557
|
+
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _641 => _641.id]), () => ( null)),
|
|
29470
29558
|
onChange: (val) => {
|
|
29471
29559
|
onAssign(val);
|
|
29472
29560
|
setIsEditing(false);
|
|
@@ -29832,14 +29920,14 @@ function TicketInfoSection({
|
|
|
29832
29920
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29833
29921
|
SquareAvatar,
|
|
29834
29922
|
{
|
|
29835
|
-
src: _optionalChain([organization, 'optionalAccess',
|
|
29836
|
-
alt: _optionalChain([organization, 'optionalAccess',
|
|
29837
|
-
fallback: _optionalChain([organization, 'optionalAccess',
|
|
29923
|
+
src: _optionalChain([organization, 'optionalAccess', _642 => _642.imageSrc]),
|
|
29924
|
+
alt: _optionalChain([organization, 'optionalAccess', _643 => _643.name]),
|
|
29925
|
+
fallback: _optionalChain([organization, 'optionalAccess', _644 => _644.name]) || "Org",
|
|
29838
29926
|
size: "md",
|
|
29839
29927
|
className: "shrink-0"
|
|
29840
29928
|
}
|
|
29841
29929
|
),
|
|
29842
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess',
|
|
29930
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _645 => _645.name]) || "Unassigned", label: "Organization" })
|
|
29843
29931
|
] }),
|
|
29844
29932
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29845
29933
|
AssigneeDropdown,
|
|
@@ -29860,10 +29948,10 @@ function TicketInfoSection({
|
|
|
29860
29948
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29861
29949
|
InfoCell2,
|
|
29862
29950
|
{
|
|
29863
|
-
value: _optionalChain([device, 'optionalAccess',
|
|
29951
|
+
value: _optionalChain([device, 'optionalAccess', _646 => _646.name]) || "Unassigned",
|
|
29864
29952
|
label: "Device",
|
|
29865
|
-
icon: _optionalChain([device, 'optionalAccess',
|
|
29866
|
-
onClick: _optionalChain([device, 'optionalAccess',
|
|
29953
|
+
icon: _optionalChain([device, 'optionalAccess', _647 => _647.icon]),
|
|
29954
|
+
onClick: _optionalChain([device, 'optionalAccess', _648 => _648.onClick])
|
|
29867
29955
|
}
|
|
29868
29956
|
),
|
|
29869
29957
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
|
|
@@ -30149,7 +30237,7 @@ function RoadmapCard({
|
|
|
30149
30237
|
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
30150
30238
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
30151
30239
|
const hasFigma = !!item.figmaUrl;
|
|
30152
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
30240
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _649 => _649.screenshots, 'optionalAccess', _650 => _650.length]), () => ( 0))) > 0;
|
|
30153
30241
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
30154
30242
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
30155
30243
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -30168,7 +30256,7 @@ function RoadmapCard({
|
|
|
30168
30256
|
unoptimized: true,
|
|
30169
30257
|
className: "h-8 w-8 object-contain"
|
|
30170
30258
|
}
|
|
30171
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
30259
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _651 => _651.title, 'optionalAccess', _652 => _652.substring, 'call', _653 => _653(0, 2)]) || "??" })
|
|
30172
30260
|
}
|
|
30173
30261
|
),
|
|
30174
30262
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -30243,7 +30331,7 @@ function RoadmapCard({
|
|
|
30243
30331
|
unoptimized: true,
|
|
30244
30332
|
className: "object-contain p-1"
|
|
30245
30333
|
}
|
|
30246
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
30334
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _654 => _654.title, 'optionalAccess', _655 => _655.substring, 'call', _656 => _656(0, 2)]) || "??" }) }),
|
|
30247
30335
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
30248
30336
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2", children: item.title }) }),
|
|
30249
30337
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
|
|
@@ -30750,7 +30838,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
|
30750
30838
|
] }) : null,
|
|
30751
30839
|
item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-[13px] leading-5 text-ods-text-secondary", children: item.preview }) }) : null
|
|
30752
30840
|
] }),
|
|
30753
|
-
_optionalChain([anchorProps, 'optionalAccess',
|
|
30841
|
+
_optionalChain([anchorProps, 'optionalAccess', _657 => _657.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-3.5 h-3.5" }) }) : null
|
|
30754
30842
|
] });
|
|
30755
30843
|
if (!anchorProps) {
|
|
30756
30844
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
@@ -30820,7 +30908,7 @@ function getDefaultOptions() {
|
|
|
30820
30908
|
// node_modules/date-fns/startOfWeek.mjs
|
|
30821
30909
|
function startOfWeek(date, options) {
|
|
30822
30910
|
const defaultOptions2 = getDefaultOptions();
|
|
30823
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
30911
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _658 => _658.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _659 => _659.locale, 'optionalAccess', _660 => _660.options, 'optionalAccess', _661 => _661.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _662 => _662.locale, 'optionalAccess', _663 => _663.options, 'optionalAccess', _664 => _664.weekStartsOn]))), () => ( 0));
|
|
30824
30912
|
const _date = toDate(date);
|
|
30825
30913
|
const day = _date.getDay();
|
|
30826
30914
|
const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
@@ -30995,7 +31083,7 @@ var formatDistance = (token, count, options) => {
|
|
|
30995
31083
|
} else {
|
|
30996
31084
|
result = tokenValue.other.replace("{{count}}", count.toString());
|
|
30997
31085
|
}
|
|
30998
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
31086
|
+
if (_optionalChain([options, 'optionalAccess', _665 => _665.addSuffix])) {
|
|
30999
31087
|
if (options.comparison && options.comparison > 0) {
|
|
31000
31088
|
return "in " + result;
|
|
31001
31089
|
} else {
|
|
@@ -31062,15 +31150,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
|
|
|
31062
31150
|
// node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
|
|
31063
31151
|
function buildLocalizeFn(args) {
|
|
31064
31152
|
return (value, options) => {
|
|
31065
|
-
const context = _optionalChain([options, 'optionalAccess',
|
|
31153
|
+
const context = _optionalChain([options, 'optionalAccess', _666 => _666.context]) ? String(options.context) : "standalone";
|
|
31066
31154
|
let valuesArray;
|
|
31067
31155
|
if (context === "formatting" && args.formattingValues) {
|
|
31068
31156
|
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
31069
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
31157
|
+
const width = _optionalChain([options, 'optionalAccess', _667 => _667.width]) ? String(options.width) : defaultWidth;
|
|
31070
31158
|
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
31071
31159
|
} else {
|
|
31072
31160
|
const defaultWidth = args.defaultWidth;
|
|
31073
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
31161
|
+
const width = _optionalChain([options, 'optionalAccess', _668 => _668.width]) ? String(options.width) : args.defaultWidth;
|
|
31074
31162
|
valuesArray = args.values[width] || args.values[defaultWidth];
|
|
31075
31163
|
}
|
|
31076
31164
|
const index = args.argumentCallback ? args.argumentCallback(value) : value;
|
|
@@ -31450,7 +31538,7 @@ function getWeekYear(date, options) {
|
|
|
31450
31538
|
const _date = toDate(date);
|
|
31451
31539
|
const year = _date.getFullYear();
|
|
31452
31540
|
const defaultOptions2 = getDefaultOptions();
|
|
31453
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
31541
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _669 => _669.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _670 => _670.locale, 'optionalAccess', _671 => _671.options, 'optionalAccess', _672 => _672.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _673 => _673.locale, 'optionalAccess', _674 => _674.options, 'optionalAccess', _675 => _675.firstWeekContainsDate]))), () => ( 1));
|
|
31454
31542
|
const firstWeekOfNextYear = constructFrom(date, 0);
|
|
31455
31543
|
firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
|
|
31456
31544
|
firstWeekOfNextYear.setHours(0, 0, 0, 0);
|
|
@@ -31471,7 +31559,7 @@ function getWeekYear(date, options) {
|
|
|
31471
31559
|
// node_modules/date-fns/startOfWeekYear.mjs
|
|
31472
31560
|
function startOfWeekYear(date, options) {
|
|
31473
31561
|
const defaultOptions2 = getDefaultOptions();
|
|
31474
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
31562
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _676 => _676.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _677 => _677.locale, 'optionalAccess', _678 => _678.options, 'optionalAccess', _679 => _679.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _680 => _680.locale, 'optionalAccess', _681 => _681.options, 'optionalAccess', _682 => _682.firstWeekContainsDate]))), () => ( 1));
|
|
31475
31563
|
const year = getWeekYear(date, options);
|
|
31476
31564
|
const firstWeek = constructFrom(date, 0);
|
|
31477
31565
|
firstWeek.setFullYear(year, 0, firstWeekContainsDate);
|
|
@@ -32286,9 +32374,9 @@ var doubleQuoteRegExp = /''/g;
|
|
|
32286
32374
|
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
32287
32375
|
function format(date, formatStr, options) {
|
|
32288
32376
|
const defaultOptions2 = getDefaultOptions();
|
|
32289
|
-
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
32290
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
32291
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
32377
|
+
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _683 => _683.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
|
|
32378
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _684 => _684.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _685 => _685.locale, 'optionalAccess', _686 => _686.options, 'optionalAccess', _687 => _687.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _688 => _688.locale, 'optionalAccess', _689 => _689.options, 'optionalAccess', _690 => _690.firstWeekContainsDate]))), () => ( 1));
|
|
32379
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _691 => _691.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _692 => _692.locale, 'optionalAccess', _693 => _693.options, 'optionalAccess', _694 => _694.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _695 => _695.locale, 'optionalAccess', _696 => _696.options, 'optionalAccess', _697 => _697.weekStartsOn]))), () => ( 0));
|
|
32292
32380
|
const originalDate = toDate(date);
|
|
32293
32381
|
if (!isValid(originalDate)) {
|
|
32294
32382
|
throw new RangeError("Invalid time value");
|
|
@@ -32329,7 +32417,7 @@ function format(date, formatStr, options) {
|
|
|
32329
32417
|
return parts.map((part) => {
|
|
32330
32418
|
if (!part.isToken) return part.value;
|
|
32331
32419
|
const token = part.value;
|
|
32332
|
-
if (!_optionalChain([options, 'optionalAccess',
|
|
32420
|
+
if (!_optionalChain([options, 'optionalAccess', _698 => _698.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _699 => _699.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
|
|
32333
32421
|
warnOrThrowProtectedError(token, formatStr, String(date));
|
|
32334
32422
|
}
|
|
32335
32423
|
const formatter = formatters[token[0]];
|
|
@@ -32495,7 +32583,7 @@ function ProgramCard({
|
|
|
32495
32583
|
const dur = formatDurationFromRange(w.start_at, w.end_at);
|
|
32496
32584
|
typeMeta = dur ? `${time} \xB7 ${dur}` : time;
|
|
32497
32585
|
}
|
|
32498
|
-
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access',
|
|
32586
|
+
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _700 => _700.labels, 'optionalAccess', _701 => _701.singular])].filter(
|
|
32499
32587
|
(s) => typeof s === "string" && s.length > 0
|
|
32500
32588
|
);
|
|
32501
32589
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunk664KA5FIcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
@@ -32652,7 +32740,7 @@ function ProgramCard({
|
|
|
32652
32740
|
|
|
32653
32741
|
|
|
32654
32742
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
32655
|
-
const goalsCount = _optionalChain([campaign, 'access',
|
|
32743
|
+
const goalsCount = _optionalChain([campaign, 'access', _702 => _702.goals, 'optionalAccess', _703 => _703.length]) || 0;
|
|
32656
32744
|
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
32657
32745
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
|
|
32658
32746
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -32770,7 +32858,7 @@ function extractItemId(type, item) {
|
|
|
32770
32858
|
return null;
|
|
32771
32859
|
}
|
|
32772
32860
|
function useChatCardItem(type, id) {
|
|
32773
|
-
const runtime =
|
|
32861
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
32774
32862
|
const url = runtime.endpoints.buildListUrl(type, [id]);
|
|
32775
32863
|
const query = _reactquery.useQuery.call(void 0, {
|
|
32776
32864
|
queryKey: ["chat-card-item", type, id],
|
|
@@ -32947,11 +33035,11 @@ function HubspotTicketChatCard({
|
|
|
32947
33035
|
chatRef,
|
|
32948
33036
|
isNewTab
|
|
32949
33037
|
}) {
|
|
32950
|
-
const status = typeof _optionalChain([chatRef, 'access',
|
|
32951
|
-
const statusLabel = typeof _optionalChain([chatRef, 'access',
|
|
32952
|
-
const priority = typeof _optionalChain([chatRef, 'access',
|
|
32953
|
-
const customerCompany = typeof _optionalChain([chatRef, 'access',
|
|
32954
|
-
const customerEmail = typeof _optionalChain([chatRef, 'access',
|
|
33038
|
+
const status = typeof _optionalChain([chatRef, 'access', _704 => _704.metadata, 'optionalAccess', _705 => _705.status]) === "string" ? chatRef.metadata.status : void 0;
|
|
33039
|
+
const statusLabel = typeof _optionalChain([chatRef, 'access', _706 => _706.metadata, 'optionalAccess', _707 => _707.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
33040
|
+
const priority = typeof _optionalChain([chatRef, 'access', _708 => _708.metadata, 'optionalAccess', _709 => _709.priority]) === "string" ? chatRef.metadata.priority : void 0;
|
|
33041
|
+
const customerCompany = typeof _optionalChain([chatRef, 'access', _710 => _710.metadata, 'optionalAccess', _711 => _711.customerCompany]) === "string" ? chatRef.metadata.customerCompany : void 0;
|
|
33042
|
+
const customerEmail = typeof _optionalChain([chatRef, 'access', _712 => _712.metadata, 'optionalAccess', _713 => _713.customerEmail]) === "string" ? chatRef.metadata.customerEmail : void 0;
|
|
32955
33043
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32956
33044
|
HubspotTicketCard,
|
|
32957
33045
|
{
|
|
@@ -32973,7 +33061,7 @@ function HubspotTicketChatCard({
|
|
|
32973
33061
|
);
|
|
32974
33062
|
}
|
|
32975
33063
|
function SlackChatCard({ chatRef, isNewTab }) {
|
|
32976
|
-
const channelName = typeof _optionalChain([chatRef, 'access',
|
|
33064
|
+
const channelName = typeof _optionalChain([chatRef, 'access', _714 => _714.metadata, 'optionalAccess', _715 => _715.channelName]) === "string" ? chatRef.metadata.channelName : void 0;
|
|
32977
33065
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32978
33066
|
SlackMessageCard,
|
|
32979
33067
|
{
|
|
@@ -32996,7 +33084,7 @@ function DataRoomDocChatCard({
|
|
|
32996
33084
|
chipBasePlatform,
|
|
32997
33085
|
isNewTab
|
|
32998
33086
|
}) {
|
|
32999
|
-
const path = typeof _optionalChain([chatRef, 'access',
|
|
33087
|
+
const path = typeof _optionalChain([chatRef, 'access', _716 => _716.metadata, 'optionalAccess', _717 => _717.path]) === "string" ? chatRef.metadata.path : void 0;
|
|
33000
33088
|
const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
|
|
33001
33089
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33002
33090
|
DataRoomDocCard,
|
|
@@ -33022,8 +33110,8 @@ function GenericFinancialChatCard({
|
|
|
33022
33110
|
scheme,
|
|
33023
33111
|
isNewTab
|
|
33024
33112
|
}) {
|
|
33025
|
-
const facts = Array.isArray(_optionalChain([chatRef, 'access',
|
|
33026
|
-
const subtitle = typeof _optionalChain([chatRef, 'access',
|
|
33113
|
+
const facts = Array.isArray(_optionalChain([chatRef, 'access', _718 => _718.metadata, 'optionalAccess', _719 => _719.facts])) ? chatRef.metadata.facts : null;
|
|
33114
|
+
const subtitle = typeof _optionalChain([chatRef, 'access', _720 => _720.metadata, 'optionalAccess', _721 => _721.subtitle]) === "string" ? chatRef.metadata.subtitle : null;
|
|
33027
33115
|
const anchorProps = buildAnchorProps(
|
|
33028
33116
|
chatRef.url,
|
|
33029
33117
|
isNewTab
|
|
@@ -33185,7 +33273,7 @@ function programRegistryEntries() {
|
|
|
33185
33273
|
contentRefType: cfg.contentRefType,
|
|
33186
33274
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramCardSkeleton, { size: "sm" }),
|
|
33187
33275
|
render: (item, chatRef, opts) => {
|
|
33188
|
-
const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33276
|
+
const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _722 => _722.extras, 'optionalAccess', _723 => _723.programConfigs, 'optionalAccess', _724 => _724[cfg.configKey]]), () => ( DEFAULT_PROGRAM_CONFIGS[cfg.configKey]));
|
|
33189
33277
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33190
33278
|
ProgramCard,
|
|
33191
33279
|
{
|
|
@@ -33271,8 +33359,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33271
33359
|
DataRoomDocChatCard,
|
|
33272
33360
|
{
|
|
33273
33361
|
chatRef,
|
|
33274
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
33275
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
33362
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _725 => _725.baseRoute]),
|
|
33363
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _726 => _726.chipBasePlatform]),
|
|
33276
33364
|
isNewTab: opts.isNewTab
|
|
33277
33365
|
}
|
|
33278
33366
|
)
|
|
@@ -33284,8 +33372,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33284
33372
|
DataRoomDocChatCard,
|
|
33285
33373
|
{
|
|
33286
33374
|
chatRef,
|
|
33287
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
33288
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
33375
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _727 => _727.baseRoute]),
|
|
33376
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _728 => _728.chipBasePlatform]),
|
|
33289
33377
|
isNewTab: opts.isNewTab
|
|
33290
33378
|
}
|
|
33291
33379
|
)
|
|
@@ -33310,9 +33398,9 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33310
33398
|
size: "sm",
|
|
33311
33399
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33312
33400
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33313
|
-
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33401
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _729 => _729.extras, 'optionalAccess', _730 => _730.buildOgPlaceholderUrl, 'optionalCall', _731 => _731(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _732 => _732.title]), () => ( "")))]), () => ( null)),
|
|
33314
33402
|
...newTabAnchorAttrs(opts.isNewTab),
|
|
33315
|
-
hasEmbeddedVideo: _optionalChain([chatRef, 'access',
|
|
33403
|
+
hasEmbeddedVideo: _optionalChain([chatRef, 'access', _733 => _733.metadata, 'optionalAccess', _734 => _734.hasEmbeddedVideo]) === true
|
|
33316
33404
|
}
|
|
33317
33405
|
)
|
|
33318
33406
|
},
|
|
@@ -33328,7 +33416,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33328
33416
|
size: "sm",
|
|
33329
33417
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33330
33418
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33331
|
-
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33419
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _735 => _735.extras, 'optionalAccess', _736 => _736.buildOgPlaceholderUrl, 'optionalCall', _737 => _737(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _738 => _738.title]), () => ( "")))]), () => ( null)),
|
|
33332
33420
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33333
33421
|
}
|
|
33334
33422
|
)
|
|
@@ -33345,7 +33433,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33345
33433
|
size: "sm",
|
|
33346
33434
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33347
33435
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33348
|
-
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33436
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _739 => _739.extras, 'optionalAccess', _740 => _740.buildOgPlaceholderUrl, 'optionalCall', _741 => _741(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _742 => _742.title]), () => ( "")))]), () => ( null)),
|
|
33349
33437
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33350
33438
|
}
|
|
33351
33439
|
)
|
|
@@ -33356,7 +33444,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33356
33444
|
contentRefType: "product_release",
|
|
33357
33445
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
|
|
33358
33446
|
render: (item, chatRef, opts) => {
|
|
33359
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33447
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _743 => _743.extras, 'optionalAccess', _744 => _744.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
|
|
33360
33448
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33361
33449
|
ProductReleaseChatCard,
|
|
33362
33450
|
{
|
|
@@ -33381,7 +33469,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33381
33469
|
size: "sm",
|
|
33382
33470
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33383
33471
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33384
|
-
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33472
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _745 => _745.extras, 'optionalAccess', _746 => _746.buildOgPlaceholderUrl, 'optionalCall', _747 => _747(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _748 => _748.title]), () => ( "")))]), () => ( null)),
|
|
33385
33473
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33386
33474
|
}
|
|
33387
33475
|
)
|
|
@@ -33399,7 +33487,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33399
33487
|
size: "sm",
|
|
33400
33488
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33401
33489
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33402
|
-
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33490
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _749 => _749.extras, 'optionalAccess', _750 => _750.buildOgPlaceholderUrl, 'optionalCall', _751 => _751(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _752 => _752.title]), () => ( "")))]), () => ( null)),
|
|
33403
33491
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33404
33492
|
}
|
|
33405
33493
|
)
|
|
@@ -33411,7 +33499,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33411
33499
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
|
|
33412
33500
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
33413
33501
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
33414
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
33502
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _753 => _753.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
|
|
33415
33503
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33416
33504
|
CampaignChatCard,
|
|
33417
33505
|
{
|
|
@@ -33430,17 +33518,17 @@ function ChatCardNavWrap({
|
|
|
33430
33518
|
isNewTab,
|
|
33431
33519
|
children
|
|
33432
33520
|
}) {
|
|
33433
|
-
const runtime =
|
|
33521
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
33434
33522
|
const panel = useChatPanel();
|
|
33435
33523
|
const onClickCapture = (e) => {
|
|
33436
33524
|
if (!href) return;
|
|
33437
33525
|
const targetEl = e.target;
|
|
33438
|
-
if (_optionalChain([targetEl, 'optionalAccess',
|
|
33439
|
-
if (!_optionalChain([targetEl, 'optionalAccess',
|
|
33526
|
+
if (_optionalChain([targetEl, 'optionalAccess', _754 => _754.closest, 'optionalCall', _755 => _755("button")])) return;
|
|
33527
|
+
if (!_optionalChain([targetEl, 'optionalAccess', _756 => _756.closest, 'optionalCall', _757 => _757("a")])) return;
|
|
33440
33528
|
const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform });
|
|
33441
33529
|
if (!handled) return;
|
|
33442
33530
|
e.stopPropagation();
|
|
33443
|
-
if (!isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
33531
|
+
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _758 => _758.closeChat])) panel.closeChat();
|
|
33444
33532
|
};
|
|
33445
33533
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
|
|
33446
33534
|
}
|
|
@@ -33452,7 +33540,7 @@ function ChatCardLoader({
|
|
|
33452
33540
|
chipBasePlatform,
|
|
33453
33541
|
extras
|
|
33454
33542
|
}) {
|
|
33455
|
-
const runtime =
|
|
33543
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
33456
33544
|
const resolvedChatRef = React92.default.useMemo(() => {
|
|
33457
33545
|
const cta = resolveSourceRowCTA(
|
|
33458
33546
|
{
|
|
@@ -33462,7 +33550,7 @@ function ChatCardLoader({
|
|
|
33462
33550
|
title: chatRef.title,
|
|
33463
33551
|
externalUrl: chatRef.url,
|
|
33464
33552
|
targetPlatform: chatRef.targetPlatform,
|
|
33465
|
-
path: typeof _optionalChain([chatRef, 'access',
|
|
33553
|
+
path: typeof _optionalChain([chatRef, 'access', _759 => _759.metadata, 'optionalAccess', _760 => _760.path]) === "string" ? chatRef.metadata.path : null
|
|
33466
33554
|
},
|
|
33467
33555
|
{
|
|
33468
33556
|
baseRoute,
|
|
@@ -33480,7 +33568,7 @@ function ChatCardLoader({
|
|
|
33480
33568
|
const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
|
|
33481
33569
|
const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
|
|
33482
33570
|
const { item, isLoading } = useChatCardItem(
|
|
33483
|
-
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess',
|
|
33571
|
+
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _761 => _761.contentRefType]), () => ( "")),
|
|
33484
33572
|
fetchEntry ? resolvedChatRef.id : ""
|
|
33485
33573
|
);
|
|
33486
33574
|
if (!entry) return null;
|
|
@@ -33490,7 +33578,7 @@ function ChatCardLoader({
|
|
|
33490
33578
|
} : resolvedChatRef;
|
|
33491
33579
|
const isNewTab = computeIsNewTab(runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
|
|
33492
33580
|
const renderOpts = { baseRoute, chipBasePlatform, extras, isNewTab };
|
|
33493
|
-
const path = typeof _optionalChain([finalChatRef, 'access',
|
|
33581
|
+
const path = typeof _optionalChain([finalChatRef, 'access', _762 => _762.metadata, 'optionalAccess', _763 => _763.path]) === "string" ? finalChatRef.metadata.path : null;
|
|
33494
33582
|
const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33495
33583
|
ChatCardNavWrap,
|
|
33496
33584
|
{
|
|
@@ -33907,7 +33995,6 @@ function useChunkCatchup({
|
|
|
33907
33995
|
|
|
33908
33996
|
// src/components/chat/hooks/use-jetstream-dialog-subscription.ts
|
|
33909
33997
|
|
|
33910
|
-
var shared = null;
|
|
33911
33998
|
var DEFAULT_INACTIVE_THRESHOLD_MS = 5 * 6e4;
|
|
33912
33999
|
var DEFAULT_STREAM_NAME = "CHAT_CHUNKS";
|
|
33913
34000
|
function useJetStreamDialogSubscription({
|
|
@@ -33970,68 +34057,16 @@ function useJetStreamDialogSubscription({
|
|
|
33970
34057
|
inactiveThresholdRef.current = inactiveThresholdMs;
|
|
33971
34058
|
}, [inactiveThresholdMs]);
|
|
33972
34059
|
const hadConnectionBeforeRef = _react.useRef.call(void 0, false);
|
|
33973
|
-
const
|
|
33974
|
-
|
|
33975
|
-
|
|
33976
|
-
|
|
33977
|
-
if (shared.closeTimer) clearTimeout(shared.closeTimer);
|
|
33978
|
-
const old = shared;
|
|
33979
|
-
shared = null;
|
|
33980
|
-
void old.client.close().catch(() => {
|
|
33981
|
-
});
|
|
33982
|
-
}
|
|
33983
|
-
const { name = "openframe-frontend-jetstream", user = "machine", pass = "" } = clientConfig;
|
|
33984
|
-
const client = _chunkEH3RWVF3cjs.createNatsClient.call(void 0, {
|
|
33985
|
-
servers: url,
|
|
33986
|
-
name,
|
|
33987
|
-
user,
|
|
33988
|
-
pass,
|
|
33989
|
-
connectTimeoutMs: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
|
|
33990
|
-
reconnect: false,
|
|
33991
|
-
pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
|
|
33992
|
-
maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
|
|
33993
|
-
});
|
|
33994
|
-
shared = {
|
|
33995
|
-
wsUrl: url,
|
|
33996
|
-
client,
|
|
33997
|
-
connectPromise: null,
|
|
33998
|
-
refCount: 0,
|
|
33999
|
-
closeTimer: null,
|
|
34000
|
-
retryTimer: null
|
|
34001
|
-
};
|
|
34002
|
-
}
|
|
34003
|
-
shared.refCount += 1;
|
|
34004
|
-
if (shared.closeTimer) {
|
|
34005
|
-
clearTimeout(shared.closeTimer);
|
|
34006
|
-
shared.closeTimer = null;
|
|
34007
|
-
}
|
|
34008
|
-
return shared;
|
|
34009
|
-
},
|
|
34010
|
-
[clientConfig]
|
|
34011
|
-
);
|
|
34012
|
-
const releaseClient = _react.useCallback.call(void 0, (url) => {
|
|
34013
|
-
if (!shared || shared.wsUrl !== url) return;
|
|
34014
|
-
shared.refCount = Math.max(0, shared.refCount - 1);
|
|
34015
|
-
if (shared.refCount > 0) return;
|
|
34016
|
-
shared.closeTimer = setTimeout(() => {
|
|
34017
|
-
const s = shared;
|
|
34018
|
-
shared = null;
|
|
34019
|
-
if (s) {
|
|
34020
|
-
if (s.retryTimer) {
|
|
34021
|
-
clearTimeout(s.retryTimer);
|
|
34022
|
-
s.retryTimer = null;
|
|
34023
|
-
}
|
|
34024
|
-
void s.client.close().catch(() => {
|
|
34025
|
-
});
|
|
34026
|
-
}
|
|
34027
|
-
}, NETWORK_CONFIG.SHARED_CLOSE_DELAY_MS);
|
|
34028
|
-
}, []);
|
|
34060
|
+
const clientConfigRef = _react.useRef.call(void 0, clientConfig);
|
|
34061
|
+
_react.useEffect.call(void 0, () => {
|
|
34062
|
+
clientConfigRef.current = clientConfig;
|
|
34063
|
+
}, [clientConfig]);
|
|
34029
34064
|
const currentWsUrlRef = _react.useRef.call(void 0, "");
|
|
34065
|
+
const wsUrl = getNatsWsUrl();
|
|
34030
34066
|
_react.useEffect.call(void 0, () => {
|
|
34031
|
-
const wsUrl = getNatsWsUrl();
|
|
34032
34067
|
if (!enabled || !wsUrl) {
|
|
34033
34068
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
34034
|
-
releaseClient(currentWsUrlRef.current);
|
|
34069
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34035
34070
|
clientRef.current = null;
|
|
34036
34071
|
currentWsUrlRef.current = "";
|
|
34037
34072
|
setIsConnected(false);
|
|
@@ -34042,137 +34077,79 @@ function useJetStreamDialogSubscription({
|
|
|
34042
34077
|
return;
|
|
34043
34078
|
}
|
|
34044
34079
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
34045
|
-
releaseClient(currentWsUrlRef.current);
|
|
34080
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34046
34081
|
clientRef.current = null;
|
|
34047
34082
|
setIsConnected(false);
|
|
34048
34083
|
}
|
|
34049
34084
|
currentWsUrlRef.current = wsUrl;
|
|
34050
|
-
const
|
|
34085
|
+
const cfg = clientConfigRef.current;
|
|
34086
|
+
const sharedConn = _chunkOZ3GH6OQcjs.acquireClient.call(void 0, wsUrl, {
|
|
34087
|
+
name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend-jetstream")),
|
|
34088
|
+
user: _nullishCoalesce(cfg.user, () => ( "machine")),
|
|
34089
|
+
pass: _nullishCoalesce(cfg.pass, () => ( ""))
|
|
34090
|
+
});
|
|
34051
34091
|
const client = sharedConn.client;
|
|
34052
34092
|
clientRef.current = client;
|
|
34053
|
-
setIsConnected(
|
|
34054
|
-
|
|
34055
|
-
|
|
34056
|
-
function scheduleRetry() {
|
|
34057
|
-
if (closed) return;
|
|
34058
|
-
if (shared !== sharedConn) return;
|
|
34059
|
-
if (sharedConn.retryTimer) {
|
|
34060
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34061
|
-
sharedConn.retryTimer = null;
|
|
34062
|
-
}
|
|
34063
|
-
const cfg = _nullishCoalesce(reconnectionBackoffRef.current, () => ( {}));
|
|
34064
|
-
const fastRetries = _nullishCoalesce(cfg.fastRetries, () => ( 0));
|
|
34065
|
-
const fastDelay = _nullishCoalesce(cfg.fastRetryDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34066
|
-
const baseDelay = _nullishCoalesce(cfg.initialDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34067
|
-
const maxDelay = _nullishCoalesce(cfg.maxDelayMs, () => ( NETWORK_CONFIG.RETRY_MAX_DELAY_MS));
|
|
34068
|
-
const multiplier = _nullishCoalesce(cfg.multiplier, () => ( NETWORK_CONFIG.RETRY_BACKOFF_MULTIPLIER));
|
|
34069
|
-
const delay2 = retryAttempt < fastRetries ? fastDelay : Math.min(baseDelay * multiplier ** (retryAttempt - fastRetries), maxDelay);
|
|
34070
|
-
const jitteredDelay = delay2 * (0.5 + Math.random() * 0.5);
|
|
34071
|
-
retryAttempt++;
|
|
34072
|
-
sharedConn.retryTimer = setTimeout(async () => {
|
|
34073
|
-
sharedConn.retryTimer = null;
|
|
34074
|
-
if (closed) return;
|
|
34075
|
-
if (shared !== sharedConn) return;
|
|
34093
|
+
setIsConnected(client.isConnected());
|
|
34094
|
+
const tearDownSubscription = () => {
|
|
34095
|
+
if (subscriptionRef.current) {
|
|
34076
34096
|
try {
|
|
34077
|
-
|
|
34097
|
+
subscriptionRef.current.unsubscribe();
|
|
34078
34098
|
} catch (e24) {
|
|
34079
34099
|
}
|
|
34080
|
-
|
|
34081
|
-
if (shared !== sharedConn) return;
|
|
34082
|
-
const freshUrl = getNatsWsUrlRef.current();
|
|
34083
|
-
if (freshUrl !== wsUrl) return;
|
|
34084
|
-
try {
|
|
34085
|
-
sharedConn.connectPromise = null;
|
|
34086
|
-
sharedConn.connectPromise = client.connect();
|
|
34087
|
-
await sharedConn.connectPromise;
|
|
34088
|
-
if (!closed && shared === sharedConn) {
|
|
34089
|
-
retryAttempt = 0;
|
|
34090
|
-
setIsConnected(true);
|
|
34091
|
-
}
|
|
34092
|
-
} catch (e25) {
|
|
34093
|
-
sharedConn.connectPromise = null;
|
|
34094
|
-
if (!closed && shared === sharedConn) {
|
|
34095
|
-
scheduleRetry();
|
|
34096
|
-
}
|
|
34097
|
-
}
|
|
34098
|
-
}, jitteredDelay);
|
|
34099
|
-
}
|
|
34100
|
-
const unsubscribeStatus = client.onStatus((event) => {
|
|
34101
|
-
const connected = event.status === "connected";
|
|
34102
|
-
const disconnected = event.status === "closed" || event.status === "disconnected";
|
|
34103
|
-
if (connected) {
|
|
34104
|
-
setIsConnected(true);
|
|
34105
|
-
if (hadConnectionBeforeRef.current) {
|
|
34106
|
-
setReconnectionCount((c) => c + 1);
|
|
34107
|
-
}
|
|
34108
|
-
hadConnectionBeforeRef.current = true;
|
|
34109
|
-
retryAttempt = 0;
|
|
34110
|
-
_optionalChain([onConnectRef, 'access', _755 => _755.current, 'optionalCall', _756 => _756()]);
|
|
34111
|
-
}
|
|
34112
|
-
if (event.status === "error") {
|
|
34113
|
-
console.warn("[JetStream] NATS protocol error:", event.data);
|
|
34114
|
-
return;
|
|
34115
|
-
}
|
|
34116
|
-
if (disconnected) {
|
|
34117
|
-
setIsConnected(false);
|
|
34118
|
-
setIsSubscribed(false);
|
|
34119
|
-
if (subscriptionRef.current) {
|
|
34120
|
-
try {
|
|
34121
|
-
subscriptionRef.current.unsubscribe();
|
|
34122
|
-
} catch (e26) {
|
|
34123
|
-
}
|
|
34124
|
-
subscriptionRef.current = null;
|
|
34125
|
-
}
|
|
34126
|
-
_optionalChain([onDisconnectRef, 'access', _757 => _757.current, 'optionalCall', _758 => _758()]);
|
|
34127
|
-
scheduleRetry();
|
|
34100
|
+
subscriptionRef.current = null;
|
|
34128
34101
|
}
|
|
34129
|
-
}
|
|
34130
|
-
|
|
34131
|
-
|
|
34132
|
-
|
|
34133
|
-
|
|
34134
|
-
|
|
34102
|
+
};
|
|
34103
|
+
const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
|
|
34104
|
+
conn: sharedConn,
|
|
34105
|
+
wsUrl,
|
|
34106
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _764 => _764.current, 'optionalCall', _765 => _765()]),
|
|
34107
|
+
backoff: reconnectionBackoffRef.current,
|
|
34108
|
+
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
34109
|
+
// JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
|
|
34110
|
+
// Violation when CONSUMER.CREATE is denied) without closing the WebSocket.
|
|
34111
|
+
// Retrying on 'error' would loop onBeforeReconnect on every -ERR; let the
|
|
34112
|
+
// subscribe effect surface those via its own rejected promise instead.
|
|
34113
|
+
shouldRetryOn: (status) => status === "closed" || status === "disconnected",
|
|
34114
|
+
onStatusChange: (status, evt) => {
|
|
34115
|
+
if (status === "connected") {
|
|
34135
34116
|
setIsConnected(true);
|
|
34117
|
+
if (hadConnectionBeforeRef.current) {
|
|
34118
|
+
setReconnectionCount((c) => c + 1);
|
|
34119
|
+
}
|
|
34136
34120
|
hadConnectionBeforeRef.current = true;
|
|
34121
|
+
_optionalChain([onConnectRef, 'access', _766 => _766.current, 'optionalCall', _767 => _767()]);
|
|
34122
|
+
}
|
|
34123
|
+
if (status === "error") {
|
|
34124
|
+
console.warn("[JetStream] NATS protocol error:", evt.data);
|
|
34125
|
+
return;
|
|
34137
34126
|
}
|
|
34138
|
-
|
|
34139
|
-
sharedConn.connectPromise = null;
|
|
34140
|
-
if (!closed) {
|
|
34127
|
+
if (status === "closed" || status === "disconnected") {
|
|
34141
34128
|
setIsConnected(false);
|
|
34142
|
-
|
|
34143
|
-
|
|
34129
|
+
setIsSubscribed(false);
|
|
34130
|
+
tearDownSubscription();
|
|
34131
|
+
_optionalChain([onDisconnectRef, 'access', _768 => _768.current, 'optionalCall', _769 => _769()]);
|
|
34144
34132
|
}
|
|
34145
34133
|
}
|
|
34146
|
-
})
|
|
34134
|
+
});
|
|
34147
34135
|
return () => {
|
|
34148
|
-
|
|
34136
|
+
lifecycle.stop();
|
|
34149
34137
|
setIsConnected(false);
|
|
34150
34138
|
setIsSubscribed(false);
|
|
34151
|
-
|
|
34152
|
-
if (sharedConn.retryTimer) {
|
|
34153
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34154
|
-
sharedConn.retryTimer = null;
|
|
34155
|
-
}
|
|
34156
|
-
if (subscriptionRef.current) {
|
|
34157
|
-
try {
|
|
34158
|
-
subscriptionRef.current.unsubscribe();
|
|
34159
|
-
} catch (e28) {
|
|
34160
|
-
}
|
|
34161
|
-
subscriptionRef.current = null;
|
|
34162
|
-
}
|
|
34139
|
+
tearDownSubscription();
|
|
34163
34140
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
34164
|
-
releaseClient(currentWsUrlRef.current);
|
|
34141
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34165
34142
|
clientRef.current = null;
|
|
34166
34143
|
currentWsUrlRef.current = "";
|
|
34167
34144
|
}
|
|
34168
34145
|
};
|
|
34169
|
-
}, [enabled,
|
|
34146
|
+
}, [enabled, wsUrl]);
|
|
34170
34147
|
_react.useEffect.call(void 0, () => {
|
|
34171
34148
|
if (!enabled || !dialogId || !isConnected) {
|
|
34172
34149
|
if (subscriptionRef.current) {
|
|
34173
34150
|
try {
|
|
34174
34151
|
subscriptionRef.current.unsubscribe();
|
|
34175
|
-
} catch (
|
|
34152
|
+
} catch (e25) {
|
|
34176
34153
|
}
|
|
34177
34154
|
subscriptionRef.current = null;
|
|
34178
34155
|
}
|
|
@@ -34209,7 +34186,7 @@ function useJetStreamDialogSubscription({
|
|
|
34209
34186
|
parsed.streamSeq = streamSeq;
|
|
34210
34187
|
}
|
|
34211
34188
|
cb(parsed, topic);
|
|
34212
|
-
} catch (
|
|
34189
|
+
} catch (e26) {
|
|
34213
34190
|
}
|
|
34214
34191
|
},
|
|
34215
34192
|
{
|
|
@@ -34224,14 +34201,14 @@ function useJetStreamDialogSubscription({
|
|
|
34224
34201
|
if (cancelled) {
|
|
34225
34202
|
try {
|
|
34226
34203
|
handle.unsubscribe();
|
|
34227
|
-
} catch (
|
|
34204
|
+
} catch (e27) {
|
|
34228
34205
|
}
|
|
34229
34206
|
return;
|
|
34230
34207
|
}
|
|
34231
34208
|
subscriptionRef.current = handle;
|
|
34232
34209
|
setIsSubscribed(true);
|
|
34233
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
34234
|
-
} catch (
|
|
34210
|
+
_optionalChain([onSubscribedRef, 'access', _770 => _770.current, 'optionalCall', _771 => _771()]);
|
|
34211
|
+
} catch (e28) {
|
|
34235
34212
|
if (!cancelled) {
|
|
34236
34213
|
setIsSubscribed(false);
|
|
34237
34214
|
}
|
|
@@ -34243,7 +34220,7 @@ function useJetStreamDialogSubscription({
|
|
|
34243
34220
|
if (subscriptionRef.current) {
|
|
34244
34221
|
try {
|
|
34245
34222
|
subscriptionRef.current.unsubscribe();
|
|
34246
|
-
} catch (
|
|
34223
|
+
} catch (e29) {
|
|
34247
34224
|
}
|
|
34248
34225
|
subscriptionRef.current = null;
|
|
34249
34226
|
}
|
|
@@ -34259,7 +34236,6 @@ function useJetStreamDialogSubscription({
|
|
|
34259
34236
|
|
|
34260
34237
|
// src/components/chat/hooks/use-nats-dialog-subscription.ts
|
|
34261
34238
|
|
|
34262
|
-
var shared2 = null;
|
|
34263
34239
|
function useNatsDialogSubscription({
|
|
34264
34240
|
enabled,
|
|
34265
34241
|
dialogId,
|
|
@@ -34307,56 +34283,16 @@ function useNatsDialogSubscription({
|
|
|
34307
34283
|
_react.useEffect.call(void 0, () => {
|
|
34308
34284
|
reconnectionBackoffRef.current = reconnectionBackoff;
|
|
34309
34285
|
}, [reconnectionBackoff]);
|
|
34310
|
-
const
|
|
34311
|
-
|
|
34312
|
-
|
|
34313
|
-
shared2.closeTimer && clearTimeout(shared2.closeTimer);
|
|
34314
|
-
const old = shared2;
|
|
34315
|
-
shared2 = null;
|
|
34316
|
-
void old.client.close().catch(() => {
|
|
34317
|
-
});
|
|
34318
|
-
}
|
|
34319
|
-
const { name = "openframe-frontend", user = "machine", pass = "" } = clientConfig;
|
|
34320
|
-
const client = _chunkEH3RWVF3cjs.createNatsClient.call(void 0, {
|
|
34321
|
-
servers: url,
|
|
34322
|
-
name,
|
|
34323
|
-
user,
|
|
34324
|
-
pass,
|
|
34325
|
-
connectTimeoutMs: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
|
|
34326
|
-
reconnect: false,
|
|
34327
|
-
pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
|
|
34328
|
-
maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
|
|
34329
|
-
});
|
|
34330
|
-
shared2 = { wsUrl: url, client, connectPromise: null, refCount: 0, closeTimer: null, retryTimer: null };
|
|
34331
|
-
}
|
|
34332
|
-
shared2.refCount += 1;
|
|
34333
|
-
shared2.closeTimer && clearTimeout(shared2.closeTimer);
|
|
34334
|
-
shared2.closeTimer = null;
|
|
34335
|
-
return shared2;
|
|
34286
|
+
const clientConfigRef = _react.useRef.call(void 0, clientConfig);
|
|
34287
|
+
_react.useEffect.call(void 0, () => {
|
|
34288
|
+
clientConfigRef.current = clientConfig;
|
|
34336
34289
|
}, [clientConfig]);
|
|
34337
|
-
const releaseClient = _react.useCallback.call(void 0, (url) => {
|
|
34338
|
-
if (!shared2 || shared2.wsUrl !== url) return;
|
|
34339
|
-
shared2.refCount = Math.max(0, shared2.refCount - 1);
|
|
34340
|
-
if (shared2.refCount > 0) return;
|
|
34341
|
-
shared2.closeTimer = setTimeout(() => {
|
|
34342
|
-
const s = shared2;
|
|
34343
|
-
shared2 = null;
|
|
34344
|
-
if (s) {
|
|
34345
|
-
if (s.retryTimer) {
|
|
34346
|
-
clearTimeout(s.retryTimer);
|
|
34347
|
-
s.retryTimer = null;
|
|
34348
|
-
}
|
|
34349
|
-
void s.client.close().catch(() => {
|
|
34350
|
-
});
|
|
34351
|
-
}
|
|
34352
|
-
}, NETWORK_CONFIG.SHARED_CLOSE_DELAY_MS);
|
|
34353
|
-
}, []);
|
|
34354
34290
|
const currentWsUrlRef = _react.useRef.call(void 0, "");
|
|
34291
|
+
const wsUrl = getNatsWsUrl();
|
|
34355
34292
|
_react.useEffect.call(void 0, () => {
|
|
34356
|
-
const wsUrl = getNatsWsUrl();
|
|
34357
34293
|
if (!enabled || !wsUrl) {
|
|
34358
34294
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
34359
|
-
releaseClient(currentWsUrlRef.current);
|
|
34295
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34360
34296
|
clientRef.current = null;
|
|
34361
34297
|
currentWsUrlRef.current = "";
|
|
34362
34298
|
setIsConnected(false);
|
|
@@ -34367,131 +34303,69 @@ function useNatsDialogSubscription({
|
|
|
34367
34303
|
return;
|
|
34368
34304
|
}
|
|
34369
34305
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
34370
|
-
releaseClient(currentWsUrlRef.current);
|
|
34306
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34371
34307
|
clientRef.current = null;
|
|
34372
34308
|
setIsConnected(false);
|
|
34373
34309
|
}
|
|
34374
34310
|
currentWsUrlRef.current = wsUrl;
|
|
34375
|
-
const
|
|
34311
|
+
const cfg = clientConfigRef.current;
|
|
34312
|
+
const sharedConn = _chunkOZ3GH6OQcjs.acquireClient.call(void 0, wsUrl, {
|
|
34313
|
+
name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend")),
|
|
34314
|
+
user: _nullishCoalesce(cfg.user, () => ( "machine")),
|
|
34315
|
+
pass: _nullishCoalesce(cfg.pass, () => ( ""))
|
|
34316
|
+
});
|
|
34376
34317
|
const client = sharedConn.client;
|
|
34377
34318
|
clientRef.current = client;
|
|
34378
|
-
setIsConnected(
|
|
34379
|
-
|
|
34380
|
-
|
|
34381
|
-
function scheduleRetry() {
|
|
34382
|
-
if (closed) return;
|
|
34383
|
-
if (shared2 !== sharedConn) return;
|
|
34384
|
-
if (sharedConn.retryTimer) {
|
|
34385
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34386
|
-
sharedConn.retryTimer = null;
|
|
34387
|
-
}
|
|
34388
|
-
const cfg = _nullishCoalesce(reconnectionBackoffRef.current, () => ( {}));
|
|
34389
|
-
const fastRetries = _nullishCoalesce(cfg.fastRetries, () => ( 0));
|
|
34390
|
-
const fastDelay = _nullishCoalesce(cfg.fastRetryDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34391
|
-
const baseDelay = _nullishCoalesce(cfg.initialDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34392
|
-
const maxDelay = _nullishCoalesce(cfg.maxDelayMs, () => ( NETWORK_CONFIG.RETRY_MAX_DELAY_MS));
|
|
34393
|
-
const multiplier = _nullishCoalesce(cfg.multiplier, () => ( NETWORK_CONFIG.RETRY_BACKOFF_MULTIPLIER));
|
|
34394
|
-
const delay2 = retryAttempt < fastRetries ? fastDelay : Math.min(baseDelay * multiplier ** (retryAttempt - fastRetries), maxDelay);
|
|
34395
|
-
const jitteredDelay = delay2 * (0.5 + Math.random() * 0.5);
|
|
34396
|
-
retryAttempt++;
|
|
34397
|
-
sharedConn.retryTimer = setTimeout(async () => {
|
|
34398
|
-
sharedConn.retryTimer = null;
|
|
34399
|
-
if (closed) return;
|
|
34400
|
-
if (shared2 !== sharedConn) return;
|
|
34401
|
-
try {
|
|
34402
|
-
await _optionalChain([onBeforeReconnectRef, 'access', _764 => _764.current, 'optionalCall', _765 => _765()]);
|
|
34403
|
-
} catch (e34) {
|
|
34404
|
-
}
|
|
34405
|
-
if (closed) return;
|
|
34406
|
-
if (shared2 !== sharedConn) return;
|
|
34407
|
-
const freshUrl = getNatsWsUrlRef.current();
|
|
34408
|
-
if (freshUrl !== wsUrl) return;
|
|
34319
|
+
setIsConnected(client.isConnected());
|
|
34320
|
+
const tearDownSubscriptions = () => {
|
|
34321
|
+
subscriptionRefs.current.forEach((sub) => {
|
|
34409
34322
|
try {
|
|
34410
|
-
|
|
34411
|
-
|
|
34412
|
-
await sharedConn.connectPromise;
|
|
34413
|
-
if (!closed && shared2 === sharedConn) {
|
|
34414
|
-
retryAttempt = 0;
|
|
34415
|
-
setIsConnected(true);
|
|
34416
|
-
}
|
|
34417
|
-
} catch (e35) {
|
|
34418
|
-
sharedConn.connectPromise = null;
|
|
34419
|
-
if (!closed && shared2 === sharedConn) {
|
|
34420
|
-
scheduleRetry();
|
|
34421
|
-
}
|
|
34323
|
+
_optionalChain([sub, 'optionalAccess', _772 => _772.unsubscribe, 'call', _773 => _773()]);
|
|
34324
|
+
} catch (e30) {
|
|
34422
34325
|
}
|
|
34423
|
-
}
|
|
34424
|
-
|
|
34425
|
-
|
|
34426
|
-
|
|
34427
|
-
|
|
34428
|
-
|
|
34429
|
-
|
|
34430
|
-
|
|
34431
|
-
|
|
34432
|
-
|
|
34433
|
-
|
|
34434
|
-
|
|
34435
|
-
|
|
34436
|
-
|
|
34437
|
-
|
|
34438
|
-
|
|
34439
|
-
setIsSubscribed(false);
|
|
34440
|
-
subscriptionRefs.current.forEach((sub) => {
|
|
34441
|
-
try {
|
|
34442
|
-
_optionalChain([sub, 'optionalAccess', _768 => _768.unsubscribe, 'call', _769 => _769()]);
|
|
34443
|
-
} catch (e36) {
|
|
34444
|
-
}
|
|
34445
|
-
});
|
|
34446
|
-
subscriptionRefs.current.clear();
|
|
34447
|
-
lastSubscribedDialogIdRef.current = null;
|
|
34448
|
-
_optionalChain([abortControllerRef, 'access', _770 => _770.current, 'optionalAccess', _771 => _771.abort, 'call', _772 => _772()]);
|
|
34449
|
-
abortControllerRef.current = null;
|
|
34450
|
-
_optionalChain([onDisconnectRef, 'access', _773 => _773.current, 'optionalCall', _774 => _774()]);
|
|
34451
|
-
scheduleRetry();
|
|
34452
|
-
}
|
|
34453
|
-
});
|
|
34454
|
-
(async () => {
|
|
34455
|
-
try {
|
|
34456
|
-
sharedConn.connectPromise || (sharedConn.connectPromise = client.connect());
|
|
34457
|
-
await sharedConn.connectPromise;
|
|
34458
|
-
if (!closed) {
|
|
34326
|
+
});
|
|
34327
|
+
subscriptionRefs.current.clear();
|
|
34328
|
+
lastSubscribedDialogIdRef.current = null;
|
|
34329
|
+
_optionalChain([abortControllerRef, 'access', _774 => _774.current, 'optionalAccess', _775 => _775.abort, 'call', _776 => _776()]);
|
|
34330
|
+
abortControllerRef.current = null;
|
|
34331
|
+
};
|
|
34332
|
+
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected" || status === "error";
|
|
34333
|
+
const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
|
|
34334
|
+
conn: sharedConn,
|
|
34335
|
+
wsUrl,
|
|
34336
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _777 => _777.current, 'optionalCall', _778 => _778()]),
|
|
34337
|
+
backoff: reconnectionBackoffRef.current,
|
|
34338
|
+
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
34339
|
+
shouldRetryOn: isDisconnectStatus,
|
|
34340
|
+
onStatusChange: (status) => {
|
|
34341
|
+
if (status === "connected") {
|
|
34459
34342
|
setIsConnected(true);
|
|
34343
|
+
if (hadConnectionBeforeRef.current) {
|
|
34344
|
+
setReconnectionCount((c) => c + 1);
|
|
34345
|
+
}
|
|
34460
34346
|
hadConnectionBeforeRef.current = true;
|
|
34347
|
+
_optionalChain([onConnectRef, 'access', _779 => _779.current, 'optionalCall', _780 => _780()]);
|
|
34461
34348
|
}
|
|
34462
|
-
|
|
34463
|
-
sharedConn.connectPromise = null;
|
|
34464
|
-
if (!closed) {
|
|
34349
|
+
if (isDisconnectStatus(status)) {
|
|
34465
34350
|
setIsConnected(false);
|
|
34466
|
-
|
|
34467
|
-
|
|
34351
|
+
setIsSubscribed(false);
|
|
34352
|
+
tearDownSubscriptions();
|
|
34353
|
+
_optionalChain([onDisconnectRef, 'access', _781 => _781.current, 'optionalCall', _782 => _782()]);
|
|
34468
34354
|
}
|
|
34469
34355
|
}
|
|
34470
|
-
})
|
|
34356
|
+
});
|
|
34471
34357
|
return () => {
|
|
34472
|
-
|
|
34358
|
+
lifecycle.stop();
|
|
34473
34359
|
setIsConnected(false);
|
|
34474
34360
|
setIsSubscribed(false);
|
|
34475
|
-
|
|
34476
|
-
if (sharedConn.retryTimer) {
|
|
34477
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34478
|
-
sharedConn.retryTimer = null;
|
|
34479
|
-
}
|
|
34480
|
-
subscriptionRefs.current.forEach((sub) => {
|
|
34481
|
-
try {
|
|
34482
|
-
_optionalChain([sub, 'optionalAccess', _777 => _777.unsubscribe, 'call', _778 => _778()]);
|
|
34483
|
-
} catch (e38) {
|
|
34484
|
-
}
|
|
34485
|
-
});
|
|
34486
|
-
subscriptionRefs.current.clear();
|
|
34487
|
-
lastSubscribedDialogIdRef.current = null;
|
|
34361
|
+
tearDownSubscriptions();
|
|
34488
34362
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
34489
|
-
releaseClient(currentWsUrlRef.current);
|
|
34363
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34490
34364
|
clientRef.current = null;
|
|
34491
34365
|
currentWsUrlRef.current = "";
|
|
34492
34366
|
}
|
|
34493
34367
|
};
|
|
34494
|
-
}, [enabled,
|
|
34368
|
+
}, [enabled, wsUrl]);
|
|
34495
34369
|
const topicsKey = topics.join(",");
|
|
34496
34370
|
const lastSubscribedDialogIdRef = _react.useRef.call(void 0, null);
|
|
34497
34371
|
const isConnectedRef = _react.useRef.call(void 0, isConnected);
|
|
@@ -34507,13 +34381,13 @@ function useNatsDialogSubscription({
|
|
|
34507
34381
|
setIsSubscribed(false);
|
|
34508
34382
|
subscriptionRefs.current.forEach((sub) => {
|
|
34509
34383
|
try {
|
|
34510
|
-
_optionalChain([sub, 'optionalAccess',
|
|
34511
|
-
} catch (
|
|
34384
|
+
_optionalChain([sub, 'optionalAccess', _783 => _783.unsubscribe, 'call', _784 => _784()]);
|
|
34385
|
+
} catch (e31) {
|
|
34512
34386
|
}
|
|
34513
34387
|
});
|
|
34514
34388
|
subscriptionRefs.current.clear();
|
|
34515
34389
|
lastSubscribedDialogIdRef.current = null;
|
|
34516
|
-
_optionalChain([abortControllerRef, 'access',
|
|
34390
|
+
_optionalChain([abortControllerRef, 'access', _785 => _785.current, 'optionalAccess', _786 => _786.abort, 'call', _787 => _787()]);
|
|
34517
34391
|
abortControllerRef.current = null;
|
|
34518
34392
|
}
|
|
34519
34393
|
return;
|
|
@@ -34525,12 +34399,12 @@ function useNatsDialogSubscription({
|
|
|
34525
34399
|
if (subscriptionRefs.current.size > 0) {
|
|
34526
34400
|
subscriptionRefs.current.forEach((sub) => {
|
|
34527
34401
|
try {
|
|
34528
|
-
_optionalChain([sub, 'optionalAccess',
|
|
34529
|
-
} catch (
|
|
34402
|
+
_optionalChain([sub, 'optionalAccess', _788 => _788.unsubscribe, 'call', _789 => _789()]);
|
|
34403
|
+
} catch (e32) {
|
|
34530
34404
|
}
|
|
34531
34405
|
});
|
|
34532
34406
|
subscriptionRefs.current.clear();
|
|
34533
|
-
_optionalChain([abortControllerRef, 'access',
|
|
34407
|
+
_optionalChain([abortControllerRef, 'access', _790 => _790.current, 'optionalAccess', _791 => _791.abort, 'call', _792 => _792()]);
|
|
34534
34408
|
}
|
|
34535
34409
|
abortControllerRef.current = new AbortController();
|
|
34536
34410
|
const abort = abortControllerRef.current;
|
|
@@ -34549,7 +34423,7 @@ function useNatsDialogSubscription({
|
|
|
34549
34423
|
const dataStr = decoder.decode(msg.data);
|
|
34550
34424
|
const parsed = JSON.parse(dataStr);
|
|
34551
34425
|
onEventRef.current(parsed, messageType);
|
|
34552
|
-
} catch (
|
|
34426
|
+
} catch (e33) {
|
|
34553
34427
|
}
|
|
34554
34428
|
};
|
|
34555
34429
|
topics.forEach((topic) => {
|
|
@@ -34562,7 +34436,7 @@ function useNatsDialogSubscription({
|
|
|
34562
34436
|
});
|
|
34563
34437
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
34564
34438
|
setIsSubscribed(true);
|
|
34565
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
34439
|
+
_optionalChain([onSubscribedRef, 'access', _793 => _793.current, 'optionalCall', _794 => _794()]);
|
|
34566
34440
|
};
|
|
34567
34441
|
if (isConnectedRef.current) {
|
|
34568
34442
|
createSubscriptions();
|
|
@@ -34572,8 +34446,8 @@ function useNatsDialogSubscription({
|
|
|
34572
34446
|
abort.abort();
|
|
34573
34447
|
subscriptionRefs.current.forEach((sub) => {
|
|
34574
34448
|
try {
|
|
34575
|
-
_optionalChain([sub, 'optionalAccess',
|
|
34576
|
-
} catch (
|
|
34449
|
+
_optionalChain([sub, 'optionalAccess', _795 => _795.unsubscribe, 'call', _796 => _796()]);
|
|
34450
|
+
} catch (e34) {
|
|
34577
34451
|
}
|
|
34578
34452
|
});
|
|
34579
34453
|
subscriptionRefs.current.clear();
|
|
@@ -34600,7 +34474,7 @@ function useNatsDialogSubscription({
|
|
|
34600
34474
|
const dataStr = decoder.decode(msg.data);
|
|
34601
34475
|
const parsed = JSON.parse(dataStr);
|
|
34602
34476
|
onEventRef.current(parsed, messageType);
|
|
34603
|
-
} catch (
|
|
34477
|
+
} catch (e35) {
|
|
34604
34478
|
}
|
|
34605
34479
|
};
|
|
34606
34480
|
topics.forEach((topic) => {
|
|
@@ -34613,7 +34487,7 @@ function useNatsDialogSubscription({
|
|
|
34613
34487
|
});
|
|
34614
34488
|
lastSubscribedDialogIdRef.current = dialogId2;
|
|
34615
34489
|
setIsSubscribed(true);
|
|
34616
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
34490
|
+
_optionalChain([onSubscribedRef, 'access', _797 => _797.current, 'optionalCall', _798 => _798()]);
|
|
34617
34491
|
} else if (subscriptionRefs.current.size > 0) {
|
|
34618
34492
|
setIsSubscribed(true);
|
|
34619
34493
|
}
|
|
@@ -34621,10 +34495,10 @@ function useNatsDialogSubscription({
|
|
|
34621
34495
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
34622
34496
|
}
|
|
34623
34497
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
34624
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
34498
|
+
const path = _optionalChain([options, 'optionalAccess', _799 => _799.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
34625
34499
|
const u = new URL(path, apiBaseUrl);
|
|
34626
34500
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
34627
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
34501
|
+
if (_optionalChain([options, 'optionalAccess', _800 => _800.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _801 => _801.token])) {
|
|
34628
34502
|
u.searchParams.set("authorization", options.token);
|
|
34629
34503
|
}
|
|
34630
34504
|
return u.toString();
|
|
@@ -34940,8 +34814,8 @@ var MessageSegmentAccumulator = class {
|
|
|
34940
34814
|
type: "tool_execution",
|
|
34941
34815
|
data: {
|
|
34942
34816
|
...toolData,
|
|
34943
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
34944
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
34817
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _802 => _802.data, 'access', _803 => _803.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _804 => _804.toolTitle]))),
|
|
34818
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _805 => _805.parameters])
|
|
34945
34819
|
}
|
|
34946
34820
|
};
|
|
34947
34821
|
if (existingIndex !== -1) {
|
|
@@ -34965,8 +34839,8 @@ var MessageSegmentAccumulator = class {
|
|
|
34965
34839
|
if (seg.type !== "approval_batch") return seg;
|
|
34966
34840
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
34967
34841
|
if (!hasCall) return seg;
|
|
34968
|
-
const prev = _optionalChain([seg, 'access',
|
|
34969
|
-
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess',
|
|
34842
|
+
const prev = _optionalChain([seg, 'access', _806 => _806.data, 'access', _807 => _807.executions, 'optionalAccess', _808 => _808[execId]]);
|
|
34843
|
+
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _809 => _809.result]), success: _optionalChain([prev, 'optionalAccess', _810 => _810.success]) };
|
|
34970
34844
|
matched = true;
|
|
34971
34845
|
return {
|
|
34972
34846
|
...seg,
|
|
@@ -35086,10 +34960,10 @@ var MessageSegmentAccumulator = class {
|
|
|
35086
34960
|
const segment = {
|
|
35087
34961
|
type: "approval_request",
|
|
35088
34962
|
data: {
|
|
35089
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
35090
|
-
explanation: _optionalChain([pendingApproval, 'optionalAccess',
|
|
34963
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _811 => _811.command]) || "",
|
|
34964
|
+
explanation: _optionalChain([pendingApproval, 'optionalAccess', _812 => _812.explanation]),
|
|
35091
34965
|
requestId,
|
|
35092
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
34966
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _813 => _813.approvalType]) || approvalType
|
|
35093
34967
|
},
|
|
35094
34968
|
status,
|
|
35095
34969
|
onApprove: this.callbacks.onApprove,
|
|
@@ -35277,7 +35151,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35277
35151
|
if (initialState.escalatedApprovals) {
|
|
35278
35152
|
pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
|
|
35279
35153
|
initialState.escalatedApprovals.forEach((data, requestId) => {
|
|
35280
|
-
_optionalChain([callbacks, 'access',
|
|
35154
|
+
_optionalChain([callbacks, 'access', _814 => _814.onEscalatedApproval, 'optionalCall', _815 => _815(requestId, data)]);
|
|
35281
35155
|
});
|
|
35282
35156
|
}
|
|
35283
35157
|
hasEverStreamedRef.current = true;
|
|
@@ -35299,32 +35173,32 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35299
35173
|
case "message_start":
|
|
35300
35174
|
isInStreamRef.current = true;
|
|
35301
35175
|
hasEverStreamedRef.current = true;
|
|
35302
|
-
_optionalChain([callbacks, 'access',
|
|
35176
|
+
_optionalChain([callbacks, 'access', _816 => _816.onStreamStart, 'optionalCall', _817 => _817()]);
|
|
35303
35177
|
accumulator.resetSegments();
|
|
35304
35178
|
break;
|
|
35305
35179
|
case "message_end":
|
|
35306
35180
|
isInStreamRef.current = false;
|
|
35307
|
-
_optionalChain([callbacks, 'access',
|
|
35181
|
+
_optionalChain([callbacks, 'access', _818 => _818.onStreamEnd, 'optionalCall', _819 => _819()]);
|
|
35308
35182
|
accumulator.resetSegments();
|
|
35309
35183
|
break;
|
|
35310
35184
|
case "metadata":
|
|
35311
|
-
_optionalChain([callbacks, 'access',
|
|
35185
|
+
_optionalChain([callbacks, 'access', _820 => _820.onMetadata, 'optionalCall', _821 => _821(action)]);
|
|
35312
35186
|
break;
|
|
35313
35187
|
case "text": {
|
|
35314
35188
|
const segments = accumulator.appendText(action.text);
|
|
35315
35189
|
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
35316
|
-
_optionalChain([callbacks, 'access',
|
|
35190
|
+
_optionalChain([callbacks, 'access', _822 => _822.onSegmentsUpdate, 'optionalCall', _823 => _823(segments)]);
|
|
35317
35191
|
} else {
|
|
35318
|
-
_optionalChain([callbacks, 'access',
|
|
35192
|
+
_optionalChain([callbacks, 'access', _824 => _824.onSegmentsUpdate, 'optionalCall', _825 => _825([{ type: "text", text: action.text }], { append: true })]);
|
|
35319
35193
|
}
|
|
35320
35194
|
break;
|
|
35321
35195
|
}
|
|
35322
35196
|
case "thinking": {
|
|
35323
35197
|
const segments = accumulator.appendThinking(action.text);
|
|
35324
35198
|
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
35325
|
-
_optionalChain([callbacks, 'access',
|
|
35199
|
+
_optionalChain([callbacks, 'access', _826 => _826.onSegmentsUpdate, 'optionalCall', _827 => _827(segments)]);
|
|
35326
35200
|
} else {
|
|
35327
|
-
_optionalChain([callbacks, 'access',
|
|
35201
|
+
_optionalChain([callbacks, 'access', _828 => _828.onSegmentsUpdate, 'optionalCall', _829 => _829([{ type: "thinking", text: action.text }], { append: true })]);
|
|
35328
35202
|
}
|
|
35329
35203
|
break;
|
|
35330
35204
|
}
|
|
@@ -35334,7 +35208,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35334
35208
|
break;
|
|
35335
35209
|
}
|
|
35336
35210
|
const segments = accumulator.addToolExecution(action.segment);
|
|
35337
|
-
_optionalChain([callbacks, 'access',
|
|
35211
|
+
_optionalChain([callbacks, 'access', _830 => _830.onSegmentsUpdate, 'optionalCall', _831 => _831(segments)]);
|
|
35338
35212
|
break;
|
|
35339
35213
|
}
|
|
35340
35214
|
case "approval_request": {
|
|
@@ -35348,10 +35222,10 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35348
35222
|
approvalType,
|
|
35349
35223
|
status
|
|
35350
35224
|
);
|
|
35351
|
-
_optionalChain([callbacks, 'access',
|
|
35225
|
+
_optionalChain([callbacks, 'access', _832 => _832.onSegmentsUpdate, 'optionalCall', _833 => _833(segments)]);
|
|
35352
35226
|
} else {
|
|
35353
35227
|
pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
|
|
35354
|
-
_optionalChain([callbacks, 'access',
|
|
35228
|
+
_optionalChain([callbacks, 'access', _834 => _834.onEscalatedApproval, 'optionalCall', _835 => _835(requestId, { command, explanation, approvalType })]);
|
|
35355
35229
|
}
|
|
35356
35230
|
break;
|
|
35357
35231
|
}
|
|
@@ -35363,20 +35237,20 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35363
35237
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
35364
35238
|
pendingEscalatedRef.current.set(requestId, {
|
|
35365
35239
|
command: summary,
|
|
35366
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
35240
|
+
explanation: _optionalChain([required, 'optionalAccess', _836 => _836.toolExplanation]),
|
|
35367
35241
|
approvalType,
|
|
35368
35242
|
toolCalls
|
|
35369
35243
|
});
|
|
35370
|
-
_optionalChain([callbacks, 'access',
|
|
35244
|
+
_optionalChain([callbacks, 'access', _837 => _837.onEscalatedApproval, 'optionalCall', _838 => _838(requestId, {
|
|
35371
35245
|
command: summary,
|
|
35372
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
35246
|
+
explanation: _optionalChain([required, 'optionalAccess', _839 => _839.toolExplanation]),
|
|
35373
35247
|
approvalType
|
|
35374
35248
|
})]);
|
|
35375
35249
|
break;
|
|
35376
35250
|
}
|
|
35377
35251
|
if (batchApprovalsEnabled) {
|
|
35378
35252
|
const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
|
|
35379
|
-
_optionalChain([callbacks, 'access',
|
|
35253
|
+
_optionalChain([callbacks, 'access', _840 => _840.onSegmentsUpdate, 'optionalCall', _841 => _841(segments2)]);
|
|
35380
35254
|
break;
|
|
35381
35255
|
}
|
|
35382
35256
|
let segments = accumulator.getSegments();
|
|
@@ -35390,7 +35264,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35390
35264
|
status
|
|
35391
35265
|
);
|
|
35392
35266
|
}
|
|
35393
|
-
_optionalChain([callbacks, 'access',
|
|
35267
|
+
_optionalChain([callbacks, 'access', _842 => _842.onSegmentsUpdate, 'optionalCall', _843 => _843(segments)]);
|
|
35394
35268
|
break;
|
|
35395
35269
|
}
|
|
35396
35270
|
case "approval_result": {
|
|
@@ -35399,7 +35273,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35399
35273
|
const status = approved ? "approved" : "rejected";
|
|
35400
35274
|
if (escalatedData) {
|
|
35401
35275
|
pendingEscalatedRef.current.delete(requestId);
|
|
35402
|
-
_optionalChain([callbacks, 'access',
|
|
35276
|
+
_optionalChain([callbacks, 'access', _844 => _844.onEscalatedApprovalResult, 'optionalCall', _845 => _845(requestId, approved, {
|
|
35403
35277
|
command: escalatedData.command,
|
|
35404
35278
|
explanation: escalatedData.explanation,
|
|
35405
35279
|
approvalType: escalatedData.approvalType
|
|
@@ -35412,7 +35286,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35412
35286
|
escalatedData.toolCalls,
|
|
35413
35287
|
status
|
|
35414
35288
|
);
|
|
35415
|
-
_optionalChain([callbacks, 'access',
|
|
35289
|
+
_optionalChain([callbacks, 'access', _846 => _846.onSegmentsUpdate, 'optionalCall', _847 => _847(segments)]);
|
|
35416
35290
|
} else {
|
|
35417
35291
|
let segments = accumulator.getSegments();
|
|
35418
35292
|
for (const call of escalatedData.toolCalls) {
|
|
@@ -35425,7 +35299,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35425
35299
|
status
|
|
35426
35300
|
);
|
|
35427
35301
|
}
|
|
35428
|
-
_optionalChain([callbacks, 'access',
|
|
35302
|
+
_optionalChain([callbacks, 'access', _848 => _848.onSegmentsUpdate, 'optionalCall', _849 => _849(segments)]);
|
|
35429
35303
|
}
|
|
35430
35304
|
} else {
|
|
35431
35305
|
const segments = accumulator.addApprovalRequest(
|
|
@@ -35435,65 +35309,65 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35435
35309
|
escalatedData.approvalType,
|
|
35436
35310
|
status
|
|
35437
35311
|
);
|
|
35438
|
-
_optionalChain([callbacks, 'access',
|
|
35312
|
+
_optionalChain([callbacks, 'access', _850 => _850.onSegmentsUpdate, 'optionalCall', _851 => _851(segments)]);
|
|
35439
35313
|
}
|
|
35440
35314
|
} else {
|
|
35441
35315
|
accumulator.updateApprovalStatus(requestId, status);
|
|
35442
35316
|
if (!callbacks.onApprovalResolved) {
|
|
35443
|
-
_optionalChain([callbacks, 'access',
|
|
35317
|
+
_optionalChain([callbacks, 'access', _852 => _852.onSegmentsUpdate, 'optionalCall', _853 => _853(accumulator.getSegments())]);
|
|
35444
35318
|
}
|
|
35445
35319
|
}
|
|
35446
|
-
_optionalChain([callbacks, 'access',
|
|
35320
|
+
_optionalChain([callbacks, 'access', _854 => _854.onApprovalResolved, 'optionalCall', _855 => _855(requestId, status, approvalType)]);
|
|
35447
35321
|
break;
|
|
35448
35322
|
}
|
|
35449
35323
|
case "error": {
|
|
35450
35324
|
let message2;
|
|
35451
|
-
if ("details" in action && _optionalChain([action, 'optionalAccess',
|
|
35325
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _856 => _856.details])) {
|
|
35452
35326
|
try {
|
|
35453
|
-
message2 = _optionalChain([JSON, 'access',
|
|
35454
|
-
} catch (
|
|
35327
|
+
message2 = _optionalChain([JSON, 'access', _857 => _857.parse, 'call', _858 => _858(action.details), 'optionalAccess', _859 => _859.error, 'optionalAccess', _860 => _860.message]);
|
|
35328
|
+
} catch (e36) {
|
|
35455
35329
|
message2 = action.details;
|
|
35456
35330
|
}
|
|
35457
35331
|
}
|
|
35458
35332
|
const segments = accumulator.addError(action.error, message2);
|
|
35459
|
-
_optionalChain([callbacks, 'access',
|
|
35460
|
-
_optionalChain([callbacks, 'access',
|
|
35333
|
+
_optionalChain([callbacks, 'access', _861 => _861.onSegmentsUpdate, 'optionalCall', _862 => _862(segments)]);
|
|
35334
|
+
_optionalChain([callbacks, 'access', _863 => _863.onError, 'optionalCall', _864 => _864(action.error, message2)]);
|
|
35461
35335
|
break;
|
|
35462
35336
|
}
|
|
35463
35337
|
case "system": {
|
|
35464
|
-
_optionalChain([callbacks, 'access',
|
|
35338
|
+
_optionalChain([callbacks, 'access', _865 => _865.onSystemMessage, 'optionalCall', _866 => _866(action.text)]);
|
|
35465
35339
|
break;
|
|
35466
35340
|
}
|
|
35467
35341
|
case "direct_message": {
|
|
35468
|
-
_optionalChain([callbacks, 'access',
|
|
35342
|
+
_optionalChain([callbacks, 'access', _867 => _867.onDirectMessage, 'optionalCall', _868 => _868(action.text, {
|
|
35469
35343
|
ownerType: action.ownerType,
|
|
35470
35344
|
displayName: action.displayName
|
|
35471
35345
|
})]);
|
|
35472
35346
|
break;
|
|
35473
35347
|
}
|
|
35474
35348
|
case "message_request":
|
|
35475
|
-
_optionalChain([callbacks, 'access',
|
|
35349
|
+
_optionalChain([callbacks, 'access', _869 => _869.onUserMessage, 'optionalCall', _870 => _870(action.text, {
|
|
35476
35350
|
ownerType: action.ownerType,
|
|
35477
35351
|
displayName: action.displayName
|
|
35478
35352
|
})]);
|
|
35479
35353
|
break;
|
|
35480
35354
|
case "token_usage":
|
|
35481
|
-
_optionalChain([callbacks, 'access',
|
|
35355
|
+
_optionalChain([callbacks, 'access', _871 => _871.onTokenUsage, 'optionalCall', _872 => _872(action.data)]);
|
|
35482
35356
|
break;
|
|
35483
35357
|
case "context_compaction_start": {
|
|
35484
35358
|
const standalone = !isInStreamRef.current;
|
|
35485
35359
|
const segments = accumulator.addContextCompaction();
|
|
35486
|
-
_optionalChain([callbacks, 'access',
|
|
35360
|
+
_optionalChain([callbacks, 'access', _873 => _873.onSegmentsUpdate, 'optionalCall', _874 => _874(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
35487
35361
|
break;
|
|
35488
35362
|
}
|
|
35489
35363
|
case "context_compaction_end": {
|
|
35490
35364
|
const standalone = !isInStreamRef.current;
|
|
35491
35365
|
const segments = accumulator.completeContextCompaction(action.summary);
|
|
35492
|
-
_optionalChain([callbacks, 'access',
|
|
35366
|
+
_optionalChain([callbacks, 'access', _875 => _875.onSegmentsUpdate, 'optionalCall', _876 => _876(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
35493
35367
|
break;
|
|
35494
35368
|
}
|
|
35495
35369
|
case "dialog_closed":
|
|
35496
|
-
_optionalChain([callbacks, 'access',
|
|
35370
|
+
_optionalChain([callbacks, 'access', _877 => _877.onDialogClosed, 'optionalCall', _878 => _878()]);
|
|
35497
35371
|
break;
|
|
35498
35372
|
default:
|
|
35499
35373
|
break;
|
|
@@ -35553,7 +35427,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
35553
35427
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
35554
35428
|
if (!cancelled) setCommands(next);
|
|
35555
35429
|
} catch (err) {
|
|
35556
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
35430
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _879 => _879.name]) !== "AbortError") {
|
|
35557
35431
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
35558
35432
|
}
|
|
35559
35433
|
} finally {
|
|
@@ -35578,7 +35452,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
35578
35452
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
35579
35453
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
35580
35454
|
return new Promise((resolve, reject) => {
|
|
35581
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
35455
|
+
if (_optionalChain([signal, 'optionalAccess', _880 => _880.aborted])) {
|
|
35582
35456
|
reject(new Error("Upload cancelled"));
|
|
35583
35457
|
return;
|
|
35584
35458
|
}
|
|
@@ -35592,7 +35466,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
35592
35466
|
xhr.removeEventListener("error", handleError);
|
|
35593
35467
|
xhr.removeEventListener("abort", handleAbort);
|
|
35594
35468
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
35595
|
-
_optionalChain([signal, 'optionalAccess',
|
|
35469
|
+
_optionalChain([signal, 'optionalAccess', _881 => _881.removeEventListener, 'call', _882 => _882("abort", handleSignalAbort)]);
|
|
35596
35470
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
35597
35471
|
};
|
|
35598
35472
|
const handleProgress = (event) => {
|
|
@@ -35628,7 +35502,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
35628
35502
|
const handleSignalAbort = () => {
|
|
35629
35503
|
xhr.abort();
|
|
35630
35504
|
};
|
|
35631
|
-
_optionalChain([signal, 'optionalAccess',
|
|
35505
|
+
_optionalChain([signal, 'optionalAccess', _883 => _883.addEventListener, 'call', _884 => _884("abort", handleSignalAbort, { once: true })]);
|
|
35632
35506
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
35633
35507
|
xhr.addEventListener("load", handleLoad);
|
|
35634
35508
|
xhr.addEventListener("error", handleError);
|
|
@@ -35644,7 +35518,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
35644
35518
|
});
|
|
35645
35519
|
}
|
|
35646
35520
|
function useChatAttachments() {
|
|
35647
|
-
const runtime =
|
|
35521
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
35648
35522
|
const uploadUrlEndpoint = runtime.endpoints.attachmentUploadUrl;
|
|
35649
35523
|
const [attachments, setAttachments] = _react.useState.call(void 0, []);
|
|
35650
35524
|
const controllersRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
@@ -35672,12 +35546,12 @@ function useChatAttachments() {
|
|
|
35672
35546
|
try {
|
|
35673
35547
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
35674
35548
|
} catch (err) {
|
|
35675
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35549
|
+
if (_optionalChain([ctrl, 'optionalAccess', _885 => _885.signal, 'access', _886 => _886.aborted])) return;
|
|
35676
35550
|
throw new Error(
|
|
35677
35551
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
35678
35552
|
);
|
|
35679
35553
|
}
|
|
35680
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35554
|
+
if (_optionalChain([ctrl, 'optionalAccess', _887 => _887.signal, 'access', _888 => _888.aborted])) return;
|
|
35681
35555
|
if (!sniffed) {
|
|
35682
35556
|
throw new Error("Unrecognized file format");
|
|
35683
35557
|
}
|
|
@@ -35691,7 +35565,7 @@ function useChatAttachments() {
|
|
|
35691
35565
|
const urlResp = await embedAuthedFetch(uploadUrlEndpoint, {
|
|
35692
35566
|
method: "POST",
|
|
35693
35567
|
headers: { "Content-Type": "application/json" },
|
|
35694
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
35568
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _889 => _889.signal]),
|
|
35695
35569
|
body: JSON.stringify({
|
|
35696
35570
|
fileName: att.file.name,
|
|
35697
35571
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -35717,9 +35591,9 @@ function useChatAttachments() {
|
|
|
35717
35591
|
(pct) => {
|
|
35718
35592
|
updateOne(att.id, { progress: pct });
|
|
35719
35593
|
},
|
|
35720
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
35594
|
+
_optionalChain([ctrl, 'optionalAccess', _890 => _890.signal])
|
|
35721
35595
|
);
|
|
35722
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35596
|
+
if (_optionalChain([ctrl, 'optionalAccess', _891 => _891.signal, 'access', _892 => _892.aborted])) return;
|
|
35723
35597
|
updateOne(att.id, {
|
|
35724
35598
|
status: "ready",
|
|
35725
35599
|
progress: 100,
|
|
@@ -35727,7 +35601,7 @@ function useChatAttachments() {
|
|
|
35727
35601
|
viewToken: mintData.viewToken
|
|
35728
35602
|
});
|
|
35729
35603
|
} catch (err) {
|
|
35730
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35604
|
+
if (_optionalChain([ctrl, 'optionalAccess', _893 => _893.signal, 'access', _894 => _894.aborted])) return;
|
|
35731
35605
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
35732
35606
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
35733
35607
|
} finally {
|
|
@@ -35817,7 +35691,7 @@ function useChatAttachments() {
|
|
|
35817
35691
|
|
|
35818
35692
|
var CLOSED = { isOpen: false, images: [], initialIndex: 0 };
|
|
35819
35693
|
function useChatAttachmentImageGallery() {
|
|
35820
|
-
const runtime =
|
|
35694
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
35821
35695
|
const viewUrlPrefix = runtime.endpoints.attachmentViewUrlPrefix;
|
|
35822
35696
|
const panelRef = _react.useRef.call(void 0, null);
|
|
35823
35697
|
const [state, setState] = _react.useState.call(void 0, CLOSED);
|
|
@@ -35876,9 +35750,9 @@ var ANON_DEFAULTS = {
|
|
|
35876
35750
|
user: null
|
|
35877
35751
|
};
|
|
35878
35752
|
function useChatIdentity() {
|
|
35879
|
-
const runtime =
|
|
35880
|
-
const url = runtime.endpoints.
|
|
35881
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call',
|
|
35753
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
35754
|
+
const url = runtime.endpoints.identityUrl;
|
|
35755
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _895 => _895(), 'optionalAccess', _896 => _896.email]), () => ( null));
|
|
35882
35756
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
35883
35757
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
35884
35758
|
_react.useEffect.call(void 0, () => {
|
|
@@ -35955,7 +35829,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
35955
35829
|
yield chunk;
|
|
35956
35830
|
}
|
|
35957
35831
|
} catch (err) {
|
|
35958
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
35832
|
+
if (_optionalChain([err, 'optionalAccess', _897 => _897.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
35959
35833
|
return;
|
|
35960
35834
|
}
|
|
35961
35835
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -36006,7 +35880,7 @@ function useChat({
|
|
|
36006
35880
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
36007
35881
|
onMessagesChangeRef.current = onMessagesChange;
|
|
36008
35882
|
_react.useEffect.call(void 0, () => {
|
|
36009
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
35883
|
+
_optionalChain([onMessagesChangeRef, 'access', _898 => _898.current, 'optionalCall', _899 => _899(messages)]);
|
|
36010
35884
|
}, [messages]);
|
|
36011
35885
|
const {
|
|
36012
35886
|
streamMessage,
|
|
@@ -36043,7 +35917,7 @@ function useChat({
|
|
|
36043
35917
|
name: "You",
|
|
36044
35918
|
content: text,
|
|
36045
35919
|
timestamp: /* @__PURE__ */ new Date(),
|
|
36046
|
-
..._optionalChain([options, 'optionalAccess',
|
|
35920
|
+
..._optionalChain([options, 'optionalAccess', _900 => _900.hidden]) ? { hidden: true } : {}
|
|
36047
35921
|
};
|
|
36048
35922
|
addMessage(userMessage);
|
|
36049
35923
|
setIsTyping(true);
|
|
@@ -36105,7 +35979,7 @@ function useChat({
|
|
|
36105
35979
|
currentTextSegment = "";
|
|
36106
35980
|
}
|
|
36107
35981
|
const seg = segment;
|
|
36108
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
35982
|
+
const proposalId = _optionalChain([seg, 'access', _901 => _901.data, 'optionalAccess', _902 => _902.requestId]);
|
|
36109
35983
|
const updateApprovalMessage = (transform) => {
|
|
36110
35984
|
setMessages((prev) => {
|
|
36111
35985
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -36114,7 +35988,7 @@ function useChat({
|
|
|
36114
35988
|
if (!Array.isArray(m.content)) continue;
|
|
36115
35989
|
const segments = m.content;
|
|
36116
35990
|
const hasMatch = segments.some(
|
|
36117
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
35991
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _903 => _903.data, 'optionalAccess', _904 => _904.requestId]) === proposalId
|
|
36118
35992
|
);
|
|
36119
35993
|
if (!hasMatch) continue;
|
|
36120
35994
|
const next = [...prev];
|
|
@@ -36156,11 +36030,11 @@ function useChat({
|
|
|
36156
36030
|
if (!Array.isArray(m.content)) continue;
|
|
36157
36031
|
const segments = m.content;
|
|
36158
36032
|
const hasMatch = segments.some(
|
|
36159
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
36033
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _905 => _905.data, 'optionalAccess', _906 => _906.requestId]) === decision.proposalId
|
|
36160
36034
|
);
|
|
36161
36035
|
if (!hasMatch) continue;
|
|
36162
36036
|
const flipped = segments.map(
|
|
36163
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
36037
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _907 => _907.data, 'optionalAccess', _908 => _908.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
|
|
36164
36038
|
);
|
|
36165
36039
|
const next = [...prev];
|
|
36166
36040
|
next[i] = { ...m, content: flipped };
|
|
@@ -36322,8 +36196,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36322
36196
|
})),
|
|
36323
36197
|
{ role: "user", content: message2 }
|
|
36324
36198
|
];
|
|
36325
|
-
const targetPath = _optionalChain([extra, 'optionalAccess',
|
|
36326
|
-
const requestBody = _optionalChain([extra, 'optionalAccess',
|
|
36199
|
+
const targetPath = _optionalChain([extra, 'optionalAccess', _909 => _909.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
|
|
36200
|
+
const requestBody = _optionalChain([extra, 'optionalAccess', _910 => _910.approvalAction]) ? {
|
|
36327
36201
|
proposal_id: extra.approvalAction.proposalId,
|
|
36328
36202
|
action: extra.approvalAction.action,
|
|
36329
36203
|
messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
|
|
@@ -36332,8 +36206,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36332
36206
|
}))
|
|
36333
36207
|
} : {
|
|
36334
36208
|
messages: apiMessages,
|
|
36335
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
36336
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
36209
|
+
..._optionalChain([extra, 'optionalAccess', _911 => _911.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
|
|
36210
|
+
..._optionalChain([extra, 'optionalAccess', _912 => _912.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
|
|
36337
36211
|
};
|
|
36338
36212
|
const response = await embedAuthedFetch(targetPath, {
|
|
36339
36213
|
method: "POST",
|
|
@@ -36343,7 +36217,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36343
36217
|
if (!response.ok) {
|
|
36344
36218
|
throw new Error(`Chat request failed: ${response.status}`);
|
|
36345
36219
|
}
|
|
36346
|
-
const reader = _optionalChain([response, 'access',
|
|
36220
|
+
const reader = _optionalChain([response, 'access', _913 => _913.body, 'optionalAccess', _914 => _914.getReader, 'call', _915 => _915()]);
|
|
36347
36221
|
if (!reader) throw new Error("No response body");
|
|
36348
36222
|
const decoder = new TextDecoder();
|
|
36349
36223
|
let buffer = "";
|
|
@@ -36395,7 +36269,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36395
36269
|
let meta;
|
|
36396
36270
|
try {
|
|
36397
36271
|
meta = JSON.parse(metaStr);
|
|
36398
|
-
} catch (
|
|
36272
|
+
} catch (e37) {
|
|
36399
36273
|
inText = true;
|
|
36400
36274
|
setStreamingPhase("streaming");
|
|
36401
36275
|
if (buffer.length > 0) {
|
|
@@ -36426,7 +36300,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36426
36300
|
const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
|
|
36427
36301
|
const result = _nullishCoalesce(meta.result, () => ( null));
|
|
36428
36302
|
const card = _nullishCoalesce(meta.card, () => ( null));
|
|
36429
|
-
if (_optionalChain([card, 'optionalAccess',
|
|
36303
|
+
if (_optionalChain([card, 'optionalAccess', _916 => _916.ref, 'optionalAccess', _917 => _917.id]) && _optionalChain([card, 'optionalAccess', _918 => _918.type])) {
|
|
36430
36304
|
const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
|
|
36431
36305
|
const key = buildChatRefKey(card.type, card.ref.id);
|
|
36432
36306
|
refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
|
|
@@ -36439,8 +36313,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36439
36313
|
willAutoContinue: meta.willAutoContinue === true,
|
|
36440
36314
|
...toolName ? { toolName } : {},
|
|
36441
36315
|
...result ? { result } : {},
|
|
36442
|
-
..._optionalChain([card, 'optionalAccess',
|
|
36443
|
-
..._optionalChain([card, 'optionalAccess',
|
|
36316
|
+
..._optionalChain([card, 'optionalAccess', _919 => _919.marker]) ? { marker: card.marker } : {},
|
|
36317
|
+
..._optionalChain([card, 'optionalAccess', _920 => _920.ref]) ? { cardRef: card.ref } : {},
|
|
36444
36318
|
...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
|
|
36445
36319
|
proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
|
|
36446
36320
|
};
|
|
@@ -36542,7 +36416,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36542
36416
|
});
|
|
36543
36417
|
bumpMetaTick();
|
|
36544
36418
|
}
|
|
36545
|
-
} catch (
|
|
36419
|
+
} catch (e38) {
|
|
36546
36420
|
}
|
|
36547
36421
|
}
|
|
36548
36422
|
};
|
|
@@ -36558,7 +36432,7 @@ var CHAT_STORAGE_VERSION = 1;
|
|
|
36558
36432
|
var chatStorageKey = (source) => {
|
|
36559
36433
|
const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
|
|
36560
36434
|
const auth = getEmbedProxyAuth();
|
|
36561
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
36435
|
+
if (_optionalChain([auth, 'optionalAccess', _921 => _921.email])) {
|
|
36562
36436
|
return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
|
|
36563
36437
|
}
|
|
36564
36438
|
return base;
|
|
@@ -36581,7 +36455,7 @@ function pruneStaleChatStorage(source) {
|
|
|
36581
36455
|
for (const k of toRemove) {
|
|
36582
36456
|
window.localStorage.removeItem(k);
|
|
36583
36457
|
}
|
|
36584
|
-
} catch (
|
|
36458
|
+
} catch (e39) {
|
|
36585
36459
|
}
|
|
36586
36460
|
}
|
|
36587
36461
|
function loadPersistedChat(source) {
|
|
@@ -36598,7 +36472,7 @@ function loadPersistedChat(source) {
|
|
|
36598
36472
|
}
|
|
36599
36473
|
}
|
|
36600
36474
|
return parsed;
|
|
36601
|
-
} catch (
|
|
36475
|
+
} catch (e40) {
|
|
36602
36476
|
return null;
|
|
36603
36477
|
}
|
|
36604
36478
|
}
|
|
@@ -36606,18 +36480,18 @@ function savePersistedChat(source, state) {
|
|
|
36606
36480
|
if (typeof window === "undefined") return;
|
|
36607
36481
|
try {
|
|
36608
36482
|
window.localStorage.setItem(chatStorageKey(source), JSON.stringify(state));
|
|
36609
|
-
} catch (
|
|
36483
|
+
} catch (e41) {
|
|
36610
36484
|
}
|
|
36611
36485
|
}
|
|
36612
36486
|
function useSseChatAdapter(options) {
|
|
36613
|
-
const runtime =
|
|
36487
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
36614
36488
|
const source = runtime.source;
|
|
36615
36489
|
if (!source) {
|
|
36616
36490
|
throw new Error(
|
|
36617
36491
|
"[useSseChatAdapter] runtime.source is required \u2014 got empty string. Wire `source` on your <ChatRuntimeContext.Provider value={...}>. Hub default: <HubRuntimeProvider source={currentPlatform()}>; embedded apps: pass your own platform/tenant identifier."
|
|
36618
36492
|
);
|
|
36619
36493
|
}
|
|
36620
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36494
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _922 => _922.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
36621
36495
|
const persistedRef = _react.useRef.call(void 0, null);
|
|
36622
36496
|
if (persistedRef.current === null) {
|
|
36623
36497
|
pruneStaleChatStorage(source);
|
|
@@ -36685,7 +36559,7 @@ function useSseChatAdapter(options) {
|
|
|
36685
36559
|
}
|
|
36686
36560
|
setCmdIdByTableId(map);
|
|
36687
36561
|
}).catch((err) => {
|
|
36688
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
36562
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _923 => _923.name]) !== "AbortError") {
|
|
36689
36563
|
console.warn(
|
|
36690
36564
|
"[useSseChatAdapter] failed to fetch slash commands for displayRef:",
|
|
36691
36565
|
err
|
|
@@ -36738,7 +36612,7 @@ function useSseChatAdapter(options) {
|
|
|
36738
36612
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
36739
36613
|
sources = sourcesMapRef.current.get(lookupIdx);
|
|
36740
36614
|
chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
|
|
36741
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access',
|
|
36615
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _924 => _924.current, 'access', _925 => _925.get, 'call', _926 => _926(lookupIdx), 'optionalAccess', _927 => _927.scrollAnchor]), () => ( void 0));
|
|
36742
36616
|
}
|
|
36743
36617
|
return {
|
|
36744
36618
|
id: m.id,
|
|
@@ -36786,7 +36660,7 @@ function useSseChatAdapter(options) {
|
|
|
36786
36660
|
);
|
|
36787
36661
|
return;
|
|
36788
36662
|
}
|
|
36789
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
36663
|
+
const refSlug = typeof _optionalChain([reference, 'access', _928 => _928.metadata, 'optionalAccess', _929 => _929.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
36790
36664
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
36791
36665
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
36792
36666
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -36833,7 +36707,7 @@ function useSseChatAdapter(options) {
|
|
|
36833
36707
|
if (typeof window !== "undefined") {
|
|
36834
36708
|
try {
|
|
36835
36709
|
window.localStorage.removeItem(chatStorageKey(source));
|
|
36836
|
-
} catch (
|
|
36710
|
+
} catch (e42) {
|
|
36837
36711
|
}
|
|
36838
36712
|
}
|
|
36839
36713
|
}, [chatClearMessages, source, bumpMetaTick]);
|
|
@@ -36858,18 +36732,18 @@ function useSseChatAdapter(options) {
|
|
|
36858
36732
|
clearMessages,
|
|
36859
36733
|
streamingPhase,
|
|
36860
36734
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
36861
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36862
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36863
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36735
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _930 => _930.provider]), () => ( null)),
|
|
36736
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _931 => _931.modelLabel]), () => ( null)),
|
|
36737
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _932 => _932.contextWindowMaxTokens]), () => ( null)),
|
|
36864
36738
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
36865
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36739
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _933 => _933.inputTokens]), () => ( null)),
|
|
36866
36740
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
36867
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36741
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _934 => _934.outputTokens]), () => ( null)),
|
|
36868
36742
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
36869
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36743
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _935 => _935.cacheHitRatePct]), () => ( null)),
|
|
36870
36744
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
36871
36745
|
* token counts). null until the trailing usage frame lands. */
|
|
36872
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36746
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _936 => _936.breakdown]), () => ( null))
|
|
36873
36747
|
};
|
|
36874
36748
|
}
|
|
36875
36749
|
|
|
@@ -36960,7 +36834,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
36960
36834
|
});
|
|
36961
36835
|
const sendMessage = _react.useCallback.call(void 0,
|
|
36962
36836
|
async (text, sendOptions) => {
|
|
36963
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
36837
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _937 => _937.hidden]), () => ( false));
|
|
36964
36838
|
setMessages((prev) => [
|
|
36965
36839
|
...prev,
|
|
36966
36840
|
{
|
|
@@ -37103,7 +36977,7 @@ function useUnifiedChat(options) {
|
|
|
37103
36977
|
|
|
37104
36978
|
// src/components/chat/hooks/use-proxied-image-url.ts
|
|
37105
36979
|
function useProxiedImageUrl(url) {
|
|
37106
|
-
const r =
|
|
36980
|
+
const r = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
37107
36981
|
return _nullishCoalesce(getProxiedImageUrl(_nullishCoalesce(url, () => ( "")), {
|
|
37108
36982
|
proxyPrefix: r.endpoints.imageProxyUrlPrefix,
|
|
37109
36983
|
skipDomains: r.endpoints.imageProxySkipDomains,
|
|
@@ -37113,12 +36987,12 @@ function useProxiedImageUrl(url) {
|
|
|
37113
36987
|
|
|
37114
36988
|
// src/components/chat/utils/process-historical-messages.ts
|
|
37115
36989
|
function getOwnerDisplayName(owner) {
|
|
37116
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
36990
|
+
if (_optionalChain([owner, 'optionalAccess', _938 => _938.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
37117
36991
|
const { firstName, lastName } = owner.user;
|
|
37118
36992
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
37119
36993
|
if (name) return name;
|
|
37120
36994
|
}
|
|
37121
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
36995
|
+
return _optionalChain([owner, 'optionalAccess', _939 => _939.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
37122
36996
|
}
|
|
37123
36997
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
37124
36998
|
messageDataArray.forEach((data) => {
|
|
@@ -37181,10 +37055,10 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
37181
37055
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
37182
37056
|
return;
|
|
37183
37057
|
}
|
|
37184
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
37058
|
+
const isUserMessage = _optionalChain([msg, 'access', _940 => _940.owner, 'optionalAccess', _941 => _941.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _942 => _942.owner, 'optionalAccess', _943 => _943.type]) === OWNER_TYPE.ADMIN;
|
|
37185
37059
|
if (isUserMessage) {
|
|
37186
37060
|
flushAssistantMessage();
|
|
37187
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
37061
|
+
const userAuthorType = _optionalChain([msg, 'access', _944 => _944.owner, 'optionalAccess', _945 => _945.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
37188
37062
|
messageDataArray.forEach((data) => {
|
|
37189
37063
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
37190
37064
|
processedMessages.push({
|
|
@@ -37208,7 +37082,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
37208
37082
|
});
|
|
37209
37083
|
const nextMsg = messages[index + 1];
|
|
37210
37084
|
const isLastMessage = index === messages.length - 1;
|
|
37211
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
37085
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _946 => _946.owner, 'optionalAccess', _947 => _947.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _948 => _948.owner, 'optionalAccess', _949 => _949.type]) === OWNER_TYPE.ADMIN);
|
|
37212
37086
|
if (isLastMessage || nextIsFromUser) {
|
|
37213
37087
|
flushAssistantMessage();
|
|
37214
37088
|
}
|
|
@@ -37318,7 +37192,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37318
37192
|
}
|
|
37319
37193
|
}
|
|
37320
37194
|
} else {
|
|
37321
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37195
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _950 => _950.set, 'call', _951 => _951(data.approvalRequestId, {
|
|
37322
37196
|
command: data.command || "",
|
|
37323
37197
|
explanation: data.explanation,
|
|
37324
37198
|
approvalType,
|
|
@@ -37331,8 +37205,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37331
37205
|
if ("approvalRequestId" in data && data.approvalRequestId) {
|
|
37332
37206
|
const existingStatus = approvalStatuses[data.approvalRequestId];
|
|
37333
37207
|
const status = existingStatus || (data.approved ? "approved" : "rejected");
|
|
37334
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37335
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
37208
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _952 => _952.get, 'call', _953 => _953(data.approvalRequestId)]);
|
|
37209
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _954 => _954.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
37336
37210
|
if (batchApprovalsEnabled) {
|
|
37337
37211
|
accumulator.addApprovalBatch(
|
|
37338
37212
|
data.approvalRequestId,
|
|
@@ -37352,7 +37226,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37352
37226
|
);
|
|
37353
37227
|
}
|
|
37354
37228
|
}
|
|
37355
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37229
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _955 => _955.delete, 'call', _956 => _956(data.approvalRequestId)]);
|
|
37356
37230
|
break;
|
|
37357
37231
|
}
|
|
37358
37232
|
if (escalatedData) {
|
|
@@ -37361,7 +37235,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37361
37235
|
explanation: escalatedData.explanation,
|
|
37362
37236
|
approvalType: escalatedData.approvalType
|
|
37363
37237
|
});
|
|
37364
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37238
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _957 => _957.delete, 'call', _958 => _958(data.approvalRequestId)]);
|
|
37365
37239
|
}
|
|
37366
37240
|
const before = accumulator.getSegments();
|
|
37367
37241
|
const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
|
|
@@ -37377,10 +37251,10 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37377
37251
|
case MESSAGE_TYPE.ERROR:
|
|
37378
37252
|
if ("error" in data) {
|
|
37379
37253
|
let message2;
|
|
37380
|
-
if ("details" in data && _optionalChain([data, 'optionalAccess',
|
|
37254
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _959 => _959.details])) {
|
|
37381
37255
|
try {
|
|
37382
|
-
message2 = _optionalChain([JSON, 'access',
|
|
37383
|
-
} catch (
|
|
37256
|
+
message2 = _optionalChain([JSON, 'access', _960 => _960.parse, 'call', _961 => _961(data.details), 'optionalAccess', _962 => _962.error, 'optionalAccess', _963 => _963.message]);
|
|
37257
|
+
} catch (e43) {
|
|
37384
37258
|
message2 = data.details;
|
|
37385
37259
|
}
|
|
37386
37260
|
}
|
|
@@ -37462,10 +37336,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
37462
37336
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
37463
37337
|
return;
|
|
37464
37338
|
}
|
|
37465
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
37339
|
+
const isUserMessage = _optionalChain([msg, 'access', _964 => _964.owner, 'optionalAccess', _965 => _965.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _966 => _966.owner, 'optionalAccess', _967 => _967.type]) === OWNER_TYPE.ADMIN;
|
|
37466
37340
|
if (isUserMessage) {
|
|
37467
37341
|
flushAssistantMessage();
|
|
37468
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
37342
|
+
const userAuthorType = _optionalChain([msg, 'access', _968 => _968.owner, 'optionalAccess', _969 => _969.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
37469
37343
|
messageDataArray.forEach((data) => {
|
|
37470
37344
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
37471
37345
|
processedMessages.push({
|
|
@@ -37489,7 +37363,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
37489
37363
|
});
|
|
37490
37364
|
const nextMsg = messages[index + 1];
|
|
37491
37365
|
const isLastMessage = index === messages.length - 1;
|
|
37492
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
37366
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _970 => _970.owner, 'optionalAccess', _971 => _971.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _972 => _972.owner, 'optionalAccess', _973 => _973.type]) === OWNER_TYPE.ADMIN);
|
|
37493
37367
|
if (isLastMessage || nextIsFromUser) {
|
|
37494
37368
|
flushAssistantMessage();
|
|
37495
37369
|
}
|
|
@@ -37549,7 +37423,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
37549
37423
|
break;
|
|
37550
37424
|
case "approval_batch": {
|
|
37551
37425
|
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
37552
|
-
(c) => _optionalChain([segment, 'access',
|
|
37426
|
+
(c) => _optionalChain([segment, 'access', _974 => _974.data, 'access', _975 => _975.executions, 'optionalAccess', _976 => _976[c.toolExecutionRequestId], 'optionalAccess', _977 => _977.status]) === "done"
|
|
37553
37427
|
);
|
|
37554
37428
|
if (segment.status !== "rejected" && !allDone) {
|
|
37555
37429
|
hasIncompleteState = true;
|
|
@@ -37593,7 +37467,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
|
|
|
37593
37467
|
|
|
37594
37468
|
// node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
|
|
37595
37469
|
|
|
37596
|
-
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess',
|
|
37470
|
+
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess', _978 => _978.document]) ? React108.useLayoutEffect : () => {
|
|
37597
37471
|
};
|
|
37598
37472
|
|
|
37599
37473
|
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
@@ -37631,7 +37505,7 @@ function useControllableState({
|
|
|
37631
37505
|
if (isControlled) {
|
|
37632
37506
|
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
37633
37507
|
if (value2 !== prop) {
|
|
37634
|
-
_optionalChain([onChangeRef, 'access',
|
|
37508
|
+
_optionalChain([onChangeRef, 'access', _979 => _979.current, 'optionalCall', _980 => _980(value2)]);
|
|
37635
37509
|
}
|
|
37636
37510
|
} else {
|
|
37637
37511
|
setUncontrolledProp(nextValue);
|
|
@@ -37653,7 +37527,7 @@ function useUncontrolledState({
|
|
|
37653
37527
|
}, [onChange]);
|
|
37654
37528
|
React109.useEffect(() => {
|
|
37655
37529
|
if (prevValueRef.current !== value) {
|
|
37656
|
-
_optionalChain([onChangeRef, 'access',
|
|
37530
|
+
_optionalChain([onChangeRef, 'access', _981 => _981.current, 'optionalCall', _982 => _982(value)]);
|
|
37657
37531
|
prevValueRef.current = value;
|
|
37658
37532
|
}
|
|
37659
37533
|
}, [value, prevValueRef]);
|
|
@@ -37782,7 +37656,7 @@ function SourceChip({
|
|
|
37782
37656
|
onClose,
|
|
37783
37657
|
onDiscuss
|
|
37784
37658
|
}) {
|
|
37785
|
-
const runtime =
|
|
37659
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
37786
37660
|
const cta = resolveSourceRowCTA(
|
|
37787
37661
|
{
|
|
37788
37662
|
sourceRepo: src.sourceRepo,
|
|
@@ -38008,7 +37882,7 @@ function EmbeddableChatInner({
|
|
|
38008
37882
|
onActiveModeChange,
|
|
38009
37883
|
defaultActiveMode
|
|
38010
37884
|
}) {
|
|
38011
|
-
const runtime =
|
|
37885
|
+
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
38012
37886
|
const source = runtime.source;
|
|
38013
37887
|
const commandsUrl = runtime.endpoints.commandsUrl;
|
|
38014
37888
|
const { attachmentsEnabled, user: identityUser } = useChatIdentity();
|
|
@@ -38077,7 +37951,7 @@ function EmbeddableChatInner({
|
|
|
38077
37951
|
setCommandsById(map);
|
|
38078
37952
|
setCommandsLoaded(true);
|
|
38079
37953
|
}).catch((err) => {
|
|
38080
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
37954
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _983 => _983.name]) !== "AbortError") {
|
|
38081
37955
|
console.warn("[embeddable-chat] failed to fetch slash commands:", err);
|
|
38082
37956
|
setCommandsLoaded(true);
|
|
38083
37957
|
}
|
|
@@ -38101,7 +37975,7 @@ function EmbeddableChatInner({
|
|
|
38101
37975
|
}),
|
|
38102
37976
|
[commandsUrl]
|
|
38103
37977
|
);
|
|
38104
|
-
const userName = _optionalChain([identityUser, 'optionalAccess',
|
|
37978
|
+
const userName = _optionalChain([identityUser, 'optionalAccess', _984 => _984.firstName, 'optionalAccess', _985 => _985.trim, 'call', _986 => _986()]) || _optionalChain([identityUser, 'optionalAccess', _987 => _987.name, 'optionalAccess', _988 => _988.split, 'call', _989 => _989(" "), 'access', _990 => _990[0], 'optionalAccess', _991 => _991.trim, 'call', _992 => _992()]) || void 0;
|
|
38105
37979
|
const effectiveModes = _react.useMemo.call(void 0, () => {
|
|
38106
37980
|
if (modes) return modes;
|
|
38107
37981
|
const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
|
|
@@ -38115,7 +37989,7 @@ function EmbeddableChatInner({
|
|
|
38115
37989
|
if (controlledActiveMode === void 0) {
|
|
38116
37990
|
setUncontrolledActiveMode(next);
|
|
38117
37991
|
}
|
|
38118
|
-
_optionalChain([onActiveModeChange, 'optionalCall',
|
|
37992
|
+
_optionalChain([onActiveModeChange, 'optionalCall', _993 => _993(next)]);
|
|
38119
37993
|
},
|
|
38120
37994
|
[controlledActiveMode, onActiveModeChange]
|
|
38121
37995
|
);
|
|
@@ -38235,9 +38109,9 @@ function EmbeddableChatInner({
|
|
|
38235
38109
|
const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
|
|
38236
38110
|
const lastSources = _react.useMemo.call(void 0, () => {
|
|
38237
38111
|
if (chatLoading) return void 0;
|
|
38238
|
-
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
38112
|
+
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _994 => _994.sources]);
|
|
38239
38113
|
if (!sources || sources.length === 0) return void 0;
|
|
38240
|
-
const content = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
38114
|
+
const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _995 => _995.content]) || "";
|
|
38241
38115
|
const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
|
|
38242
38116
|
(m) => parseInt(m[1], 10)
|
|
38243
38117
|
);
|
|
@@ -39211,5 +39085,6 @@ function EmbeddableChatInner({
|
|
|
39211
39085
|
|
|
39212
39086
|
|
|
39213
39087
|
|
|
39214
|
-
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.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = 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.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; 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.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; 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.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.embedAuthedFetch = embedAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; 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.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.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.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.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.Header = Header2; 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.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
|
|
39215
|
-
//# sourceMappingURL=chunk-TWKPYZNQ.cjs.map
|
|
39088
|
+
|
|
39089
|
+
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.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = 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.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; 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.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; 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.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.embedAuthedFetch = embedAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.scrollElementIntoView = scrollElementIntoView; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; 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.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.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.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.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.Header = Header2; 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.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
|
|
39090
|
+
//# sourceMappingURL=chunk-ZDF6F7ED.cjs.map
|