@flamingo-stack/openframe-frontend-core 0.0.212 → 0.0.213
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-ZFBLC5GV.cjs → chunk-35XIT2CF.cjs} +17 -17
- package/dist/{chunk-ZFBLC5GV.cjs.map → chunk-35XIT2CF.cjs.map} +1 -1
- package/dist/{chunk-QKFBZLIR.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-5BNWGK6D.js → chunk-IK2X5YJU.js} +3 -3
- package/dist/{chunk-VTUIMMHO.cjs → chunk-OTKJASSX.cjs} +26 -26
- package/dist/{chunk-VTUIMMHO.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-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
- package/dist/chunk-WT5JV2GS.cjs.map +1 -0
- package/dist/{chunk-WI76ZUBE.cjs → chunk-ZDF6F7ED.cjs} +544 -678
- package/dist/chunk-ZDF6F7ED.cjs.map +1 -0
- package/dist/{chunk-3E5ANY55.js → chunk-ZTJVRSN5.js} +409 -543
- package/dist/{chunk-3E5ANY55.js.map → chunk-ZTJVRSN5.js.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 +5 -4
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +4 -3
- package/dist/components/contact/index.cjs +6 -5
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +5 -4
- package/dist/components/features/index.cjs +5 -4
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +4 -3
- 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/index.cjs +55 -54
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +7 -6
- 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 +5 -4
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +4 -3
- package/dist/components/tickets/index.cjs +66 -65
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +6 -5
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/index.cjs +5 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +4 -3
- 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 +5 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -3
- 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/package.json +1 -1
- 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/navigation/app-header.tsx +7 -9
- 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/dist/chunk-EH3RWVF3.cjs.map +0 -1
- package/dist/chunk-UYQOPC57.js.map +0 -1
- package/dist/chunk-WI76ZUBE.cjs.map +0 -1
- /package/dist/{chunk-QKFBZLIR.js.map → chunk-3JWIJJ44.js.map} +0 -0
- /package/dist/{chunk-5BNWGK6D.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');
|
|
@@ -142,6 +140,9 @@ var _chunkXQFFGR6Ucjs = require('./chunk-XQFFGR6U.cjs');
|
|
|
142
140
|
var _chunkP5EE2VJXcjs = require('./chunk-P5EE2VJX.cjs');
|
|
143
141
|
|
|
144
142
|
|
|
143
|
+
var _chunkXL4V2PYGcjs = require('./chunk-XL4V2PYG.cjs');
|
|
144
|
+
|
|
145
|
+
|
|
145
146
|
var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
|
|
146
147
|
|
|
147
148
|
|
|
@@ -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
|
{
|
|
@@ -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
|
|
@@ -18729,7 +18732,7 @@ function PlatformFilterComponent({
|
|
|
18729
18732
|
variant: selectedPlatform === platform.value ? "accent" : "outline",
|
|
18730
18733
|
size,
|
|
18731
18734
|
onClick: () => onPlatformChange(platform.value),
|
|
18732
|
-
leftIcon: showIcons ?
|
|
18735
|
+
leftIcon: showIcons ? _chunkWT5JV2GScjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
|
|
18733
18736
|
className: "text-h3",
|
|
18734
18737
|
children: platform.label
|
|
18735
18738
|
},
|
|
@@ -21489,7 +21492,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
|
|
|
21489
21492
|
};
|
|
21490
21493
|
var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
21491
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: [
|
|
21492
|
-
/* @__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 }) }),
|
|
21493
21496
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
|
|
21494
21497
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", title: policy.name, children: policy.name }),
|
|
21495
21498
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
|
|
@@ -21799,7 +21802,7 @@ function WaitlistForm({
|
|
|
21799
21802
|
const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
|
|
21800
21803
|
const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
|
|
21801
21804
|
const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
|
|
21802
|
-
const { toast } =
|
|
21805
|
+
const { toast } = _chunkWT5JV2GScjs.useToast.call(void 0, );
|
|
21803
21806
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
21804
21807
|
const [isClient, setIsClient] = _react.useState.call(void 0, false);
|
|
21805
21808
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
@@ -21971,12 +21974,48 @@ function WaitlistForm({
|
|
|
21971
21974
|
|
|
21972
21975
|
|
|
21973
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
|
+
}
|
|
21974
21987
|
function reducer(state, action) {
|
|
21975
21988
|
switch (action.type) {
|
|
21976
21989
|
case "add": {
|
|
21977
|
-
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];
|
|
21978
21996
|
return next.length > action.max ? next.slice(0, action.max) : next;
|
|
21979
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
|
+
}
|
|
21980
22019
|
case "markRead":
|
|
21981
22020
|
return state.map((n) => n.id === action.id ? { ...n, read: true } : n);
|
|
21982
22021
|
case "markAllRead":
|
|
@@ -22003,11 +22042,16 @@ function NotificationsProvider({
|
|
|
22003
22042
|
maxNotifications = 50,
|
|
22004
22043
|
defaultShowPopups = true,
|
|
22005
22044
|
onShowPopupsChange,
|
|
22006
|
-
onHistoryClick
|
|
22045
|
+
onHistoryClick,
|
|
22046
|
+
actions
|
|
22007
22047
|
}) {
|
|
22008
22048
|
const [notifications, dispatch] = React73.useReducer(reducer, initialNotifications);
|
|
22009
22049
|
const [isOpen, setIsOpen] = React73.useState(false);
|
|
22010
22050
|
const [showPopups, setShowPopupsState] = React73.useState(defaultShowPopups);
|
|
22051
|
+
const actionsRef = React73.useRef(actions);
|
|
22052
|
+
React73.useEffect(() => {
|
|
22053
|
+
actionsRef.current = actions;
|
|
22054
|
+
}, [actions]);
|
|
22011
22055
|
const addNotification = React73.useCallback(
|
|
22012
22056
|
(input) => {
|
|
22013
22057
|
const id = _nullishCoalesce(input.id, () => ( generateId()));
|
|
@@ -22015,17 +22059,45 @@ function NotificationsProvider({
|
|
|
22015
22059
|
...input,
|
|
22016
22060
|
id,
|
|
22017
22061
|
createdAt: _nullishCoalesce(input.createdAt, () => ( Date.now())),
|
|
22018
|
-
read: false
|
|
22062
|
+
read: _nullishCoalesce(input.read, () => ( false))
|
|
22019
22063
|
};
|
|
22020
22064
|
dispatch({ type: "add", notification, max: maxNotifications });
|
|
22021
22065
|
return id;
|
|
22022
22066
|
},
|
|
22023
22067
|
[maxNotifications]
|
|
22024
22068
|
);
|
|
22025
|
-
const
|
|
22026
|
-
|
|
22027
|
-
|
|
22028
|
-
|
|
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
|
+
}, []);
|
|
22029
22101
|
const clear = React73.useCallback(() => dispatch({ type: "clear" }), []);
|
|
22030
22102
|
const open = React73.useCallback(() => setIsOpen(true), []);
|
|
22031
22103
|
const close = React73.useCallback(() => setIsOpen(false), []);
|
|
@@ -22033,7 +22105,7 @@ function NotificationsProvider({
|
|
|
22033
22105
|
const setShowPopups = React73.useCallback(
|
|
22034
22106
|
(value2) => {
|
|
22035
22107
|
setShowPopupsState(value2);
|
|
22036
|
-
_optionalChain([onShowPopupsChange, 'optionalCall',
|
|
22108
|
+
_optionalChain([onShowPopupsChange, 'optionalCall', _387 => _387(value2)]);
|
|
22037
22109
|
},
|
|
22038
22110
|
[onShowPopupsChange]
|
|
22039
22111
|
);
|
|
@@ -22048,6 +22120,8 @@ function NotificationsProvider({
|
|
|
22048
22120
|
isOpen,
|
|
22049
22121
|
showPopups,
|
|
22050
22122
|
addNotification,
|
|
22123
|
+
upsertNotification,
|
|
22124
|
+
setNotifications,
|
|
22051
22125
|
markRead,
|
|
22052
22126
|
markAllRead,
|
|
22053
22127
|
markSettled,
|
|
@@ -22065,6 +22139,8 @@ function NotificationsProvider({
|
|
|
22065
22139
|
isOpen,
|
|
22066
22140
|
showPopups,
|
|
22067
22141
|
addNotification,
|
|
22142
|
+
upsertNotification,
|
|
22143
|
+
setNotifications,
|
|
22068
22144
|
markRead,
|
|
22069
22145
|
markAllRead,
|
|
22070
22146
|
markSettled,
|
|
@@ -22114,7 +22190,7 @@ function NotificationTile({
|
|
|
22114
22190
|
if (!isLive) return;
|
|
22115
22191
|
const remaining = Math.max(0, liveDurationMs - initialElapsed);
|
|
22116
22192
|
const timer = window.setTimeout(() => {
|
|
22117
|
-
_optionalChain([onSettle, 'optionalCall',
|
|
22193
|
+
_optionalChain([onSettle, 'optionalCall', _388 => _388(id)]);
|
|
22118
22194
|
}, remaining);
|
|
22119
22195
|
return () => window.clearTimeout(timer);
|
|
22120
22196
|
}, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
|
|
@@ -22127,7 +22203,7 @@ function NotificationTile({
|
|
|
22127
22203
|
),
|
|
22128
22204
|
children: [
|
|
22129
22205
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
|
|
22130
|
-
/* @__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]) }) }),
|
|
22131
22207
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
22132
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,
|
|
22133
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
|
|
@@ -22152,7 +22228,7 @@ function NotificationTile({
|
|
|
22152
22228
|
"button",
|
|
22153
22229
|
{
|
|
22154
22230
|
type: "button",
|
|
22155
|
-
onClick: () => _optionalChain([onSettle, 'optionalCall',
|
|
22231
|
+
onClick: () => _optionalChain([onSettle, 'optionalCall', _389 => _389(id)]),
|
|
22156
22232
|
"aria-label": "Dismiss notification",
|
|
22157
22233
|
tabIndex: isLive ? 0 : -1,
|
|
22158
22234
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
@@ -22168,7 +22244,7 @@ function NotificationTile({
|
|
|
22168
22244
|
"aria-hidden": true,
|
|
22169
22245
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
22170
22246
|
"absolute inset-x-0 -bottom-px h-1 origin-left",
|
|
22171
|
-
|
|
22247
|
+
_chunkWT5JV2GScjs.progressColorByVariant[variant]
|
|
22172
22248
|
),
|
|
22173
22249
|
style: {
|
|
22174
22250
|
animation: `toast-progress ${liveDurationMs}ms linear forwards`,
|
|
@@ -22436,15 +22512,15 @@ function TicketCard({
|
|
|
22436
22512
|
transform: _utilities.CSS.Transform.toString(sortable.transform),
|
|
22437
22513
|
transition: sortable.transition
|
|
22438
22514
|
};
|
|
22439
|
-
const showDeviceRow = !!(_optionalChain([ticket, 'access',
|
|
22515
|
+
const showDeviceRow = !!(_optionalChain([ticket, 'access', _390 => _390.deviceHostnames, 'optionalAccess', _391 => _391.length]) || ticket.organizationName);
|
|
22440
22516
|
const deviceText = [
|
|
22441
|
-
_optionalChain([ticket, 'access',
|
|
22517
|
+
_optionalChain([ticket, 'access', _392 => _392.deviceHostnames, 'optionalAccess', _393 => _393.join, 'call', _394 => _394(", ")]),
|
|
22442
22518
|
ticket.organizationName
|
|
22443
22519
|
].filter(Boolean).join(", ");
|
|
22444
22520
|
const handleClick = (e) => {
|
|
22445
22521
|
if (sortable.isDragging) e.preventDefault();
|
|
22446
22522
|
};
|
|
22447
|
-
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access',
|
|
22523
|
+
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _395 => _395.assignees, 'optionalAccess', _396 => _396.length]) || renderAssignSlot);
|
|
22448
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: [
|
|
22449
22525
|
ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22450
22526
|
_chunk65CPJ4SXcjs.Flag02Icon,
|
|
@@ -22453,7 +22529,7 @@ function TicketCard({
|
|
|
22453
22529
|
"aria-label": `Priority: ${ticket.priority}`
|
|
22454
22530
|
}
|
|
22455
22531
|
),
|
|
22456
|
-
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: [
|
|
22457
22533
|
ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22458
22534
|
SquareAvatar,
|
|
22459
22535
|
{
|
|
@@ -22482,7 +22558,7 @@ function TicketCard({
|
|
|
22482
22558
|
] }),
|
|
22483
22559
|
rightSection
|
|
22484
22560
|
] }),
|
|
22485
|
-
_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
|
|
22486
22562
|
] });
|
|
22487
22563
|
const cardClasses = _chunk664KA5FIcjs.cn.call(void 0,
|
|
22488
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",
|
|
@@ -22655,7 +22731,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
|
|
|
22655
22731
|
const observer = new IntersectionObserver(
|
|
22656
22732
|
(entries) => {
|
|
22657
22733
|
if (entries.some((e) => e.isIntersecting)) {
|
|
22658
|
-
_optionalChain([loadMoreRef, 'access',
|
|
22734
|
+
_optionalChain([loadMoreRef, 'access', _401 => _401.current, 'optionalCall', _402 => _402(columnIdRef.current)]);
|
|
22659
22735
|
}
|
|
22660
22736
|
},
|
|
22661
22737
|
{ root, rootMargin: loadMoreRootMargin }
|
|
@@ -22684,7 +22760,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
|
|
|
22684
22760
|
{
|
|
22685
22761
|
ticket: t,
|
|
22686
22762
|
columnId: column.id,
|
|
22687
|
-
href: _optionalChain([getTicketHref, 'optionalCall',
|
|
22763
|
+
href: _optionalChain([getTicketHref, 'optionalCall', _403 => _403(t.id)]),
|
|
22688
22764
|
renderAssignSlot,
|
|
22689
22765
|
dragDisabled: column.dragDisabled
|
|
22690
22766
|
},
|
|
@@ -22716,7 +22792,7 @@ function EmptyState2() {
|
|
|
22716
22792
|
// src/components/features/board/use-board-collapse.ts
|
|
22717
22793
|
|
|
22718
22794
|
function useBoardCollapse(storageKey) {
|
|
22719
|
-
const [persisted, setPersisted] =
|
|
22795
|
+
const [persisted, setPersisted] = _chunkWT5JV2GScjs.useLocalStorage.call(void 0,
|
|
22720
22796
|
_nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
|
|
22721
22797
|
{}
|
|
22722
22798
|
);
|
|
@@ -22763,7 +22839,7 @@ function Board({
|
|
|
22763
22839
|
onThumbPointerDown,
|
|
22764
22840
|
onThumbPointerMove,
|
|
22765
22841
|
onThumbPointerUp
|
|
22766
|
-
} =
|
|
22842
|
+
} = _chunkWT5JV2GScjs.useHorizontalScrollbar.call(void 0, );
|
|
22767
22843
|
const [items, setItems] = React77.useState(columns);
|
|
22768
22844
|
const isDraggingRef = React77.useRef(false);
|
|
22769
22845
|
React77.useEffect(() => {
|
|
@@ -22779,17 +22855,17 @@ function Board({
|
|
|
22779
22855
|
const pointer = _core.pointerWithin.call(void 0, args);
|
|
22780
22856
|
const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
|
|
22781
22857
|
const ticketHit = intersections.find(
|
|
22782
|
-
(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"
|
|
22783
22859
|
);
|
|
22784
22860
|
if (ticketHit) return [ticketHit];
|
|
22785
22861
|
const columnHit = intersections.find(
|
|
22786
|
-
(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"
|
|
22787
22863
|
);
|
|
22788
22864
|
if (columnHit) {
|
|
22789
|
-
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]);
|
|
22790
22866
|
const ticketsInColumn = args.droppableContainers.filter((c) => {
|
|
22791
22867
|
const d = c.data.current;
|
|
22792
|
-
return _optionalChain([d, 'optionalAccess',
|
|
22868
|
+
return _optionalChain([d, 'optionalAccess', _419 => _419.type]) === "ticket" && d.columnId === columnId;
|
|
22793
22869
|
});
|
|
22794
22870
|
if (ticketsInColumn.length > 0) {
|
|
22795
22871
|
const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
|
|
@@ -22814,20 +22890,20 @@ function Board({
|
|
|
22814
22890
|
const overId = String(over.id);
|
|
22815
22891
|
if (activeId === overId) return;
|
|
22816
22892
|
const overData = over.data.current;
|
|
22817
|
-
const fromColumnId = _optionalChain([locate, 'call',
|
|
22818
|
-
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]);
|
|
22819
22895
|
if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
|
|
22820
22896
|
const origin = dragOriginRef.current;
|
|
22821
|
-
const isReturnToOrigin = _optionalChain([origin, 'optionalAccess',
|
|
22897
|
+
const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _423 => _423.fromColumnId]) === toColumnId;
|
|
22822
22898
|
const targetCol = items.find((c) => c.id === toColumnId);
|
|
22823
|
-
const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess',
|
|
22824
|
-
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;
|
|
22825
22901
|
setItems((prev) => {
|
|
22826
22902
|
const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
|
|
22827
22903
|
const toCol = prev.find((c) => c.id === toColumnId);
|
|
22828
22904
|
if (fromIndex < 0 || !toCol) return prev;
|
|
22829
22905
|
let toIndex;
|
|
22830
|
-
if (_optionalChain([overData, 'optionalAccess',
|
|
22906
|
+
if (_optionalChain([overData, 'optionalAccess', _426 => _426.type]) === "column") {
|
|
22831
22907
|
toIndex = toCol.tickets.length;
|
|
22832
22908
|
} else {
|
|
22833
22909
|
const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
|
|
@@ -22869,14 +22945,14 @@ function Board({
|
|
|
22869
22945
|
const toColumnId = located.columnId;
|
|
22870
22946
|
const isCrossColumn = origin.fromColumnId !== toColumnId;
|
|
22871
22947
|
const targetCol = items.find((c) => c.id === toColumnId);
|
|
22872
|
-
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))) {
|
|
22873
22949
|
setItems(columns);
|
|
22874
22950
|
return;
|
|
22875
22951
|
}
|
|
22876
22952
|
let finalIndex = located.index;
|
|
22877
|
-
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]), () => ( []));
|
|
22878
22954
|
const overData = over.data.current;
|
|
22879
|
-
if (_optionalChain([overData, 'optionalAccess',
|
|
22955
|
+
if (_optionalChain([overData, 'optionalAccess', _432 => _432.type]) === "ticket") {
|
|
22880
22956
|
const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
|
|
22881
22957
|
if (overIndex >= 0 && overIndex !== located.index) {
|
|
22882
22958
|
finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
|
|
@@ -22896,8 +22972,8 @@ function Board({
|
|
|
22896
22972
|
ticketId: origin.ticketId,
|
|
22897
22973
|
fromColumnId: origin.fromColumnId,
|
|
22898
22974
|
toColumnId,
|
|
22899
|
-
afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access',
|
|
22900
|
-
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))
|
|
22901
22977
|
});
|
|
22902
22978
|
};
|
|
22903
22979
|
const handleDragCancel = () => {
|
|
@@ -22926,8 +23002,8 @@ function Board({
|
|
|
22926
23002
|
children: items.map((column, i) => {
|
|
22927
23003
|
const prev = items[i - 1];
|
|
22928
23004
|
const next = items[i + 1];
|
|
22929
|
-
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess',
|
|
22930
|
-
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]));
|
|
22931
23007
|
const showGap = i > 0 && !joinLeft;
|
|
22932
23008
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React77.Fragment, { children: [
|
|
22933
23009
|
showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
|
|
@@ -22985,7 +23061,7 @@ function locate(cols, ticketId) {
|
|
|
22985
23061
|
return null;
|
|
22986
23062
|
}
|
|
22987
23063
|
function findIndexInColumn(cols, columnId, ticketId) {
|
|
22988
|
-
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));
|
|
22989
23065
|
}
|
|
22990
23066
|
|
|
22991
23067
|
// src/components/features/board/types.ts
|
|
@@ -23174,7 +23250,7 @@ function Header2({ config, platform }) {
|
|
|
23174
23250
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
23175
23251
|
"flex justify-start w-full",
|
|
23176
23252
|
"font-bold text-[16px] leading-none tracking-[-0.32px]",
|
|
23177
|
-
index < (_nullishCoalesce(_optionalChain([item, 'access',
|
|
23253
|
+
index < (_nullishCoalesce(_optionalChain([item, 'access', _444 => _444.children, 'optionalAccess', _445 => _445.length]), () => ( 0))) - 1 && "mb-1",
|
|
23178
23254
|
"text-ods-text-primary",
|
|
23179
23255
|
// All dropdown items use primary text color
|
|
23180
23256
|
child.isActive && "bg-ods-bg-hover"
|
|
@@ -23266,7 +23342,7 @@ function Header2({ config, platform }) {
|
|
|
23266
23342
|
style: config.style,
|
|
23267
23343
|
children: [
|
|
23268
23344
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
|
|
23269
|
-
_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 }),
|
|
23270
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 })
|
|
23271
23347
|
] }),
|
|
23272
23348
|
config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -23283,7 +23359,7 @@ function Header2({ config, platform }) {
|
|
|
23283
23359
|
}
|
|
23284
23360
|
),
|
|
23285
23361
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
|
|
23286
|
-
_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 }),
|
|
23287
23363
|
config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23288
23364
|
_chunkUXZ3ZJ3Mcjs.Button,
|
|
23289
23365
|
{
|
|
@@ -23291,10 +23367,10 @@ function Header2({ config, platform }) {
|
|
|
23291
23367
|
size: "icon",
|
|
23292
23368
|
className: "flex md:hidden",
|
|
23293
23369
|
onClick: () => {
|
|
23294
|
-
_optionalChain([config, 'access',
|
|
23370
|
+
_optionalChain([config, 'access', _450 => _450.mobile, 'optionalAccess', _451 => _451.onToggle, 'optionalCall', _452 => _452()]);
|
|
23295
23371
|
},
|
|
23296
|
-
"aria-label": _optionalChain([config, 'access',
|
|
23297
|
-
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, {})
|
|
23298
23374
|
}
|
|
23299
23375
|
)
|
|
23300
23376
|
] })
|
|
@@ -23311,10 +23387,10 @@ function Header2({ config, platform }) {
|
|
|
23311
23387
|
// src/components/navigation/header-skeleton.tsx
|
|
23312
23388
|
|
|
23313
23389
|
function HeaderSkeleton({ config }) {
|
|
23314
|
-
const showNavigation = _optionalChain([config, 'optionalAccess',
|
|
23315
|
-
const showActions = _optionalChain([config, 'optionalAccess',
|
|
23316
|
-
const showMobileMenu = _optionalChain([config, 'optionalAccess',
|
|
23317
|
-
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")]);
|
|
23318
23394
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
23319
23395
|
"header",
|
|
23320
23396
|
{
|
|
@@ -23323,11 +23399,11 @@ function HeaderSkeleton({ config }) {
|
|
|
23323
23399
|
"bg-ods-card border-b border-ods-border backdrop-blur-sm",
|
|
23324
23400
|
"px-6 py-3",
|
|
23325
23401
|
"transition-opacity duration-300 ease-in-out",
|
|
23326
|
-
_optionalChain([config, 'optionalAccess',
|
|
23402
|
+
_optionalChain([config, 'optionalAccess', _465 => _465.className])
|
|
23327
23403
|
),
|
|
23328
23404
|
children: [
|
|
23329
23405
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
|
|
23330
|
-
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" }) }),
|
|
23331
23407
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
23332
23408
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
|
|
23333
23409
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
|
|
@@ -23335,8 +23411,8 @@ function HeaderSkeleton({ config }) {
|
|
|
23335
23411
|
] }),
|
|
23336
23412
|
showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
23337
23413
|
"hidden md:flex items-center gap-2",
|
|
23338
|
-
_optionalChain([config, 'optionalAccess',
|
|
23339
|
-
_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"
|
|
23340
23416
|
), children: [
|
|
23341
23417
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
|
|
23342
23418
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
|
|
@@ -23384,7 +23460,7 @@ function MobileNavPanel({ isOpen, config }) {
|
|
|
23384
23460
|
_react.useEffect.call(void 0, () => {
|
|
23385
23461
|
const handleKeyDown = (e) => {
|
|
23386
23462
|
if (e.key === "Escape" && isOpen) {
|
|
23387
|
-
_optionalChain([config, 'access',
|
|
23463
|
+
_optionalChain([config, 'access', _472 => _472.onClose, 'optionalCall', _473 => _473()]);
|
|
23388
23464
|
}
|
|
23389
23465
|
};
|
|
23390
23466
|
if (isOpen) {
|
|
@@ -23401,7 +23477,7 @@ function MobileNavPanel({ isOpen, config }) {
|
|
|
23401
23477
|
if (item.onClick) {
|
|
23402
23478
|
item.onClick();
|
|
23403
23479
|
}
|
|
23404
|
-
_optionalChain([config, 'access',
|
|
23480
|
+
_optionalChain([config, 'access', _474 => _474.onClose, 'optionalCall', _475 => _475()]);
|
|
23405
23481
|
};
|
|
23406
23482
|
if (item.href) {
|
|
23407
23483
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -23619,7 +23695,7 @@ function SlidingSidebar({ config }) {
|
|
|
23619
23695
|
variant: "transparent",
|
|
23620
23696
|
size: "default",
|
|
23621
23697
|
onClick: () => {
|
|
23622
|
-
_optionalChain([item, 'access',
|
|
23698
|
+
_optionalChain([item, 'access', _476 => _476.onClick, 'optionalCall', _477 => _477()]);
|
|
23623
23699
|
config.onClose();
|
|
23624
23700
|
},
|
|
23625
23701
|
leftIcon: item.icon,
|
|
@@ -23642,7 +23718,7 @@ function SlidingSidebar({ config }) {
|
|
|
23642
23718
|
variant: "transparent",
|
|
23643
23719
|
size: "default",
|
|
23644
23720
|
onClick: () => {
|
|
23645
|
-
_optionalChain([item, 'access',
|
|
23721
|
+
_optionalChain([item, 'access', _478 => _478.onClick, 'optionalCall', _479 => _479()]);
|
|
23646
23722
|
config.onClose();
|
|
23647
23723
|
},
|
|
23648
23724
|
leftIcon: item.icon,
|
|
@@ -23769,7 +23845,7 @@ function StickySectionNav({
|
|
|
23769
23845
|
] });
|
|
23770
23846
|
}
|
|
23771
23847
|
function useSectionNavigation(sections, options) {
|
|
23772
|
-
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]) || "");
|
|
23773
23849
|
const isScrollingFromClick = _react.useRef.call(void 0, false);
|
|
23774
23850
|
const { offset: offset2 = 100 } = options || {};
|
|
23775
23851
|
const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
|
|
@@ -23793,7 +23869,7 @@ function useSectionNavigation(sections, options) {
|
|
|
23793
23869
|
const handleScroll = () => {
|
|
23794
23870
|
if (isScrollingFromClick.current) return;
|
|
23795
23871
|
const scrollPosition = window.scrollY + offset2 + 50;
|
|
23796
|
-
let currentSection = _optionalChain([sections, 'access',
|
|
23872
|
+
let currentSection = _optionalChain([sections, 'access', _482 => _482[0], 'optionalAccess', _483 => _483.id]) || "";
|
|
23797
23873
|
for (let i = sections.length - 1; i >= 0; i--) {
|
|
23798
23874
|
const element = document.getElementById(sections[i].id);
|
|
23799
23875
|
if (element && scrollPosition >= element.offsetTop) {
|
|
@@ -23967,10 +24043,10 @@ var MINIMIZED_WIDTH = 56;
|
|
|
23967
24043
|
var EXPANDED_WIDTH = 224;
|
|
23968
24044
|
var STORAGE_KEY = "of.navigationSidebar.minimized";
|
|
23969
24045
|
function NavigationSidebar({ config, disabled = false }) {
|
|
23970
|
-
const isMdUp = _nullishCoalesce(
|
|
23971
|
-
const isLgUp = _nullishCoalesce(
|
|
24046
|
+
const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( false));
|
|
24047
|
+
const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
|
|
23972
24048
|
const isTablet = isMdUp && !isLgUp;
|
|
23973
|
-
const [desktopMinimized, setDesktopMinimized] =
|
|
24049
|
+
const [desktopMinimized, setDesktopMinimized] = _chunkWT5JV2GScjs.useLocalStorage.call(void 0,
|
|
23974
24050
|
STORAGE_KEY,
|
|
23975
24051
|
_nullishCoalesce(config.minimized, () => ( false))
|
|
23976
24052
|
);
|
|
@@ -23988,7 +24064,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
23988
24064
|
} else {
|
|
23989
24065
|
setDesktopMinimized((prev) => !prev);
|
|
23990
24066
|
}
|
|
23991
|
-
_optionalChain([config, 'access',
|
|
24067
|
+
_optionalChain([config, 'access', _484 => _484.onToggleMinimized, 'optionalCall', _485 => _485()]);
|
|
23992
24068
|
}, [isTablet, setDesktopMinimized, config]);
|
|
23993
24069
|
const closeOverlay = _react.useCallback.call(void 0, () => {
|
|
23994
24070
|
setTabletMinimized(true);
|
|
@@ -24002,11 +24078,11 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
24002
24078
|
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
24003
24079
|
}, [isOverlayOpen, closeOverlay]);
|
|
24004
24080
|
const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
|
|
24005
|
-
_optionalChain([event, 'optionalAccess',
|
|
24081
|
+
_optionalChain([event, 'optionalAccess', _486 => _486.stopPropagation, 'call', _487 => _487()]);
|
|
24006
24082
|
if (item.onClick) {
|
|
24007
24083
|
item.onClick();
|
|
24008
24084
|
} else if (item.path) {
|
|
24009
|
-
_optionalChain([config, 'access',
|
|
24085
|
+
_optionalChain([config, 'access', _488 => _488.onNavigate, 'optionalCall', _489 => _489(item.path)]);
|
|
24010
24086
|
}
|
|
24011
24087
|
if (isTablet) setTabletMinimized(true);
|
|
24012
24088
|
}, [config, isTablet]);
|
|
@@ -24151,11 +24227,11 @@ function HeaderGlobalSearch({
|
|
|
24151
24227
|
};
|
|
24152
24228
|
const handleSubmit = (e) => {
|
|
24153
24229
|
e.preventDefault();
|
|
24154
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
24230
|
+
_optionalChain([onSubmit, 'optionalCall', _490 => _490(currentValue)]);
|
|
24155
24231
|
};
|
|
24156
24232
|
const handleKeyDown = (e) => {
|
|
24157
24233
|
if (e.key === "Enter") {
|
|
24158
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
24234
|
+
_optionalChain([onSubmit, 'optionalCall', _491 => _491(currentValue)]);
|
|
24159
24235
|
}
|
|
24160
24236
|
};
|
|
24161
24237
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -24201,8 +24277,8 @@ function HeaderOrganizationFilter({
|
|
|
24201
24277
|
className
|
|
24202
24278
|
}) {
|
|
24203
24279
|
const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
|
|
24204
|
-
const displayName = _optionalChain([selectedOrg, 'optionalAccess',
|
|
24205
|
-
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));
|
|
24206
24282
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenu, { children: [
|
|
24207
24283
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24208
24284
|
"button",
|
|
@@ -24227,11 +24303,11 @@ function HeaderOrganizationFilter({
|
|
|
24227
24303
|
}
|
|
24228
24304
|
) }),
|
|
24229
24305
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
|
|
24230
|
-
/* @__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" }),
|
|
24231
24307
|
organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24232
24308
|
_chunkUXZ3ZJ3Mcjs.DropdownMenuItem,
|
|
24233
24309
|
{
|
|
24234
|
-
onClick: () => _optionalChain([onOrgChange, 'optionalCall',
|
|
24310
|
+
onClick: () => _optionalChain([onOrgChange, 'optionalCall', _495 => _495(org.id)]),
|
|
24235
24311
|
children: org.name
|
|
24236
24312
|
},
|
|
24237
24313
|
org.id
|
|
@@ -24262,7 +24338,7 @@ var AppHeader = React92.default.memo(function AppHeader2({
|
|
|
24262
24338
|
onToggleMobileMenu,
|
|
24263
24339
|
disabled = false
|
|
24264
24340
|
}) {
|
|
24265
|
-
const isMdUp = _nullishCoalesce(
|
|
24341
|
+
const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( false));
|
|
24266
24342
|
const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
|
|
24267
24343
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24268
24344
|
"header",
|
|
@@ -24403,16 +24479,20 @@ function NotificationsHeaderButton({
|
|
|
24403
24479
|
dimmedClass
|
|
24404
24480
|
}) {
|
|
24405
24481
|
const ctx = useOptionalNotifications();
|
|
24406
|
-
const
|
|
24407
|
-
const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
24408
|
-
const onClick = _optionalChain([ctx, 'optionalAccess',
|
|
24409
|
-
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]);
|
|
24410
24485
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24411
24486
|
HeaderButton,
|
|
24412
24487
|
{
|
|
24413
|
-
icon: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative w-
|
|
24414
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24415
|
-
|
|
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
|
+
)
|
|
24416
24496
|
] }),
|
|
24417
24497
|
"aria-label": "Notifications",
|
|
24418
24498
|
onClick,
|
|
@@ -24465,7 +24545,7 @@ var MobileBurgerMenu = React92.default.memo(function MobileBurgerMenu2({
|
|
|
24465
24545
|
if (item.onClick) {
|
|
24466
24546
|
item.onClick();
|
|
24467
24547
|
} else if (item.path) {
|
|
24468
|
-
_optionalChain([config, 'access',
|
|
24548
|
+
_optionalChain([config, 'access', _499 => _499.onNavigate, 'optionalCall', _500 => _500(item.path)]);
|
|
24469
24549
|
}
|
|
24470
24550
|
onClose();
|
|
24471
24551
|
}, [config, onClose]);
|
|
@@ -24761,7 +24841,7 @@ var ToolBadge = ({
|
|
|
24761
24841
|
}) => {
|
|
24762
24842
|
const label = getToolLabel(toolType);
|
|
24763
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: [
|
|
24764
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24844
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
|
|
24765
24845
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
|
|
24766
24846
|
] });
|
|
24767
24847
|
};
|
|
@@ -24809,7 +24889,7 @@ var ShellTypeBadge = ({
|
|
|
24809
24889
|
className,
|
|
24810
24890
|
iconClassName
|
|
24811
24891
|
}) => {
|
|
24812
|
-
const normalizedType = _optionalChain([shellType, 'optionalAccess',
|
|
24892
|
+
const normalizedType = _optionalChain([shellType, 'optionalAccess', _501 => _501.toUpperCase, 'call', _502 => _502()]);
|
|
24813
24893
|
const label = getShellLabel(normalizedType);
|
|
24814
24894
|
const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
|
|
24815
24895
|
const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
|
|
@@ -25133,7 +25213,7 @@ function OnboardingWalkthrough({
|
|
|
25133
25213
|
isStepSkipped,
|
|
25134
25214
|
allStepsComplete,
|
|
25135
25215
|
markMultipleComplete
|
|
25136
|
-
} =
|
|
25216
|
+
} = _chunkWT5JV2GScjs.useOnboardingState.call(void 0, storageKey);
|
|
25137
25217
|
const hasAutoMarkedRef = _react.useRef.call(void 0, false);
|
|
25138
25218
|
const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
|
|
25139
25219
|
const lastCompletionStatusRef = _react.useRef.call(void 0, null);
|
|
@@ -25196,12 +25276,12 @@ function OnboardingWalkthrough({
|
|
|
25196
25276
|
}
|
|
25197
25277
|
}, [state.completedSteps, markComplete]);
|
|
25198
25278
|
const handleStepSkip = (step) => {
|
|
25199
|
-
_optionalChain([step, 'access',
|
|
25279
|
+
_optionalChain([step, 'access', _503 => _503.onSkip, 'optionalCall', _504 => _504()]);
|
|
25200
25280
|
markSkipped(step.id);
|
|
25201
25281
|
};
|
|
25202
25282
|
const handleDismiss = () => {
|
|
25203
25283
|
dismissOnboarding();
|
|
25204
|
-
_optionalChain([onDismiss, 'optionalCall',
|
|
25284
|
+
_optionalChain([onDismiss, 'optionalCall', _505 => _505()]);
|
|
25205
25285
|
};
|
|
25206
25286
|
if (state.dismissed) {
|
|
25207
25287
|
return null;
|
|
@@ -25331,7 +25411,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
25331
25411
|
onKeyDown: (e) => {
|
|
25332
25412
|
if (e.key === "Enter" || e.key === " ") {
|
|
25333
25413
|
e.preventDefault();
|
|
25334
|
-
_optionalChain([onClick, 'optionalCall',
|
|
25414
|
+
_optionalChain([onClick, 'optionalCall', _506 => _506()]);
|
|
25335
25415
|
}
|
|
25336
25416
|
},
|
|
25337
25417
|
children: [
|
|
@@ -25340,7 +25420,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
25340
25420
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
|
|
25341
25421
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
25342
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) }),
|
|
25343
|
-
log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25423
|
+
log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType: log.toolType, size: 16 })
|
|
25344
25424
|
] })
|
|
25345
25425
|
] })
|
|
25346
25426
|
]
|
|
@@ -25432,7 +25512,7 @@ var LogsList = React88.forwardRef(({
|
|
|
25432
25512
|
log,
|
|
25433
25513
|
isLast: index === logs.length - 1,
|
|
25434
25514
|
showConnector,
|
|
25435
|
-
onClick: () => _optionalChain([onLogClick, 'optionalCall',
|
|
25515
|
+
onClick: () => _optionalChain([onLogClick, 'optionalCall', _507 => _507(log)])
|
|
25436
25516
|
},
|
|
25437
25517
|
log.id
|
|
25438
25518
|
))
|
|
@@ -25477,7 +25557,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
|
|
|
25477
25557
|
}
|
|
25478
25558
|
function ServiceCardRowItem({ row }) {
|
|
25479
25559
|
const [revealed, setRevealed] = _react.useState.call(void 0, false);
|
|
25480
|
-
const { copy, copied } =
|
|
25560
|
+
const { copy, copied } = _chunkWT5JV2GScjs.useCopyToClipboard.call(void 0, );
|
|
25481
25561
|
const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
|
|
25482
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 });
|
|
25483
25563
|
const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
|
|
@@ -25533,7 +25613,7 @@ var Slider = React90.forwardRef(
|
|
|
25533
25613
|
({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
|
|
25534
25614
|
const handleChange = (e) => {
|
|
25535
25615
|
const newValue = [Number(e.target.value)];
|
|
25536
|
-
_optionalChain([onValueChange, 'optionalCall',
|
|
25616
|
+
_optionalChain([onValueChange, 'optionalCall', _508 => _508(newValue)]);
|
|
25537
25617
|
};
|
|
25538
25618
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25539
25619
|
"input",
|
|
@@ -25986,7 +26066,7 @@ function CursorPaginationSimple({
|
|
|
25986
26066
|
{
|
|
25987
26067
|
variant: "transparent",
|
|
25988
26068
|
size: "icon",
|
|
25989
|
-
onClick: () => _optionalChain([onPrevious, 'optionalCall',
|
|
26069
|
+
onClick: () => _optionalChain([onPrevious, 'optionalCall', _509 => _509("")]),
|
|
25990
26070
|
disabled: !hasPreviousPage || loading,
|
|
25991
26071
|
className: "h-8 w-8",
|
|
25992
26072
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
|
|
@@ -25998,7 +26078,7 @@ function CursorPaginationSimple({
|
|
|
25998
26078
|
{
|
|
25999
26079
|
variant: "transparent",
|
|
26000
26080
|
size: "icon",
|
|
26001
|
-
onClick: () => _optionalChain([onNext, 'optionalCall',
|
|
26081
|
+
onClick: () => _optionalChain([onNext, 'optionalCall', _510 => _510("")]),
|
|
26002
26082
|
disabled: !hasNextPage || loading,
|
|
26003
26083
|
className: "h-8 w-8",
|
|
26004
26084
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
|
|
@@ -26058,7 +26138,7 @@ function TableColumnFilterDropdown({
|
|
|
26058
26138
|
placement = "bottom-start",
|
|
26059
26139
|
dropdownClassName = "min-w-[240px]"
|
|
26060
26140
|
}) {
|
|
26061
|
-
const activeCount = _optionalChain([filters, 'optionalAccess',
|
|
26141
|
+
const activeCount = _optionalChain([filters, 'optionalAccess', _511 => _511[columnKey], 'optionalAccess', _512 => _512.length]) || 0;
|
|
26062
26142
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26063
26143
|
FiltersDropdown,
|
|
26064
26144
|
{
|
|
@@ -26101,7 +26181,7 @@ function TableColumnFilterDropdown({
|
|
|
26101
26181
|
delete newFilters[columnKey];
|
|
26102
26182
|
onFilterChange(newFilters);
|
|
26103
26183
|
},
|
|
26104
|
-
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess',
|
|
26184
|
+
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _513 => _513[columnKey]]) || [] },
|
|
26105
26185
|
placement,
|
|
26106
26186
|
dropdownClassName
|
|
26107
26187
|
}
|
|
@@ -26176,7 +26256,7 @@ function TableHeader({
|
|
|
26176
26256
|
}
|
|
26177
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" });
|
|
26178
26258
|
};
|
|
26179
|
-
const isLgUp = _nullishCoalesce(
|
|
26259
|
+
const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
|
|
26180
26260
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
26181
26261
|
"div",
|
|
26182
26262
|
{
|
|
@@ -26398,7 +26478,7 @@ function TableRow({
|
|
|
26398
26478
|
const keys = column.key.split(".");
|
|
26399
26479
|
let value = item;
|
|
26400
26480
|
for (const key of keys) {
|
|
26401
|
-
value = _optionalChain([value, 'optionalAccess',
|
|
26481
|
+
value = _optionalChain([value, 'optionalAccess', _514 => _514[key]]);
|
|
26402
26482
|
}
|
|
26403
26483
|
if (value === null || value === void 0) {
|
|
26404
26484
|
return "-";
|
|
@@ -26468,7 +26548,7 @@ function TableRow({
|
|
|
26468
26548
|
// src/components/ui/table/table.tsx
|
|
26469
26549
|
|
|
26470
26550
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
26471
|
-
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess',
|
|
26551
|
+
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _515 => _515.length])) || Boolean(renderRowActions);
|
|
26472
26552
|
const result = [...columns];
|
|
26473
26553
|
if (hasActions) {
|
|
26474
26554
|
const actionsColumn = {
|
|
@@ -26562,7 +26642,7 @@ function Table({
|
|
|
26562
26642
|
return rowKey(item);
|
|
26563
26643
|
}
|
|
26564
26644
|
const key = item[rowKey];
|
|
26565
|
-
return _optionalChain([key, 'optionalAccess',
|
|
26645
|
+
return _optionalChain([key, 'optionalAccess', _516 => _516.toString, 'call', _517 => _517()]) || index.toString();
|
|
26566
26646
|
};
|
|
26567
26647
|
const getRowClassName = (item, index) => {
|
|
26568
26648
|
if (typeof rowClassName === "function") {
|
|
@@ -26596,23 +26676,23 @@ function Table({
|
|
|
26596
26676
|
const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
|
|
26597
26677
|
const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
|
|
26598
26678
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
26599
|
-
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess',
|
|
26600
|
-
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]);
|
|
26601
26681
|
_react.useEffect.call(void 0, () => {
|
|
26602
|
-
if (!_optionalChain([infiniteScroll, 'optionalAccess',
|
|
26682
|
+
if (!_optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
|
|
26603
26683
|
const sentinel = sentinelRef.current;
|
|
26604
26684
|
if (!sentinel) return;
|
|
26605
26685
|
const observer = new IntersectionObserver(
|
|
26606
26686
|
(entries) => {
|
|
26607
|
-
if (_optionalChain([entries, 'access',
|
|
26608
|
-
_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()]);
|
|
26609
26689
|
}
|
|
26610
26690
|
},
|
|
26611
26691
|
{ rootMargin: "200px" }
|
|
26612
26692
|
);
|
|
26613
26693
|
observer.observe(sentinel);
|
|
26614
26694
|
return () => observer.disconnect();
|
|
26615
|
-
}, [_optionalChain([infiniteScroll, 'optionalAccess',
|
|
26695
|
+
}, [_optionalChain([infiniteScroll, 'optionalAccess', _525 => _525.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _526 => _526.isFetchingNextPage])]);
|
|
26616
26696
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
|
|
26617
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: [
|
|
26618
26698
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
|
|
@@ -26683,7 +26763,7 @@ function Table({
|
|
|
26683
26763
|
},
|
|
26684
26764
|
getRowKey(item, index)
|
|
26685
26765
|
)),
|
|
26686
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
26766
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _527 => _527.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26687
26767
|
TableCardSkeleton,
|
|
26688
26768
|
{
|
|
26689
26769
|
columns,
|
|
@@ -26692,7 +26772,7 @@ function Table({
|
|
|
26692
26772
|
hasChevron: Boolean(rowHref)
|
|
26693
26773
|
}
|
|
26694
26774
|
),
|
|
26695
|
-
_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" }),
|
|
26696
26776
|
!infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
26697
26777
|
"div",
|
|
26698
26778
|
{
|
|
@@ -27050,7 +27130,7 @@ function QueryReportTable({
|
|
|
27050
27130
|
);
|
|
27051
27131
|
const handleExport = () => {
|
|
27052
27132
|
exportToCSV(data, columns, exportFilename);
|
|
27053
|
-
_optionalChain([onExport, 'optionalCall',
|
|
27133
|
+
_optionalChain([onExport, 'optionalCall', _529 => _529()]);
|
|
27054
27134
|
};
|
|
27055
27135
|
const tableMinWidth = columns.length * (columnWidth + 16);
|
|
27056
27136
|
const {
|
|
@@ -27066,7 +27146,7 @@ function QueryReportTable({
|
|
|
27066
27146
|
onThumbPointerDown,
|
|
27067
27147
|
onThumbPointerMove,
|
|
27068
27148
|
onThumbPointerUp
|
|
27069
|
-
} =
|
|
27149
|
+
} = _chunkWT5JV2GScjs.useHorizontalScrollbar.call(void 0, );
|
|
27070
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: [
|
|
27071
27151
|
!isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
|
|
27072
27152
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
|
|
@@ -27223,7 +27303,7 @@ function DataTableColumnFilter({
|
|
|
27223
27303
|
align = "left"
|
|
27224
27304
|
}) {
|
|
27225
27305
|
const currentValue = column.getFilterValue();
|
|
27226
|
-
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess',
|
|
27306
|
+
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _530 => _530.length]), () => ( 0));
|
|
27227
27307
|
const sections = _react.useMemo.call(void 0,
|
|
27228
27308
|
() => [
|
|
27229
27309
|
{
|
|
@@ -27297,13 +27377,13 @@ function DataTableHeader({
|
|
|
27297
27377
|
onSortChange
|
|
27298
27378
|
}) {
|
|
27299
27379
|
const table = useDataTableContext();
|
|
27300
|
-
const isLgUp = _nullishCoalesce(
|
|
27380
|
+
const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
|
|
27301
27381
|
const headerGroup = table.getHeaderGroups()[0];
|
|
27302
27382
|
if (!headerGroup) return null;
|
|
27303
27383
|
const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
|
|
27304
27384
|
if (header.isPlaceholder) return false;
|
|
27305
27385
|
if (isLgUp) return true;
|
|
27306
|
-
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]));
|
|
27307
27387
|
});
|
|
27308
27388
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27309
27389
|
"div",
|
|
@@ -27333,20 +27413,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
27333
27413
|
if (header.isPlaceholder) return null;
|
|
27334
27414
|
const column = header.column;
|
|
27335
27415
|
const meta = column.columnDef.meta;
|
|
27336
|
-
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess',
|
|
27337
|
-
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27338
|
-
const canSort = _optionalChain([meta, 'optionalAccess',
|
|
27339
|
-
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;
|
|
27340
27420
|
if (!isLgUp && !hasFilter) return null;
|
|
27341
27421
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27342
27422
|
"div",
|
|
27343
27423
|
{
|
|
27344
27424
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
27345
27425
|
"flex items-stretch",
|
|
27346
|
-
isLgUp && (_optionalChain([meta, 'optionalAccess',
|
|
27347
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27426
|
+
isLgUp && (_optionalChain([meta, 'optionalAccess', _539 => _539.width]) || "flex-1 min-w-0"),
|
|
27427
|
+
_optionalChain([meta, 'optionalAccess', _540 => _540.headerClassName]),
|
|
27348
27428
|
// Don't apply hide classes if column is filterable on tablet (keep filter accessible)
|
|
27349
|
-
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
27429
|
+
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _541 => _541.hideAt]))
|
|
27350
27430
|
),
|
|
27351
27431
|
children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27352
27432
|
DataTableColumnFilter,
|
|
@@ -27365,7 +27445,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
27365
27445
|
isLgUp && alignJustify(align),
|
|
27366
27446
|
canSort && "group cursor-pointer"
|
|
27367
27447
|
),
|
|
27368
|
-
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall',
|
|
27448
|
+
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _542 => _542(column.id)]) : void 0,
|
|
27369
27449
|
children: [
|
|
27370
27450
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
|
|
27371
27451
|
canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
|
|
@@ -27449,7 +27529,7 @@ function DataTableSkeleton({
|
|
|
27449
27529
|
}) {
|
|
27450
27530
|
const table = useDataTableContext();
|
|
27451
27531
|
const columns = table.getVisibleFlatColumns();
|
|
27452
|
-
const firstColumnId = _optionalChain([columns, 'access',
|
|
27532
|
+
const firstColumnId = _optionalChain([columns, 'access', _543 => _543[0], 'optionalAccess', _544 => _544.id]);
|
|
27453
27533
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
27454
27534
|
"div",
|
|
27455
27535
|
{
|
|
@@ -27473,7 +27553,7 @@ function DataTableSkeleton({
|
|
|
27473
27553
|
{
|
|
27474
27554
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
27475
27555
|
"flex flex-col justify-center shrink-0",
|
|
27476
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27556
|
+
_optionalChain([meta, 'optionalAccess', _545 => _545.width]) || "flex-1"
|
|
27477
27557
|
),
|
|
27478
27558
|
children: [
|
|
27479
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)]" }),
|
|
@@ -27519,7 +27599,7 @@ function DataTableRowImpl({
|
|
|
27519
27599
|
const handleClick = _react.useCallback.call(void 0,
|
|
27520
27600
|
(e) => {
|
|
27521
27601
|
const target = e.target;
|
|
27522
|
-
if (!_optionalChain([containerRef, 'access',
|
|
27602
|
+
if (!_optionalChain([containerRef, 'access', _546 => _546.current, 'optionalAccess', _547 => _547.contains, 'call', _548 => _548(target)])) {
|
|
27523
27603
|
if (isLinkMode) e.preventDefault();
|
|
27524
27604
|
return;
|
|
27525
27605
|
}
|
|
@@ -27527,7 +27607,7 @@ function DataTableRowImpl({
|
|
|
27527
27607
|
if (isLinkMode) e.preventDefault();
|
|
27528
27608
|
return;
|
|
27529
27609
|
}
|
|
27530
|
-
_optionalChain([onClick, 'optionalCall',
|
|
27610
|
+
_optionalChain([onClick, 'optionalCall', _549 => _549(row.original)]);
|
|
27531
27611
|
},
|
|
27532
27612
|
[onClick, row.original, isLinkMode]
|
|
27533
27613
|
);
|
|
@@ -27550,10 +27630,10 @@ function DataTableRowImpl({
|
|
|
27550
27630
|
{
|
|
27551
27631
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
27552
27632
|
"flex flex-col overflow-hidden",
|
|
27553
|
-
alignJustify(_optionalChain([meta, 'optionalAccess',
|
|
27554
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27555
|
-
_optionalChain([meta, 'optionalAccess',
|
|
27556
|
-
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]))
|
|
27557
27637
|
),
|
|
27558
27638
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
|
|
27559
27639
|
},
|
|
@@ -27618,7 +27698,7 @@ function DataTableBody({
|
|
|
27618
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: [
|
|
27619
27699
|
rows.map((row, index) => {
|
|
27620
27700
|
const item = row.original;
|
|
27621
|
-
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall',
|
|
27701
|
+
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _554 => _554(item)]), () => ( void 0));
|
|
27622
27702
|
const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
|
|
27623
27703
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27624
27704
|
DataTableRow,
|
|
@@ -27682,7 +27762,7 @@ function DataTableInfiniteFooter({
|
|
|
27682
27762
|
if (!sentinel) return;
|
|
27683
27763
|
const observer = new IntersectionObserver(
|
|
27684
27764
|
(entries) => {
|
|
27685
|
-
if (_optionalChain([entries, 'access',
|
|
27765
|
+
if (_optionalChain([entries, 'access', _555 => _555[0], 'optionalAccess', _556 => _556.isIntersecting])) onLoadMoreRef.current();
|
|
27686
27766
|
},
|
|
27687
27767
|
{ rootMargin }
|
|
27688
27768
|
);
|
|
@@ -27730,7 +27810,7 @@ function DataTableRowCount({
|
|
|
27730
27810
|
const table = useDataTableContext();
|
|
27731
27811
|
const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
|
|
27732
27812
|
if (hideWhenEmpty && count === 0) return null;
|
|
27733
|
-
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall',
|
|
27813
|
+
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _557 => _557(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
|
|
27734
27814
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
27735
27815
|
"span",
|
|
27736
27816
|
{
|
|
@@ -27859,7 +27939,7 @@ function SearchInput({
|
|
|
27859
27939
|
}) {
|
|
27860
27940
|
const [internalValue, setInternalValue] = React94.useState(defaultValue);
|
|
27861
27941
|
const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
|
|
27862
|
-
const debouncedValue =
|
|
27942
|
+
const debouncedValue = _chunkWT5JV2GScjs.useDebounce.call(void 0, currentValue, debounceMs);
|
|
27863
27943
|
const [isOpen, setIsOpen] = React94.useState(false);
|
|
27864
27944
|
const [highlightedIndex, setHighlightedIndex] = React94.useState(-1);
|
|
27865
27945
|
const containerRef = React94.useRef(null);
|
|
@@ -27871,7 +27951,7 @@ function SearchInput({
|
|
|
27871
27951
|
textMeasureRef,
|
|
27872
27952
|
badgeRef,
|
|
27873
27953
|
inputRef
|
|
27874
|
-
} =
|
|
27954
|
+
} = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
|
|
27875
27955
|
count: filterChips.length,
|
|
27876
27956
|
limitTags,
|
|
27877
27957
|
// When chips exist, pass empty placeholder so the hook only reserves input minWidth,
|
|
@@ -27886,7 +27966,7 @@ function SearchInput({
|
|
|
27886
27966
|
if (!showHiddenTags) return;
|
|
27887
27967
|
const handleClick = (e) => {
|
|
27888
27968
|
const target = e.target;
|
|
27889
|
-
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)])) {
|
|
27890
27970
|
setShowHiddenTags(false);
|
|
27891
27971
|
}
|
|
27892
27972
|
};
|
|
@@ -27934,10 +28014,10 @@ function SearchInput({
|
|
|
27934
28014
|
} else {
|
|
27935
28015
|
setInternalValue("");
|
|
27936
28016
|
}
|
|
27937
|
-
_optionalChain([inputRef, 'access',
|
|
28017
|
+
_optionalChain([inputRef, 'access', _564 => _564.current, 'optionalAccess', _565 => _565.focus, 'call', _566 => _566()]);
|
|
27938
28018
|
};
|
|
27939
28019
|
const handleResultClick = (result, e) => {
|
|
27940
|
-
_optionalChain([onResultSelect, 'optionalCall',
|
|
28020
|
+
_optionalChain([onResultSelect, 'optionalCall', _567 => _567(
|
|
27941
28021
|
result,
|
|
27942
28022
|
e ? {
|
|
27943
28023
|
metaKey: e.metaKey,
|
|
@@ -27969,7 +28049,7 @@ function SearchInput({
|
|
|
27969
28049
|
if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
|
|
27970
28050
|
handleResultClick(flatResults[highlightedIndex]);
|
|
27971
28051
|
} else {
|
|
27972
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
28052
|
+
_optionalChain([onSubmit, 'optionalCall', _568 => _568(currentValue)]);
|
|
27973
28053
|
}
|
|
27974
28054
|
break;
|
|
27975
28055
|
case "Escape":
|
|
@@ -28047,7 +28127,7 @@ function SearchInput({
|
|
|
28047
28127
|
dropdownVisible && "!border-ods-accent"
|
|
28048
28128
|
),
|
|
28049
28129
|
onClick: () => {
|
|
28050
|
-
_optionalChain([inputRef, 'access',
|
|
28130
|
+
_optionalChain([inputRef, 'access', _569 => _569.current, 'optionalAccess', _570 => _570.focus, 'call', _571 => _571()]);
|
|
28051
28131
|
setIsOpen(true);
|
|
28052
28132
|
},
|
|
28053
28133
|
children: [
|
|
@@ -28131,10 +28211,10 @@ function SearchInput({
|
|
|
28131
28211
|
align: "start",
|
|
28132
28212
|
onOpenAutoFocus: (e) => {
|
|
28133
28213
|
e.preventDefault();
|
|
28134
|
-
_optionalChain([inputRef, 'access',
|
|
28214
|
+
_optionalChain([inputRef, 'access', _572 => _572.current, 'optionalAccess', _573 => _573.focus, 'call', _574 => _574()]);
|
|
28135
28215
|
},
|
|
28136
28216
|
onInteractOutside: (e) => {
|
|
28137
|
-
if (_optionalChain([containerRef, 'access',
|
|
28217
|
+
if (_optionalChain([containerRef, 'access', _575 => _575.current, 'optionalAccess', _576 => _576.contains, 'call', _577 => _577(e.target)])) {
|
|
28138
28218
|
e.preventDefault();
|
|
28139
28219
|
}
|
|
28140
28220
|
},
|
|
@@ -28151,10 +28231,10 @@ function SearchInput({
|
|
|
28151
28231
|
ref: hiddenTagsPopupRef,
|
|
28152
28232
|
items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
|
|
28153
28233
|
style: {
|
|
28154
|
-
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
|
|
28155
28235
|
},
|
|
28156
28236
|
onRemove: (value2) => {
|
|
28157
|
-
_optionalChain([onFilterRemove, 'optionalCall',
|
|
28237
|
+
_optionalChain([onFilterRemove, 'optionalCall', _582 => _582(value2)]);
|
|
28158
28238
|
if (hiddenCount <= 1) setShowHiddenTags(false);
|
|
28159
28239
|
}
|
|
28160
28240
|
}
|
|
@@ -28205,7 +28285,7 @@ function FilterListItem({
|
|
|
28205
28285
|
}) {
|
|
28206
28286
|
const handleToggle = () => {
|
|
28207
28287
|
if (disabled) return;
|
|
28208
|
-
_optionalChain([onToggle, 'optionalCall',
|
|
28288
|
+
_optionalChain([onToggle, 'optionalCall', _583 => _583(!selected)]);
|
|
28209
28289
|
};
|
|
28210
28290
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
28211
28291
|
"div",
|
|
@@ -28252,7 +28332,7 @@ function FilterListItem({
|
|
|
28252
28332
|
CheckboxPrimitive4.Root,
|
|
28253
28333
|
{
|
|
28254
28334
|
checked: selected,
|
|
28255
|
-
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall',
|
|
28335
|
+
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _584 => _584(c === true)]),
|
|
28256
28336
|
onClick: (e) => e.stopPropagation(),
|
|
28257
28337
|
disabled,
|
|
28258
28338
|
"aria-label": title,
|
|
@@ -28338,7 +28418,7 @@ function TagSearchInput({
|
|
|
28338
28418
|
textMeasureRef,
|
|
28339
28419
|
badgeRef,
|
|
28340
28420
|
inputRef
|
|
28341
|
-
} =
|
|
28421
|
+
} = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
|
|
28342
28422
|
count: tags.length,
|
|
28343
28423
|
limitTags,
|
|
28344
28424
|
placeholder: currentPlaceholder
|
|
@@ -28351,7 +28431,7 @@ function TagSearchInput({
|
|
|
28351
28431
|
if (!showHiddenTags) return;
|
|
28352
28432
|
const handleClick = (e) => {
|
|
28353
28433
|
const target = e.target;
|
|
28354
|
-
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)])) {
|
|
28355
28435
|
setShowHiddenTags(false);
|
|
28356
28436
|
}
|
|
28357
28437
|
};
|
|
@@ -28367,13 +28447,13 @@ function TagSearchInput({
|
|
|
28367
28447
|
e.preventDefault();
|
|
28368
28448
|
onSubmit(searchValue);
|
|
28369
28449
|
}
|
|
28370
|
-
_optionalChain([onKeyDown, 'optionalCall',
|
|
28450
|
+
_optionalChain([onKeyDown, 'optionalCall', _591 => _591(e)]);
|
|
28371
28451
|
};
|
|
28372
28452
|
const handleClearAll = (e) => {
|
|
28373
28453
|
e.stopPropagation();
|
|
28374
28454
|
e.preventDefault();
|
|
28375
|
-
_optionalChain([onClearAll, 'optionalCall',
|
|
28376
|
-
_optionalChain([inputRef, 'access',
|
|
28455
|
+
_optionalChain([onClearAll, 'optionalCall', _592 => _592()]);
|
|
28456
|
+
_optionalChain([inputRef, 'access', _593 => _593.current, 'optionalAccess', _594 => _594.focus, 'call', _595 => _595()]);
|
|
28377
28457
|
};
|
|
28378
28458
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
|
|
28379
28459
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -28390,7 +28470,7 @@ function TagSearchInput({
|
|
|
28390
28470
|
className
|
|
28391
28471
|
),
|
|
28392
28472
|
onClick: () => {
|
|
28393
|
-
if (!disabled) _optionalChain([inputRef, 'access',
|
|
28473
|
+
if (!disabled) _optionalChain([inputRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.focus, 'call', _598 => _598()]);
|
|
28394
28474
|
},
|
|
28395
28475
|
children: [
|
|
28396
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" }) }),
|
|
@@ -28462,7 +28542,7 @@ function TagSearchInput({
|
|
|
28462
28542
|
items: hiddenTags,
|
|
28463
28543
|
disabled,
|
|
28464
28544
|
style: {
|
|
28465
|
-
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
|
|
28466
28546
|
},
|
|
28467
28547
|
onRemove: (value) => {
|
|
28468
28548
|
onTagRemove(value);
|
|
@@ -28563,7 +28643,7 @@ function MarkdownEditor({
|
|
|
28563
28643
|
const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
|
|
28564
28644
|
_react.useEffect.call(void 0, () => {
|
|
28565
28645
|
Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
|
|
28566
|
-
if (_optionalChain([mod, 'access',
|
|
28646
|
+
if (_optionalChain([mod, 'access', _603 => _603.commands, 'optionalAccess', _604 => _604.getExtraCommands])) {
|
|
28567
28647
|
setDefaultExtraCommands(mod.commands.getExtraCommands());
|
|
28568
28648
|
}
|
|
28569
28649
|
});
|
|
@@ -28597,7 +28677,7 @@ function MarkdownEditor({
|
|
|
28597
28677
|
const isImage = file.type.startsWith("image/");
|
|
28598
28678
|
const markdown = isImage ? `` : `[${file.name}](${url})`;
|
|
28599
28679
|
insertTextAtCursor(markdown);
|
|
28600
|
-
_optionalChain([onFileUploaded, 'optionalCall',
|
|
28680
|
+
_optionalChain([onFileUploaded, 'optionalCall', _605 => _605(url, file.name)]);
|
|
28601
28681
|
} catch (error) {
|
|
28602
28682
|
console.error("File upload failed:", error);
|
|
28603
28683
|
setUploadProgress("Upload failed. Please try again.");
|
|
@@ -28610,7 +28690,7 @@ function MarkdownEditor({
|
|
|
28610
28690
|
);
|
|
28611
28691
|
const handleFileInputChange = _react.useCallback.call(void 0,
|
|
28612
28692
|
(e) => {
|
|
28613
|
-
const file = _optionalChain([e, 'access',
|
|
28693
|
+
const file = _optionalChain([e, 'access', _606 => _606.target, 'access', _607 => _607.files, 'optionalAccess', _608 => _608[0]]);
|
|
28614
28694
|
if (file) {
|
|
28615
28695
|
handleFileUpload(file);
|
|
28616
28696
|
e.target.value = "";
|
|
@@ -28621,7 +28701,7 @@ function MarkdownEditor({
|
|
|
28621
28701
|
const handlePaste = _react.useCallback.call(void 0,
|
|
28622
28702
|
(e) => {
|
|
28623
28703
|
if (!onUploadFile) return;
|
|
28624
|
-
const items = _optionalChain([e, 'access',
|
|
28704
|
+
const items = _optionalChain([e, 'access', _609 => _609.clipboardData, 'optionalAccess', _610 => _610.items]);
|
|
28625
28705
|
if (!items) return;
|
|
28626
28706
|
for (const item of items) {
|
|
28627
28707
|
if (item.type.startsWith("image/")) {
|
|
@@ -28646,7 +28726,7 @@ function MarkdownEditor({
|
|
|
28646
28726
|
buttonProps: { "aria-label": "Upload file", title: "Upload file" },
|
|
28647
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" }),
|
|
28648
28728
|
execute: () => {
|
|
28649
|
-
_optionalChain([fileInputRef, 'access',
|
|
28729
|
+
_optionalChain([fileInputRef, 'access', _611 => _611.current, 'optionalAccess', _612 => _612.click, 'call', _613 => _613()]);
|
|
28650
28730
|
}
|
|
28651
28731
|
} : null;
|
|
28652
28732
|
const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
|
|
@@ -28658,7 +28738,7 @@ function MarkdownEditor({
|
|
|
28658
28738
|
const EDGE_ZONE = 60;
|
|
28659
28739
|
const MAX_SCROLL_SPEED = 15;
|
|
28660
28740
|
const findScrollParent = _react.useCallback.call(void 0, (el) => {
|
|
28661
|
-
let node = _optionalChain([el, 'optionalAccess',
|
|
28741
|
+
let node = _optionalChain([el, 'optionalAccess', _614 => _614.parentElement]);
|
|
28662
28742
|
while (node && node !== document.documentElement) {
|
|
28663
28743
|
const { overflowY } = window.getComputedStyle(node);
|
|
28664
28744
|
if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
|
|
@@ -28801,7 +28881,7 @@ function matchesAccept(file, accept) {
|
|
|
28801
28881
|
});
|
|
28802
28882
|
}
|
|
28803
28883
|
function dragHasFiles(e) {
|
|
28804
|
-
const types = _optionalChain([e, 'access',
|
|
28884
|
+
const types = _optionalChain([e, 'access', _615 => _615.dataTransfer, 'optionalAccess', _616 => _616.types]);
|
|
28805
28885
|
if (!types) return false;
|
|
28806
28886
|
for (let i = 0; i < types.length; i++) {
|
|
28807
28887
|
if (types[i] === "Files") return true;
|
|
@@ -28896,7 +28976,7 @@ function FileUpload({
|
|
|
28896
28976
|
e.stopPropagation();
|
|
28897
28977
|
setDragActive(false);
|
|
28898
28978
|
if (disabled) return;
|
|
28899
|
-
if (_optionalChain([e, 'access',
|
|
28979
|
+
if (_optionalChain([e, 'access', _617 => _617.dataTransfer, 'access', _618 => _618.files, 'optionalAccess', _619 => _619.length])) {
|
|
28900
28980
|
handleFiles(e.dataTransfer.files);
|
|
28901
28981
|
}
|
|
28902
28982
|
};
|
|
@@ -28924,7 +29004,7 @@ function FileUpload({
|
|
|
28924
29004
|
e.preventDefault();
|
|
28925
29005
|
dragCounter = 0;
|
|
28926
29006
|
setDragActive(false);
|
|
28927
|
-
if (_optionalChain([e, 'access',
|
|
29007
|
+
if (_optionalChain([e, 'access', _620 => _620.dataTransfer, 'optionalAccess', _621 => _621.files, 'optionalAccess', _622 => _622.length])) {
|
|
28928
29008
|
handleFilesRef.current(e.dataTransfer.files);
|
|
28929
29009
|
}
|
|
28930
29010
|
};
|
|
@@ -28946,7 +29026,7 @@ function FileUpload({
|
|
|
28946
29026
|
};
|
|
28947
29027
|
}, [acceptWindowDrops, disabled]);
|
|
28948
29028
|
const handleFileSelect = (e) => {
|
|
28949
|
-
if (_optionalChain([e, 'access',
|
|
29029
|
+
if (_optionalChain([e, 'access', _623 => _623.target, 'access', _624 => _624.files, 'optionalAccess', _625 => _625.length])) {
|
|
28950
29030
|
handleFiles(e.target.files);
|
|
28951
29031
|
}
|
|
28952
29032
|
};
|
|
@@ -28963,7 +29043,7 @@ function FileUpload({
|
|
|
28963
29043
|
};
|
|
28964
29044
|
const openDialog = async () => {
|
|
28965
29045
|
if (disabled) return;
|
|
28966
|
-
_optionalChain([fileInputRef, 'access',
|
|
29046
|
+
_optionalChain([fileInputRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.click, 'call', _628 => _628()]);
|
|
28967
29047
|
};
|
|
28968
29048
|
const displayError = error || validationError || void 0;
|
|
28969
29049
|
const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
|
|
@@ -29041,7 +29121,7 @@ function FileUpload({
|
|
|
29041
29121
|
"button",
|
|
29042
29122
|
{
|
|
29043
29123
|
type: "button",
|
|
29044
|
-
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall',
|
|
29124
|
+
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _629 => _629(entry.id)]),
|
|
29045
29125
|
className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
|
|
29046
29126
|
"aria-label": `Remove ${entry.fileName}`,
|
|
29047
29127
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
|
|
@@ -29164,7 +29244,7 @@ function ImageUploader({
|
|
|
29164
29244
|
onChange(file);
|
|
29165
29245
|
};
|
|
29166
29246
|
const handleFileSelect = (e) => {
|
|
29167
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
29247
|
+
validateAndEmit(_optionalChain([e, 'access', _630 => _630.target, 'access', _631 => _631.files, 'optionalAccess', _632 => _632[0]]));
|
|
29168
29248
|
if (inputRef.current) inputRef.current.value = "";
|
|
29169
29249
|
};
|
|
29170
29250
|
const handleDrag = (e) => {
|
|
@@ -29179,11 +29259,11 @@ function ImageUploader({
|
|
|
29179
29259
|
e.stopPropagation();
|
|
29180
29260
|
setDragActive(false);
|
|
29181
29261
|
if (!interactive) return;
|
|
29182
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
29262
|
+
validateAndEmit(_optionalChain([e, 'access', _633 => _633.dataTransfer, 'access', _634 => _634.files, 'optionalAccess', _635 => _635[0]]));
|
|
29183
29263
|
};
|
|
29184
29264
|
const openDialog = () => {
|
|
29185
29265
|
if (!interactive) return;
|
|
29186
|
-
_optionalChain([inputRef, 'access',
|
|
29266
|
+
_optionalChain([inputRef, 'access', _636 => _636.current, 'optionalAccess', _637 => _637.click, 'call', _638 => _638()]);
|
|
29187
29267
|
};
|
|
29188
29268
|
const handleRootKeyDown = (e) => {
|
|
29189
29269
|
if (hasImage || !interactive) return;
|
|
@@ -29340,7 +29420,7 @@ function CompactAssigneeDropdown({
|
|
|
29340
29420
|
return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
|
|
29341
29421
|
}, [filtered, currentAssignee]);
|
|
29342
29422
|
const handleSelect = (userId) => {
|
|
29343
|
-
const next = _optionalChain([currentAssignee, 'optionalAccess',
|
|
29423
|
+
const next = _optionalChain([currentAssignee, 'optionalAccess', _639 => _639.id]) === userId ? null : userId;
|
|
29344
29424
|
onAssign(next);
|
|
29345
29425
|
setIsOpen(false);
|
|
29346
29426
|
};
|
|
@@ -29405,7 +29485,7 @@ function CompactAssigneeDropdown({
|
|
|
29405
29485
|
}
|
|
29406
29486
|
) }),
|
|
29407
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) => {
|
|
29408
|
-
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess',
|
|
29488
|
+
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _640 => _640.id]) === opt.value;
|
|
29409
29489
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
29410
29490
|
"button",
|
|
29411
29491
|
{
|
|
@@ -29474,7 +29554,7 @@ function DefaultAssigneeDropdown({
|
|
|
29474
29554
|
Autocomplete,
|
|
29475
29555
|
{
|
|
29476
29556
|
options,
|
|
29477
|
-
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess',
|
|
29557
|
+
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _641 => _641.id]), () => ( null)),
|
|
29478
29558
|
onChange: (val) => {
|
|
29479
29559
|
onAssign(val);
|
|
29480
29560
|
setIsEditing(false);
|
|
@@ -29840,14 +29920,14 @@ function TicketInfoSection({
|
|
|
29840
29920
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29841
29921
|
SquareAvatar,
|
|
29842
29922
|
{
|
|
29843
|
-
src: _optionalChain([organization, 'optionalAccess',
|
|
29844
|
-
alt: _optionalChain([organization, 'optionalAccess',
|
|
29845
|
-
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",
|
|
29846
29926
|
size: "md",
|
|
29847
29927
|
className: "shrink-0"
|
|
29848
29928
|
}
|
|
29849
29929
|
),
|
|
29850
|
-
/* @__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" })
|
|
29851
29931
|
] }),
|
|
29852
29932
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29853
29933
|
AssigneeDropdown,
|
|
@@ -29868,10 +29948,10 @@ function TicketInfoSection({
|
|
|
29868
29948
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29869
29949
|
InfoCell2,
|
|
29870
29950
|
{
|
|
29871
|
-
value: _optionalChain([device, 'optionalAccess',
|
|
29951
|
+
value: _optionalChain([device, 'optionalAccess', _646 => _646.name]) || "Unassigned",
|
|
29872
29952
|
label: "Device",
|
|
29873
|
-
icon: _optionalChain([device, 'optionalAccess',
|
|
29874
|
-
onClick: _optionalChain([device, 'optionalAccess',
|
|
29953
|
+
icon: _optionalChain([device, 'optionalAccess', _647 => _647.icon]),
|
|
29954
|
+
onClick: _optionalChain([device, 'optionalAccess', _648 => _648.onClick])
|
|
29875
29955
|
}
|
|
29876
29956
|
),
|
|
29877
29957
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
|
|
@@ -30157,7 +30237,7 @@ function RoadmapCard({
|
|
|
30157
30237
|
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
30158
30238
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
30159
30239
|
const hasFigma = !!item.figmaUrl;
|
|
30160
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
30240
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _649 => _649.screenshots, 'optionalAccess', _650 => _650.length]), () => ( 0))) > 0;
|
|
30161
30241
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
30162
30242
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
30163
30243
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -30176,7 +30256,7 @@ function RoadmapCard({
|
|
|
30176
30256
|
unoptimized: true,
|
|
30177
30257
|
className: "h-8 w-8 object-contain"
|
|
30178
30258
|
}
|
|
30179
|
-
) : /* @__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)]) || "??" })
|
|
30180
30260
|
}
|
|
30181
30261
|
),
|
|
30182
30262
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -30251,7 +30331,7 @@ function RoadmapCard({
|
|
|
30251
30331
|
unoptimized: true,
|
|
30252
30332
|
className: "object-contain p-1"
|
|
30253
30333
|
}
|
|
30254
|
-
) : /* @__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)]) || "??" }) }),
|
|
30255
30335
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
30256
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 }) }),
|
|
30257
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: [
|
|
@@ -30758,7 +30838,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
|
30758
30838
|
] }) : null,
|
|
30759
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
|
|
30760
30840
|
] }),
|
|
30761
|
-
_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
|
|
30762
30842
|
] });
|
|
30763
30843
|
if (!anchorProps) {
|
|
30764
30844
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
@@ -30828,7 +30908,7 @@ function getDefaultOptions() {
|
|
|
30828
30908
|
// node_modules/date-fns/startOfWeek.mjs
|
|
30829
30909
|
function startOfWeek(date, options) {
|
|
30830
30910
|
const defaultOptions2 = getDefaultOptions();
|
|
30831
|
-
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));
|
|
30832
30912
|
const _date = toDate(date);
|
|
30833
30913
|
const day = _date.getDay();
|
|
30834
30914
|
const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
@@ -31003,7 +31083,7 @@ var formatDistance = (token, count, options) => {
|
|
|
31003
31083
|
} else {
|
|
31004
31084
|
result = tokenValue.other.replace("{{count}}", count.toString());
|
|
31005
31085
|
}
|
|
31006
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
31086
|
+
if (_optionalChain([options, 'optionalAccess', _665 => _665.addSuffix])) {
|
|
31007
31087
|
if (options.comparison && options.comparison > 0) {
|
|
31008
31088
|
return "in " + result;
|
|
31009
31089
|
} else {
|
|
@@ -31070,15 +31150,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
|
|
|
31070
31150
|
// node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
|
|
31071
31151
|
function buildLocalizeFn(args) {
|
|
31072
31152
|
return (value, options) => {
|
|
31073
|
-
const context = _optionalChain([options, 'optionalAccess',
|
|
31153
|
+
const context = _optionalChain([options, 'optionalAccess', _666 => _666.context]) ? String(options.context) : "standalone";
|
|
31074
31154
|
let valuesArray;
|
|
31075
31155
|
if (context === "formatting" && args.formattingValues) {
|
|
31076
31156
|
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
31077
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
31157
|
+
const width = _optionalChain([options, 'optionalAccess', _667 => _667.width]) ? String(options.width) : defaultWidth;
|
|
31078
31158
|
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
31079
31159
|
} else {
|
|
31080
31160
|
const defaultWidth = args.defaultWidth;
|
|
31081
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
31161
|
+
const width = _optionalChain([options, 'optionalAccess', _668 => _668.width]) ? String(options.width) : args.defaultWidth;
|
|
31082
31162
|
valuesArray = args.values[width] || args.values[defaultWidth];
|
|
31083
31163
|
}
|
|
31084
31164
|
const index = args.argumentCallback ? args.argumentCallback(value) : value;
|
|
@@ -31458,7 +31538,7 @@ function getWeekYear(date, options) {
|
|
|
31458
31538
|
const _date = toDate(date);
|
|
31459
31539
|
const year = _date.getFullYear();
|
|
31460
31540
|
const defaultOptions2 = getDefaultOptions();
|
|
31461
|
-
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));
|
|
31462
31542
|
const firstWeekOfNextYear = constructFrom(date, 0);
|
|
31463
31543
|
firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
|
|
31464
31544
|
firstWeekOfNextYear.setHours(0, 0, 0, 0);
|
|
@@ -31479,7 +31559,7 @@ function getWeekYear(date, options) {
|
|
|
31479
31559
|
// node_modules/date-fns/startOfWeekYear.mjs
|
|
31480
31560
|
function startOfWeekYear(date, options) {
|
|
31481
31561
|
const defaultOptions2 = getDefaultOptions();
|
|
31482
|
-
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));
|
|
31483
31563
|
const year = getWeekYear(date, options);
|
|
31484
31564
|
const firstWeek = constructFrom(date, 0);
|
|
31485
31565
|
firstWeek.setFullYear(year, 0, firstWeekContainsDate);
|
|
@@ -32294,9 +32374,9 @@ var doubleQuoteRegExp = /''/g;
|
|
|
32294
32374
|
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
32295
32375
|
function format(date, formatStr, options) {
|
|
32296
32376
|
const defaultOptions2 = getDefaultOptions();
|
|
32297
|
-
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
32298
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
32299
|
-
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));
|
|
32300
32380
|
const originalDate = toDate(date);
|
|
32301
32381
|
if (!isValid(originalDate)) {
|
|
32302
32382
|
throw new RangeError("Invalid time value");
|
|
@@ -32337,7 +32417,7 @@ function format(date, formatStr, options) {
|
|
|
32337
32417
|
return parts.map((part) => {
|
|
32338
32418
|
if (!part.isToken) return part.value;
|
|
32339
32419
|
const token = part.value;
|
|
32340
|
-
if (!_optionalChain([options, 'optionalAccess',
|
|
32420
|
+
if (!_optionalChain([options, 'optionalAccess', _698 => _698.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _699 => _699.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
|
|
32341
32421
|
warnOrThrowProtectedError(token, formatStr, String(date));
|
|
32342
32422
|
}
|
|
32343
32423
|
const formatter = formatters[token[0]];
|
|
@@ -32503,7 +32583,7 @@ function ProgramCard({
|
|
|
32503
32583
|
const dur = formatDurationFromRange(w.start_at, w.end_at);
|
|
32504
32584
|
typeMeta = dur ? `${time} \xB7 ${dur}` : time;
|
|
32505
32585
|
}
|
|
32506
|
-
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access',
|
|
32586
|
+
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _700 => _700.labels, 'optionalAccess', _701 => _701.singular])].filter(
|
|
32507
32587
|
(s) => typeof s === "string" && s.length > 0
|
|
32508
32588
|
);
|
|
32509
32589
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunk664KA5FIcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
@@ -32660,7 +32740,7 @@ function ProgramCard({
|
|
|
32660
32740
|
|
|
32661
32741
|
|
|
32662
32742
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
32663
|
-
const goalsCount = _optionalChain([campaign, 'access',
|
|
32743
|
+
const goalsCount = _optionalChain([campaign, 'access', _702 => _702.goals, 'optionalAccess', _703 => _703.length]) || 0;
|
|
32664
32744
|
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
32665
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" }) }),
|
|
32666
32746
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -32955,11 +33035,11 @@ function HubspotTicketChatCard({
|
|
|
32955
33035
|
chatRef,
|
|
32956
33036
|
isNewTab
|
|
32957
33037
|
}) {
|
|
32958
|
-
const status = typeof _optionalChain([chatRef, 'access',
|
|
32959
|
-
const statusLabel = typeof _optionalChain([chatRef, 'access',
|
|
32960
|
-
const priority = typeof _optionalChain([chatRef, 'access',
|
|
32961
|
-
const customerCompany = typeof _optionalChain([chatRef, 'access',
|
|
32962
|
-
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;
|
|
32963
33043
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32964
33044
|
HubspotTicketCard,
|
|
32965
33045
|
{
|
|
@@ -32981,7 +33061,7 @@ function HubspotTicketChatCard({
|
|
|
32981
33061
|
);
|
|
32982
33062
|
}
|
|
32983
33063
|
function SlackChatCard({ chatRef, isNewTab }) {
|
|
32984
|
-
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;
|
|
32985
33065
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32986
33066
|
SlackMessageCard,
|
|
32987
33067
|
{
|
|
@@ -33004,7 +33084,7 @@ function DataRoomDocChatCard({
|
|
|
33004
33084
|
chipBasePlatform,
|
|
33005
33085
|
isNewTab
|
|
33006
33086
|
}) {
|
|
33007
|
-
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;
|
|
33008
33088
|
const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
|
|
33009
33089
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33010
33090
|
DataRoomDocCard,
|
|
@@ -33030,8 +33110,8 @@ function GenericFinancialChatCard({
|
|
|
33030
33110
|
scheme,
|
|
33031
33111
|
isNewTab
|
|
33032
33112
|
}) {
|
|
33033
|
-
const facts = Array.isArray(_optionalChain([chatRef, 'access',
|
|
33034
|
-
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;
|
|
33035
33115
|
const anchorProps = buildAnchorProps(
|
|
33036
33116
|
chatRef.url,
|
|
33037
33117
|
isNewTab
|
|
@@ -33193,7 +33273,7 @@ function programRegistryEntries() {
|
|
|
33193
33273
|
contentRefType: cfg.contentRefType,
|
|
33194
33274
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramCardSkeleton, { size: "sm" }),
|
|
33195
33275
|
render: (item, chatRef, opts) => {
|
|
33196
|
-
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]));
|
|
33197
33277
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33198
33278
|
ProgramCard,
|
|
33199
33279
|
{
|
|
@@ -33279,8 +33359,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33279
33359
|
DataRoomDocChatCard,
|
|
33280
33360
|
{
|
|
33281
33361
|
chatRef,
|
|
33282
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
33283
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
33362
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _725 => _725.baseRoute]),
|
|
33363
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _726 => _726.chipBasePlatform]),
|
|
33284
33364
|
isNewTab: opts.isNewTab
|
|
33285
33365
|
}
|
|
33286
33366
|
)
|
|
@@ -33292,8 +33372,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33292
33372
|
DataRoomDocChatCard,
|
|
33293
33373
|
{
|
|
33294
33374
|
chatRef,
|
|
33295
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
33296
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
33375
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _727 => _727.baseRoute]),
|
|
33376
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _728 => _728.chipBasePlatform]),
|
|
33297
33377
|
isNewTab: opts.isNewTab
|
|
33298
33378
|
}
|
|
33299
33379
|
)
|
|
@@ -33318,9 +33398,9 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33318
33398
|
size: "sm",
|
|
33319
33399
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33320
33400
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33321
|
-
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)),
|
|
33322
33402
|
...newTabAnchorAttrs(opts.isNewTab),
|
|
33323
|
-
hasEmbeddedVideo: _optionalChain([chatRef, 'access',
|
|
33403
|
+
hasEmbeddedVideo: _optionalChain([chatRef, 'access', _733 => _733.metadata, 'optionalAccess', _734 => _734.hasEmbeddedVideo]) === true
|
|
33324
33404
|
}
|
|
33325
33405
|
)
|
|
33326
33406
|
},
|
|
@@ -33336,7 +33416,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33336
33416
|
size: "sm",
|
|
33337
33417
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33338
33418
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33339
|
-
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)),
|
|
33340
33420
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33341
33421
|
}
|
|
33342
33422
|
)
|
|
@@ -33353,7 +33433,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33353
33433
|
size: "sm",
|
|
33354
33434
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33355
33435
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33356
|
-
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)),
|
|
33357
33437
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33358
33438
|
}
|
|
33359
33439
|
)
|
|
@@ -33364,7 +33444,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33364
33444
|
contentRefType: "product_release",
|
|
33365
33445
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
|
|
33366
33446
|
render: (item, chatRef, opts) => {
|
|
33367
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
33447
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _743 => _743.extras, 'optionalAccess', _744 => _744.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
|
|
33368
33448
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33369
33449
|
ProductReleaseChatCard,
|
|
33370
33450
|
{
|
|
@@ -33389,7 +33469,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33389
33469
|
size: "sm",
|
|
33390
33470
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33391
33471
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33392
|
-
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)),
|
|
33393
33473
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33394
33474
|
}
|
|
33395
33475
|
)
|
|
@@ -33407,7 +33487,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33407
33487
|
size: "sm",
|
|
33408
33488
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
33409
33489
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
33410
|
-
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)),
|
|
33411
33491
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
33412
33492
|
}
|
|
33413
33493
|
)
|
|
@@ -33419,7 +33499,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
33419
33499
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
|
|
33420
33500
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
33421
33501
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
33422
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
33502
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _753 => _753.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
|
|
33423
33503
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33424
33504
|
CampaignChatCard,
|
|
33425
33505
|
{
|
|
@@ -33443,12 +33523,12 @@ function ChatCardNavWrap({
|
|
|
33443
33523
|
const onClickCapture = (e) => {
|
|
33444
33524
|
if (!href) return;
|
|
33445
33525
|
const targetEl = e.target;
|
|
33446
|
-
if (_optionalChain([targetEl, 'optionalAccess',
|
|
33447
|
-
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;
|
|
33448
33528
|
const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform });
|
|
33449
33529
|
if (!handled) return;
|
|
33450
33530
|
e.stopPropagation();
|
|
33451
|
-
if (!isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
33531
|
+
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _758 => _758.closeChat])) panel.closeChat();
|
|
33452
33532
|
};
|
|
33453
33533
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
|
|
33454
33534
|
}
|
|
@@ -33470,7 +33550,7 @@ function ChatCardLoader({
|
|
|
33470
33550
|
title: chatRef.title,
|
|
33471
33551
|
externalUrl: chatRef.url,
|
|
33472
33552
|
targetPlatform: chatRef.targetPlatform,
|
|
33473
|
-
path: typeof _optionalChain([chatRef, 'access',
|
|
33553
|
+
path: typeof _optionalChain([chatRef, 'access', _759 => _759.metadata, 'optionalAccess', _760 => _760.path]) === "string" ? chatRef.metadata.path : null
|
|
33474
33554
|
},
|
|
33475
33555
|
{
|
|
33476
33556
|
baseRoute,
|
|
@@ -33488,7 +33568,7 @@ function ChatCardLoader({
|
|
|
33488
33568
|
const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
|
|
33489
33569
|
const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
|
|
33490
33570
|
const { item, isLoading } = useChatCardItem(
|
|
33491
|
-
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess',
|
|
33571
|
+
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _761 => _761.contentRefType]), () => ( "")),
|
|
33492
33572
|
fetchEntry ? resolvedChatRef.id : ""
|
|
33493
33573
|
);
|
|
33494
33574
|
if (!entry) return null;
|
|
@@ -33498,7 +33578,7 @@ function ChatCardLoader({
|
|
|
33498
33578
|
} : resolvedChatRef;
|
|
33499
33579
|
const isNewTab = computeIsNewTab(runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
|
|
33500
33580
|
const renderOpts = { baseRoute, chipBasePlatform, extras, isNewTab };
|
|
33501
|
-
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;
|
|
33502
33582
|
const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33503
33583
|
ChatCardNavWrap,
|
|
33504
33584
|
{
|
|
@@ -33915,7 +33995,6 @@ function useChunkCatchup({
|
|
|
33915
33995
|
|
|
33916
33996
|
// src/components/chat/hooks/use-jetstream-dialog-subscription.ts
|
|
33917
33997
|
|
|
33918
|
-
var shared = null;
|
|
33919
33998
|
var DEFAULT_INACTIVE_THRESHOLD_MS = 5 * 6e4;
|
|
33920
33999
|
var DEFAULT_STREAM_NAME = "CHAT_CHUNKS";
|
|
33921
34000
|
function useJetStreamDialogSubscription({
|
|
@@ -33978,68 +34057,16 @@ function useJetStreamDialogSubscription({
|
|
|
33978
34057
|
inactiveThresholdRef.current = inactiveThresholdMs;
|
|
33979
34058
|
}, [inactiveThresholdMs]);
|
|
33980
34059
|
const hadConnectionBeforeRef = _react.useRef.call(void 0, false);
|
|
33981
|
-
const
|
|
33982
|
-
|
|
33983
|
-
|
|
33984
|
-
|
|
33985
|
-
if (shared.closeTimer) clearTimeout(shared.closeTimer);
|
|
33986
|
-
const old = shared;
|
|
33987
|
-
shared = null;
|
|
33988
|
-
void old.client.close().catch(() => {
|
|
33989
|
-
});
|
|
33990
|
-
}
|
|
33991
|
-
const { name = "openframe-frontend-jetstream", user = "machine", pass = "" } = clientConfig;
|
|
33992
|
-
const client = _chunkEH3RWVF3cjs.createNatsClient.call(void 0, {
|
|
33993
|
-
servers: url,
|
|
33994
|
-
name,
|
|
33995
|
-
user,
|
|
33996
|
-
pass,
|
|
33997
|
-
connectTimeoutMs: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
|
|
33998
|
-
reconnect: false,
|
|
33999
|
-
pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
|
|
34000
|
-
maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
|
|
34001
|
-
});
|
|
34002
|
-
shared = {
|
|
34003
|
-
wsUrl: url,
|
|
34004
|
-
client,
|
|
34005
|
-
connectPromise: null,
|
|
34006
|
-
refCount: 0,
|
|
34007
|
-
closeTimer: null,
|
|
34008
|
-
retryTimer: null
|
|
34009
|
-
};
|
|
34010
|
-
}
|
|
34011
|
-
shared.refCount += 1;
|
|
34012
|
-
if (shared.closeTimer) {
|
|
34013
|
-
clearTimeout(shared.closeTimer);
|
|
34014
|
-
shared.closeTimer = null;
|
|
34015
|
-
}
|
|
34016
|
-
return shared;
|
|
34017
|
-
},
|
|
34018
|
-
[clientConfig]
|
|
34019
|
-
);
|
|
34020
|
-
const releaseClient = _react.useCallback.call(void 0, (url) => {
|
|
34021
|
-
if (!shared || shared.wsUrl !== url) return;
|
|
34022
|
-
shared.refCount = Math.max(0, shared.refCount - 1);
|
|
34023
|
-
if (shared.refCount > 0) return;
|
|
34024
|
-
shared.closeTimer = setTimeout(() => {
|
|
34025
|
-
const s = shared;
|
|
34026
|
-
shared = null;
|
|
34027
|
-
if (s) {
|
|
34028
|
-
if (s.retryTimer) {
|
|
34029
|
-
clearTimeout(s.retryTimer);
|
|
34030
|
-
s.retryTimer = null;
|
|
34031
|
-
}
|
|
34032
|
-
void s.client.close().catch(() => {
|
|
34033
|
-
});
|
|
34034
|
-
}
|
|
34035
|
-
}, NETWORK_CONFIG.SHARED_CLOSE_DELAY_MS);
|
|
34036
|
-
}, []);
|
|
34060
|
+
const clientConfigRef = _react.useRef.call(void 0, clientConfig);
|
|
34061
|
+
_react.useEffect.call(void 0, () => {
|
|
34062
|
+
clientConfigRef.current = clientConfig;
|
|
34063
|
+
}, [clientConfig]);
|
|
34037
34064
|
const currentWsUrlRef = _react.useRef.call(void 0, "");
|
|
34065
|
+
const wsUrl = getNatsWsUrl();
|
|
34038
34066
|
_react.useEffect.call(void 0, () => {
|
|
34039
|
-
const wsUrl = getNatsWsUrl();
|
|
34040
34067
|
if (!enabled || !wsUrl) {
|
|
34041
34068
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
34042
|
-
releaseClient(currentWsUrlRef.current);
|
|
34069
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34043
34070
|
clientRef.current = null;
|
|
34044
34071
|
currentWsUrlRef.current = "";
|
|
34045
34072
|
setIsConnected(false);
|
|
@@ -34050,137 +34077,79 @@ function useJetStreamDialogSubscription({
|
|
|
34050
34077
|
return;
|
|
34051
34078
|
}
|
|
34052
34079
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
34053
|
-
releaseClient(currentWsUrlRef.current);
|
|
34080
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34054
34081
|
clientRef.current = null;
|
|
34055
34082
|
setIsConnected(false);
|
|
34056
34083
|
}
|
|
34057
34084
|
currentWsUrlRef.current = wsUrl;
|
|
34058
|
-
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
|
+
});
|
|
34059
34091
|
const client = sharedConn.client;
|
|
34060
34092
|
clientRef.current = client;
|
|
34061
|
-
setIsConnected(
|
|
34062
|
-
|
|
34063
|
-
|
|
34064
|
-
function scheduleRetry() {
|
|
34065
|
-
if (closed) return;
|
|
34066
|
-
if (shared !== sharedConn) return;
|
|
34067
|
-
if (sharedConn.retryTimer) {
|
|
34068
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34069
|
-
sharedConn.retryTimer = null;
|
|
34070
|
-
}
|
|
34071
|
-
const cfg = _nullishCoalesce(reconnectionBackoffRef.current, () => ( {}));
|
|
34072
|
-
const fastRetries = _nullishCoalesce(cfg.fastRetries, () => ( 0));
|
|
34073
|
-
const fastDelay = _nullishCoalesce(cfg.fastRetryDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34074
|
-
const baseDelay = _nullishCoalesce(cfg.initialDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34075
|
-
const maxDelay = _nullishCoalesce(cfg.maxDelayMs, () => ( NETWORK_CONFIG.RETRY_MAX_DELAY_MS));
|
|
34076
|
-
const multiplier = _nullishCoalesce(cfg.multiplier, () => ( NETWORK_CONFIG.RETRY_BACKOFF_MULTIPLIER));
|
|
34077
|
-
const delay2 = retryAttempt < fastRetries ? fastDelay : Math.min(baseDelay * multiplier ** (retryAttempt - fastRetries), maxDelay);
|
|
34078
|
-
const jitteredDelay = delay2 * (0.5 + Math.random() * 0.5);
|
|
34079
|
-
retryAttempt++;
|
|
34080
|
-
sharedConn.retryTimer = setTimeout(async () => {
|
|
34081
|
-
sharedConn.retryTimer = null;
|
|
34082
|
-
if (closed) return;
|
|
34083
|
-
if (shared !== sharedConn) return;
|
|
34093
|
+
setIsConnected(client.isConnected());
|
|
34094
|
+
const tearDownSubscription = () => {
|
|
34095
|
+
if (subscriptionRef.current) {
|
|
34084
34096
|
try {
|
|
34085
|
-
|
|
34097
|
+
subscriptionRef.current.unsubscribe();
|
|
34086
34098
|
} catch (e24) {
|
|
34087
34099
|
}
|
|
34088
|
-
|
|
34089
|
-
if (shared !== sharedConn) return;
|
|
34090
|
-
const freshUrl = getNatsWsUrlRef.current();
|
|
34091
|
-
if (freshUrl !== wsUrl) return;
|
|
34092
|
-
try {
|
|
34093
|
-
sharedConn.connectPromise = null;
|
|
34094
|
-
sharedConn.connectPromise = client.connect();
|
|
34095
|
-
await sharedConn.connectPromise;
|
|
34096
|
-
if (!closed && shared === sharedConn) {
|
|
34097
|
-
retryAttempt = 0;
|
|
34098
|
-
setIsConnected(true);
|
|
34099
|
-
}
|
|
34100
|
-
} catch (e25) {
|
|
34101
|
-
sharedConn.connectPromise = null;
|
|
34102
|
-
if (!closed && shared === sharedConn) {
|
|
34103
|
-
scheduleRetry();
|
|
34104
|
-
}
|
|
34105
|
-
}
|
|
34106
|
-
}, jitteredDelay);
|
|
34107
|
-
}
|
|
34108
|
-
const unsubscribeStatus = client.onStatus((event) => {
|
|
34109
|
-
const connected = event.status === "connected";
|
|
34110
|
-
const disconnected = event.status === "closed" || event.status === "disconnected";
|
|
34111
|
-
if (connected) {
|
|
34112
|
-
setIsConnected(true);
|
|
34113
|
-
if (hadConnectionBeforeRef.current) {
|
|
34114
|
-
setReconnectionCount((c) => c + 1);
|
|
34115
|
-
}
|
|
34116
|
-
hadConnectionBeforeRef.current = true;
|
|
34117
|
-
retryAttempt = 0;
|
|
34118
|
-
_optionalChain([onConnectRef, 'access', _755 => _755.current, 'optionalCall', _756 => _756()]);
|
|
34119
|
-
}
|
|
34120
|
-
if (event.status === "error") {
|
|
34121
|
-
console.warn("[JetStream] NATS protocol error:", event.data);
|
|
34122
|
-
return;
|
|
34123
|
-
}
|
|
34124
|
-
if (disconnected) {
|
|
34125
|
-
setIsConnected(false);
|
|
34126
|
-
setIsSubscribed(false);
|
|
34127
|
-
if (subscriptionRef.current) {
|
|
34128
|
-
try {
|
|
34129
|
-
subscriptionRef.current.unsubscribe();
|
|
34130
|
-
} catch (e26) {
|
|
34131
|
-
}
|
|
34132
|
-
subscriptionRef.current = null;
|
|
34133
|
-
}
|
|
34134
|
-
_optionalChain([onDisconnectRef, 'access', _757 => _757.current, 'optionalCall', _758 => _758()]);
|
|
34135
|
-
scheduleRetry();
|
|
34100
|
+
subscriptionRef.current = null;
|
|
34136
34101
|
}
|
|
34137
|
-
}
|
|
34138
|
-
|
|
34139
|
-
|
|
34140
|
-
|
|
34141
|
-
|
|
34142
|
-
|
|
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") {
|
|
34143
34116
|
setIsConnected(true);
|
|
34117
|
+
if (hadConnectionBeforeRef.current) {
|
|
34118
|
+
setReconnectionCount((c) => c + 1);
|
|
34119
|
+
}
|
|
34144
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;
|
|
34145
34126
|
}
|
|
34146
|
-
|
|
34147
|
-
sharedConn.connectPromise = null;
|
|
34148
|
-
if (!closed) {
|
|
34127
|
+
if (status === "closed" || status === "disconnected") {
|
|
34149
34128
|
setIsConnected(false);
|
|
34150
|
-
|
|
34151
|
-
|
|
34129
|
+
setIsSubscribed(false);
|
|
34130
|
+
tearDownSubscription();
|
|
34131
|
+
_optionalChain([onDisconnectRef, 'access', _768 => _768.current, 'optionalCall', _769 => _769()]);
|
|
34152
34132
|
}
|
|
34153
34133
|
}
|
|
34154
|
-
})
|
|
34134
|
+
});
|
|
34155
34135
|
return () => {
|
|
34156
|
-
|
|
34136
|
+
lifecycle.stop();
|
|
34157
34137
|
setIsConnected(false);
|
|
34158
34138
|
setIsSubscribed(false);
|
|
34159
|
-
|
|
34160
|
-
if (sharedConn.retryTimer) {
|
|
34161
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34162
|
-
sharedConn.retryTimer = null;
|
|
34163
|
-
}
|
|
34164
|
-
if (subscriptionRef.current) {
|
|
34165
|
-
try {
|
|
34166
|
-
subscriptionRef.current.unsubscribe();
|
|
34167
|
-
} catch (e28) {
|
|
34168
|
-
}
|
|
34169
|
-
subscriptionRef.current = null;
|
|
34170
|
-
}
|
|
34139
|
+
tearDownSubscription();
|
|
34171
34140
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
34172
|
-
releaseClient(currentWsUrlRef.current);
|
|
34141
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34173
34142
|
clientRef.current = null;
|
|
34174
34143
|
currentWsUrlRef.current = "";
|
|
34175
34144
|
}
|
|
34176
34145
|
};
|
|
34177
|
-
}, [enabled,
|
|
34146
|
+
}, [enabled, wsUrl]);
|
|
34178
34147
|
_react.useEffect.call(void 0, () => {
|
|
34179
34148
|
if (!enabled || !dialogId || !isConnected) {
|
|
34180
34149
|
if (subscriptionRef.current) {
|
|
34181
34150
|
try {
|
|
34182
34151
|
subscriptionRef.current.unsubscribe();
|
|
34183
|
-
} catch (
|
|
34152
|
+
} catch (e25) {
|
|
34184
34153
|
}
|
|
34185
34154
|
subscriptionRef.current = null;
|
|
34186
34155
|
}
|
|
@@ -34217,7 +34186,7 @@ function useJetStreamDialogSubscription({
|
|
|
34217
34186
|
parsed.streamSeq = streamSeq;
|
|
34218
34187
|
}
|
|
34219
34188
|
cb(parsed, topic);
|
|
34220
|
-
} catch (
|
|
34189
|
+
} catch (e26) {
|
|
34221
34190
|
}
|
|
34222
34191
|
},
|
|
34223
34192
|
{
|
|
@@ -34232,14 +34201,14 @@ function useJetStreamDialogSubscription({
|
|
|
34232
34201
|
if (cancelled) {
|
|
34233
34202
|
try {
|
|
34234
34203
|
handle.unsubscribe();
|
|
34235
|
-
} catch (
|
|
34204
|
+
} catch (e27) {
|
|
34236
34205
|
}
|
|
34237
34206
|
return;
|
|
34238
34207
|
}
|
|
34239
34208
|
subscriptionRef.current = handle;
|
|
34240
34209
|
setIsSubscribed(true);
|
|
34241
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
34242
|
-
} catch (
|
|
34210
|
+
_optionalChain([onSubscribedRef, 'access', _770 => _770.current, 'optionalCall', _771 => _771()]);
|
|
34211
|
+
} catch (e28) {
|
|
34243
34212
|
if (!cancelled) {
|
|
34244
34213
|
setIsSubscribed(false);
|
|
34245
34214
|
}
|
|
@@ -34251,7 +34220,7 @@ function useJetStreamDialogSubscription({
|
|
|
34251
34220
|
if (subscriptionRef.current) {
|
|
34252
34221
|
try {
|
|
34253
34222
|
subscriptionRef.current.unsubscribe();
|
|
34254
|
-
} catch (
|
|
34223
|
+
} catch (e29) {
|
|
34255
34224
|
}
|
|
34256
34225
|
subscriptionRef.current = null;
|
|
34257
34226
|
}
|
|
@@ -34267,7 +34236,6 @@ function useJetStreamDialogSubscription({
|
|
|
34267
34236
|
|
|
34268
34237
|
// src/components/chat/hooks/use-nats-dialog-subscription.ts
|
|
34269
34238
|
|
|
34270
|
-
var shared2 = null;
|
|
34271
34239
|
function useNatsDialogSubscription({
|
|
34272
34240
|
enabled,
|
|
34273
34241
|
dialogId,
|
|
@@ -34315,56 +34283,16 @@ function useNatsDialogSubscription({
|
|
|
34315
34283
|
_react.useEffect.call(void 0, () => {
|
|
34316
34284
|
reconnectionBackoffRef.current = reconnectionBackoff;
|
|
34317
34285
|
}, [reconnectionBackoff]);
|
|
34318
|
-
const
|
|
34319
|
-
|
|
34320
|
-
|
|
34321
|
-
shared2.closeTimer && clearTimeout(shared2.closeTimer);
|
|
34322
|
-
const old = shared2;
|
|
34323
|
-
shared2 = null;
|
|
34324
|
-
void old.client.close().catch(() => {
|
|
34325
|
-
});
|
|
34326
|
-
}
|
|
34327
|
-
const { name = "openframe-frontend", user = "machine", pass = "" } = clientConfig;
|
|
34328
|
-
const client = _chunkEH3RWVF3cjs.createNatsClient.call(void 0, {
|
|
34329
|
-
servers: url,
|
|
34330
|
-
name,
|
|
34331
|
-
user,
|
|
34332
|
-
pass,
|
|
34333
|
-
connectTimeoutMs: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
|
|
34334
|
-
reconnect: false,
|
|
34335
|
-
pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
|
|
34336
|
-
maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
|
|
34337
|
-
});
|
|
34338
|
-
shared2 = { wsUrl: url, client, connectPromise: null, refCount: 0, closeTimer: null, retryTimer: null };
|
|
34339
|
-
}
|
|
34340
|
-
shared2.refCount += 1;
|
|
34341
|
-
shared2.closeTimer && clearTimeout(shared2.closeTimer);
|
|
34342
|
-
shared2.closeTimer = null;
|
|
34343
|
-
return shared2;
|
|
34286
|
+
const clientConfigRef = _react.useRef.call(void 0, clientConfig);
|
|
34287
|
+
_react.useEffect.call(void 0, () => {
|
|
34288
|
+
clientConfigRef.current = clientConfig;
|
|
34344
34289
|
}, [clientConfig]);
|
|
34345
|
-
const releaseClient = _react.useCallback.call(void 0, (url) => {
|
|
34346
|
-
if (!shared2 || shared2.wsUrl !== url) return;
|
|
34347
|
-
shared2.refCount = Math.max(0, shared2.refCount - 1);
|
|
34348
|
-
if (shared2.refCount > 0) return;
|
|
34349
|
-
shared2.closeTimer = setTimeout(() => {
|
|
34350
|
-
const s = shared2;
|
|
34351
|
-
shared2 = null;
|
|
34352
|
-
if (s) {
|
|
34353
|
-
if (s.retryTimer) {
|
|
34354
|
-
clearTimeout(s.retryTimer);
|
|
34355
|
-
s.retryTimer = null;
|
|
34356
|
-
}
|
|
34357
|
-
void s.client.close().catch(() => {
|
|
34358
|
-
});
|
|
34359
|
-
}
|
|
34360
|
-
}, NETWORK_CONFIG.SHARED_CLOSE_DELAY_MS);
|
|
34361
|
-
}, []);
|
|
34362
34290
|
const currentWsUrlRef = _react.useRef.call(void 0, "");
|
|
34291
|
+
const wsUrl = getNatsWsUrl();
|
|
34363
34292
|
_react.useEffect.call(void 0, () => {
|
|
34364
|
-
const wsUrl = getNatsWsUrl();
|
|
34365
34293
|
if (!enabled || !wsUrl) {
|
|
34366
34294
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
34367
|
-
releaseClient(currentWsUrlRef.current);
|
|
34295
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34368
34296
|
clientRef.current = null;
|
|
34369
34297
|
currentWsUrlRef.current = "";
|
|
34370
34298
|
setIsConnected(false);
|
|
@@ -34375,131 +34303,69 @@ function useNatsDialogSubscription({
|
|
|
34375
34303
|
return;
|
|
34376
34304
|
}
|
|
34377
34305
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
34378
|
-
releaseClient(currentWsUrlRef.current);
|
|
34306
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34379
34307
|
clientRef.current = null;
|
|
34380
34308
|
setIsConnected(false);
|
|
34381
34309
|
}
|
|
34382
34310
|
currentWsUrlRef.current = wsUrl;
|
|
34383
|
-
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
|
+
});
|
|
34384
34317
|
const client = sharedConn.client;
|
|
34385
34318
|
clientRef.current = client;
|
|
34386
|
-
setIsConnected(
|
|
34387
|
-
|
|
34388
|
-
|
|
34389
|
-
function scheduleRetry() {
|
|
34390
|
-
if (closed) return;
|
|
34391
|
-
if (shared2 !== sharedConn) return;
|
|
34392
|
-
if (sharedConn.retryTimer) {
|
|
34393
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34394
|
-
sharedConn.retryTimer = null;
|
|
34395
|
-
}
|
|
34396
|
-
const cfg = _nullishCoalesce(reconnectionBackoffRef.current, () => ( {}));
|
|
34397
|
-
const fastRetries = _nullishCoalesce(cfg.fastRetries, () => ( 0));
|
|
34398
|
-
const fastDelay = _nullishCoalesce(cfg.fastRetryDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34399
|
-
const baseDelay = _nullishCoalesce(cfg.initialDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
|
|
34400
|
-
const maxDelay = _nullishCoalesce(cfg.maxDelayMs, () => ( NETWORK_CONFIG.RETRY_MAX_DELAY_MS));
|
|
34401
|
-
const multiplier = _nullishCoalesce(cfg.multiplier, () => ( NETWORK_CONFIG.RETRY_BACKOFF_MULTIPLIER));
|
|
34402
|
-
const delay2 = retryAttempt < fastRetries ? fastDelay : Math.min(baseDelay * multiplier ** (retryAttempt - fastRetries), maxDelay);
|
|
34403
|
-
const jitteredDelay = delay2 * (0.5 + Math.random() * 0.5);
|
|
34404
|
-
retryAttempt++;
|
|
34405
|
-
sharedConn.retryTimer = setTimeout(async () => {
|
|
34406
|
-
sharedConn.retryTimer = null;
|
|
34407
|
-
if (closed) return;
|
|
34408
|
-
if (shared2 !== sharedConn) return;
|
|
34409
|
-
try {
|
|
34410
|
-
await _optionalChain([onBeforeReconnectRef, 'access', _764 => _764.current, 'optionalCall', _765 => _765()]);
|
|
34411
|
-
} catch (e34) {
|
|
34412
|
-
}
|
|
34413
|
-
if (closed) return;
|
|
34414
|
-
if (shared2 !== sharedConn) return;
|
|
34415
|
-
const freshUrl = getNatsWsUrlRef.current();
|
|
34416
|
-
if (freshUrl !== wsUrl) return;
|
|
34319
|
+
setIsConnected(client.isConnected());
|
|
34320
|
+
const tearDownSubscriptions = () => {
|
|
34321
|
+
subscriptionRefs.current.forEach((sub) => {
|
|
34417
34322
|
try {
|
|
34418
|
-
|
|
34419
|
-
|
|
34420
|
-
await sharedConn.connectPromise;
|
|
34421
|
-
if (!closed && shared2 === sharedConn) {
|
|
34422
|
-
retryAttempt = 0;
|
|
34423
|
-
setIsConnected(true);
|
|
34424
|
-
}
|
|
34425
|
-
} catch (e35) {
|
|
34426
|
-
sharedConn.connectPromise = null;
|
|
34427
|
-
if (!closed && shared2 === sharedConn) {
|
|
34428
|
-
scheduleRetry();
|
|
34429
|
-
}
|
|
34323
|
+
_optionalChain([sub, 'optionalAccess', _772 => _772.unsubscribe, 'call', _773 => _773()]);
|
|
34324
|
+
} catch (e30) {
|
|
34430
34325
|
}
|
|
34431
|
-
}
|
|
34432
|
-
|
|
34433
|
-
|
|
34434
|
-
|
|
34435
|
-
|
|
34436
|
-
|
|
34437
|
-
|
|
34438
|
-
|
|
34439
|
-
|
|
34440
|
-
|
|
34441
|
-
|
|
34442
|
-
|
|
34443
|
-
|
|
34444
|
-
|
|
34445
|
-
|
|
34446
|
-
|
|
34447
|
-
setIsSubscribed(false);
|
|
34448
|
-
subscriptionRefs.current.forEach((sub) => {
|
|
34449
|
-
try {
|
|
34450
|
-
_optionalChain([sub, 'optionalAccess', _768 => _768.unsubscribe, 'call', _769 => _769()]);
|
|
34451
|
-
} catch (e36) {
|
|
34452
|
-
}
|
|
34453
|
-
});
|
|
34454
|
-
subscriptionRefs.current.clear();
|
|
34455
|
-
lastSubscribedDialogIdRef.current = null;
|
|
34456
|
-
_optionalChain([abortControllerRef, 'access', _770 => _770.current, 'optionalAccess', _771 => _771.abort, 'call', _772 => _772()]);
|
|
34457
|
-
abortControllerRef.current = null;
|
|
34458
|
-
_optionalChain([onDisconnectRef, 'access', _773 => _773.current, 'optionalCall', _774 => _774()]);
|
|
34459
|
-
scheduleRetry();
|
|
34460
|
-
}
|
|
34461
|
-
});
|
|
34462
|
-
(async () => {
|
|
34463
|
-
try {
|
|
34464
|
-
sharedConn.connectPromise || (sharedConn.connectPromise = client.connect());
|
|
34465
|
-
await sharedConn.connectPromise;
|
|
34466
|
-
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") {
|
|
34467
34342
|
setIsConnected(true);
|
|
34343
|
+
if (hadConnectionBeforeRef.current) {
|
|
34344
|
+
setReconnectionCount((c) => c + 1);
|
|
34345
|
+
}
|
|
34468
34346
|
hadConnectionBeforeRef.current = true;
|
|
34347
|
+
_optionalChain([onConnectRef, 'access', _779 => _779.current, 'optionalCall', _780 => _780()]);
|
|
34469
34348
|
}
|
|
34470
|
-
|
|
34471
|
-
sharedConn.connectPromise = null;
|
|
34472
|
-
if (!closed) {
|
|
34349
|
+
if (isDisconnectStatus(status)) {
|
|
34473
34350
|
setIsConnected(false);
|
|
34474
|
-
|
|
34475
|
-
|
|
34351
|
+
setIsSubscribed(false);
|
|
34352
|
+
tearDownSubscriptions();
|
|
34353
|
+
_optionalChain([onDisconnectRef, 'access', _781 => _781.current, 'optionalCall', _782 => _782()]);
|
|
34476
34354
|
}
|
|
34477
34355
|
}
|
|
34478
|
-
})
|
|
34356
|
+
});
|
|
34479
34357
|
return () => {
|
|
34480
|
-
|
|
34358
|
+
lifecycle.stop();
|
|
34481
34359
|
setIsConnected(false);
|
|
34482
34360
|
setIsSubscribed(false);
|
|
34483
|
-
|
|
34484
|
-
if (sharedConn.retryTimer) {
|
|
34485
|
-
clearTimeout(sharedConn.retryTimer);
|
|
34486
|
-
sharedConn.retryTimer = null;
|
|
34487
|
-
}
|
|
34488
|
-
subscriptionRefs.current.forEach((sub) => {
|
|
34489
|
-
try {
|
|
34490
|
-
_optionalChain([sub, 'optionalAccess', _777 => _777.unsubscribe, 'call', _778 => _778()]);
|
|
34491
|
-
} catch (e38) {
|
|
34492
|
-
}
|
|
34493
|
-
});
|
|
34494
|
-
subscriptionRefs.current.clear();
|
|
34495
|
-
lastSubscribedDialogIdRef.current = null;
|
|
34361
|
+
tearDownSubscriptions();
|
|
34496
34362
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
34497
|
-
releaseClient(currentWsUrlRef.current);
|
|
34363
|
+
_chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
34498
34364
|
clientRef.current = null;
|
|
34499
34365
|
currentWsUrlRef.current = "";
|
|
34500
34366
|
}
|
|
34501
34367
|
};
|
|
34502
|
-
}, [enabled,
|
|
34368
|
+
}, [enabled, wsUrl]);
|
|
34503
34369
|
const topicsKey = topics.join(",");
|
|
34504
34370
|
const lastSubscribedDialogIdRef = _react.useRef.call(void 0, null);
|
|
34505
34371
|
const isConnectedRef = _react.useRef.call(void 0, isConnected);
|
|
@@ -34515,13 +34381,13 @@ function useNatsDialogSubscription({
|
|
|
34515
34381
|
setIsSubscribed(false);
|
|
34516
34382
|
subscriptionRefs.current.forEach((sub) => {
|
|
34517
34383
|
try {
|
|
34518
|
-
_optionalChain([sub, 'optionalAccess',
|
|
34519
|
-
} catch (
|
|
34384
|
+
_optionalChain([sub, 'optionalAccess', _783 => _783.unsubscribe, 'call', _784 => _784()]);
|
|
34385
|
+
} catch (e31) {
|
|
34520
34386
|
}
|
|
34521
34387
|
});
|
|
34522
34388
|
subscriptionRefs.current.clear();
|
|
34523
34389
|
lastSubscribedDialogIdRef.current = null;
|
|
34524
|
-
_optionalChain([abortControllerRef, 'access',
|
|
34390
|
+
_optionalChain([abortControllerRef, 'access', _785 => _785.current, 'optionalAccess', _786 => _786.abort, 'call', _787 => _787()]);
|
|
34525
34391
|
abortControllerRef.current = null;
|
|
34526
34392
|
}
|
|
34527
34393
|
return;
|
|
@@ -34533,12 +34399,12 @@ function useNatsDialogSubscription({
|
|
|
34533
34399
|
if (subscriptionRefs.current.size > 0) {
|
|
34534
34400
|
subscriptionRefs.current.forEach((sub) => {
|
|
34535
34401
|
try {
|
|
34536
|
-
_optionalChain([sub, 'optionalAccess',
|
|
34537
|
-
} catch (
|
|
34402
|
+
_optionalChain([sub, 'optionalAccess', _788 => _788.unsubscribe, 'call', _789 => _789()]);
|
|
34403
|
+
} catch (e32) {
|
|
34538
34404
|
}
|
|
34539
34405
|
});
|
|
34540
34406
|
subscriptionRefs.current.clear();
|
|
34541
|
-
_optionalChain([abortControllerRef, 'access',
|
|
34407
|
+
_optionalChain([abortControllerRef, 'access', _790 => _790.current, 'optionalAccess', _791 => _791.abort, 'call', _792 => _792()]);
|
|
34542
34408
|
}
|
|
34543
34409
|
abortControllerRef.current = new AbortController();
|
|
34544
34410
|
const abort = abortControllerRef.current;
|
|
@@ -34557,7 +34423,7 @@ function useNatsDialogSubscription({
|
|
|
34557
34423
|
const dataStr = decoder.decode(msg.data);
|
|
34558
34424
|
const parsed = JSON.parse(dataStr);
|
|
34559
34425
|
onEventRef.current(parsed, messageType);
|
|
34560
|
-
} catch (
|
|
34426
|
+
} catch (e33) {
|
|
34561
34427
|
}
|
|
34562
34428
|
};
|
|
34563
34429
|
topics.forEach((topic) => {
|
|
@@ -34570,7 +34436,7 @@ function useNatsDialogSubscription({
|
|
|
34570
34436
|
});
|
|
34571
34437
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
34572
34438
|
setIsSubscribed(true);
|
|
34573
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
34439
|
+
_optionalChain([onSubscribedRef, 'access', _793 => _793.current, 'optionalCall', _794 => _794()]);
|
|
34574
34440
|
};
|
|
34575
34441
|
if (isConnectedRef.current) {
|
|
34576
34442
|
createSubscriptions();
|
|
@@ -34580,8 +34446,8 @@ function useNatsDialogSubscription({
|
|
|
34580
34446
|
abort.abort();
|
|
34581
34447
|
subscriptionRefs.current.forEach((sub) => {
|
|
34582
34448
|
try {
|
|
34583
|
-
_optionalChain([sub, 'optionalAccess',
|
|
34584
|
-
} catch (
|
|
34449
|
+
_optionalChain([sub, 'optionalAccess', _795 => _795.unsubscribe, 'call', _796 => _796()]);
|
|
34450
|
+
} catch (e34) {
|
|
34585
34451
|
}
|
|
34586
34452
|
});
|
|
34587
34453
|
subscriptionRefs.current.clear();
|
|
@@ -34608,7 +34474,7 @@ function useNatsDialogSubscription({
|
|
|
34608
34474
|
const dataStr = decoder.decode(msg.data);
|
|
34609
34475
|
const parsed = JSON.parse(dataStr);
|
|
34610
34476
|
onEventRef.current(parsed, messageType);
|
|
34611
|
-
} catch (
|
|
34477
|
+
} catch (e35) {
|
|
34612
34478
|
}
|
|
34613
34479
|
};
|
|
34614
34480
|
topics.forEach((topic) => {
|
|
@@ -34621,7 +34487,7 @@ function useNatsDialogSubscription({
|
|
|
34621
34487
|
});
|
|
34622
34488
|
lastSubscribedDialogIdRef.current = dialogId2;
|
|
34623
34489
|
setIsSubscribed(true);
|
|
34624
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
34490
|
+
_optionalChain([onSubscribedRef, 'access', _797 => _797.current, 'optionalCall', _798 => _798()]);
|
|
34625
34491
|
} else if (subscriptionRefs.current.size > 0) {
|
|
34626
34492
|
setIsSubscribed(true);
|
|
34627
34493
|
}
|
|
@@ -34629,10 +34495,10 @@ function useNatsDialogSubscription({
|
|
|
34629
34495
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
34630
34496
|
}
|
|
34631
34497
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
34632
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
34498
|
+
const path = _optionalChain([options, 'optionalAccess', _799 => _799.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
34633
34499
|
const u = new URL(path, apiBaseUrl);
|
|
34634
34500
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
34635
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
34501
|
+
if (_optionalChain([options, 'optionalAccess', _800 => _800.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _801 => _801.token])) {
|
|
34636
34502
|
u.searchParams.set("authorization", options.token);
|
|
34637
34503
|
}
|
|
34638
34504
|
return u.toString();
|
|
@@ -34948,8 +34814,8 @@ var MessageSegmentAccumulator = class {
|
|
|
34948
34814
|
type: "tool_execution",
|
|
34949
34815
|
data: {
|
|
34950
34816
|
...toolData,
|
|
34951
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
34952
|
-
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])
|
|
34953
34819
|
}
|
|
34954
34820
|
};
|
|
34955
34821
|
if (existingIndex !== -1) {
|
|
@@ -34973,8 +34839,8 @@ var MessageSegmentAccumulator = class {
|
|
|
34973
34839
|
if (seg.type !== "approval_batch") return seg;
|
|
34974
34840
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
34975
34841
|
if (!hasCall) return seg;
|
|
34976
|
-
const prev = _optionalChain([seg, 'access',
|
|
34977
|
-
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]) };
|
|
34978
34844
|
matched = true;
|
|
34979
34845
|
return {
|
|
34980
34846
|
...seg,
|
|
@@ -35094,10 +34960,10 @@ var MessageSegmentAccumulator = class {
|
|
|
35094
34960
|
const segment = {
|
|
35095
34961
|
type: "approval_request",
|
|
35096
34962
|
data: {
|
|
35097
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
35098
|
-
explanation: _optionalChain([pendingApproval, 'optionalAccess',
|
|
34963
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _811 => _811.command]) || "",
|
|
34964
|
+
explanation: _optionalChain([pendingApproval, 'optionalAccess', _812 => _812.explanation]),
|
|
35099
34965
|
requestId,
|
|
35100
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
34966
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _813 => _813.approvalType]) || approvalType
|
|
35101
34967
|
},
|
|
35102
34968
|
status,
|
|
35103
34969
|
onApprove: this.callbacks.onApprove,
|
|
@@ -35285,7 +35151,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35285
35151
|
if (initialState.escalatedApprovals) {
|
|
35286
35152
|
pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
|
|
35287
35153
|
initialState.escalatedApprovals.forEach((data, requestId) => {
|
|
35288
|
-
_optionalChain([callbacks, 'access',
|
|
35154
|
+
_optionalChain([callbacks, 'access', _814 => _814.onEscalatedApproval, 'optionalCall', _815 => _815(requestId, data)]);
|
|
35289
35155
|
});
|
|
35290
35156
|
}
|
|
35291
35157
|
hasEverStreamedRef.current = true;
|
|
@@ -35307,32 +35173,32 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35307
35173
|
case "message_start":
|
|
35308
35174
|
isInStreamRef.current = true;
|
|
35309
35175
|
hasEverStreamedRef.current = true;
|
|
35310
|
-
_optionalChain([callbacks, 'access',
|
|
35176
|
+
_optionalChain([callbacks, 'access', _816 => _816.onStreamStart, 'optionalCall', _817 => _817()]);
|
|
35311
35177
|
accumulator.resetSegments();
|
|
35312
35178
|
break;
|
|
35313
35179
|
case "message_end":
|
|
35314
35180
|
isInStreamRef.current = false;
|
|
35315
|
-
_optionalChain([callbacks, 'access',
|
|
35181
|
+
_optionalChain([callbacks, 'access', _818 => _818.onStreamEnd, 'optionalCall', _819 => _819()]);
|
|
35316
35182
|
accumulator.resetSegments();
|
|
35317
35183
|
break;
|
|
35318
35184
|
case "metadata":
|
|
35319
|
-
_optionalChain([callbacks, 'access',
|
|
35185
|
+
_optionalChain([callbacks, 'access', _820 => _820.onMetadata, 'optionalCall', _821 => _821(action)]);
|
|
35320
35186
|
break;
|
|
35321
35187
|
case "text": {
|
|
35322
35188
|
const segments = accumulator.appendText(action.text);
|
|
35323
35189
|
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
35324
|
-
_optionalChain([callbacks, 'access',
|
|
35190
|
+
_optionalChain([callbacks, 'access', _822 => _822.onSegmentsUpdate, 'optionalCall', _823 => _823(segments)]);
|
|
35325
35191
|
} else {
|
|
35326
|
-
_optionalChain([callbacks, 'access',
|
|
35192
|
+
_optionalChain([callbacks, 'access', _824 => _824.onSegmentsUpdate, 'optionalCall', _825 => _825([{ type: "text", text: action.text }], { append: true })]);
|
|
35327
35193
|
}
|
|
35328
35194
|
break;
|
|
35329
35195
|
}
|
|
35330
35196
|
case "thinking": {
|
|
35331
35197
|
const segments = accumulator.appendThinking(action.text);
|
|
35332
35198
|
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
35333
|
-
_optionalChain([callbacks, 'access',
|
|
35199
|
+
_optionalChain([callbacks, 'access', _826 => _826.onSegmentsUpdate, 'optionalCall', _827 => _827(segments)]);
|
|
35334
35200
|
} else {
|
|
35335
|
-
_optionalChain([callbacks, 'access',
|
|
35201
|
+
_optionalChain([callbacks, 'access', _828 => _828.onSegmentsUpdate, 'optionalCall', _829 => _829([{ type: "thinking", text: action.text }], { append: true })]);
|
|
35336
35202
|
}
|
|
35337
35203
|
break;
|
|
35338
35204
|
}
|
|
@@ -35342,7 +35208,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35342
35208
|
break;
|
|
35343
35209
|
}
|
|
35344
35210
|
const segments = accumulator.addToolExecution(action.segment);
|
|
35345
|
-
_optionalChain([callbacks, 'access',
|
|
35211
|
+
_optionalChain([callbacks, 'access', _830 => _830.onSegmentsUpdate, 'optionalCall', _831 => _831(segments)]);
|
|
35346
35212
|
break;
|
|
35347
35213
|
}
|
|
35348
35214
|
case "approval_request": {
|
|
@@ -35356,10 +35222,10 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35356
35222
|
approvalType,
|
|
35357
35223
|
status
|
|
35358
35224
|
);
|
|
35359
|
-
_optionalChain([callbacks, 'access',
|
|
35225
|
+
_optionalChain([callbacks, 'access', _832 => _832.onSegmentsUpdate, 'optionalCall', _833 => _833(segments)]);
|
|
35360
35226
|
} else {
|
|
35361
35227
|
pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
|
|
35362
|
-
_optionalChain([callbacks, 'access',
|
|
35228
|
+
_optionalChain([callbacks, 'access', _834 => _834.onEscalatedApproval, 'optionalCall', _835 => _835(requestId, { command, explanation, approvalType })]);
|
|
35363
35229
|
}
|
|
35364
35230
|
break;
|
|
35365
35231
|
}
|
|
@@ -35371,20 +35237,20 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35371
35237
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
35372
35238
|
pendingEscalatedRef.current.set(requestId, {
|
|
35373
35239
|
command: summary,
|
|
35374
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
35240
|
+
explanation: _optionalChain([required, 'optionalAccess', _836 => _836.toolExplanation]),
|
|
35375
35241
|
approvalType,
|
|
35376
35242
|
toolCalls
|
|
35377
35243
|
});
|
|
35378
|
-
_optionalChain([callbacks, 'access',
|
|
35244
|
+
_optionalChain([callbacks, 'access', _837 => _837.onEscalatedApproval, 'optionalCall', _838 => _838(requestId, {
|
|
35379
35245
|
command: summary,
|
|
35380
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
35246
|
+
explanation: _optionalChain([required, 'optionalAccess', _839 => _839.toolExplanation]),
|
|
35381
35247
|
approvalType
|
|
35382
35248
|
})]);
|
|
35383
35249
|
break;
|
|
35384
35250
|
}
|
|
35385
35251
|
if (batchApprovalsEnabled) {
|
|
35386
35252
|
const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
|
|
35387
|
-
_optionalChain([callbacks, 'access',
|
|
35253
|
+
_optionalChain([callbacks, 'access', _840 => _840.onSegmentsUpdate, 'optionalCall', _841 => _841(segments2)]);
|
|
35388
35254
|
break;
|
|
35389
35255
|
}
|
|
35390
35256
|
let segments = accumulator.getSegments();
|
|
@@ -35398,7 +35264,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35398
35264
|
status
|
|
35399
35265
|
);
|
|
35400
35266
|
}
|
|
35401
|
-
_optionalChain([callbacks, 'access',
|
|
35267
|
+
_optionalChain([callbacks, 'access', _842 => _842.onSegmentsUpdate, 'optionalCall', _843 => _843(segments)]);
|
|
35402
35268
|
break;
|
|
35403
35269
|
}
|
|
35404
35270
|
case "approval_result": {
|
|
@@ -35407,7 +35273,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35407
35273
|
const status = approved ? "approved" : "rejected";
|
|
35408
35274
|
if (escalatedData) {
|
|
35409
35275
|
pendingEscalatedRef.current.delete(requestId);
|
|
35410
|
-
_optionalChain([callbacks, 'access',
|
|
35276
|
+
_optionalChain([callbacks, 'access', _844 => _844.onEscalatedApprovalResult, 'optionalCall', _845 => _845(requestId, approved, {
|
|
35411
35277
|
command: escalatedData.command,
|
|
35412
35278
|
explanation: escalatedData.explanation,
|
|
35413
35279
|
approvalType: escalatedData.approvalType
|
|
@@ -35420,7 +35286,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35420
35286
|
escalatedData.toolCalls,
|
|
35421
35287
|
status
|
|
35422
35288
|
);
|
|
35423
|
-
_optionalChain([callbacks, 'access',
|
|
35289
|
+
_optionalChain([callbacks, 'access', _846 => _846.onSegmentsUpdate, 'optionalCall', _847 => _847(segments)]);
|
|
35424
35290
|
} else {
|
|
35425
35291
|
let segments = accumulator.getSegments();
|
|
35426
35292
|
for (const call of escalatedData.toolCalls) {
|
|
@@ -35433,7 +35299,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35433
35299
|
status
|
|
35434
35300
|
);
|
|
35435
35301
|
}
|
|
35436
|
-
_optionalChain([callbacks, 'access',
|
|
35302
|
+
_optionalChain([callbacks, 'access', _848 => _848.onSegmentsUpdate, 'optionalCall', _849 => _849(segments)]);
|
|
35437
35303
|
}
|
|
35438
35304
|
} else {
|
|
35439
35305
|
const segments = accumulator.addApprovalRequest(
|
|
@@ -35443,65 +35309,65 @@ function useRealtimeChunkProcessor(options) {
|
|
|
35443
35309
|
escalatedData.approvalType,
|
|
35444
35310
|
status
|
|
35445
35311
|
);
|
|
35446
|
-
_optionalChain([callbacks, 'access',
|
|
35312
|
+
_optionalChain([callbacks, 'access', _850 => _850.onSegmentsUpdate, 'optionalCall', _851 => _851(segments)]);
|
|
35447
35313
|
}
|
|
35448
35314
|
} else {
|
|
35449
35315
|
accumulator.updateApprovalStatus(requestId, status);
|
|
35450
35316
|
if (!callbacks.onApprovalResolved) {
|
|
35451
|
-
_optionalChain([callbacks, 'access',
|
|
35317
|
+
_optionalChain([callbacks, 'access', _852 => _852.onSegmentsUpdate, 'optionalCall', _853 => _853(accumulator.getSegments())]);
|
|
35452
35318
|
}
|
|
35453
35319
|
}
|
|
35454
|
-
_optionalChain([callbacks, 'access',
|
|
35320
|
+
_optionalChain([callbacks, 'access', _854 => _854.onApprovalResolved, 'optionalCall', _855 => _855(requestId, status, approvalType)]);
|
|
35455
35321
|
break;
|
|
35456
35322
|
}
|
|
35457
35323
|
case "error": {
|
|
35458
35324
|
let message2;
|
|
35459
|
-
if ("details" in action && _optionalChain([action, 'optionalAccess',
|
|
35325
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _856 => _856.details])) {
|
|
35460
35326
|
try {
|
|
35461
|
-
message2 = _optionalChain([JSON, 'access',
|
|
35462
|
-
} 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) {
|
|
35463
35329
|
message2 = action.details;
|
|
35464
35330
|
}
|
|
35465
35331
|
}
|
|
35466
35332
|
const segments = accumulator.addError(action.error, message2);
|
|
35467
|
-
_optionalChain([callbacks, 'access',
|
|
35468
|
-
_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)]);
|
|
35469
35335
|
break;
|
|
35470
35336
|
}
|
|
35471
35337
|
case "system": {
|
|
35472
|
-
_optionalChain([callbacks, 'access',
|
|
35338
|
+
_optionalChain([callbacks, 'access', _865 => _865.onSystemMessage, 'optionalCall', _866 => _866(action.text)]);
|
|
35473
35339
|
break;
|
|
35474
35340
|
}
|
|
35475
35341
|
case "direct_message": {
|
|
35476
|
-
_optionalChain([callbacks, 'access',
|
|
35342
|
+
_optionalChain([callbacks, 'access', _867 => _867.onDirectMessage, 'optionalCall', _868 => _868(action.text, {
|
|
35477
35343
|
ownerType: action.ownerType,
|
|
35478
35344
|
displayName: action.displayName
|
|
35479
35345
|
})]);
|
|
35480
35346
|
break;
|
|
35481
35347
|
}
|
|
35482
35348
|
case "message_request":
|
|
35483
|
-
_optionalChain([callbacks, 'access',
|
|
35349
|
+
_optionalChain([callbacks, 'access', _869 => _869.onUserMessage, 'optionalCall', _870 => _870(action.text, {
|
|
35484
35350
|
ownerType: action.ownerType,
|
|
35485
35351
|
displayName: action.displayName
|
|
35486
35352
|
})]);
|
|
35487
35353
|
break;
|
|
35488
35354
|
case "token_usage":
|
|
35489
|
-
_optionalChain([callbacks, 'access',
|
|
35355
|
+
_optionalChain([callbacks, 'access', _871 => _871.onTokenUsage, 'optionalCall', _872 => _872(action.data)]);
|
|
35490
35356
|
break;
|
|
35491
35357
|
case "context_compaction_start": {
|
|
35492
35358
|
const standalone = !isInStreamRef.current;
|
|
35493
35359
|
const segments = accumulator.addContextCompaction();
|
|
35494
|
-
_optionalChain([callbacks, 'access',
|
|
35360
|
+
_optionalChain([callbacks, 'access', _873 => _873.onSegmentsUpdate, 'optionalCall', _874 => _874(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
35495
35361
|
break;
|
|
35496
35362
|
}
|
|
35497
35363
|
case "context_compaction_end": {
|
|
35498
35364
|
const standalone = !isInStreamRef.current;
|
|
35499
35365
|
const segments = accumulator.completeContextCompaction(action.summary);
|
|
35500
|
-
_optionalChain([callbacks, 'access',
|
|
35366
|
+
_optionalChain([callbacks, 'access', _875 => _875.onSegmentsUpdate, 'optionalCall', _876 => _876(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
35501
35367
|
break;
|
|
35502
35368
|
}
|
|
35503
35369
|
case "dialog_closed":
|
|
35504
|
-
_optionalChain([callbacks, 'access',
|
|
35370
|
+
_optionalChain([callbacks, 'access', _877 => _877.onDialogClosed, 'optionalCall', _878 => _878()]);
|
|
35505
35371
|
break;
|
|
35506
35372
|
default:
|
|
35507
35373
|
break;
|
|
@@ -35561,7 +35427,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
35561
35427
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
35562
35428
|
if (!cancelled) setCommands(next);
|
|
35563
35429
|
} catch (err) {
|
|
35564
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
35430
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _879 => _879.name]) !== "AbortError") {
|
|
35565
35431
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
35566
35432
|
}
|
|
35567
35433
|
} finally {
|
|
@@ -35586,7 +35452,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
35586
35452
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
35587
35453
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
35588
35454
|
return new Promise((resolve, reject) => {
|
|
35589
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
35455
|
+
if (_optionalChain([signal, 'optionalAccess', _880 => _880.aborted])) {
|
|
35590
35456
|
reject(new Error("Upload cancelled"));
|
|
35591
35457
|
return;
|
|
35592
35458
|
}
|
|
@@ -35600,7 +35466,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
35600
35466
|
xhr.removeEventListener("error", handleError);
|
|
35601
35467
|
xhr.removeEventListener("abort", handleAbort);
|
|
35602
35468
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
35603
|
-
_optionalChain([signal, 'optionalAccess',
|
|
35469
|
+
_optionalChain([signal, 'optionalAccess', _881 => _881.removeEventListener, 'call', _882 => _882("abort", handleSignalAbort)]);
|
|
35604
35470
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
35605
35471
|
};
|
|
35606
35472
|
const handleProgress = (event) => {
|
|
@@ -35636,7 +35502,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
35636
35502
|
const handleSignalAbort = () => {
|
|
35637
35503
|
xhr.abort();
|
|
35638
35504
|
};
|
|
35639
|
-
_optionalChain([signal, 'optionalAccess',
|
|
35505
|
+
_optionalChain([signal, 'optionalAccess', _883 => _883.addEventListener, 'call', _884 => _884("abort", handleSignalAbort, { once: true })]);
|
|
35640
35506
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
35641
35507
|
xhr.addEventListener("load", handleLoad);
|
|
35642
35508
|
xhr.addEventListener("error", handleError);
|
|
@@ -35680,12 +35546,12 @@ function useChatAttachments() {
|
|
|
35680
35546
|
try {
|
|
35681
35547
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
35682
35548
|
} catch (err) {
|
|
35683
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35549
|
+
if (_optionalChain([ctrl, 'optionalAccess', _885 => _885.signal, 'access', _886 => _886.aborted])) return;
|
|
35684
35550
|
throw new Error(
|
|
35685
35551
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
35686
35552
|
);
|
|
35687
35553
|
}
|
|
35688
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35554
|
+
if (_optionalChain([ctrl, 'optionalAccess', _887 => _887.signal, 'access', _888 => _888.aborted])) return;
|
|
35689
35555
|
if (!sniffed) {
|
|
35690
35556
|
throw new Error("Unrecognized file format");
|
|
35691
35557
|
}
|
|
@@ -35699,7 +35565,7 @@ function useChatAttachments() {
|
|
|
35699
35565
|
const urlResp = await embedAuthedFetch(uploadUrlEndpoint, {
|
|
35700
35566
|
method: "POST",
|
|
35701
35567
|
headers: { "Content-Type": "application/json" },
|
|
35702
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
35568
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _889 => _889.signal]),
|
|
35703
35569
|
body: JSON.stringify({
|
|
35704
35570
|
fileName: att.file.name,
|
|
35705
35571
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -35725,9 +35591,9 @@ function useChatAttachments() {
|
|
|
35725
35591
|
(pct) => {
|
|
35726
35592
|
updateOne(att.id, { progress: pct });
|
|
35727
35593
|
},
|
|
35728
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
35594
|
+
_optionalChain([ctrl, 'optionalAccess', _890 => _890.signal])
|
|
35729
35595
|
);
|
|
35730
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35596
|
+
if (_optionalChain([ctrl, 'optionalAccess', _891 => _891.signal, 'access', _892 => _892.aborted])) return;
|
|
35731
35597
|
updateOne(att.id, {
|
|
35732
35598
|
status: "ready",
|
|
35733
35599
|
progress: 100,
|
|
@@ -35735,7 +35601,7 @@ function useChatAttachments() {
|
|
|
35735
35601
|
viewToken: mintData.viewToken
|
|
35736
35602
|
});
|
|
35737
35603
|
} catch (err) {
|
|
35738
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
35604
|
+
if (_optionalChain([ctrl, 'optionalAccess', _893 => _893.signal, 'access', _894 => _894.aborted])) return;
|
|
35739
35605
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
35740
35606
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
35741
35607
|
} finally {
|
|
@@ -35886,7 +35752,7 @@ var ANON_DEFAULTS = {
|
|
|
35886
35752
|
function useChatIdentity() {
|
|
35887
35753
|
const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
|
|
35888
35754
|
const url = runtime.endpoints.identityUrl;
|
|
35889
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call',
|
|
35755
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _895 => _895(), 'optionalAccess', _896 => _896.email]), () => ( null));
|
|
35890
35756
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
35891
35757
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
35892
35758
|
_react.useEffect.call(void 0, () => {
|
|
@@ -35963,7 +35829,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
35963
35829
|
yield chunk;
|
|
35964
35830
|
}
|
|
35965
35831
|
} catch (err) {
|
|
35966
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
35832
|
+
if (_optionalChain([err, 'optionalAccess', _897 => _897.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
35967
35833
|
return;
|
|
35968
35834
|
}
|
|
35969
35835
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -36014,7 +35880,7 @@ function useChat({
|
|
|
36014
35880
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
36015
35881
|
onMessagesChangeRef.current = onMessagesChange;
|
|
36016
35882
|
_react.useEffect.call(void 0, () => {
|
|
36017
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
35883
|
+
_optionalChain([onMessagesChangeRef, 'access', _898 => _898.current, 'optionalCall', _899 => _899(messages)]);
|
|
36018
35884
|
}, [messages]);
|
|
36019
35885
|
const {
|
|
36020
35886
|
streamMessage,
|
|
@@ -36051,7 +35917,7 @@ function useChat({
|
|
|
36051
35917
|
name: "You",
|
|
36052
35918
|
content: text,
|
|
36053
35919
|
timestamp: /* @__PURE__ */ new Date(),
|
|
36054
|
-
..._optionalChain([options, 'optionalAccess',
|
|
35920
|
+
..._optionalChain([options, 'optionalAccess', _900 => _900.hidden]) ? { hidden: true } : {}
|
|
36055
35921
|
};
|
|
36056
35922
|
addMessage(userMessage);
|
|
36057
35923
|
setIsTyping(true);
|
|
@@ -36113,7 +35979,7 @@ function useChat({
|
|
|
36113
35979
|
currentTextSegment = "";
|
|
36114
35980
|
}
|
|
36115
35981
|
const seg = segment;
|
|
36116
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
35982
|
+
const proposalId = _optionalChain([seg, 'access', _901 => _901.data, 'optionalAccess', _902 => _902.requestId]);
|
|
36117
35983
|
const updateApprovalMessage = (transform) => {
|
|
36118
35984
|
setMessages((prev) => {
|
|
36119
35985
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -36122,7 +35988,7 @@ function useChat({
|
|
|
36122
35988
|
if (!Array.isArray(m.content)) continue;
|
|
36123
35989
|
const segments = m.content;
|
|
36124
35990
|
const hasMatch = segments.some(
|
|
36125
|
-
(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
|
|
36126
35992
|
);
|
|
36127
35993
|
if (!hasMatch) continue;
|
|
36128
35994
|
const next = [...prev];
|
|
@@ -36164,11 +36030,11 @@ function useChat({
|
|
|
36164
36030
|
if (!Array.isArray(m.content)) continue;
|
|
36165
36031
|
const segments = m.content;
|
|
36166
36032
|
const hasMatch = segments.some(
|
|
36167
|
-
(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
|
|
36168
36034
|
);
|
|
36169
36035
|
if (!hasMatch) continue;
|
|
36170
36036
|
const flipped = segments.map(
|
|
36171
|
-
(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
|
|
36172
36038
|
);
|
|
36173
36039
|
const next = [...prev];
|
|
36174
36040
|
next[i] = { ...m, content: flipped };
|
|
@@ -36330,8 +36196,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36330
36196
|
})),
|
|
36331
36197
|
{ role: "user", content: message2 }
|
|
36332
36198
|
];
|
|
36333
|
-
const targetPath = _optionalChain([extra, 'optionalAccess',
|
|
36334
|
-
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]) ? {
|
|
36335
36201
|
proposal_id: extra.approvalAction.proposalId,
|
|
36336
36202
|
action: extra.approvalAction.action,
|
|
36337
36203
|
messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
|
|
@@ -36340,8 +36206,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36340
36206
|
}))
|
|
36341
36207
|
} : {
|
|
36342
36208
|
messages: apiMessages,
|
|
36343
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
36344
|
-
..._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 } : {}
|
|
36345
36211
|
};
|
|
36346
36212
|
const response = await embedAuthedFetch(targetPath, {
|
|
36347
36213
|
method: "POST",
|
|
@@ -36351,7 +36217,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36351
36217
|
if (!response.ok) {
|
|
36352
36218
|
throw new Error(`Chat request failed: ${response.status}`);
|
|
36353
36219
|
}
|
|
36354
|
-
const reader = _optionalChain([response, 'access',
|
|
36220
|
+
const reader = _optionalChain([response, 'access', _913 => _913.body, 'optionalAccess', _914 => _914.getReader, 'call', _915 => _915()]);
|
|
36355
36221
|
if (!reader) throw new Error("No response body");
|
|
36356
36222
|
const decoder = new TextDecoder();
|
|
36357
36223
|
let buffer = "";
|
|
@@ -36403,7 +36269,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36403
36269
|
let meta;
|
|
36404
36270
|
try {
|
|
36405
36271
|
meta = JSON.parse(metaStr);
|
|
36406
|
-
} catch (
|
|
36272
|
+
} catch (e37) {
|
|
36407
36273
|
inText = true;
|
|
36408
36274
|
setStreamingPhase("streaming");
|
|
36409
36275
|
if (buffer.length > 0) {
|
|
@@ -36434,7 +36300,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36434
36300
|
const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
|
|
36435
36301
|
const result = _nullishCoalesce(meta.result, () => ( null));
|
|
36436
36302
|
const card = _nullishCoalesce(meta.card, () => ( null));
|
|
36437
|
-
if (_optionalChain([card, 'optionalAccess',
|
|
36303
|
+
if (_optionalChain([card, 'optionalAccess', _916 => _916.ref, 'optionalAccess', _917 => _917.id]) && _optionalChain([card, 'optionalAccess', _918 => _918.type])) {
|
|
36438
36304
|
const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
|
|
36439
36305
|
const key = buildChatRefKey(card.type, card.ref.id);
|
|
36440
36306
|
refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
|
|
@@ -36447,8 +36313,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36447
36313
|
willAutoContinue: meta.willAutoContinue === true,
|
|
36448
36314
|
...toolName ? { toolName } : {},
|
|
36449
36315
|
...result ? { result } : {},
|
|
36450
|
-
..._optionalChain([card, 'optionalAccess',
|
|
36451
|
-
..._optionalChain([card, 'optionalAccess',
|
|
36316
|
+
..._optionalChain([card, 'optionalAccess', _919 => _919.marker]) ? { marker: card.marker } : {},
|
|
36317
|
+
..._optionalChain([card, 'optionalAccess', _920 => _920.ref]) ? { cardRef: card.ref } : {},
|
|
36452
36318
|
...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
|
|
36453
36319
|
proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
|
|
36454
36320
|
};
|
|
@@ -36550,7 +36416,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
36550
36416
|
});
|
|
36551
36417
|
bumpMetaTick();
|
|
36552
36418
|
}
|
|
36553
|
-
} catch (
|
|
36419
|
+
} catch (e38) {
|
|
36554
36420
|
}
|
|
36555
36421
|
}
|
|
36556
36422
|
};
|
|
@@ -36566,7 +36432,7 @@ var CHAT_STORAGE_VERSION = 1;
|
|
|
36566
36432
|
var chatStorageKey = (source) => {
|
|
36567
36433
|
const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
|
|
36568
36434
|
const auth = getEmbedProxyAuth();
|
|
36569
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
36435
|
+
if (_optionalChain([auth, 'optionalAccess', _921 => _921.email])) {
|
|
36570
36436
|
return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
|
|
36571
36437
|
}
|
|
36572
36438
|
return base;
|
|
@@ -36589,7 +36455,7 @@ function pruneStaleChatStorage(source) {
|
|
|
36589
36455
|
for (const k of toRemove) {
|
|
36590
36456
|
window.localStorage.removeItem(k);
|
|
36591
36457
|
}
|
|
36592
|
-
} catch (
|
|
36458
|
+
} catch (e39) {
|
|
36593
36459
|
}
|
|
36594
36460
|
}
|
|
36595
36461
|
function loadPersistedChat(source) {
|
|
@@ -36606,7 +36472,7 @@ function loadPersistedChat(source) {
|
|
|
36606
36472
|
}
|
|
36607
36473
|
}
|
|
36608
36474
|
return parsed;
|
|
36609
|
-
} catch (
|
|
36475
|
+
} catch (e40) {
|
|
36610
36476
|
return null;
|
|
36611
36477
|
}
|
|
36612
36478
|
}
|
|
@@ -36614,7 +36480,7 @@ function savePersistedChat(source, state) {
|
|
|
36614
36480
|
if (typeof window === "undefined") return;
|
|
36615
36481
|
try {
|
|
36616
36482
|
window.localStorage.setItem(chatStorageKey(source), JSON.stringify(state));
|
|
36617
|
-
} catch (
|
|
36483
|
+
} catch (e41) {
|
|
36618
36484
|
}
|
|
36619
36485
|
}
|
|
36620
36486
|
function useSseChatAdapter(options) {
|
|
@@ -36625,7 +36491,7 @@ function useSseChatAdapter(options) {
|
|
|
36625
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."
|
|
36626
36492
|
);
|
|
36627
36493
|
}
|
|
36628
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36494
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _922 => _922.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
36629
36495
|
const persistedRef = _react.useRef.call(void 0, null);
|
|
36630
36496
|
if (persistedRef.current === null) {
|
|
36631
36497
|
pruneStaleChatStorage(source);
|
|
@@ -36693,7 +36559,7 @@ function useSseChatAdapter(options) {
|
|
|
36693
36559
|
}
|
|
36694
36560
|
setCmdIdByTableId(map);
|
|
36695
36561
|
}).catch((err) => {
|
|
36696
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
36562
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _923 => _923.name]) !== "AbortError") {
|
|
36697
36563
|
console.warn(
|
|
36698
36564
|
"[useSseChatAdapter] failed to fetch slash commands for displayRef:",
|
|
36699
36565
|
err
|
|
@@ -36746,7 +36612,7 @@ function useSseChatAdapter(options) {
|
|
|
36746
36612
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
36747
36613
|
sources = sourcesMapRef.current.get(lookupIdx);
|
|
36748
36614
|
chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
|
|
36749
|
-
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));
|
|
36750
36616
|
}
|
|
36751
36617
|
return {
|
|
36752
36618
|
id: m.id,
|
|
@@ -36794,7 +36660,7 @@ function useSseChatAdapter(options) {
|
|
|
36794
36660
|
);
|
|
36795
36661
|
return;
|
|
36796
36662
|
}
|
|
36797
|
-
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 : "";
|
|
36798
36664
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
36799
36665
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
36800
36666
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -36841,7 +36707,7 @@ function useSseChatAdapter(options) {
|
|
|
36841
36707
|
if (typeof window !== "undefined") {
|
|
36842
36708
|
try {
|
|
36843
36709
|
window.localStorage.removeItem(chatStorageKey(source));
|
|
36844
|
-
} catch (
|
|
36710
|
+
} catch (e42) {
|
|
36845
36711
|
}
|
|
36846
36712
|
}
|
|
36847
36713
|
}, [chatClearMessages, source, bumpMetaTick]);
|
|
@@ -36866,18 +36732,18 @@ function useSseChatAdapter(options) {
|
|
|
36866
36732
|
clearMessages,
|
|
36867
36733
|
streamingPhase,
|
|
36868
36734
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
36869
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36870
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36871
|
-
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)),
|
|
36872
36738
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
36873
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36739
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _933 => _933.inputTokens]), () => ( null)),
|
|
36874
36740
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
36875
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36741
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _934 => _934.outputTokens]), () => ( null)),
|
|
36876
36742
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
36877
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36743
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _935 => _935.cacheHitRatePct]), () => ( null)),
|
|
36878
36744
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
36879
36745
|
* token counts). null until the trailing usage frame lands. */
|
|
36880
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
36746
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _936 => _936.breakdown]), () => ( null))
|
|
36881
36747
|
};
|
|
36882
36748
|
}
|
|
36883
36749
|
|
|
@@ -36968,7 +36834,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
36968
36834
|
});
|
|
36969
36835
|
const sendMessage = _react.useCallback.call(void 0,
|
|
36970
36836
|
async (text, sendOptions) => {
|
|
36971
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
36837
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _937 => _937.hidden]), () => ( false));
|
|
36972
36838
|
setMessages((prev) => [
|
|
36973
36839
|
...prev,
|
|
36974
36840
|
{
|
|
@@ -37121,12 +36987,12 @@ function useProxiedImageUrl(url) {
|
|
|
37121
36987
|
|
|
37122
36988
|
// src/components/chat/utils/process-historical-messages.ts
|
|
37123
36989
|
function getOwnerDisplayName(owner) {
|
|
37124
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
36990
|
+
if (_optionalChain([owner, 'optionalAccess', _938 => _938.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
37125
36991
|
const { firstName, lastName } = owner.user;
|
|
37126
36992
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
37127
36993
|
if (name) return name;
|
|
37128
36994
|
}
|
|
37129
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
36995
|
+
return _optionalChain([owner, 'optionalAccess', _939 => _939.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
37130
36996
|
}
|
|
37131
36997
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
37132
36998
|
messageDataArray.forEach((data) => {
|
|
@@ -37189,10 +37055,10 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
37189
37055
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
37190
37056
|
return;
|
|
37191
37057
|
}
|
|
37192
|
-
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;
|
|
37193
37059
|
if (isUserMessage) {
|
|
37194
37060
|
flushAssistantMessage();
|
|
37195
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
37061
|
+
const userAuthorType = _optionalChain([msg, 'access', _944 => _944.owner, 'optionalAccess', _945 => _945.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
37196
37062
|
messageDataArray.forEach((data) => {
|
|
37197
37063
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
37198
37064
|
processedMessages.push({
|
|
@@ -37216,7 +37082,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
37216
37082
|
});
|
|
37217
37083
|
const nextMsg = messages[index + 1];
|
|
37218
37084
|
const isLastMessage = index === messages.length - 1;
|
|
37219
|
-
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);
|
|
37220
37086
|
if (isLastMessage || nextIsFromUser) {
|
|
37221
37087
|
flushAssistantMessage();
|
|
37222
37088
|
}
|
|
@@ -37326,7 +37192,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37326
37192
|
}
|
|
37327
37193
|
}
|
|
37328
37194
|
} else {
|
|
37329
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37195
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _950 => _950.set, 'call', _951 => _951(data.approvalRequestId, {
|
|
37330
37196
|
command: data.command || "",
|
|
37331
37197
|
explanation: data.explanation,
|
|
37332
37198
|
approvalType,
|
|
@@ -37339,8 +37205,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37339
37205
|
if ("approvalRequestId" in data && data.approvalRequestId) {
|
|
37340
37206
|
const existingStatus = approvalStatuses[data.approvalRequestId];
|
|
37341
37207
|
const status = existingStatus || (data.approved ? "approved" : "rejected");
|
|
37342
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37343
|
-
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) {
|
|
37344
37210
|
if (batchApprovalsEnabled) {
|
|
37345
37211
|
accumulator.addApprovalBatch(
|
|
37346
37212
|
data.approvalRequestId,
|
|
@@ -37360,7 +37226,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37360
37226
|
);
|
|
37361
37227
|
}
|
|
37362
37228
|
}
|
|
37363
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37229
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _955 => _955.delete, 'call', _956 => _956(data.approvalRequestId)]);
|
|
37364
37230
|
break;
|
|
37365
37231
|
}
|
|
37366
37232
|
if (escalatedData) {
|
|
@@ -37369,7 +37235,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37369
37235
|
explanation: escalatedData.explanation,
|
|
37370
37236
|
approvalType: escalatedData.approvalType
|
|
37371
37237
|
});
|
|
37372
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
37238
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _957 => _957.delete, 'call', _958 => _958(data.approvalRequestId)]);
|
|
37373
37239
|
}
|
|
37374
37240
|
const before = accumulator.getSegments();
|
|
37375
37241
|
const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
|
|
@@ -37385,10 +37251,10 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
37385
37251
|
case MESSAGE_TYPE.ERROR:
|
|
37386
37252
|
if ("error" in data) {
|
|
37387
37253
|
let message2;
|
|
37388
|
-
if ("details" in data && _optionalChain([data, 'optionalAccess',
|
|
37254
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _959 => _959.details])) {
|
|
37389
37255
|
try {
|
|
37390
|
-
message2 = _optionalChain([JSON, 'access',
|
|
37391
|
-
} 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) {
|
|
37392
37258
|
message2 = data.details;
|
|
37393
37259
|
}
|
|
37394
37260
|
}
|
|
@@ -37470,10 +37336,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
37470
37336
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
37471
37337
|
return;
|
|
37472
37338
|
}
|
|
37473
|
-
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;
|
|
37474
37340
|
if (isUserMessage) {
|
|
37475
37341
|
flushAssistantMessage();
|
|
37476
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
37342
|
+
const userAuthorType = _optionalChain([msg, 'access', _968 => _968.owner, 'optionalAccess', _969 => _969.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
37477
37343
|
messageDataArray.forEach((data) => {
|
|
37478
37344
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
37479
37345
|
processedMessages.push({
|
|
@@ -37497,7 +37363,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
37497
37363
|
});
|
|
37498
37364
|
const nextMsg = messages[index + 1];
|
|
37499
37365
|
const isLastMessage = index === messages.length - 1;
|
|
37500
|
-
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);
|
|
37501
37367
|
if (isLastMessage || nextIsFromUser) {
|
|
37502
37368
|
flushAssistantMessage();
|
|
37503
37369
|
}
|
|
@@ -37557,7 +37423,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
37557
37423
|
break;
|
|
37558
37424
|
case "approval_batch": {
|
|
37559
37425
|
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
37560
|
-
(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"
|
|
37561
37427
|
);
|
|
37562
37428
|
if (segment.status !== "rejected" && !allDone) {
|
|
37563
37429
|
hasIncompleteState = true;
|
|
@@ -37601,7 +37467,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
|
|
|
37601
37467
|
|
|
37602
37468
|
// node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
|
|
37603
37469
|
|
|
37604
|
-
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess',
|
|
37470
|
+
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess', _978 => _978.document]) ? React108.useLayoutEffect : () => {
|
|
37605
37471
|
};
|
|
37606
37472
|
|
|
37607
37473
|
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
@@ -37639,7 +37505,7 @@ function useControllableState({
|
|
|
37639
37505
|
if (isControlled) {
|
|
37640
37506
|
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
37641
37507
|
if (value2 !== prop) {
|
|
37642
|
-
_optionalChain([onChangeRef, 'access',
|
|
37508
|
+
_optionalChain([onChangeRef, 'access', _979 => _979.current, 'optionalCall', _980 => _980(value2)]);
|
|
37643
37509
|
}
|
|
37644
37510
|
} else {
|
|
37645
37511
|
setUncontrolledProp(nextValue);
|
|
@@ -37661,7 +37527,7 @@ function useUncontrolledState({
|
|
|
37661
37527
|
}, [onChange]);
|
|
37662
37528
|
React109.useEffect(() => {
|
|
37663
37529
|
if (prevValueRef.current !== value) {
|
|
37664
|
-
_optionalChain([onChangeRef, 'access',
|
|
37530
|
+
_optionalChain([onChangeRef, 'access', _981 => _981.current, 'optionalCall', _982 => _982(value)]);
|
|
37665
37531
|
prevValueRef.current = value;
|
|
37666
37532
|
}
|
|
37667
37533
|
}, [value, prevValueRef]);
|
|
@@ -38085,7 +37951,7 @@ function EmbeddableChatInner({
|
|
|
38085
37951
|
setCommandsById(map);
|
|
38086
37952
|
setCommandsLoaded(true);
|
|
38087
37953
|
}).catch((err) => {
|
|
38088
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
37954
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _983 => _983.name]) !== "AbortError") {
|
|
38089
37955
|
console.warn("[embeddable-chat] failed to fetch slash commands:", err);
|
|
38090
37956
|
setCommandsLoaded(true);
|
|
38091
37957
|
}
|
|
@@ -38109,7 +37975,7 @@ function EmbeddableChatInner({
|
|
|
38109
37975
|
}),
|
|
38110
37976
|
[commandsUrl]
|
|
38111
37977
|
);
|
|
38112
|
-
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;
|
|
38113
37979
|
const effectiveModes = _react.useMemo.call(void 0, () => {
|
|
38114
37980
|
if (modes) return modes;
|
|
38115
37981
|
const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
|
|
@@ -38123,7 +37989,7 @@ function EmbeddableChatInner({
|
|
|
38123
37989
|
if (controlledActiveMode === void 0) {
|
|
38124
37990
|
setUncontrolledActiveMode(next);
|
|
38125
37991
|
}
|
|
38126
|
-
_optionalChain([onActiveModeChange, 'optionalCall',
|
|
37992
|
+
_optionalChain([onActiveModeChange, 'optionalCall', _993 => _993(next)]);
|
|
38127
37993
|
},
|
|
38128
37994
|
[controlledActiveMode, onActiveModeChange]
|
|
38129
37995
|
);
|
|
@@ -38243,9 +38109,9 @@ function EmbeddableChatInner({
|
|
|
38243
38109
|
const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
|
|
38244
38110
|
const lastSources = _react.useMemo.call(void 0, () => {
|
|
38245
38111
|
if (chatLoading) return void 0;
|
|
38246
|
-
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
38112
|
+
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _994 => _994.sources]);
|
|
38247
38113
|
if (!sources || sources.length === 0) return void 0;
|
|
38248
|
-
const content = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
38114
|
+
const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _995 => _995.content]) || "";
|
|
38249
38115
|
const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
|
|
38250
38116
|
(m) => parseInt(m[1], 10)
|
|
38251
38117
|
);
|
|
@@ -39221,4 +39087,4 @@ function EmbeddableChatInner({
|
|
|
39221
39087
|
|
|
39222
39088
|
|
|
39223
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;
|
|
39224
|
-
//# sourceMappingURL=chunk-
|
|
39090
|
+
//# sourceMappingURL=chunk-ZDF6F7ED.cjs.map
|