@flamingo-stack/openframe-frontend-core 0.0.552 → 0.0.553-1815.4814.1
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-KSGQG6WU.js → chunk-27WZGFQZ.js} +2 -2
- package/dist/{chunk-WXDDPK7T.js → chunk-2JYC2GZV.js} +4 -4
- package/dist/{chunk-7TRIUG7Q.js → chunk-3RBHFJ3L.js} +5 -5
- package/dist/{chunk-TI75367M.js → chunk-3RPRI46G.js} +651 -548
- package/dist/chunk-3RPRI46G.js.map +1 -0
- package/dist/{chunk-4DD3223G.js → chunk-4NICA4QT.js} +6 -6
- package/dist/{chunk-Y64725GI.cjs → chunk-5AB6GPNZ.cjs} +61 -61
- package/dist/{chunk-Y64725GI.cjs.map → chunk-5AB6GPNZ.cjs.map} +1 -1
- package/dist/{chunk-SIXNMDYY.js → chunk-77BW6SN6.js} +2 -2
- package/dist/{chunk-Y6PD76R6.js → chunk-7VIJUKWE.js} +2 -2
- package/dist/{chunk-HK5YRHEN.cjs → chunk-CWQKH7BW.cjs} +9 -9
- package/dist/{chunk-HK5YRHEN.cjs.map → chunk-CWQKH7BW.cjs.map} +1 -1
- package/dist/{chunk-PVPXI5V6.cjs → chunk-HDUBS5Y5.cjs} +31 -31
- package/dist/{chunk-PVPXI5V6.cjs.map → chunk-HDUBS5Y5.cjs.map} +1 -1
- package/dist/{chunk-X4RCWYYF.cjs → chunk-I2WN5X6Q.cjs} +798 -695
- package/dist/chunk-I2WN5X6Q.cjs.map +1 -0
- package/dist/{chunk-RMTTW7LG.cjs → chunk-IBDY7C65.cjs} +27 -27
- package/dist/{chunk-RMTTW7LG.cjs.map → chunk-IBDY7C65.cjs.map} +1 -1
- package/dist/{chunk-MVE2YQVG.cjs → chunk-IBEZSTFR.cjs} +20 -20
- package/dist/{chunk-MVE2YQVG.cjs.map → chunk-IBEZSTFR.cjs.map} +1 -1
- package/dist/{chunk-Z5UK7SKC.js → chunk-KJSLAD6K.js} +4 -4
- package/dist/{chunk-6MHMEF5W.cjs → chunk-MOL2OYPN.cjs} +39 -39
- package/dist/{chunk-6MHMEF5W.cjs.map → chunk-MOL2OYPN.cjs.map} +1 -1
- package/dist/{chunk-7MPOW46J.js → chunk-ND53XFLK.js} +2 -2
- package/dist/{chunk-4XG7TG7B.cjs → chunk-NLGMSRVW.cjs} +7 -7
- package/dist/{chunk-4XG7TG7B.cjs.map → chunk-NLGMSRVW.cjs.map} +1 -1
- package/dist/{chunk-SXXIV7IL.cjs → chunk-NTOO6MFG.cjs} +86 -86
- package/dist/{chunk-SXXIV7IL.cjs.map → chunk-NTOO6MFG.cjs.map} +1 -1
- package/dist/{chunk-6J6Q5QEM.cjs → chunk-RWFUYIOD.cjs} +4 -4
- package/dist/{chunk-6J6Q5QEM.cjs.map → chunk-RWFUYIOD.cjs.map} +1 -1
- package/dist/{chunk-XEOZB5DX.cjs → chunk-SS4ZY4RI.cjs} +3 -3
- package/dist/{chunk-XEOZB5DX.cjs.map → chunk-SS4ZY4RI.cjs.map} +1 -1
- package/dist/{chunk-RJEP74Z4.js → chunk-T3FQIBZB.js} +2 -2
- package/dist/{chunk-BFOXIIM4.js → chunk-TOLUP7IV.js} +2 -2
- package/dist/{chunk-OVQ3O66O.cjs → chunk-TPTBRKY6.cjs} +5 -5
- package/dist/{chunk-OVQ3O66O.cjs.map → chunk-TPTBRKY6.cjs.map} +1 -1
- package/dist/{chunk-RJSDYOFD.js → chunk-TUOUCWOB.js} +2 -2
- package/dist/{chunk-CMDPARDV.js → chunk-VL3LF754.js} +2 -2
- package/dist/{chunk-DOPZ5LCH.cjs → chunk-X5ANHCAH.cjs} +14 -14
- package/dist/{chunk-DOPZ5LCH.cjs.map → chunk-X5ANHCAH.cjs.map} +1 -1
- package/dist/{chunk-6XOJTTWY.js → chunk-XEQMFPML.js} +2 -2
- package/dist/{chunk-RMWLUKTC.cjs → chunk-Y4WUGTXF.cjs} +11 -11
- package/dist/{chunk-RMWLUKTC.cjs.map → chunk-Y4WUGTXF.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/board/board-column.d.ts +6 -3
- package/dist/components/features/board/board-column.d.ts.map +1 -1
- package/dist/components/features/board/board.d.ts +3 -3
- package/dist/components/features/board/board.d.ts.map +1 -1
- package/dist/components/features/board/drop-target.d.ts +64 -0
- package/dist/components/features/board/drop-target.d.ts.map +1 -0
- package/dist/components/features/board/ticket-card.d.ts +11 -6
- package/dist/components/features/board/ticket-card.d.ts.map +1 -1
- package/dist/components/features/board/use-lane-scroll-anchor.d.ts +24 -0
- package/dist/components/features/board/use-lane-scroll-anchor.d.ts.map +1 -0
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +131 -131
- package/dist/components/index.js +11 -11
- package/dist/components/meeting-scheduler/index.cjs +28 -28
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/__tests__/board-drop-target.test.ts +218 -0
- package/src/components/features/board/board-column.tsx +50 -40
- package/src/components/features/board/board.tsx +42 -40
- package/src/components/features/board/drop-target.ts +164 -0
- package/src/components/features/board/ticket-card.tsx +36 -16
- package/src/components/features/board/use-lane-scroll-anchor.ts +75 -0
- package/src/stories/Board.stories.tsx +16 -7
- package/dist/chunk-TI75367M.js.map +0 -1
- package/dist/chunk-X4RCWYYF.cjs.map +0 -1
- /package/dist/{chunk-KSGQG6WU.js.map → chunk-27WZGFQZ.js.map} +0 -0
- /package/dist/{chunk-WXDDPK7T.js.map → chunk-2JYC2GZV.js.map} +0 -0
- /package/dist/{chunk-7TRIUG7Q.js.map → chunk-3RBHFJ3L.js.map} +0 -0
- /package/dist/{chunk-4DD3223G.js.map → chunk-4NICA4QT.js.map} +0 -0
- /package/dist/{chunk-SIXNMDYY.js.map → chunk-77BW6SN6.js.map} +0 -0
- /package/dist/{chunk-Y6PD76R6.js.map → chunk-7VIJUKWE.js.map} +0 -0
- /package/dist/{chunk-Z5UK7SKC.js.map → chunk-KJSLAD6K.js.map} +0 -0
- /package/dist/{chunk-7MPOW46J.js.map → chunk-ND53XFLK.js.map} +0 -0
- /package/dist/{chunk-RJEP74Z4.js.map → chunk-T3FQIBZB.js.map} +0 -0
- /package/dist/{chunk-BFOXIIM4.js.map → chunk-TOLUP7IV.js.map} +0 -0
- /package/dist/{chunk-RJSDYOFD.js.map → chunk-TUOUCWOB.js.map} +0 -0
- /package/dist/{chunk-CMDPARDV.js.map → chunk-VL3LF754.js.map} +0 -0
- /package/dist/{chunk-6XOJTTWY.js.map → chunk-XEQMFPML.js.map} +0 -0
|
@@ -292,7 +292,7 @@ var _chunkVRHGVLSLcjs = require('./chunk-VRHGVLSL.cjs');
|
|
|
292
292
|
|
|
293
293
|
// src/components/pagination.tsx
|
|
294
294
|
var _lucidereact = require('lucide-react');
|
|
295
|
-
var _react = require('react'); var
|
|
295
|
+
var _react = require('react'); var React126 = _interopRequireWildcard(_react); var React = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React5 = _interopRequireWildcard(_react); var React22 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React11 = _interopRequireWildcard(_react); var React12 = _interopRequireWildcard(_react); var React14 = _interopRequireWildcard(_react); var React17 = _interopRequireWildcard(_react); var React16 = _interopRequireWildcard(_react); var React15 = _interopRequireWildcard(_react); var React20 = _interopRequireWildcard(_react); var React18 = _interopRequireWildcard(_react); var React19 = _interopRequireWildcard(_react); var React23 = _interopRequireWildcard(_react); var React21 = _interopRequireWildcard(_react); var React24 = _interopRequireWildcard(_react); var React25 = _interopRequireWildcard(_react); var React27 = _interopRequireWildcard(_react); var React26 = _interopRequireWildcard(_react); var React28 = _interopRequireWildcard(_react); var React29 = _interopRequireWildcard(_react); var React32 = _interopRequireWildcard(_react); var React30 = _interopRequireWildcard(_react); var React33 = _interopRequireWildcard(_react); var React34 = _interopRequireWildcard(_react); var React37 = _interopRequireWildcard(_react); var React44 = _interopRequireWildcard(_react); var React45 = _interopRequireWildcard(_react); var React46 = _interopRequireWildcard(_react); var React48 = _interopRequireWildcard(_react); var React47 = _interopRequireWildcard(_react); var React50 = _interopRequireWildcard(_react); var React49 = _interopRequireWildcard(_react); var React54 = _interopRequireWildcard(_react); var React53 = _interopRequireWildcard(_react); var React55 = _interopRequireWildcard(_react); var React56 = _interopRequireWildcard(_react); var React60 = _interopRequireWildcard(_react); var React61 = _interopRequireWildcard(_react); var React62 = _interopRequireWildcard(_react); var React63 = _interopRequireWildcard(_react); var React64 = _interopRequireWildcard(_react); var React65 = _interopRequireWildcard(_react); var React66 = _interopRequireWildcard(_react); var React67 = _interopRequireWildcard(_react); var React68 = _interopRequireWildcard(_react); var React69 = _interopRequireWildcard(_react); var React70 = _interopRequireWildcard(_react); var React71 = _interopRequireWildcard(_react); var React72 = _interopRequireWildcard(_react); var React73 = _interopRequireWildcard(_react); var React74 = _interopRequireWildcard(_react); var React75 = _interopRequireWildcard(_react); var React76 = _interopRequireWildcard(_react); var React78 = _interopRequireWildcard(_react); var React80 = _interopRequireWildcard(_react); var React90 = _interopRequireWildcard(_react); var React89 = _interopRequireWildcard(_react); var React93 = _interopRequireWildcard(_react); var React94 = _interopRequireWildcard(_react); var React96 = _interopRequireWildcard(_react); var React97 = _interopRequireWildcard(_react); var React102 = _interopRequireWildcard(_react); var React106 = _interopRequireWildcard(_react); var React107 = _interopRequireWildcard(_react); var React108 = _interopRequireWildcard(_react); var React109 = _interopRequireWildcard(_react); var React110 = _interopRequireWildcard(_react); var React111 = _interopRequireWildcard(_react); var React123 = _interopRequireWildcard(_react); var React122 = _interopRequireWildcard(_react); var React125 = _interopRequireWildcard(_react); var React128 = _interopRequireWildcard(_react); var React129 = _interopRequireWildcard(_react); var React131 = _interopRequireWildcard(_react); var React132 = _interopRequireWildcard(_react); var React135 = _interopRequireWildcard(_react); var React134 = _interopRequireWildcard(_react); var React133 = _interopRequireWildcard(_react); var React136 = _interopRequireWildcard(_react); var React138 = _interopRequireWildcard(_react); var React137 = _interopRequireWildcard(_react); var React139 = _interopRequireWildcard(_react); var React140 = _interopRequireWildcard(_react); var React141 = _interopRequireWildcard(_react); var React149 = _interopRequireWildcard(_react); var React148 = _interopRequireWildcard(_react);
|
|
296
296
|
var _jsxruntime = require('react/jsx-runtime');
|
|
297
297
|
var Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationEllipsis, PaginationPrevious, PaginationNext;
|
|
298
298
|
var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
|
|
@@ -384,19 +384,19 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
|
|
|
384
384
|
) })
|
|
385
385
|
] }) });
|
|
386
386
|
};
|
|
387
|
-
PaginationContent = exports.PaginationContent =
|
|
387
|
+
PaginationContent = exports.PaginationContent = React126.forwardRef(
|
|
388
388
|
({ className, ...props }, ref) => {
|
|
389
389
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex items-center justify-center", className), ...props });
|
|
390
390
|
}
|
|
391
391
|
);
|
|
392
392
|
PaginationContent.displayName = "PaginationContent";
|
|
393
|
-
PaginationItem = exports.PaginationItem =
|
|
393
|
+
PaginationItem = exports.PaginationItem = React126.forwardRef(
|
|
394
394
|
({ className, ...props }, ref) => {
|
|
395
395
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, "", className), ...props });
|
|
396
396
|
}
|
|
397
397
|
);
|
|
398
398
|
PaginationItem.displayName = "PaginationItem";
|
|
399
|
-
PaginationLink = exports.PaginationLink =
|
|
399
|
+
PaginationLink = exports.PaginationLink = React126.forwardRef(
|
|
400
400
|
({ className, ...props }, ref) => {
|
|
401
401
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
402
402
|
"button",
|
|
@@ -412,7 +412,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
|
|
|
412
412
|
}
|
|
413
413
|
);
|
|
414
414
|
PaginationLink.displayName = "PaginationLink";
|
|
415
|
-
PaginationEllipsis = exports.PaginationEllipsis =
|
|
415
|
+
PaginationEllipsis = exports.PaginationEllipsis = React126.forwardRef(
|
|
416
416
|
({ className, ...props }, ref) => {
|
|
417
417
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
418
418
|
"span",
|
|
@@ -429,7 +429,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
|
|
|
429
429
|
}
|
|
430
430
|
);
|
|
431
431
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
432
|
-
PaginationPrevious = exports.PaginationPrevious =
|
|
432
|
+
PaginationPrevious = exports.PaginationPrevious = React126.forwardRef(
|
|
433
433
|
({ className, ...props }, ref) => {
|
|
434
434
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7INXXQVKcjs.Button, { ref, variant: "outline", size: "icon", className: _chunkKI4EGKNVcjs.cn.call(void 0, "h-10 w-10", className), ...props, children: [
|
|
435
435
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
|
|
@@ -438,7 +438,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
|
|
|
438
438
|
}
|
|
439
439
|
);
|
|
440
440
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
441
|
-
PaginationNext = exports.PaginationNext =
|
|
441
|
+
PaginationNext = exports.PaginationNext = React126.forwardRef(
|
|
442
442
|
({ className, ...props }, ref) => {
|
|
443
443
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7INXXQVKcjs.Button, { ref, variant: "outline", size: "icon", className: _chunkKI4EGKNVcjs.cn.call(void 0, "h-10 w-10", className), ...props, children: [
|
|
444
444
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
|
|
@@ -4970,7 +4970,7 @@ var ActionsMenu = ({
|
|
|
4970
4970
|
className: `relative min-w-[256px] max-h-[var(--radix-popper-available-height)] bg-ods-bg border border-ods-border rounded-md shadow-lg overflow-y-auto ${className}`,
|
|
4971
4971
|
children: groups.map((group, groupIndex) => {
|
|
4972
4972
|
const groupKey = group.id || group.items.map((i) => i.id).join("|");
|
|
4973
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4973
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
|
|
4974
4974
|
group.items.map((item, itemIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4975
4975
|
MenuItem,
|
|
4976
4976
|
{
|
|
@@ -5007,8 +5007,8 @@ var ActionsMenuDropdown = ({
|
|
|
5007
5007
|
onChange: onOpenChange
|
|
5008
5008
|
});
|
|
5009
5009
|
useReportOverlayOpen(open);
|
|
5010
|
-
const triggerRef =
|
|
5011
|
-
|
|
5010
|
+
const triggerRef = React126.default.useRef(null);
|
|
5011
|
+
React126.default.useEffect(() => {
|
|
5012
5012
|
if (!open) return;
|
|
5013
5013
|
if (typeof document === "undefined") return;
|
|
5014
5014
|
const trigger2 = triggerRef.current;
|
|
@@ -7868,7 +7868,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
7868
7868
|
cache.set(key, entry);
|
|
7869
7869
|
}
|
|
7870
7870
|
const rendered = entry.node;
|
|
7871
|
-
if (
|
|
7871
|
+
if (React126.default.isValidElement(rendered) && rendered.type === BlockCard) {
|
|
7872
7872
|
const props2 = rendered.props;
|
|
7873
7873
|
const markerEnd = match2.index + match2[0].length;
|
|
7874
7874
|
parts.push({ kind: "text", text: text.slice(cursor, markerEnd) });
|
|
@@ -11921,7 +11921,7 @@ var formatTokenCount = (count) => {
|
|
|
11921
11921
|
return String(count);
|
|
11922
11922
|
};
|
|
11923
11923
|
var hasAnyBreakdownRow = (breakdown) => !!breakdown && !!(breakdown.haikuRewriter || breakdown.haikuClassifier || breakdown.haikuSummarizer);
|
|
11924
|
-
var ModelDisplay =
|
|
11924
|
+
var ModelDisplay = React126.default.forwardRef(
|
|
11925
11925
|
({
|
|
11926
11926
|
className,
|
|
11927
11927
|
provider,
|
|
@@ -12043,7 +12043,7 @@ function BreakdownRow({
|
|
|
12043
12043
|
] });
|
|
12044
12044
|
}
|
|
12045
12045
|
ModelDisplay.displayName = "ModelDisplay";
|
|
12046
|
-
var ModelDisplaySkeleton =
|
|
12046
|
+
var ModelDisplaySkeleton = React126.default.forwardRef(
|
|
12047
12047
|
({ className, showTokens = false, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
12048
12048
|
"div",
|
|
12049
12049
|
{
|
|
@@ -13663,7 +13663,7 @@ function VideoUnmuteGlyph({ size: size2 = "md", className }) {
|
|
|
13663
13663
|
|
|
13664
13664
|
// src/utils/fetch-priority.ts
|
|
13665
13665
|
|
|
13666
|
-
var REACT_MAJOR = parseInt((
|
|
13666
|
+
var REACT_MAJOR = parseInt((React126.default.version || "0").split(".")[0], 10);
|
|
13667
13667
|
var USE_CAMEL_CASE_FETCH_PRIORITY = REACT_MAJOR >= 19;
|
|
13668
13668
|
function fetchPriorityProp(priority) {
|
|
13669
13669
|
const value = priority === void 0 ? "auto" : typeof priority === "boolean" ? priority ? "high" : "low" : priority;
|
|
@@ -14788,7 +14788,7 @@ function ManagedCell({
|
|
|
14788
14788
|
cardWidthMobile,
|
|
14789
14789
|
cardWidthDesktop
|
|
14790
14790
|
}) {
|
|
14791
|
-
const hintedWidth =
|
|
14791
|
+
const hintedWidth = React126.default.isValidElement(item) ? item.props["data-strip-cell-width"] : void 0;
|
|
14792
14792
|
const desktopWidth = typeof hintedWidth === "number" ? hintedWidth : cardWidthDesktop;
|
|
14793
14793
|
const cloneRef = _chunk5RJUHUCIcjs.useSuppressCloneFocus.call(void 0, ctx.isClone);
|
|
14794
14794
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -14832,7 +14832,7 @@ function CardsStrip(props) {
|
|
|
14832
14832
|
} = props;
|
|
14833
14833
|
const childrenMode = props.renderCard === void 0;
|
|
14834
14834
|
const childItems = _react.useMemo.call(void 0,
|
|
14835
|
-
() => childrenMode ?
|
|
14835
|
+
() => childrenMode ? React126.default.Children.toArray(props.children) : EMPTY_CHILDREN,
|
|
14836
14836
|
[childrenMode, props.children]
|
|
14837
14837
|
);
|
|
14838
14838
|
const items = childrenMode ? childItems : props.items;
|
|
@@ -14841,7 +14841,7 @@ function CardsStrip(props) {
|
|
|
14841
14841
|
_react.useEffect.call(void 0, () => {
|
|
14842
14842
|
if (process.env.NODE_ENV === "production" || !childrenMode) return;
|
|
14843
14843
|
const only = childItems.length === 1 ? childItems[0] : null;
|
|
14844
|
-
if (
|
|
14844
|
+
if (React126.default.isValidElement(only) && only.type === React126.default.Fragment) {
|
|
14845
14845
|
console.warn(
|
|
14846
14846
|
"[CardsStrip] A single <Fragment> child becomes ONE giant cell \u2014 pass an array of card elements ({rows.map(...)}) instead."
|
|
14847
14847
|
);
|
|
@@ -14851,7 +14851,7 @@ function CardsStrip(props) {
|
|
|
14851
14851
|
if (!childrenMode) {
|
|
14852
14852
|
return props.itemKey(item, index);
|
|
14853
14853
|
}
|
|
14854
|
-
return
|
|
14854
|
+
return React126.default.isValidElement(item) && item.key != null ? String(item.key) : String(index);
|
|
14855
14855
|
};
|
|
14856
14856
|
const wrapperRef = _react.useRef.call(void 0, null);
|
|
14857
14857
|
const scrollerRef = _react.useRef.call(void 0, null);
|
|
@@ -15127,7 +15127,7 @@ function CardsStrip(props) {
|
|
|
15127
15127
|
// ctx.isClone) and the managed cell's job in children mode.
|
|
15128
15128
|
// The engine itself adds no wrapper here in render-prop mode
|
|
15129
15129
|
// so the card root stays the track's direct child.
|
|
15130
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15130
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderItem(item, {
|
|
15131
15131
|
index: i,
|
|
15132
15132
|
cardKey: key,
|
|
15133
15133
|
isClone,
|
|
@@ -15582,7 +15582,7 @@ function ChatVideoEntityCard({
|
|
|
15582
15582
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
15583
15583
|
|
|
15584
15584
|
|
|
15585
|
-
var InteractiveCard =
|
|
15585
|
+
var InteractiveCard = React126.default.forwardRef(
|
|
15586
15586
|
({
|
|
15587
15587
|
children,
|
|
15588
15588
|
onClick,
|
|
@@ -19609,7 +19609,7 @@ function InfoCard({ data, className = "" }) {
|
|
|
19609
19609
|
(data.items.length > 0 || data.progress) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)] items-start self-stretch w-full", children: [
|
|
19610
19610
|
data.items.map((item, index) => {
|
|
19611
19611
|
const values = Array.isArray(item.value) ? item.value : [item.value];
|
|
19612
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
19612
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: values.map((val, valIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
19613
19613
|
InfoCardValueRow,
|
|
19614
19614
|
{
|
|
19615
19615
|
label: item.label,
|
|
@@ -20264,7 +20264,7 @@ var noDataActionsVariants = _classvarianceauthority.cva.call(void 0, "overflow-h
|
|
|
20264
20264
|
|
|
20265
20265
|
// src/components/ui/no-data/no-data-message.tsx
|
|
20266
20266
|
|
|
20267
|
-
var NoDataMessage =
|
|
20267
|
+
var NoDataMessage = React126.default.forwardRef(
|
|
20268
20268
|
function NoDataMessage2({ icon, title, description, className, ...props }, ref) {
|
|
20269
20269
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20270
20270
|
"div",
|
|
@@ -20291,7 +20291,7 @@ var NoDataMessage = React129.default.forwardRef(
|
|
|
20291
20291
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
20292
20292
|
|
|
20293
20293
|
|
|
20294
|
-
var NoDataAction =
|
|
20294
|
+
var NoDataAction = React126.default.forwardRef(
|
|
20295
20295
|
function NoDataAction2({ icon, label, children, className, ...props }, ref) {
|
|
20296
20296
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20297
20297
|
"div",
|
|
@@ -20311,16 +20311,16 @@ var NoDataAction = React129.default.forwardRef(
|
|
|
20311
20311
|
);
|
|
20312
20312
|
}
|
|
20313
20313
|
);
|
|
20314
|
-
var NoDataActions =
|
|
20314
|
+
var NoDataActions = React126.default.forwardRef(
|
|
20315
20315
|
function NoDataActions2({ actions, variant = "outline", className, children, ...props }, ref) {
|
|
20316
|
-
const blocks = actions ? actions.map((action, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NoDataAction, { ...action }, index)) :
|
|
20316
|
+
const blocks = actions ? actions.map((action, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NoDataAction, { ...action }, index)) : React126.default.Children.toArray(children);
|
|
20317
20317
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20318
20318
|
"div",
|
|
20319
20319
|
{
|
|
20320
20320
|
ref,
|
|
20321
20321
|
className: _chunkKI4EGKNVcjs.cn.call(void 0, noDataActionsVariants({ variant }), "flex w-full flex-col md:w-auto md:flex-row", className),
|
|
20322
20322
|
...props,
|
|
20323
|
-
children: blocks.map((block, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20323
|
+
children: blocks.map((block, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
|
|
20324
20324
|
index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20325
20325
|
"div",
|
|
20326
20326
|
{
|
|
@@ -20337,7 +20337,7 @@ var NoDataActions = React129.default.forwardRef(
|
|
|
20337
20337
|
|
|
20338
20338
|
// src/components/ui/no-data/no-data.tsx
|
|
20339
20339
|
|
|
20340
|
-
var NoData =
|
|
20340
|
+
var NoData = React126.default.forwardRef(function NoData2({
|
|
20341
20341
|
icon,
|
|
20342
20342
|
title,
|
|
20343
20343
|
description,
|
|
@@ -26290,7 +26290,7 @@ function IconButtonsVariant({
|
|
|
26290
26290
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: [
|
|
26291
26291
|
selector,
|
|
26292
26292
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
26293
|
-
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26293
|
+
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
26294
26294
|
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: menuActions })
|
|
26295
26295
|
] })
|
|
26296
26296
|
] }),
|
|
@@ -26313,7 +26313,7 @@ function PrimaryButtonsVariant({
|
|
|
26313
26313
|
// No overflow trigger in this variant — an unknown action set settles
|
|
26314
26314
|
// into a labelled button, not a square one.
|
|
26315
26315
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions, emptyFallback: "label" })
|
|
26316
|
-
) : desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26316
|
+
) : desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
|
|
26317
26317
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileBottomActions, { actions: sortedActions, loading })
|
|
26318
26318
|
] });
|
|
26319
26319
|
}
|
|
@@ -26336,7 +26336,7 @@ function MenuPrimaryVariant({
|
|
|
26336
26336
|
selector,
|
|
26337
26337
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
26338
26338
|
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: menuActions }),
|
|
26339
|
-
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26339
|
+
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
|
|
26340
26340
|
] })
|
|
26341
26341
|
] }),
|
|
26342
26342
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
|
|
@@ -26351,7 +26351,7 @@ function MobileBottomActions({ actions, loading }) {
|
|
|
26351
26351
|
// fixed variant is what keeps the 24px the bar has always had.
|
|
26352
26352
|
"flex items-start p-[var(--spacing-system-lf)]",
|
|
26353
26353
|
ACTIONS_GAP
|
|
26354
|
-
), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions, fullWidth: true, emptyFallback: "label" }) : actions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26354
|
+
), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions, fullWidth: true, emptyFallback: "label" }) : actions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
|
|
26355
26355
|
}
|
|
26356
26356
|
function usePageActionsBottomPadding(variant) {
|
|
26357
26357
|
return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
|
|
@@ -26657,8 +26657,8 @@ _chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
|
26657
26657
|
|
|
26658
26658
|
function EntityImage({ src, alt, fallbackText, className }) {
|
|
26659
26659
|
const resolvedSrc = _chunk5RJUHUCIcjs.useAuthedImageSrc.call(void 0, src);
|
|
26660
|
-
const [imageFailed, setImageFailed] =
|
|
26661
|
-
|
|
26660
|
+
const [imageFailed, setImageFailed] = React126.default.useState(false);
|
|
26661
|
+
React126.default.useEffect(() => {
|
|
26662
26662
|
setImageFailed(false);
|
|
26663
26663
|
}, [resolvedSrc]);
|
|
26664
26664
|
const showFallback = imageFailed || !resolvedSrc;
|
|
@@ -29068,7 +29068,7 @@ var BenefitCardGrid = ({
|
|
|
29068
29068
|
className = "",
|
|
29069
29069
|
columns = 2
|
|
29070
29070
|
}) => {
|
|
29071
|
-
const childrenArray =
|
|
29071
|
+
const childrenArray = React126.default.Children.toArray(children);
|
|
29072
29072
|
const gridClass = columns === 4 ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4" : columns === 3 ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3" : "flex flex-col md:flex-row";
|
|
29073
29073
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
29074
29074
|
"bg-ods-card rounded-lg shadow-ods-card border border-ods-border overflow-hidden",
|
|
@@ -29089,7 +29089,7 @@ var BenefitCardGrid = ({
|
|
|
29089
29089
|
} else {
|
|
29090
29090
|
borderClass = isLastItem ? "border-b-0" : "border-b md:border-b-0 md:border-r border-ods-border";
|
|
29091
29091
|
}
|
|
29092
|
-
return
|
|
29092
|
+
return React126.default.cloneElement(child, {
|
|
29093
29093
|
key: index,
|
|
29094
29094
|
className: borderClass
|
|
29095
29095
|
});
|
|
@@ -29106,7 +29106,7 @@ function BrandAssociationCard({
|
|
|
29106
29106
|
className = ""
|
|
29107
29107
|
}) {
|
|
29108
29108
|
const renderIcon = () => {
|
|
29109
|
-
if (
|
|
29109
|
+
if (React126.default.isValidElement(item.icon)) {
|
|
29110
29110
|
return item.icon;
|
|
29111
29111
|
}
|
|
29112
29112
|
const IconComponent = item.icon;
|
|
@@ -30000,11 +30000,11 @@ function DropdownButton({
|
|
|
30000
30000
|
side = "bottom",
|
|
30001
30001
|
onCloseAutoFocus
|
|
30002
30002
|
}) {
|
|
30003
|
-
const [open, setOpen] =
|
|
30004
|
-
|
|
30003
|
+
const [open, setOpen] = React126.default.useState(false);
|
|
30004
|
+
React126.default.useEffect(() => {
|
|
30005
30005
|
if (disabled || loading) setOpen(false);
|
|
30006
30006
|
}, [disabled, loading]);
|
|
30007
|
-
const handleOpenChange =
|
|
30007
|
+
const handleOpenChange = React126.default.useCallback(
|
|
30008
30008
|
(next) => {
|
|
30009
30009
|
if (next && (disabled || loading)) return;
|
|
30010
30010
|
setOpen(next);
|
|
@@ -34068,7 +34068,7 @@ function ReleaseMediaManager({
|
|
|
34068
34068
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
34069
34069
|
|
|
34070
34070
|
|
|
34071
|
-
var SelectButton =
|
|
34071
|
+
var SelectButton = React126.default.forwardRef(
|
|
34072
34072
|
({ title, description, selected = false, disabled = false, icon, image, tag, tagVariant = "outline", onClick, className }, ref) => {
|
|
34073
34073
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
34074
34074
|
"button",
|
|
@@ -39534,9 +39534,6 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
39534
39534
|
|
|
39535
39535
|
|
|
39536
39536
|
|
|
39537
|
-
|
|
39538
|
-
|
|
39539
|
-
|
|
39540
39537
|
var _core = require('@dnd-kit/core');
|
|
39541
39538
|
var _sortable = require('@dnd-kit/sortable');
|
|
39542
39539
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
@@ -39712,6 +39709,35 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
39712
39709
|
] });
|
|
39713
39710
|
}
|
|
39714
39711
|
|
|
39712
|
+
// src/components/features/board/use-lane-scroll-anchor.ts
|
|
39713
|
+
|
|
39714
|
+
var TICKET_ID_ATTRIBUTE = "data-ticket-id";
|
|
39715
|
+
function cardPositions(root) {
|
|
39716
|
+
return Array.from(root.querySelectorAll(`[${TICKET_ID_ATTRIBUTE}]`)).map((element) => ({
|
|
39717
|
+
id: _nullishCoalesce(element.getAttribute(TICKET_ID_ATTRIBUTE), () => ( "")),
|
|
39718
|
+
offsetTop: element.offsetTop
|
|
39719
|
+
}));
|
|
39720
|
+
}
|
|
39721
|
+
function useLaneScrollAnchor(scrollRef, tickets) {
|
|
39722
|
+
const positionsRef = _react.useRef.call(void 0, []);
|
|
39723
|
+
_chunk5RJUHUCIcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
39724
|
+
const root = scrollRef.current;
|
|
39725
|
+
if (!root) return;
|
|
39726
|
+
const previous = positionsRef.current;
|
|
39727
|
+
const scrollTop = root.scrollTop;
|
|
39728
|
+
const current = cardPositions(root);
|
|
39729
|
+
if (previous.length > 0 && scrollTop > 0) {
|
|
39730
|
+
const anchor = _nullishCoalesce(previous.find((card) => card.offsetTop >= scrollTop), () => ( previous[previous.length - 1]));
|
|
39731
|
+
const moved = current.find((card) => card.id === anchor.id);
|
|
39732
|
+
if (moved) {
|
|
39733
|
+
const drift = moved.offsetTop - anchor.offsetTop;
|
|
39734
|
+
if (Math.abs(drift) >= 1) root.scrollTop = scrollTop + drift;
|
|
39735
|
+
}
|
|
39736
|
+
}
|
|
39737
|
+
positionsRef.current = current;
|
|
39738
|
+
}, [tickets]);
|
|
39739
|
+
}
|
|
39740
|
+
|
|
39715
39741
|
// src/components/features/board/ticket-card.tsx
|
|
39716
39742
|
|
|
39717
39743
|
var PRIORITY_COLOR_CLASS = {
|
|
@@ -39822,7 +39848,7 @@ function TicketCardView({ className, ...bodyProps }) {
|
|
|
39822
39848
|
}
|
|
39823
39849
|
);
|
|
39824
39850
|
}
|
|
39825
|
-
|
|
39851
|
+
var TicketCard = _react.memo.call(void 0, function TicketCard2({
|
|
39826
39852
|
ticket,
|
|
39827
39853
|
columnId,
|
|
39828
39854
|
columnColor,
|
|
@@ -39833,7 +39859,7 @@ function TicketCard({
|
|
|
39833
39859
|
onApprove,
|
|
39834
39860
|
onReject
|
|
39835
39861
|
}) {
|
|
39836
|
-
const sortableData =
|
|
39862
|
+
const sortableData = _react.useMemo.call(void 0, () => ({ columnId, type: "ticket" }), [columnId]);
|
|
39837
39863
|
const sortable = _sortable.useSortable.call(void 0, { id: ticket.id, data: sortableData, disabled: dragDisabled });
|
|
39838
39864
|
const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
|
|
39839
39865
|
const style = isOverlay ? {} : {
|
|
@@ -39844,15 +39870,18 @@ function TicketCard({
|
|
|
39844
39870
|
const handleClick = (e) => {
|
|
39845
39871
|
if (sortable.isDragging) e.preventDefault();
|
|
39846
39872
|
};
|
|
39847
|
-
const body =
|
|
39848
|
-
|
|
39849
|
-
|
|
39850
|
-
|
|
39851
|
-
|
|
39852
|
-
|
|
39853
|
-
|
|
39854
|
-
|
|
39855
|
-
|
|
39873
|
+
const body = _react.useMemo.call(void 0,
|
|
39874
|
+
() => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
39875
|
+
TicketCardBody,
|
|
39876
|
+
{
|
|
39877
|
+
ticket,
|
|
39878
|
+
columnColor,
|
|
39879
|
+
renderAssignSlot,
|
|
39880
|
+
onApprove: onApprove ? (requestId) => onApprove(ticket.id, requestId) : void 0,
|
|
39881
|
+
onReject: onReject ? (requestId) => onReject(ticket.id, requestId) : void 0
|
|
39882
|
+
}
|
|
39883
|
+
),
|
|
39884
|
+
[ticket, columnColor, renderAssignSlot, onApprove, onReject]
|
|
39856
39885
|
);
|
|
39857
39886
|
const cardClasses = _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
39858
39887
|
TICKET_CARD_SHELL,
|
|
@@ -39864,6 +39893,9 @@ function TicketCard({
|
|
|
39864
39893
|
ref: isOverlay ? void 0 : sortable.setNodeRef,
|
|
39865
39894
|
style,
|
|
39866
39895
|
className: cardClasses,
|
|
39896
|
+
// Read by the lane's scroll anchor to keep the list still when tickets are
|
|
39897
|
+
// inserted above the viewport — see `use-lane-scroll-anchor.ts`.
|
|
39898
|
+
...isOverlay ? {} : { [TICKET_ID_ATTRIBUTE]: ticket.id },
|
|
39867
39899
|
...isOverlay ? {} : sortable.attributes,
|
|
39868
39900
|
...isOverlay ? {} : sortable.listeners
|
|
39869
39901
|
};
|
|
@@ -39899,7 +39931,7 @@ function TicketCard({
|
|
|
39899
39931
|
),
|
|
39900
39932
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "pointer-events-none", innerWrapperClass), children: body })
|
|
39901
39933
|
] });
|
|
39902
|
-
}
|
|
39934
|
+
});
|
|
39903
39935
|
function TicketTagRow({ tags }) {
|
|
39904
39936
|
const visible = tags.slice(0, MAX_VISIBLE_TAGS);
|
|
39905
39937
|
const hidden = tags.length - visible.length;
|
|
@@ -39913,7 +39945,7 @@ function TicketTagRow({ tags }) {
|
|
|
39913
39945
|
|
|
39914
39946
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
39915
39947
|
|
|
39916
|
-
var TicketCardSkeleton =
|
|
39948
|
+
var TicketCardSkeleton = React110.forwardRef(
|
|
39917
39949
|
({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
39918
39950
|
"div",
|
|
39919
39951
|
{
|
|
@@ -39949,7 +39981,7 @@ TicketCardSkeleton.displayName = "TicketCardSkeleton";
|
|
|
39949
39981
|
|
|
39950
39982
|
// src/components/features/board/board-column.tsx
|
|
39951
39983
|
|
|
39952
|
-
|
|
39984
|
+
var BoardColumn = _react.memo.call(void 0, function BoardColumn2({
|
|
39953
39985
|
column,
|
|
39954
39986
|
collapsed = false,
|
|
39955
39987
|
onToggleCollapse,
|
|
@@ -39964,16 +39996,24 @@ function BoardColumn({
|
|
|
39964
39996
|
joinLeft = false,
|
|
39965
39997
|
joinRight = false
|
|
39966
39998
|
}) {
|
|
39999
|
+
const droppableData = _react.useMemo.call(void 0, () => ({ columnId: column.id, type: "column" }), [column.id]);
|
|
40000
|
+
const { setNodeRef: setLaneRef, isOver } = _core.useDroppable.call(void 0, {
|
|
40001
|
+
id: `column:${column.id}`,
|
|
40002
|
+
data: droppableData,
|
|
40003
|
+
disabled: column.dropDisabled || collapsed
|
|
40004
|
+
});
|
|
39967
40005
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
39968
40006
|
"div",
|
|
39969
40007
|
{
|
|
40008
|
+
ref: setLaneRef,
|
|
39970
40009
|
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
39971
40010
|
"flex h-full shrink-0 flex-col gap-[var(--spacing-system-sf)] overflow-hidden rounded-md border border-ods-border p-[var(--spacing-system-sf)]",
|
|
39972
40011
|
"transition-[width] duration-300 ease-out",
|
|
39973
40012
|
collapsed ? "w-14" : "w-[400px]",
|
|
39974
40013
|
column.system && "bg-ods-card",
|
|
39975
40014
|
joinLeft && "rounded-l-none border-l-0",
|
|
39976
|
-
joinRight && "rounded-r-none"
|
|
40015
|
+
joinRight && "rounded-r-none",
|
|
40016
|
+
isOver && "outline outline-2 -outline-offset-2 outline-ods-focus"
|
|
39977
40017
|
),
|
|
39978
40018
|
style: column.system ? void 0 : { backgroundColor: tintOnDark(column.color) },
|
|
39979
40019
|
children: [
|
|
@@ -40005,25 +40045,25 @@ function BoardColumn({
|
|
|
40005
40045
|
]
|
|
40006
40046
|
}
|
|
40007
40047
|
);
|
|
40008
|
-
}
|
|
40009
|
-
function ColumnBody({
|
|
40010
|
-
|
|
40011
|
-
|
|
40012
|
-
|
|
40013
|
-
|
|
40014
|
-
|
|
40015
|
-
|
|
40016
|
-
|
|
40017
|
-
|
|
40018
|
-
|
|
40019
|
-
|
|
40020
|
-
const
|
|
40021
|
-
|
|
40022
|
-
const loadMoreRef =
|
|
40048
|
+
});
|
|
40049
|
+
function ColumnBody({
|
|
40050
|
+
column,
|
|
40051
|
+
getTicketHref,
|
|
40052
|
+
renderAssignSlot,
|
|
40053
|
+
onApprove,
|
|
40054
|
+
onReject,
|
|
40055
|
+
onLoadMore,
|
|
40056
|
+
loadMoreRootMargin
|
|
40057
|
+
}) {
|
|
40058
|
+
const ticketIds = _react.useMemo.call(void 0, () => column.tickets.map((t) => t.id), [column.tickets]);
|
|
40059
|
+
const scrollRef = _react.useRef.call(void 0, null);
|
|
40060
|
+
const sentinelRef = _react.useRef.call(void 0, null);
|
|
40061
|
+
useLaneScrollAnchor(scrollRef, column.tickets);
|
|
40062
|
+
const loadMoreRef = _react.useRef.call(void 0, onLoadMore);
|
|
40023
40063
|
loadMoreRef.current = onLoadMore;
|
|
40024
|
-
const columnIdRef =
|
|
40064
|
+
const columnIdRef = _react.useRef.call(void 0, column.id);
|
|
40025
40065
|
columnIdRef.current = column.id;
|
|
40026
|
-
|
|
40066
|
+
_react.useEffect.call(void 0, () => {
|
|
40027
40067
|
if (!column.hasMore || column.isLoadingMore) return;
|
|
40028
40068
|
const sentinel = sentinelRef.current;
|
|
40029
40069
|
const root = scrollRef.current;
|
|
@@ -40039,48 +40079,40 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
|
|
|
40039
40079
|
observer.observe(sentinel);
|
|
40040
40080
|
return () => observer.disconnect();
|
|
40041
40081
|
}, [column.hasMore, column.isLoadingMore, loadMoreRootMargin]);
|
|
40042
|
-
|
|
40043
|
-
|
|
40044
|
-
|
|
40045
|
-
|
|
40046
|
-
|
|
40047
|
-
|
|
40048
|
-
|
|
40049
|
-
|
|
40050
|
-
|
|
40051
|
-
|
|
40052
|
-
|
|
40053
|
-
|
|
40054
|
-
|
|
40055
|
-
|
|
40056
|
-
|
|
40057
|
-
|
|
40058
|
-
|
|
40059
|
-
|
|
40060
|
-
|
|
40061
|
-
|
|
40062
|
-
|
|
40063
|
-
|
|
40064
|
-
|
|
40065
|
-
|
|
40066
|
-
|
|
40067
|
-
|
|
40068
|
-
|
|
40069
|
-
|
|
40070
|
-
|
|
40071
|
-
|
|
40072
|
-
column.isLoadingMore && !column.isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}),
|
|
40073
|
-
column.hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, "aria-hidden": true, className: "h-1 shrink-0" })
|
|
40074
|
-
]
|
|
40075
|
-
}
|
|
40082
|
+
return (
|
|
40083
|
+
// `overflow-anchor:none` hands scroll anchoring to `useLaneScrollAnchor`
|
|
40084
|
+
// wholesale. The browser's own anchoring is unusable here — it silently
|
|
40085
|
+
// skips transformed elements, so it works between drags and does nothing
|
|
40086
|
+
// during one — and leaving both on double-corrects every insertion.
|
|
40087
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
40088
|
+
"div",
|
|
40089
|
+
{
|
|
40090
|
+
ref: scrollRef,
|
|
40091
|
+
className: "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto [overflow-anchor:none]",
|
|
40092
|
+
children: [
|
|
40093
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _sortable.SortableContext, { items: ticketIds, strategy: _sortable.verticalListSortingStrategy, children: column.isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonStack, {}) : column.tickets.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState2, {}) : column.tickets.map((t) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
40094
|
+
TicketCard,
|
|
40095
|
+
{
|
|
40096
|
+
ticket: t,
|
|
40097
|
+
columnId: column.id,
|
|
40098
|
+
columnColor: column.color,
|
|
40099
|
+
href: _optionalChain([getTicketHref, 'optionalCall', _880 => _880(t.id)]),
|
|
40100
|
+
renderAssignSlot,
|
|
40101
|
+
onApprove,
|
|
40102
|
+
onReject,
|
|
40103
|
+
dragDisabled: column.dragDisabled
|
|
40104
|
+
},
|
|
40105
|
+
t.id
|
|
40106
|
+
)) }),
|
|
40107
|
+
column.isLoadingMore && !column.isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}),
|
|
40108
|
+
column.hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, "aria-hidden": true, className: "h-1 shrink-0" })
|
|
40109
|
+
]
|
|
40110
|
+
}
|
|
40111
|
+
)
|
|
40076
40112
|
);
|
|
40077
40113
|
}
|
|
40078
40114
|
function SkeletonStack({ count = 4 }) {
|
|
40079
|
-
|
|
40080
|
-
() => Array.from({ length: count }, () => Math.random().toString(36).slice(2)),
|
|
40081
|
-
[count]
|
|
40082
|
-
);
|
|
40083
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: keys.map((k) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}, k)) });
|
|
40115
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}, `skeleton-${i}`)) });
|
|
40084
40116
|
}
|
|
40085
40117
|
function EmptyState2() {
|
|
40086
40118
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-lf)] p-[var(--spacing-system-lf)] text-center text-ods-text-secondary", children: [
|
|
@@ -40092,6 +40124,84 @@ function EmptyState2() {
|
|
|
40092
40124
|
] });
|
|
40093
40125
|
}
|
|
40094
40126
|
|
|
40127
|
+
// src/components/features/board/drop-target.ts
|
|
40128
|
+
|
|
40129
|
+
|
|
40130
|
+
|
|
40131
|
+
|
|
40132
|
+
|
|
40133
|
+
function droppableDataOf(collision) {
|
|
40134
|
+
return _optionalChain([collision, 'access', _881 => _881.data, 'optionalAccess', _882 => _882.droppableContainer, 'optionalAccess', _883 => _883.data, 'optionalAccess', _884 => _884.current]);
|
|
40135
|
+
}
|
|
40136
|
+
function detectCollisions(args, pointerHits) {
|
|
40137
|
+
const intersections = pointerHits.length > 0 ? pointerHits : _core.rectIntersection.call(void 0, args);
|
|
40138
|
+
const ticketHit = intersections.find((c) => _optionalChain([droppableDataOf, 'call', _885 => _885(c), 'optionalAccess', _886 => _886.type]) === "ticket");
|
|
40139
|
+
if (ticketHit) return [ticketHit];
|
|
40140
|
+
const columnHit = intersections.find((c) => _optionalChain([droppableDataOf, 'call', _887 => _887(c), 'optionalAccess', _888 => _888.type]) === "column");
|
|
40141
|
+
if (columnHit) {
|
|
40142
|
+
const { columnId } = _nullishCoalesce(droppableDataOf(columnHit), () => ( {}));
|
|
40143
|
+
const ticketsInColumn = args.droppableContainers.filter((container) => {
|
|
40144
|
+
if (container.id === args.active.id) return false;
|
|
40145
|
+
const data = container.data.current;
|
|
40146
|
+
return _optionalChain([data, 'optionalAccess', _889 => _889.type]) === "ticket" && data.columnId === columnId;
|
|
40147
|
+
});
|
|
40148
|
+
if (ticketsInColumn.length > 0) {
|
|
40149
|
+
const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
|
|
40150
|
+
if (closest.length > 0) return closest;
|
|
40151
|
+
}
|
|
40152
|
+
return [columnHit];
|
|
40153
|
+
}
|
|
40154
|
+
return _core.closestCorners.call(void 0, args);
|
|
40155
|
+
}
|
|
40156
|
+
var animationFrameScheduler = (callback) => {
|
|
40157
|
+
const id = requestAnimationFrame(callback);
|
|
40158
|
+
return () => cancelAnimationFrame(id);
|
|
40159
|
+
};
|
|
40160
|
+
function createDropTargetResolver(scheduleFrame = animationFrameScheduler) {
|
|
40161
|
+
let settling = false;
|
|
40162
|
+
let cancelFrame = null;
|
|
40163
|
+
let lastOverId = null;
|
|
40164
|
+
const clearFrame = () => {
|
|
40165
|
+
_optionalChain([cancelFrame, 'optionalCall', _890 => _890()]);
|
|
40166
|
+
cancelFrame = null;
|
|
40167
|
+
};
|
|
40168
|
+
const keepLastTarget = (args) => {
|
|
40169
|
+
if (lastOverId === null) return null;
|
|
40170
|
+
const last = args.droppableContainers.find((c) => c.id === lastOverId);
|
|
40171
|
+
return last ? [{ id: last.id, data: { droppableContainer: last, value: 0 } }] : null;
|
|
40172
|
+
};
|
|
40173
|
+
return {
|
|
40174
|
+
detect: (args) => {
|
|
40175
|
+
if (settling) {
|
|
40176
|
+
const frozen = keepLastTarget(args);
|
|
40177
|
+
if (frozen) return frozen;
|
|
40178
|
+
}
|
|
40179
|
+
const pointerHits = args.pointerCoordinates ? _core.pointerWithin.call(void 0, args) : [];
|
|
40180
|
+
if (args.pointerCoordinates && pointerHits.length === 0) {
|
|
40181
|
+
const held = keepLastTarget(args);
|
|
40182
|
+
if (held) return held;
|
|
40183
|
+
}
|
|
40184
|
+
const collisions = detectCollisions(args, pointerHits);
|
|
40185
|
+
if (collisions.length > 0) lastOverId = collisions[0].id;
|
|
40186
|
+
return collisions;
|
|
40187
|
+
},
|
|
40188
|
+
freeze: () => {
|
|
40189
|
+
settling = true;
|
|
40190
|
+
clearFrame();
|
|
40191
|
+
cancelFrame = scheduleFrame(() => {
|
|
40192
|
+
cancelFrame = null;
|
|
40193
|
+
settling = false;
|
|
40194
|
+
});
|
|
40195
|
+
},
|
|
40196
|
+
release: () => {
|
|
40197
|
+
clearFrame();
|
|
40198
|
+
settling = false;
|
|
40199
|
+
lastOverId = null;
|
|
40200
|
+
},
|
|
40201
|
+
dispose: clearFrame
|
|
40202
|
+
};
|
|
40203
|
+
}
|
|
40204
|
+
|
|
40095
40205
|
// src/components/features/board/use-board-collapse.ts
|
|
40096
40206
|
|
|
40097
40207
|
function useBoardCollapse(storageKey) {
|
|
@@ -40146,45 +40256,35 @@ function Board({
|
|
|
40146
40256
|
onThumbPointerMove,
|
|
40147
40257
|
onThumbPointerUp
|
|
40148
40258
|
} = _chunk5RJUHUCIcjs.useHorizontalScrollbar.call(void 0, );
|
|
40149
|
-
const [items, setItems] =
|
|
40150
|
-
const isDraggingRef =
|
|
40151
|
-
|
|
40259
|
+
const [items, setItems] = _react.useState.call(void 0, columns);
|
|
40260
|
+
const isDraggingRef = _react.useRef.call(void 0, false);
|
|
40261
|
+
_react.useEffect.call(void 0, () => {
|
|
40152
40262
|
if (!isDraggingRef.current) setItems(columns);
|
|
40153
40263
|
}, [columns]);
|
|
40154
|
-
const dragOriginRef =
|
|
40155
|
-
const [activeTicket, setActiveTicket] =
|
|
40264
|
+
const dragOriginRef = _react.useRef.call(void 0, null);
|
|
40265
|
+
const [activeTicket, setActiveTicket] = _react.useState.call(void 0, null);
|
|
40156
40266
|
const sensors = _core.useSensors.call(void 0,
|
|
40157
40267
|
_core.useSensor.call(void 0, _core.PointerSensor, { activationConstraint: { distance: 6 } }),
|
|
40158
40268
|
_core.useSensor.call(void 0, _core.KeyboardSensor, { coordinateGetter: _sortable.sortableKeyboardCoordinates })
|
|
40159
40269
|
);
|
|
40160
|
-
const
|
|
40161
|
-
|
|
40162
|
-
|
|
40163
|
-
|
|
40164
|
-
|
|
40165
|
-
|
|
40166
|
-
|
|
40167
|
-
|
|
40168
|
-
|
|
40169
|
-
|
|
40170
|
-
|
|
40171
|
-
|
|
40172
|
-
const ticketsInColumn = args.droppableContainers.filter((c) => {
|
|
40173
|
-
const d = c.data.current;
|
|
40174
|
-
return _optionalChain([d, 'optionalAccess', _896 => _896.type]) === "ticket" && d.columnId === columnId;
|
|
40175
|
-
});
|
|
40176
|
-
if (ticketsInColumn.length > 0) {
|
|
40177
|
-
const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
|
|
40178
|
-
if (closest.length > 0) return closest;
|
|
40179
|
-
}
|
|
40180
|
-
return [columnHit];
|
|
40181
|
-
}
|
|
40182
|
-
return _core.closestCorners.call(void 0, args);
|
|
40270
|
+
const dropTarget = _react.useMemo.call(void 0, () => createDropTargetResolver(), []);
|
|
40271
|
+
_react.useEffect.call(void 0, () => dropTarget.dispose, [dropTarget]);
|
|
40272
|
+
const toggleRef = _react.useRef.call(void 0, toggle);
|
|
40273
|
+
toggleRef.current = toggle;
|
|
40274
|
+
const collapseHandlers = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
40275
|
+
const collapseHandlerFor = _react.useCallback.call(void 0, (columnId) => {
|
|
40276
|
+
let handler = collapseHandlers.current.get(columnId);
|
|
40277
|
+
if (!handler) {
|
|
40278
|
+
handler = () => toggleRef.current(columnId);
|
|
40279
|
+
collapseHandlers.current.set(columnId, handler);
|
|
40280
|
+
}
|
|
40281
|
+
return handler;
|
|
40183
40282
|
}, []);
|
|
40184
40283
|
const handleDragStart = (e) => {
|
|
40185
40284
|
const id = String(e.active.id);
|
|
40186
40285
|
const located = locate(items, id);
|
|
40187
40286
|
if (!located) return;
|
|
40287
|
+
dropTarget.release();
|
|
40188
40288
|
isDraggingRef.current = true;
|
|
40189
40289
|
dragOriginRef.current = { ticketId: id, fromColumnId: located.columnId };
|
|
40190
40290
|
setActiveTicket({ ticket: located.ticket, columnId: located.columnId });
|
|
@@ -40196,20 +40296,21 @@ function Board({
|
|
|
40196
40296
|
const overId = String(over.id);
|
|
40197
40297
|
if (activeId === overId) return;
|
|
40198
40298
|
const overData = over.data.current;
|
|
40199
|
-
const fromColumnId = _optionalChain([locate, 'call',
|
|
40200
|
-
const toColumnId = _optionalChain([overData, 'optionalAccess',
|
|
40299
|
+
const fromColumnId = _optionalChain([locate, 'call', _891 => _891(items, activeId), 'optionalAccess', _892 => _892.columnId]);
|
|
40300
|
+
const toColumnId = _optionalChain([overData, 'optionalAccess', _893 => _893.columnId]);
|
|
40201
40301
|
if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
|
|
40202
40302
|
const origin = dragOriginRef.current;
|
|
40203
|
-
const isReturnToOrigin = _optionalChain([origin, 'optionalAccess',
|
|
40303
|
+
const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _894 => _894.fromColumnId]) === toColumnId;
|
|
40204
40304
|
const targetCol = items.find((c) => c.id === toColumnId);
|
|
40205
|
-
const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess',
|
|
40206
|
-
if (_optionalChain([targetCol, 'optionalAccess',
|
|
40305
|
+
const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _895 => _895.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
|
|
40306
|
+
if (_optionalChain([targetCol, 'optionalAccess', _896 => _896.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
|
|
40307
|
+
dropTarget.freeze();
|
|
40207
40308
|
setItems((prev) => {
|
|
40208
40309
|
const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
|
|
40209
40310
|
const toCol = prev.find((c) => c.id === toColumnId);
|
|
40210
40311
|
if (fromIndex < 0 || !toCol) return prev;
|
|
40211
40312
|
let toIndex;
|
|
40212
|
-
if (_optionalChain([overData, 'optionalAccess',
|
|
40313
|
+
if (_optionalChain([overData, 'optionalAccess', _897 => _897.type]) === "column") {
|
|
40213
40314
|
toIndex = toCol.tickets.length;
|
|
40214
40315
|
} else {
|
|
40215
40316
|
const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
|
|
@@ -40238,6 +40339,7 @@ function Board({
|
|
|
40238
40339
|
dragOriginRef.current = null;
|
|
40239
40340
|
setActiveTicket(null);
|
|
40240
40341
|
isDraggingRef.current = false;
|
|
40342
|
+
dropTarget.release();
|
|
40241
40343
|
const { over } = e;
|
|
40242
40344
|
if (!over || !origin) {
|
|
40243
40345
|
setItems(columns);
|
|
@@ -40251,14 +40353,14 @@ function Board({
|
|
|
40251
40353
|
const toColumnId = located.columnId;
|
|
40252
40354
|
const isCrossColumn = origin.fromColumnId !== toColumnId;
|
|
40253
40355
|
const targetCol = items.find((c) => c.id === toColumnId);
|
|
40254
|
-
if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess',
|
|
40356
|
+
if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _898 => _898.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _899 => _899.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
|
|
40255
40357
|
setItems(columns);
|
|
40256
40358
|
return;
|
|
40257
40359
|
}
|
|
40258
40360
|
let finalIndex = located.index;
|
|
40259
|
-
let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access',
|
|
40361
|
+
let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _900 => _900.find, 'call', _901 => _901((c) => c.id === toColumnId), 'optionalAccess', _902 => _902.tickets]), () => ( []));
|
|
40260
40362
|
const overData = over.data.current;
|
|
40261
|
-
if (_optionalChain([overData, 'optionalAccess',
|
|
40363
|
+
if (_optionalChain([overData, 'optionalAccess', _903 => _903.type]) === "ticket") {
|
|
40262
40364
|
const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
|
|
40263
40365
|
if (overIndex >= 0 && overIndex !== located.index) {
|
|
40264
40366
|
finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
|
|
@@ -40278,21 +40380,22 @@ function Board({
|
|
|
40278
40380
|
ticketId: origin.ticketId,
|
|
40279
40381
|
fromColumnId: origin.fromColumnId,
|
|
40280
40382
|
toColumnId,
|
|
40281
|
-
afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access',
|
|
40282
|
-
beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access',
|
|
40383
|
+
afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _904 => _904[finalIndex - 1], 'optionalAccess', _905 => _905.id]), () => ( null)),
|
|
40384
|
+
beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _906 => _906[finalIndex + 1], 'optionalAccess', _907 => _907.id]), () => ( null))
|
|
40283
40385
|
});
|
|
40284
40386
|
};
|
|
40285
40387
|
const handleDragCancel = () => {
|
|
40286
40388
|
dragOriginRef.current = null;
|
|
40287
40389
|
setActiveTicket(null);
|
|
40288
40390
|
isDraggingRef.current = false;
|
|
40391
|
+
dropTarget.release();
|
|
40289
40392
|
setItems(columns);
|
|
40290
40393
|
};
|
|
40291
40394
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
40292
40395
|
_core.DndContext,
|
|
40293
40396
|
{
|
|
40294
40397
|
sensors,
|
|
40295
|
-
collisionDetection,
|
|
40398
|
+
collisionDetection: dropTarget.detect,
|
|
40296
40399
|
onDragStart: handleDragStart,
|
|
40297
40400
|
onDragOver: handleDragOver,
|
|
40298
40401
|
onDragEnd: handleDragEnd,
|
|
@@ -40308,17 +40411,17 @@ function Board({
|
|
|
40308
40411
|
children: items.map((column, i) => {
|
|
40309
40412
|
const prev = items[i - 1];
|
|
40310
40413
|
const next = items[i + 1];
|
|
40311
|
-
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess',
|
|
40312
|
-
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess',
|
|
40414
|
+
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _908 => _908.system]));
|
|
40415
|
+
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _909 => _909.system]));
|
|
40313
40416
|
const showGap = i > 0 && !joinLeft;
|
|
40314
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
40417
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
|
|
40315
40418
|
showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
|
|
40316
40419
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
40317
40420
|
BoardColumn,
|
|
40318
40421
|
{
|
|
40319
40422
|
column,
|
|
40320
40423
|
collapsed: !!collapsed[column.id],
|
|
40321
|
-
onToggleCollapse: (
|
|
40424
|
+
onToggleCollapse: collapseHandlerFor(column.id),
|
|
40322
40425
|
onAddTicket,
|
|
40323
40426
|
onArchive: onArchiveColumn,
|
|
40324
40427
|
getTicketHref,
|
|
@@ -40362,7 +40465,7 @@ function Board({
|
|
|
40362
40465
|
{
|
|
40363
40466
|
ticket: activeTicket.ticket,
|
|
40364
40467
|
columnId: activeTicket.columnId,
|
|
40365
|
-
columnColor: _optionalChain([items, 'access',
|
|
40468
|
+
columnColor: _optionalChain([items, 'access', _910 => _910.find, 'call', _911 => _911((c) => c.id === activeTicket.columnId), 'optionalAccess', _912 => _912.color]),
|
|
40366
40469
|
isOverlay: true
|
|
40367
40470
|
}
|
|
40368
40471
|
) : null })
|
|
@@ -40378,7 +40481,7 @@ function locate(cols, ticketId) {
|
|
|
40378
40481
|
return null;
|
|
40379
40482
|
}
|
|
40380
40483
|
function findIndexInColumn(cols, columnId, ticketId) {
|
|
40381
|
-
return _nullishCoalesce(_optionalChain([cols, 'access',
|
|
40484
|
+
return _nullishCoalesce(_optionalChain([cols, 'access', _913 => _913.find, 'call', _914 => _914((c) => c.id === columnId), 'optionalAccess', _915 => _915.tickets, 'access', _916 => _916.findIndex, 'call', _917 => _917((t) => t.id === ticketId)]), () => ( -1));
|
|
40382
40485
|
}
|
|
40383
40486
|
|
|
40384
40487
|
// src/components/features/board/types.ts
|
|
@@ -40469,7 +40572,7 @@ function TicketStatusConfigList({
|
|
|
40469
40572
|
if (oldIndex === -1 || newIndex === -1) return;
|
|
40470
40573
|
onReorder(oldIndex, newIndex);
|
|
40471
40574
|
};
|
|
40472
|
-
const sortableIds =
|
|
40575
|
+
const sortableIds = React111.useMemo(() => items.map((i) => i.id), [items]);
|
|
40473
40576
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _core.DndContext, { sensors, collisionDetection: _core.closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _sortable.SortableContext, { items: sortableIds, strategy: _sortable.verticalListSortingStrategy, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className), children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { id: item.id, children: (args) => renderRow(item, args) }, item.id)) }) }) });
|
|
40474
40577
|
}
|
|
40475
40578
|
function SortableRow({
|
|
@@ -40509,7 +40612,7 @@ function MingoAiButton({ source, icon, label = "Mingo AI", className, onClick, .
|
|
|
40509
40612
|
"aria-label": label,
|
|
40510
40613
|
onClick: (e) => {
|
|
40511
40614
|
window.dispatchEvent(new CustomEvent("ask-ai:open", { detail: { source: _nullishCoalesce(source, () => ( "")) } }));
|
|
40512
|
-
_optionalChain([onClick, 'optionalCall',
|
|
40615
|
+
_optionalChain([onClick, 'optionalCall', _918 => _918(e)]);
|
|
40513
40616
|
},
|
|
40514
40617
|
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
40515
40618
|
// Unified ODS top-navigation cell (Figma 2797-6808 desktop /
|
|
@@ -40568,7 +40671,7 @@ function MobileNavPanel({ isOpen, config }) {
|
|
|
40568
40671
|
if (item.onClick) {
|
|
40569
40672
|
item.onClick();
|
|
40570
40673
|
}
|
|
40571
|
-
_optionalChain([config, 'access',
|
|
40674
|
+
_optionalChain([config, 'access', _919 => _919.onClose, 'optionalCall', _920 => _920()]);
|
|
40572
40675
|
};
|
|
40573
40676
|
if (item.href) {
|
|
40574
40677
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -40685,7 +40788,7 @@ var ANON_DEFAULTS = {
|
|
|
40685
40788
|
function useResolveChatIdentity(enabled) {
|
|
40686
40789
|
const runtime = _chunk7OPWSWEJcjs.useRequiredChatRuntime.call(void 0, );
|
|
40687
40790
|
const url = runtime.endpoints.identityUrl;
|
|
40688
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([_chunk5RJUHUCIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess',
|
|
40791
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([_chunk5RJUHUCIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _921 => _921.email]), () => ( null));
|
|
40689
40792
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
40690
40793
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
|
|
40691
40794
|
_react.useEffect.call(void 0, () => {
|
|
@@ -40740,12 +40843,12 @@ var stampMs = (stamp) => {
|
|
|
40740
40843
|
return Number.isNaN(ms) ? 0 : ms;
|
|
40741
40844
|
};
|
|
40742
40845
|
var INVALIDATE_DEBOUNCE_MS = 1500;
|
|
40743
|
-
var TicketLiveContext =
|
|
40846
|
+
var TicketLiveContext = React126.default.createContext(null);
|
|
40744
40847
|
function useOptionalTicketLive() {
|
|
40745
|
-
return
|
|
40848
|
+
return React126.default.useContext(TicketLiveContext);
|
|
40746
40849
|
}
|
|
40747
40850
|
function useTicketLive() {
|
|
40748
|
-
const ctx =
|
|
40851
|
+
const ctx = React126.default.useContext(TicketLiveContext);
|
|
40749
40852
|
if (!ctx) {
|
|
40750
40853
|
throw new Error("useTicketLive must be used within <TicketLiveProvider>");
|
|
40751
40854
|
}
|
|
@@ -40761,16 +40864,16 @@ function TicketLiveProvider({ children }) {
|
|
|
40761
40864
|
const runtime = _chunk7OPWSWEJcjs.useChatRuntime.call(void 0, );
|
|
40762
40865
|
const identity = useChatIdentity();
|
|
40763
40866
|
const queryClient = _reactquery.useQueryClient.call(void 0, );
|
|
40764
|
-
const streamUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
|
40765
|
-
const readUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
|
40766
|
-
const authed = identity.authTier !== "anon" && !!_optionalChain([identity, 'access',
|
|
40767
|
-
const [connected, setConnected] =
|
|
40768
|
-
const [summary, setSummary] =
|
|
40769
|
-
const [openTicketIdState, setOpenTicketIdState] =
|
|
40770
|
-
const openTicketIdRef =
|
|
40771
|
-
const pendingTicketIdsRef =
|
|
40772
|
-
const invalidateTimerRef =
|
|
40773
|
-
const flushInvalidations =
|
|
40867
|
+
const streamUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _922 => _922.endpoints, 'access', _923 => _923.ticketStreamUrl]), () => ( TICKET_STREAM_ENDPOINT));
|
|
40868
|
+
const readUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _924 => _924.endpoints, 'access', _925 => _925.ticketReadUrl]), () => ( TICKET_READ_ENDPOINT));
|
|
40869
|
+
const authed = identity.authTier !== "anon" && !!_optionalChain([identity, 'access', _926 => _926.user, 'optionalAccess', _927 => _927.email]);
|
|
40870
|
+
const [connected, setConnected] = React126.default.useState(false);
|
|
40871
|
+
const [summary, setSummary] = React126.default.useState(EMPTY_SUMMARY);
|
|
40872
|
+
const [openTicketIdState, setOpenTicketIdState] = React126.default.useState(null);
|
|
40873
|
+
const openTicketIdRef = React126.default.useRef(null);
|
|
40874
|
+
const pendingTicketIdsRef = React126.default.useRef(/* @__PURE__ */ new Set());
|
|
40875
|
+
const invalidateTimerRef = React126.default.useRef(null);
|
|
40876
|
+
const flushInvalidations = React126.default.useCallback(() => {
|
|
40774
40877
|
invalidateTimerRef.current = null;
|
|
40775
40878
|
const ids = Array.from(pendingTicketIdsRef.current);
|
|
40776
40879
|
pendingTicketIdsRef.current.clear();
|
|
@@ -40779,7 +40882,7 @@ function TicketLiveProvider({ children }) {
|
|
|
40779
40882
|
void queryClient.invalidateQueries({ queryKey: ["ticket-engagements", id] });
|
|
40780
40883
|
}
|
|
40781
40884
|
}, [queryClient]);
|
|
40782
|
-
const scheduleInvalidation =
|
|
40885
|
+
const scheduleInvalidation = React126.default.useCallback(
|
|
40783
40886
|
(ticketId) => {
|
|
40784
40887
|
if (ticketId) pendingTicketIdsRef.current.add(ticketId);
|
|
40785
40888
|
if (invalidateTimerRef.current) return;
|
|
@@ -40787,7 +40890,7 @@ function TicketLiveProvider({ children }) {
|
|
|
40787
40890
|
},
|
|
40788
40891
|
[flushInvalidations]
|
|
40789
40892
|
);
|
|
40790
|
-
const bumpUnread =
|
|
40893
|
+
const bumpUnread = React126.default.useCallback((ticketId, createdAt) => {
|
|
40791
40894
|
setSummary((prev) => {
|
|
40792
40895
|
const stamp = _nullishCoalesce(createdAt, () => ( (/* @__PURE__ */ new Date()).toISOString()));
|
|
40793
40896
|
const existing = prev.latestUnreadAt[ticketId];
|
|
@@ -40801,7 +40904,7 @@ function TicketLiveProvider({ children }) {
|
|
|
40801
40904
|
};
|
|
40802
40905
|
});
|
|
40803
40906
|
}, []);
|
|
40804
|
-
const zeroUnread =
|
|
40907
|
+
const zeroUnread = React126.default.useCallback((ticketId) => {
|
|
40805
40908
|
setSummary((prev) => {
|
|
40806
40909
|
const current = _nullishCoalesce(prev.tickets[ticketId], () => ( 0));
|
|
40807
40910
|
if (current === 0) return prev;
|
|
@@ -40812,9 +40915,9 @@ function TicketLiveProvider({ children }) {
|
|
|
40812
40915
|
return { totalUnread: Math.max(0, prev.totalUnread - current), tickets, latestUnreadAt };
|
|
40813
40916
|
});
|
|
40814
40917
|
}, []);
|
|
40815
|
-
const subscriptionRef =
|
|
40816
|
-
const noStreamRef =
|
|
40817
|
-
const handlersRef =
|
|
40918
|
+
const subscriptionRef = React126.default.useRef(null);
|
|
40919
|
+
const noStreamRef = React126.default.useRef(false);
|
|
40920
|
+
const handlersRef = React126.default.useRef({ onEvent: () => {
|
|
40818
40921
|
}, onStatus: () => {
|
|
40819
40922
|
}, onConnected: () => {
|
|
40820
40923
|
} });
|
|
@@ -40830,7 +40933,7 @@ function TicketLiveProvider({ children }) {
|
|
|
40830
40933
|
handlersRef.current.onEvent = (eventName, data) => {
|
|
40831
40934
|
if (eventName === "ticket-summary") {
|
|
40832
40935
|
const frame = data;
|
|
40833
|
-
if (isSummaryData(_optionalChain([frame, 'optionalAccess',
|
|
40936
|
+
if (isSummaryData(_optionalChain([frame, 'optionalAccess', _928 => _928.data]))) {
|
|
40834
40937
|
setSummary({
|
|
40835
40938
|
totalUnread: frame.data.totalUnread,
|
|
40836
40939
|
tickets: _nullishCoalesce(frame.data.tickets, () => ( {})),
|
|
@@ -40845,13 +40948,13 @@ function TicketLiveProvider({ children }) {
|
|
|
40845
40948
|
}
|
|
40846
40949
|
if (eventName === "ticket-status") {
|
|
40847
40950
|
const frame = data;
|
|
40848
|
-
const ticketId = _optionalChain([frame, 'optionalAccess',
|
|
40951
|
+
const ticketId = _optionalChain([frame, 'optionalAccess', _929 => _929.data, 'optionalAccess', _930 => _930.ticket_external_id]);
|
|
40849
40952
|
scheduleInvalidation(ticketId);
|
|
40850
40953
|
return;
|
|
40851
40954
|
}
|
|
40852
40955
|
if (eventName === "ticket-message") {
|
|
40853
40956
|
const frame = data;
|
|
40854
|
-
const payload = _optionalChain([frame, 'optionalAccess',
|
|
40957
|
+
const payload = _optionalChain([frame, 'optionalAccess', _931 => _931.data]);
|
|
40855
40958
|
if (!isTicketMessageData(payload)) {
|
|
40856
40959
|
scheduleInvalidation();
|
|
40857
40960
|
return;
|
|
@@ -40867,7 +40970,7 @@ function TicketLiveProvider({ children }) {
|
|
|
40867
40970
|
if (status === "no-stream") noStreamRef.current = true;
|
|
40868
40971
|
};
|
|
40869
40972
|
const streamEnabled = authed && !!streamUrl;
|
|
40870
|
-
|
|
40973
|
+
React126.default.useEffect(() => {
|
|
40871
40974
|
if (!streamEnabled) return;
|
|
40872
40975
|
if (typeof window === "undefined") return;
|
|
40873
40976
|
subscriptionRef.current = createSseSubscription({
|
|
@@ -40882,7 +40985,7 @@ function TicketLiveProvider({ children }) {
|
|
|
40882
40985
|
const retryIfIdle = () => {
|
|
40883
40986
|
if (noStreamRef.current) {
|
|
40884
40987
|
noStreamRef.current = false;
|
|
40885
|
-
_optionalChain([subscriptionRef, 'access',
|
|
40988
|
+
_optionalChain([subscriptionRef, 'access', _932 => _932.current, 'optionalAccess', _933 => _933.reconnectNow, 'call', _934 => _934()]);
|
|
40886
40989
|
}
|
|
40887
40990
|
};
|
|
40888
40991
|
window.addEventListener("focus", retryIfIdle);
|
|
@@ -40892,13 +40995,13 @@ function TicketLiveProvider({ children }) {
|
|
|
40892
40995
|
clearTimeout(invalidateTimerRef.current);
|
|
40893
40996
|
invalidateTimerRef.current = null;
|
|
40894
40997
|
}
|
|
40895
|
-
_optionalChain([subscriptionRef, 'access',
|
|
40998
|
+
_optionalChain([subscriptionRef, 'access', _935 => _935.current, 'optionalAccess', _936 => _936.close, 'call', _937 => _937()]);
|
|
40896
40999
|
subscriptionRef.current = null;
|
|
40897
41000
|
setConnected(false);
|
|
40898
41001
|
setSummary(EMPTY_SUMMARY);
|
|
40899
41002
|
};
|
|
40900
41003
|
}, [streamEnabled, streamUrl]);
|
|
40901
|
-
const markRead =
|
|
41004
|
+
const markRead = React126.default.useCallback(
|
|
40902
41005
|
async (ticketExternalId) => {
|
|
40903
41006
|
try {
|
|
40904
41007
|
const response = await _chunk5RJUHUCIcjs.embedAuthedFetch.call(void 0, readUrl, {
|
|
@@ -40908,7 +41011,7 @@ function TicketLiveProvider({ children }) {
|
|
|
40908
41011
|
if (!response.ok) return;
|
|
40909
41012
|
zeroUnread(ticketExternalId);
|
|
40910
41013
|
const body = await response.json().catch(() => null);
|
|
40911
|
-
if (isSummaryData(_optionalChain([body, 'optionalAccess',
|
|
41014
|
+
if (isSummaryData(_optionalChain([body, 'optionalAccess', _938 => _938.summary]))) {
|
|
40912
41015
|
setSummary({
|
|
40913
41016
|
totalUnread: body.summary.totalUnread,
|
|
40914
41017
|
tickets: _nullishCoalesce(body.summary.tickets, () => ( {})),
|
|
@@ -40920,15 +41023,15 @@ function TicketLiveProvider({ children }) {
|
|
|
40920
41023
|
},
|
|
40921
41024
|
[readUrl, zeroUnread]
|
|
40922
41025
|
);
|
|
40923
|
-
const setOpenTicketId =
|
|
41026
|
+
const setOpenTicketId = React126.default.useCallback((ticketExternalId) => {
|
|
40924
41027
|
openTicketIdRef.current = ticketExternalId;
|
|
40925
41028
|
setOpenTicketIdState(ticketExternalId);
|
|
40926
41029
|
}, []);
|
|
40927
|
-
const notifyTicketCreated =
|
|
41030
|
+
const notifyTicketCreated = React126.default.useCallback(() => {
|
|
40928
41031
|
noStreamRef.current = false;
|
|
40929
|
-
_optionalChain([subscriptionRef, 'access',
|
|
41032
|
+
_optionalChain([subscriptionRef, 'access', _939 => _939.current, 'optionalAccess', _940 => _940.reconnectNow, 'call', _941 => _941()]);
|
|
40930
41033
|
}, []);
|
|
40931
|
-
const value =
|
|
41034
|
+
const value = React126.default.useMemo(() => {
|
|
40932
41035
|
let unreadByTicket = summary.tickets;
|
|
40933
41036
|
let unreadTotal = summary.totalUnread;
|
|
40934
41037
|
if (openTicketIdState && unreadByTicket[openTicketIdState]) {
|
|
@@ -41164,7 +41267,7 @@ function Header2({ config, platform }) {
|
|
|
41164
41267
|
}, [config.autoHide]);
|
|
41165
41268
|
const renderNavigationItem = (item) => {
|
|
41166
41269
|
if (item.element) {
|
|
41167
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
41270
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: item.element }, item.id);
|
|
41168
41271
|
}
|
|
41169
41272
|
if (item.children && item.children.length > 0) {
|
|
41170
41273
|
const isOpen = openDropdowns[item.id] || false;
|
|
@@ -41237,7 +41340,7 @@ function Header2({ config, platform }) {
|
|
|
41237
41340
|
// explicit font-medium beats small-legacy's font-bold via
|
|
41238
41341
|
// tailwind-merge instead of stylesheet order.
|
|
41239
41342
|
"text-h6 font-medium",
|
|
41240
|
-
index < (_nullishCoalesce(_optionalChain([item, 'access',
|
|
41343
|
+
index < (_nullishCoalesce(_optionalChain([item, 'access', _942 => _942.children, 'optionalAccess', _943 => _943.length]), () => ( 0))) - 1 && "mb-1",
|
|
41241
41344
|
"text-ods-text-primary",
|
|
41242
41345
|
// All dropdown items use primary text color
|
|
41243
41346
|
child.isActive && "bg-ods-bg-hover"
|
|
@@ -41309,7 +41412,7 @@ function Header2({ config, platform }) {
|
|
|
41309
41412
|
);
|
|
41310
41413
|
};
|
|
41311
41414
|
const hasNav = !!config.navigation && config.navigation.items.length > 0;
|
|
41312
|
-
const hasCta = !!_optionalChain([config, 'access',
|
|
41415
|
+
const hasCta = !!_optionalChain([config, 'access', _944 => _944.actions, 'optionalAccess', _945 => _945.right, 'optionalAccess', _946 => _946.length]) || !!(_optionalChain([config, 'access', _947 => _947.actions, 'optionalAccess', _948 => _948.persistent]) && config.actions.persistent.length > 0);
|
|
41313
41416
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
41314
41417
|
"div",
|
|
41315
41418
|
{
|
|
@@ -41326,19 +41429,19 @@ function Header2({ config, platform }) {
|
|
|
41326
41429
|
centerBreakpoint: "lg",
|
|
41327
41430
|
size: "big",
|
|
41328
41431
|
leading: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
41329
|
-
!!_optionalChain([config, 'access',
|
|
41330
|
-
_optionalChain([config, 'access',
|
|
41432
|
+
!!_optionalChain([config, 'access', _949 => _949.actions, 'optionalAccess', _950 => _950.left, 'optionalAccess', _951 => _951.length]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full items-center border-r border-ods-border", children: config.actions.left }),
|
|
41433
|
+
_optionalChain([config, 'access', _952 => _952.mobile, 'optionalAccess', _953 => _953.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
41331
41434
|
HeaderButton,
|
|
41332
41435
|
{
|
|
41333
41436
|
className: "lg:hidden border-r border-ods-border",
|
|
41334
41437
|
onClick: () => {
|
|
41335
|
-
_optionalChain([config, 'access',
|
|
41438
|
+
_optionalChain([config, 'access', _954 => _954.mobile, 'optionalAccess', _955 => _955.onToggle, 'optionalCall', _956 => _956()]);
|
|
41336
41439
|
},
|
|
41337
|
-
isActive: _nullishCoalesce(_optionalChain([config, 'access',
|
|
41338
|
-
"aria-label": _optionalChain([config, 'access',
|
|
41339
|
-
"aria-expanded": _nullishCoalesce(_optionalChain([config, 'access',
|
|
41340
|
-
"aria-controls": _optionalChain([config, 'access',
|
|
41341
|
-
icon: _optionalChain([config, 'access',
|
|
41440
|
+
isActive: _nullishCoalesce(_optionalChain([config, 'access', _957 => _957.mobile, 'optionalAccess', _958 => _958.isOpen]), () => ( false)),
|
|
41441
|
+
"aria-label": _optionalChain([config, 'access', _959 => _959.mobile, 'optionalAccess', _960 => _960.isOpen]) ? "Close menu" : "Open menu",
|
|
41442
|
+
"aria-expanded": _nullishCoalesce(_optionalChain([config, 'access', _961 => _961.mobile, 'optionalAccess', _962 => _962.isOpen]), () => ( false)),
|
|
41443
|
+
"aria-controls": _optionalChain([config, 'access', _963 => _963.mobile, 'optionalAccess', _964 => _964.isOpen]) ? MOBILE_NAV_PANEL_ID : void 0,
|
|
41444
|
+
icon: _optionalChain([config, 'access', _965 => _965.mobile, 'optionalAccess', _966 => _966.isOpen]) ? _optionalChain([config, 'access', _967 => _967.mobile, 'optionalAccess', _968 => _968.closeIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.XmarkIcon, { className: "w-6 h-6" }) : _optionalChain([config, 'access', _969 => _969.mobile, 'optionalAccess', _970 => _970.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.Menu01Icon, { className: "w-6 h-6" })
|
|
41342
41445
|
}
|
|
41343
41446
|
)
|
|
41344
41447
|
] }),
|
|
@@ -41351,23 +41454,23 @@ function Header2({ config, platform }) {
|
|
|
41351
41454
|
"flex items-center gap-2",
|
|
41352
41455
|
// True centering relative to the bar (not the leftover flex
|
|
41353
41456
|
// space) — same treatment the pre-unification header had.
|
|
41354
|
-
_optionalChain([config, 'access',
|
|
41457
|
+
_optionalChain([config, 'access', _971 => _971.navigation, 'optionalAccess', _972 => _972.position]) === "center" && "absolute left-1/2 -translate-x-1/2"
|
|
41355
41458
|
),
|
|
41356
41459
|
role: "navigation",
|
|
41357
41460
|
"aria-label": "Main navigation",
|
|
41358
|
-
children: _optionalChain([config, 'access',
|
|
41461
|
+
children: _optionalChain([config, 'access', _973 => _973.navigation, 'optionalAccess', _974 => _974.items, 'access', _975 => _975.map, 'call', _976 => _976(renderNavigationItem)])
|
|
41359
41462
|
}
|
|
41360
41463
|
) : void 0,
|
|
41361
41464
|
centerClassName: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
41362
|
-
_optionalChain([config, 'access',
|
|
41363
|
-
_optionalChain([config, 'access',
|
|
41465
|
+
_optionalChain([config, 'access', _977 => _977.navigation, 'optionalAccess', _978 => _978.position]) === "left" && "justify-start",
|
|
41466
|
+
_optionalChain([config, 'access', _979 => _979.navigation, 'optionalAccess', _980 => _980.position]) === "right" && "justify-end pr-[var(--spacing-system-m)]"
|
|
41364
41467
|
),
|
|
41365
41468
|
cta: hasCta ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
41366
|
-
!!_optionalChain([config, 'access',
|
|
41367
|
-
_optionalChain([config, 'access',
|
|
41469
|
+
!!_optionalChain([config, 'access', _981 => _981.actions, 'optionalAccess', _982 => _982.right, 'optionalAccess', _983 => _983.length]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden lg:flex items-center gap-3", children: config.actions.right }),
|
|
41470
|
+
_optionalChain([config, 'access', _984 => _984.actions, 'optionalAccess', _985 => _985.persistent]) && config.actions.persistent.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.persistent })
|
|
41368
41471
|
] }) : void 0,
|
|
41369
41472
|
ctaClassName: "gap-3",
|
|
41370
|
-
sideActions: config.tickets || _optionalChain([config, 'access',
|
|
41473
|
+
sideActions: config.tickets || _optionalChain([config, 'access', _986 => _986.mingo, 'optionalAccess', _987 => _987.enabled]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
41371
41474
|
config.tickets && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
41372
41475
|
TicketAlertsButton,
|
|
41373
41476
|
{
|
|
@@ -41376,7 +41479,7 @@ function Header2({ config, platform }) {
|
|
|
41376
41479
|
className: "border-l border-ods-border"
|
|
41377
41480
|
}
|
|
41378
41481
|
),
|
|
41379
|
-
_optionalChain([config, 'access',
|
|
41482
|
+
_optionalChain([config, 'access', _988 => _988.mingo, 'optionalAccess', _989 => _989.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
41380
41483
|
MingoAiButton,
|
|
41381
41484
|
{
|
|
41382
41485
|
source: config.mingo.source,
|
|
@@ -41398,17 +41501,17 @@ function Header2({ config, platform }) {
|
|
|
41398
41501
|
// src/components/navigation/header-skeleton.tsx
|
|
41399
41502
|
|
|
41400
41503
|
function HeaderSkeleton({ config }) {
|
|
41401
|
-
const showNavigation = _optionalChain([config, 'optionalAccess',
|
|
41402
|
-
const showActions = _optionalChain([config, 'optionalAccess',
|
|
41403
|
-
const showMobileMenu = _optionalChain([config, 'optionalAccess',
|
|
41404
|
-
const showLeftActions = !!_optionalChain([config, 'optionalAccess',
|
|
41504
|
+
const showNavigation = _optionalChain([config, 'optionalAccess', _990 => _990.navigation]) && config.navigation.items.length > 0;
|
|
41505
|
+
const showActions = _optionalChain([config, 'optionalAccess', _991 => _991.actions, 'optionalAccess', _992 => _992.right]) && config.actions.right.length > 0;
|
|
41506
|
+
const showMobileMenu = _optionalChain([config, 'optionalAccess', _993 => _993.mobile, 'optionalAccess', _994 => _994.enabled]);
|
|
41507
|
+
const showLeftActions = !!_optionalChain([config, 'optionalAccess', _995 => _995.actions, 'optionalAccess', _996 => _996.left]);
|
|
41405
41508
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-[50] w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
41406
41509
|
"header",
|
|
41407
41510
|
{
|
|
41408
41511
|
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
41409
41512
|
"flex h-[72px] w-full items-center border-b border-t border-ods-border md:border-t-0",
|
|
41410
|
-
_optionalChain([config, 'optionalAccess',
|
|
41411
|
-
_optionalChain([config, 'optionalAccess',
|
|
41513
|
+
_optionalChain([config, 'optionalAccess', _997 => _997.backgroundColor]) || "bg-ods-card",
|
|
41514
|
+
_optionalChain([config, 'optionalAccess', _998 => _998.className])
|
|
41412
41515
|
),
|
|
41413
41516
|
children: [
|
|
41414
41517
|
showLeftActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full w-[72px] items-center justify-center border-r border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) }),
|
|
@@ -41423,7 +41526,7 @@ function HeaderSkeleton({ config }) {
|
|
|
41423
41526
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-24 animate-pulse rounded bg-ods-border" })
|
|
41424
41527
|
] }) }),
|
|
41425
41528
|
showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden h-full items-center px-[var(--spacing-system-m)] lg:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-24 animate-pulse rounded bg-ods-border" }) }),
|
|
41426
|
-
_optionalChain([config, 'optionalAccess',
|
|
41529
|
+
_optionalChain([config, 'optionalAccess', _999 => _999.mingo, 'optionalAccess', _1000 => _1000.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full items-center border-l border-ods-border px-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded bg-ods-border md:w-28" }) })
|
|
41427
41530
|
]
|
|
41428
41531
|
}
|
|
41429
41532
|
) });
|
|
@@ -41530,7 +41633,7 @@ function SlidingSidebar({ config }) {
|
|
|
41530
41633
|
variant: "transparent",
|
|
41531
41634
|
size: "default",
|
|
41532
41635
|
onClick: () => {
|
|
41533
|
-
_optionalChain([item, 'access',
|
|
41636
|
+
_optionalChain([item, 'access', _1001 => _1001.onClick, 'optionalCall', _1002 => _1002()]);
|
|
41534
41637
|
config.onClose();
|
|
41535
41638
|
},
|
|
41536
41639
|
leftIcon: item.icon,
|
|
@@ -41553,7 +41656,7 @@ function SlidingSidebar({ config }) {
|
|
|
41553
41656
|
variant: "transparent",
|
|
41554
41657
|
size: "default",
|
|
41555
41658
|
onClick: () => {
|
|
41556
|
-
_optionalChain([item, 'access',
|
|
41659
|
+
_optionalChain([item, 'access', _1003 => _1003.onClick, 'optionalCall', _1004 => _1004()]);
|
|
41557
41660
|
config.onClose();
|
|
41558
41661
|
},
|
|
41559
41662
|
leftIcon: item.icon,
|
|
@@ -41685,7 +41788,7 @@ function StickySectionNav({
|
|
|
41685
41788
|
] });
|
|
41686
41789
|
}
|
|
41687
41790
|
function useSectionNavigation(sections, options) {
|
|
41688
|
-
const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access',
|
|
41791
|
+
const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _1005 => _1005[0], 'optionalAccess', _1006 => _1006.id]) || "");
|
|
41689
41792
|
const isScrollingFromClick = _react.useRef.call(void 0, false);
|
|
41690
41793
|
const { offset: offset2 = 100 } = options || {};
|
|
41691
41794
|
const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
|
|
@@ -41709,7 +41812,7 @@ function useSectionNavigation(sections, options) {
|
|
|
41709
41812
|
const handleScroll = () => {
|
|
41710
41813
|
if (isScrollingFromClick.current) return;
|
|
41711
41814
|
const scrollPosition = window.scrollY + offset2 + 50;
|
|
41712
|
-
let currentSection = _optionalChain([sections, 'access',
|
|
41815
|
+
let currentSection = _optionalChain([sections, 'access', _1007 => _1007[0], 'optionalAccess', _1008 => _1008.id]) || "";
|
|
41713
41816
|
for (let i = sections.length - 1; i >= 0; i--) {
|
|
41714
41817
|
const element = document.getElementById(sections[i].id);
|
|
41715
41818
|
if (element && scrollPosition >= element.offsetTop) {
|
|
@@ -41925,7 +42028,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
41925
42028
|
} else {
|
|
41926
42029
|
setDesktopMinimized((prev) => !prev);
|
|
41927
42030
|
}
|
|
41928
|
-
_optionalChain([config, 'access',
|
|
42031
|
+
_optionalChain([config, 'access', _1009 => _1009.onToggleMinimized, 'optionalCall', _1010 => _1010()]);
|
|
41929
42032
|
}, [isTablet, setDesktopMinimized, config]);
|
|
41930
42033
|
const closeOverlay = _react.useCallback.call(void 0, () => {
|
|
41931
42034
|
setTabletMinimized(true);
|
|
@@ -41940,14 +42043,14 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
41940
42043
|
}, [isOverlayOpen, closeOverlay]);
|
|
41941
42044
|
const [pendingItemId, setPendingItemId] = _react.useState.call(void 0, null);
|
|
41942
42045
|
const committedActiveId = _react.useMemo.call(void 0,
|
|
41943
|
-
() => _nullishCoalesce(_optionalChain([config, 'access',
|
|
42046
|
+
() => _nullishCoalesce(_optionalChain([config, 'access', _1011 => _1011.items, 'access', _1012 => _1012.find, 'call', _1013 => _1013((item) => item.isActive), 'optionalAccess', _1014 => _1014.id]), () => ( null)),
|
|
41944
42047
|
[config.items]
|
|
41945
42048
|
);
|
|
41946
42049
|
_react.useEffect.call(void 0, () => {
|
|
41947
42050
|
setPendingItemId(null);
|
|
41948
42051
|
}, [committedActiveId]);
|
|
41949
42052
|
const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
|
|
41950
|
-
_optionalChain([event, 'optionalAccess',
|
|
42053
|
+
_optionalChain([event, 'optionalAccess', _1015 => _1015.stopPropagation, 'call', _1016 => _1016()]);
|
|
41951
42054
|
if (item.onClick) {
|
|
41952
42055
|
item.onClick();
|
|
41953
42056
|
if (isTablet) setTabletMinimized(true);
|
|
@@ -41956,7 +42059,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
41956
42059
|
if (!item.path) return;
|
|
41957
42060
|
if (isModifiedClick(event)) return;
|
|
41958
42061
|
if (config.onNavigate) {
|
|
41959
|
-
_optionalChain([event, 'optionalAccess',
|
|
42062
|
+
_optionalChain([event, 'optionalAccess', _1017 => _1017.preventDefault, 'call', _1018 => _1018()]);
|
|
41960
42063
|
if (item.id !== committedActiveId) setPendingItemId(item.id);
|
|
41961
42064
|
config.onNavigate(item.path);
|
|
41962
42065
|
}
|
|
@@ -41968,13 +42071,13 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
41968
42071
|
}), [config.items]);
|
|
41969
42072
|
const loadingRows = _react.useMemo.call(void 0, () => {
|
|
41970
42073
|
if (!config.loading) return null;
|
|
41971
|
-
const primary = _nullishCoalesce(_optionalChain([config, 'access',
|
|
41972
|
-
const secondary = _nullishCoalesce(_optionalChain([config, 'access',
|
|
42074
|
+
const primary = _nullishCoalesce(_optionalChain([config, 'access', _1019 => _1019.loadingRows, 'optionalAccess', _1020 => _1020.primary]), () => ( 7));
|
|
42075
|
+
const secondary = _nullishCoalesce(_optionalChain([config, 'access', _1021 => _1021.loadingRows, 'optionalAccess', _1022 => _1022.secondary]), () => ( 2));
|
|
41973
42076
|
return {
|
|
41974
42077
|
primary: Array.from({ length: Math.max(0, primary) }, (_, i) => `primary-${i}`),
|
|
41975
42078
|
secondary: Array.from({ length: Math.max(0, secondary) }, (_, i) => `secondary-${i}`)
|
|
41976
42079
|
};
|
|
41977
|
-
}, [config.loading, _optionalChain([config, 'access',
|
|
42080
|
+
}, [config.loading, _optionalChain([config, 'access', _1023 => _1023.loadingRows, 'optionalAccess', _1024 => _1024.primary]), _optionalChain([config, 'access', _1025 => _1025.loadingRows, 'optionalAccess', _1026 => _1026.secondary])]);
|
|
41978
42081
|
const sidebarWidth = _react.useMemo.call(void 0,
|
|
41979
42082
|
() => minimized ? `${MINIMIZED_WIDTH}px` : `${EXPANDED_WIDTH}px`,
|
|
41980
42083
|
[minimized]
|
|
@@ -42025,7 +42128,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
42025
42128
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationSidebarHeader, { minimized }),
|
|
42026
42129
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col justify-between py-4 overflow-y-auto", children: [
|
|
42027
42130
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
42028
|
-
_optionalChain([config, 'access',
|
|
42131
|
+
_optionalChain([config, 'access', _1027 => _1027.topSlot, 'optionalCall', _1028 => _1028({ minimized })]),
|
|
42029
42132
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { className: "flex flex-col", "aria-label": "Primary navigation", "aria-busy": !!loadingRows, children: loadingRows ? loadingRows.primary.map((key) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationSidebarItemSkeleton, { showLabel }, key)) : primaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42030
42133
|
NavigationSidebarItemButton,
|
|
42031
42134
|
{
|
|
@@ -42081,7 +42184,7 @@ function HeaderGlobalSearch({
|
|
|
42081
42184
|
placeholder = "Global Search",
|
|
42082
42185
|
className
|
|
42083
42186
|
}) {
|
|
42084
|
-
const [internalValue, setInternalValue] =
|
|
42187
|
+
const [internalValue, setInternalValue] = React126.default.useState(value);
|
|
42085
42188
|
const currentValue = onChange ? value : internalValue;
|
|
42086
42189
|
const handleChange = (e) => {
|
|
42087
42190
|
const newValue = e.target.value;
|
|
@@ -42093,11 +42196,11 @@ function HeaderGlobalSearch({
|
|
|
42093
42196
|
};
|
|
42094
42197
|
const handleSubmit = (e) => {
|
|
42095
42198
|
e.preventDefault();
|
|
42096
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
42199
|
+
_optionalChain([onSubmit, 'optionalCall', _1029 => _1029(currentValue)]);
|
|
42097
42200
|
};
|
|
42098
42201
|
const handleKeyDown = (e) => {
|
|
42099
42202
|
if (e.key === "Enter") {
|
|
42100
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
42203
|
+
_optionalChain([onSubmit, 'optionalCall', _1030 => _1030(currentValue)]);
|
|
42101
42204
|
}
|
|
42102
42205
|
};
|
|
42103
42206
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -42200,8 +42303,8 @@ function HeaderOrganizationFilter({
|
|
|
42200
42303
|
className
|
|
42201
42304
|
}) {
|
|
42202
42305
|
const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
|
|
42203
|
-
const displayName = _optionalChain([selectedOrg, 'optionalAccess',
|
|
42204
|
-
const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess',
|
|
42306
|
+
const displayName = _optionalChain([selectedOrg, 'optionalAccess', _1031 => _1031.name]) || "All Organizations";
|
|
42307
|
+
const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _1032 => _1032.deviceCount]), () => ( totalDeviceCount));
|
|
42205
42308
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDCB4EBA5cjs.DropdownMenu, { children: [
|
|
42206
42309
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
42207
42310
|
"button",
|
|
@@ -42227,11 +42330,11 @@ function HeaderOrganizationFilter({
|
|
|
42227
42330
|
}
|
|
42228
42331
|
) }),
|
|
42229
42332
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
|
|
42230
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall',
|
|
42333
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _1033 => _1033("")]), children: "All Organizations" }),
|
|
42231
42334
|
organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42232
42335
|
_chunkDCB4EBA5cjs.DropdownMenuItem,
|
|
42233
42336
|
{
|
|
42234
|
-
onClick: () => _optionalChain([onOrgChange, 'optionalCall',
|
|
42337
|
+
onClick: () => _optionalChain([onOrgChange, 'optionalCall', _1034 => _1034(org.id)]),
|
|
42235
42338
|
children: org.name
|
|
42236
42339
|
},
|
|
42237
42340
|
org.id
|
|
@@ -42242,7 +42345,7 @@ function HeaderOrganizationFilter({
|
|
|
42242
42345
|
|
|
42243
42346
|
// src/components/navigation/app-header.tsx
|
|
42244
42347
|
|
|
42245
|
-
var AppHeader =
|
|
42348
|
+
var AppHeader = React126.default.memo(function AppHeader2({
|
|
42246
42349
|
showSearch,
|
|
42247
42350
|
onSearch,
|
|
42248
42351
|
showOrganizations,
|
|
@@ -42452,9 +42555,9 @@ var AppHeader = React129.default.memo(function AppHeader2({
|
|
|
42452
42555
|
});
|
|
42453
42556
|
function NotificationsHeaderButton({ fallbackUnreadCount, disabled, dimmedClass }) {
|
|
42454
42557
|
const ctx = useOptionalNotifications();
|
|
42455
|
-
const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
42456
|
-
const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
42457
|
-
const onClick = _optionalChain([ctx, 'optionalAccess',
|
|
42558
|
+
const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _1035 => _1035.unreadCount]), () => ( fallbackUnreadCount))) > 0;
|
|
42559
|
+
const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _1036 => _1036.isOpen]), () => ( false));
|
|
42560
|
+
const onClick = _optionalChain([ctx, 'optionalAccess', _1037 => _1037.toggle]);
|
|
42458
42561
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42459
42562
|
HeaderButton,
|
|
42460
42563
|
{
|
|
@@ -42531,7 +42634,7 @@ function AppHeaderSkeleton({
|
|
|
42531
42634
|
|
|
42532
42635
|
|
|
42533
42636
|
var HEADER_HEIGHT = 56;
|
|
42534
|
-
var MobileBurgerMenu =
|
|
42637
|
+
var MobileBurgerMenu = React126.default.memo(function MobileBurgerMenu2({
|
|
42535
42638
|
isOpen,
|
|
42536
42639
|
onClose,
|
|
42537
42640
|
config,
|
|
@@ -42548,7 +42651,7 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
|
|
|
42548
42651
|
if (item.onClick) {
|
|
42549
42652
|
item.onClick();
|
|
42550
42653
|
} else if (item.path) {
|
|
42551
|
-
_optionalChain([config, 'access',
|
|
42654
|
+
_optionalChain([config, 'access', _1038 => _1038.onNavigate, 'optionalCall', _1039 => _1039(item.path)]);
|
|
42552
42655
|
}
|
|
42553
42656
|
onClose();
|
|
42554
42657
|
}, [config, onClose]);
|
|
@@ -42575,7 +42678,7 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
|
|
|
42575
42678
|
),
|
|
42576
42679
|
"aria-current": isActive ? "page" : void 0,
|
|
42577
42680
|
children: [
|
|
42578
|
-
item.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 size-4 flex items-center justify-center", children:
|
|
42681
|
+
item.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 size-4 flex items-center justify-center", children: React126.default.cloneElement(item.icon, {
|
|
42579
42682
|
size: 16,
|
|
42580
42683
|
color: isActive && !disabled ? "var(--color-accent-primary)" : "var(--color-text-secondary)"
|
|
42581
42684
|
}) }),
|
|
@@ -42588,7 +42691,7 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
|
|
|
42588
42691
|
item.id
|
|
42589
42692
|
);
|
|
42590
42693
|
};
|
|
42591
|
-
const renderNavigationGrid = (items) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-3", children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42694
|
+
const renderNavigationGrid = (items) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-3", children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderNavigationItem(item, true) }, item.id)) });
|
|
42592
42695
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
42593
42696
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42594
42697
|
"div",
|
|
@@ -42678,9 +42781,9 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
|
|
|
42678
42781
|
]
|
|
42679
42782
|
}
|
|
42680
42783
|
),
|
|
42681
|
-
_optionalChain([config, 'access',
|
|
42784
|
+
_optionalChain([config, 'access', _1040 => _1040.topSlot, 'optionalCall', _1041 => _1041({ minimized: false })]),
|
|
42682
42785
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Primary navigation", children: renderNavigationGrid(primaryItems) }),
|
|
42683
|
-
secondaryItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42786
|
+
secondaryItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
|
|
42684
42787
|
onLogout && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
42685
42788
|
"button",
|
|
42686
42789
|
{
|
|
@@ -43146,7 +43249,7 @@ var ShellTypeBadge = ({
|
|
|
43146
43249
|
className,
|
|
43147
43250
|
iconClassName
|
|
43148
43251
|
}) => {
|
|
43149
|
-
const normalizedType = _optionalChain([shellType, 'optionalAccess',
|
|
43252
|
+
const normalizedType = _optionalChain([shellType, 'optionalAccess', _1042 => _1042.toUpperCase, 'call', _1043 => _1043()]);
|
|
43150
43253
|
const label = getShellLabel(normalizedType);
|
|
43151
43254
|
const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
|
|
43152
43255
|
const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
|
|
@@ -43363,7 +43466,7 @@ function OnboardingStepCard({
|
|
|
43363
43466
|
onSkip,
|
|
43364
43467
|
className
|
|
43365
43468
|
}) {
|
|
43366
|
-
const [isProcessing, setIsProcessing] =
|
|
43469
|
+
const [isProcessing, setIsProcessing] = React126.default.useState(false);
|
|
43367
43470
|
const handleAction = async (e) => {
|
|
43368
43471
|
e.stopPropagation();
|
|
43369
43472
|
setIsProcessing(true);
|
|
@@ -43475,7 +43578,7 @@ function OnboardingWalkthrough({
|
|
|
43475
43578
|
const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
|
|
43476
43579
|
const lastCompletionStatusRef = _react.useRef.call(void 0, null);
|
|
43477
43580
|
const actionInProgressRef = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
|
|
43478
|
-
|
|
43581
|
+
React126.default.useEffect(() => {
|
|
43479
43582
|
if (isLoadingCompletion) {
|
|
43480
43583
|
hasAutoMarkedRef.current = false;
|
|
43481
43584
|
return;
|
|
@@ -43533,12 +43636,12 @@ function OnboardingWalkthrough({
|
|
|
43533
43636
|
}
|
|
43534
43637
|
}, [state.completedSteps, markComplete]);
|
|
43535
43638
|
const handleStepSkip = (step) => {
|
|
43536
|
-
_optionalChain([step, 'access',
|
|
43639
|
+
_optionalChain([step, 'access', _1044 => _1044.onSkip, 'optionalCall', _1045 => _1045()]);
|
|
43537
43640
|
markSkipped(step.id);
|
|
43538
43641
|
};
|
|
43539
43642
|
const handleDismiss = () => {
|
|
43540
43643
|
dismissOnboarding();
|
|
43541
|
-
_optionalChain([onDismiss, 'optionalCall',
|
|
43644
|
+
_optionalChain([onDismiss, 'optionalCall', _1046 => _1046()]);
|
|
43542
43645
|
};
|
|
43543
43646
|
if (state.dismissed) {
|
|
43544
43647
|
return null;
|
|
@@ -43606,7 +43709,7 @@ var LOG_SEVERITY_LABELS = {
|
|
|
43606
43709
|
|
|
43607
43710
|
// src/components/log-severity-dot.tsx
|
|
43608
43711
|
|
|
43609
|
-
var LogSeverityDot =
|
|
43712
|
+
var LogSeverityDot = React122.forwardRef(({ severity, size: size2 = "md", className }, ref) => {
|
|
43610
43713
|
const sizeClasses2 = {
|
|
43611
43714
|
sm: "w-4 h-4",
|
|
43612
43715
|
md: "w-6 h-6",
|
|
@@ -43668,7 +43771,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
43668
43771
|
onKeyDown: (e) => {
|
|
43669
43772
|
if (e.key === "Enter" || e.key === " ") {
|
|
43670
43773
|
e.preventDefault();
|
|
43671
|
-
_optionalChain([onClick, 'optionalCall',
|
|
43774
|
+
_optionalChain([onClick, 'optionalCall', _1047 => _1047()]);
|
|
43672
43775
|
}
|
|
43673
43776
|
},
|
|
43674
43777
|
children: [
|
|
@@ -43696,7 +43799,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
43696
43799
|
)
|
|
43697
43800
|
] });
|
|
43698
43801
|
};
|
|
43699
|
-
var LogsList =
|
|
43802
|
+
var LogsList = React123.forwardRef(({
|
|
43700
43803
|
logs,
|
|
43701
43804
|
maxHeight = "400px",
|
|
43702
43805
|
showConnector = true,
|
|
@@ -43705,7 +43808,7 @@ var LogsList = React126.forwardRef(({
|
|
|
43705
43808
|
emptyMessage = "No logs to display",
|
|
43706
43809
|
className
|
|
43707
43810
|
}, ref) => {
|
|
43708
|
-
const containerRef =
|
|
43811
|
+
const containerRef = React123.useRef(null);
|
|
43709
43812
|
const isFullHeight = maxHeight === "100%";
|
|
43710
43813
|
const getContainerStyles = () => {
|
|
43711
43814
|
if (isFullHeight) return void 0;
|
|
@@ -43769,7 +43872,7 @@ var LogsList = React126.forwardRef(({
|
|
|
43769
43872
|
log,
|
|
43770
43873
|
isLast: index === logs.length - 1,
|
|
43771
43874
|
showConnector,
|
|
43772
|
-
onClick: () => _optionalChain([onLogClick, 'optionalCall',
|
|
43875
|
+
onClick: () => _optionalChain([onLogClick, 'optionalCall', _1048 => _1048(log)])
|
|
43773
43876
|
},
|
|
43774
43877
|
log.id
|
|
43775
43878
|
))
|
|
@@ -43877,11 +43980,11 @@ function ServiceCardRowItem({ row }) {
|
|
|
43877
43980
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
43878
43981
|
|
|
43879
43982
|
|
|
43880
|
-
var Slider =
|
|
43983
|
+
var Slider = React125.forwardRef(
|
|
43881
43984
|
({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
|
|
43882
43985
|
const handleChange = (e) => {
|
|
43883
43986
|
const newValue = [Number(e.target.value)];
|
|
43884
|
-
_optionalChain([onValueChange, 'optionalCall',
|
|
43987
|
+
_optionalChain([onValueChange, 'optionalCall', _1049 => _1049(newValue)]);
|
|
43885
43988
|
};
|
|
43886
43989
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
43887
43990
|
"input",
|
|
@@ -44268,7 +44371,7 @@ function CursorPaginationSimple({
|
|
|
44268
44371
|
{
|
|
44269
44372
|
variant: "transparent",
|
|
44270
44373
|
size: "icon",
|
|
44271
|
-
onClick: () => _optionalChain([onPrevious, 'optionalCall',
|
|
44374
|
+
onClick: () => _optionalChain([onPrevious, 'optionalCall', _1050 => _1050("")]),
|
|
44272
44375
|
disabled: !hasPreviousPage || loading,
|
|
44273
44376
|
className: "h-8 w-8",
|
|
44274
44377
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
|
|
@@ -44280,7 +44383,7 @@ function CursorPaginationSimple({
|
|
|
44280
44383
|
{
|
|
44281
44384
|
variant: "transparent",
|
|
44282
44385
|
size: "icon",
|
|
44283
|
-
onClick: () => _optionalChain([onNext, 'optionalCall',
|
|
44386
|
+
onClick: () => _optionalChain([onNext, 'optionalCall', _1051 => _1051("")]),
|
|
44284
44387
|
disabled: !hasNextPage || loading,
|
|
44285
44388
|
className: "h-8 w-8",
|
|
44286
44389
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
|
|
@@ -44300,8 +44403,8 @@ function TableEmptyState({ message: message2, icon, action, className }) {
|
|
|
44300
44403
|
icon: _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}))),
|
|
44301
44404
|
title: _nullishCoalesce(message2, () => ( "No results found")),
|
|
44302
44405
|
description: message2 == null ? "Try adjusting your search or filters" : void 0,
|
|
44303
|
-
buttonLabel: _optionalChain([action, 'optionalAccess',
|
|
44304
|
-
onButtonClick: _optionalChain([action, 'optionalAccess',
|
|
44406
|
+
buttonLabel: _optionalChain([action, 'optionalAccess', _1052 => _1052.label]),
|
|
44407
|
+
onButtonClick: _optionalChain([action, 'optionalAccess', _1053 => _1053.onClick]),
|
|
44305
44408
|
className: _chunkKI4EGKNVcjs.cn.call(void 0, "py-[var(--spacing-system-xxl)]", className)
|
|
44306
44409
|
}
|
|
44307
44410
|
);
|
|
@@ -44322,7 +44425,7 @@ function TableColumnFilterDropdown({
|
|
|
44322
44425
|
placement = "bottom-start",
|
|
44323
44426
|
dropdownClassName = "min-w-[240px]"
|
|
44324
44427
|
}) {
|
|
44325
|
-
const activeCount = _optionalChain([filters, 'optionalAccess',
|
|
44428
|
+
const activeCount = _optionalChain([filters, 'optionalAccess', _1054 => _1054[columnKey], 'optionalAccess', _1055 => _1055.length]) || 0;
|
|
44326
44429
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
44327
44430
|
FiltersDropdown,
|
|
44328
44431
|
{
|
|
@@ -44365,7 +44468,7 @@ function TableColumnFilterDropdown({
|
|
|
44365
44468
|
delete newFilters[columnKey];
|
|
44366
44469
|
onFilterChange(newFilters);
|
|
44367
44470
|
},
|
|
44368
|
-
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess',
|
|
44471
|
+
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _1056 => _1056[columnKey]]) || [] },
|
|
44369
44472
|
placement,
|
|
44370
44473
|
dropdownClassName
|
|
44371
44474
|
}
|
|
@@ -44575,7 +44678,7 @@ function TableCardSkeleton({
|
|
|
44575
44678
|
className,
|
|
44576
44679
|
rowClassName
|
|
44577
44680
|
}) {
|
|
44578
|
-
const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess',
|
|
44681
|
+
const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess', _1057 => _1057.key]);
|
|
44579
44682
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
44580
44683
|
"div",
|
|
44581
44684
|
{
|
|
@@ -44668,7 +44771,7 @@ function TableRow({
|
|
|
44668
44771
|
const keys = column.key.split(".");
|
|
44669
44772
|
let value = item;
|
|
44670
44773
|
for (const key of keys) {
|
|
44671
|
-
value = _optionalChain([value, 'optionalAccess',
|
|
44774
|
+
value = _optionalChain([value, 'optionalAccess', _1058 => _1058[key]]);
|
|
44672
44775
|
}
|
|
44673
44776
|
if (value === null || value === void 0) {
|
|
44674
44777
|
return "-";
|
|
@@ -44757,7 +44860,7 @@ function useTableMotion(enabled) {
|
|
|
44757
44860
|
// src/components/ui/table/table.tsx
|
|
44758
44861
|
|
|
44759
44862
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
44760
|
-
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess',
|
|
44863
|
+
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _1059 => _1059.length])) || Boolean(renderRowActions);
|
|
44761
44864
|
const result = [...columns];
|
|
44762
44865
|
if (hasActions) {
|
|
44763
44866
|
const actionsColumn = {
|
|
@@ -44853,7 +44956,7 @@ function Table({
|
|
|
44853
44956
|
return rowKey(item);
|
|
44854
44957
|
}
|
|
44855
44958
|
const key = item[rowKey];
|
|
44856
|
-
return _optionalChain([key, 'optionalAccess',
|
|
44959
|
+
return _optionalChain([key, 'optionalAccess', _1060 => _1060.toString, 'call', _1061 => _1061()]) || index.toString();
|
|
44857
44960
|
};
|
|
44858
44961
|
const getRowClassName = (item, index) => {
|
|
44859
44962
|
if (typeof rowClassName === "function") {
|
|
@@ -44887,23 +44990,23 @@ function Table({
|
|
|
44887
44990
|
const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
|
|
44888
44991
|
const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
|
|
44889
44992
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
44890
|
-
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess',
|
|
44891
|
-
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess',
|
|
44993
|
+
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _1062 => _1062.onLoadMore]));
|
|
44994
|
+
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _1063 => _1063.onLoadMore]);
|
|
44892
44995
|
_react.useEffect.call(void 0, () => {
|
|
44893
|
-
if (!_optionalChain([infiniteScroll, 'optionalAccess',
|
|
44996
|
+
if (!_optionalChain([infiniteScroll, 'optionalAccess', _1064 => _1064.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
|
|
44894
44997
|
const sentinel = sentinelRef.current;
|
|
44895
44998
|
if (!sentinel) return;
|
|
44896
44999
|
const observer = new IntersectionObserver(
|
|
44897
45000
|
(entries) => {
|
|
44898
|
-
if (_optionalChain([entries, 'access',
|
|
44899
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
45001
|
+
if (_optionalChain([entries, 'access', _1065 => _1065[0], 'optionalAccess', _1066 => _1066.isIntersecting])) {
|
|
45002
|
+
_optionalChain([onLoadMoreRef, 'access', _1067 => _1067.current, 'optionalCall', _1068 => _1068()]);
|
|
44900
45003
|
}
|
|
44901
45004
|
},
|
|
44902
45005
|
{ rootMargin: "200px" }
|
|
44903
45006
|
);
|
|
44904
45007
|
observer.observe(sentinel);
|
|
44905
45008
|
return () => observer.disconnect();
|
|
44906
|
-
}, [_optionalChain([infiniteScroll, 'optionalAccess',
|
|
45009
|
+
}, [_optionalChain([infiniteScroll, 'optionalAccess', _1069 => _1069.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _1070 => _1070.isFetchingNextPage])]);
|
|
44907
45010
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
|
|
44908
45011
|
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: [
|
|
44909
45012
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: [
|
|
@@ -44973,14 +45076,14 @@ function Table({
|
|
|
44973
45076
|
selected: isRowSelected(item),
|
|
44974
45077
|
onSelect: handleSelectRow,
|
|
44975
45078
|
animateRowReorder,
|
|
44976
|
-
motionDiv: _optionalChain([tableMotion, 'optionalAccess',
|
|
45079
|
+
motionDiv: _optionalChain([tableMotion, 'optionalAccess', _1071 => _1071.motionDiv])
|
|
44977
45080
|
},
|
|
44978
45081
|
getRowKey(item, index)
|
|
44979
45082
|
));
|
|
44980
|
-
const LayoutGroup = _optionalChain([tableMotion, 'optionalAccess',
|
|
45083
|
+
const LayoutGroup = _optionalChain([tableMotion, 'optionalAccess', _1072 => _1072.LayoutGroup]);
|
|
44981
45084
|
return animateRowReorder && LayoutGroup ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LayoutGroup, { children: rows }) : rows;
|
|
44982
45085
|
})(),
|
|
44983
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
45086
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _1073 => _1073.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
44984
45087
|
TableCardSkeleton,
|
|
44985
45088
|
{
|
|
44986
45089
|
columns,
|
|
@@ -44989,7 +45092,7 @@ function Table({
|
|
|
44989
45092
|
hasChevron: Boolean(rowHref)
|
|
44990
45093
|
}
|
|
44991
45094
|
),
|
|
44992
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
45095
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _1074 => _1074.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
|
|
44993
45096
|
!infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
44994
45097
|
"div",
|
|
44995
45098
|
{
|
|
@@ -45347,7 +45450,7 @@ function QueryReportTable({
|
|
|
45347
45450
|
);
|
|
45348
45451
|
const handleExport = () => {
|
|
45349
45452
|
exportToCSV(data, columns, exportFilename);
|
|
45350
|
-
_optionalChain([onExport, 'optionalCall',
|
|
45453
|
+
_optionalChain([onExport, 'optionalCall', _1075 => _1075()]);
|
|
45351
45454
|
};
|
|
45352
45455
|
const tableMinWidth = columns.length * (columnWidth + 16);
|
|
45353
45456
|
const {
|
|
@@ -45539,7 +45642,7 @@ function DataTableColumnFilter({
|
|
|
45539
45642
|
pending = false
|
|
45540
45643
|
}) {
|
|
45541
45644
|
const currentValue = column.getFilterValue();
|
|
45542
|
-
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess',
|
|
45645
|
+
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _1076 => _1076.length]), () => ( 0));
|
|
45543
45646
|
const sections = _react.useMemo.call(void 0,
|
|
45544
45647
|
() => [
|
|
45545
45648
|
{
|
|
@@ -45674,7 +45777,7 @@ function DataTableHeader({
|
|
|
45674
45777
|
);
|
|
45675
45778
|
}
|
|
45676
45779
|
function keepsCellOnTablet(meta) {
|
|
45677
|
-
return Boolean(_optionalChain([meta, 'optionalAccess',
|
|
45780
|
+
return Boolean(_optionalChain([meta, 'optionalAccess', _1077 => _1077.filter])) || _optionalChain([meta, 'optionalAccess', _1078 => _1078.alwaysShowHeader]) === true;
|
|
45678
45781
|
}
|
|
45679
45782
|
var SHOW_FROM = {
|
|
45680
45783
|
md: "md:flex",
|
|
@@ -45712,11 +45815,11 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
45712
45815
|
if (header.isPlaceholder) return null;
|
|
45713
45816
|
const column = header.column;
|
|
45714
45817
|
const meta = column.columnDef.meta;
|
|
45715
|
-
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess',
|
|
45818
|
+
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _1079 => _1079.filter]));
|
|
45716
45819
|
const keepOnTablet = keepsCellOnTablet(meta);
|
|
45717
|
-
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
45718
|
-
const canSort = _optionalChain([meta, 'optionalAccess',
|
|
45719
|
-
const sortDir = _optionalChain([sort, 'optionalAccess',
|
|
45820
|
+
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _1080 => _1080.align]), () => ( "left"));
|
|
45821
|
+
const canSort = _optionalChain([meta, 'optionalAccess', _1081 => _1081.sortable]) === true;
|
|
45822
|
+
const sortDir = _optionalChain([sort, 'optionalAccess', _1082 => _1082.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
|
|
45720
45823
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
45721
45824
|
"div",
|
|
45722
45825
|
{
|
|
@@ -45724,7 +45827,7 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
45724
45827
|
"items-stretch",
|
|
45725
45828
|
// Cells are hidden rather than dropped from the tree, so which columns
|
|
45726
45829
|
// exist never depends on when an effect ran.
|
|
45727
|
-
getCellVisibilityClasses(keepOnTablet, _optionalChain([meta, 'optionalAccess',
|
|
45830
|
+
getCellVisibilityClasses(keepOnTablet, _optionalChain([meta, 'optionalAccess', _1083 => _1083.hideAt])),
|
|
45728
45831
|
// Width applies from lg only. Stated as "always, neutralized below lg"
|
|
45729
45832
|
// because `meta.width` is an opaque consumer string that cannot be
|
|
45730
45833
|
// prefixed. Only `keepOnTablet` cells need the override — the rest are
|
|
@@ -45742,9 +45845,9 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
45742
45845
|
// Specificity rather than `!important`: it stays a normal declaration, so a
|
|
45743
45846
|
// consumer that genuinely needs a tablet width can still take it back with a
|
|
45744
45847
|
// more specific rule — `!important` could only be answered with another one.
|
|
45745
|
-
_optionalChain([meta, 'optionalAccess',
|
|
45848
|
+
_optionalChain([meta, 'optionalAccess', _1084 => _1084.width]) || "flex-1 min-w-0",
|
|
45746
45849
|
keepOnTablet && "max-lg:[&&]:w-auto max-lg:[&&]:flex-none max-lg:[&&]:basis-auto",
|
|
45747
|
-
_optionalChain([meta, 'optionalAccess',
|
|
45850
|
+
_optionalChain([meta, 'optionalAccess', _1085 => _1085.headerClassName])
|
|
45748
45851
|
),
|
|
45749
45852
|
children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
45750
45853
|
DataTableColumnFilter,
|
|
@@ -45768,7 +45871,7 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
45768
45871
|
keepOnTablet && "max-lg:justify-start",
|
|
45769
45872
|
canSort && "group cursor-pointer"
|
|
45770
45873
|
),
|
|
45771
|
-
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall',
|
|
45874
|
+
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _1086 => _1086(column.id)]) : void 0,
|
|
45772
45875
|
children: [
|
|
45773
45876
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
|
|
45774
45877
|
canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
|
|
@@ -45834,7 +45937,7 @@ function DataTableSkeleton({
|
|
|
45834
45937
|
}) {
|
|
45835
45938
|
const table = useDataTableContext();
|
|
45836
45939
|
const columns = table.getVisibleFlatColumns();
|
|
45837
|
-
const firstColumnId = _optionalChain([columns, 'access',
|
|
45940
|
+
const firstColumnId = _optionalChain([columns, 'access', _1087 => _1087[0], 'optionalAccess', _1088 => _1088.id]);
|
|
45838
45941
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
45839
45942
|
"div",
|
|
45840
45943
|
{
|
|
@@ -45859,13 +45962,13 @@ function DataTableSkeleton({
|
|
|
45859
45962
|
{
|
|
45860
45963
|
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
45861
45964
|
"flex flex-col justify-center shrink-0",
|
|
45862
|
-
_optionalChain([meta, 'optionalAccess',
|
|
45965
|
+
_optionalChain([meta, 'optionalAccess', _1089 => _1089.width]) || "flex-1",
|
|
45863
45966
|
// Same responsive hiding the real header and row apply.
|
|
45864
45967
|
// Without it a `hideAt` column was drawn in the skeleton and
|
|
45865
45968
|
// absent from the loaded table, so below that breakpoint the
|
|
45866
45969
|
// remaining columns were sized against a different total and
|
|
45867
45970
|
// the whole row re-laid-out the moment data arrived.
|
|
45868
|
-
getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
45971
|
+
getHideClasses2(_optionalChain([meta, 'optionalAccess', _1090 => _1090.hideAt]))
|
|
45869
45972
|
),
|
|
45870
45973
|
children: [
|
|
45871
45974
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
|
|
@@ -45916,7 +46019,7 @@ function DataTableRowImpl({
|
|
|
45916
46019
|
const handleClick = _react.useCallback.call(void 0,
|
|
45917
46020
|
(e) => {
|
|
45918
46021
|
const target = e.target;
|
|
45919
|
-
if (!_optionalChain([containerRef, 'access',
|
|
46022
|
+
if (!_optionalChain([containerRef, 'access', _1091 => _1091.current, 'optionalAccess', _1092 => _1092.contains, 'call', _1093 => _1093(target)])) {
|
|
45920
46023
|
if (isLinkMode) e.preventDefault();
|
|
45921
46024
|
return;
|
|
45922
46025
|
}
|
|
@@ -45924,7 +46027,7 @@ function DataTableRowImpl({
|
|
|
45924
46027
|
if (isLinkMode) e.preventDefault();
|
|
45925
46028
|
return;
|
|
45926
46029
|
}
|
|
45927
|
-
_optionalChain([onClick, 'optionalCall',
|
|
46030
|
+
_optionalChain([onClick, 'optionalCall', _1094 => _1094(row.original)]);
|
|
45928
46031
|
},
|
|
45929
46032
|
[onClick, row.original, isLinkMode]
|
|
45930
46033
|
);
|
|
@@ -45950,10 +46053,10 @@ function DataTableRowImpl({
|
|
|
45950
46053
|
{
|
|
45951
46054
|
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
45952
46055
|
"flex flex-col overflow-hidden",
|
|
45953
|
-
alignJustify(_optionalChain([meta, 'optionalAccess',
|
|
45954
|
-
_optionalChain([meta, 'optionalAccess',
|
|
45955
|
-
_optionalChain([meta, 'optionalAccess',
|
|
45956
|
-
getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
46056
|
+
alignJustify(_optionalChain([meta, 'optionalAccess', _1095 => _1095.align])),
|
|
46057
|
+
_optionalChain([meta, 'optionalAccess', _1096 => _1096.width]) || "flex-1 min-w-0",
|
|
46058
|
+
_optionalChain([meta, 'optionalAccess', _1097 => _1097.cellClassName]),
|
|
46059
|
+
getHideClasses2(_optionalChain([meta, 'optionalAccess', _1098 => _1098.hideAt]))
|
|
45957
46060
|
),
|
|
45958
46061
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
|
|
45959
46062
|
},
|
|
@@ -46033,7 +46136,7 @@ function DataTableBody({
|
|
|
46033
46136
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
|
|
46034
46137
|
rows.map((row, index) => {
|
|
46035
46138
|
const item = row.original;
|
|
46036
|
-
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall',
|
|
46139
|
+
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _1099 => _1099(item)]), () => ( void 0));
|
|
46037
46140
|
const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
|
|
46038
46141
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
46039
46142
|
DataTableRow,
|
|
@@ -46044,7 +46147,7 @@ function DataTableBody({
|
|
|
46044
46147
|
compact,
|
|
46045
46148
|
autoHeight,
|
|
46046
46149
|
className: cls,
|
|
46047
|
-
subRow: _optionalChain([renderSubRow, 'optionalCall',
|
|
46150
|
+
subRow: _optionalChain([renderSubRow, 'optionalCall', _1100 => _1100(item)])
|
|
46048
46151
|
},
|
|
46049
46152
|
row.id
|
|
46050
46153
|
);
|
|
@@ -46101,7 +46204,7 @@ function DataTableInfiniteFooter({
|
|
|
46101
46204
|
if (!sentinel) return;
|
|
46102
46205
|
const observer = new IntersectionObserver(
|
|
46103
46206
|
(entries) => {
|
|
46104
|
-
if (_optionalChain([entries, 'access',
|
|
46207
|
+
if (_optionalChain([entries, 'access', _1101 => _1101[0], 'optionalAccess', _1102 => _1102.isIntersecting])) onLoadMoreRef.current();
|
|
46105
46208
|
},
|
|
46106
46209
|
{ rootMargin }
|
|
46107
46210
|
);
|
|
@@ -46149,7 +46252,7 @@ function DataTableRowCount({
|
|
|
46149
46252
|
const table = useDataTableContext();
|
|
46150
46253
|
const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
|
|
46151
46254
|
if (hideWhenEmpty && count === 0) return null;
|
|
46152
|
-
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall',
|
|
46255
|
+
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _1103 => _1103(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
|
|
46153
46256
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
46154
46257
|
"span",
|
|
46155
46258
|
{
|
|
@@ -46280,13 +46383,13 @@ function SearchInput({
|
|
|
46280
46383
|
limitTags = "auto",
|
|
46281
46384
|
getLimitTagsText = (more) => `+${more}`
|
|
46282
46385
|
}) {
|
|
46283
|
-
const [internalValue, setInternalValue] =
|
|
46386
|
+
const [internalValue, setInternalValue] = React128.useState(defaultValue);
|
|
46284
46387
|
const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
|
|
46285
46388
|
const debouncedValue = _chunk5RJUHUCIcjs.useDebounce.call(void 0, currentValue, debounceMs);
|
|
46286
|
-
const [isOpen, setIsOpen] =
|
|
46287
|
-
const [highlightedIndex, setHighlightedIndex] =
|
|
46389
|
+
const [isOpen, setIsOpen] = React128.useState(false);
|
|
46390
|
+
const [highlightedIndex, setHighlightedIndex] = React128.useState(-1);
|
|
46288
46391
|
const keyboardPadding = _chunk5RJUHUCIcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
46289
|
-
const containerRef =
|
|
46392
|
+
const containerRef = React128.useRef(null);
|
|
46290
46393
|
const currentPlaceholder = filterChips.length > 0 ? "Add filter..." : placeholder;
|
|
46291
46394
|
const {
|
|
46292
46395
|
visibleCount: rawVisibleCount,
|
|
@@ -46303,14 +46406,14 @@ function SearchInput({
|
|
|
46303
46406
|
placeholder: filterChips.length > 0 ? "" : placeholder
|
|
46304
46407
|
});
|
|
46305
46408
|
const visibleCount = filterChips.length > 0 ? Math.max(1, rawVisibleCount) : rawVisibleCount;
|
|
46306
|
-
const hiddenTagsRef =
|
|
46307
|
-
const hiddenTagsPopupRef =
|
|
46308
|
-
const [showHiddenTags, setShowHiddenTags] =
|
|
46309
|
-
|
|
46409
|
+
const hiddenTagsRef = React128.useRef(null);
|
|
46410
|
+
const hiddenTagsPopupRef = React128.useRef(null);
|
|
46411
|
+
const [showHiddenTags, setShowHiddenTags] = React128.useState(false);
|
|
46412
|
+
React128.useEffect(() => {
|
|
46310
46413
|
if (!showHiddenTags) return;
|
|
46311
46414
|
const handleClick = (e) => {
|
|
46312
46415
|
const target = e.target;
|
|
46313
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
46416
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _1104 => _1104.current, 'optionalAccess', _1105 => _1105.contains, 'call', _1106 => _1106(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _1107 => _1107.current, 'optionalAccess', _1108 => _1108.contains, 'call', _1109 => _1109(target)])) {
|
|
46314
46417
|
setShowHiddenTags(false);
|
|
46315
46418
|
}
|
|
46316
46419
|
};
|
|
@@ -46320,7 +46423,7 @@ function SearchInput({
|
|
|
46320
46423
|
const hiddenCount = filterChips.length - visibleCount;
|
|
46321
46424
|
const visibleChips = filterChips.slice(0, visibleCount);
|
|
46322
46425
|
const hiddenChips = filterChips.slice(visibleCount);
|
|
46323
|
-
const { flatResults, groups } =
|
|
46426
|
+
const { flatResults, groups } = React128.useMemo(() => {
|
|
46324
46427
|
if (!groupBy) return { flatResults: results, groups: null };
|
|
46325
46428
|
const grouped = /* @__PURE__ */ new Map();
|
|
46326
46429
|
for (const r of results) {
|
|
@@ -46337,7 +46440,7 @@ function SearchInput({
|
|
|
46337
46440
|
const meetsMinQuery = debouncedValue.length >= minQueryLength;
|
|
46338
46441
|
const autoShow = meetsMinQuery;
|
|
46339
46442
|
const dropdownVisible = _nullishCoalesce(showDropdownProp, () => ( (isOpen && autoShow)));
|
|
46340
|
-
|
|
46443
|
+
React128.useEffect(() => {
|
|
46341
46444
|
setHighlightedIndex(-1);
|
|
46342
46445
|
}, [flatResults.length]);
|
|
46343
46446
|
const handleChange = (e) => {
|
|
@@ -46358,10 +46461,10 @@ function SearchInput({
|
|
|
46358
46461
|
} else {
|
|
46359
46462
|
setInternalValue("");
|
|
46360
46463
|
}
|
|
46361
|
-
_optionalChain([inputRef, 'access',
|
|
46464
|
+
_optionalChain([inputRef, 'access', _1110 => _1110.current, 'optionalAccess', _1111 => _1111.focus, 'call', _1112 => _1112()]);
|
|
46362
46465
|
};
|
|
46363
46466
|
const handleResultClick = (result, e) => {
|
|
46364
|
-
_optionalChain([onResultSelect, 'optionalCall',
|
|
46467
|
+
_optionalChain([onResultSelect, 'optionalCall', _1113 => _1113(
|
|
46365
46468
|
result,
|
|
46366
46469
|
e ? {
|
|
46367
46470
|
metaKey: e.metaKey,
|
|
@@ -46393,7 +46496,7 @@ function SearchInput({
|
|
|
46393
46496
|
if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
|
|
46394
46497
|
handleResultClick(flatResults[highlightedIndex]);
|
|
46395
46498
|
} else {
|
|
46396
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
46499
|
+
_optionalChain([onSubmit, 'optionalCall', _1114 => _1114(currentValue)]);
|
|
46397
46500
|
}
|
|
46398
46501
|
break;
|
|
46399
46502
|
case "Escape":
|
|
@@ -46471,7 +46574,7 @@ function SearchInput({
|
|
|
46471
46574
|
dropdownVisible && "!border-ods-accent"
|
|
46472
46575
|
),
|
|
46473
46576
|
onClick: () => {
|
|
46474
|
-
_optionalChain([inputRef, 'access',
|
|
46577
|
+
_optionalChain([inputRef, 'access', _1115 => _1115.current, 'optionalAccess', _1116 => _1116.focus, 'call', _1117 => _1117()]);
|
|
46475
46578
|
setIsOpen(true);
|
|
46476
46579
|
},
|
|
46477
46580
|
children: [
|
|
@@ -46557,10 +46660,10 @@ function SearchInput({
|
|
|
46557
46660
|
collisionPadding: { bottom: keyboardPadding },
|
|
46558
46661
|
onOpenAutoFocus: (e) => {
|
|
46559
46662
|
e.preventDefault();
|
|
46560
|
-
_optionalChain([inputRef, 'access',
|
|
46663
|
+
_optionalChain([inputRef, 'access', _1118 => _1118.current, 'optionalAccess', _1119 => _1119.focus, 'call', _1120 => _1120()]);
|
|
46561
46664
|
},
|
|
46562
46665
|
onInteractOutside: (e) => {
|
|
46563
|
-
if (_optionalChain([containerRef, 'access',
|
|
46666
|
+
if (_optionalChain([containerRef, 'access', _1121 => _1121.current, 'optionalAccess', _1122 => _1122.contains, 'call', _1123 => _1123(e.target)])) {
|
|
46564
46667
|
e.preventDefault();
|
|
46565
46668
|
}
|
|
46566
46669
|
},
|
|
@@ -46577,10 +46680,10 @@ function SearchInput({
|
|
|
46577
46680
|
ref: hiddenTagsPopupRef,
|
|
46578
46681
|
items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
|
|
46579
46682
|
style: {
|
|
46580
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access',
|
|
46683
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _1124 => _1124.current, 'optionalAccess', _1125 => _1125.getBoundingClientRect, 'call', _1126 => _1126(), 'access', _1127 => _1127.left]), () => ( 0))) : 0
|
|
46581
46684
|
},
|
|
46582
46685
|
onRemove: (value2) => {
|
|
46583
|
-
_optionalChain([onFilterRemove, 'optionalCall',
|
|
46686
|
+
_optionalChain([onFilterRemove, 'optionalCall', _1128 => _1128(value2)]);
|
|
46584
46687
|
if (hiddenCount <= 1) setShowHiddenTags(false);
|
|
46585
46688
|
}
|
|
46586
46689
|
}
|
|
@@ -46631,7 +46734,7 @@ function FilterListItem({
|
|
|
46631
46734
|
}) {
|
|
46632
46735
|
const handleToggle = () => {
|
|
46633
46736
|
if (disabled) return;
|
|
46634
|
-
_optionalChain([onToggle, 'optionalCall',
|
|
46737
|
+
_optionalChain([onToggle, 'optionalCall', _1129 => _1129(!selected)]);
|
|
46635
46738
|
};
|
|
46636
46739
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
46637
46740
|
"div",
|
|
@@ -46667,7 +46770,7 @@ function FilterListItem({
|
|
|
46667
46770
|
"flex items-start gap-[var(--spacing-system-xxs)] text-h6",
|
|
46668
46771
|
selected ? "text-ods-accent" : "text-ods-text-secondary"
|
|
46669
46772
|
),
|
|
46670
|
-
children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
46773
|
+
children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React129.Fragment, { children: [
|
|
46671
46774
|
index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
|
|
46672
46775
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: item })
|
|
46673
46776
|
] }, index))
|
|
@@ -46678,7 +46781,7 @@ function FilterListItem({
|
|
|
46678
46781
|
CheckboxPrimitive4.Root,
|
|
46679
46782
|
{
|
|
46680
46783
|
checked: selected,
|
|
46681
|
-
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall',
|
|
46784
|
+
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _1130 => _1130(c === true)]),
|
|
46682
46785
|
onClick: (e) => e.stopPropagation(),
|
|
46683
46786
|
disabled,
|
|
46684
46787
|
"aria-label": title,
|
|
@@ -46777,7 +46880,7 @@ function TagSearchInput({
|
|
|
46777
46880
|
if (!showHiddenTags) return;
|
|
46778
46881
|
const handleClick = (e) => {
|
|
46779
46882
|
const target = e.target;
|
|
46780
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
46883
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _1131 => _1131.current, 'optionalAccess', _1132 => _1132.contains, 'call', _1133 => _1133(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _1134 => _1134.current, 'optionalAccess', _1135 => _1135.contains, 'call', _1136 => _1136(target)])) {
|
|
46781
46884
|
setShowHiddenTags(false);
|
|
46782
46885
|
}
|
|
46783
46886
|
};
|
|
@@ -46793,13 +46896,13 @@ function TagSearchInput({
|
|
|
46793
46896
|
e.preventDefault();
|
|
46794
46897
|
onSubmit(searchValue);
|
|
46795
46898
|
}
|
|
46796
|
-
_optionalChain([onKeyDown, 'optionalCall',
|
|
46899
|
+
_optionalChain([onKeyDown, 'optionalCall', _1137 => _1137(e)]);
|
|
46797
46900
|
};
|
|
46798
46901
|
const handleClearAll = (e) => {
|
|
46799
46902
|
e.stopPropagation();
|
|
46800
46903
|
e.preventDefault();
|
|
46801
|
-
_optionalChain([onClearAll, 'optionalCall',
|
|
46802
|
-
_optionalChain([inputRef, 'access',
|
|
46904
|
+
_optionalChain([onClearAll, 'optionalCall', _1138 => _1138()]);
|
|
46905
|
+
_optionalChain([inputRef, 'access', _1139 => _1139.current, 'optionalAccess', _1140 => _1140.focus, 'call', _1141 => _1141()]);
|
|
46803
46906
|
};
|
|
46804
46907
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
|
|
46805
46908
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -46822,7 +46925,7 @@ function TagSearchInput({
|
|
|
46822
46925
|
className
|
|
46823
46926
|
),
|
|
46824
46927
|
onClick: () => {
|
|
46825
|
-
if (!disabled) _optionalChain([inputRef, 'access',
|
|
46928
|
+
if (!disabled) _optionalChain([inputRef, 'access', _1142 => _1142.current, 'optionalAccess', _1143 => _1143.focus, 'call', _1144 => _1144()]);
|
|
46826
46929
|
},
|
|
46827
46930
|
children: [
|
|
46828
46931
|
/* @__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" }) }),
|
|
@@ -46895,7 +46998,7 @@ function TagSearchInput({
|
|
|
46895
46998
|
items: hiddenTags,
|
|
46896
46999
|
disabled,
|
|
46897
47000
|
style: {
|
|
46898
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access',
|
|
47001
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _1145 => _1145.current, 'optionalAccess', _1146 => _1146.getBoundingClientRect, 'call', _1147 => _1147(), 'access', _1148 => _1148.left]), () => ( 0))) : 0
|
|
46899
47002
|
},
|
|
46900
47003
|
onRemove: (value) => {
|
|
46901
47004
|
onTagRemove(value);
|
|
@@ -46996,7 +47099,7 @@ function MarkdownEditor({
|
|
|
46996
47099
|
const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
|
|
46997
47100
|
_react.useEffect.call(void 0, () => {
|
|
46998
47101
|
Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
|
|
46999
|
-
if (_optionalChain([mod, 'access',
|
|
47102
|
+
if (_optionalChain([mod, 'access', _1149 => _1149.commands, 'optionalAccess', _1150 => _1150.getExtraCommands])) {
|
|
47000
47103
|
setDefaultExtraCommands(mod.commands.getExtraCommands());
|
|
47001
47104
|
}
|
|
47002
47105
|
});
|
|
@@ -47030,7 +47133,7 @@ function MarkdownEditor({
|
|
|
47030
47133
|
const isImage = file.type.startsWith("image/");
|
|
47031
47134
|
const markdown = isImage ? `` : `[${file.name}](${url})`;
|
|
47032
47135
|
insertTextAtCursor(markdown);
|
|
47033
|
-
_optionalChain([onFileUploaded, 'optionalCall',
|
|
47136
|
+
_optionalChain([onFileUploaded, 'optionalCall', _1151 => _1151(url, file.name)]);
|
|
47034
47137
|
} catch (error) {
|
|
47035
47138
|
console.error("File upload failed:", error);
|
|
47036
47139
|
setUploadProgress("Upload failed. Please try again.");
|
|
@@ -47043,7 +47146,7 @@ function MarkdownEditor({
|
|
|
47043
47146
|
);
|
|
47044
47147
|
const handleFileInputChange = _react.useCallback.call(void 0,
|
|
47045
47148
|
(e) => {
|
|
47046
|
-
const file = _optionalChain([e, 'access',
|
|
47149
|
+
const file = _optionalChain([e, 'access', _1152 => _1152.target, 'access', _1153 => _1153.files, 'optionalAccess', _1154 => _1154[0]]);
|
|
47047
47150
|
if (file) {
|
|
47048
47151
|
handleFileUpload(file);
|
|
47049
47152
|
e.target.value = "";
|
|
@@ -47054,7 +47157,7 @@ function MarkdownEditor({
|
|
|
47054
47157
|
const handlePaste = _react.useCallback.call(void 0,
|
|
47055
47158
|
(e) => {
|
|
47056
47159
|
if (!onUploadFile) return;
|
|
47057
|
-
const items = _optionalChain([e, 'access',
|
|
47160
|
+
const items = _optionalChain([e, 'access', _1155 => _1155.clipboardData, 'optionalAccess', _1156 => _1156.items]);
|
|
47058
47161
|
if (!items) return;
|
|
47059
47162
|
for (const item of items) {
|
|
47060
47163
|
if (item.type.startsWith("image/")) {
|
|
@@ -47079,7 +47182,7 @@ function MarkdownEditor({
|
|
|
47079
47182
|
buttonProps: { "aria-label": "Upload file", title: "Upload file" },
|
|
47080
47183
|
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" }),
|
|
47081
47184
|
execute: () => {
|
|
47082
|
-
_optionalChain([fileInputRef, 'access',
|
|
47185
|
+
_optionalChain([fileInputRef, 'access', _1157 => _1157.current, 'optionalAccess', _1158 => _1158.click, 'call', _1159 => _1159()]);
|
|
47083
47186
|
}
|
|
47084
47187
|
} : null;
|
|
47085
47188
|
const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
|
|
@@ -47091,7 +47194,7 @@ function MarkdownEditor({
|
|
|
47091
47194
|
const EDGE_ZONE = 60;
|
|
47092
47195
|
const MAX_SCROLL_SPEED = 15;
|
|
47093
47196
|
const findScrollParent = _react.useCallback.call(void 0, (el) => {
|
|
47094
|
-
let node = _optionalChain([el, 'optionalAccess',
|
|
47197
|
+
let node = _optionalChain([el, 'optionalAccess', _1160 => _1160.parentElement]);
|
|
47095
47198
|
while (node && node !== document.documentElement) {
|
|
47096
47199
|
const { overflowY } = window.getComputedStyle(node);
|
|
47097
47200
|
if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
|
|
@@ -47234,7 +47337,7 @@ function matchesAccept(file, accept) {
|
|
|
47234
47337
|
});
|
|
47235
47338
|
}
|
|
47236
47339
|
function dragHasFiles(e) {
|
|
47237
|
-
const types = _optionalChain([e, 'access',
|
|
47340
|
+
const types = _optionalChain([e, 'access', _1161 => _1161.dataTransfer, 'optionalAccess', _1162 => _1162.types]);
|
|
47238
47341
|
if (!types) return false;
|
|
47239
47342
|
for (let i = 0; i < types.length; i++) {
|
|
47240
47343
|
if (types[i] === "Files") return true;
|
|
@@ -47262,11 +47365,11 @@ function FileUpload({
|
|
|
47262
47365
|
acceptWindowDrops = false,
|
|
47263
47366
|
pickFiles
|
|
47264
47367
|
}) {
|
|
47265
|
-
const [dragActive, setDragActive] =
|
|
47266
|
-
const [validationError, setValidationError] =
|
|
47267
|
-
const fileInputRef =
|
|
47368
|
+
const [dragActive, setDragActive] = React131.useState(false);
|
|
47369
|
+
const [validationError, setValidationError] = React131.useState(null);
|
|
47370
|
+
const fileInputRef = React131.useRef(null);
|
|
47268
47371
|
const isManaged = managedFiles !== void 0;
|
|
47269
|
-
const files =
|
|
47372
|
+
const files = React131.useMemo(() => {
|
|
47270
47373
|
if (!value) return [];
|
|
47271
47374
|
return Array.isArray(value) ? value : [value];
|
|
47272
47375
|
}, [value]);
|
|
@@ -47314,7 +47417,7 @@ function FileUpload({
|
|
|
47314
47417
|
fileInputRef.current.value = "";
|
|
47315
47418
|
}
|
|
47316
47419
|
};
|
|
47317
|
-
const handleFilesRef =
|
|
47420
|
+
const handleFilesRef = React131.useRef(handleFiles);
|
|
47318
47421
|
handleFilesRef.current = handleFiles;
|
|
47319
47422
|
const handleDrag = (e) => {
|
|
47320
47423
|
e.preventDefault();
|
|
@@ -47331,11 +47434,11 @@ function FileUpload({
|
|
|
47331
47434
|
e.stopPropagation();
|
|
47332
47435
|
setDragActive(false);
|
|
47333
47436
|
if (disabled) return;
|
|
47334
|
-
if (_optionalChain([e, 'access',
|
|
47437
|
+
if (_optionalChain([e, 'access', _1163 => _1163.dataTransfer, 'access', _1164 => _1164.files, 'optionalAccess', _1165 => _1165.length])) {
|
|
47335
47438
|
handleFiles(e.dataTransfer.files);
|
|
47336
47439
|
}
|
|
47337
47440
|
};
|
|
47338
|
-
|
|
47441
|
+
React131.useEffect(() => {
|
|
47339
47442
|
if (!acceptWindowDrops || disabled) return;
|
|
47340
47443
|
let dragCounter = 0;
|
|
47341
47444
|
const onWindowDragEnter = (e) => {
|
|
@@ -47359,7 +47462,7 @@ function FileUpload({
|
|
|
47359
47462
|
e.preventDefault();
|
|
47360
47463
|
dragCounter = 0;
|
|
47361
47464
|
setDragActive(false);
|
|
47362
|
-
if (_optionalChain([e, 'access',
|
|
47465
|
+
if (_optionalChain([e, 'access', _1166 => _1166.dataTransfer, 'optionalAccess', _1167 => _1167.files, 'optionalAccess', _1168 => _1168.length])) {
|
|
47363
47466
|
handleFilesRef.current(e.dataTransfer.files);
|
|
47364
47467
|
}
|
|
47365
47468
|
};
|
|
@@ -47381,7 +47484,7 @@ function FileUpload({
|
|
|
47381
47484
|
};
|
|
47382
47485
|
}, [acceptWindowDrops, disabled]);
|
|
47383
47486
|
const handleFileSelect = (e) => {
|
|
47384
|
-
if (_optionalChain([e, 'access',
|
|
47487
|
+
if (_optionalChain([e, 'access', _1169 => _1169.target, 'access', _1170 => _1170.files, 'optionalAccess', _1171 => _1171.length])) {
|
|
47385
47488
|
handleFiles(e.target.files);
|
|
47386
47489
|
}
|
|
47387
47490
|
};
|
|
@@ -47399,7 +47502,7 @@ function FileUpload({
|
|
|
47399
47502
|
const openDialog = async () => {
|
|
47400
47503
|
if (disabled) return;
|
|
47401
47504
|
if (!pickFiles) {
|
|
47402
|
-
_optionalChain([fileInputRef, 'access',
|
|
47505
|
+
_optionalChain([fileInputRef, 'access', _1172 => _1172.current, 'optionalAccess', _1173 => _1173.click, 'call', _1174 => _1174()]);
|
|
47403
47506
|
return;
|
|
47404
47507
|
}
|
|
47405
47508
|
try {
|
|
@@ -47469,7 +47572,7 @@ function FileUpload({
|
|
|
47469
47572
|
"button",
|
|
47470
47573
|
{
|
|
47471
47574
|
type: "button",
|
|
47472
|
-
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall',
|
|
47575
|
+
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _1175 => _1175(entry.id)]),
|
|
47473
47576
|
className: "shrink-0 text-ods-error hover:opacity-80 transition-opacity",
|
|
47474
47577
|
"aria-label": `Remove ${entry.fileName}`,
|
|
47475
47578
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.TrashIcon, { className: "size-6" })
|
|
@@ -47578,10 +47681,10 @@ function ImageUploader({
|
|
|
47578
47681
|
className,
|
|
47579
47682
|
dropzoneClassName
|
|
47580
47683
|
}) {
|
|
47581
|
-
const inputRef =
|
|
47582
|
-
const [dragActive, setDragActive] =
|
|
47583
|
-
const [pressed, setPressed] =
|
|
47584
|
-
const [validationError, setValidationError] =
|
|
47684
|
+
const inputRef = React132.useRef(null);
|
|
47685
|
+
const [dragActive, setDragActive] = React132.useState(false);
|
|
47686
|
+
const [pressed, setPressed] = React132.useState(false);
|
|
47687
|
+
const [validationError, setValidationError] = React132.useState(null);
|
|
47585
47688
|
const interactive = !disabled && !loading;
|
|
47586
47689
|
const resolvedValue = _chunk5RJUHUCIcjs.useAuthedImageSrc.call(void 0, value);
|
|
47587
47690
|
const hasImage = Boolean(value);
|
|
@@ -47601,7 +47704,7 @@ function ImageUploader({
|
|
|
47601
47704
|
onChange(file);
|
|
47602
47705
|
};
|
|
47603
47706
|
const handleFileSelect = (e) => {
|
|
47604
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
47707
|
+
validateAndEmit(_optionalChain([e, 'access', _1176 => _1176.target, 'access', _1177 => _1177.files, 'optionalAccess', _1178 => _1178[0]]));
|
|
47605
47708
|
if (inputRef.current) inputRef.current.value = "";
|
|
47606
47709
|
};
|
|
47607
47710
|
const handleDrag = (e) => {
|
|
@@ -47616,11 +47719,11 @@ function ImageUploader({
|
|
|
47616
47719
|
e.stopPropagation();
|
|
47617
47720
|
setDragActive(false);
|
|
47618
47721
|
if (!interactive) return;
|
|
47619
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
47722
|
+
validateAndEmit(_optionalChain([e, 'access', _1179 => _1179.dataTransfer, 'access', _1180 => _1180.files, 'optionalAccess', _1181 => _1181[0]]));
|
|
47620
47723
|
};
|
|
47621
47724
|
const openDialog = () => {
|
|
47622
47725
|
if (!interactive) return;
|
|
47623
|
-
_optionalChain([inputRef, 'access',
|
|
47726
|
+
_optionalChain([inputRef, 'access', _1182 => _1182.current, 'optionalAccess', _1183 => _1183.click, 'call', _1184 => _1184()]);
|
|
47624
47727
|
};
|
|
47625
47728
|
const handleRootKeyDown = (e) => {
|
|
47626
47729
|
if (hasImage || !interactive) return;
|
|
@@ -47758,7 +47861,7 @@ _chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
|
47758
47861
|
|
|
47759
47862
|
var Popover2 = PopoverPrimitive7.Root;
|
|
47760
47863
|
var PopoverTrigger = PopoverPrimitive7.Trigger;
|
|
47761
|
-
var PopoverContent =
|
|
47864
|
+
var PopoverContent = React133.forwardRef(({ className, align = "center", sideOffset = 4, collisionPadding, ...props }, ref) => {
|
|
47762
47865
|
const keyboardPadding = _chunk5RJUHUCIcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
47763
47866
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive7.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
47764
47867
|
PopoverPrimitive7.Content,
|
|
@@ -47815,8 +47918,8 @@ function ColorPresetSelect({
|
|
|
47815
47918
|
}) {
|
|
47816
47919
|
const selectedPreset = presets.find((p) => p.key === presetKey);
|
|
47817
47920
|
const isCustom = !selectedPreset;
|
|
47818
|
-
const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess',
|
|
47819
|
-
const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess',
|
|
47921
|
+
const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _1185 => _1185.label]), () => ( "Custom"));
|
|
47922
|
+
const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _1186 => _1186.color]), () => ( value));
|
|
47820
47923
|
const groups = [
|
|
47821
47924
|
{
|
|
47822
47925
|
items: [
|
|
@@ -47859,8 +47962,8 @@ var FORMATS = ["HEX", "RGB", "HSL"];
|
|
|
47859
47962
|
var channelInputClass = "flex-1 min-w-0 [&_input]:text-center [&_input]:tabular-nums";
|
|
47860
47963
|
var hexInputClass = "flex-1 min-w-0 [&_input]:uppercase";
|
|
47861
47964
|
function HexInputs({ value, onChange }) {
|
|
47862
|
-
const [draft, setDraft] =
|
|
47863
|
-
|
|
47965
|
+
const [draft, setDraft] = React134.useState(value);
|
|
47966
|
+
React134.useEffect(() => setDraft(value), [value]);
|
|
47864
47967
|
const commit = () => {
|
|
47865
47968
|
const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
|
|
47866
47969
|
if (HEX_PATTERN.test(candidate)) onChange(candidate);
|
|
@@ -47892,8 +47995,8 @@ function ChannelInput({
|
|
|
47892
47995
|
ariaLabel,
|
|
47893
47996
|
onCommit
|
|
47894
47997
|
}) {
|
|
47895
|
-
const [draft, setDraft] =
|
|
47896
|
-
|
|
47998
|
+
const [draft, setDraft] = React134.useState(String(value));
|
|
47999
|
+
React134.useEffect(() => setDraft(String(value)), [value]);
|
|
47897
48000
|
const commit = () => {
|
|
47898
48001
|
const parsed = Number.parseInt(draft, 10);
|
|
47899
48002
|
if (!Number.isFinite(parsed)) {
|
|
@@ -47953,8 +48056,8 @@ function HslInputs({ value, onChange }) {
|
|
|
47953
48056
|
] });
|
|
47954
48057
|
}
|
|
47955
48058
|
function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
47956
|
-
const [open, setOpen] =
|
|
47957
|
-
const [format3, setFormat] =
|
|
48059
|
+
const [open, setOpen] = React134.useState(false);
|
|
48060
|
+
const [format3, setFormat] = React134.useState("HEX");
|
|
47958
48061
|
const formatGroups = [
|
|
47959
48062
|
{
|
|
47960
48063
|
items: FORMATS.map((f) => ({
|
|
@@ -48019,9 +48122,9 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
48019
48122
|
|
|
48020
48123
|
var dismissOpenTooltip = null;
|
|
48021
48124
|
function WithLeftTooltip({ content, children }) {
|
|
48022
|
-
const [open, setOpen] =
|
|
48023
|
-
const isTouchRef =
|
|
48024
|
-
const close =
|
|
48125
|
+
const [open, setOpen] = React135.useState(false);
|
|
48126
|
+
const isTouchRef = React135.useRef(false);
|
|
48127
|
+
const close = React135.useCallback(() => setOpen(false), []);
|
|
48025
48128
|
if (!content) return children;
|
|
48026
48129
|
const toggleFromTouch = () => {
|
|
48027
48130
|
setOpen((prev) => {
|
|
@@ -48106,7 +48209,7 @@ function TicketStatusConfigRow({
|
|
|
48106
48209
|
_chunkDCB4EBA5cjs.Input,
|
|
48107
48210
|
{
|
|
48108
48211
|
value: name,
|
|
48109
|
-
onChange: (e) => _optionalChain([onNameChange, 'optionalCall',
|
|
48212
|
+
onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _1187 => _1187(e.target.value)]),
|
|
48110
48213
|
disabled: isSystem,
|
|
48111
48214
|
readOnly: isSystem,
|
|
48112
48215
|
"aria-label": "Status name",
|
|
@@ -48173,8 +48276,8 @@ function TestResultsSkeleton() {
|
|
|
48173
48276
|
] }) });
|
|
48174
48277
|
}
|
|
48175
48278
|
function TestResultsTable({ rows, loading }) {
|
|
48176
|
-
const columnKeys =
|
|
48177
|
-
const columns =
|
|
48279
|
+
const columnKeys = React136.useMemo(() => rows.length > 0 ? Object.keys(rows[0]) : [], [rows]);
|
|
48280
|
+
const columns = React136.useMemo(() => {
|
|
48178
48281
|
return columnKeys.map((key) => ({
|
|
48179
48282
|
id: key,
|
|
48180
48283
|
accessorFn: (row) => row[key],
|
|
@@ -48267,10 +48370,10 @@ function TestRunStatusStat({ status, className }) {
|
|
|
48267
48370
|
] });
|
|
48268
48371
|
}
|
|
48269
48372
|
function useTestRunState(campaign) {
|
|
48270
|
-
const [hasRun, setHasRun] =
|
|
48271
|
-
const [isStarting, setIsStarting] =
|
|
48272
|
-
const [durationMs, setDurationMs] =
|
|
48273
|
-
|
|
48373
|
+
const [hasRun, setHasRun] = React136.useState(false);
|
|
48374
|
+
const [isStarting, setIsStarting] = React136.useState(false);
|
|
48375
|
+
const [durationMs, setDurationMs] = React136.useState(0);
|
|
48376
|
+
React136.useEffect(() => {
|
|
48274
48377
|
if (!campaign.startedAt || !campaign.isRunning) {
|
|
48275
48378
|
if (campaign.startedAt && !campaign.isRunning) {
|
|
48276
48379
|
setDurationMs(Date.now() - campaign.startedAt.getTime());
|
|
@@ -48283,7 +48386,7 @@ function useTestRunState(campaign) {
|
|
|
48283
48386
|
}, 1e3);
|
|
48284
48387
|
return () => clearInterval(interval);
|
|
48285
48388
|
}, [campaign.startedAt, campaign.isRunning]);
|
|
48286
|
-
const run =
|
|
48389
|
+
const run = React136.useCallback(async (start) => {
|
|
48287
48390
|
setHasRun(true);
|
|
48288
48391
|
setDurationMs(0);
|
|
48289
48392
|
setIsStarting(true);
|
|
@@ -48293,11 +48396,11 @@ function useTestRunState(campaign) {
|
|
|
48293
48396
|
setIsStarting(false);
|
|
48294
48397
|
}
|
|
48295
48398
|
}, []);
|
|
48296
|
-
const stop =
|
|
48399
|
+
const stop = React136.useCallback(() => {
|
|
48297
48400
|
setIsStarting(false);
|
|
48298
48401
|
campaign.stopCampaign();
|
|
48299
48402
|
}, [campaign.stopCampaign]);
|
|
48300
|
-
const reset =
|
|
48403
|
+
const reset = React136.useCallback(() => {
|
|
48301
48404
|
setIsStarting(false);
|
|
48302
48405
|
campaign.stopCampaign();
|
|
48303
48406
|
setDurationMs(0);
|
|
@@ -48311,7 +48414,7 @@ function useTestRunState(campaign) {
|
|
|
48311
48414
|
const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
|
|
48312
48415
|
const startedLabel = showTiming && campaign.startedAt ? formatTime(campaign.startedAt) : "00:00 PM";
|
|
48313
48416
|
const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
|
|
48314
|
-
const displayRows =
|
|
48417
|
+
const displayRows = React136.useMemo(
|
|
48315
48418
|
() => campaign.results.map(
|
|
48316
48419
|
(row) => Object.fromEntries(Object.entries(row).map(([key, value]) => [key.replace(/_/g, " "), value]))
|
|
48317
48420
|
),
|
|
@@ -48425,8 +48528,8 @@ _chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
|
48425
48528
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
48426
48529
|
|
|
48427
48530
|
function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
48428
|
-
const [isEditing, setIsEditing] =
|
|
48429
|
-
const [editText, setEditText] =
|
|
48531
|
+
const [isEditing, setIsEditing] = React137.useState(false);
|
|
48532
|
+
const [editText, setEditText] = React137.useState(note.text);
|
|
48430
48533
|
const handleSave = () => {
|
|
48431
48534
|
const trimmed = editText.trim();
|
|
48432
48535
|
if (!trimmed || !onEdit) return;
|
|
@@ -48549,7 +48652,7 @@ function TicketNotesSection({
|
|
|
48549
48652
|
isAddingNote,
|
|
48550
48653
|
className
|
|
48551
48654
|
}) {
|
|
48552
|
-
const [noteText, setNoteText] =
|
|
48655
|
+
const [noteText, setNoteText] = React138.useState("");
|
|
48553
48656
|
const handleSend = () => {
|
|
48554
48657
|
const trimmed = noteText.trim();
|
|
48555
48658
|
if (!trimmed || !onAddNote || isAddingNote) return;
|
|
@@ -48659,14 +48762,14 @@ function TicketInfoSection({
|
|
|
48659
48762
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
48660
48763
|
SquareAvatar,
|
|
48661
48764
|
{
|
|
48662
|
-
src: _optionalChain([organization, 'optionalAccess',
|
|
48663
|
-
alt: _optionalChain([organization, 'optionalAccess',
|
|
48664
|
-
fallback: _optionalChain([organization, 'optionalAccess',
|
|
48765
|
+
src: _optionalChain([organization, 'optionalAccess', _1188 => _1188.imageSrc]),
|
|
48766
|
+
alt: _optionalChain([organization, 'optionalAccess', _1189 => _1189.name]),
|
|
48767
|
+
fallback: _optionalChain([organization, 'optionalAccess', _1190 => _1190.name]) || "Org",
|
|
48665
48768
|
size: "md",
|
|
48666
48769
|
className: "shrink-0"
|
|
48667
48770
|
}
|
|
48668
48771
|
),
|
|
48669
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess',
|
|
48772
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _1191 => _1191.name]) || "Unassigned", label: "Organization" })
|
|
48670
48773
|
] }),
|
|
48671
48774
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
48672
48775
|
AssigneeDropdown,
|
|
@@ -48687,10 +48790,10 @@ function TicketInfoSection({
|
|
|
48687
48790
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
48688
48791
|
InfoCell2,
|
|
48689
48792
|
{
|
|
48690
|
-
value: _optionalChain([device, 'optionalAccess',
|
|
48793
|
+
value: _optionalChain([device, 'optionalAccess', _1192 => _1192.name]) || "Unassigned",
|
|
48691
48794
|
label: "Device",
|
|
48692
|
-
icon: _optionalChain([device, 'optionalAccess',
|
|
48693
|
-
onClick: _optionalChain([device, 'optionalAccess',
|
|
48795
|
+
icon: _optionalChain([device, 'optionalAccess', _1193 => _1193.icon]),
|
|
48796
|
+
onClick: _optionalChain([device, 'optionalAccess', _1194 => _1194.onClick])
|
|
48694
48797
|
}
|
|
48695
48798
|
),
|
|
48696
48799
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
|
|
@@ -48788,14 +48891,14 @@ function TakeOverTicketModal({
|
|
|
48788
48891
|
isPending = false,
|
|
48789
48892
|
onConfirm
|
|
48790
48893
|
}) {
|
|
48791
|
-
const [statusId, setStatusId] =
|
|
48792
|
-
const [assigneeId, setAssigneeId] =
|
|
48793
|
-
|
|
48894
|
+
const [statusId, setStatusId] = React139.useState(null);
|
|
48895
|
+
const [assigneeId, setAssigneeId] = React139.useState(null);
|
|
48896
|
+
React139.useEffect(() => {
|
|
48794
48897
|
if (!isOpen) return;
|
|
48795
48898
|
setStatusId(_nullishCoalesce(initialStatusId, () => ( null)));
|
|
48796
48899
|
setAssigneeId(_nullishCoalesce(initialAssigneeId, () => ( null)));
|
|
48797
48900
|
}, [isOpen, initialStatusId, initialAssigneeId]);
|
|
48798
|
-
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access',
|
|
48901
|
+
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _1195 => _1195[0], 'optionalAccess', _1196 => _1196.value]))), () => ( null));
|
|
48799
48902
|
const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
|
|
48800
48903
|
const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
|
|
48801
48904
|
const handleConfirm = () => {
|
|
@@ -48882,16 +48985,16 @@ function ReopenTicketModal({
|
|
|
48882
48985
|
isPending = false,
|
|
48883
48986
|
onConfirm
|
|
48884
48987
|
}) {
|
|
48885
|
-
const [statusId, setStatusId] =
|
|
48886
|
-
const [assigneeId, setAssigneeId] =
|
|
48887
|
-
const [reason, setReason] =
|
|
48888
|
-
|
|
48988
|
+
const [statusId, setStatusId] = React140.useState(null);
|
|
48989
|
+
const [assigneeId, setAssigneeId] = React140.useState(null);
|
|
48990
|
+
const [reason, setReason] = React140.useState("");
|
|
48991
|
+
React140.useEffect(() => {
|
|
48889
48992
|
if (!isOpen) return;
|
|
48890
48993
|
setStatusId(_nullishCoalesce(initialStatusId, () => ( null)));
|
|
48891
48994
|
setAssigneeId(_nullishCoalesce(initialAssigneeId, () => ( null)));
|
|
48892
48995
|
setReason("");
|
|
48893
48996
|
}, [isOpen, initialStatusId, initialAssigneeId]);
|
|
48894
|
-
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access',
|
|
48997
|
+
const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _1197 => _1197[0], 'optionalAccess', _1198 => _1198.value]))), () => ( null));
|
|
48895
48998
|
const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
|
|
48896
48999
|
const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
|
|
48897
49000
|
const handleConfirm = () => {
|
|
@@ -48989,9 +49092,9 @@ function ReopenTicketRequestModal({
|
|
|
48989
49092
|
isPending = false,
|
|
48990
49093
|
onConfirm
|
|
48991
49094
|
}) {
|
|
48992
|
-
const [reason, setReason] =
|
|
48993
|
-
const [handoff, setHandoff] =
|
|
48994
|
-
|
|
49095
|
+
const [reason, setReason] = React141.useState("");
|
|
49096
|
+
const [handoff, setHandoff] = React141.useState(false);
|
|
49097
|
+
React141.useEffect(() => {
|
|
48995
49098
|
if (!isOpen) return;
|
|
48996
49099
|
setReason("");
|
|
48997
49100
|
setHandoff(false);
|
|
@@ -49316,7 +49419,7 @@ function RoadmapCard({
|
|
|
49316
49419
|
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
49317
49420
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
49318
49421
|
const hasFigma = !!item.figmaUrl;
|
|
49319
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
49422
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _1199 => _1199.screenshots, 'optionalAccess', _1200 => _1200.length]), () => ( 0))) > 0;
|
|
49320
49423
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
49321
49424
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
49322
49425
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -49335,7 +49438,7 @@ function RoadmapCard({
|
|
|
49335
49438
|
unoptimized: true,
|
|
49336
49439
|
className: "h-8 w-8 object-contain"
|
|
49337
49440
|
}
|
|
49338
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
49441
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _1201 => _1201.title, 'optionalAccess', _1202 => _1202.substring, 'call', _1203 => _1203(0, 2)]) || "??" })
|
|
49339
49442
|
}
|
|
49340
49443
|
),
|
|
49341
49444
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -49411,7 +49514,7 @@ function RoadmapCard({
|
|
|
49411
49514
|
unoptimized: true,
|
|
49412
49515
|
className: "object-contain p-1"
|
|
49413
49516
|
}
|
|
49414
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
49517
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _1204 => _1204.title, 'optionalAccess', _1205 => _1205.substring, 'call', _1206 => _1206(0, 2)]) || "??" }) }),
|
|
49415
49518
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
49416
49519
|
/* @__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 flex-1 line-clamp-2", children: item.title }) }),
|
|
49417
49520
|
/* @__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 truncate", children: [
|
|
@@ -49652,7 +49755,7 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
49652
49755
|
reviewState ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReviewStateBadge, { state: reviewState }) : null,
|
|
49653
49756
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: primaryText })
|
|
49654
49757
|
] }),
|
|
49655
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
49758
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
|
|
49656
49759
|
i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
49657
49760
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
|
|
49658
49761
|
] }, i)) }) }),
|
|
@@ -49744,7 +49847,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
49744
49847
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49745
49848
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
|
|
49746
49849
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.preview || COMPACT_CARD_ROW_FILLER }) }),
|
|
49747
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
49850
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
|
|
49748
49851
|
i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
49749
49852
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
|
|
49750
49853
|
] }, i)) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) }) })
|
|
@@ -49856,7 +49959,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
49856
49959
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: item.customerEmail })
|
|
49857
49960
|
] }) : null,
|
|
49858
49961
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-4 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary", children: item.preview || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "italic text-ods-text-secondary/60", children: "No description provided." }) }) }),
|
|
49859
|
-
metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
49962
|
+
metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
|
|
49860
49963
|
i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
49861
49964
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
|
|
49862
49965
|
] }, i)) }) }) : null
|
|
@@ -49922,7 +50025,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
|
49922
50025
|
] }) : null,
|
|
49923
50026
|
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-h6 text-ods-text-secondary", children: item.preview }) }) : null
|
|
49924
50027
|
] }),
|
|
49925
|
-
_optionalChain([anchorProps, 'optionalAccess',
|
|
50028
|
+
_optionalChain([anchorProps, 'optionalAccess', _1207 => _1207.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
|
|
49926
50029
|
] });
|
|
49927
50030
|
if (!anchorProps) {
|
|
49928
50031
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
@@ -49992,7 +50095,7 @@ function getDefaultOptions() {
|
|
|
49992
50095
|
// node_modules/date-fns/startOfWeek.mjs
|
|
49993
50096
|
function startOfWeek(date, options) {
|
|
49994
50097
|
const defaultOptions2 = getDefaultOptions();
|
|
49995
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
50098
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1208 => _1208.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _1209 => _1209.locale, 'optionalAccess', _1210 => _1210.options, 'optionalAccess', _1211 => _1211.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _1212 => _1212.locale, 'optionalAccess', _1213 => _1213.options, 'optionalAccess', _1214 => _1214.weekStartsOn]))), () => ( 0));
|
|
49996
50099
|
const _date = toDate2(date);
|
|
49997
50100
|
const day = _date.getDay();
|
|
49998
50101
|
const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
@@ -50167,7 +50270,7 @@ var formatDistance = (token, count, options) => {
|
|
|
50167
50270
|
} else {
|
|
50168
50271
|
result = tokenValue.other.replace("{{count}}", count.toString());
|
|
50169
50272
|
}
|
|
50170
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
50273
|
+
if (_optionalChain([options, 'optionalAccess', _1215 => _1215.addSuffix])) {
|
|
50171
50274
|
if (options.comparison && options.comparison > 0) {
|
|
50172
50275
|
return "in " + result;
|
|
50173
50276
|
} else {
|
|
@@ -50234,15 +50337,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
|
|
|
50234
50337
|
// node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
|
|
50235
50338
|
function buildLocalizeFn(args) {
|
|
50236
50339
|
return (value, options) => {
|
|
50237
|
-
const context = _optionalChain([options, 'optionalAccess',
|
|
50340
|
+
const context = _optionalChain([options, 'optionalAccess', _1216 => _1216.context]) ? String(options.context) : "standalone";
|
|
50238
50341
|
let valuesArray;
|
|
50239
50342
|
if (context === "formatting" && args.formattingValues) {
|
|
50240
50343
|
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
50241
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
50344
|
+
const width = _optionalChain([options, 'optionalAccess', _1217 => _1217.width]) ? String(options.width) : defaultWidth;
|
|
50242
50345
|
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
50243
50346
|
} else {
|
|
50244
50347
|
const defaultWidth = args.defaultWidth;
|
|
50245
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
50348
|
+
const width = _optionalChain([options, 'optionalAccess', _1218 => _1218.width]) ? String(options.width) : args.defaultWidth;
|
|
50246
50349
|
valuesArray = args.values[width] || args.values[defaultWidth];
|
|
50247
50350
|
}
|
|
50248
50351
|
const index = args.argumentCallback ? args.argumentCallback(value) : value;
|
|
@@ -50622,7 +50725,7 @@ function getWeekYear(date, options) {
|
|
|
50622
50725
|
const _date = toDate2(date);
|
|
50623
50726
|
const year = _date.getFullYear();
|
|
50624
50727
|
const defaultOptions2 = getDefaultOptions();
|
|
50625
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
50728
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1219 => _1219.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1220 => _1220.locale, 'optionalAccess', _1221 => _1221.options, 'optionalAccess', _1222 => _1222.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1223 => _1223.locale, 'optionalAccess', _1224 => _1224.options, 'optionalAccess', _1225 => _1225.firstWeekContainsDate]))), () => ( 1));
|
|
50626
50729
|
const firstWeekOfNextYear = constructFrom(date, 0);
|
|
50627
50730
|
firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
|
|
50628
50731
|
firstWeekOfNextYear.setHours(0, 0, 0, 0);
|
|
@@ -50643,7 +50746,7 @@ function getWeekYear(date, options) {
|
|
|
50643
50746
|
// node_modules/date-fns/startOfWeekYear.mjs
|
|
50644
50747
|
function startOfWeekYear(date, options) {
|
|
50645
50748
|
const defaultOptions2 = getDefaultOptions();
|
|
50646
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
50749
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1226 => _1226.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1227 => _1227.locale, 'optionalAccess', _1228 => _1228.options, 'optionalAccess', _1229 => _1229.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1230 => _1230.locale, 'optionalAccess', _1231 => _1231.options, 'optionalAccess', _1232 => _1232.firstWeekContainsDate]))), () => ( 1));
|
|
50647
50750
|
const year = getWeekYear(date, options);
|
|
50648
50751
|
const firstWeek = constructFrom(date, 0);
|
|
50649
50752
|
firstWeek.setFullYear(year, 0, firstWeekContainsDate);
|
|
@@ -51458,9 +51561,9 @@ var doubleQuoteRegExp = /''/g;
|
|
|
51458
51561
|
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
51459
51562
|
function format2(date, formatStr, options) {
|
|
51460
51563
|
const defaultOptions2 = getDefaultOptions();
|
|
51461
|
-
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
51462
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
51463
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
51564
|
+
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1233 => _1233.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
|
|
51565
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1234 => _1234.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1235 => _1235.locale, 'optionalAccess', _1236 => _1236.options, 'optionalAccess', _1237 => _1237.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1238 => _1238.locale, 'optionalAccess', _1239 => _1239.options, 'optionalAccess', _1240 => _1240.firstWeekContainsDate]))), () => ( 1));
|
|
51566
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1241 => _1241.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _1242 => _1242.locale, 'optionalAccess', _1243 => _1243.options, 'optionalAccess', _1244 => _1244.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _1245 => _1245.locale, 'optionalAccess', _1246 => _1246.options, 'optionalAccess', _1247 => _1247.weekStartsOn]))), () => ( 0));
|
|
51464
51567
|
const originalDate = toDate2(date);
|
|
51465
51568
|
if (!isValid(originalDate)) {
|
|
51466
51569
|
throw new RangeError("Invalid time value");
|
|
@@ -51501,7 +51604,7 @@ function format2(date, formatStr, options) {
|
|
|
51501
51604
|
return parts.map((part) => {
|
|
51502
51605
|
if (!part.isToken) return part.value;
|
|
51503
51606
|
const token = part.value;
|
|
51504
|
-
if (!_optionalChain([options, 'optionalAccess',
|
|
51607
|
+
if (!_optionalChain([options, 'optionalAccess', _1248 => _1248.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _1249 => _1249.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
|
|
51505
51608
|
warnOrThrowProtectedError(token, formatStr, String(date));
|
|
51506
51609
|
}
|
|
51507
51610
|
const formatter = formatters[token[0]];
|
|
@@ -51707,7 +51810,7 @@ function ProgramCard({
|
|
|
51707
51810
|
const itemDate2 = compactDate;
|
|
51708
51811
|
const compactCover = coverImage || placeholderUrl || null;
|
|
51709
51812
|
const typeMeta = compactTypeMeta();
|
|
51710
|
-
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access',
|
|
51813
|
+
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _1250 => _1250.labels, 'optionalAccess', _1251 => _1251.singular])].filter(
|
|
51711
51814
|
(s) => typeof s === "string" && s.length > 0
|
|
51712
51815
|
);
|
|
51713
51816
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunkKI4EGKNVcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
@@ -51864,7 +51967,7 @@ function ProgramCard({
|
|
|
51864
51967
|
|
|
51865
51968
|
|
|
51866
51969
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
51867
|
-
const goalsCount = _optionalChain([campaign, 'access',
|
|
51970
|
+
const goalsCount = _optionalChain([campaign, 'access', _1252 => _1252.goals, 'optionalAccess', _1253 => _1253.length]) || 0;
|
|
51868
51971
|
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
51869
51972
|
/* @__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" }) }),
|
|
51870
51973
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -52032,7 +52135,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
|
|
|
52032
52135
|
if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
|
|
52033
52136
|
const safePath = sanitizePath(row.path);
|
|
52034
52137
|
if (safePath) {
|
|
52035
|
-
const docTarget = row.documentType ? _optionalChain([ctx, 'access',
|
|
52138
|
+
const docTarget = row.documentType ? _optionalChain([ctx, 'access', _1254 => _1254.docPlatformTargets, 'optionalAccess', _1255 => _1255[row.documentType]]) : void 0;
|
|
52036
52139
|
if (docTarget) {
|
|
52037
52140
|
const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
|
|
52038
52141
|
const base = `${_chunkKI4EGKNVcjs.getBaseUrl.call(void 0, docTarget.platform)}${seg ? `/${seg}` : ""}/`;
|
|
@@ -52331,8 +52434,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
|
|
|
52331
52434
|
if (href) {
|
|
52332
52435
|
items.push({
|
|
52333
52436
|
id: "open-details",
|
|
52334
|
-
label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess',
|
|
52335
|
-
icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess',
|
|
52437
|
+
label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _1256 => _1256.label]), () => ( "Open Details")),
|
|
52438
|
+
icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _1257 => _1257.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.EyeIcon, { size: 20 }))),
|
|
52336
52439
|
// Main row → open the entity (same tab, soft Link nav).
|
|
52337
52440
|
href,
|
|
52338
52441
|
// Trailing 40px ↗ side-button → open in a new tab.
|
|
@@ -52392,16 +52495,16 @@ function itemVideoMetadata(item) {
|
|
|
52392
52495
|
for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
|
|
52393
52496
|
return void 0;
|
|
52394
52497
|
};
|
|
52395
|
-
const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52498
|
+
const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1258 => _1258.metadata]), () => ( {}));
|
|
52396
52499
|
const out = {};
|
|
52397
|
-
const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess',
|
|
52398
|
-
const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess',
|
|
52399
|
-
const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess',
|
|
52500
|
+
const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess', _1259 => _1259.custom_video_url]), _optionalChain([item, 'optionalAccess', _1260 => _1260.main_video_url]));
|
|
52501
|
+
const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _1261 => _1261.youtube_url]), _optionalChain([item, 'optionalAccess', _1262 => _1262.testimonial_video_url]));
|
|
52502
|
+
const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _1263 => _1263.highlight_video_url]));
|
|
52400
52503
|
const videoPoster = pick(
|
|
52401
52504
|
m.videoPoster,
|
|
52402
|
-
_optionalChain([item, 'optionalAccess',
|
|
52403
|
-
_optionalChain([item, 'optionalAccess',
|
|
52404
|
-
_optionalChain([item, 'optionalAccess',
|
|
52505
|
+
_optionalChain([item, 'optionalAccess', _1264 => _1264.main_video_thumbnail]),
|
|
52506
|
+
_optionalChain([item, 'optionalAccess', _1265 => _1265.highlight_video_thumbnail]),
|
|
52507
|
+
_optionalChain([item, 'optionalAccess', _1266 => _1266.featured_image])
|
|
52405
52508
|
);
|
|
52406
52509
|
if (videoUrl) out.videoUrl = videoUrl;
|
|
52407
52510
|
if (youtubeUrl) out.youtubeUrl = youtubeUrl;
|
|
@@ -52435,15 +52538,15 @@ function fetchedItemDisplayRef(item, chatRef) {
|
|
|
52435
52538
|
}
|
|
52436
52539
|
function fetchedFaqDisplayRef(item, chatRef) {
|
|
52437
52540
|
const it = item;
|
|
52438
|
-
const answer = typeof _optionalChain([it, 'optionalAccess',
|
|
52541
|
+
const answer = typeof _optionalChain([it, 'optionalAccess', _1267 => _1267.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
|
|
52439
52542
|
return {
|
|
52440
52543
|
type: "faq",
|
|
52441
52544
|
id: chatRef.id,
|
|
52442
52545
|
sourceRepo: chatRef.sourceRepo,
|
|
52443
|
-
title: typeof _optionalChain([it, 'optionalAccess',
|
|
52546
|
+
title: typeof _optionalChain([it, 'optionalAccess', _1268 => _1268.question]) === "string" && it.question ? it.question : chatRef.id,
|
|
52444
52547
|
url: _nullishCoalesce(chatRef.url, () => ( null)),
|
|
52445
52548
|
...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
|
|
52446
|
-
metadata: typeof _optionalChain([it, 'optionalAccess',
|
|
52549
|
+
metadata: typeof _optionalChain([it, 'optionalAccess', _1269 => _1269.section]) === "string" && it.section ? { section: it.section } : {}
|
|
52447
52550
|
};
|
|
52448
52551
|
}
|
|
52449
52552
|
function HubspotTicketChatCard({
|
|
@@ -52451,8 +52554,8 @@ function HubspotTicketChatCard({
|
|
|
52451
52554
|
isNewTab,
|
|
52452
52555
|
discuss
|
|
52453
52556
|
}) {
|
|
52454
|
-
const status = typeof _optionalChain([chatRef, 'access',
|
|
52455
|
-
const statusLabel = typeof _optionalChain([chatRef, 'access',
|
|
52557
|
+
const status = typeof _optionalChain([chatRef, 'access', _1270 => _1270.metadata, 'optionalAccess', _1271 => _1271.status]) === "string" ? chatRef.metadata.status : void 0;
|
|
52558
|
+
const statusLabel = typeof _optionalChain([chatRef, 'access', _1272 => _1272.metadata, 'optionalAccess', _1273 => _1273.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
52456
52559
|
const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
|
|
52457
52560
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52458
52561
|
MingoInfoCard,
|
|
@@ -52475,7 +52578,7 @@ function FaqChatCard({
|
|
|
52475
52578
|
isNewTab,
|
|
52476
52579
|
discuss
|
|
52477
52580
|
}) {
|
|
52478
|
-
const section = typeof _optionalChain([chatRef, 'access',
|
|
52581
|
+
const section = typeof _optionalChain([chatRef, 'access', _1274 => _1274.metadata, 'optionalAccess', _1275 => _1275.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
|
|
52479
52582
|
const statusLabel = section && section.length > 0 ? section : "FAQ";
|
|
52480
52583
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52481
52584
|
MingoInfoCard,
|
|
@@ -52495,7 +52598,7 @@ function SlackChatCard({
|
|
|
52495
52598
|
isNewTab,
|
|
52496
52599
|
discuss
|
|
52497
52600
|
}) {
|
|
52498
|
-
const channelName = typeof _optionalChain([chatRef, 'access',
|
|
52601
|
+
const channelName = typeof _optionalChain([chatRef, 'access', _1276 => _1276.metadata, 'optionalAccess', _1277 => _1277.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
|
|
52499
52602
|
const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
|
|
52500
52603
|
const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
|
|
52501
52604
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -52535,7 +52638,7 @@ function GenericFinancialChatCard({
|
|
|
52535
52638
|
isNewTab,
|
|
52536
52639
|
discuss
|
|
52537
52640
|
}) {
|
|
52538
|
-
const subtitle = typeof _optionalChain([chatRef, 'access',
|
|
52641
|
+
const subtitle = typeof _optionalChain([chatRef, 'access', _1278 => _1278.metadata, 'optionalAccess', _1279 => _1279.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
|
|
52539
52642
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52540
52643
|
MingoInfoCard,
|
|
52541
52644
|
{
|
|
@@ -52604,12 +52707,12 @@ function ProductReleaseChatCard({
|
|
|
52604
52707
|
discuss
|
|
52605
52708
|
}) {
|
|
52606
52709
|
const releaseProps = buildProps(item);
|
|
52607
|
-
const status = _optionalChain([item, 'optionalAccess',
|
|
52710
|
+
const status = _optionalChain([item, 'optionalAccess', _1280 => _1280.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
|
|
52608
52711
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52609
52712
|
EntityMingoCard,
|
|
52610
52713
|
{
|
|
52611
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52612
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
52714
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1281 => _1281.title]), () => ( "")),
|
|
52715
|
+
description: _optionalChain([item, 'optionalAccess', _1282 => _1282.summary]) || releaseProps.formattedDate || void 0,
|
|
52613
52716
|
cover: releaseProps.coverImage || void 0,
|
|
52614
52717
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.Rocket02Icon, { size: 24 }),
|
|
52615
52718
|
status,
|
|
@@ -52626,17 +52729,17 @@ function CampaignChatCard({
|
|
|
52626
52729
|
isNewTab,
|
|
52627
52730
|
discuss
|
|
52628
52731
|
}) {
|
|
52629
|
-
const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess',
|
|
52732
|
+
const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _1283 => _1283.goals])) ? item.goals.length : 0;
|
|
52630
52733
|
const meta = [
|
|
52631
|
-
_optionalChain([item, 'optionalAccess',
|
|
52734
|
+
_optionalChain([item, 'optionalAccess', _1284 => _1284.start_date]) ? formatDateShort(item.start_date) : null,
|
|
52632
52735
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
52633
52736
|
"Marketing campaign"
|
|
52634
52737
|
].filter(Boolean).join(" \xB7 ");
|
|
52635
52738
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52636
52739
|
EntityMingoCard,
|
|
52637
52740
|
{
|
|
52638
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52639
|
-
description: meta || _optionalChain([item, 'optionalAccess',
|
|
52741
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1285 => _1285.name]), () => ( "")),
|
|
52742
|
+
description: meta || _optionalChain([item, 'optionalAccess', _1286 => _1286.description]) || void 0,
|
|
52640
52743
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.Megaphone01Icon, { size: 24 }),
|
|
52641
52744
|
chatRef,
|
|
52642
52745
|
isNewTab,
|
|
@@ -52691,14 +52794,14 @@ function BlogChatCard({
|
|
|
52691
52794
|
hasEmbeddedVideo,
|
|
52692
52795
|
discuss
|
|
52693
52796
|
}) {
|
|
52694
|
-
const category = Array.isArray(_optionalChain([item, 'optionalAccess',
|
|
52797
|
+
const category = Array.isArray(_optionalChain([item, 'optionalAccess', _1287 => _1287.categories])) ? _optionalChain([item, 'access', _1288 => _1288.categories, 'access', _1289 => _1289.find, 'call', _1290 => _1290((c) => c && c.name), 'optionalAccess', _1291 => _1291.name]) : void 0;
|
|
52695
52798
|
const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
|
|
52696
52799
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52697
52800
|
EntityMingoCard,
|
|
52698
52801
|
{
|
|
52699
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52700
|
-
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52701
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
52802
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1292 => _1292.title]), () => ( "")),
|
|
52803
|
+
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1293 => _1293.summary]), () => ( void 0)),
|
|
52804
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _1294 => _1294.featured_image]), ogPlaceholder),
|
|
52702
52805
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.NewspaperIcon, { size: 24 }),
|
|
52703
52806
|
status,
|
|
52704
52807
|
chatRef,
|
|
@@ -52715,13 +52818,13 @@ function CaseStudyChatCard({
|
|
|
52715
52818
|
ogPlaceholder,
|
|
52716
52819
|
discuss
|
|
52717
52820
|
}) {
|
|
52718
|
-
const meta = [_optionalChain([item, 'optionalAccess',
|
|
52821
|
+
const meta = [_optionalChain([item, 'optionalAccess', _1295 => _1295.msp, 'optionalAccess', _1296 => _1296.name]), _optionalChain([item, 'optionalAccess', _1297 => _1297.user, 'optionalAccess', _1298 => _1298.full_name])].filter(Boolean).join(" \xB7 ");
|
|
52719
52822
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52720
52823
|
EntityMingoCard,
|
|
52721
52824
|
{
|
|
52722
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52723
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
52724
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
52825
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1299 => _1299.title]), () => ( "")),
|
|
52826
|
+
description: _optionalChain([item, 'optionalAccess', _1300 => _1300.summary]) || meta || void 0,
|
|
52827
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _1301 => _1301.featured_image]), ogPlaceholder),
|
|
52725
52828
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.TrophyIcon, { size: 24 }),
|
|
52726
52829
|
status: { label: "Case study", variant: "grey" },
|
|
52727
52830
|
chatRef,
|
|
@@ -52738,13 +52841,13 @@ function CustomerInterviewChatCard({
|
|
|
52738
52841
|
ogPlaceholder,
|
|
52739
52842
|
discuss
|
|
52740
52843
|
}) {
|
|
52741
|
-
const meta = [_optionalChain([item, 'optionalAccess',
|
|
52844
|
+
const meta = [_optionalChain([item, 'optionalAccess', _1302 => _1302.user, 'optionalAccess', _1303 => _1303.full_name]), _optionalChain([item, 'optionalAccess', _1304 => _1304.msp, 'optionalAccess', _1305 => _1305.name])].filter(Boolean).join(" \xB7 ");
|
|
52742
52845
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52743
52846
|
EntityMingoCard,
|
|
52744
52847
|
{
|
|
52745
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52746
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
52747
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
52848
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1306 => _1306.title]), () => ( "")),
|
|
52849
|
+
description: _optionalChain([item, 'optionalAccess', _1307 => _1307.video_summary]) || meta || void 0,
|
|
52850
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _1308 => _1308.featured_image]), ogPlaceholder),
|
|
52748
52851
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.MicrophoneIcon, { size: 24 }),
|
|
52749
52852
|
status: { label: "Interview", variant: "grey" },
|
|
52750
52853
|
chatRef,
|
|
@@ -52761,13 +52864,13 @@ function InvestorUpdateChatCard({
|
|
|
52761
52864
|
ogPlaceholder,
|
|
52762
52865
|
discuss
|
|
52763
52866
|
}) {
|
|
52764
|
-
const title = _optionalChain([item, 'optionalAccess',
|
|
52867
|
+
const title = _optionalChain([item, 'optionalAccess', _1309 => _1309.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1310 => _1310.update_number]), () => ( "?"))}`;
|
|
52765
52868
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52766
52869
|
EntityMingoCard,
|
|
52767
52870
|
{
|
|
52768
52871
|
title,
|
|
52769
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
52770
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
52872
|
+
description: _optionalChain([item, 'optionalAccess', _1311 => _1311.strategic_update]) || _optionalChain([item, 'optionalAccess', _1312 => _1312.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _1313 => _1313.period_start]), _optionalChain([item, 'optionalAccess', _1314 => _1314.period_end])) || void 0,
|
|
52873
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _1315 => _1315.featured_image]), ogPlaceholder),
|
|
52771
52874
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.PresentationLineIcon, { size: 24 }),
|
|
52772
52875
|
status: { label: "Investor update", variant: "grey" },
|
|
52773
52876
|
chatRef,
|
|
@@ -52784,12 +52887,12 @@ function OnboardingGuideChatCard({
|
|
|
52784
52887
|
ogPlaceholder,
|
|
52785
52888
|
discuss
|
|
52786
52889
|
}) {
|
|
52787
|
-
const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess',
|
|
52890
|
+
const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _1316 => _1316.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _1317 => _1317.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _1318 => _1318.og_image_url]), ogPlaceholder)));
|
|
52788
52891
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52789
52892
|
EntityMingoCard,
|
|
52790
52893
|
{
|
|
52791
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52792
|
-
description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52894
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1319 => _1319.title]), () => ( "")),
|
|
52895
|
+
description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1320 => _1320.summary]), () => ( _optionalChain([item, 'optionalAccess', _1321 => _1321.description]))), () => ( void 0)),
|
|
52793
52896
|
cover,
|
|
52794
52897
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.CompassIcon, { size: 24 }),
|
|
52795
52898
|
status: { label: "Guide", variant: "grey" },
|
|
@@ -52810,25 +52913,25 @@ function ProgramChatCard({
|
|
|
52810
52913
|
discuss
|
|
52811
52914
|
}) {
|
|
52812
52915
|
const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.MicrophoneIcon, { size: 24 });
|
|
52813
|
-
const isScheduled = _optionalChain([item, 'optionalAccess',
|
|
52916
|
+
const isScheduled = _optionalChain([item, 'optionalAccess', _1322 => _1322.status]) === "scheduled";
|
|
52814
52917
|
let typeMeta;
|
|
52815
|
-
if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess',
|
|
52918
|
+
if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _1323 => _1323.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
|
|
52816
52919
|
typeMeta = formatDurationCompact(item.duration_seconds);
|
|
52817
|
-
} else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess',
|
|
52920
|
+
} else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _1324 => _1324.location_name]) === "string" && item.location_name.trim().length > 0) {
|
|
52818
52921
|
typeMeta = item.location_name;
|
|
52819
|
-
} else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess',
|
|
52922
|
+
} else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _1325 => _1325.start_at])) {
|
|
52820
52923
|
const time = formatTimeWithTimezone(item.start_at, _nullishCoalesce(item.timezone, () => ( null)));
|
|
52821
52924
|
const dur = formatDurationFromRange(item.start_at, item.end_at);
|
|
52822
52925
|
typeMeta = dur ? `${time} \xB7 ${dur}` : time;
|
|
52823
52926
|
}
|
|
52824
|
-
const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52927
|
+
const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1326 => _1326.date]), () => ( null)), { fallback: "", timezone: "local" });
|
|
52825
52928
|
const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
|
|
52826
52929
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52827
52930
|
EntityMingoCard,
|
|
52828
52931
|
{
|
|
52829
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52830
|
-
description: meta || _optionalChain([item, 'optionalAccess',
|
|
52831
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
52932
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1327 => _1327.title]), () => ( "")),
|
|
52933
|
+
description: meta || _optionalChain([item, 'optionalAccess', _1328 => _1328.description]) || void 0,
|
|
52934
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _1329 => _1329.cover_url]), ogPlaceholder),
|
|
52832
52935
|
fallbackIcon: icon,
|
|
52833
52936
|
status: { label, variant: "grey" },
|
|
52834
52937
|
chatRef,
|
|
@@ -52845,10 +52948,10 @@ function RoadmapChatCard({
|
|
|
52845
52948
|
cardType,
|
|
52846
52949
|
discuss
|
|
52847
52950
|
}) {
|
|
52848
|
-
const logoUrl = typeof _optionalChain([item, 'optionalAccess',
|
|
52849
|
-
const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess',
|
|
52951
|
+
const logoUrl = typeof _optionalChain([item, 'optionalAccess', _1330 => _1330.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
|
|
52952
|
+
const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _1331 => _1331.customItemId]) != null;
|
|
52850
52953
|
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.MapIcon, { size: 24 });
|
|
52851
|
-
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess',
|
|
52954
|
+
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _1332 => _1332.customItemId]), className: "size-6" }) : logoUrl ? (
|
|
52852
52955
|
// Contained (not full-bleed) so the integration logo keeps its aspect
|
|
52853
52956
|
// ratio inside the bordered icon box — matches RoadmapCard.
|
|
52854
52957
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
|
|
@@ -52859,10 +52962,10 @@ function RoadmapChatCard({
|
|
|
52859
52962
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52860
52963
|
EntityMingoCard,
|
|
52861
52964
|
{
|
|
52862
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52863
|
-
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52965
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1333 => _1333.title]), () => ( "")),
|
|
52966
|
+
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1334 => _1334.description]), () => ( void 0)),
|
|
52864
52967
|
fallbackIcon: icon,
|
|
52865
|
-
status: statusPill(_optionalChain([item, 'optionalAccess',
|
|
52968
|
+
status: statusPill(_optionalChain([item, 'optionalAccess', _1335 => _1335.status])),
|
|
52866
52969
|
chatRef,
|
|
52867
52970
|
isNewTab,
|
|
52868
52971
|
discuss,
|
|
@@ -52878,7 +52981,7 @@ function refHydratedEntry(docType, label, renderRef) {
|
|
|
52878
52981
|
bareInline: true,
|
|
52879
52982
|
contentRefType: docType,
|
|
52880
52983
|
noComposedHref: true,
|
|
52881
|
-
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
52984
|
+
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1336 => _1336.url]), () => ( null)),
|
|
52882
52985
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
52883
52986
|
render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
|
|
52884
52987
|
};
|
|
@@ -52951,7 +53054,7 @@ function programRegistryEntries() {
|
|
|
52951
53054
|
discuss: opts.discuss,
|
|
52952
53055
|
configKey: cfg.configKey,
|
|
52953
53056
|
label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
|
|
52954
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
53057
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1337 => _1337.extras, 'optionalAccess', _1338 => _1338.buildOgPlaceholderUrl, 'optionalCall', _1339 => _1339(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1340 => _1340.title]), () => ( "")))]), () => ( null))
|
|
52955
53058
|
}
|
|
52956
53059
|
)
|
|
52957
53060
|
}));
|
|
@@ -52972,7 +53075,7 @@ var ROADMAP_CARD_CONFIGS = {
|
|
|
52972
53075
|
// The card's destination IS the ClickUp deep link, derived from the
|
|
52973
53076
|
// task id post-fetch (the refs frame used to carry it).
|
|
52974
53077
|
noComposedHref: true,
|
|
52975
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
53078
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1341 => _1341.id]) != null ? clickupTaskUrl(String(item.id)) : null
|
|
52976
53079
|
}
|
|
52977
53080
|
};
|
|
52978
53081
|
function roadmapRegistryEntries() {
|
|
@@ -53014,8 +53117,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53014
53117
|
DeletedDataCard,
|
|
53015
53118
|
{
|
|
53016
53119
|
title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
|
|
53017
|
-
entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access',
|
|
53018
|
-
recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access',
|
|
53120
|
+
entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _1342 => _1342.metadata, 'optionalAccess', _1343 => _1343.entity_label]), () => ( null)),
|
|
53121
|
+
recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _1344 => _1344.metadata, 'optionalAccess', _1345 => _1345.recovery_note]), () => ( null))
|
|
53019
53122
|
}
|
|
53020
53123
|
)
|
|
53021
53124
|
},
|
|
@@ -53029,7 +53132,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53029
53132
|
bareInline: true,
|
|
53030
53133
|
contentRefType: "faq",
|
|
53031
53134
|
noComposedHref: true,
|
|
53032
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
53135
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1346 => _1346.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
|
|
53033
53136
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
53034
53137
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
53035
53138
|
FaqChatCard,
|
|
@@ -53113,8 +53216,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53113
53216
|
chatRef,
|
|
53114
53217
|
isNewTab: opts.isNewTab,
|
|
53115
53218
|
discuss: opts.discuss,
|
|
53116
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
53117
|
-
hasEmbeddedVideo: _optionalChain([chatRef, 'access',
|
|
53219
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1347 => _1347.extras, 'optionalAccess', _1348 => _1348.buildOgPlaceholderUrl, 'optionalCall', _1349 => _1349(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1350 => _1350.title]), () => ( "")))]), () => ( null)),
|
|
53220
|
+
hasEmbeddedVideo: _optionalChain([chatRef, 'access', _1351 => _1351.metadata, 'optionalAccess', _1352 => _1352.hasEmbeddedVideo]) === true
|
|
53118
53221
|
}
|
|
53119
53222
|
)
|
|
53120
53223
|
},
|
|
@@ -53130,7 +53233,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53130
53233
|
chatRef,
|
|
53131
53234
|
isNewTab: opts.isNewTab,
|
|
53132
53235
|
discuss: opts.discuss,
|
|
53133
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
53236
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1353 => _1353.extras, 'optionalAccess', _1354 => _1354.buildOgPlaceholderUrl, 'optionalCall', _1355 => _1355(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1356 => _1356.title]), () => ( "")))]), () => ( null))
|
|
53134
53237
|
}
|
|
53135
53238
|
)
|
|
53136
53239
|
},
|
|
@@ -53146,7 +53249,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53146
53249
|
chatRef,
|
|
53147
53250
|
isNewTab: opts.isNewTab,
|
|
53148
53251
|
discuss: opts.discuss,
|
|
53149
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
53252
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1357 => _1357.extras, 'optionalAccess', _1358 => _1358.buildOgPlaceholderUrl, 'optionalCall', _1359 => _1359(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1360 => _1360.title]), () => ( "")))]), () => ( null))
|
|
53150
53253
|
}
|
|
53151
53254
|
)
|
|
53152
53255
|
},
|
|
@@ -53156,7 +53259,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53156
53259
|
bareInline: true,
|
|
53157
53260
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
|
|
53158
53261
|
render: (item, chatRef, opts) => {
|
|
53159
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
53262
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1361 => _1361.extras, 'optionalAccess', _1362 => _1362.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
|
|
53160
53263
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
53161
53264
|
ProductReleaseChatCard,
|
|
53162
53265
|
{
|
|
@@ -53182,7 +53285,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53182
53285
|
chatRef,
|
|
53183
53286
|
isNewTab: opts.isNewTab,
|
|
53184
53287
|
discuss: opts.discuss,
|
|
53185
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
53288
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1363 => _1363.extras, 'optionalAccess', _1364 => _1364.buildOgPlaceholderUrl, 'optionalCall', _1365 => _1365(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1366 => _1366.title]), () => ( "")))]), () => ( null))
|
|
53186
53289
|
}
|
|
53187
53290
|
)
|
|
53188
53291
|
},
|
|
@@ -53200,7 +53303,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53200
53303
|
chatRef,
|
|
53201
53304
|
isNewTab: opts.isNewTab,
|
|
53202
53305
|
discuss: opts.discuss,
|
|
53203
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
53306
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1367 => _1367.extras, 'optionalAccess', _1368 => _1368.buildOgPlaceholderUrl, 'optionalCall', _1369 => _1369(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1370 => _1370.title]), () => ( "")))]), () => ( null))
|
|
53204
53307
|
}
|
|
53205
53308
|
)
|
|
53206
53309
|
},
|
|
@@ -53211,7 +53314,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53211
53314
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
|
|
53212
53315
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
53213
53316
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
53214
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
53317
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1371 => _1371.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
|
|
53215
53318
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
53216
53319
|
CampaignChatCard,
|
|
53217
53320
|
{
|
|
@@ -53238,13 +53341,13 @@ function ChatCardNavWrap({
|
|
|
53238
53341
|
if (!href) return;
|
|
53239
53342
|
const targetEl = e.target;
|
|
53240
53343
|
const host = e.currentTarget;
|
|
53241
|
-
if (!_optionalChain([host, 'optionalAccess',
|
|
53242
|
-
if (_optionalChain([targetEl, 'optionalAccess',
|
|
53243
|
-
if (!_optionalChain([targetEl, 'optionalAccess',
|
|
53344
|
+
if (!_optionalChain([host, 'optionalAccess', _1372 => _1372.contains, 'call', _1373 => _1373(targetEl)])) return;
|
|
53345
|
+
if (_optionalChain([targetEl, 'optionalAccess', _1374 => _1374.closest, 'optionalCall', _1375 => _1375("button")])) return;
|
|
53346
|
+
if (!_optionalChain([targetEl, 'optionalAccess', _1376 => _1376.closest, 'optionalCall', _1377 => _1377("a")])) return;
|
|
53244
53347
|
const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
|
|
53245
53348
|
if (!handled) return;
|
|
53246
53349
|
e.stopPropagation();
|
|
53247
|
-
if (!isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
53350
|
+
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _1378 => _1378.closeChat])) panel.closeChat();
|
|
53248
53351
|
};
|
|
53249
53352
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
|
|
53250
53353
|
}
|
|
@@ -53257,7 +53360,7 @@ function ChatCardLoader({
|
|
|
53257
53360
|
extras
|
|
53258
53361
|
}) {
|
|
53259
53362
|
const runtime = _chunk7OPWSWEJcjs.useRequiredChatRuntime.call(void 0, );
|
|
53260
|
-
const resolvedChatRef =
|
|
53363
|
+
const resolvedChatRef = React126.default.useMemo(() => {
|
|
53261
53364
|
const cta = resolveSourceRowCTA(
|
|
53262
53365
|
{
|
|
53263
53366
|
sourceRepo: chatRef.sourceRepo,
|
|
@@ -53266,7 +53369,7 @@ function ChatCardLoader({
|
|
|
53266
53369
|
title: chatRef.title,
|
|
53267
53370
|
externalUrl: chatRef.url,
|
|
53268
53371
|
targetPlatform: chatRef.targetPlatform,
|
|
53269
|
-
path: typeof _optionalChain([chatRef, 'access',
|
|
53372
|
+
path: typeof _optionalChain([chatRef, 'access', _1379 => _1379.metadata, 'optionalAccess', _1380 => _1380.path]) === "string" ? chatRef.metadata.path : null
|
|
53270
53373
|
},
|
|
53271
53374
|
sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
|
|
53272
53375
|
);
|
|
@@ -53280,11 +53383,11 @@ function ChatCardLoader({
|
|
|
53280
53383
|
const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
|
|
53281
53384
|
const fetchEntry = entry && entry.contentRefType ? entry : null;
|
|
53282
53385
|
const { item, isLoading, isError, isFetched } = useChatCardItem(
|
|
53283
|
-
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess',
|
|
53386
|
+
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _1381 => _1381.contentRefType]), () => ( "")),
|
|
53284
53387
|
fetchEntry ? resolvedChatRef.id : ""
|
|
53285
53388
|
);
|
|
53286
53389
|
if (!entry) return null;
|
|
53287
|
-
const composedHref = _optionalChain([fetchEntry, 'optionalAccess',
|
|
53390
|
+
const composedHref = _optionalChain([fetchEntry, 'optionalAccess', _1382 => _1382.contentRefType]) && !resolvedChatRef.url && item && !fetchEntry.fallbackHref && !fetchEntry.noComposedHref ? resolveFetchedCardHref({
|
|
53288
53391
|
contentRefType: fetchEntry.contentRefType,
|
|
53289
53392
|
id: resolvedChatRef.id,
|
|
53290
53393
|
item,
|
|
@@ -53323,7 +53426,7 @@ function ChatCardLoader({
|
|
|
53323
53426
|
isNewTab,
|
|
53324
53427
|
discuss
|
|
53325
53428
|
};
|
|
53326
|
-
const path = typeof _optionalChain([finalChatRef, 'access',
|
|
53429
|
+
const path = typeof _optionalChain([finalChatRef, 'access', _1383 => _1383.metadata, 'optionalAccess', _1384 => _1384.path]) === "string" ? finalChatRef.metadata.path : null;
|
|
53327
53430
|
const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
53328
53431
|
ChatCardNavWrap,
|
|
53329
53432
|
{
|
|
@@ -53347,7 +53450,7 @@ function ChatCardLoader({
|
|
|
53347
53450
|
if (!fetchEntry) {
|
|
53348
53451
|
return finish(entry.render(void 0, finalChatRef, renderOpts));
|
|
53349
53452
|
}
|
|
53350
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access',
|
|
53453
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _1385 => _1385.skeleton, 'optionalCall', _1386 => _1386()]), () => ( null)) });
|
|
53351
53454
|
if (!item) {
|
|
53352
53455
|
if (isError) {
|
|
53353
53456
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
|
|
@@ -53610,7 +53713,7 @@ function useChunkCatchup({
|
|
|
53610
53713
|
console.error("Error during chunk catchup:", error);
|
|
53611
53714
|
} finally {
|
|
53612
53715
|
if (dialogId2 !== dialogIdRef.current) {
|
|
53613
|
-
if (_optionalChain([pendingCatchupRef, 'access',
|
|
53716
|
+
if (_optionalChain([pendingCatchupRef, 'access', _1387 => _1387.current, 'optionalAccess', _1388 => _1388.dialogId]) === dialogId2) {
|
|
53614
53717
|
pendingCatchupRef.current = null;
|
|
53615
53718
|
}
|
|
53616
53719
|
} else {
|
|
@@ -53623,7 +53726,7 @@ function useChunkCatchup({
|
|
|
53623
53726
|
lastFetchParams.current = null;
|
|
53624
53727
|
bufferUntilInitialCatchupComplete.current = true;
|
|
53625
53728
|
try {
|
|
53626
|
-
await _optionalChain([catchUpChunksRef, 'access',
|
|
53729
|
+
await _optionalChain([catchUpChunksRef, 'access', _1389 => _1389.current, 'optionalCall', _1390 => _1390(pending.fromSequenceId)]);
|
|
53627
53730
|
} catch (rerunError) {
|
|
53628
53731
|
console.error("Queued catch-up re-run failed:", rerunError);
|
|
53629
53732
|
}
|
|
@@ -53687,7 +53790,7 @@ function useChunkCatchup({
|
|
|
53687
53790
|
|
|
53688
53791
|
var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
|
|
53689
53792
|
function prefersReducedMotion() {
|
|
53690
|
-
return typeof window !== "undefined" && _optionalChain([window, 'access',
|
|
53793
|
+
return typeof window !== "undefined" && _optionalChain([window, 'access', _1391 => _1391.matchMedia, 'optionalCall', _1392 => _1392("(prefers-reduced-motion: reduce)"), 'access', _1393 => _1393.matches]) === true;
|
|
53691
53794
|
}
|
|
53692
53795
|
function useScriptedStream(frames, resetKey, enabled = true) {
|
|
53693
53796
|
const [index, setIndex] = _react.useState.call(void 0, 0);
|
|
@@ -53699,7 +53802,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
|
|
|
53699
53802
|
}
|
|
53700
53803
|
_react.useEffect.call(void 0, () => {
|
|
53701
53804
|
setReducedMotion(prefersReducedMotion());
|
|
53702
|
-
const mq = _optionalChain([window, 'access',
|
|
53805
|
+
const mq = _optionalChain([window, 'access', _1394 => _1394.matchMedia, 'optionalCall', _1395 => _1395("(prefers-reduced-motion: reduce)")]);
|
|
53703
53806
|
if (!mq) return;
|
|
53704
53807
|
const onChange = () => setReducedMotion(mq.matches);
|
|
53705
53808
|
mq.addEventListener("change", onChange);
|
|
@@ -53835,7 +53938,7 @@ function useJetStreamDialogSubscription({
|
|
|
53835
53938
|
const lifecycle = _chunkKQKU4VXBcjs.startConnectionLifecycle.call(void 0, {
|
|
53836
53939
|
conn: sharedConn,
|
|
53837
53940
|
wsUrl,
|
|
53838
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
53941
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1396 => _1396.current, 'optionalCall', _1397 => _1397()]),
|
|
53839
53942
|
backoff: reconnectionBackoffRef.current,
|
|
53840
53943
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
53841
53944
|
// JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
|
|
@@ -53850,7 +53953,7 @@ function useJetStreamDialogSubscription({
|
|
|
53850
53953
|
setReconnectionCount((c) => c + 1);
|
|
53851
53954
|
}
|
|
53852
53955
|
hadConnectionBeforeRef.current = true;
|
|
53853
|
-
_optionalChain([onConnectRef, 'access',
|
|
53956
|
+
_optionalChain([onConnectRef, 'access', _1398 => _1398.current, 'optionalCall', _1399 => _1399()]);
|
|
53854
53957
|
}
|
|
53855
53958
|
if (status === "error") {
|
|
53856
53959
|
console.warn("[JetStream] NATS protocol error:", evt.data);
|
|
@@ -53860,7 +53963,7 @@ function useJetStreamDialogSubscription({
|
|
|
53860
53963
|
setIsConnected(false);
|
|
53861
53964
|
setIsSubscribed(false);
|
|
53862
53965
|
tearDownSubscription();
|
|
53863
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
53966
|
+
_optionalChain([onDisconnectRef, 'access', _1400 => _1400.current, 'optionalCall', _1401 => _1401()]);
|
|
53864
53967
|
}
|
|
53865
53968
|
}
|
|
53866
53969
|
});
|
|
@@ -53989,7 +54092,7 @@ function useJetStreamDialogSubscription({
|
|
|
53989
54092
|
}
|
|
53990
54093
|
subscriptionRef.current = handle;
|
|
53991
54094
|
setIsSubscribed(true);
|
|
53992
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
54095
|
+
_optionalChain([onSubscribedRef, 'access', _1402 => _1402.current, 'optionalCall', _1403 => _1403()]);
|
|
53993
54096
|
} catch (e90) {
|
|
53994
54097
|
if (!cancelled) {
|
|
53995
54098
|
setIsSubscribed(false);
|
|
@@ -54103,20 +54206,20 @@ function useNatsDialogSubscription({
|
|
|
54103
54206
|
const tearDownSubscriptions = () => {
|
|
54104
54207
|
subscriptionRefs.current.forEach((sub) => {
|
|
54105
54208
|
try {
|
|
54106
|
-
_optionalChain([sub, 'optionalAccess',
|
|
54209
|
+
_optionalChain([sub, 'optionalAccess', _1404 => _1404.unsubscribe, 'call', _1405 => _1405()]);
|
|
54107
54210
|
} catch (e92) {
|
|
54108
54211
|
}
|
|
54109
54212
|
});
|
|
54110
54213
|
subscriptionRefs.current.clear();
|
|
54111
54214
|
lastSubscribedDialogIdRef.current = null;
|
|
54112
|
-
_optionalChain([abortControllerRef, 'access',
|
|
54215
|
+
_optionalChain([abortControllerRef, 'access', _1406 => _1406.current, 'optionalAccess', _1407 => _1407.abort, 'call', _1408 => _1408()]);
|
|
54113
54216
|
abortControllerRef.current = null;
|
|
54114
54217
|
};
|
|
54115
54218
|
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
|
|
54116
54219
|
const lifecycle = _chunkKQKU4VXBcjs.startConnectionLifecycle.call(void 0, {
|
|
54117
54220
|
conn: sharedConn,
|
|
54118
54221
|
wsUrl,
|
|
54119
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
54222
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1409 => _1409.current, 'optionalCall', _1410 => _1410()]),
|
|
54120
54223
|
backoff: reconnectionBackoffRef.current,
|
|
54121
54224
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
54122
54225
|
shouldRetryOn: isDisconnectStatus,
|
|
@@ -54127,7 +54230,7 @@ function useNatsDialogSubscription({
|
|
|
54127
54230
|
setReconnectionCount((c) => c + 1);
|
|
54128
54231
|
}
|
|
54129
54232
|
hadConnectionBeforeRef.current = true;
|
|
54130
|
-
_optionalChain([onConnectRef, 'access',
|
|
54233
|
+
_optionalChain([onConnectRef, 'access', _1411 => _1411.current, 'optionalCall', _1412 => _1412()]);
|
|
54131
54234
|
}
|
|
54132
54235
|
if (status === "error") {
|
|
54133
54236
|
console.warn("[NATS] protocol error:", evt.data);
|
|
@@ -54137,7 +54240,7 @@ function useNatsDialogSubscription({
|
|
|
54137
54240
|
setIsConnected(false);
|
|
54138
54241
|
setIsSubscribed(false);
|
|
54139
54242
|
tearDownSubscriptions();
|
|
54140
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
54243
|
+
_optionalChain([onDisconnectRef, 'access', _1413 => _1413.current, 'optionalCall', _1414 => _1414()]);
|
|
54141
54244
|
}
|
|
54142
54245
|
}
|
|
54143
54246
|
});
|
|
@@ -54170,13 +54273,13 @@ function useNatsDialogSubscription({
|
|
|
54170
54273
|
setIsSubscribed(false);
|
|
54171
54274
|
subscriptionRefs.current.forEach((sub) => {
|
|
54172
54275
|
try {
|
|
54173
|
-
_optionalChain([sub, 'optionalAccess',
|
|
54276
|
+
_optionalChain([sub, 'optionalAccess', _1415 => _1415.unsubscribe, 'call', _1416 => _1416()]);
|
|
54174
54277
|
} catch (e93) {
|
|
54175
54278
|
}
|
|
54176
54279
|
});
|
|
54177
54280
|
subscriptionRefs.current.clear();
|
|
54178
54281
|
lastSubscribedDialogIdRef.current = null;
|
|
54179
|
-
_optionalChain([abortControllerRef, 'access',
|
|
54282
|
+
_optionalChain([abortControllerRef, 'access', _1417 => _1417.current, 'optionalAccess', _1418 => _1418.abort, 'call', _1419 => _1419()]);
|
|
54180
54283
|
abortControllerRef.current = null;
|
|
54181
54284
|
}
|
|
54182
54285
|
return;
|
|
@@ -54188,12 +54291,12 @@ function useNatsDialogSubscription({
|
|
|
54188
54291
|
if (subscriptionRefs.current.size > 0) {
|
|
54189
54292
|
subscriptionRefs.current.forEach((sub) => {
|
|
54190
54293
|
try {
|
|
54191
|
-
_optionalChain([sub, 'optionalAccess',
|
|
54294
|
+
_optionalChain([sub, 'optionalAccess', _1420 => _1420.unsubscribe, 'call', _1421 => _1421()]);
|
|
54192
54295
|
} catch (e94) {
|
|
54193
54296
|
}
|
|
54194
54297
|
});
|
|
54195
54298
|
subscriptionRefs.current.clear();
|
|
54196
|
-
_optionalChain([abortControllerRef, 'access',
|
|
54299
|
+
_optionalChain([abortControllerRef, 'access', _1422 => _1422.current, 'optionalAccess', _1423 => _1423.abort, 'call', _1424 => _1424()]);
|
|
54197
54300
|
}
|
|
54198
54301
|
abortControllerRef.current = new AbortController();
|
|
54199
54302
|
const abort = abortControllerRef.current;
|
|
@@ -54225,7 +54328,7 @@ function useNatsDialogSubscription({
|
|
|
54225
54328
|
});
|
|
54226
54329
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
54227
54330
|
setIsSubscribed(true);
|
|
54228
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
54331
|
+
_optionalChain([onSubscribedRef, 'access', _1425 => _1425.current, 'optionalCall', _1426 => _1426()]);
|
|
54229
54332
|
};
|
|
54230
54333
|
if (isConnectedRef.current) {
|
|
54231
54334
|
createSubscriptions();
|
|
@@ -54235,7 +54338,7 @@ function useNatsDialogSubscription({
|
|
|
54235
54338
|
abort.abort();
|
|
54236
54339
|
subscriptionRefs.current.forEach((sub) => {
|
|
54237
54340
|
try {
|
|
54238
|
-
_optionalChain([sub, 'optionalAccess',
|
|
54341
|
+
_optionalChain([sub, 'optionalAccess', _1427 => _1427.unsubscribe, 'call', _1428 => _1428()]);
|
|
54239
54342
|
} catch (e96) {
|
|
54240
54343
|
}
|
|
54241
54344
|
});
|
|
@@ -54276,7 +54379,7 @@ function useNatsDialogSubscription({
|
|
|
54276
54379
|
});
|
|
54277
54380
|
lastSubscribedDialogIdRef.current = dialogId2;
|
|
54278
54381
|
setIsSubscribed(true);
|
|
54279
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
54382
|
+
_optionalChain([onSubscribedRef, 'access', _1429 => _1429.current, 'optionalCall', _1430 => _1430()]);
|
|
54280
54383
|
} else if (subscriptionRefs.current.size > 0) {
|
|
54281
54384
|
setIsSubscribed(true);
|
|
54282
54385
|
}
|
|
@@ -54284,10 +54387,10 @@ function useNatsDialogSubscription({
|
|
|
54284
54387
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
54285
54388
|
}
|
|
54286
54389
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
54287
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
54390
|
+
const path = _optionalChain([options, 'optionalAccess', _1431 => _1431.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
54288
54391
|
const u = new URL(path, apiBaseUrl);
|
|
54289
54392
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
54290
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
54393
|
+
if (_optionalChain([options, 'optionalAccess', _1432 => _1432.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1433 => _1433.token])) {
|
|
54291
54394
|
u.searchParams.set("authorization", options.token);
|
|
54292
54395
|
}
|
|
54293
54396
|
return u.toString();
|
|
@@ -54305,7 +54408,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
54305
54408
|
const data = await res.json();
|
|
54306
54409
|
return _nullishCoalesce(data.commands, () => ( []));
|
|
54307
54410
|
} catch (err) {
|
|
54308
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
54411
|
+
if (_optionalChain([err, 'optionalAccess', _1434 => _1434.name]) === "AbortError") throw err;
|
|
54309
54412
|
console.warn("[chat] slash-commands fetch failed, showing none:", err);
|
|
54310
54413
|
return [];
|
|
54311
54414
|
}
|
|
@@ -54326,7 +54429,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
54326
54429
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
54327
54430
|
if (!cancelled) setCommands(next);
|
|
54328
54431
|
} catch (err) {
|
|
54329
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
54432
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1435 => _1435.name]) !== "AbortError") {
|
|
54330
54433
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
54331
54434
|
}
|
|
54332
54435
|
} finally {
|
|
@@ -54345,7 +54448,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
|
|
|
54345
54448
|
const query = _reactquery.useQuery.call(void 0, {
|
|
54346
54449
|
queryKey: ["chat-slash-commands", commandsUrl],
|
|
54347
54450
|
queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
|
|
54348
|
-
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
54451
|
+
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1436 => _1436.enabled]), () => ( true)),
|
|
54349
54452
|
staleTime: Infinity,
|
|
54350
54453
|
gcTime: Infinity,
|
|
54351
54454
|
// The commands registry is non-critical chrome — a failure degrades to an
|
|
@@ -54384,21 +54487,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
|
54384
54487
|
}
|
|
54385
54488
|
const data = await res.json();
|
|
54386
54489
|
return {
|
|
54387
|
-
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
54388
|
-
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
54389
|
-
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
54390
|
-
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
54391
|
-
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
54392
|
-
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
54490
|
+
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1437 => _1437.name]), () => ( null)),
|
|
54491
|
+
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1438 => _1438.icon]), () => ( null)),
|
|
54492
|
+
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1439 => _1439.greeting]), () => ( null)),
|
|
54493
|
+
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1440 => _1440.enabledRagTableIds]), () => ( [])),
|
|
54494
|
+
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1441 => _1441.quickActions]), () => ( [])),
|
|
54495
|
+
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1442 => _1442.suggestedQueries]), () => ( []))
|
|
54393
54496
|
};
|
|
54394
54497
|
} catch (err) {
|
|
54395
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
54498
|
+
if (_optionalChain([err, 'optionalAccess', _1443 => _1443.name]) === "AbortError") throw err;
|
|
54396
54499
|
console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
|
|
54397
54500
|
return EMPTY_STATE_FALLBACK;
|
|
54398
54501
|
}
|
|
54399
54502
|
}
|
|
54400
54503
|
function useEmptyStateConfig(emptyStateUrl, options) {
|
|
54401
|
-
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
54504
|
+
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1444 => _1444.enabled]), () => ( true))) && !!emptyStateUrl;
|
|
54402
54505
|
const query = _reactquery.useQuery.call(void 0, {
|
|
54403
54506
|
queryKey: ["chat-empty-state", emptyStateUrl],
|
|
54404
54507
|
queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
|
|
@@ -54427,7 +54530,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
54427
54530
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
54428
54531
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
54429
54532
|
return new Promise((resolve, reject) => {
|
|
54430
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
54533
|
+
if (_optionalChain([signal, 'optionalAccess', _1445 => _1445.aborted])) {
|
|
54431
54534
|
reject(new Error("Upload cancelled"));
|
|
54432
54535
|
return;
|
|
54433
54536
|
}
|
|
@@ -54441,7 +54544,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
54441
54544
|
xhr.removeEventListener("error", handleError);
|
|
54442
54545
|
xhr.removeEventListener("abort", handleAbort);
|
|
54443
54546
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
54444
|
-
_optionalChain([signal, 'optionalAccess',
|
|
54547
|
+
_optionalChain([signal, 'optionalAccess', _1446 => _1446.removeEventListener, 'call', _1447 => _1447("abort", handleSignalAbort)]);
|
|
54445
54548
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
54446
54549
|
};
|
|
54447
54550
|
const handleProgress = (event) => {
|
|
@@ -54477,7 +54580,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
54477
54580
|
const handleSignalAbort = () => {
|
|
54478
54581
|
xhr.abort();
|
|
54479
54582
|
};
|
|
54480
|
-
_optionalChain([signal, 'optionalAccess',
|
|
54583
|
+
_optionalChain([signal, 'optionalAccess', _1448 => _1448.addEventListener, 'call', _1449 => _1449("abort", handleSignalAbort, { once: true })]);
|
|
54481
54584
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
54482
54585
|
xhr.addEventListener("load", handleLoad);
|
|
54483
54586
|
xhr.addEventListener("error", handleError);
|
|
@@ -54521,12 +54624,12 @@ function useChatAttachments() {
|
|
|
54521
54624
|
try {
|
|
54522
54625
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
54523
54626
|
} catch (err) {
|
|
54524
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
54627
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1450 => _1450.signal, 'access', _1451 => _1451.aborted])) return;
|
|
54525
54628
|
throw new Error(
|
|
54526
54629
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
54527
54630
|
);
|
|
54528
54631
|
}
|
|
54529
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
54632
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1452 => _1452.signal, 'access', _1453 => _1453.aborted])) return;
|
|
54530
54633
|
if (!sniffed) {
|
|
54531
54634
|
throw new Error("Unrecognized file format");
|
|
54532
54635
|
}
|
|
@@ -54540,7 +54643,7 @@ function useChatAttachments() {
|
|
|
54540
54643
|
const urlResp = await _chunk5RJUHUCIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
|
|
54541
54644
|
method: "POST",
|
|
54542
54645
|
headers: { "Content-Type": "application/json" },
|
|
54543
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
54646
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _1454 => _1454.signal]),
|
|
54544
54647
|
body: JSON.stringify({
|
|
54545
54648
|
fileName: att.file.name,
|
|
54546
54649
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -54566,9 +54669,9 @@ function useChatAttachments() {
|
|
|
54566
54669
|
(pct) => {
|
|
54567
54670
|
updateOne(att.id, { progress: pct });
|
|
54568
54671
|
},
|
|
54569
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
54672
|
+
_optionalChain([ctrl, 'optionalAccess', _1455 => _1455.signal])
|
|
54570
54673
|
);
|
|
54571
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
54674
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1456 => _1456.signal, 'access', _1457 => _1457.aborted])) return;
|
|
54572
54675
|
updateOne(att.id, {
|
|
54573
54676
|
status: "ready",
|
|
54574
54677
|
progress: 100,
|
|
@@ -54576,7 +54679,7 @@ function useChatAttachments() {
|
|
|
54576
54679
|
viewToken: mintData.viewToken
|
|
54577
54680
|
});
|
|
54578
54681
|
} catch (err) {
|
|
54579
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
54682
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1458 => _1458.signal, 'access', _1459 => _1459.aborted])) return;
|
|
54580
54683
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
54581
54684
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
54582
54685
|
} finally {
|
|
@@ -54763,7 +54866,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
54763
54866
|
yield chunk;
|
|
54764
54867
|
}
|
|
54765
54868
|
} catch (err) {
|
|
54766
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
54869
|
+
if (_optionalChain([err, 'optionalAccess', _1460 => _1460.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
54767
54870
|
return;
|
|
54768
54871
|
}
|
|
54769
54872
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -54814,7 +54917,7 @@ function useChat({
|
|
|
54814
54917
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
54815
54918
|
onMessagesChangeRef.current = onMessagesChange;
|
|
54816
54919
|
_react.useEffect.call(void 0, () => {
|
|
54817
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
54920
|
+
_optionalChain([onMessagesChangeRef, 'access', _1461 => _1461.current, 'optionalCall', _1462 => _1462(messages)]);
|
|
54818
54921
|
}, [messages]);
|
|
54819
54922
|
const {
|
|
54820
54923
|
streamMessage,
|
|
@@ -54851,7 +54954,7 @@ function useChat({
|
|
|
54851
54954
|
name: "You",
|
|
54852
54955
|
content: text,
|
|
54853
54956
|
timestamp: /* @__PURE__ */ new Date(),
|
|
54854
|
-
..._optionalChain([options, 'optionalAccess',
|
|
54957
|
+
..._optionalChain([options, 'optionalAccess', _1463 => _1463.hidden]) ? { hidden: true } : {}
|
|
54855
54958
|
};
|
|
54856
54959
|
addMessage(userMessage);
|
|
54857
54960
|
setIsTyping(true);
|
|
@@ -54913,7 +55016,7 @@ function useChat({
|
|
|
54913
55016
|
currentTextSegment = "";
|
|
54914
55017
|
}
|
|
54915
55018
|
const seg = segment;
|
|
54916
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
55019
|
+
const proposalId = _optionalChain([seg, 'access', _1464 => _1464.data, 'optionalAccess', _1465 => _1465.requestId]);
|
|
54917
55020
|
const updateApprovalMessage = (transform) => {
|
|
54918
55021
|
setMessages((prev) => {
|
|
54919
55022
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -54922,7 +55025,7 @@ function useChat({
|
|
|
54922
55025
|
if (!Array.isArray(m.content)) continue;
|
|
54923
55026
|
const segments = m.content;
|
|
54924
55027
|
const hasMatch = segments.some(
|
|
54925
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
55028
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1466 => _1466.data, 'optionalAccess', _1467 => _1467.requestId]) === proposalId
|
|
54926
55029
|
);
|
|
54927
55030
|
if (!hasMatch) continue;
|
|
54928
55031
|
const next = [...prev];
|
|
@@ -54964,11 +55067,11 @@ function useChat({
|
|
|
54964
55067
|
if (!Array.isArray(m.content)) continue;
|
|
54965
55068
|
const segments = m.content;
|
|
54966
55069
|
const hasMatch = segments.some(
|
|
54967
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
55070
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1468 => _1468.data, 'optionalAccess', _1469 => _1469.requestId]) === decision.proposalId
|
|
54968
55071
|
);
|
|
54969
55072
|
if (!hasMatch) continue;
|
|
54970
55073
|
const flipped = segments.map(
|
|
54971
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
55074
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1470 => _1470.data, 'optionalAccess', _1471 => _1471.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
|
|
54972
55075
|
);
|
|
54973
55076
|
const next = [...prev];
|
|
54974
55077
|
next[i] = { ...m, content: flipped };
|
|
@@ -55096,7 +55199,7 @@ function buildConfirmToolBody(request) {
|
|
|
55096
55199
|
async function readServerErrorMessage(response) {
|
|
55097
55200
|
try {
|
|
55098
55201
|
const body = await response.json();
|
|
55099
|
-
if (typeof _optionalChain([body, 'optionalAccess',
|
|
55202
|
+
if (typeof _optionalChain([body, 'optionalAccess', _1472 => _1472.error]) === "string" && body.error.length > 0) return body.error;
|
|
55100
55203
|
} catch (e98) {
|
|
55101
55204
|
}
|
|
55102
55205
|
return null;
|
|
@@ -55317,7 +55420,7 @@ var STORAGE_KEY2 = "conversation";
|
|
|
55317
55420
|
var namespaceFor = (source) => {
|
|
55318
55421
|
const base = `mingo-chat-${source}`;
|
|
55319
55422
|
const auth = _chunk5RJUHUCIcjs.getEmbedProxyAuth.call(void 0, );
|
|
55320
|
-
return _optionalChain([auth, 'optionalAccess',
|
|
55423
|
+
return _optionalChain([auth, 'optionalAccess', _1473 => _1473.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
|
|
55321
55424
|
};
|
|
55322
55425
|
function createChatConversationStorage(source) {
|
|
55323
55426
|
return _chunk5RJUHUCIcjs.createLocalStorageAdapter.call(void 0, {
|
|
@@ -55379,8 +55482,8 @@ function useChatHistoryHydration({
|
|
|
55379
55482
|
);
|
|
55380
55483
|
if (!res.ok) return;
|
|
55381
55484
|
const payload = await res.json().catch(() => null);
|
|
55382
|
-
const body = _nullishCoalesce(_optionalChain([payload, 'optionalAccess',
|
|
55383
|
-
const rows = Array.isArray(_optionalChain([body, 'optionalAccess',
|
|
55485
|
+
const body = _nullishCoalesce(_optionalChain([payload, 'optionalAccess', _1474 => _1474.data]), () => ( payload));
|
|
55486
|
+
const rows = Array.isArray(_optionalChain([body, 'optionalAccess', _1475 => _1475.messages])) ? body.messages : [];
|
|
55384
55487
|
if (cancelled || rows.length === 0) return;
|
|
55385
55488
|
const hydrated = [];
|
|
55386
55489
|
const sourcesSeed = /* @__PURE__ */ new Map();
|
|
@@ -55487,11 +55590,11 @@ function appendToTrailingAssistant(prev, segments) {
|
|
|
55487
55590
|
for (const seg of segments) {
|
|
55488
55591
|
const tail = merged[merged.length - 1];
|
|
55489
55592
|
const key = upsertKey(seg);
|
|
55490
|
-
if (seg.type === "text" && _optionalChain([tail, 'optionalAccess',
|
|
55593
|
+
if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _1476 => _1476.type]) === "text") {
|
|
55491
55594
|
merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
|
|
55492
|
-
} else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess',
|
|
55595
|
+
} else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _1477 => _1477.type]) === "thinking") {
|
|
55493
55596
|
merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
|
|
55494
|
-
} else if (seg.type === "guide" && _optionalChain([tail, 'optionalAccess',
|
|
55597
|
+
} else if (seg.type === "guide" && _optionalChain([tail, 'optionalAccess', _1478 => _1478.type]) === "guide") {
|
|
55495
55598
|
merged[merged.length - 1] = { type: "guide", text: tail.text + seg.text };
|
|
55496
55599
|
} else if (key) {
|
|
55497
55600
|
const idx = merged.findIndex((m) => upsertKey(m) === key);
|
|
@@ -55531,7 +55634,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
|
|
|
55531
55634
|
}
|
|
55532
55635
|
if (s.type !== "approval_batch") return s;
|
|
55533
55636
|
const isAnchor = s.data.approvalRequestId === requestId;
|
|
55534
|
-
const hasRow = _optionalChain([s, 'access',
|
|
55637
|
+
const hasRow = _optionalChain([s, 'access', _1479 => _1479.data, 'access', _1480 => _1480.toolCalls, 'optionalAccess', _1481 => _1481.some, 'call', _1482 => _1482((c) => c.toolExecutionRequestId === requestId)]);
|
|
55535
55638
|
if (!isAnchor && !hasRow) return s;
|
|
55536
55639
|
const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
|
|
55537
55640
|
const nextExecutions = hasRow ? {
|
|
@@ -55553,8 +55656,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
|
|
|
55553
55656
|
};
|
|
55554
55657
|
}
|
|
55555
55658
|
function nextBatchExecution(prevExec, toolData) {
|
|
55556
|
-
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess',
|
|
55557
|
-
return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess',
|
|
55659
|
+
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _1483 => _1483.status]) === "done") return null;
|
|
55660
|
+
return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _1484 => _1484.result]), success: _optionalChain([prevExec, 'optionalAccess', _1485 => _1485.success]) };
|
|
55558
55661
|
}
|
|
55559
55662
|
function withBatchExecution(seg, execId, state) {
|
|
55560
55663
|
return {
|
|
@@ -55571,11 +55674,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
|
|
|
55571
55674
|
}
|
|
55572
55675
|
function projectBatchRowFailureToMessages(prev, rowRequestId) {
|
|
55573
55676
|
return mapSegments(prev, (s) => {
|
|
55574
|
-
if (s.type !== "approval_batch" || !_optionalChain([s, 'access',
|
|
55677
|
+
if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _1486 => _1486.data, 'access', _1487 => _1487.toolCalls, 'optionalAccess', _1488 => _1488.some, 'call', _1489 => _1489((c) => c.toolExecutionRequestId === rowRequestId)])) {
|
|
55575
55678
|
return s;
|
|
55576
55679
|
}
|
|
55577
|
-
const existing = _optionalChain([s, 'access',
|
|
55578
|
-
if (_optionalChain([existing, 'optionalAccess',
|
|
55680
|
+
const existing = _optionalChain([s, 'access', _1490 => _1490.data, 'access', _1491 => _1491.executions, 'optionalAccess', _1492 => _1492[rowRequestId]]);
|
|
55681
|
+
if (_optionalChain([existing, 'optionalAccess', _1493 => _1493.status]) === "done") return s;
|
|
55579
55682
|
return withBatchExecution(s, rowRequestId, { status: "done", success: false });
|
|
55580
55683
|
});
|
|
55581
55684
|
}
|
|
@@ -55614,7 +55717,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
|
|
|
55614
55717
|
for (let j = message2.segments.length - 1; j >= 0; j--) {
|
|
55615
55718
|
const seg = message2.segments[j];
|
|
55616
55719
|
if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
|
|
55617
|
-
const prevExec = _optionalChain([seg, 'access',
|
|
55720
|
+
const prevExec = _optionalChain([seg, 'access', _1494 => _1494.data, 'access', _1495 => _1495.executions, 'optionalAccess', _1496 => _1496[execId]]);
|
|
55618
55721
|
const nextExec = nextBatchExecution(prevExec, toolData);
|
|
55619
55722
|
if (nextExec === null) return prev;
|
|
55620
55723
|
if (sameExecutionState(prevExec, nextExec)) return prev;
|
|
@@ -55803,9 +55906,9 @@ var MessageSegmentAccumulator = class {
|
|
|
55803
55906
|
type: "tool_execution",
|
|
55804
55907
|
data: {
|
|
55805
55908
|
...toolData,
|
|
55806
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
55807
|
-
toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
55808
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
55909
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1497 => _1497.data, 'access', _1498 => _1498.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1499 => _1499.toolTitle]))),
|
|
55910
|
+
toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1500 => _1500.data, 'access', _1501 => _1501.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1502 => _1502.toolExplanation]))),
|
|
55911
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1503 => _1503.parameters])
|
|
55809
55912
|
}
|
|
55810
55913
|
};
|
|
55811
55914
|
if (existingIndex !== -1) {
|
|
@@ -55829,7 +55932,7 @@ var MessageSegmentAccumulator = class {
|
|
|
55829
55932
|
if (seg.type !== "approval_batch") return seg;
|
|
55830
55933
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
55831
55934
|
if (!hasCall) return seg;
|
|
55832
|
-
const prev = _optionalChain([seg, 'access',
|
|
55935
|
+
const prev = _optionalChain([seg, 'access', _1504 => _1504.data, 'access', _1505 => _1505.executions, 'optionalAccess', _1506 => _1506[execId]]);
|
|
55833
55936
|
const next = nextBatchExecution(prev, toolData);
|
|
55834
55937
|
matched = true;
|
|
55835
55938
|
if (next === null) return seg;
|
|
@@ -55971,8 +56074,8 @@ var MessageSegmentAccumulator = class {
|
|
|
55971
56074
|
requestId,
|
|
55972
56075
|
{
|
|
55973
56076
|
...pendingApproval,
|
|
55974
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
55975
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
56077
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _1507 => _1507.command]) || "",
|
|
56078
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1508 => _1508.approvalType]) || approvalType
|
|
55976
56079
|
},
|
|
55977
56080
|
status
|
|
55978
56081
|
);
|
|
@@ -55997,9 +56100,9 @@ var MessageSegmentAccumulator = class {
|
|
|
55997
56100
|
type: "escalation_offer",
|
|
55998
56101
|
// The resolved chunk carries no text/origin — a redelivered offer must
|
|
55999
56102
|
// not blank the card the PENDING chunk already painted.
|
|
56000
|
-
data: { offerId, text: text || _optionalChain([existing, 'optionalAccess',
|
|
56103
|
+
data: { offerId, text: text || _optionalChain([existing, 'optionalAccess', _1509 => _1509.data, 'access', _1510 => _1510.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _1511 => _1511.data, 'access', _1512 => _1512.origin]))) },
|
|
56001
56104
|
status,
|
|
56002
|
-
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess',
|
|
56105
|
+
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _1513 => _1513.resolvedByName]))),
|
|
56003
56106
|
onApprove: this.callbacks.onEscalationApprove,
|
|
56004
56107
|
onReject: this.callbacks.onEscalationReject
|
|
56005
56108
|
};
|
|
@@ -56215,7 +56318,7 @@ function createMessageSegmentAccumulator(callbacks) {
|
|
|
56215
56318
|
// src/chat-protocol/events.ts
|
|
56216
56319
|
var GUIDE_ORIGIN = "guide";
|
|
56217
56320
|
function isGuideOrigin(source) {
|
|
56218
|
-
return _optionalChain([source, 'optionalAccess',
|
|
56321
|
+
return _optionalChain([source, 'optionalAccess', _1514 => _1514.origin]) === GUIDE_ORIGIN;
|
|
56219
56322
|
}
|
|
56220
56323
|
var ESCALATION_STATE = {
|
|
56221
56324
|
PENDING: "PENDING",
|
|
@@ -56338,7 +56441,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
56338
56441
|
let stateCache = null;
|
|
56339
56442
|
function invalidate() {
|
|
56340
56443
|
stateCache = null;
|
|
56341
|
-
_optionalChain([onChange, 'optionalCall',
|
|
56444
|
+
_optionalChain([onChange, 'optionalCall', _1515 => _1515()]);
|
|
56342
56445
|
}
|
|
56343
56446
|
function getState() {
|
|
56344
56447
|
if (!stateCache) {
|
|
@@ -56355,7 +56458,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
56355
56458
|
return stateCache;
|
|
56356
56459
|
}
|
|
56357
56460
|
function emit(name, ...args) {
|
|
56358
|
-
_optionalChain([onEffect, 'optionalCall',
|
|
56461
|
+
_optionalChain([onEffect, 'optionalCall', _1516 => _1516({ name, args })]);
|
|
56359
56462
|
}
|
|
56360
56463
|
function setMessagesInternal(next) {
|
|
56361
56464
|
if (next !== messages) {
|
|
@@ -56386,12 +56489,12 @@ function createChatStreamReducer(options = {}) {
|
|
|
56386
56489
|
return [...next.slice(0, -1), { ...last, streamSeq: seq }];
|
|
56387
56490
|
}
|
|
56388
56491
|
function applySegmentsToState(segments, meta) {
|
|
56389
|
-
const seq = _optionalChain([meta, 'optionalAccess',
|
|
56390
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
56492
|
+
const seq = _optionalChain([meta, 'optionalAccess', _1517 => _1517.streamSeq]);
|
|
56493
|
+
if (_optionalChain([meta, 'optionalAccess', _1518 => _1518.append]) && meta.isCompacting) {
|
|
56391
56494
|
setMessagesInternal(stampTrailingAssistantSeq(upsertTrailingCompaction(messages, segments), seq));
|
|
56392
56495
|
return;
|
|
56393
56496
|
}
|
|
56394
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
56497
|
+
if (_optionalChain([meta, 'optionalAccess', _1519 => _1519.append])) {
|
|
56395
56498
|
setMessagesInternal(stampTrailingAssistantSeq(appendToTrailingAssistant(messages, segments), seq));
|
|
56396
56499
|
return;
|
|
56397
56500
|
}
|
|
@@ -56403,7 +56506,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
56403
56506
|
adoptTrailingAssistant = false;
|
|
56404
56507
|
const last = messages[messages.length - 1];
|
|
56405
56508
|
if (!last || last.role !== "assistant" || adoptTail) return;
|
|
56406
|
-
const hasContent2 = (_nullishCoalesce(_optionalChain([last, 'access',
|
|
56509
|
+
const hasContent2 = (_nullishCoalesce(_optionalChain([last, 'access', _1520 => _1520.segments, 'optionalAccess', _1521 => _1521.length]), () => ( 0))) > 0 || last.content !== "";
|
|
56407
56510
|
if (!hasContent2) return;
|
|
56408
56511
|
setMessagesInternal([
|
|
56409
56512
|
...messages,
|
|
@@ -56631,13 +56734,13 @@ function createChatStreamReducer(options = {}) {
|
|
|
56631
56734
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
56632
56735
|
pendingEscalated.set(requestId, {
|
|
56633
56736
|
command: summary,
|
|
56634
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
56737
|
+
explanation: _optionalChain([required, 'optionalAccess', _1522 => _1522.toolExplanation]),
|
|
56635
56738
|
approvalType,
|
|
56636
56739
|
toolCalls
|
|
56637
56740
|
});
|
|
56638
56741
|
emit("onEscalatedApproval", requestId, {
|
|
56639
56742
|
command: summary,
|
|
56640
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
56743
|
+
explanation: _optionalChain([required, 'optionalAccess', _1523 => _1523.toolExplanation]),
|
|
56641
56744
|
approvalType
|
|
56642
56745
|
});
|
|
56643
56746
|
break;
|
|
@@ -56827,7 +56930,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
56827
56930
|
let message2;
|
|
56828
56931
|
if (event.details) {
|
|
56829
56932
|
try {
|
|
56830
|
-
message2 = _optionalChain([JSON, 'access',
|
|
56933
|
+
message2 = _optionalChain([JSON, 'access', _1524 => _1524.parse, 'call', _1525 => _1525(event.details), 'optionalAccess', _1526 => _1526.error, 'optionalAccess', _1527 => _1527.message]);
|
|
56831
56934
|
} catch (e103) {
|
|
56832
56935
|
message2 = event.details;
|
|
56833
56936
|
}
|
|
@@ -57044,7 +57147,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
57044
57147
|
const resolveBatch = (status, confirm) => async () => {
|
|
57045
57148
|
setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
|
|
57046
57149
|
for (const id of ids) {
|
|
57047
|
-
const ok = await _optionalChain([confirm, 'optionalCall',
|
|
57150
|
+
const ok = await _optionalChain([confirm, 'optionalCall', _1528 => _1528(id)]);
|
|
57048
57151
|
if (ok === false) {
|
|
57049
57152
|
setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
|
|
57050
57153
|
}
|
|
@@ -57187,8 +57290,8 @@ function createChatStreamReducer(options = {}) {
|
|
|
57187
57290
|
}
|
|
57188
57291
|
}
|
|
57189
57292
|
}
|
|
57190
|
-
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess',
|
|
57191
|
-
if (_optionalChain([extras, 'optionalAccess',
|
|
57293
|
+
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _1529 => _1529.resumed]), () => ( messages.length > 0)));
|
|
57294
|
+
if (_optionalChain([extras, 'optionalAccess', _1530 => _1530.agentBusy])) agentBusyState();
|
|
57192
57295
|
invalidate();
|
|
57193
57296
|
}
|
|
57194
57297
|
return {
|
|
@@ -57273,7 +57376,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
57273
57376
|
},
|
|
57274
57377
|
endSseTurn() {
|
|
57275
57378
|
const last = messages[messages.length - 1];
|
|
57276
|
-
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access',
|
|
57379
|
+
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _1531 => _1531.segments, 'optionalAccess', _1532 => _1532.length]), () => ( 0))) === 0 && last.content === "") {
|
|
57277
57380
|
messages = messages.slice(0, -1);
|
|
57278
57381
|
}
|
|
57279
57382
|
sseCurrentText = "";
|
|
@@ -57427,10 +57530,10 @@ function createChatDialogStore(options = {}) {
|
|
|
57427
57530
|
if (onEvict) {
|
|
57428
57531
|
const sep = key.indexOf(KEY_SEP);
|
|
57429
57532
|
onEvict(key.slice(0, sep), key.slice(sep + 1), {
|
|
57430
|
-
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
57431
|
-
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
57432
|
-
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
57433
|
-
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
57533
|
+
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1533 => _1533.state, 'access', _1534 => _1534.messages]), () => ( EMPTY_STATE.messages)),
|
|
57534
|
+
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1535 => _1535.state, 'access', _1536 => _1536.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
|
|
57535
|
+
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1537 => _1537.getLastAppliedSeq, 'call', _1538 => _1538()]), () => ( Number.NEGATIVE_INFINITY)),
|
|
57536
|
+
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1539 => _1539.getPendingEchoes, 'call', _1540 => _1540()]), () => ( EMPTY_PENDING_ECHOES))
|
|
57434
57537
|
});
|
|
57435
57538
|
}
|
|
57436
57539
|
}
|
|
@@ -57440,12 +57543,12 @@ function createChatDialogStore(options = {}) {
|
|
|
57440
57543
|
const key = keyOf(dialogId, side);
|
|
57441
57544
|
let reducer2 = reducers.get(key);
|
|
57442
57545
|
if (!reducer2) {
|
|
57443
|
-
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall',
|
|
57546
|
+
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _1541 => _1541(dialogId, side)]), () => ( {}));
|
|
57444
57547
|
const userOnChange = base.onChange;
|
|
57445
57548
|
reducer2 = createChatStreamReducer({
|
|
57446
57549
|
...base,
|
|
57447
57550
|
onChange: () => {
|
|
57448
|
-
_optionalChain([userOnChange, 'optionalCall',
|
|
57551
|
+
_optionalChain([userOnChange, 'optionalCall', _1542 => _1542()]);
|
|
57449
57552
|
notify();
|
|
57450
57553
|
}
|
|
57451
57554
|
});
|
|
@@ -57490,7 +57593,7 @@ function createChatDialogStore(options = {}) {
|
|
|
57490
57593
|
};
|
|
57491
57594
|
}
|
|
57492
57595
|
function getSnapshot(dialogId, side = DEFAULT_DIALOG_SIDE) {
|
|
57493
|
-
return _nullishCoalesce(_optionalChain([reducers, 'access',
|
|
57596
|
+
return _nullishCoalesce(_optionalChain([reducers, 'access', _1543 => _1543.get, 'call', _1544 => _1544(keyOf(dialogId, side)), 'optionalAccess', _1545 => _1545.state]), () => ( EMPTY_STATE));
|
|
57494
57597
|
}
|
|
57495
57598
|
function getServerSnapshot() {
|
|
57496
57599
|
return EMPTY_STATE;
|
|
@@ -57582,7 +57685,7 @@ function createDeltaBatcher({
|
|
|
57582
57685
|
pending = [];
|
|
57583
57686
|
const key = pendingKey;
|
|
57584
57687
|
for (const delta of batch) applyOne(delta, key);
|
|
57585
|
-
_optionalChain([onFlushed, 'optionalCall',
|
|
57688
|
+
_optionalChain([onFlushed, 'optionalCall', _1546 => _1546(batch.length)]);
|
|
57586
57689
|
}
|
|
57587
57690
|
function schedule() {
|
|
57588
57691
|
if (raf !== null || timer !== null) return;
|
|
@@ -57606,7 +57709,7 @@ function createDeltaBatcher({
|
|
|
57606
57709
|
}
|
|
57607
57710
|
if (!isDeltaEvent(event)) return false;
|
|
57608
57711
|
const tail = pending[pending.length - 1];
|
|
57609
|
-
const seqAdvances = _optionalChain([tail, 'optionalAccess',
|
|
57712
|
+
const seqAdvances = _optionalChain([tail, 'optionalAccess', _1547 => _1547.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
|
|
57610
57713
|
if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
|
|
57611
57714
|
pending[pending.length - 1] = {
|
|
57612
57715
|
...tail,
|
|
@@ -57639,7 +57742,7 @@ function useChatStreamReducer({
|
|
|
57639
57742
|
}) {
|
|
57640
57743
|
const optionsRef = _react.useRef.call(void 0, createReducerOptions);
|
|
57641
57744
|
optionsRef.current = createReducerOptions;
|
|
57642
|
-
const reducer2 = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([optionsRef, 'access',
|
|
57745
|
+
const reducer2 = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([optionsRef, 'access', _1548 => _1548.current, 'optionalCall', _1549 => _1549()]), () => ( {})));
|
|
57643
57746
|
const getSnapshot = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
|
|
57644
57747
|
const getServerSnapshot = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
|
|
57645
57748
|
const subscribe = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
|
|
@@ -57699,7 +57802,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57699
57802
|
const { active = true } = runtimeOptions;
|
|
57700
57803
|
const runtime = _chunk7OPWSWEJcjs.useRequiredChatRuntime.call(void 0, );
|
|
57701
57804
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
57702
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
57805
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1550 => _1550.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
57703
57806
|
const sendMessageRef = _react.useRef.call(void 0, async () => true);
|
|
57704
57807
|
const cardResolve = _react.useCallback.call(void 0,
|
|
57705
57808
|
(action) => (reqId) => {
|
|
@@ -57734,7 +57837,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57734
57837
|
if (!restoredConversationRef.current) {
|
|
57735
57838
|
restoredConversationRef.current = true;
|
|
57736
57839
|
pruneStaleChatConversationStorage(source);
|
|
57737
|
-
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access',
|
|
57840
|
+
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _1551 => _1551.load, 'call', _1552 => _1552(), 'optionalAccess', _1553 => _1553.conversationId]), () => ( null));
|
|
57738
57841
|
}
|
|
57739
57842
|
const commandsUrl = runtime.endpoints.commandsUrl;
|
|
57740
57843
|
const { commands: slashCommands } = useSlashCommandRegistry(commandsUrl, {
|
|
@@ -57841,7 +57944,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57841
57944
|
const serverMessage = await readServerErrorMessage(response);
|
|
57842
57945
|
throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
|
|
57843
57946
|
}
|
|
57844
|
-
const reader = _optionalChain([response, 'access',
|
|
57947
|
+
const reader = _optionalChain([response, 'access', _1554 => _1554.body, 'optionalAccess', _1555 => _1555.getReader, 'call', _1556 => _1556()]);
|
|
57845
57948
|
if (!reader) throw new Error("No response body");
|
|
57846
57949
|
const frameDecoder = createSseFrameDecoder();
|
|
57847
57950
|
let finished = false;
|
|
@@ -57864,7 +57967,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57864
57967
|
}
|
|
57865
57968
|
return true;
|
|
57866
57969
|
} catch (err) {
|
|
57867
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
57970
|
+
if (_optionalChain([err, 'optionalAccess', _1557 => _1557.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
57868
57971
|
return true;
|
|
57869
57972
|
}
|
|
57870
57973
|
flushDeltas();
|
|
@@ -57886,7 +57989,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57886
57989
|
);
|
|
57887
57990
|
sendMessageRef.current = sendMessage;
|
|
57888
57991
|
const stopMessage = _react.useCallback.call(void 0, () => {
|
|
57889
|
-
_optionalChain([abortControllerRef, 'access',
|
|
57992
|
+
_optionalChain([abortControllerRef, 'access', _1558 => _1558.current, 'optionalAccess', _1559 => _1559.abort, 'call', _1560 => _1560()]);
|
|
57890
57993
|
flushDeltas();
|
|
57891
57994
|
mutate((r) => r.setPhase("idle"));
|
|
57892
57995
|
}, [mutate, flushDeltas]);
|
|
@@ -57902,7 +58005,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57902
58005
|
let sendIdx = -1;
|
|
57903
58006
|
return state.messages.map((m) => {
|
|
57904
58007
|
const segments = m.segments;
|
|
57905
|
-
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess',
|
|
58008
|
+
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _1561 => _1561.filter, 'call', _1562 => _1562((s) => s.type === "text"), 'access', _1563 => _1563.map, 'call', _1564 => _1564((s) => s.text), 'access', _1565 => _1565.join, 'call', _1566 => _1566("")]), () => ( ""));
|
|
57906
58009
|
let sources;
|
|
57907
58010
|
let scrollAnchor;
|
|
57908
58011
|
if (m.role === "user" && !m.hidden) {
|
|
@@ -57911,7 +58014,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57911
58014
|
if (m.role === "assistant") {
|
|
57912
58015
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
57913
58016
|
sources = sourcesMap.get(lookupIdx);
|
|
57914
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access',
|
|
58017
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _1567 => _1567.get, 'call', _1568 => _1568(lookupIdx), 'optionalAccess', _1569 => _1569.scrollAnchor]), () => ( void 0));
|
|
57915
58018
|
}
|
|
57916
58019
|
return {
|
|
57917
58020
|
id: m.id,
|
|
@@ -57940,7 +58043,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57940
58043
|
);
|
|
57941
58044
|
return;
|
|
57942
58045
|
}
|
|
57943
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
58046
|
+
const refSlug = typeof _optionalChain([reference, 'access', _1570 => _1570.metadata, 'optionalAccess', _1571 => _1571.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
57944
58047
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
57945
58048
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
57946
58049
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -57990,18 +58093,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
57990
58093
|
/** True while the mount-time rebuild from the server transcript runs. */
|
|
57991
58094
|
isHydratingHistory,
|
|
57992
58095
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
57993
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
57994
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
57995
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
58096
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1572 => _1572.provider]), () => ( null)),
|
|
58097
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1573 => _1573.modelLabel]), () => ( null)),
|
|
58098
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1574 => _1574.contextWindowMaxTokens]), () => ( null)),
|
|
57996
58099
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
57997
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
58100
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1575 => _1575.inputTokens]), () => ( null)),
|
|
57998
58101
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
57999
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
58102
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1576 => _1576.outputTokens]), () => ( null)),
|
|
58000
58103
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
58001
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
58104
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1577 => _1577.cacheHitRatePct]), () => ( null)),
|
|
58002
58105
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
58003
58106
|
* token counts). null until the trailing usage frame lands. */
|
|
58004
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
58107
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1578 => _1578.breakdown]), () => ( null)),
|
|
58005
58108
|
// ─── Dialog management — stubs for v1 ────────────────────────────────
|
|
58006
58109
|
// Guide mode keeps ONE server-side conversation per stored id
|
|
58007
58110
|
// (`chat_conversations`, hydrated on mount). Surfacing multiple threads
|
|
@@ -58296,7 +58399,7 @@ function decodeNatsChunk(chunk) {
|
|
|
58296
58399
|
userId: typeof data.userId === "string" ? data.userId : void 0,
|
|
58297
58400
|
// Wire shape carries no label; fall back to the id (parity with
|
|
58298
58401
|
// the history path in `process-historical-messages.ts`).
|
|
58299
|
-
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess',
|
|
58402
|
+
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1579 => _1579.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1580 => _1580.id]) === "string").map((it) => ({
|
|
58300
58403
|
type: it.type,
|
|
58301
58404
|
id: it.id,
|
|
58302
58405
|
label: it.id
|
|
@@ -58348,15 +58451,15 @@ function decodeNatsChunk(chunk) {
|
|
|
58348
58451
|
|
|
58349
58452
|
// src/components/chat/utils/process-historical-messages.ts
|
|
58350
58453
|
function getOwnerDisplayName(owner) {
|
|
58351
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
58454
|
+
if (_optionalChain([owner, 'optionalAccess', _1581 => _1581.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
58352
58455
|
const { firstName, lastName } = owner.user;
|
|
58353
58456
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
58354
58457
|
if (name) return name;
|
|
58355
58458
|
}
|
|
58356
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
58459
|
+
return _optionalChain([owner, 'optionalAccess', _1582 => _1582.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
58357
58460
|
}
|
|
58358
58461
|
function getOwnerAvatar(owner) {
|
|
58359
|
-
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess',
|
|
58462
|
+
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1583 => _1583.user, 'optionalAccess', _1584 => _1584.image, 'optionalAccess', _1585 => _1585.imageUrl]), () => ( void 0));
|
|
58360
58463
|
}
|
|
58361
58464
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
58362
58465
|
messageDataArray.forEach((data) => {
|
|
@@ -58555,7 +58658,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
58555
58658
|
event.offerId,
|
|
58556
58659
|
event.text,
|
|
58557
58660
|
event.origin,
|
|
58558
|
-
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess',
|
|
58661
|
+
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _1586 => _1586[event.offerId]]), () => ( "pending"))
|
|
58559
58662
|
);
|
|
58560
58663
|
break;
|
|
58561
58664
|
case "ticket-escalated":
|
|
@@ -58581,7 +58684,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
58581
58684
|
});
|
|
58582
58685
|
break;
|
|
58583
58686
|
case "escalation-offer-resolved":
|
|
58584
|
-
_optionalChain([offerResolutions, 'optionalAccess',
|
|
58687
|
+
_optionalChain([offerResolutions, 'optionalAccess', _1587 => _1587.set, 'call', _1588 => _1588(event.offerId, {
|
|
58585
58688
|
status: event.status,
|
|
58586
58689
|
resolvedByName: event.resolvedByName
|
|
58587
58690
|
})]);
|
|
@@ -58659,7 +58762,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
58659
58762
|
}
|
|
58660
58763
|
}
|
|
58661
58764
|
} else {
|
|
58662
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
58765
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1589 => _1589.set, 'call', _1590 => _1590(event.requestId, {
|
|
58663
58766
|
command: event.command || "",
|
|
58664
58767
|
explanation: event.explanation,
|
|
58665
58768
|
approvalType,
|
|
@@ -58674,8 +58777,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
58674
58777
|
const existingStatus = approvalStatuses[requestId];
|
|
58675
58778
|
const status = existingStatus || event.status;
|
|
58676
58779
|
const resolvedByName = event.resolvedByName;
|
|
58677
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
58678
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
58780
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1591 => _1591.get, 'call', _1592 => _1592(requestId)]);
|
|
58781
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _1593 => _1593.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
58679
58782
|
if (batchApprovalsEnabled) {
|
|
58680
58783
|
accumulator.addApprovalBatch(
|
|
58681
58784
|
requestId,
|
|
@@ -58697,7 +58800,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
58697
58800
|
);
|
|
58698
58801
|
}
|
|
58699
58802
|
}
|
|
58700
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
58803
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1594 => _1594.delete, 'call', _1595 => _1595(requestId)]);
|
|
58701
58804
|
break;
|
|
58702
58805
|
}
|
|
58703
58806
|
if (escalatedData) {
|
|
@@ -58706,7 +58809,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
58706
58809
|
explanation: escalatedData.explanation,
|
|
58707
58810
|
approvalType: escalatedData.approvalType
|
|
58708
58811
|
});
|
|
58709
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
58812
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1596 => _1596.delete, 'call', _1597 => _1597(requestId)]);
|
|
58710
58813
|
}
|
|
58711
58814
|
const before = accumulator.getSegments();
|
|
58712
58815
|
const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
|
|
@@ -58723,7 +58826,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
58723
58826
|
let message2;
|
|
58724
58827
|
if (event.details) {
|
|
58725
58828
|
try {
|
|
58726
|
-
message2 = _optionalChain([JSON, 'access',
|
|
58829
|
+
message2 = _optionalChain([JSON, 'access', _1598 => _1598.parse, 'call', _1599 => _1599(event.details), 'optionalAccess', _1600 => _1600.error, 'optionalAccess', _1601 => _1601.message]);
|
|
58727
58830
|
} catch (e104) {
|
|
58728
58831
|
message2 = event.details;
|
|
58729
58832
|
}
|
|
@@ -58809,14 +58912,14 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
58809
58912
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
58810
58913
|
return;
|
|
58811
58914
|
}
|
|
58812
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
58915
|
+
const isUserMessage = _optionalChain([msg, 'access', _1602 => _1602.owner, 'optionalAccess', _1603 => _1603.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1604 => _1604.owner, 'optionalAccess', _1605 => _1605.type]) === OWNER_TYPE.ADMIN;
|
|
58813
58916
|
if (isUserMessage) {
|
|
58814
58917
|
flushAssistantMessage();
|
|
58815
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
58918
|
+
const userAuthorType = _optionalChain([msg, 'access', _1606 => _1606.owner, 'optionalAccess', _1607 => _1607.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
58816
58919
|
messageDataArray.forEach((data) => {
|
|
58817
58920
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
58818
58921
|
const rawContext = data.contextItems;
|
|
58819
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
58922
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1608 => _1608.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1609 => _1609.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
58820
58923
|
processedMessages.push({
|
|
58821
58924
|
id: msg.id,
|
|
58822
58925
|
role: "user",
|
|
@@ -58853,7 +58956,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
58853
58956
|
});
|
|
58854
58957
|
const nextMsg = messages[index + 1];
|
|
58855
58958
|
const isLastMessage = index === messages.length - 1;
|
|
58856
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
58959
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1610 => _1610.owner, 'optionalAccess', _1611 => _1611.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1612 => _1612.owner, 'optionalAccess', _1613 => _1613.type]) === OWNER_TYPE.ADMIN);
|
|
58857
58960
|
if (isLastMessage || nextIsFromUser) {
|
|
58858
58961
|
flushAssistantMessage();
|
|
58859
58962
|
}
|
|
@@ -58965,7 +59068,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
58965
59068
|
break;
|
|
58966
59069
|
case "approval_batch": {
|
|
58967
59070
|
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
58968
|
-
(c) => _optionalChain([segment, 'access',
|
|
59071
|
+
(c) => _optionalChain([segment, 'access', _1614 => _1614.data, 'access', _1615 => _1615.executions, 'optionalAccess', _1616 => _1616[c.toolExecutionRequestId], 'optionalAccess', _1617 => _1617.status]) === "done"
|
|
58969
59072
|
);
|
|
58970
59073
|
if (segment.status !== "rejected" && !allDone) {
|
|
58971
59074
|
hasIncompleteState = true;
|
|
@@ -59001,11 +59104,11 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
59001
59104
|
function extractIncompleteTailState(messages) {
|
|
59002
59105
|
if (!messages || messages.length === 0) return void 0;
|
|
59003
59106
|
let start = messages.length;
|
|
59004
|
-
while (start > 0 && _optionalChain([messages, 'access',
|
|
59107
|
+
while (start > 0 && _optionalChain([messages, 'access', _1618 => _1618[start - 1], 'optionalAccess', _1619 => _1619.role]) === "assistant") start -= 1;
|
|
59005
59108
|
if (start === messages.length) return void 0;
|
|
59006
59109
|
const segments = [];
|
|
59007
59110
|
for (let i = start; i < messages.length; i += 1) {
|
|
59008
|
-
const content = _optionalChain([messages, 'access',
|
|
59111
|
+
const content = _optionalChain([messages, 'access', _1620 => _1620[i], 'optionalAccess', _1621 => _1621.content]);
|
|
59009
59112
|
if (Array.isArray(content)) segments.push(...content);
|
|
59010
59113
|
}
|
|
59011
59114
|
if (segments.length === 0) return void 0;
|
|
@@ -59359,7 +59462,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
59359
59462
|
}, [active, fetchDialogs, loadDialogsPage]);
|
|
59360
59463
|
const sendMessage = _react.useCallback.call(void 0,
|
|
59361
59464
|
async (text, sendOptions) => {
|
|
59362
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
59465
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1622 => _1622.hidden]), () => ( false));
|
|
59363
59466
|
mutate((r) => r.pushOptimisticSend(text, hidden));
|
|
59364
59467
|
await publishUserMessage(text, { hidden, dialogId });
|
|
59365
59468
|
},
|
|
@@ -59515,11 +59618,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
59515
59618
|
// Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
|
|
59516
59619
|
// contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
|
|
59517
59620
|
// matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
|
|
59518
|
-
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
59519
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
59520
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
59521
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
59522
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
59621
|
+
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1623 => _1623.provider]), () => ( modelProvider)), () => ( null)),
|
|
59622
|
+
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1624 => _1624.modelLabel]), () => ( modelLabel)), () => ( null)),
|
|
59623
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1625 => _1625.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1626 => _1626.contextWindowMaxTokens]))), () => ( null)),
|
|
59624
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1627 => _1627.inputTokensSize]), () => ( null)),
|
|
59625
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1628 => _1628.outputTokensSize]), () => ( null)),
|
|
59523
59626
|
currentCacheHitRatePct: null,
|
|
59524
59627
|
currentUsageBreakdown: null,
|
|
59525
59628
|
// Dialog management
|
|
@@ -59656,7 +59759,7 @@ function useUnifiedChat(options) {
|
|
|
59656
59759
|
[]
|
|
59657
59760
|
);
|
|
59658
59761
|
const setDialogScope = _react.useCallback.call(void 0,
|
|
59659
|
-
(scope) => _optionalChain([activeStateRef, 'access',
|
|
59762
|
+
(scope) => _optionalChain([activeStateRef, 'access', _1629 => _1629.current, 'access', _1630 => _1630.setDialogScope, 'optionalCall', _1631 => _1631(scope)]),
|
|
59660
59763
|
[]
|
|
59661
59764
|
);
|
|
59662
59765
|
const reloadDialogs = _react.useCallback.call(void 0,
|
|
@@ -59760,19 +59863,19 @@ function turnRequestKeys(content) {
|
|
|
59760
59863
|
if (!Array.isArray(content)) return keys;
|
|
59761
59864
|
for (const seg of content) {
|
|
59762
59865
|
if (seg.type === "tool_execution") {
|
|
59763
|
-
const id = _optionalChain([seg, 'access',
|
|
59866
|
+
const id = _optionalChain([seg, 'access', _1632 => _1632.data, 'optionalAccess', _1633 => _1633.toolExecutionRequestId]);
|
|
59764
59867
|
if (id) keys.add(id);
|
|
59765
59868
|
} else if (seg.type === "approval_request") {
|
|
59766
|
-
const id = _optionalChain([seg, 'access',
|
|
59869
|
+
const id = _optionalChain([seg, 'access', _1634 => _1634.data, 'optionalAccess', _1635 => _1635.requestId]);
|
|
59767
59870
|
if (id) keys.add(id);
|
|
59768
59871
|
} else if (seg.type === "escalation_offer") {
|
|
59769
|
-
const id = _optionalChain([seg, 'access',
|
|
59872
|
+
const id = _optionalChain([seg, 'access', _1636 => _1636.data, 'optionalAccess', _1637 => _1637.offerId]);
|
|
59770
59873
|
if (id) keys.add(id);
|
|
59771
59874
|
} else if (seg.type === "approval_batch") {
|
|
59772
59875
|
const data = seg.data;
|
|
59773
|
-
if (_optionalChain([data, 'optionalAccess',
|
|
59774
|
-
for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
59775
|
-
if (_optionalChain([call, 'optionalAccess',
|
|
59876
|
+
if (_optionalChain([data, 'optionalAccess', _1638 => _1638.approvalRequestId])) keys.add(data.approvalRequestId);
|
|
59877
|
+
for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1639 => _1639.toolCalls]), () => ( []))) {
|
|
59878
|
+
if (_optionalChain([call, 'optionalAccess', _1640 => _1640.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
|
|
59776
59879
|
}
|
|
59777
59880
|
}
|
|
59778
59881
|
}
|
|
@@ -59824,20 +59927,20 @@ function mergeHistoryWithRealtime(input) {
|
|
|
59824
59927
|
}
|
|
59825
59928
|
}
|
|
59826
59929
|
const trailing = processedHistory[processedHistory.length - 1];
|
|
59827
|
-
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess',
|
|
59828
|
-
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access',
|
|
59930
|
+
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1641 => _1641.role]) === "assistant" ? trailing : null;
|
|
59931
|
+
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1642 => _1642.content, 'access', _1643 => _1643.find, 'call', _1644 => _1644((s) => s.type === "approval_batch"), 'optionalAccess', _1645 => _1645.data, 'optionalAccess', _1646 => _1646.approvalRequestId]), () => ( null)) : null;
|
|
59829
59932
|
let processedToUse = processedHistory;
|
|
59830
59933
|
const pinnedSyntheticIds = /* @__PURE__ */ new Set();
|
|
59831
59934
|
const droppedSyntheticIds = /* @__PURE__ */ new Set();
|
|
59832
59935
|
if (historyBatchId) {
|
|
59833
59936
|
const batchTwins = existingMessages.filter(
|
|
59834
59937
|
(m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
|
|
59835
|
-
(s) => s.type === "approval_batch" && _optionalChain([s, 'access',
|
|
59938
|
+
(s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1647 => _1647.data, 'optionalAccess', _1648 => _1648.approvalRequestId]) === historyBatchId
|
|
59836
59939
|
)
|
|
59837
59940
|
);
|
|
59838
59941
|
const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
|
|
59839
59942
|
if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
|
|
59840
|
-
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess',
|
|
59943
|
+
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1649 => _1649.content])) ? historyTrailingAssistant.content.length : 0;
|
|
59841
59944
|
const realtimeSize = existingWithSameBatch.content.length;
|
|
59842
59945
|
if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
|
|
59843
59946
|
processedToUse = processedHistory.slice(0, -1);
|
|
@@ -59879,9 +59982,9 @@ function mergeHistoryWithRealtime(input) {
|
|
|
59879
59982
|
if (pinnedSyntheticIds.has(m.id)) return true;
|
|
59880
59983
|
if (droppedSyntheticIds.has(m.id)) return false;
|
|
59881
59984
|
if (processedIds.has(m.id)) return false;
|
|
59882
|
-
if (_optionalChain([rawHistoryIds, 'optionalAccess',
|
|
59985
|
+
if (_optionalChain([rawHistoryIds, 'optionalAccess', _1650 => _1650.has, 'call', _1651 => _1651(m.id)])) return false;
|
|
59883
59986
|
if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
|
|
59884
|
-
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access',
|
|
59987
|
+
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1652 => _1652.timestamp, 'optionalAccess', _1653 => _1653.getTime, 'call', _1654 => _1654()]), () => ( 0))) <= historyFetchedAt;
|
|
59885
59988
|
return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
|
|
59886
59989
|
}
|
|
59887
59990
|
if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
|
|
@@ -59905,7 +60008,7 @@ function mergeHistoryWithRealtime(input) {
|
|
|
59905
60008
|
} else if (typeof m.streamSeq === "number") {
|
|
59906
60009
|
covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
|
|
59907
60010
|
} else {
|
|
59908
|
-
covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access',
|
|
60011
|
+
covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1655 => _1655.timestamp, 'optionalAccess', _1656 => _1656.getTime, 'call', _1657 => _1657()]), () => ( 0))) <= historyFetchedAt;
|
|
59909
60012
|
}
|
|
59910
60013
|
if (covered) return false;
|
|
59911
60014
|
}
|
|
@@ -59961,7 +60064,7 @@ function normalizeHistoricalMessageData(md) {
|
|
|
59961
60064
|
function isHistoricalUserTurn(m) {
|
|
59962
60065
|
return !!m.owner;
|
|
59963
60066
|
}
|
|
59964
|
-
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess',
|
|
60067
|
+
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _1658 => _1658.type]) === "TEXT" && typeof d.text === "string";
|
|
59965
60068
|
var THINK_MS = 550;
|
|
59966
60069
|
var TOKEN_MS = 55;
|
|
59967
60070
|
var USER_MS = 480;
|
|
@@ -60050,7 +60153,7 @@ var NODES = [
|
|
|
60050
60153
|
];
|
|
60051
60154
|
var Primitive = NODES.reduce((primitive, node) => {
|
|
60052
60155
|
const Slot2 = _reactslot.createSlot.call(void 0, `Primitive.${node}`);
|
|
60053
|
-
const Node2 =
|
|
60156
|
+
const Node2 = React148.forwardRef((props, forwardedRef) => {
|
|
60054
60157
|
const { asChild, ...primitiveProps } = props;
|
|
60055
60158
|
const Comp = asChild ? Slot2 : node;
|
|
60056
60159
|
if (typeof window !== "undefined") {
|
|
@@ -60083,7 +60186,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
|
60083
60186
|
whiteSpace: "nowrap",
|
|
60084
60187
|
wordWrap: "normal"
|
|
60085
60188
|
});
|
|
60086
|
-
var VisuallyHidden = /* @__PURE__ */
|
|
60189
|
+
var VisuallyHidden = /* @__PURE__ */ React149.forwardRef(
|
|
60087
60190
|
/* @__PURE__ */ __name4(function VisuallyHidden2(props, forwardedRef) {
|
|
60088
60191
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
60089
60192
|
Primitive.span,
|
|
@@ -60208,7 +60311,7 @@ function useChatDialogManager({
|
|
|
60208
60311
|
const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
|
|
60209
60312
|
if (restoreTarget) {
|
|
60210
60313
|
try {
|
|
60211
|
-
await _optionalChain([unarchiveDialog, 'optionalCall',
|
|
60314
|
+
await _optionalChain([unarchiveDialog, 'optionalCall', _1659 => _1659(restoreTarget.id)]);
|
|
60212
60315
|
} catch (err) {
|
|
60213
60316
|
console.error("[useChatDialogManager] unarchive failed:", err);
|
|
60214
60317
|
return;
|
|
@@ -60690,7 +60793,7 @@ function EmbeddableChatInner({
|
|
|
60690
60793
|
}),
|
|
60691
60794
|
[commandsUrl]
|
|
60692
60795
|
);
|
|
60693
|
-
const headerUserName = _optionalChain([identityUser, 'optionalAccess',
|
|
60796
|
+
const headerUserName = _optionalChain([identityUser, 'optionalAccess', _1660 => _1660.name, 'optionalAccess', _1661 => _1661.trim, 'call', _1662 => _1662()]) || [_optionalChain([identityUser, 'optionalAccess', _1663 => _1663.firstName]), _optionalChain([identityUser, 'optionalAccess', _1664 => _1664.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _1665 => _1665.trim, 'call', _1666 => _1666()]) || void 0;
|
|
60694
60797
|
const effectiveModes = _react.useMemo.call(void 0, () => {
|
|
60695
60798
|
if (modes) return modes;
|
|
60696
60799
|
const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
|
|
@@ -60699,19 +60802,19 @@ function EmbeddableChatInner({
|
|
|
60699
60802
|
const mingoCaps = _react.useMemo.call(void 0, () => {
|
|
60700
60803
|
if (mingoState) {
|
|
60701
60804
|
return {
|
|
60702
|
-
canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
60703
|
-
canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
60704
|
-
fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
60705
|
-
unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
60706
|
-
searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
60707
|
-
onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
60805
|
+
canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1667 => _1667.canRename]), () => ( false)),
|
|
60806
|
+
canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1668 => _1668.canArchive]), () => ( false)),
|
|
60807
|
+
fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1669 => _1669.fetchArchivedDialogs]),
|
|
60808
|
+
unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1670 => _1670.unarchiveDialog]),
|
|
60809
|
+
searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1671 => _1671.searchQuery]),
|
|
60810
|
+
onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1672 => _1672.onSearchChange])
|
|
60708
60811
|
};
|
|
60709
60812
|
}
|
|
60710
60813
|
return {
|
|
60711
|
-
canRename: !!_optionalChain([effectiveModes, 'access',
|
|
60712
|
-
canArchive: !!_optionalChain([effectiveModes, 'access',
|
|
60713
|
-
fetchArchivedDialogs: _optionalChain([effectiveModes, 'access',
|
|
60714
|
-
unarchiveDialog: _optionalChain([effectiveModes, 'access',
|
|
60814
|
+
canRename: !!_optionalChain([effectiveModes, 'access', _1673 => _1673.mingo, 'optionalAccess', _1674 => _1674.renameDialog]),
|
|
60815
|
+
canArchive: !!_optionalChain([effectiveModes, 'access', _1675 => _1675.mingo, 'optionalAccess', _1676 => _1676.archiveDialog]),
|
|
60816
|
+
fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1677 => _1677.mingo, 'optionalAccess', _1678 => _1678.fetchArchivedDialogs]),
|
|
60817
|
+
unarchiveDialog: _optionalChain([effectiveModes, 'access', _1679 => _1679.mingo, 'optionalAccess', _1680 => _1680.unarchiveDialog]),
|
|
60715
60818
|
searchQuery: void 0,
|
|
60716
60819
|
onSearchChange: void 0
|
|
60717
60820
|
};
|
|
@@ -60725,7 +60828,7 @@ function EmbeddableChatInner({
|
|
|
60725
60828
|
if (controlledActiveMode === void 0) {
|
|
60726
60829
|
setUncontrolledActiveMode(next);
|
|
60727
60830
|
}
|
|
60728
|
-
_optionalChain([onActiveModeChange, 'optionalCall',
|
|
60831
|
+
_optionalChain([onActiveModeChange, 'optionalCall', _1681 => _1681(next)]);
|
|
60729
60832
|
},
|
|
60730
60833
|
[controlledActiveMode, onActiveModeChange]
|
|
60731
60834
|
);
|
|
@@ -60747,7 +60850,7 @@ function EmbeddableChatInner({
|
|
|
60747
60850
|
const effectiveQuickActions = emptyStateUrl ? emptyStateConfig.quickActions : [];
|
|
60748
60851
|
const effectiveAssistantName = emptyStateConfig.name;
|
|
60749
60852
|
const effectiveAssistantIcon = emptyStateConfig.icon;
|
|
60750
|
-
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess',
|
|
60853
|
+
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1682 => _1682.title]) === "string" ? guideWelcome.title : null)));
|
|
60751
60854
|
const {
|
|
60752
60855
|
messages: rawMessages,
|
|
60753
60856
|
isLoading: chatLoading,
|
|
@@ -60789,7 +60892,7 @@ function EmbeddableChatInner({
|
|
|
60789
60892
|
if (activeMode !== "guide" || guidePromptSentRef.current) return;
|
|
60790
60893
|
guidePromptSentRef.current = true;
|
|
60791
60894
|
void sendMessage(guidePendingPrompt);
|
|
60792
|
-
_optionalChain([onGuidePromptConsumed, 'optionalCall',
|
|
60895
|
+
_optionalChain([onGuidePromptConsumed, 'optionalCall', _1683 => _1683()]);
|
|
60793
60896
|
}, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
|
|
60794
60897
|
const {
|
|
60795
60898
|
attachments: stagedAttachments,
|
|
@@ -60800,7 +60903,7 @@ function EmbeddableChatInner({
|
|
|
60800
60903
|
clear: clearAttachments
|
|
60801
60904
|
} = useChatAttachments();
|
|
60802
60905
|
const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
|
|
60803
|
-
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
60906
|
+
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1684 => _1684.maxItems]), () => ( 10));
|
|
60804
60907
|
const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
|
|
60805
60908
|
const [contextItems, setContextItems] = _react.useState.call(void 0, []);
|
|
60806
60909
|
const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
|
|
@@ -60817,10 +60920,10 @@ function EmbeddableChatInner({
|
|
|
60817
60920
|
}, [activeDialogId, activeMode]);
|
|
60818
60921
|
const mentionMarkerByType = _react.useMemo.call(void 0, () => {
|
|
60819
60922
|
const m = /* @__PURE__ */ new Map();
|
|
60820
|
-
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
60923
|
+
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1685 => _1685.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
|
|
60821
60924
|
return m;
|
|
60822
|
-
}, [_optionalChain([contextPicker, 'optionalAccess',
|
|
60823
|
-
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess',
|
|
60925
|
+
}, [_optionalChain([contextPicker, 'optionalAccess', _1686 => _1686.entityTypes])]);
|
|
60926
|
+
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1687 => _1687.entityTypes]);
|
|
60824
60927
|
const resolveContextIcon = _react.useMemo.call(void 0, () => {
|
|
60825
60928
|
const byType = /* @__PURE__ */ new Map();
|
|
60826
60929
|
for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
|
|
@@ -60832,7 +60935,7 @@ function EmbeddableChatInner({
|
|
|
60832
60935
|
if (mentionActiveRef.current) {
|
|
60833
60936
|
if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
|
|
60834
60937
|
if (contextItems.length >= contextMaxItems) return;
|
|
60835
|
-
_optionalChain([chatInputRef, 'access',
|
|
60938
|
+
_optionalChain([chatInputRef, 'access', _1688 => _1688.current, 'optionalAccess', _1689 => _1689.commitMention, 'call', _1690 => _1690(mentionTokenOf(key, mentionMarkerByType), {
|
|
60836
60939
|
label: item.label,
|
|
60837
60940
|
icon: resolveContextIcon(item)
|
|
60838
60941
|
})]);
|
|
@@ -60854,9 +60957,9 @@ function EmbeddableChatInner({
|
|
|
60854
60957
|
setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
|
|
60855
60958
|
if (mentionKeysRef.current.has(key)) {
|
|
60856
60959
|
mentionKeysRef.current.delete(key);
|
|
60857
|
-
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access',
|
|
60960
|
+
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1691 => _1691.current, 'optionalAccess', _1692 => _1692.getValue, 'call', _1693 => _1693()]), () => ( ""));
|
|
60858
60961
|
const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
|
|
60859
|
-
_optionalChain([chatInputRef, 'access',
|
|
60962
|
+
_optionalChain([chatInputRef, 'access', _1694 => _1694.current, 'optionalAccess', _1695 => _1695.setValue, 'call', _1696 => _1696(next)]);
|
|
60860
60963
|
}
|
|
60861
60964
|
}, [mentionMarkerByType]);
|
|
60862
60965
|
const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
|
|
@@ -60873,7 +60976,7 @@ function EmbeddableChatInner({
|
|
|
60873
60976
|
}, []);
|
|
60874
60977
|
const closeContextPicker = _react.useCallback.call(void 0, () => {
|
|
60875
60978
|
if (mentionActiveRef.current) {
|
|
60876
|
-
_optionalChain([chatInputRef, 'access',
|
|
60979
|
+
_optionalChain([chatInputRef, 'access', _1697 => _1697.current, 'optionalAccess', _1698 => _1698.removeMentionTrigger, 'call', _1699 => _1699()]);
|
|
60877
60980
|
}
|
|
60878
60981
|
setContextPickerOpen(false);
|
|
60879
60982
|
setMentionQuery(null);
|
|
@@ -60907,8 +61010,8 @@ function EmbeddableChatInner({
|
|
|
60907
61010
|
[effectiveAssistantIcon]
|
|
60908
61011
|
);
|
|
60909
61012
|
const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
60910
|
-
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess',
|
|
60911
|
-
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess',
|
|
61013
|
+
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1700 => _1700.firstName]), _optionalChain([identityUser, 'optionalAccess', _1701 => _1701.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1702 => _1702.name, 'optionalAccess', _1703 => _1703.trim, 'call', _1704 => _1704()]) || void 0 : void 0;
|
|
61014
|
+
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1705 => _1705.avatarUrl, 'optionalAccess', _1706 => _1706.trim, 'call', _1707 => _1707()]) || void 0 : void 0;
|
|
60912
61015
|
const messages = _react.useMemo.call(void 0, () => {
|
|
60913
61016
|
const cache = timestampCacheRef.current;
|
|
60914
61017
|
const seenIds = /* @__PURE__ */ new Set();
|
|
@@ -61099,9 +61202,9 @@ function EmbeddableChatInner({
|
|
|
61099
61202
|
const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
|
|
61100
61203
|
const lastSources = _react.useMemo.call(void 0, () => {
|
|
61101
61204
|
if (chatLoading) return void 0;
|
|
61102
|
-
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
61205
|
+
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1708 => _1708.sources]);
|
|
61103
61206
|
if (!sources || sources.length === 0) return void 0;
|
|
61104
|
-
const content = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
61207
|
+
const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1709 => _1709.content]) || "";
|
|
61105
61208
|
const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
|
|
61106
61209
|
(m) => parseInt(m[1], 10)
|
|
61107
61210
|
);
|
|
@@ -61121,7 +61224,7 @@ function EmbeddableChatInner({
|
|
|
61121
61224
|
const el = panelMeasureRef.current;
|
|
61122
61225
|
if (!el || typeof ResizeObserver === "undefined") return;
|
|
61123
61226
|
const ro = new ResizeObserver((entries) => {
|
|
61124
|
-
const w = _optionalChain([entries, 'access',
|
|
61227
|
+
const w = _optionalChain([entries, 'access', _1710 => _1710[0], 'optionalAccess', _1711 => _1711.contentRect, 'optionalAccess', _1712 => _1712.width]);
|
|
61125
61228
|
if (typeof w === "number") setPanelWidth(w);
|
|
61126
61229
|
});
|
|
61127
61230
|
ro.observe(el);
|
|
@@ -61164,16 +61267,16 @@ function EmbeddableChatInner({
|
|
|
61164
61267
|
const isMingoMode = activeMode === "mingo";
|
|
61165
61268
|
const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen;
|
|
61166
61269
|
const headerShowBack = hasConversation || guideCanReturnToMingo;
|
|
61167
|
-
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess',
|
|
61270
|
+
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1713 => _1713.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats";
|
|
61168
61271
|
const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
|
|
61169
61272
|
const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
|
|
61170
61273
|
const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
|
|
61171
61274
|
const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
|
|
61172
61275
|
const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
|
|
61173
61276
|
const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
|
|
61174
|
-
const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess',
|
|
61175
|
-
const headerPersonName = _optionalChain([headerOwner, 'optionalAccess',
|
|
61176
|
-
const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access',
|
|
61277
|
+
const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1714 => _1714.owner]) : void 0;
|
|
61278
|
+
const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _1715 => _1715.name, 'optionalAccess', _1716 => _1716.trim, 'call', _1717 => _1717()]) || headerUserName;
|
|
61279
|
+
const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _1718 => _1718.avatarUrl, 'optionalAccess', _1719 => _1719.trim, 'call', _1720 => _1720()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _1721 => _1721.avatarUrl, 'optionalAccess', _1722 => _1722.trim, 'call', _1723 => _1723()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _1724 => _1724.trim, 'call', _1725 => _1725()]) || void 0;
|
|
61177
61280
|
const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
|
|
61178
61281
|
const handleNewChat = _react.useCallback.call(void 0, () => {
|
|
61179
61282
|
resetToNewChat();
|
|
@@ -61534,9 +61637,9 @@ function EmbeddableChatInner({
|
|
|
61534
61637
|
subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
|
|
61535
61638
|
subtitleLoading: emptyStateLoading,
|
|
61536
61639
|
...guideWelcome,
|
|
61537
|
-
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
61538
|
-
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
61539
|
-
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess',
|
|
61640
|
+
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1726 => _1726.title]))),
|
|
61641
|
+
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1727 => _1727.icon]))),
|
|
61642
|
+
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1728 => _1728.quickActions]), () => ( guideSuggestedActions)),
|
|
61540
61643
|
onQuickAction: (action) => {
|
|
61541
61644
|
setQuickActionPreview(null);
|
|
61542
61645
|
handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
|
|
@@ -61616,8 +61719,8 @@ function EmbeddableChatInner({
|
|
|
61616
61719
|
selectedContextItems: contextItems,
|
|
61617
61720
|
onToggleContextItem: toggleContextItem,
|
|
61618
61721
|
onRemoveContextItem: removeContextItem,
|
|
61619
|
-
contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess',
|
|
61620
|
-
onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess',
|
|
61722
|
+
contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _1729 => _1729.items]),
|
|
61723
|
+
onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _1730 => _1730.onRemove]),
|
|
61621
61724
|
contextPickerOpen,
|
|
61622
61725
|
onOpenContextPicker: openContextPicker,
|
|
61623
61726
|
onCloseContextPicker: closeContextPicker,
|
|
@@ -62822,4 +62925,4 @@ function EmbeddableChatInner({
|
|
|
62822
62925
|
|
|
62823
62926
|
|
|
62824
62927
|
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.FloatingTooltip = FloatingTooltip; exports.TruncateText = TruncateText; 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.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.formatDate = formatDate2; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; 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.formatEntryMonthUTC = formatEntryMonthUTC; 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.titleCaseFromSlug = titleCaseFromSlug; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; 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 = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalTwoColumn = ModalTwoColumn; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; 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.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; 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.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.MermaidDiagram = MermaidDiagram; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.VideoPlayBadge = VideoPlayBadge; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.fetchPriorityProp = fetchPriorityProp; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.saveDataEnabled = saveDataEnabled; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.GuideDisplay = GuideDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.ICON_ALIASES = ICON_ALIASES; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; exports.EntityIcon = EntityIcon; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.ChatPanelHeader = ChatPanelHeader; 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.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; 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.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo2; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.EmployeeEntryBadge = EmployeeEntryBadge; exports.EmployeeEntryCard = EmployeeEntryCard; exports.EmployeeEntryCardSkeleton = EmployeeEntryCardSkeleton; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.HowIWorkCard = HowIWorkCard; exports.HowIWorkCardSkeleton = HowIWorkCardSkeleton; exports.VideoHoverPreviewSurface = VideoHoverPreviewSurface; exports.CardHitLayer = CardHitLayer; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.UserDisplay = UserDisplay; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; 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.AvatarStack = AvatarStack; 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.programItemToStripProfile = programItemToStripProfile; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; 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.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.readFetchedCardTitle = readFetchedCardTitle; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.clickupTaskUrl = clickupTaskUrl; 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.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.buildDiscussPrompt = buildDiscussPrompt; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.isGuideApproval = isGuideApproval; exports.guideApprovalOrigin = guideApprovalOrigin; exports.approvalDisplaysInline = approvalDisplaysInline; exports.isGuideApprovalSegment = isGuideApprovalSegment; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.useSseChatAdapter = useSseChatAdapter; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.flattenAssistantContent = flattenAssistantContent; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.EmbeddableChat = EmbeddableChat; exports.BackButton = BackButton; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; 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.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; 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.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; 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.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; 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.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; 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.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; 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 = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; 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.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; 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.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; 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.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.SubtitlesEditor = SubtitlesEditor; 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.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; 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.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; 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.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow; exports.MingoAiButton = MingoAiButton; exports.MOBILE_NAV_PANEL_ID = MOBILE_NAV_PANEL_ID; exports.MobileNavPanel = MobileNavPanel; exports.useOptionalTicketLive = useOptionalTicketLive; exports.useTicketLive = useTicketLive; exports.TicketLiveProvider = TicketLiveProvider; exports.isOptimistic = isOptimistic; exports.TICKET_TEXT_MAX_CHARS = TICKET_TEXT_MAX_CHARS; exports.TICKET_MARK_READ_DEBOUNCE_MS = TICKET_MARK_READ_DEBOUNCE_MS; exports.TOAST_COPY = TOAST_COPY; exports.TicketAlertsButton = TicketAlertsButton; exports.TopNavigation = TopNavigation; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NAVIGATION_SIDEBAR_WIDTH_VAR = NAVIGATION_SIDEBAR_WIDTH_VAR; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; 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;
|
|
62825
|
-
//# sourceMappingURL=chunk-
|
|
62928
|
+
//# sourceMappingURL=chunk-I2WN5X6Q.cjs.map
|