@flamingo-stack/openframe-frontend-core 0.0.540-snapshot.20260814144743 → 0.0.540
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-RZWZCDBG.js → chunk-2BKR65LQ.js} +2 -2
- package/dist/{chunk-52FXIY2M.cjs → chunk-4PZEGH6E.cjs} +5 -5
- package/dist/{chunk-52FXIY2M.cjs.map → chunk-4PZEGH6E.cjs.map} +1 -1
- package/dist/{chunk-FESVTVRZ.cjs → chunk-4RXV54PY.cjs} +11 -11
- package/dist/{chunk-FESVTVRZ.cjs.map → chunk-4RXV54PY.cjs.map} +1 -1
- package/dist/{chunk-3KEAUJUU.js → chunk-5W4R3BUR.js} +2 -2
- package/dist/{chunk-4JL2WTIC.cjs → chunk-5ZRO72K4.cjs} +9 -9
- package/dist/{chunk-4JL2WTIC.cjs.map → chunk-5ZRO72K4.cjs.map} +1 -1
- package/dist/{chunk-JWSWACXB.cjs → chunk-6PBD57IZ.cjs} +14 -14
- package/dist/{chunk-JWSWACXB.cjs.map → chunk-6PBD57IZ.cjs.map} +1 -1
- package/dist/{chunk-XFYSYVXN.js → chunk-6WUUZ43M.js} +2 -2
- package/dist/{chunk-T7ZTT7TO.cjs → chunk-75W6ETMW.cjs} +5 -66
- package/dist/chunk-75W6ETMW.cjs.map +1 -0
- package/dist/{chunk-2MO4NEIR.js → chunk-AQO2DWL2.js} +2 -2
- package/dist/{chunk-57K53PKB.cjs → chunk-DC23N4XW.cjs} +26 -26
- package/dist/{chunk-57K53PKB.cjs.map → chunk-DC23N4XW.cjs.map} +1 -1
- package/dist/{chunk-ITUVIG7K.js → chunk-F5R4IMRF.js} +2 -2
- package/dist/{chunk-NJ7QTEJM.cjs → chunk-GRU75FOX.cjs} +26 -26
- package/dist/{chunk-NJ7QTEJM.cjs.map → chunk-GRU75FOX.cjs.map} +1 -1
- package/dist/{chunk-EVJ7DVCI.cjs → chunk-IHGRWAUC.cjs} +61 -61
- package/dist/{chunk-EVJ7DVCI.cjs.map → chunk-IHGRWAUC.cjs.map} +1 -1
- package/dist/{chunk-KRXQVZRX.js → chunk-IP4IZ4PB.js} +5 -5
- package/dist/{chunk-KJZVKS7X.cjs → chunk-IRTAZKWK.cjs} +3 -3
- package/dist/{chunk-KJZVKS7X.cjs.map → chunk-IRTAZKWK.cjs.map} +1 -1
- package/dist/{chunk-A5USNYZA.js → chunk-MKDOZF4C.js} +2 -2
- package/dist/{chunk-VKBGJGYF.cjs → chunk-MXKY67SV.cjs} +37 -37
- package/dist/{chunk-VKBGJGYF.cjs.map → chunk-MXKY67SV.cjs.map} +1 -1
- package/dist/{chunk-NJ42DNRT.cjs → chunk-N24ZUZZZ.cjs} +31 -31
- package/dist/{chunk-NJ42DNRT.cjs.map → chunk-N24ZUZZZ.cjs.map} +1 -1
- package/dist/{chunk-BYKPDIVC.js → chunk-NQSGY5HW.js} +719 -780
- package/dist/chunk-NQSGY5HW.js.map +1 -0
- package/dist/{chunk-6B6RCBVM.cjs → chunk-PV6L6F3T.cjs} +87 -87
- package/dist/{chunk-6B6RCBVM.cjs.map → chunk-PV6L6F3T.cjs.map} +1 -1
- package/dist/{chunk-FUF6YX7H.cjs → chunk-TBMMC4GS.cjs} +7 -7
- package/dist/{chunk-FUF6YX7H.cjs.map → chunk-TBMMC4GS.cjs.map} +1 -1
- package/dist/{chunk-T2NU3GZ7.js → chunk-VUVKZBDO.js} +4 -4
- package/dist/{chunk-QZEEP2FO.js → chunk-VYQLCGFR.js} +4 -4
- package/dist/{chunk-JOQBVXM3.js → chunk-WA3IEPEY.js} +2 -2
- package/dist/{chunk-RNVMGZSM.js → chunk-X5VMEFIA.js} +2 -2
- package/dist/{chunk-HUXNMQD7.js → chunk-XPGB6J75.js} +6 -6
- package/dist/{chunk-J6F4342G.js → chunk-Y5TDZNWA.js} +2 -2
- package/dist/{chunk-COZAC2RY.cjs → chunk-YPTOQDCY.cjs} +4 -4
- package/dist/{chunk-COZAC2RY.cjs.map → chunk-YPTOQDCY.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/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 +132 -134
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +11 -13
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +34 -34
- 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 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +0 -1
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +1 -3
- package/dist/index.cjs +2 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -3
- package/package.json +1 -1
- package/src/components/ui/index.ts +0 -1
- package/dist/chunk-BYKPDIVC.js.map +0 -1
- package/dist/chunk-T7ZTT7TO.cjs.map +0 -1
- package/dist/components/ui/reopen-ticket-request-modal.d.ts +0 -33
- package/dist/components/ui/reopen-ticket-request-modal.d.ts.map +0 -1
- package/src/components/ui/reopen-ticket-request-modal.tsx +0 -112
- package/src/stories/ReopenTicketRequestModal.stories.tsx +0 -90
- /package/dist/{chunk-RZWZCDBG.js.map → chunk-2BKR65LQ.js.map} +0 -0
- /package/dist/{chunk-3KEAUJUU.js.map → chunk-5W4R3BUR.js.map} +0 -0
- /package/dist/{chunk-XFYSYVXN.js.map → chunk-6WUUZ43M.js.map} +0 -0
- /package/dist/{chunk-2MO4NEIR.js.map → chunk-AQO2DWL2.js.map} +0 -0
- /package/dist/{chunk-ITUVIG7K.js.map → chunk-F5R4IMRF.js.map} +0 -0
- /package/dist/{chunk-KRXQVZRX.js.map → chunk-IP4IZ4PB.js.map} +0 -0
- /package/dist/{chunk-A5USNYZA.js.map → chunk-MKDOZF4C.js.map} +0 -0
- /package/dist/{chunk-T2NU3GZ7.js.map → chunk-VUVKZBDO.js.map} +0 -0
- /package/dist/{chunk-QZEEP2FO.js.map → chunk-VYQLCGFR.js.map} +0 -0
- /package/dist/{chunk-JOQBVXM3.js.map → chunk-WA3IEPEY.js.map} +0 -0
- /package/dist/{chunk-RNVMGZSM.js.map → chunk-X5VMEFIA.js.map} +0 -0
- /package/dist/{chunk-HUXNMQD7.js.map → chunk-XPGB6J75.js.map} +0 -0
- /package/dist/{chunk-J6F4342G.js.map → chunk-Y5TDZNWA.js.map} +0 -0
|
@@ -16981,7 +16981,7 @@ function OnboardingGuideCard({
|
|
|
16981
16981
|
}
|
|
16982
16982
|
|
|
16983
16983
|
// src/components/chat/entity-cards/roadmap-card.tsx
|
|
16984
|
-
import { useState as
|
|
16984
|
+
import { useState as useState115 } from "react";
|
|
16985
16985
|
import { ThumbsUp, ThumbsDown } from "lucide-react";
|
|
16986
16986
|
|
|
16987
16987
|
// src/components/chat/entity-cards/roadmap-vote-button.tsx
|
|
@@ -17083,7 +17083,7 @@ function AvatarStack({
|
|
|
17083
17083
|
init_button();
|
|
17084
17084
|
|
|
17085
17085
|
// src/components/ui/image-gallery-modal.tsx
|
|
17086
|
-
import { useState as
|
|
17086
|
+
import { useState as useState114, useEffect as useEffect86 } from "react";
|
|
17087
17087
|
|
|
17088
17088
|
// src/components/ui/allowed-domains-input.tsx
|
|
17089
17089
|
init_cn();
|
|
@@ -48780,70 +48780,10 @@ function ReopenTicketModal({
|
|
|
48780
48780
|
] });
|
|
48781
48781
|
}
|
|
48782
48782
|
|
|
48783
|
-
// src/components/ui/reopen-ticket-request-modal.tsx
|
|
48784
|
-
init_button2();
|
|
48785
|
-
import * as React145 from "react";
|
|
48786
|
-
import { jsx as jsx376, jsxs as jsxs297 } from "react/jsx-runtime";
|
|
48787
|
-
var REASON_MAX_LENGTH2 = 1e3;
|
|
48788
|
-
function ReopenTicketRequestModal({
|
|
48789
|
-
isOpen,
|
|
48790
|
-
onClose,
|
|
48791
|
-
showHandoffOption = false,
|
|
48792
|
-
isPending = false,
|
|
48793
|
-
onConfirm
|
|
48794
|
-
}) {
|
|
48795
|
-
const [reason, setReason] = React145.useState("");
|
|
48796
|
-
const [handoff, setHandoff] = React145.useState(false);
|
|
48797
|
-
React145.useEffect(() => {
|
|
48798
|
-
if (!isOpen) return;
|
|
48799
|
-
setReason("");
|
|
48800
|
-
setHandoff(false);
|
|
48801
|
-
}, [isOpen]);
|
|
48802
|
-
const handleConfirm = () => {
|
|
48803
|
-
if (isPending) return;
|
|
48804
|
-
const trimmedReason = reason.trim();
|
|
48805
|
-
onConfirm({
|
|
48806
|
-
reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH2) : null,
|
|
48807
|
-
...showHandoffOption ? { handoffToTechnician: handoff } : {}
|
|
48808
|
-
});
|
|
48809
|
-
};
|
|
48810
|
-
return /* @__PURE__ */ jsxs297(Modal, { isOpen, onClose: isPending ? () => {
|
|
48811
|
-
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
48812
|
-
/* @__PURE__ */ jsx376(ModalHeader, { children: /* @__PURE__ */ jsx376(ModalTitle, { children: "Reopen Ticket" }) }),
|
|
48813
|
-
/* @__PURE__ */ jsx376("p", { className: "text-h4 text-ods-text-primary", children: "This ticket will be reopened and the AI assistant will continue helping you." }),
|
|
48814
|
-
/* @__PURE__ */ jsx376("div", { className: "w-full", children: /* @__PURE__ */ jsx376(
|
|
48815
|
-
Textarea,
|
|
48816
|
-
{
|
|
48817
|
-
label: "Reason",
|
|
48818
|
-
value: reason,
|
|
48819
|
-
onChange: (event) => setReason(event.target.value),
|
|
48820
|
-
placeholder: "Describe what's still not working (optional)",
|
|
48821
|
-
maxLength: REASON_MAX_LENGTH2,
|
|
48822
|
-
disabled: isPending
|
|
48823
|
-
}
|
|
48824
|
-
) }),
|
|
48825
|
-
showHandoffOption && /* @__PURE__ */ jsx376(
|
|
48826
|
-
CheckboxBlock,
|
|
48827
|
-
{
|
|
48828
|
-
id: "reopen-handoff-to-technician",
|
|
48829
|
-
checked: handoff,
|
|
48830
|
-
onCheckedChange: setHandoff,
|
|
48831
|
-
label: "Hand off to a Technician",
|
|
48832
|
-
description: "A technician will review the ticket and reply when available.",
|
|
48833
|
-
disabled: isPending
|
|
48834
|
-
}
|
|
48835
|
-
),
|
|
48836
|
-
/* @__PURE__ */ jsxs297(ModalFooter, { children: [
|
|
48837
|
-
/* @__PURE__ */ jsx376(Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
|
|
48838
|
-
/* @__PURE__ */ jsx376(Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
|
|
48839
|
-
] })
|
|
48840
|
-
] });
|
|
48841
|
-
}
|
|
48842
|
-
|
|
48843
48783
|
// src/components/ui/filter-pill-row.tsx
|
|
48844
48784
|
init_button2();
|
|
48845
48785
|
import { Filter as Filter2 } from "lucide-react";
|
|
48846
|
-
import { jsx as
|
|
48786
|
+
import { jsx as jsx376, jsxs as jsxs297 } from "react/jsx-runtime";
|
|
48847
48787
|
function FilterPillRow({
|
|
48848
48788
|
label,
|
|
48849
48789
|
selectedValue,
|
|
@@ -48852,12 +48792,12 @@ function FilterPillRow({
|
|
|
48852
48792
|
countLabel,
|
|
48853
48793
|
children
|
|
48854
48794
|
}) {
|
|
48855
|
-
return /* @__PURE__ */
|
|
48856
|
-
/* @__PURE__ */
|
|
48857
|
-
/* @__PURE__ */
|
|
48858
|
-
/* @__PURE__ */
|
|
48795
|
+
return /* @__PURE__ */ jsxs297("div", { className: "flex flex-wrap items-center gap-3 p-4 bg-ods-card border border-ods-border rounded-lg", children: [
|
|
48796
|
+
/* @__PURE__ */ jsxs297("div", { className: "flex items-center gap-2", children: [
|
|
48797
|
+
/* @__PURE__ */ jsx376(Filter2, { className: "h-4 w-4 text-ods-accent" }),
|
|
48798
|
+
/* @__PURE__ */ jsx376("span", { className: "text-h5 text-ods-text-secondary", children: label })
|
|
48859
48799
|
] }),
|
|
48860
|
-
children || options.map((opt) => /* @__PURE__ */
|
|
48800
|
+
children || options.map((opt) => /* @__PURE__ */ jsx376(
|
|
48861
48801
|
Button,
|
|
48862
48802
|
{
|
|
48863
48803
|
type: "button",
|
|
@@ -48869,21 +48809,21 @@ function FilterPillRow({
|
|
|
48869
48809
|
},
|
|
48870
48810
|
opt.value
|
|
48871
48811
|
)),
|
|
48872
|
-
countLabel && /* @__PURE__ */
|
|
48812
|
+
countLabel && /* @__PURE__ */ jsx376("div", { className: "ml-auto text-h6 text-ods-text-secondary shrink-0", children: countLabel })
|
|
48873
48813
|
] });
|
|
48874
48814
|
}
|
|
48875
48815
|
|
|
48876
48816
|
// src/components/ui/image-gallery-modal.tsx
|
|
48877
48817
|
import { ChevronLeft as ChevronLeft4, ChevronRight as ChevronRight8 } from "lucide-react";
|
|
48878
|
-
import { Fragment as Fragment78, jsx as
|
|
48818
|
+
import { Fragment as Fragment78, jsx as jsx377, jsxs as jsxs298 } from "react/jsx-runtime";
|
|
48879
48819
|
function ImageGalleryModal({
|
|
48880
48820
|
images,
|
|
48881
48821
|
isOpen,
|
|
48882
48822
|
onClose,
|
|
48883
48823
|
initialIndex = 0
|
|
48884
48824
|
}) {
|
|
48885
|
-
const [selectedImageIndex, setSelectedImageIndex] =
|
|
48886
|
-
|
|
48825
|
+
const [selectedImageIndex, setSelectedImageIndex] = useState114(initialIndex);
|
|
48826
|
+
useEffect86(() => {
|
|
48887
48827
|
if (isOpen) {
|
|
48888
48828
|
setSelectedImageIndex(initialIndex);
|
|
48889
48829
|
}
|
|
@@ -48898,7 +48838,7 @@ function ImageGalleryModal({
|
|
|
48898
48838
|
setSelectedImageIndex(selectedImageIndex + 1);
|
|
48899
48839
|
}
|
|
48900
48840
|
};
|
|
48901
|
-
|
|
48841
|
+
useEffect86(() => {
|
|
48902
48842
|
const handleKeyPress = (event) => {
|
|
48903
48843
|
if (!isOpen) return;
|
|
48904
48844
|
switch (event.key) {
|
|
@@ -48924,36 +48864,36 @@ function ImageGalleryModal({
|
|
|
48924
48864
|
}
|
|
48925
48865
|
}, [isOpen, selectedImageIndex, images.length]);
|
|
48926
48866
|
if (!isOpen || images.length === 0) return null;
|
|
48927
|
-
return /* @__PURE__ */
|
|
48867
|
+
return /* @__PURE__ */ jsx377(
|
|
48928
48868
|
Modal2,
|
|
48929
48869
|
{
|
|
48930
48870
|
isOpen,
|
|
48931
48871
|
onClose,
|
|
48932
48872
|
className: "max-w-[95vw]",
|
|
48933
|
-
children: /* @__PURE__ */
|
|
48934
|
-
images.length > 1 && /* @__PURE__ */
|
|
48935
|
-
selectedImageIndex > 0 && /* @__PURE__ */
|
|
48873
|
+
children: /* @__PURE__ */ jsxs298("div", { className: "relative flex items-center justify-center bg-black rounded-lg", children: [
|
|
48874
|
+
images.length > 1 && /* @__PURE__ */ jsxs298(Fragment78, { children: [
|
|
48875
|
+
selectedImageIndex > 0 && /* @__PURE__ */ jsx377("div", { className: "absolute left-4 top-1/2 -translate-y-1/2 z-[10000]", children: /* @__PURE__ */ jsx377(
|
|
48936
48876
|
Button,
|
|
48937
48877
|
{
|
|
48938
48878
|
variant: "transparent",
|
|
48939
48879
|
size: "small-legacy",
|
|
48940
48880
|
onClick: goToPreviousImage,
|
|
48941
48881
|
className: "rounded-full bg-black/50 text-white hover:bg-black/70 p-2",
|
|
48942
|
-
leftIcon: /* @__PURE__ */
|
|
48882
|
+
leftIcon: /* @__PURE__ */ jsx377(ChevronLeft4, { className: "w-6 h-6" })
|
|
48943
48883
|
}
|
|
48944
48884
|
) }),
|
|
48945
|
-
selectedImageIndex < images.length - 1 && /* @__PURE__ */
|
|
48885
|
+
selectedImageIndex < images.length - 1 && /* @__PURE__ */ jsx377("div", { className: "absolute right-4 top-1/2 -translate-y-1/2 z-[10000]", children: /* @__PURE__ */ jsx377(
|
|
48946
48886
|
Button,
|
|
48947
48887
|
{
|
|
48948
48888
|
variant: "transparent",
|
|
48949
48889
|
size: "small-legacy",
|
|
48950
48890
|
onClick: goToNextImage,
|
|
48951
48891
|
className: "rounded-full bg-black/50 text-white hover:bg-black/70 p-2",
|
|
48952
|
-
leftIcon: /* @__PURE__ */
|
|
48892
|
+
leftIcon: /* @__PURE__ */ jsx377(ChevronRight8, { className: "w-6 h-6" })
|
|
48953
48893
|
}
|
|
48954
48894
|
) })
|
|
48955
48895
|
] }),
|
|
48956
|
-
images[selectedImageIndex] && /* @__PURE__ */
|
|
48896
|
+
images[selectedImageIndex] && /* @__PURE__ */ jsx377("div", { className: "relative w-[90vw] h-[90vh] max-w-none flex items-center justify-center", children: /* @__PURE__ */ jsx377(
|
|
48957
48897
|
next_image_default,
|
|
48958
48898
|
{
|
|
48959
48899
|
src: images[selectedImageIndex],
|
|
@@ -48983,7 +48923,7 @@ function ImageGalleryModal({
|
|
|
48983
48923
|
}
|
|
48984
48924
|
}
|
|
48985
48925
|
) }),
|
|
48986
|
-
images.length > 1 && /* @__PURE__ */
|
|
48926
|
+
images.length > 1 && /* @__PURE__ */ jsxs298("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 z-[10000] px-4 py-2 rounded-full bg-black/50 text-white text-h6", children: [
|
|
48987
48927
|
selectedImageIndex + 1,
|
|
48988
48928
|
" / ",
|
|
48989
48929
|
images.length
|
|
@@ -49009,7 +48949,7 @@ import {
|
|
|
49009
48949
|
Repeat,
|
|
49010
48950
|
Compass
|
|
49011
48951
|
} from "lucide-react";
|
|
49012
|
-
import { jsx as
|
|
48952
|
+
import { jsx as jsx378 } from "react/jsx-runtime";
|
|
49013
48953
|
function iconFor(customItemId) {
|
|
49014
48954
|
switch (customItemId) {
|
|
49015
48955
|
case CUSTOM_ITEM_ID.BUG:
|
|
@@ -49045,49 +48985,49 @@ function iconFor(customItemId) {
|
|
|
49045
48985
|
}
|
|
49046
48986
|
function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
49047
48987
|
const Icon2 = iconFor(customItemId);
|
|
49048
|
-
return /* @__PURE__ */
|
|
48988
|
+
return /* @__PURE__ */ jsx378(Icon2, { className, "aria-hidden": "true" });
|
|
49049
48989
|
}
|
|
49050
48990
|
|
|
49051
48991
|
// src/components/chat/entity-cards/roadmap-card.tsx
|
|
49052
|
-
import { Fragment as Fragment79, jsx as
|
|
48992
|
+
import { Fragment as Fragment79, jsx as jsx379, jsxs as jsxs299 } from "react/jsx-runtime";
|
|
49053
48993
|
function RoadmapCardSkeleton({ size: size2 = "default" }) {
|
|
49054
48994
|
if (size2 === "sm") {
|
|
49055
|
-
return /* @__PURE__ */
|
|
49056
|
-
/* @__PURE__ */
|
|
49057
|
-
/* @__PURE__ */
|
|
49058
|
-
/* @__PURE__ */
|
|
49059
|
-
/* @__PURE__ */
|
|
49060
|
-
/* @__PURE__ */
|
|
48995
|
+
return /* @__PURE__ */ jsxs299("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
48996
|
+
/* @__PURE__ */ jsx379("span", { className: "block h-12 w-12 aspect-square shrink-0 self-start rounded-md bg-ods-bg border border-ods-border p-1.5" }),
|
|
48997
|
+
/* @__PURE__ */ jsxs299("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
48998
|
+
/* @__PURE__ */ jsxs299("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-2`, children: [
|
|
48999
|
+
/* @__PURE__ */ jsx379("span", { className: "h-3.5 w-1/2 rounded bg-ods-bg" }),
|
|
49000
|
+
/* @__PURE__ */ jsx379("span", { className: "h-4 w-12 rounded bg-ods-bg/70 shrink-0" })
|
|
49061
49001
|
] }),
|
|
49062
|
-
/* @__PURE__ */
|
|
49063
|
-
/* @__PURE__ */
|
|
49064
|
-
/* @__PURE__ */
|
|
49065
|
-
/* @__PURE__ */
|
|
49002
|
+
/* @__PURE__ */ jsxs299("span", { className: `${COMPACT_CARD_META_ROW_BOX} flex-nowrap gap-2`, children: [
|
|
49003
|
+
/* @__PURE__ */ jsx379("span", { className: "h-3 w-2/5 rounded bg-ods-bg/60 flex-1" }),
|
|
49004
|
+
/* @__PURE__ */ jsx379("span", { className: "h-3 w-10 rounded bg-ods-bg/40 shrink-0" }),
|
|
49005
|
+
/* @__PURE__ */ jsx379("span", { className: "h-6 w-14 rounded-full bg-ods-bg/40 shrink-0" })
|
|
49066
49006
|
] }),
|
|
49067
|
-
/* @__PURE__ */
|
|
49007
|
+
/* @__PURE__ */ jsx379("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx379("span", { className: "h-3 w-5/6 rounded bg-ods-bg/40" }) })
|
|
49068
49008
|
] })
|
|
49069
49009
|
] });
|
|
49070
49010
|
}
|
|
49071
|
-
return /* @__PURE__ */
|
|
49072
|
-
/* @__PURE__ */
|
|
49073
|
-
/* @__PURE__ */
|
|
49074
|
-
/* @__PURE__ */
|
|
49075
|
-
/* @__PURE__ */
|
|
49076
|
-
/* @__PURE__ */
|
|
49011
|
+
return /* @__PURE__ */ jsxs299("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-4 h-full animate-pulse", children: [
|
|
49012
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex gap-4 items-center", children: [
|
|
49013
|
+
/* @__PURE__ */ jsx379("div", { className: "w-16 h-16 rounded-lg bg-ods-bg flex-shrink-0" }),
|
|
49014
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex-1 space-y-2", children: [
|
|
49015
|
+
/* @__PURE__ */ jsx379("div", { className: "h-5 w-3/4 bg-ods-bg rounded" }),
|
|
49016
|
+
/* @__PURE__ */ jsx379("div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
|
|
49077
49017
|
] }),
|
|
49078
|
-
/* @__PURE__ */
|
|
49018
|
+
/* @__PURE__ */ jsx379("div", { className: "h-6 w-16 bg-ods-bg rounded" })
|
|
49079
49019
|
] }),
|
|
49080
|
-
/* @__PURE__ */
|
|
49081
|
-
/* @__PURE__ */
|
|
49082
|
-
/* @__PURE__ */
|
|
49083
|
-
/* @__PURE__ */
|
|
49020
|
+
/* @__PURE__ */ jsxs299("div", { className: "space-y-2", children: [
|
|
49021
|
+
/* @__PURE__ */ jsx379("div", { className: "h-3 w-full bg-ods-bg/60 rounded" }),
|
|
49022
|
+
/* @__PURE__ */ jsx379("div", { className: "h-3 w-5/6 bg-ods-bg/60 rounded" }),
|
|
49023
|
+
/* @__PURE__ */ jsx379("div", { className: "h-3 w-4/5 bg-ods-bg/60 rounded" })
|
|
49084
49024
|
] }),
|
|
49085
|
-
/* @__PURE__ */
|
|
49086
|
-
/* @__PURE__ */
|
|
49087
|
-
/* @__PURE__ */
|
|
49088
|
-
/* @__PURE__ */
|
|
49089
|
-
/* @__PURE__ */
|
|
49090
|
-
/* @__PURE__ */
|
|
49025
|
+
/* @__PURE__ */ jsx379("div", { className: "flex-1" }),
|
|
49026
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex items-center justify-between", children: [
|
|
49027
|
+
/* @__PURE__ */ jsx379("div", { className: "h-12 w-32 bg-ods-bg rounded" }),
|
|
49028
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex items-center gap-2", children: [
|
|
49029
|
+
/* @__PURE__ */ jsx379("div", { className: "h-6 w-14 rounded-full bg-ods-bg/60" }),
|
|
49030
|
+
/* @__PURE__ */ jsx379("div", { className: "h-8 w-20 bg-ods-bg rounded" })
|
|
49091
49031
|
] })
|
|
49092
49032
|
] })
|
|
49093
49033
|
] });
|
|
@@ -49112,7 +49052,7 @@ function RoadmapCard({
|
|
|
49112
49052
|
onVote,
|
|
49113
49053
|
isVoting = false
|
|
49114
49054
|
}) {
|
|
49115
|
-
const [showScreenshots, setShowScreenshots] =
|
|
49055
|
+
const [showScreenshots, setShowScreenshots] = useState115(false);
|
|
49116
49056
|
const logoUrl = item.icon && item.icon.startsWith("http") ? item.icon : null;
|
|
49117
49057
|
const iconSrc = logoUrl ? getProxiedImageUrl(logoUrl, { directHttps: true }) || logoUrl : null;
|
|
49118
49058
|
if (size2 === "sm") {
|
|
@@ -49122,13 +49062,13 @@ function RoadmapCard({
|
|
|
49122
49062
|
const hasScreenshots = (item.screenshots?.length ?? 0) > 0;
|
|
49123
49063
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
49124
49064
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
49125
|
-
const body = /* @__PURE__ */
|
|
49126
|
-
/* @__PURE__ */
|
|
49065
|
+
const body = /* @__PURE__ */ jsxs299(Fragment79, { children: [
|
|
49066
|
+
/* @__PURE__ */ jsx379(
|
|
49127
49067
|
"span",
|
|
49128
49068
|
{
|
|
49129
49069
|
className: "flex h-12 w-12 aspect-square shrink-0 self-start items-center justify-center rounded-md overflow-hidden bg-ods-bg border border-ods-border p-1.5 text-ods-accent",
|
|
49130
49070
|
title: typeLabel ?? void 0,
|
|
49131
|
-
children: useTypeIcon ? /* @__PURE__ */
|
|
49071
|
+
children: useTypeIcon ? /* @__PURE__ */ jsx379(TaskTypeIcon, { customItemId: item.customItemId, className: "h-6 w-6" }) : iconSrc ? /* @__PURE__ */ jsx379(
|
|
49132
49072
|
next_image_default,
|
|
49133
49073
|
{
|
|
49134
49074
|
src: iconSrc,
|
|
@@ -49138,13 +49078,13 @@ function RoadmapCard({
|
|
|
49138
49078
|
unoptimized: true,
|
|
49139
49079
|
className: "h-8 w-8 object-contain"
|
|
49140
49080
|
}
|
|
49141
|
-
) : /* @__PURE__ */
|
|
49081
|
+
) : /* @__PURE__ */ jsx379("span", { className: "text-h6 uppercase text-ods-text-secondary", children: item.title?.substring(0, 2) || "??" })
|
|
49142
49082
|
}
|
|
49143
49083
|
),
|
|
49144
|
-
/* @__PURE__ */
|
|
49145
|
-
/* @__PURE__ */
|
|
49146
|
-
/* @__PURE__ */
|
|
49147
|
-
item.status && item.status.trim().length > 0 ? /* @__PURE__ */
|
|
49084
|
+
/* @__PURE__ */ jsxs299("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49085
|
+
/* @__PURE__ */ jsxs299("span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
49086
|
+
/* @__PURE__ */ jsx379("span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
|
|
49087
|
+
item.status && item.status.trim().length > 0 ? /* @__PURE__ */ jsx379(
|
|
49148
49088
|
StatusBadge,
|
|
49149
49089
|
{
|
|
49150
49090
|
text: item.status.toUpperCase(),
|
|
@@ -49155,8 +49095,8 @@ function RoadmapCard({
|
|
|
49155
49095
|
}
|
|
49156
49096
|
) : null
|
|
49157
49097
|
] }),
|
|
49158
|
-
/* @__PURE__ */
|
|
49159
|
-
/* @__PURE__ */
|
|
49098
|
+
/* @__PURE__ */ jsxs299("span", { className: `${COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
|
|
49099
|
+
/* @__PURE__ */ jsx379("span", { className: "truncate text-h6 min-w-0 flex-1", children: (() => {
|
|
49160
49100
|
const parts = [
|
|
49161
49101
|
item.quarter,
|
|
49162
49102
|
item.targetVersion ? `${item.targetVersion} version` : null
|
|
@@ -49170,41 +49110,41 @@ function RoadmapCard({
|
|
|
49170
49110
|
}
|
|
49171
49111
|
return "Roadmap item";
|
|
49172
49112
|
})() }),
|
|
49173
|
-
hasVotes ? /* @__PURE__ */
|
|
49174
|
-
/* @__PURE__ */
|
|
49175
|
-
/* @__PURE__ */
|
|
49176
|
-
/* @__PURE__ */
|
|
49113
|
+
hasVotes ? /* @__PURE__ */ jsxs299("span", { className: "hidden sm:flex items-center gap-2 shrink-0 text-h6 text-ods-text-secondary", children: [
|
|
49114
|
+
/* @__PURE__ */ jsxs299("span", { className: "flex items-center gap-0.5", children: [
|
|
49115
|
+
/* @__PURE__ */ jsx379(ThumbsUp, { className: "h-3 w-3" }),
|
|
49116
|
+
/* @__PURE__ */ jsx379("span", { children: item.upvotes ?? 0 })
|
|
49177
49117
|
] }),
|
|
49178
|
-
/* @__PURE__ */
|
|
49179
|
-
/* @__PURE__ */
|
|
49180
|
-
/* @__PURE__ */
|
|
49118
|
+
/* @__PURE__ */ jsxs299("span", { className: "flex items-center gap-0.5", children: [
|
|
49119
|
+
/* @__PURE__ */ jsx379(ThumbsDown, { className: "h-3 w-3" }),
|
|
49120
|
+
/* @__PURE__ */ jsx379("span", { children: item.downvotes ?? 0 })
|
|
49181
49121
|
] })
|
|
49182
49122
|
] }) : null,
|
|
49183
|
-
hasFigma ? /* @__PURE__ */
|
|
49184
|
-
hasScreenshots ? /* @__PURE__ */
|
|
49123
|
+
hasFigma ? /* @__PURE__ */ jsx379("span", { className: "hidden sm:flex shrink-0 items-center", title: "Has Figma prototype", children: /* @__PURE__ */ jsx379(FigmaIcon, { className: "h-3 w-3" }) }) : null,
|
|
49124
|
+
hasScreenshots ? /* @__PURE__ */ jsxs299(
|
|
49185
49125
|
"span",
|
|
49186
49126
|
{
|
|
49187
49127
|
className: "hidden sm:flex shrink-0 items-center gap-0.5 text-h6",
|
|
49188
49128
|
title: `${item.screenshots.length} screenshot${item.screenshots.length === 1 ? "" : "s"}`,
|
|
49189
49129
|
children: [
|
|
49190
|
-
/* @__PURE__ */
|
|
49191
|
-
/* @__PURE__ */
|
|
49130
|
+
/* @__PURE__ */ jsx379(ImageIcon, { className: "h-3 w-3" }),
|
|
49131
|
+
/* @__PURE__ */ jsx379("span", { children: item.screenshots.length })
|
|
49192
49132
|
]
|
|
49193
49133
|
}
|
|
49194
49134
|
) : null,
|
|
49195
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */
|
|
49135
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ jsx379(AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
|
|
49196
49136
|
] }),
|
|
49197
|
-
/* @__PURE__ */
|
|
49137
|
+
/* @__PURE__ */ jsx379("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx379("span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
|
|
49198
49138
|
] })
|
|
49199
49139
|
] });
|
|
49200
49140
|
if (!compactHref) {
|
|
49201
|
-
return /* @__PURE__ */
|
|
49141
|
+
return /* @__PURE__ */ jsx379("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
49202
49142
|
}
|
|
49203
|
-
return /* @__PURE__ */
|
|
49143
|
+
return /* @__PURE__ */ jsx379("a", { href: compactHref, target, rel, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
49204
49144
|
}
|
|
49205
|
-
return /* @__PURE__ */
|
|
49206
|
-
/* @__PURE__ */
|
|
49207
|
-
/* @__PURE__ */
|
|
49145
|
+
return /* @__PURE__ */ jsxs299("div", { id, className: `bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] hover:border-ods-accent transition-all h-full scroll-mt-24 ${className ?? ""}`, children: [
|
|
49146
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex gap-[16px] items-center w-full", children: [
|
|
49147
|
+
/* @__PURE__ */ jsx379("div", { className: "w-16 h-16 rounded-lg flex items-center justify-center flex-shrink-0 bg-ods-bg border border-ods-border", children: iconSrc ? /* @__PURE__ */ jsx379(
|
|
49208
49148
|
next_image_default,
|
|
49209
49149
|
{
|
|
49210
49150
|
src: iconSrc,
|
|
@@ -49214,16 +49154,16 @@ function RoadmapCard({
|
|
|
49214
49154
|
unoptimized: true,
|
|
49215
49155
|
className: "object-contain p-1"
|
|
49216
49156
|
}
|
|
49217
|
-
) : /* @__PURE__ */
|
|
49218
|
-
/* @__PURE__ */
|
|
49219
|
-
/* @__PURE__ */
|
|
49220
|
-
/* @__PURE__ */
|
|
49157
|
+
) : /* @__PURE__ */ jsx379("span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: item.title?.substring(0, 2) || "??" }) }),
|
|
49158
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
49159
|
+
/* @__PURE__ */ jsx379("div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ jsx379("h3", { className: "text-h3 text-ods-text-primary flex-1 line-clamp-2", children: item.title }) }),
|
|
49160
|
+
/* @__PURE__ */ jsx379("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsxs299("p", { className: "text-h5 text-ods-text-secondary truncate", children: [
|
|
49221
49161
|
item.quarter,
|
|
49222
49162
|
", ",
|
|
49223
49163
|
item.id
|
|
49224
49164
|
] }) })
|
|
49225
49165
|
] }),
|
|
49226
|
-
/* @__PURE__ */
|
|
49166
|
+
/* @__PURE__ */ jsx379("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx379(
|
|
49227
49167
|
StatusBadge,
|
|
49228
49168
|
{
|
|
49229
49169
|
text: item.status.toUpperCase(),
|
|
@@ -49232,7 +49172,7 @@ function RoadmapCard({
|
|
|
49232
49172
|
}
|
|
49233
49173
|
) })
|
|
49234
49174
|
] }),
|
|
49235
|
-
/* @__PURE__ */
|
|
49175
|
+
/* @__PURE__ */ jsx379("div", { className: "md:hidden", children: /* @__PURE__ */ jsx379(
|
|
49236
49176
|
StatusBadge,
|
|
49237
49177
|
{
|
|
49238
49178
|
text: item.status.toUpperCase(),
|
|
@@ -49240,11 +49180,11 @@ function RoadmapCard({
|
|
|
49240
49180
|
className: "border border-ods-border"
|
|
49241
49181
|
}
|
|
49242
49182
|
) }),
|
|
49243
|
-
/* @__PURE__ */
|
|
49244
|
-
/* @__PURE__ */
|
|
49245
|
-
/* @__PURE__ */
|
|
49246
|
-
onVote && /* @__PURE__ */
|
|
49247
|
-
/* @__PURE__ */
|
|
49183
|
+
/* @__PURE__ */ jsx379("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsx379("p", { className: "text-h4 text-ods-text-secondary line-clamp-3", children: item.description || "" }) }),
|
|
49184
|
+
/* @__PURE__ */ jsx379("div", { className: "flex-1" }),
|
|
49185
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex items-center justify-between w-full", children: [
|
|
49186
|
+
onVote && /* @__PURE__ */ jsxs299("div", { className: "bg-ods-card border border-ods-border h-[48px] rounded-[6px] flex overflow-hidden", children: [
|
|
49187
|
+
/* @__PURE__ */ jsx379(
|
|
49248
49188
|
RoadmapVoteButton,
|
|
49249
49189
|
{
|
|
49250
49190
|
voteType: "up",
|
|
@@ -49256,7 +49196,7 @@ function RoadmapCard({
|
|
|
49256
49196
|
disabled: isVoting
|
|
49257
49197
|
}
|
|
49258
49198
|
),
|
|
49259
|
-
/* @__PURE__ */
|
|
49199
|
+
/* @__PURE__ */ jsx379(
|
|
49260
49200
|
RoadmapVoteButton,
|
|
49261
49201
|
{
|
|
49262
49202
|
voteType: "down",
|
|
@@ -49269,31 +49209,31 @@ function RoadmapCard({
|
|
|
49269
49209
|
}
|
|
49270
49210
|
)
|
|
49271
49211
|
] }),
|
|
49272
|
-
/* @__PURE__ */
|
|
49273
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */
|
|
49274
|
-
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */
|
|
49212
|
+
/* @__PURE__ */ jsxs299("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
49213
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ jsx379(AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
|
|
49214
|
+
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ jsx379(
|
|
49275
49215
|
Button,
|
|
49276
49216
|
{
|
|
49277
49217
|
variant: "outline",
|
|
49278
49218
|
size: "small-legacy",
|
|
49279
49219
|
onClick: () => setShowScreenshots(true),
|
|
49280
|
-
leftIcon: /* @__PURE__ */
|
|
49220
|
+
leftIcon: /* @__PURE__ */ jsx379(ImageIcon, { className: "w-5 h-5" })
|
|
49281
49221
|
}
|
|
49282
49222
|
),
|
|
49283
49223
|
(() => {
|
|
49284
49224
|
const figmaSafe = safeHref(item.figmaUrl);
|
|
49285
|
-
return figmaSafe ? /* @__PURE__ */
|
|
49225
|
+
return figmaSafe ? /* @__PURE__ */ jsx379(
|
|
49286
49226
|
Button,
|
|
49287
49227
|
{
|
|
49288
49228
|
variant: "outline",
|
|
49289
49229
|
size: "small-legacy",
|
|
49290
49230
|
openInNewTab: true,
|
|
49291
49231
|
href: figmaSafe,
|
|
49292
|
-
leftIcon: /* @__PURE__ */
|
|
49232
|
+
leftIcon: /* @__PURE__ */ jsx379(FigmaIcon, { className: "w-5 h-5" })
|
|
49293
49233
|
}
|
|
49294
49234
|
) : null;
|
|
49295
49235
|
})(),
|
|
49296
|
-
item.targetVersion && /* @__PURE__ */
|
|
49236
|
+
item.targetVersion && /* @__PURE__ */ jsx379(
|
|
49297
49237
|
StatusBadge,
|
|
49298
49238
|
{
|
|
49299
49239
|
gen: generationTierFromLabel(item.targetVersion),
|
|
@@ -49302,7 +49242,7 @@ function RoadmapCard({
|
|
|
49302
49242
|
)
|
|
49303
49243
|
] })
|
|
49304
49244
|
] }),
|
|
49305
|
-
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */
|
|
49245
|
+
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ jsx379(
|
|
49306
49246
|
ImageGalleryModal,
|
|
49307
49247
|
{
|
|
49308
49248
|
images: item.screenshots,
|
|
@@ -49314,9 +49254,9 @@ function RoadmapCard({
|
|
|
49314
49254
|
}
|
|
49315
49255
|
|
|
49316
49256
|
// src/components/chat/entity-cards/github-activity-card.tsx
|
|
49317
|
-
import
|
|
49257
|
+
import React146 from "react";
|
|
49318
49258
|
import { GitPullRequest, Eye as Eye4, ExternalLink as ExternalLink8 } from "lucide-react";
|
|
49319
|
-
import { Fragment as Fragment80, jsx as
|
|
49259
|
+
import { Fragment as Fragment80, jsx as jsx380, jsxs as jsxs300 } from "react/jsx-runtime";
|
|
49320
49260
|
function parseRepoFromUrl(url) {
|
|
49321
49261
|
if (!url) return null;
|
|
49322
49262
|
try {
|
|
@@ -49331,12 +49271,12 @@ function parseRepoFromUrl(url) {
|
|
|
49331
49271
|
function kindIcon(kind, className = "h-4 w-4") {
|
|
49332
49272
|
switch (kind) {
|
|
49333
49273
|
case "pull_request":
|
|
49334
|
-
return /* @__PURE__ */
|
|
49274
|
+
return /* @__PURE__ */ jsx380(GitPullRequest, { className: `${className} shrink-0` });
|
|
49335
49275
|
case "pr_review":
|
|
49336
|
-
return /* @__PURE__ */
|
|
49276
|
+
return /* @__PURE__ */ jsx380(Eye4, { className: `${className} shrink-0` });
|
|
49337
49277
|
case "commit":
|
|
49338
49278
|
default:
|
|
49339
|
-
return /* @__PURE__ */
|
|
49279
|
+
return /* @__PURE__ */ jsx380(GitHubIcon, { className: `${className} shrink-0` });
|
|
49340
49280
|
}
|
|
49341
49281
|
}
|
|
49342
49282
|
function kindLabel(kind) {
|
|
@@ -49411,7 +49351,7 @@ function reviewStateLabel(state) {
|
|
|
49411
49351
|
}
|
|
49412
49352
|
function ReviewStateBadge({ state, className = "" }) {
|
|
49413
49353
|
const { label, className: paint } = REVIEW_STATE_STYLE[state] ?? REVIEW_STATE_STYLE.COMMENTED;
|
|
49414
|
-
return /* @__PURE__ */
|
|
49354
|
+
return /* @__PURE__ */ jsx380(
|
|
49415
49355
|
"span",
|
|
49416
49356
|
{
|
|
49417
49357
|
className: `inline-flex items-center rounded px-1.5 py-0.5 text-h5 shrink-0 ${paint} ${className}`,
|
|
@@ -49427,46 +49367,46 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
49427
49367
|
const { display: title, reviewState } = parseGithubTitle(item.title, kind);
|
|
49428
49368
|
const primaryText = kind === "pr_review" ? title.replace(/^by\s+/i, "").trim() || "Reviewer" : title;
|
|
49429
49369
|
if (variant === "row") {
|
|
49430
|
-
return /* @__PURE__ */
|
|
49431
|
-
/* @__PURE__ */
|
|
49370
|
+
return /* @__PURE__ */ jsxs300("div", { className: `flex items-center gap-3 min-w-0 ${className ?? ""}`, children: [
|
|
49371
|
+
/* @__PURE__ */ jsxs300("span", { className: "flex items-center gap-2 w-28 shrink-0", children: [
|
|
49432
49372
|
kindIcon(kind, "h-3.5 w-3.5"),
|
|
49433
|
-
/* @__PURE__ */
|
|
49373
|
+
/* @__PURE__ */ jsx380("code", { className: "text-ods-text-secondary text-code truncate", children: idLabel })
|
|
49434
49374
|
] }),
|
|
49435
|
-
/* @__PURE__ */
|
|
49436
|
-
reviewState ? /* @__PURE__ */
|
|
49437
|
-
/* @__PURE__ */
|
|
49375
|
+
/* @__PURE__ */ jsxs300("span", { className: "flex items-center gap-2 text-ods-text-primary text-h6 flex-1 min-w-0", children: [
|
|
49376
|
+
reviewState ? /* @__PURE__ */ jsx380(ReviewStateBadge, { state: reviewState }) : null,
|
|
49377
|
+
/* @__PURE__ */ jsx380("span", { className: "truncate", children: primaryText })
|
|
49438
49378
|
] }),
|
|
49439
|
-
repo ? /* @__PURE__ */
|
|
49440
|
-
dateText ? /* @__PURE__ */
|
|
49379
|
+
repo ? /* @__PURE__ */ jsx380("span", { className: "text-code text-ods-text-secondary truncate max-w-[240px] shrink-0", children: repo }) : null,
|
|
49380
|
+
dateText ? /* @__PURE__ */ jsx380("span", { className: "text-ods-text-secondary text-h6 w-24 shrink-0 text-right", children: dateText }) : null
|
|
49441
49381
|
] });
|
|
49442
49382
|
}
|
|
49443
49383
|
const metaParts = [];
|
|
49444
49384
|
metaParts.push(
|
|
49445
|
-
/* @__PURE__ */
|
|
49385
|
+
/* @__PURE__ */ jsx380("span", { className: "text-h6 uppercase", children: kindLabel(kind) }, "kind")
|
|
49446
49386
|
);
|
|
49447
|
-
if (idLabel) metaParts.push(/* @__PURE__ */
|
|
49448
|
-
if (repo) metaParts.push(/* @__PURE__ */
|
|
49449
|
-
if (dateText) metaParts.push(/* @__PURE__ */
|
|
49387
|
+
if (idLabel) metaParts.push(/* @__PURE__ */ jsx380("code", { className: "font-mono", children: idLabel }, "id"));
|
|
49388
|
+
if (repo) metaParts.push(/* @__PURE__ */ jsx380("span", { className: "font-mono truncate", children: repo }, "repo"));
|
|
49389
|
+
if (dateText) metaParts.push(/* @__PURE__ */ jsx380("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
49450
49390
|
const href = safeHref(item.url);
|
|
49451
|
-
const body = /* @__PURE__ */
|
|
49452
|
-
/* @__PURE__ */
|
|
49453
|
-
/* @__PURE__ */
|
|
49454
|
-
/* @__PURE__ */
|
|
49455
|
-
reviewState ? /* @__PURE__ */
|
|
49456
|
-
/* @__PURE__ */
|
|
49391
|
+
const body = /* @__PURE__ */ jsxs300(Fragment80, { children: [
|
|
49392
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
|
|
49393
|
+
/* @__PURE__ */ jsxs300("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49394
|
+
/* @__PURE__ */ jsxs300("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
|
|
49395
|
+
reviewState ? /* @__PURE__ */ jsx380(ReviewStateBadge, { state: reviewState }) : null,
|
|
49396
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_TITLE, children: primaryText })
|
|
49457
49397
|
] }),
|
|
49458
|
-
/* @__PURE__ */
|
|
49459
|
-
i > 0 ? /* @__PURE__ */
|
|
49460
|
-
/* @__PURE__ */
|
|
49398
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ jsxs300(React146.Fragment, { children: [
|
|
49399
|
+
i > 0 ? /* @__PURE__ */ jsx380("span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
49400
|
+
/* @__PURE__ */ jsx380("span", { className: "min-w-0 truncate", children: part })
|
|
49461
49401
|
] }, i)) }) }),
|
|
49462
|
-
/* @__PURE__ */
|
|
49402
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) })
|
|
49463
49403
|
] }),
|
|
49464
|
-
href ? /* @__PURE__ */
|
|
49404
|
+
href ? /* @__PURE__ */ jsx380("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx380(ExternalLink8, { className: "w-3.5 h-3.5" }) }) : null
|
|
49465
49405
|
] });
|
|
49466
49406
|
if (anchorProps) {
|
|
49467
|
-
return /* @__PURE__ */
|
|
49407
|
+
return /* @__PURE__ */ jsx380("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
49468
49408
|
}
|
|
49469
|
-
return href ? /* @__PURE__ */
|
|
49409
|
+
return href ? /* @__PURE__ */ jsx380(
|
|
49470
49410
|
"a",
|
|
49471
49411
|
{
|
|
49472
49412
|
href,
|
|
@@ -49475,35 +49415,35 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
49475
49415
|
className: `${COMPACT_CARD_OUTER} ${className ?? ""}`,
|
|
49476
49416
|
children: body
|
|
49477
49417
|
}
|
|
49478
|
-
) : /* @__PURE__ */
|
|
49418
|
+
) : /* @__PURE__ */ jsx380("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
49479
49419
|
}
|
|
49480
49420
|
function GitHubActivityCardSkeleton({ variant = "compact", className }) {
|
|
49481
49421
|
if (variant === "row") {
|
|
49482
|
-
return /* @__PURE__ */
|
|
49483
|
-
/* @__PURE__ */
|
|
49484
|
-
/* @__PURE__ */
|
|
49485
|
-
/* @__PURE__ */
|
|
49422
|
+
return /* @__PURE__ */ jsxs300("div", { className: `flex items-center gap-3 min-w-0 animate-pulse ${className ?? ""}`, children: [
|
|
49423
|
+
/* @__PURE__ */ jsxs300("div", { className: "flex items-center gap-2 w-28 shrink-0", children: [
|
|
49424
|
+
/* @__PURE__ */ jsx380("div", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }),
|
|
49425
|
+
/* @__PURE__ */ jsx380("div", { className: "h-3 w-16 bg-ods-bg rounded" })
|
|
49486
49426
|
] }),
|
|
49487
|
-
/* @__PURE__ */
|
|
49488
|
-
/* @__PURE__ */
|
|
49489
|
-
/* @__PURE__ */
|
|
49427
|
+
/* @__PURE__ */ jsx380("div", { className: "h-3 w-2/3 bg-ods-bg rounded flex-1" }),
|
|
49428
|
+
/* @__PURE__ */ jsx380("div", { className: "h-3 w-40 bg-ods-bg/60 rounded shrink-0" }),
|
|
49429
|
+
/* @__PURE__ */ jsx380("div", { className: "h-3 w-20 bg-ods-bg/60 rounded shrink-0" })
|
|
49490
49430
|
] });
|
|
49491
49431
|
}
|
|
49492
|
-
return /* @__PURE__ */
|
|
49493
|
-
/* @__PURE__ */
|
|
49494
|
-
/* @__PURE__ */
|
|
49495
|
-
/* @__PURE__ */
|
|
49496
|
-
/* @__PURE__ */
|
|
49497
|
-
/* @__PURE__ */
|
|
49432
|
+
return /* @__PURE__ */ jsxs300("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
49433
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
49434
|
+
/* @__PURE__ */ jsxs300("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49435
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx380("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
|
|
49436
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx380("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
|
|
49437
|
+
/* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx380("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) })
|
|
49498
49438
|
] }),
|
|
49499
|
-
/* @__PURE__ */
|
|
49439
|
+
/* @__PURE__ */ jsx380("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx380("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
49500
49440
|
] });
|
|
49501
49441
|
}
|
|
49502
49442
|
|
|
49503
49443
|
// src/components/chat/entity-cards/slack-message-card.tsx
|
|
49504
|
-
import
|
|
49444
|
+
import React147 from "react";
|
|
49505
49445
|
import { ExternalLink as ExternalLink9, Hash } from "lucide-react";
|
|
49506
|
-
import { Fragment as Fragment81, jsx as
|
|
49446
|
+
import { Fragment as Fragment81, jsx as jsx381, jsxs as jsxs301 } from "react/jsx-runtime";
|
|
49507
49447
|
function parseChannelFromUrl(url) {
|
|
49508
49448
|
if (!url) return null;
|
|
49509
49449
|
try {
|
|
@@ -49520,44 +49460,44 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
49520
49460
|
const channel = item.channel ?? parseChannelFromUrl(item.url) ?? null;
|
|
49521
49461
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
49522
49462
|
if (variant === "row") {
|
|
49523
|
-
return /* @__PURE__ */
|
|
49524
|
-
/* @__PURE__ */
|
|
49525
|
-
/* @__PURE__ */
|
|
49526
|
-
item.preview ? /* @__PURE__ */
|
|
49527
|
-
channel ? /* @__PURE__ */
|
|
49528
|
-
/* @__PURE__ */
|
|
49463
|
+
return /* @__PURE__ */ jsxs301("div", { className: `flex items-center gap-3 min-w-0 ${className ?? ""}`, children: [
|
|
49464
|
+
/* @__PURE__ */ jsx381(SlackIcon, { className: "h-3.5 w-3.5 shrink-0" }),
|
|
49465
|
+
/* @__PURE__ */ jsx381("span", { className: "text-ods-text-primary text-h6 truncate max-w-[180px] shrink-0", children: item.title }),
|
|
49466
|
+
item.preview ? /* @__PURE__ */ jsx381("span", { className: "text-ods-text-secondary text-h6 flex-1 min-w-0 truncate", children: item.preview }) : null,
|
|
49467
|
+
channel ? /* @__PURE__ */ jsxs301("span", { className: "text-code text-ods-text-secondary truncate max-w-[140px] shrink-0", children: [
|
|
49468
|
+
/* @__PURE__ */ jsx381(Hash, { className: "inline h-3 w-3" }),
|
|
49529
49469
|
channel
|
|
49530
49470
|
] }) : null,
|
|
49531
|
-
dateText ? /* @__PURE__ */
|
|
49471
|
+
dateText ? /* @__PURE__ */ jsx381("span", { className: "text-ods-text-secondary text-h6 w-24 shrink-0 text-right", children: dateText }) : null
|
|
49532
49472
|
] });
|
|
49533
49473
|
}
|
|
49534
49474
|
const metaParts = [];
|
|
49535
49475
|
if (channel) {
|
|
49536
49476
|
metaParts.push(
|
|
49537
|
-
/* @__PURE__ */
|
|
49538
|
-
/* @__PURE__ */
|
|
49539
|
-
/* @__PURE__ */
|
|
49477
|
+
/* @__PURE__ */ jsxs301("span", { className: "flex items-center gap-0.5 min-w-0", children: [
|
|
49478
|
+
/* @__PURE__ */ jsx381(Hash, { className: "h-3 w-3 shrink-0" }),
|
|
49479
|
+
/* @__PURE__ */ jsx381("span", { className: "truncate font-mono", children: channel })
|
|
49540
49480
|
] }, "channel")
|
|
49541
49481
|
);
|
|
49542
49482
|
}
|
|
49543
|
-
if (dateText) metaParts.push(/* @__PURE__ */
|
|
49483
|
+
if (dateText) metaParts.push(/* @__PURE__ */ jsx381("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
49544
49484
|
const href = safeHref(item.url);
|
|
49545
|
-
const body = /* @__PURE__ */
|
|
49546
|
-
/* @__PURE__ */
|
|
49547
|
-
/* @__PURE__ */
|
|
49548
|
-
/* @__PURE__ */
|
|
49549
|
-
/* @__PURE__ */
|
|
49550
|
-
/* @__PURE__ */
|
|
49551
|
-
i > 0 ? /* @__PURE__ */
|
|
49552
|
-
/* @__PURE__ */
|
|
49553
|
-
] }, i)) : /* @__PURE__ */
|
|
49485
|
+
const body = /* @__PURE__ */ jsxs301(Fragment81, { children: [
|
|
49486
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx381(SlackIcon, { className: "h-5 w-5" }) }),
|
|
49487
|
+
/* @__PURE__ */ jsxs301("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49488
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
|
|
49489
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_SUMMARY, children: item.preview || COMPACT_CARD_ROW_FILLER }) }),
|
|
49490
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ jsxs301(React147.Fragment, { children: [
|
|
49491
|
+
i > 0 ? /* @__PURE__ */ jsx381("span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
49492
|
+
/* @__PURE__ */ jsx381("span", { className: "min-w-0 truncate", children: part })
|
|
49493
|
+
] }, i)) : /* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) }) })
|
|
49554
49494
|
] }),
|
|
49555
|
-
href ? /* @__PURE__ */
|
|
49495
|
+
href ? /* @__PURE__ */ jsx381("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx381(ExternalLink9, { className: "w-3.5 h-3.5" }) }) : null
|
|
49556
49496
|
] });
|
|
49557
49497
|
if (anchorProps) {
|
|
49558
|
-
return /* @__PURE__ */
|
|
49498
|
+
return /* @__PURE__ */ jsx381("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
49559
49499
|
}
|
|
49560
|
-
return href ? /* @__PURE__ */
|
|
49500
|
+
return href ? /* @__PURE__ */ jsx381(
|
|
49561
49501
|
"a",
|
|
49562
49502
|
{
|
|
49563
49503
|
href,
|
|
@@ -49566,33 +49506,33 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
49566
49506
|
className: `${COMPACT_CARD_OUTER} ${className ?? ""}`,
|
|
49567
49507
|
children: body
|
|
49568
49508
|
}
|
|
49569
|
-
) : /* @__PURE__ */
|
|
49509
|
+
) : /* @__PURE__ */ jsx381("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
49570
49510
|
}
|
|
49571
49511
|
function SlackMessageCardSkeleton({ variant = "compact", className }) {
|
|
49572
49512
|
if (variant === "row") {
|
|
49573
|
-
return /* @__PURE__ */
|
|
49574
|
-
/* @__PURE__ */
|
|
49575
|
-
/* @__PURE__ */
|
|
49576
|
-
/* @__PURE__ */
|
|
49577
|
-
/* @__PURE__ */
|
|
49578
|
-
/* @__PURE__ */
|
|
49513
|
+
return /* @__PURE__ */ jsxs301("div", { className: `flex items-center gap-3 min-w-0 animate-pulse ${className ?? ""}`, children: [
|
|
49514
|
+
/* @__PURE__ */ jsx381("div", { className: "h-3.5 w-3.5 rounded bg-ods-bg shrink-0" }),
|
|
49515
|
+
/* @__PURE__ */ jsx381("div", { className: "h-3 w-32 bg-ods-bg rounded shrink-0" }),
|
|
49516
|
+
/* @__PURE__ */ jsx381("div", { className: "h-3 w-2/3 bg-ods-bg/60 rounded flex-1" }),
|
|
49517
|
+
/* @__PURE__ */ jsx381("div", { className: "h-3 w-24 bg-ods-bg/60 rounded shrink-0" }),
|
|
49518
|
+
/* @__PURE__ */ jsx381("div", { className: "h-3 w-20 bg-ods-bg/60 rounded shrink-0" })
|
|
49579
49519
|
] });
|
|
49580
49520
|
}
|
|
49581
|
-
return /* @__PURE__ */
|
|
49582
|
-
/* @__PURE__ */
|
|
49583
|
-
/* @__PURE__ */
|
|
49584
|
-
/* @__PURE__ */
|
|
49585
|
-
/* @__PURE__ */
|
|
49586
|
-
/* @__PURE__ */
|
|
49521
|
+
return /* @__PURE__ */ jsxs301("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
49522
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
49523
|
+
/* @__PURE__ */ jsxs301("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49524
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx381("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
|
|
49525
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx381("span", { className: "h-3 w-5/6 rounded bg-ods-bg/60" }) }),
|
|
49526
|
+
/* @__PURE__ */ jsx381("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx381("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
|
|
49587
49527
|
] }),
|
|
49588
|
-
/* @__PURE__ */
|
|
49528
|
+
/* @__PURE__ */ jsx381("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx381("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
49589
49529
|
] });
|
|
49590
49530
|
}
|
|
49591
49531
|
|
|
49592
49532
|
// src/components/chat/entity-cards/hubspot-ticket-card.tsx
|
|
49593
|
-
import
|
|
49533
|
+
import React148 from "react";
|
|
49594
49534
|
import { ExternalLink as ExternalLink10 } from "lucide-react";
|
|
49595
|
-
import { Fragment as Fragment82, jsx as
|
|
49535
|
+
import { Fragment as Fragment82, jsx as jsx382, jsxs as jsxs302 } from "react/jsx-runtime";
|
|
49596
49536
|
function formatToken(token) {
|
|
49597
49537
|
if (!token) return null;
|
|
49598
49538
|
const lower = token.toLowerCase().replace(/_/g, " ");
|
|
@@ -49616,26 +49556,26 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
49616
49556
|
const priorityText = formatToken(item.priority);
|
|
49617
49557
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
49618
49558
|
if (variant === "row") {
|
|
49619
|
-
return /* @__PURE__ */
|
|
49620
|
-
/* @__PURE__ */
|
|
49621
|
-
item.preview ? /* @__PURE__ */
|
|
49622
|
-
statusText ? /* @__PURE__ */
|
|
49623
|
-
dateText ? /* @__PURE__ */
|
|
49559
|
+
return /* @__PURE__ */ jsxs302("div", { className: `flex items-center gap-3 min-w-0 ${className ?? ""}`, children: [
|
|
49560
|
+
/* @__PURE__ */ jsx382("span", { className: "text-ods-text-primary text-h6 truncate max-w-[260px] shrink-0", children: item.title }),
|
|
49561
|
+
item.preview ? /* @__PURE__ */ jsx382("span", { className: "text-ods-text-secondary text-h6 flex-1 min-w-0 truncate", children: item.preview }) : null,
|
|
49562
|
+
statusText ? /* @__PURE__ */ jsx382(StatusBadge, { text: statusText, variant: "button", colorScheme: statusScheme(item.status) }) : null,
|
|
49563
|
+
dateText ? /* @__PURE__ */ jsx382("span", { className: "text-ods-text-secondary text-h6 w-24 shrink-0 text-right", children: dateText }) : null
|
|
49624
49564
|
] });
|
|
49625
49565
|
}
|
|
49626
49566
|
const metaParts = [];
|
|
49627
49567
|
if (item.customerCompany) {
|
|
49628
49568
|
metaParts.push(
|
|
49629
|
-
/* @__PURE__ */
|
|
49569
|
+
/* @__PURE__ */ jsx382("span", { className: "min-w-0 truncate", children: item.customerCompany }, "company")
|
|
49630
49570
|
);
|
|
49631
49571
|
}
|
|
49632
|
-
if (dateText) metaParts.push(/* @__PURE__ */
|
|
49572
|
+
if (dateText) metaParts.push(/* @__PURE__ */ jsx382("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
49633
49573
|
const href = safeHref(item.url);
|
|
49634
|
-
const body = /* @__PURE__ */
|
|
49635
|
-
/* @__PURE__ */
|
|
49636
|
-
/* @__PURE__ */
|
|
49637
|
-
/* @__PURE__ */
|
|
49638
|
-
priorityText ? /* @__PURE__ */
|
|
49574
|
+
const body = /* @__PURE__ */ jsxs302(Fragment82, { children: [
|
|
49575
|
+
/* @__PURE__ */ jsxs302("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49576
|
+
/* @__PURE__ */ jsxs302("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
49577
|
+
/* @__PURE__ */ jsx382("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
49578
|
+
priorityText ? /* @__PURE__ */ jsx382(
|
|
49639
49579
|
StatusBadge,
|
|
49640
49580
|
{
|
|
49641
49581
|
text: priorityText,
|
|
@@ -49644,7 +49584,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
49644
49584
|
className: "shrink-0"
|
|
49645
49585
|
}
|
|
49646
49586
|
) : null,
|
|
49647
|
-
statusText ? /* @__PURE__ */
|
|
49587
|
+
statusText ? /* @__PURE__ */ jsx382(
|
|
49648
49588
|
StatusBadge,
|
|
49649
49589
|
{
|
|
49650
49590
|
text: statusText,
|
|
@@ -49654,22 +49594,22 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
49654
49594
|
}
|
|
49655
49595
|
) : null
|
|
49656
49596
|
] }),
|
|
49657
|
-
item.customerEmail ? /* @__PURE__ */
|
|
49658
|
-
/* @__PURE__ */
|
|
49659
|
-
/* @__PURE__ */
|
|
49597
|
+
item.customerEmail ? /* @__PURE__ */ jsxs302("span", { className: "flex min-w-0 items-center gap-1 text-h6 text-ods-text-secondary", children: [
|
|
49598
|
+
/* @__PURE__ */ jsx382("span", { className: "shrink-0 text-ods-text-secondary/70", children: "From:" }),
|
|
49599
|
+
/* @__PURE__ */ jsx382("span", { className: "min-w-0 truncate", children: item.customerEmail })
|
|
49660
49600
|
] }) : null,
|
|
49661
|
-
/* @__PURE__ */
|
|
49662
|
-
metaParts.length > 0 ? /* @__PURE__ */
|
|
49663
|
-
i > 0 ? /* @__PURE__ */
|
|
49664
|
-
/* @__PURE__ */
|
|
49601
|
+
/* @__PURE__ */ jsx382("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx382("span", { className: "line-clamp-4 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary", children: item.preview || /* @__PURE__ */ jsx382("span", { className: "italic text-ods-text-secondary/60", children: "No description provided." }) }) }),
|
|
49602
|
+
metaParts.length > 0 ? /* @__PURE__ */ jsx382("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx382("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ jsxs302(React148.Fragment, { children: [
|
|
49603
|
+
i > 0 ? /* @__PURE__ */ jsx382("span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
49604
|
+
/* @__PURE__ */ jsx382("span", { className: "min-w-0 truncate", children: part })
|
|
49665
49605
|
] }, i)) }) }) : null
|
|
49666
49606
|
] }),
|
|
49667
|
-
href ? /* @__PURE__ */
|
|
49607
|
+
href ? /* @__PURE__ */ jsx382("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx382(ExternalLink10, { className: "w-3.5 h-3.5" }) }) : null
|
|
49668
49608
|
] });
|
|
49669
49609
|
if (anchorProps) {
|
|
49670
|
-
return /* @__PURE__ */
|
|
49610
|
+
return /* @__PURE__ */ jsx382("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
49671
49611
|
}
|
|
49672
|
-
return href ? /* @__PURE__ */
|
|
49612
|
+
return href ? /* @__PURE__ */ jsx382(
|
|
49673
49613
|
"a",
|
|
49674
49614
|
{
|
|
49675
49615
|
href,
|
|
@@ -49678,79 +49618,79 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
49678
49618
|
className: `${COMPACT_CARD_OUTER} ${className ?? ""}`,
|
|
49679
49619
|
children: body
|
|
49680
49620
|
}
|
|
49681
|
-
) : /* @__PURE__ */
|
|
49621
|
+
) : /* @__PURE__ */ jsx382("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
49682
49622
|
}
|
|
49683
49623
|
function HubspotTicketCardSkeleton({ variant = "compact", className }) {
|
|
49684
49624
|
if (variant === "row") {
|
|
49685
|
-
return /* @__PURE__ */
|
|
49686
|
-
/* @__PURE__ */
|
|
49687
|
-
/* @__PURE__ */
|
|
49688
|
-
/* @__PURE__ */
|
|
49689
|
-
/* @__PURE__ */
|
|
49625
|
+
return /* @__PURE__ */ jsxs302("div", { className: `flex items-center gap-3 min-w-0 animate-pulse ${className ?? ""}`, children: [
|
|
49626
|
+
/* @__PURE__ */ jsx382("div", { className: "h-3 w-40 bg-ods-bg rounded shrink-0" }),
|
|
49627
|
+
/* @__PURE__ */ jsx382("div", { className: "h-3 w-2/3 bg-ods-bg/60 rounded flex-1" }),
|
|
49628
|
+
/* @__PURE__ */ jsx382("div", { className: "h-3 w-16 bg-ods-bg/60 rounded shrink-0" }),
|
|
49629
|
+
/* @__PURE__ */ jsx382("div", { className: "h-3 w-20 bg-ods-bg/60 rounded shrink-0" })
|
|
49690
49630
|
] });
|
|
49691
49631
|
}
|
|
49692
|
-
return /* @__PURE__ */
|
|
49693
|
-
/* @__PURE__ */
|
|
49694
|
-
/* @__PURE__ */
|
|
49695
|
-
/* @__PURE__ */
|
|
49696
|
-
/* @__PURE__ */
|
|
49697
|
-
/* @__PURE__ */
|
|
49632
|
+
return /* @__PURE__ */ jsxs302("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
49633
|
+
/* @__PURE__ */ jsxs302("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49634
|
+
/* @__PURE__ */ jsxs302("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
49635
|
+
/* @__PURE__ */ jsx382("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
49636
|
+
/* @__PURE__ */ jsx382("span", { className: "h-4 w-12 rounded-full bg-ods-bg/60" }),
|
|
49637
|
+
/* @__PURE__ */ jsx382("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
49698
49638
|
] }),
|
|
49699
|
-
/* @__PURE__ */
|
|
49700
|
-
/* @__PURE__ */
|
|
49701
|
-
/* @__PURE__ */
|
|
49702
|
-
/* @__PURE__ */
|
|
49703
|
-
/* @__PURE__ */
|
|
49704
|
-
/* @__PURE__ */
|
|
49639
|
+
/* @__PURE__ */ jsx382("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
49640
|
+
/* @__PURE__ */ jsxs302("span", { className: "flex flex-col gap-0 min-w-0", children: [
|
|
49641
|
+
/* @__PURE__ */ jsx382("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
49642
|
+
/* @__PURE__ */ jsx382("span", { className: "h-5 w-4/6 rounded bg-ods-bg/60" }),
|
|
49643
|
+
/* @__PURE__ */ jsx382("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" }),
|
|
49644
|
+
/* @__PURE__ */ jsx382("span", { className: "h-5 w-2/5 rounded bg-ods-bg/60" })
|
|
49705
49645
|
] }),
|
|
49706
|
-
/* @__PURE__ */
|
|
49646
|
+
/* @__PURE__ */ jsx382("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx382("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
|
|
49707
49647
|
] }),
|
|
49708
|
-
/* @__PURE__ */
|
|
49648
|
+
/* @__PURE__ */ jsx382("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx382("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
49709
49649
|
] });
|
|
49710
49650
|
}
|
|
49711
49651
|
|
|
49712
49652
|
// src/components/chat/entity-cards/data-room-doc-card.tsx
|
|
49713
49653
|
import { ExternalLink as ExternalLink11 } from "lucide-react";
|
|
49714
|
-
import { Fragment as Fragment83, jsx as
|
|
49654
|
+
import { Fragment as Fragment83, jsx as jsx383, jsxs as jsxs303 } from "react/jsx-runtime";
|
|
49715
49655
|
function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
49716
|
-
const body = /* @__PURE__ */
|
|
49717
|
-
/* @__PURE__ */
|
|
49718
|
-
/* @__PURE__ */
|
|
49719
|
-
/* @__PURE__ */
|
|
49720
|
-
/* @__PURE__ */
|
|
49656
|
+
const body = /* @__PURE__ */ jsxs303(Fragment83, { children: [
|
|
49657
|
+
/* @__PURE__ */ jsxs303("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49658
|
+
/* @__PURE__ */ jsxs303("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
49659
|
+
/* @__PURE__ */ jsx383("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
49660
|
+
/* @__PURE__ */ jsx383(StatusBadge, { text: badgeText, variant: "button", colorScheme: "cyan", className: "shrink-0" })
|
|
49721
49661
|
] }),
|
|
49722
|
-
item.path ? /* @__PURE__ */
|
|
49723
|
-
/* @__PURE__ */
|
|
49724
|
-
/* @__PURE__ */
|
|
49662
|
+
item.path ? /* @__PURE__ */ jsxs303("span", { className: "flex min-w-0 items-center gap-1 text-h6 text-ods-text-secondary", children: [
|
|
49663
|
+
/* @__PURE__ */ jsx383("span", { className: "shrink-0 text-ods-text-secondary/70", children: "Path:" }),
|
|
49664
|
+
/* @__PURE__ */ jsx383("span", { className: "min-w-0 truncate font-mono", children: item.path })
|
|
49725
49665
|
] }) : null,
|
|
49726
|
-
item.preview ? /* @__PURE__ */
|
|
49666
|
+
item.preview ? /* @__PURE__ */ jsx383("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx383("span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary", children: item.preview }) }) : null
|
|
49727
49667
|
] }),
|
|
49728
|
-
anchorProps?.href ? /* @__PURE__ */
|
|
49668
|
+
anchorProps?.href ? /* @__PURE__ */ jsx383("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx383(ExternalLink11, { className: "w-3.5 h-3.5" }) }) : null
|
|
49729
49669
|
] });
|
|
49730
49670
|
if (!anchorProps) {
|
|
49731
|
-
return /* @__PURE__ */
|
|
49671
|
+
return /* @__PURE__ */ jsx383("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
49732
49672
|
}
|
|
49733
|
-
return /* @__PURE__ */
|
|
49673
|
+
return /* @__PURE__ */ jsx383("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
49734
49674
|
}
|
|
49735
49675
|
function DataRoomDocCardSkeleton({ className }) {
|
|
49736
|
-
return /* @__PURE__ */
|
|
49737
|
-
/* @__PURE__ */
|
|
49738
|
-
/* @__PURE__ */
|
|
49739
|
-
/* @__PURE__ */
|
|
49740
|
-
/* @__PURE__ */
|
|
49676
|
+
return /* @__PURE__ */ jsxs303("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
49677
|
+
/* @__PURE__ */ jsxs303("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
49678
|
+
/* @__PURE__ */ jsxs303("span", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
49679
|
+
/* @__PURE__ */ jsx383("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
49680
|
+
/* @__PURE__ */ jsx383("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
49741
49681
|
] }),
|
|
49742
|
-
/* @__PURE__ */
|
|
49743
|
-
/* @__PURE__ */
|
|
49744
|
-
/* @__PURE__ */
|
|
49745
|
-
/* @__PURE__ */
|
|
49682
|
+
/* @__PURE__ */ jsx383("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
49683
|
+
/* @__PURE__ */ jsxs303("span", { className: "flex flex-col gap-0 min-w-0", children: [
|
|
49684
|
+
/* @__PURE__ */ jsx383("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
49685
|
+
/* @__PURE__ */ jsx383("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" })
|
|
49746
49686
|
] })
|
|
49747
49687
|
] }),
|
|
49748
|
-
/* @__PURE__ */
|
|
49688
|
+
/* @__PURE__ */ jsx383("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx383("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
49749
49689
|
] });
|
|
49750
49690
|
}
|
|
49751
49691
|
|
|
49752
49692
|
// src/components/chat/entity-cards/program-card.tsx
|
|
49753
|
-
import { useState as
|
|
49693
|
+
import { useState as useState116 } from "react";
|
|
49754
49694
|
|
|
49755
49695
|
// node_modules/date-fns/toDate.mjs
|
|
49756
49696
|
function toDate2(argument) {
|
|
@@ -51323,42 +51263,42 @@ function cleanEscapedString(input) {
|
|
|
51323
51263
|
init_button();
|
|
51324
51264
|
import { ExternalLink as ExternalLink12, Clock as Clock2, Play as Play4, Video as Video5 } from "lucide-react";
|
|
51325
51265
|
init_cn();
|
|
51326
|
-
import { Fragment as Fragment84, jsx as
|
|
51266
|
+
import { Fragment as Fragment84, jsx as jsx384, jsxs as jsxs304 } from "react/jsx-runtime";
|
|
51327
51267
|
function formatUtc(date, fmt) {
|
|
51328
51268
|
return format2(new Date(date.getTime() + date.getTimezoneOffset() * 6e4), fmt);
|
|
51329
51269
|
}
|
|
51330
51270
|
function ProgramCardSkeleton({ size: size2 = "default" }) {
|
|
51331
51271
|
if (size2 === "sm") {
|
|
51332
|
-
return /* @__PURE__ */
|
|
51333
|
-
/* @__PURE__ */
|
|
51334
|
-
/* @__PURE__ */
|
|
51335
|
-
/* @__PURE__ */
|
|
51336
|
-
/* @__PURE__ */
|
|
51337
|
-
/* @__PURE__ */
|
|
51272
|
+
return /* @__PURE__ */ jsxs304("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
51273
|
+
/* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
51274
|
+
/* @__PURE__ */ jsxs304("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
51275
|
+
/* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx384("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
|
|
51276
|
+
/* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx384("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
|
|
51277
|
+
/* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx384("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
|
|
51338
51278
|
] }),
|
|
51339
|
-
/* @__PURE__ */
|
|
51279
|
+
/* @__PURE__ */ jsx384("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx384("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
51340
51280
|
] });
|
|
51341
51281
|
}
|
|
51342
|
-
return /* @__PURE__ */
|
|
51282
|
+
return /* @__PURE__ */ jsxs304(
|
|
51343
51283
|
"div",
|
|
51344
51284
|
{
|
|
51345
51285
|
className: "border border-ods-border rounded-lg overflow-hidden flex flex-col animate-pulse",
|
|
51346
51286
|
style: { backgroundColor: "var(--ods-system-greys-black)" },
|
|
51347
51287
|
children: [
|
|
51348
|
-
/* @__PURE__ */
|
|
51349
|
-
/* @__PURE__ */
|
|
51350
|
-
/* @__PURE__ */
|
|
51351
|
-
/* @__PURE__ */
|
|
51352
|
-
/* @__PURE__ */
|
|
51353
|
-
/* @__PURE__ */
|
|
51354
|
-
/* @__PURE__ */
|
|
51355
|
-
/* @__PURE__ */
|
|
51356
|
-
/* @__PURE__ */
|
|
51357
|
-
/* @__PURE__ */
|
|
51288
|
+
/* @__PURE__ */ jsx384("div", { className: "p-6 flex-1", children: /* @__PURE__ */ jsxs304("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
51289
|
+
/* @__PURE__ */ jsx384("div", { className: "w-full md:w-[180px] h-[180px] bg-ods-bg rounded-lg flex-shrink-0" }),
|
|
51290
|
+
/* @__PURE__ */ jsxs304("div", { className: "flex-1 min-w-0 flex flex-col gap-3", children: [
|
|
51291
|
+
/* @__PURE__ */ jsx384("div", { className: "h-7 w-3/4 bg-ods-bg rounded" }),
|
|
51292
|
+
/* @__PURE__ */ jsx384("div", { className: "h-7 w-1/2 bg-ods-bg rounded" }),
|
|
51293
|
+
/* @__PURE__ */ jsx384("div", { className: "h-4 w-1/3 bg-ods-bg/60 rounded" }),
|
|
51294
|
+
/* @__PURE__ */ jsxs304("div", { className: "space-y-2", children: [
|
|
51295
|
+
/* @__PURE__ */ jsx384("div", { className: "h-3 w-full bg-ods-bg/60 rounded" }),
|
|
51296
|
+
/* @__PURE__ */ jsx384("div", { className: "h-3 w-5/6 bg-ods-bg/60 rounded" }),
|
|
51297
|
+
/* @__PURE__ */ jsx384("div", { className: "h-3 w-4/5 bg-ods-bg/60 rounded" })
|
|
51358
51298
|
] })
|
|
51359
51299
|
] })
|
|
51360
51300
|
] }) }),
|
|
51361
|
-
/* @__PURE__ */
|
|
51301
|
+
/* @__PURE__ */ jsx384("div", { className: "p-6 pt-0 mt-auto", children: /* @__PURE__ */ jsx384("div", { className: "pt-4 border-t border-ods-border", children: /* @__PURE__ */ jsx384("div", { className: "h-9 w-40 bg-ods-bg rounded" }) }) })
|
|
51362
51302
|
]
|
|
51363
51303
|
}
|
|
51364
51304
|
);
|
|
@@ -51387,8 +51327,8 @@ function getHosts(hosts) {
|
|
|
51387
51327
|
return [];
|
|
51388
51328
|
}
|
|
51389
51329
|
function MediaGallery({ images, title }) {
|
|
51390
|
-
const [selectedImageIndex, setSelectedImageIndex] =
|
|
51391
|
-
const [isModalOpen, setIsModalOpen] =
|
|
51330
|
+
const [selectedImageIndex, setSelectedImageIndex] = useState116(null);
|
|
51331
|
+
const [isModalOpen, setIsModalOpen] = useState116(false);
|
|
51392
51332
|
const openImageModal = (index, event) => {
|
|
51393
51333
|
if (event) event.stopPropagation();
|
|
51394
51334
|
setSelectedImageIndex(index);
|
|
@@ -51398,14 +51338,14 @@ function MediaGallery({ images, title }) {
|
|
|
51398
51338
|
setIsModalOpen(false);
|
|
51399
51339
|
setSelectedImageIndex(null);
|
|
51400
51340
|
};
|
|
51401
|
-
return /* @__PURE__ */
|
|
51402
|
-
/* @__PURE__ */
|
|
51341
|
+
return /* @__PURE__ */ jsxs304(Fragment84, { children: [
|
|
51342
|
+
/* @__PURE__ */ jsx384("div", { className: "p-6 pt-4", children: /* @__PURE__ */ jsx384("div", { className: "overflow-x-auto mb-4", children: /* @__PURE__ */ jsx384("div", { className: "flex gap-3 pb-2", style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ jsxs304(
|
|
51403
51343
|
"div",
|
|
51404
51344
|
{
|
|
51405
51345
|
className: "flex-shrink-0 w-24 h-24 relative rounded-md overflow-hidden cursor-pointer group/thumb",
|
|
51406
51346
|
onClick: (e) => openImageModal(index, e),
|
|
51407
51347
|
children: [
|
|
51408
|
-
/* @__PURE__ */
|
|
51348
|
+
/* @__PURE__ */ jsx384(
|
|
51409
51349
|
next_image_default,
|
|
51410
51350
|
{
|
|
51411
51351
|
src: mediaItem.media_url,
|
|
@@ -51417,12 +51357,12 @@ function MediaGallery({ images, title }) {
|
|
|
51417
51357
|
unoptimized: true
|
|
51418
51358
|
}
|
|
51419
51359
|
),
|
|
51420
|
-
/* @__PURE__ */
|
|
51360
|
+
/* @__PURE__ */ jsx384("div", { className: "absolute inset-0 bg-black/20 opacity-0 group-hover/thumb:opacity-100 transition-opacity duration-200 flex items-center justify-center", children: /* @__PURE__ */ jsx384("div", { className: "w-6 h-6 rounded-full bg-white/90 flex items-center justify-center", children: /* @__PURE__ */ jsx384("span", { className: "text-black text-sm", children: "+" }) }) })
|
|
51421
51361
|
]
|
|
51422
51362
|
},
|
|
51423
51363
|
mediaItem.id
|
|
51424
51364
|
)) }) }) }),
|
|
51425
|
-
/* @__PURE__ */
|
|
51365
|
+
/* @__PURE__ */ jsx384(
|
|
51426
51366
|
ImageGalleryModal,
|
|
51427
51367
|
{
|
|
51428
51368
|
images: images.map((img) => img.media_url),
|
|
@@ -51489,7 +51429,7 @@ function ProgramCard({
|
|
|
51489
51429
|
if (size2 === "portrait") {
|
|
51490
51430
|
const profile = programItemToStripProfile(item);
|
|
51491
51431
|
const dateMeta = [compactDate, compactTypeMeta()].filter(Boolean).join(" \xB7 ");
|
|
51492
|
-
return /* @__PURE__ */
|
|
51432
|
+
return /* @__PURE__ */ jsx384(
|
|
51493
51433
|
EntityPortraitCard,
|
|
51494
51434
|
{
|
|
51495
51435
|
href,
|
|
@@ -51513,9 +51453,9 @@ function ProgramCard({
|
|
|
51513
51453
|
const subtitleParts = [itemDate2, typeMeta, config.labels?.singular].filter(
|
|
51514
51454
|
(s) => typeof s === "string" && s.length > 0
|
|
51515
51455
|
);
|
|
51516
|
-
return /* @__PURE__ */
|
|
51517
|
-
/* @__PURE__ */
|
|
51518
|
-
compactCover ? /* @__PURE__ */
|
|
51456
|
+
return /* @__PURE__ */ jsxs304("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
|
|
51457
|
+
/* @__PURE__ */ jsxs304("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
51458
|
+
compactCover ? /* @__PURE__ */ jsx384(
|
|
51519
51459
|
next_image_default,
|
|
51520
51460
|
{
|
|
51521
51461
|
src: compactCover,
|
|
@@ -51525,39 +51465,39 @@ function ProgramCard({
|
|
|
51525
51465
|
className: "object-contain",
|
|
51526
51466
|
unoptimized: true
|
|
51527
51467
|
}
|
|
51528
|
-
) : /* @__PURE__ */
|
|
51529
|
-
config.type === "podcast" && !isScheduled && compactCover && /* @__PURE__ */
|
|
51468
|
+
) : /* @__PURE__ */ jsx384("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: config.type === "podcast" ? /* @__PURE__ */ jsx384(Play4, { className: "w-4 h-4" }) : config.type === "webinar" ? /* @__PURE__ */ jsx384(Video5, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx384(Clock2, { className: "w-4 h-4" }) }),
|
|
51469
|
+
config.type === "podcast" && !isScheduled && compactCover && /* @__PURE__ */ jsx384("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx384(Play4, { className: "w-4 h-4 text-ods-text-on-dark", fill: "white" }) })
|
|
51530
51470
|
] }),
|
|
51531
|
-
/* @__PURE__ */
|
|
51532
|
-
/* @__PURE__ */
|
|
51533
|
-
/* @__PURE__ */
|
|
51534
|
-
/* @__PURE__ */
|
|
51471
|
+
/* @__PURE__ */ jsxs304("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
51472
|
+
/* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx384("span", { className: cn(COMPACT_CARD_TITLE, "font-heading"), children: item.title }) }),
|
|
51473
|
+
/* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx384("span", { className: "truncate text-h6 text-ods-accent", children: subtitleParts.join(" \xB7 ") }) }),
|
|
51474
|
+
/* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx384("span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
|
|
51535
51475
|
] }),
|
|
51536
|
-
/* @__PURE__ */
|
|
51476
|
+
/* @__PURE__ */ jsx384("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx384(ExternalLink12, { className: "w-3.5 h-3.5" }) })
|
|
51537
51477
|
] });
|
|
51538
51478
|
}
|
|
51539
51479
|
const itemDate = new Date(item.date);
|
|
51540
51480
|
const dateFormat = formatUtc(itemDate, "EEEE d MMMM");
|
|
51541
51481
|
const defaultRenderMeta = () => {
|
|
51542
51482
|
if (config.type === "podcast" && "duration_seconds" in item && !isScheduled) {
|
|
51543
|
-
return /* @__PURE__ */
|
|
51544
|
-
/* @__PURE__ */
|
|
51545
|
-
/* @__PURE__ */
|
|
51483
|
+
return /* @__PURE__ */ jsxs304(Fragment84, { children: [
|
|
51484
|
+
/* @__PURE__ */ jsx384(Clock2, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
51485
|
+
/* @__PURE__ */ jsx384("span", { className: "font-body text-ods-text-secondary", children: formatDurationCompact(item.duration_seconds) })
|
|
51546
51486
|
] });
|
|
51547
51487
|
}
|
|
51548
51488
|
if (config.type === "event" && "location_name" in item) {
|
|
51549
|
-
return /* @__PURE__ */
|
|
51489
|
+
return /* @__PURE__ */ jsx384("span", { className: "font-body text-ods-text-secondary", children: item.location_name || "Location TBD" });
|
|
51550
51490
|
}
|
|
51551
51491
|
if (config.type === "webinar" && "start_at" in item) {
|
|
51552
51492
|
const webinarItem = item;
|
|
51553
51493
|
const duration = formatDurationFromRange(webinarItem.start_at, webinarItem.end_at);
|
|
51554
|
-
return /* @__PURE__ */
|
|
51555
|
-
/* @__PURE__ */
|
|
51556
|
-
/* @__PURE__ */
|
|
51494
|
+
return /* @__PURE__ */ jsxs304(Fragment84, { children: [
|
|
51495
|
+
/* @__PURE__ */ jsx384(Video5, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
51496
|
+
/* @__PURE__ */ jsxs304("span", { className: "font-body text-ods-text-secondary", children: [
|
|
51557
51497
|
formatTimeWithTimezone(webinarItem.start_at, webinarItem.timezone ?? null),
|
|
51558
51498
|
duration && ` \xB7 ${duration}`
|
|
51559
51499
|
] }),
|
|
51560
|
-
webinarItem.timezone && /* @__PURE__ */
|
|
51500
|
+
webinarItem.timezone && /* @__PURE__ */ jsxs304("span", { className: "text-h6 text-ods-text-secondary", children: [
|
|
51561
51501
|
"(",
|
|
51562
51502
|
webinarItem.timezone,
|
|
51563
51503
|
")"
|
|
@@ -51566,9 +51506,9 @@ function ProgramCard({
|
|
|
51566
51506
|
}
|
|
51567
51507
|
return null;
|
|
51568
51508
|
};
|
|
51569
|
-
const cardHeader = /* @__PURE__ */
|
|
51570
|
-
coverImage && /* @__PURE__ */
|
|
51571
|
-
/* @__PURE__ */
|
|
51509
|
+
const cardHeader = /* @__PURE__ */ jsx384("div", { className: "p-6 border-ods-border flex-1", children: /* @__PURE__ */ jsxs304("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
51510
|
+
coverImage && /* @__PURE__ */ jsx384("div", { className: "w-full md:w-[180px] flex-shrink-0 flex items-center", children: /* @__PURE__ */ jsxs304("div", { className: "relative rounded-lg overflow-hidden", children: [
|
|
51511
|
+
/* @__PURE__ */ jsx384(
|
|
51572
51512
|
next_image_default,
|
|
51573
51513
|
{
|
|
51574
51514
|
src: coverImage,
|
|
@@ -51579,23 +51519,23 @@ function ProgramCard({
|
|
|
51579
51519
|
unoptimized: true
|
|
51580
51520
|
}
|
|
51581
51521
|
),
|
|
51582
|
-
config.type === "podcast" && !isScheduled && /* @__PURE__ */
|
|
51522
|
+
config.type === "podcast" && !isScheduled && /* @__PURE__ */ jsx384("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity rounded-lg", children: /* @__PURE__ */ jsx384(Play4, { className: "w-10 h-10 text-ods-text-on-dark", fill: "white" }) })
|
|
51583
51523
|
] }) }),
|
|
51584
|
-
/* @__PURE__ */
|
|
51585
|
-
/* @__PURE__ */
|
|
51586
|
-
/* @__PURE__ */
|
|
51587
|
-
/* @__PURE__ */
|
|
51588
|
-
renderMeta ? /* @__PURE__ */
|
|
51589
|
-
/* @__PURE__ */
|
|
51524
|
+
/* @__PURE__ */ jsxs304("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
51525
|
+
/* @__PURE__ */ jsx384("h3", { className: "text-h2 text-ods-text-primary mb-3 min-h-[3rem] md:min-h-[3.5rem] line-clamp-2 flex items-center", children: item.title }),
|
|
51526
|
+
/* @__PURE__ */ jsxs304("div", { className: "flex flex-col md:flex-row md:items-center gap-2 md:gap-4 mb-4", children: [
|
|
51527
|
+
/* @__PURE__ */ jsx384("span", { className: "text-h6", style: { color: accentColor }, children: dateFormat }),
|
|
51528
|
+
renderMeta ? /* @__PURE__ */ jsxs304(Fragment84, { children: [
|
|
51529
|
+
/* @__PURE__ */ jsx384("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
51590
51530
|
renderMeta(item)
|
|
51591
|
-
] }) : defaultRenderMeta() && /* @__PURE__ */
|
|
51592
|
-
/* @__PURE__ */
|
|
51593
|
-
/* @__PURE__ */
|
|
51531
|
+
] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs304(Fragment84, { children: [
|
|
51532
|
+
/* @__PURE__ */ jsx384("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
51533
|
+
/* @__PURE__ */ jsx384("div", { className: "flex items-center gap-2", children: defaultRenderMeta() })
|
|
51594
51534
|
] })
|
|
51595
51535
|
] }),
|
|
51596
|
-
/* @__PURE__ */
|
|
51536
|
+
/* @__PURE__ */ jsx384("div", { className: "flex-1", children: /* @__PURE__ */ jsx384("p", { className: "text-h6 text-ods-text-secondary line-clamp-3 min-h-[4.5rem]", children: item.description }) })
|
|
51597
51537
|
] }),
|
|
51598
|
-
hosts.length > 0 && /* @__PURE__ */
|
|
51538
|
+
hosts.length > 0 && /* @__PURE__ */ jsx384("div", { className: "md:text-right", children: /* @__PURE__ */ jsx384("div", { className: "flex flex-wrap md:justify-end gap-2", children: hosts.map((host, index) => /* @__PURE__ */ jsx384(
|
|
51599
51539
|
SquareAvatar,
|
|
51600
51540
|
{
|
|
51601
51541
|
variant: "round",
|
|
@@ -51613,7 +51553,7 @@ function ProgramCard({
|
|
|
51613
51553
|
);
|
|
51614
51554
|
const cardFrameStyle = { backgroundColor: "var(--ods-system-greys-black)" };
|
|
51615
51555
|
if (wholeCardClickable) {
|
|
51616
|
-
return /* @__PURE__ */
|
|
51556
|
+
return /* @__PURE__ */ jsxs304(
|
|
51617
51557
|
"a",
|
|
51618
51558
|
{
|
|
51619
51559
|
href,
|
|
@@ -51624,8 +51564,8 @@ function ProgramCard({
|
|
|
51624
51564
|
"aria-label": `Open ${item.title}`,
|
|
51625
51565
|
children: [
|
|
51626
51566
|
cardHeader,
|
|
51627
|
-
images.length > 0 && /* @__PURE__ */
|
|
51628
|
-
/* @__PURE__ */
|
|
51567
|
+
images.length > 0 && /* @__PURE__ */ jsx384(MediaGallery, { images, title: item.title }),
|
|
51568
|
+
/* @__PURE__ */ jsx384("div", { className: "p-6 pt-0 mt-auto", children: /* @__PURE__ */ jsx384("div", { className: "pt-4 border-t border-ods-border", children: /* @__PURE__ */ jsxs304(
|
|
51629
51569
|
"span",
|
|
51630
51570
|
{
|
|
51631
51571
|
className: "inline-flex items-center gap-2 px-4 py-2 rounded-md border border-ods-accent text-ods-accent text-h6",
|
|
@@ -51634,7 +51574,7 @@ function ProgramCard({
|
|
|
51634
51574
|
"View ",
|
|
51635
51575
|
config.labels.singular,
|
|
51636
51576
|
" Details",
|
|
51637
|
-
/* @__PURE__ */
|
|
51577
|
+
/* @__PURE__ */ jsx384(ExternalLink12, { className: "w-5 h-5" })
|
|
51638
51578
|
]
|
|
51639
51579
|
}
|
|
51640
51580
|
) }) })
|
|
@@ -51642,17 +51582,17 @@ function ProgramCard({
|
|
|
51642
51582
|
}
|
|
51643
51583
|
);
|
|
51644
51584
|
}
|
|
51645
|
-
return /* @__PURE__ */
|
|
51646
|
-
/* @__PURE__ */
|
|
51647
|
-
images.length > 0 && /* @__PURE__ */
|
|
51648
|
-
/* @__PURE__ */
|
|
51585
|
+
return /* @__PURE__ */ jsxs304("div", { className: cardFrameClass, style: cardFrameStyle, children: [
|
|
51586
|
+
/* @__PURE__ */ jsx384("a", { href, target, rel, className: "block", "aria-label": `Open ${item.title}`, children: cardHeader }),
|
|
51587
|
+
images.length > 0 && /* @__PURE__ */ jsx384(MediaGallery, { images, title: item.title }),
|
|
51588
|
+
/* @__PURE__ */ jsx384("div", { className: "p-6 pt-0 mt-auto", children: /* @__PURE__ */ jsx384("div", { className: "pt-4 border-t border-ods-border", children: /* @__PURE__ */ jsxs304(
|
|
51649
51589
|
Button,
|
|
51650
51590
|
{
|
|
51651
51591
|
variant: "outline",
|
|
51652
51592
|
size: "small-legacy",
|
|
51653
51593
|
href,
|
|
51654
51594
|
openInNewTab: target === "_blank",
|
|
51655
|
-
rightIcon: /* @__PURE__ */
|
|
51595
|
+
rightIcon: /* @__PURE__ */ jsx384(ExternalLink12, { className: "w-5 h-5" }),
|
|
51656
51596
|
children: [
|
|
51657
51597
|
"View ",
|
|
51658
51598
|
config.labels.singular,
|
|
@@ -51665,48 +51605,48 @@ function ProgramCard({
|
|
|
51665
51605
|
|
|
51666
51606
|
// src/components/chat/entity-cards/campaign-card-admin.tsx
|
|
51667
51607
|
import { Megaphone as Megaphone3 } from "lucide-react";
|
|
51668
|
-
import { Fragment as Fragment85, jsx as
|
|
51608
|
+
import { Fragment as Fragment85, jsx as jsx385, jsxs as jsxs305 } from "react/jsx-runtime";
|
|
51669
51609
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
51670
51610
|
const goalsCount = campaign.goals?.length || 0;
|
|
51671
|
-
const innerChildren = /* @__PURE__ */
|
|
51672
|
-
/* @__PURE__ */
|
|
51673
|
-
/* @__PURE__ */
|
|
51674
|
-
/* @__PURE__ */
|
|
51675
|
-
/* @__PURE__ */
|
|
51611
|
+
const innerChildren = /* @__PURE__ */ jsxs305(Fragment85, { children: [
|
|
51612
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx385(Megaphone3, { className: "h-5 w-5" }) }),
|
|
51613
|
+
/* @__PURE__ */ jsxs305("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
51614
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_TITLE, children: campaign.name }) }),
|
|
51615
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_SUBTITLE, children: [
|
|
51676
51616
|
campaign.start_date ? formatDateShort(campaign.start_date) : null,
|
|
51677
51617
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
51678
51618
|
"Marketing campaign"
|
|
51679
51619
|
].filter(Boolean).join(" \xB7 ") }) }),
|
|
51680
|
-
/* @__PURE__ */
|
|
51620
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_SUMMARY, children: campaign.description || COMPACT_CARD_ROW_FILLER }) })
|
|
51681
51621
|
] })
|
|
51682
51622
|
] });
|
|
51683
51623
|
if (anchorProps) {
|
|
51684
|
-
return /* @__PURE__ */
|
|
51624
|
+
return /* @__PURE__ */ jsx385("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: innerChildren });
|
|
51685
51625
|
}
|
|
51686
|
-
return /* @__PURE__ */
|
|
51626
|
+
return /* @__PURE__ */ jsx385("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: innerChildren });
|
|
51687
51627
|
}
|
|
51688
51628
|
function CampaignCardAdminSkeleton({ className }) {
|
|
51689
|
-
return /* @__PURE__ */
|
|
51690
|
-
/* @__PURE__ */
|
|
51691
|
-
/* @__PURE__ */
|
|
51692
|
-
/* @__PURE__ */
|
|
51693
|
-
/* @__PURE__ */
|
|
51694
|
-
/* @__PURE__ */
|
|
51629
|
+
return /* @__PURE__ */ jsxs305("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
51630
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
51631
|
+
/* @__PURE__ */ jsxs305("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
51632
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx385("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
|
|
51633
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx385("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
|
|
51634
|
+
/* @__PURE__ */ jsx385("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx385("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
|
|
51695
51635
|
] })
|
|
51696
51636
|
] });
|
|
51697
51637
|
}
|
|
51698
51638
|
|
|
51699
51639
|
// src/components/chat/entity-cards/generic-entity-card.tsx
|
|
51700
51640
|
import { ExternalLink as ExternalLink13 } from "lucide-react";
|
|
51701
|
-
import { Fragment as Fragment86, jsx as
|
|
51641
|
+
import { Fragment as Fragment86, jsx as jsx386, jsxs as jsxs306 } from "react/jsx-runtime";
|
|
51702
51642
|
function GenericEntityCard({ item, className, anchorProps }) {
|
|
51703
51643
|
const href = safeHref(item.url);
|
|
51704
51644
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
51705
|
-
const body = /* @__PURE__ */
|
|
51706
|
-
/* @__PURE__ */
|
|
51707
|
-
/* @__PURE__ */
|
|
51708
|
-
/* @__PURE__ */
|
|
51709
|
-
item.badge ? /* @__PURE__ */
|
|
51645
|
+
const body = /* @__PURE__ */ jsxs306(Fragment86, { children: [
|
|
51646
|
+
/* @__PURE__ */ jsxs306("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
51647
|
+
/* @__PURE__ */ jsxs306("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
51648
|
+
/* @__PURE__ */ jsx386("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
51649
|
+
item.badge ? /* @__PURE__ */ jsx386(
|
|
51710
51650
|
StatusBadge,
|
|
51711
51651
|
{
|
|
51712
51652
|
text: item.badge.text,
|
|
@@ -51716,44 +51656,44 @@ function GenericEntityCard({ item, className, anchorProps }) {
|
|
|
51716
51656
|
}
|
|
51717
51657
|
) : null
|
|
51718
51658
|
] }),
|
|
51719
|
-
item.subtitle ? /* @__PURE__ */
|
|
51720
|
-
item.preview ? /* @__PURE__ */
|
|
51721
|
-
item.facts && item.facts.length > 0 ? /* @__PURE__ */
|
|
51722
|
-
/* @__PURE__ */
|
|
51659
|
+
item.subtitle ? /* @__PURE__ */ jsx386("span", { className: "flex min-w-0 items-center gap-1 text-h6 text-ods-text-secondary", children: /* @__PURE__ */ jsx386("span", { className: "min-w-0 truncate font-mono", children: item.subtitle }) }) : null,
|
|
51660
|
+
item.preview ? /* @__PURE__ */ jsx386("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx386("span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary", children: item.preview }) }) : null,
|
|
51661
|
+
item.facts && item.facts.length > 0 ? /* @__PURE__ */ jsx386("span", { className: "flex flex-wrap items-center gap-x-3 gap-y-0.5 min-w-0 text-h6", children: item.facts.map((f, i) => /* @__PURE__ */ jsxs306("span", { className: "inline-flex items-center gap-1 min-w-0 truncate", children: [
|
|
51662
|
+
/* @__PURE__ */ jsxs306("span", { className: "text-ods-text-secondary/70 shrink-0", children: [
|
|
51723
51663
|
f.label,
|
|
51724
51664
|
":"
|
|
51725
51665
|
] }),
|
|
51726
|
-
/* @__PURE__ */
|
|
51666
|
+
/* @__PURE__ */ jsx386("span", { className: "text-ods-text-primary font-medium truncate", children: f.value })
|
|
51727
51667
|
] }, i)) }) : null,
|
|
51728
|
-
dateText ? /* @__PURE__ */
|
|
51668
|
+
dateText ? /* @__PURE__ */ jsx386("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx386("span", { className: COMPACT_CARD_META_ROW, children: /* @__PURE__ */ jsx386("span", { className: "whitespace-nowrap", children: dateText }) }) }) : null
|
|
51729
51669
|
] }),
|
|
51730
|
-
href ? /* @__PURE__ */
|
|
51670
|
+
href ? /* @__PURE__ */ jsx386("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx386(ExternalLink13, { className: "w-3.5 h-3.5" }) }) : null
|
|
51731
51671
|
] });
|
|
51732
51672
|
if (anchorProps) {
|
|
51733
|
-
return /* @__PURE__ */
|
|
51673
|
+
return /* @__PURE__ */ jsx386("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
51734
51674
|
}
|
|
51735
|
-
return href ? /* @__PURE__ */
|
|
51675
|
+
return href ? /* @__PURE__ */ jsx386("a", { href, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body }) : /* @__PURE__ */ jsx386("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
51736
51676
|
}
|
|
51737
51677
|
function GenericEntityCardSkeleton({ className }) {
|
|
51738
|
-
return /* @__PURE__ */
|
|
51739
|
-
/* @__PURE__ */
|
|
51740
|
-
/* @__PURE__ */
|
|
51741
|
-
/* @__PURE__ */
|
|
51742
|
-
/* @__PURE__ */
|
|
51678
|
+
return /* @__PURE__ */ jsxs306("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
51679
|
+
/* @__PURE__ */ jsxs306("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
51680
|
+
/* @__PURE__ */ jsxs306("span", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
51681
|
+
/* @__PURE__ */ jsx386("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
51682
|
+
/* @__PURE__ */ jsx386("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
51743
51683
|
] }),
|
|
51744
|
-
/* @__PURE__ */
|
|
51745
|
-
/* @__PURE__ */
|
|
51746
|
-
/* @__PURE__ */
|
|
51747
|
-
/* @__PURE__ */
|
|
51684
|
+
/* @__PURE__ */ jsx386("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
51685
|
+
/* @__PURE__ */ jsxs306("span", { className: "flex flex-col gap-0 min-w-0", children: [
|
|
51686
|
+
/* @__PURE__ */ jsx386("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
51687
|
+
/* @__PURE__ */ jsx386("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" })
|
|
51748
51688
|
] }),
|
|
51749
|
-
/* @__PURE__ */
|
|
51689
|
+
/* @__PURE__ */ jsx386("span", { className: "h-3 w-1/4 rounded bg-ods-bg/70" })
|
|
51750
51690
|
] }),
|
|
51751
|
-
/* @__PURE__ */
|
|
51691
|
+
/* @__PURE__ */ jsx386("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx386("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
51752
51692
|
] });
|
|
51753
51693
|
}
|
|
51754
51694
|
|
|
51755
51695
|
// src/components/chat/entity-cards/dispatch.tsx
|
|
51756
|
-
import
|
|
51696
|
+
import React150 from "react";
|
|
51757
51697
|
init_next_navigation();
|
|
51758
51698
|
|
|
51759
51699
|
// src/components/chat/hooks/use-chat-card-item.ts
|
|
@@ -51940,14 +51880,14 @@ function resolveFetchedCardHref({
|
|
|
51940
51880
|
|
|
51941
51881
|
// src/components/chat/entity-cards/deleted-data-card.tsx
|
|
51942
51882
|
import { Trash2 as Trash27 } from "lucide-react";
|
|
51943
|
-
import { jsx as
|
|
51883
|
+
import { jsx as jsx387, jsxs as jsxs307 } from "react/jsx-runtime";
|
|
51944
51884
|
function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
|
|
51945
51885
|
const label = entityLabel || "Item";
|
|
51946
|
-
return /* @__PURE__ */
|
|
51947
|
-
/* @__PURE__ */
|
|
51948
|
-
/* @__PURE__ */
|
|
51949
|
-
/* @__PURE__ */
|
|
51950
|
-
/* @__PURE__ */
|
|
51886
|
+
return /* @__PURE__ */ jsxs307("div", { className: `${COMPACT_CARD_OUTER_STATIC} opacity-70 ${className ?? ""}`, children: [
|
|
51887
|
+
/* @__PURE__ */ jsx387("div", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx387(Trash27, { className: "h-4 w-4 text-ods-text-secondary" }) }),
|
|
51888
|
+
/* @__PURE__ */ jsxs307("div", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
51889
|
+
/* @__PURE__ */ jsx387("div", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx387("span", { className: `${COMPACT_CARD_TITLE} line-through text-ods-text-secondary`, children: title || `Deleted ${label.toLowerCase()}` }) }),
|
|
51890
|
+
/* @__PURE__ */ jsx387("div", { className: COMPACT_CARD_META_ROW, children: /* @__PURE__ */ jsxs307("span", { className: "text-ods-text-secondary", children: [
|
|
51951
51891
|
label,
|
|
51952
51892
|
" deleted",
|
|
51953
51893
|
recoveryNote ? ` \xB7 ${recoveryNote}` : ""
|
|
@@ -51958,16 +51898,16 @@ function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
|
|
|
51958
51898
|
|
|
51959
51899
|
// src/components/chat/mingo-info-card.tsx
|
|
51960
51900
|
init_cn();
|
|
51961
|
-
import { Fragment as Fragment87, jsx as
|
|
51901
|
+
import { Fragment as Fragment87, jsx as jsx388, jsxs as jsxs308 } from "react/jsx-runtime";
|
|
51962
51902
|
function CardMedia({
|
|
51963
51903
|
imageSrc,
|
|
51964
51904
|
imageAlt,
|
|
51965
51905
|
icon
|
|
51966
51906
|
}) {
|
|
51967
51907
|
if (imageSrc) {
|
|
51968
|
-
return /* @__PURE__ */
|
|
51969
|
-
/* @__PURE__ */
|
|
51970
|
-
/* @__PURE__ */
|
|
51908
|
+
return /* @__PURE__ */ jsxs308("span", { className: "relative block size-10 shrink-0", children: [
|
|
51909
|
+
/* @__PURE__ */ jsx388("span", { className: "absolute inset-0 flex items-center justify-center rounded-sm border border-ods-border bg-ods-bg text-h6 text-ods-text-primary", children: getFirstLastInitials(imageAlt) || "?" }),
|
|
51910
|
+
/* @__PURE__ */ jsx388(
|
|
51971
51911
|
"img",
|
|
51972
51912
|
{
|
|
51973
51913
|
src: imageSrc,
|
|
@@ -51981,12 +51921,12 @@ function CardMedia({
|
|
|
51981
51921
|
] });
|
|
51982
51922
|
}
|
|
51983
51923
|
if (icon) {
|
|
51984
|
-
return /* @__PURE__ */
|
|
51924
|
+
return /* @__PURE__ */ jsx388("span", { className: "flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-md border border-ods-border bg-ods-bg text-ods-text-secondary", children: /* @__PURE__ */ jsx388("span", { className: "flex size-6 items-center justify-center", children: icon }) });
|
|
51985
51925
|
}
|
|
51986
51926
|
return null;
|
|
51987
51927
|
}
|
|
51988
51928
|
function MingoInfoCardSkeleton({ className }) {
|
|
51989
|
-
return /* @__PURE__ */
|
|
51929
|
+
return /* @__PURE__ */ jsxs308(
|
|
51990
51930
|
"span",
|
|
51991
51931
|
{
|
|
51992
51932
|
className: cn(
|
|
@@ -51994,12 +51934,12 @@ function MingoInfoCardSkeleton({ className }) {
|
|
|
51994
51934
|
className
|
|
51995
51935
|
),
|
|
51996
51936
|
children: [
|
|
51997
|
-
/* @__PURE__ */
|
|
51998
|
-
/* @__PURE__ */
|
|
51999
|
-
/* @__PURE__ */
|
|
52000
|
-
/* @__PURE__ */
|
|
51937
|
+
/* @__PURE__ */ jsx388("span", { className: "block size-10 shrink-0 rounded-md border border-ods-border bg-ods-bg" }),
|
|
51938
|
+
/* @__PURE__ */ jsxs308("span", { className: "flex min-w-0 flex-1 flex-col justify-center gap-1.5", children: [
|
|
51939
|
+
/* @__PURE__ */ jsx388("span", { className: "block h-4 w-1/2 rounded bg-ods-bg" }),
|
|
51940
|
+
/* @__PURE__ */ jsx388("span", { className: "block h-3 w-3/4 rounded bg-ods-bg/60" })
|
|
52001
51941
|
] }),
|
|
52002
|
-
/* @__PURE__ */
|
|
51942
|
+
/* @__PURE__ */ jsx388("span", { className: "block h-5 w-16 shrink-0 rounded bg-ods-bg/60" })
|
|
52003
51943
|
]
|
|
52004
51944
|
}
|
|
52005
51945
|
);
|
|
@@ -52021,16 +51961,16 @@ function MingoInfoCard({
|
|
|
52021
51961
|
const hasMenu = !!menuGroups && menuGroups.length > 0;
|
|
52022
51962
|
const isAnchor = !!anchorProps;
|
|
52023
51963
|
const isInteractive = isAnchor || !!onClick;
|
|
52024
|
-
const content = /* @__PURE__ */
|
|
52025
|
-
hasMedia && /* @__PURE__ */
|
|
52026
|
-
/* @__PURE__ */
|
|
52027
|
-
/* @__PURE__ */
|
|
52028
|
-
description ? /* @__PURE__ */
|
|
51964
|
+
const content = /* @__PURE__ */ jsxs308(Fragment87, { children: [
|
|
51965
|
+
hasMedia && /* @__PURE__ */ jsx388(CardMedia, { imageSrc, imageAlt, icon }),
|
|
51966
|
+
/* @__PURE__ */ jsxs308("span", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
51967
|
+
/* @__PURE__ */ jsx388("span", { className: "truncate text-h4 text-ods-text-primary", children: title }),
|
|
51968
|
+
description ? /* @__PURE__ */ jsx388("span", { className: "truncate text-h6 text-ods-text-secondary", children: description }) : null
|
|
52029
51969
|
] }),
|
|
52030
51970
|
status ? (
|
|
52031
51971
|
// Reuse the shared Tag palette (single source of truth for colours)
|
|
52032
51972
|
// without rendering Tag's `<div>` — span-only for `<p>` validity.
|
|
52033
|
-
/* @__PURE__ */
|
|
51973
|
+
/* @__PURE__ */ jsx388("span", { className: cn(tagVariants({ variant: status.variant ?? "success" }), "shrink-0"), children: /* @__PURE__ */ jsx388("span", { className: "truncate uppercase tracking-[-0.28px]", children: status.label }) })
|
|
52034
51974
|
) : null
|
|
52035
51975
|
] });
|
|
52036
51976
|
const contentClass = cn(
|
|
@@ -52038,7 +51978,7 @@ function MingoInfoCard({
|
|
|
52038
51978
|
hasMenu && "border-r border-ods-border",
|
|
52039
51979
|
isInteractive && "transition-colors hover:bg-ods-bg-hover active:bg-ods-bg-active focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent cursor-pointer"
|
|
52040
51980
|
);
|
|
52041
|
-
return /* @__PURE__ */
|
|
51981
|
+
return /* @__PURE__ */ jsxs308(
|
|
52042
51982
|
"span",
|
|
52043
51983
|
{
|
|
52044
51984
|
className: cn(
|
|
@@ -52046,20 +51986,20 @@ function MingoInfoCard({
|
|
|
52046
51986
|
className
|
|
52047
51987
|
),
|
|
52048
51988
|
children: [
|
|
52049
|
-
isAnchor ? /* @__PURE__ */
|
|
52050
|
-
hasMenu && /* @__PURE__ */
|
|
51989
|
+
isAnchor ? /* @__PURE__ */ jsx388("a", { ...anchorProps, className: cn(contentClass, "no-underline"), children: content }) : onClick ? /* @__PURE__ */ jsx388("button", { type: "button", onClick, className: contentClass, children: content }) : /* @__PURE__ */ jsx388("span", { className: contentClass, children: content }),
|
|
51990
|
+
hasMenu && /* @__PURE__ */ jsx388(
|
|
52051
51991
|
ActionsMenuDropdown,
|
|
52052
51992
|
{
|
|
52053
51993
|
groups: menuGroups,
|
|
52054
51994
|
triggerAriaLabel: menuAriaLabel,
|
|
52055
51995
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
52056
|
-
customTrigger: /* @__PURE__ */
|
|
51996
|
+
customTrigger: /* @__PURE__ */ jsx388(
|
|
52057
51997
|
"button",
|
|
52058
51998
|
{
|
|
52059
51999
|
type: "button",
|
|
52060
52000
|
"aria-label": menuAriaLabel,
|
|
52061
52001
|
className: "flex w-[56px] md:w-[68px] shrink-0 items-center justify-center self-stretch text-ods-text-secondary transition-colors hover:bg-ods-bg-hover hover:text-ods-text-primary active:bg-ods-bg-active active:text-ods-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
|
|
52062
|
-
children: /* @__PURE__ */
|
|
52002
|
+
children: /* @__PURE__ */ jsx388(Ellipsis01Icon, { size: 24 })
|
|
52063
52003
|
}
|
|
52064
52004
|
)
|
|
52065
52005
|
}
|
|
@@ -52070,16 +52010,16 @@ function MingoInfoCard({
|
|
|
52070
52010
|
}
|
|
52071
52011
|
|
|
52072
52012
|
// src/components/chat/entity-cards/dispatch.tsx
|
|
52073
|
-
import { Fragment as Fragment88, jsx as
|
|
52013
|
+
import { Fragment as Fragment88, jsx as jsx389, jsxs as jsxs309 } from "react/jsx-runtime";
|
|
52074
52014
|
function githubKindIcon(kind) {
|
|
52075
52015
|
switch (kind) {
|
|
52076
52016
|
case "pull_request":
|
|
52077
|
-
return /* @__PURE__ */
|
|
52017
|
+
return /* @__PURE__ */ jsx389(CodingPullRequestIcon, { size: 24 });
|
|
52078
52018
|
case "pr_review":
|
|
52079
|
-
return /* @__PURE__ */
|
|
52019
|
+
return /* @__PURE__ */ jsx389(CodeIcon, { size: 24 });
|
|
52080
52020
|
case "commit":
|
|
52081
52021
|
default:
|
|
52082
|
-
return /* @__PURE__ */
|
|
52022
|
+
return /* @__PURE__ */ jsx389(CodingCommitIcon, { size: 24 });
|
|
52083
52023
|
}
|
|
52084
52024
|
}
|
|
52085
52025
|
function reviewStateToVariant(state) {
|
|
@@ -52108,7 +52048,7 @@ function GitHubChatCard({
|
|
|
52108
52048
|
const idLabel = formatActivityId(chatRef.id, kind);
|
|
52109
52049
|
const dateText = formatDateUTC(chatRef.date ?? null, { fallback: "", timezone: "local" });
|
|
52110
52050
|
const description = [idLabel, dateText].filter(Boolean).join(" \xB7 ") || void 0;
|
|
52111
|
-
return /* @__PURE__ */
|
|
52051
|
+
return /* @__PURE__ */ jsx389(
|
|
52112
52052
|
MingoInfoCard,
|
|
52113
52053
|
{
|
|
52114
52054
|
title,
|
|
@@ -52135,12 +52075,12 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
|
|
|
52135
52075
|
items.push({
|
|
52136
52076
|
id: "open-details",
|
|
52137
52077
|
label: openDetails?.label ?? "Open Details",
|
|
52138
|
-
icon: openDetails?.icon ?? /* @__PURE__ */
|
|
52078
|
+
icon: openDetails?.icon ?? /* @__PURE__ */ jsx389(EyeIcon2, { size: 20 }),
|
|
52139
52079
|
// Main row → open the entity (same tab, soft Link nav).
|
|
52140
52080
|
href,
|
|
52141
52081
|
// Trailing 40px ↗ side-button → open in a new tab.
|
|
52142
52082
|
iconAction: {
|
|
52143
|
-
icon: /* @__PURE__ */
|
|
52083
|
+
icon: /* @__PURE__ */ jsx389(ArrowRightUpIcon, { size: 20 }),
|
|
52144
52084
|
"aria-label": "Open in new tab",
|
|
52145
52085
|
href,
|
|
52146
52086
|
openInNewTab: true
|
|
@@ -52217,12 +52157,12 @@ function CardLoadFailure({
|
|
|
52217
52157
|
id,
|
|
52218
52158
|
detail
|
|
52219
52159
|
}) {
|
|
52220
|
-
return /* @__PURE__ */
|
|
52160
|
+
return /* @__PURE__ */ jsx389(
|
|
52221
52161
|
MingoInfoCard,
|
|
52222
52162
|
{
|
|
52223
52163
|
title: label,
|
|
52224
52164
|
description: `${detail} \xB7 id: ${id}`,
|
|
52225
|
-
icon: /* @__PURE__ */
|
|
52165
|
+
icon: /* @__PURE__ */ jsx389(AlertTriangleIcon, { size: 24 }),
|
|
52226
52166
|
status: { label: "FAILED", variant: "error" },
|
|
52227
52167
|
menuAriaLabel: "Card failed to load"
|
|
52228
52168
|
}
|
|
@@ -52257,17 +52197,17 @@ function HubspotTicketChatCard({
|
|
|
52257
52197
|
const status = typeof chatRef.metadata?.status === "string" ? chatRef.metadata.status : void 0;
|
|
52258
52198
|
const statusLabel = typeof chatRef.metadata?.statusLabel === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
52259
52199
|
const statusText = statusLabel ?? formatStatusToken(status);
|
|
52260
|
-
return /* @__PURE__ */
|
|
52200
|
+
return /* @__PURE__ */ jsx389(
|
|
52261
52201
|
MingoInfoCard,
|
|
52262
52202
|
{
|
|
52263
52203
|
title: chatRef.title,
|
|
52264
52204
|
description: chatRef.preview ?? void 0,
|
|
52265
|
-
icon: /* @__PURE__ */
|
|
52205
|
+
icon: /* @__PURE__ */ jsx389(TagIcon, { size: 24 }),
|
|
52266
52206
|
status: statusText ? { label: statusText, variant: hubspotStatusToVariant(status) } : void 0,
|
|
52267
52207
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
52268
52208
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
52269
52209
|
label: "Open Ticket Details",
|
|
52270
|
-
icon: /* @__PURE__ */
|
|
52210
|
+
icon: /* @__PURE__ */ jsx389(TagIcon, { size: 20 })
|
|
52271
52211
|
}),
|
|
52272
52212
|
menuAriaLabel: "Ticket actions"
|
|
52273
52213
|
}
|
|
@@ -52280,12 +52220,12 @@ function FaqChatCard({
|
|
|
52280
52220
|
}) {
|
|
52281
52221
|
const section = typeof chatRef.metadata?.section === "string" ? chatRef.metadata.section.trim() : void 0;
|
|
52282
52222
|
const statusLabel = section && section.length > 0 ? section : "FAQ";
|
|
52283
|
-
return /* @__PURE__ */
|
|
52223
|
+
return /* @__PURE__ */ jsx389(
|
|
52284
52224
|
MingoInfoCard,
|
|
52285
52225
|
{
|
|
52286
52226
|
title: chatRef.title,
|
|
52287
52227
|
description: chatRef.preview ?? void 0,
|
|
52288
|
-
icon: /* @__PURE__ */
|
|
52228
|
+
icon: /* @__PURE__ */ jsx389(QuestionCircleIcon, { size: 24 }),
|
|
52289
52229
|
status: { label: statusLabel, variant: "grey" },
|
|
52290
52230
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
52291
52231
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
@@ -52301,12 +52241,12 @@ function SlackChatCard({
|
|
|
52301
52241
|
const channelName = typeof chatRef.metadata?.channelName === "string" ? chatRef.metadata.channelName.trim() : void 0;
|
|
52302
52242
|
const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
|
|
52303
52243
|
const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
|
|
52304
|
-
return /* @__PURE__ */
|
|
52244
|
+
return /* @__PURE__ */ jsx389(
|
|
52305
52245
|
MingoInfoCard,
|
|
52306
52246
|
{
|
|
52307
52247
|
title,
|
|
52308
52248
|
description: chatRef.preview ?? void 0,
|
|
52309
|
-
icon: /* @__PURE__ */
|
|
52249
|
+
icon: /* @__PURE__ */ jsx389(SlackLogoGreyIcon, { size: 24 }),
|
|
52310
52250
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
52311
52251
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
52312
52252
|
menuAriaLabel: "Message actions"
|
|
@@ -52319,12 +52259,12 @@ function DataRoomDocChatCard({
|
|
|
52319
52259
|
discuss
|
|
52320
52260
|
}) {
|
|
52321
52261
|
const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
|
|
52322
|
-
return /* @__PURE__ */
|
|
52262
|
+
return /* @__PURE__ */ jsx389(
|
|
52323
52263
|
MingoInfoCard,
|
|
52324
52264
|
{
|
|
52325
52265
|
title: chatRef.title,
|
|
52326
52266
|
description: chatRef.preview ?? void 0,
|
|
52327
|
-
icon: /* @__PURE__ */
|
|
52267
|
+
icon: /* @__PURE__ */ jsx389(FileContentIcon, { size: 24 }),
|
|
52328
52268
|
status: { label: badgeText, variant: "grey" },
|
|
52329
52269
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
52330
52270
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
@@ -52339,7 +52279,7 @@ function GenericFinancialChatCard({
|
|
|
52339
52279
|
discuss
|
|
52340
52280
|
}) {
|
|
52341
52281
|
const subtitle = typeof chatRef.metadata?.subtitle === "string" ? chatRef.metadata.subtitle : void 0;
|
|
52342
|
-
return /* @__PURE__ */
|
|
52282
|
+
return /* @__PURE__ */ jsx389(
|
|
52343
52283
|
MingoInfoCard,
|
|
52344
52284
|
{
|
|
52345
52285
|
title: chatRef.title,
|
|
@@ -52353,9 +52293,9 @@ function GenericFinancialChatCard({
|
|
|
52353
52293
|
}
|
|
52354
52294
|
function ChatInlineVideoPill({ chatRef }) {
|
|
52355
52295
|
const title = chatRef.title || "Video";
|
|
52356
|
-
return /* @__PURE__ */
|
|
52357
|
-
/* @__PURE__ */
|
|
52358
|
-
/* @__PURE__ */
|
|
52296
|
+
return /* @__PURE__ */ jsxs309("span", { className: "inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs align-middle bg-ods-card border border-ods-border text-ods-text-primary", children: [
|
|
52297
|
+
/* @__PURE__ */ jsx389("span", { "aria-hidden": "true", className: "text-ods-text-secondary", children: "\u25B6" }),
|
|
52298
|
+
/* @__PURE__ */ jsx389("span", { className: "truncate max-w-[220px]", children: title })
|
|
52359
52299
|
] });
|
|
52360
52300
|
}
|
|
52361
52301
|
function ChatCardWithDiscuss({
|
|
@@ -52371,11 +52311,11 @@ function ChatCardWithDiscuss({
|
|
|
52371
52311
|
});
|
|
52372
52312
|
const idDisplay = chatRef.id && (chatRef.id.length > 24 ? `${chatRef.id.slice(0, 24)}\u2026` : chatRef.id);
|
|
52373
52313
|
const useDisplay = displayAction && !!onDisplay;
|
|
52374
|
-
const cardBody = /* @__PURE__ */
|
|
52375
|
-
return /* @__PURE__ */
|
|
52314
|
+
const cardBody = /* @__PURE__ */ jsx389("span", { className: "block [&>*]:!my-0", children });
|
|
52315
|
+
return /* @__PURE__ */ jsxs309("span", { className: "mt-1.5 mb-2 block w-full", children: [
|
|
52376
52316
|
cardBody,
|
|
52377
|
-
/* @__PURE__ */
|
|
52378
|
-
/* @__PURE__ */
|
|
52317
|
+
/* @__PURE__ */ jsxs309("span", { className: "mt-1 flex items-center justify-between gap-2 pl-0.5", children: [
|
|
52318
|
+
/* @__PURE__ */ jsx389(
|
|
52379
52319
|
SourceActionButton,
|
|
52380
52320
|
{
|
|
52381
52321
|
chatRef,
|
|
@@ -52384,15 +52324,15 @@ function ChatCardWithDiscuss({
|
|
|
52384
52324
|
density: "card"
|
|
52385
52325
|
}
|
|
52386
52326
|
),
|
|
52387
|
-
!onDiscuss && !useDisplay ? /* @__PURE__ */
|
|
52388
|
-
idDisplay ? /* @__PURE__ */
|
|
52327
|
+
!onDiscuss && !useDisplay ? /* @__PURE__ */ jsx389("span", {}) : null,
|
|
52328
|
+
idDisplay ? /* @__PURE__ */ jsxs309(
|
|
52389
52329
|
"span",
|
|
52390
52330
|
{
|
|
52391
52331
|
className: "inline-flex items-center gap-1 text-code shrink-0 text-ods-text-secondary opacity-60 hover:opacity-100 hover:text-ods-text-primary transition-opacity",
|
|
52392
52332
|
title: `${sourceLabel} \xB7 ${chatRef.id}`,
|
|
52393
52333
|
children: [
|
|
52394
|
-
/* @__PURE__ */
|
|
52395
|
-
/* @__PURE__ */
|
|
52334
|
+
/* @__PURE__ */ jsx389(SourceIcon, { className: "h-3 w-3 shrink-0" }),
|
|
52335
|
+
/* @__PURE__ */ jsx389("span", { className: "truncate max-w-[180px]", children: idDisplay })
|
|
52396
52336
|
]
|
|
52397
52337
|
}
|
|
52398
52338
|
) : null
|
|
@@ -52408,13 +52348,13 @@ function ProductReleaseChatCard({
|
|
|
52408
52348
|
}) {
|
|
52409
52349
|
const releaseProps = buildProps(item);
|
|
52410
52350
|
const status = item?.version ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
|
|
52411
|
-
return /* @__PURE__ */
|
|
52351
|
+
return /* @__PURE__ */ jsx389(
|
|
52412
52352
|
EntityMingoCard,
|
|
52413
52353
|
{
|
|
52414
52354
|
title: item?.title ?? "",
|
|
52415
52355
|
description: item?.summary || releaseProps.formattedDate || void 0,
|
|
52416
52356
|
cover: releaseProps.coverImage || void 0,
|
|
52417
|
-
fallbackIcon: /* @__PURE__ */
|
|
52357
|
+
fallbackIcon: /* @__PURE__ */ jsx389(Rocket02Icon, { size: 24 }),
|
|
52418
52358
|
status,
|
|
52419
52359
|
chatRef,
|
|
52420
52360
|
isNewTab,
|
|
@@ -52435,12 +52375,12 @@ function CampaignChatCard({
|
|
|
52435
52375
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
52436
52376
|
"Marketing campaign"
|
|
52437
52377
|
].filter(Boolean).join(" \xB7 ");
|
|
52438
|
-
return /* @__PURE__ */
|
|
52378
|
+
return /* @__PURE__ */ jsx389(
|
|
52439
52379
|
EntityMingoCard,
|
|
52440
52380
|
{
|
|
52441
52381
|
title: item?.name ?? "",
|
|
52442
52382
|
description: meta || item?.description || void 0,
|
|
52443
|
-
fallbackIcon: /* @__PURE__ */
|
|
52383
|
+
fallbackIcon: /* @__PURE__ */ jsx389(Megaphone01Icon, { size: 24 }),
|
|
52444
52384
|
chatRef,
|
|
52445
52385
|
isNewTab,
|
|
52446
52386
|
discuss,
|
|
@@ -52461,7 +52401,7 @@ function EntityMingoCard({
|
|
|
52461
52401
|
openDetails,
|
|
52462
52402
|
externalLink
|
|
52463
52403
|
}) {
|
|
52464
|
-
return /* @__PURE__ */
|
|
52404
|
+
return /* @__PURE__ */ jsx389(
|
|
52465
52405
|
MingoInfoCard,
|
|
52466
52406
|
{
|
|
52467
52407
|
title,
|
|
@@ -52496,13 +52436,13 @@ function BlogChatCard({
|
|
|
52496
52436
|
}) {
|
|
52497
52437
|
const category = Array.isArray(item?.categories) ? item.categories.find((c) => c && c.name)?.name : void 0;
|
|
52498
52438
|
const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
|
|
52499
|
-
return /* @__PURE__ */
|
|
52439
|
+
return /* @__PURE__ */ jsx389(
|
|
52500
52440
|
EntityMingoCard,
|
|
52501
52441
|
{
|
|
52502
52442
|
title: item?.title ?? "",
|
|
52503
52443
|
description: item?.summary ?? void 0,
|
|
52504
52444
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
52505
|
-
fallbackIcon: /* @__PURE__ */
|
|
52445
|
+
fallbackIcon: /* @__PURE__ */ jsx389(NewspaperIcon, { size: 24 }),
|
|
52506
52446
|
status,
|
|
52507
52447
|
chatRef,
|
|
52508
52448
|
isNewTab,
|
|
@@ -52519,13 +52459,13 @@ function CaseStudyChatCard({
|
|
|
52519
52459
|
discuss
|
|
52520
52460
|
}) {
|
|
52521
52461
|
const meta = [item?.msp?.name, item?.user?.full_name].filter(Boolean).join(" \xB7 ");
|
|
52522
|
-
return /* @__PURE__ */
|
|
52462
|
+
return /* @__PURE__ */ jsx389(
|
|
52523
52463
|
EntityMingoCard,
|
|
52524
52464
|
{
|
|
52525
52465
|
title: item?.title ?? "",
|
|
52526
52466
|
description: item?.summary || meta || void 0,
|
|
52527
52467
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
52528
|
-
fallbackIcon: /* @__PURE__ */
|
|
52468
|
+
fallbackIcon: /* @__PURE__ */ jsx389(TrophyIcon, { size: 24 }),
|
|
52529
52469
|
status: { label: "Case study", variant: "grey" },
|
|
52530
52470
|
chatRef,
|
|
52531
52471
|
isNewTab,
|
|
@@ -52542,13 +52482,13 @@ function CustomerInterviewChatCard({
|
|
|
52542
52482
|
discuss
|
|
52543
52483
|
}) {
|
|
52544
52484
|
const meta = [item?.user?.full_name, item?.msp?.name].filter(Boolean).join(" \xB7 ");
|
|
52545
|
-
return /* @__PURE__ */
|
|
52485
|
+
return /* @__PURE__ */ jsx389(
|
|
52546
52486
|
EntityMingoCard,
|
|
52547
52487
|
{
|
|
52548
52488
|
title: item?.title ?? "",
|
|
52549
52489
|
description: item?.video_summary || meta || void 0,
|
|
52550
52490
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
52551
|
-
fallbackIcon: /* @__PURE__ */
|
|
52491
|
+
fallbackIcon: /* @__PURE__ */ jsx389(MicrophoneIcon, { size: 24 }),
|
|
52552
52492
|
status: { label: "Interview", variant: "grey" },
|
|
52553
52493
|
chatRef,
|
|
52554
52494
|
isNewTab,
|
|
@@ -52565,13 +52505,13 @@ function InvestorUpdateChatCard({
|
|
|
52565
52505
|
discuss
|
|
52566
52506
|
}) {
|
|
52567
52507
|
const title = item?.title || `Update #${item?.update_number ?? "?"}`;
|
|
52568
|
-
return /* @__PURE__ */
|
|
52508
|
+
return /* @__PURE__ */ jsx389(
|
|
52569
52509
|
EntityMingoCard,
|
|
52570
52510
|
{
|
|
52571
52511
|
title,
|
|
52572
52512
|
description: item?.strategic_update || item?.content || formatInvestorUpdatePeriod(item?.period_start, item?.period_end) || void 0,
|
|
52573
52513
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
52574
|
-
fallbackIcon: /* @__PURE__ */
|
|
52514
|
+
fallbackIcon: /* @__PURE__ */ jsx389(PresentationLineIcon, { size: 24 }),
|
|
52575
52515
|
status: { label: "Investor update", variant: "grey" },
|
|
52576
52516
|
chatRef,
|
|
52577
52517
|
isNewTab,
|
|
@@ -52588,13 +52528,13 @@ function OnboardingGuideChatCard({
|
|
|
52588
52528
|
discuss
|
|
52589
52529
|
}) {
|
|
52590
52530
|
const cover = entityCover(item?.featured_image) ?? entityCover(item?.main_video_thumbnail) ?? entityCover(item?.og_image_url, ogPlaceholder);
|
|
52591
|
-
return /* @__PURE__ */
|
|
52531
|
+
return /* @__PURE__ */ jsx389(
|
|
52592
52532
|
EntityMingoCard,
|
|
52593
52533
|
{
|
|
52594
52534
|
title: item?.title ?? "",
|
|
52595
52535
|
description: item?.summary ?? item?.description ?? void 0,
|
|
52596
52536
|
cover,
|
|
52597
|
-
fallbackIcon: /* @__PURE__ */
|
|
52537
|
+
fallbackIcon: /* @__PURE__ */ jsx389(CompassIcon, { size: 24 }),
|
|
52598
52538
|
status: { label: "Guide", variant: "grey" },
|
|
52599
52539
|
chatRef,
|
|
52600
52540
|
isNewTab,
|
|
@@ -52612,7 +52552,7 @@ function ProgramChatCard({
|
|
|
52612
52552
|
ogPlaceholder,
|
|
52613
52553
|
discuss
|
|
52614
52554
|
}) {
|
|
52615
|
-
const icon = configKey === "webinar" ? /* @__PURE__ */
|
|
52555
|
+
const icon = configKey === "webinar" ? /* @__PURE__ */ jsx389(PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ jsx389(CalendarIcon, { size: 24 }) : /* @__PURE__ */ jsx389(MicrophoneIcon, { size: 24 });
|
|
52616
52556
|
const isScheduled = item?.status === "scheduled";
|
|
52617
52557
|
let typeMeta;
|
|
52618
52558
|
if (configKey === "podcast" && typeof item?.duration_seconds === "number" && item.duration_seconds > 0 && !isScheduled) {
|
|
@@ -52626,7 +52566,7 @@ function ProgramChatCard({
|
|
|
52626
52566
|
}
|
|
52627
52567
|
const itemDate = formatDateUTC(item?.date ?? null, { fallback: "", timezone: "local" });
|
|
52628
52568
|
const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
|
|
52629
|
-
return /* @__PURE__ */
|
|
52569
|
+
return /* @__PURE__ */ jsx389(
|
|
52630
52570
|
EntityMingoCard,
|
|
52631
52571
|
{
|
|
52632
52572
|
title: item?.title ?? "",
|
|
@@ -52650,16 +52590,16 @@ function RoadmapChatCard({
|
|
|
52650
52590
|
}) {
|
|
52651
52591
|
const logoUrl = typeof item?.icon === "string" && item.icon.startsWith("http") ? item.icon : void 0;
|
|
52652
52592
|
const useTypeIcon = cardType === "internal_task" || !logoUrl && item?.customItemId != null;
|
|
52653
|
-
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */
|
|
52654
|
-
const icon = useTypeIcon ? /* @__PURE__ */
|
|
52593
|
+
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ jsx389(TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ jsx389(CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ jsx389(MapIcon, { size: 24 });
|
|
52594
|
+
const icon = useTypeIcon ? /* @__PURE__ */ jsx389(TaskTypeIcon, { customItemId: item?.customItemId, className: "size-6" }) : logoUrl ? (
|
|
52655
52595
|
// Contained (not full-bleed) so the integration logo keeps its aspect
|
|
52656
52596
|
// ratio inside the bordered icon box — matches RoadmapCard.
|
|
52657
|
-
/* @__PURE__ */
|
|
52597
|
+
/* @__PURE__ */ jsx389("img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
|
|
52658
52598
|
) : defaultIcon;
|
|
52659
52599
|
const clickupHref = clickupTaskUrl(chatRef.id);
|
|
52660
|
-
const clickupIcon = /* @__PURE__ */
|
|
52600
|
+
const clickupIcon = /* @__PURE__ */ jsx389(ClickupLogoIcon, { size: 20 });
|
|
52661
52601
|
const cardUrlIsClickup = cardType === "internal_task";
|
|
52662
|
-
return /* @__PURE__ */
|
|
52602
|
+
return /* @__PURE__ */ jsx389(
|
|
52663
52603
|
EntityMingoCard,
|
|
52664
52604
|
{
|
|
52665
52605
|
title: item?.title ?? "",
|
|
@@ -52682,16 +52622,16 @@ function refHydratedEntry(docType, label, renderRef) {
|
|
|
52682
52622
|
contentRefType: docType,
|
|
52683
52623
|
noComposedHref: true,
|
|
52684
52624
|
fallbackHref: (item) => item?.url ?? null,
|
|
52685
|
-
skeleton: () => /* @__PURE__ */
|
|
52625
|
+
skeleton: () => /* @__PURE__ */ jsx389(MingoInfoCardSkeleton, {}),
|
|
52686
52626
|
render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
|
|
52687
52627
|
};
|
|
52688
52628
|
}
|
|
52689
52629
|
var FINANCIAL_CARD_CONFIGS = {
|
|
52690
|
-
financial_kpi: { label: "Financial KPI", icon: () => /* @__PURE__ */
|
|
52691
|
-
cap_table: { label: "Cap table entry", icon: () => /* @__PURE__ */
|
|
52692
|
-
profit_loss: { label: "P&L period", icon: () => /* @__PURE__ */
|
|
52693
|
-
balance_sheet: { label: "Balance sheet", icon: () => /* @__PURE__ */
|
|
52694
|
-
cash_flow: { label: "Cash flow", icon: () => /* @__PURE__ */
|
|
52630
|
+
financial_kpi: { label: "Financial KPI", icon: () => /* @__PURE__ */ jsx389(ChartBar01VerIcon, { size: 24 }) },
|
|
52631
|
+
cap_table: { label: "Cap table entry", icon: () => /* @__PURE__ */ jsx389(ChartPieIcon, { size: 24 }) },
|
|
52632
|
+
profit_loss: { label: "P&L period", icon: () => /* @__PURE__ */ jsx389(MoneyBillDollarIcon, { size: 24 }) },
|
|
52633
|
+
balance_sheet: { label: "Balance sheet", icon: () => /* @__PURE__ */ jsx389(BankIcon, { size: 24 }) },
|
|
52634
|
+
cash_flow: { label: "Cash flow", icon: () => /* @__PURE__ */ jsx389(CoinsExchangeCurrencyIcon, { size: 24 }) }
|
|
52695
52635
|
};
|
|
52696
52636
|
function registryEntries(configs, build) {
|
|
52697
52637
|
const out = {};
|
|
@@ -52701,7 +52641,7 @@ function registryEntries(configs, build) {
|
|
|
52701
52641
|
function financialRegistryEntries() {
|
|
52702
52642
|
return registryEntries(
|
|
52703
52643
|
FINANCIAL_CARD_CONFIGS,
|
|
52704
|
-
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */
|
|
52644
|
+
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */ jsx389(
|
|
52705
52645
|
GenericFinancialChatCard,
|
|
52706
52646
|
{
|
|
52707
52647
|
chatRef: displayRef,
|
|
@@ -52723,7 +52663,7 @@ var GITHUB_CARD_CONFIGS = {
|
|
|
52723
52663
|
function githubRegistryEntries() {
|
|
52724
52664
|
return registryEntries(
|
|
52725
52665
|
GITHUB_CARD_CONFIGS,
|
|
52726
|
-
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */
|
|
52666
|
+
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */ jsx389(
|
|
52727
52667
|
GitHubChatCard,
|
|
52728
52668
|
{
|
|
52729
52669
|
chatRef: displayRef,
|
|
@@ -52744,8 +52684,8 @@ function programRegistryEntries() {
|
|
|
52744
52684
|
label: cfg.label,
|
|
52745
52685
|
contentRefType: cfg.contentRefType,
|
|
52746
52686
|
bareInline: true,
|
|
52747
|
-
skeleton: () => /* @__PURE__ */
|
|
52748
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52687
|
+
skeleton: () => /* @__PURE__ */ jsx389(ProgramCardSkeleton, { size: "sm" }),
|
|
52688
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
52749
52689
|
ProgramChatCard,
|
|
52750
52690
|
{
|
|
52751
52691
|
item,
|
|
@@ -52785,8 +52725,8 @@ function roadmapRegistryEntries() {
|
|
|
52785
52725
|
bareInline: true,
|
|
52786
52726
|
...cfg.noComposedHref ? { noComposedHref: true } : {},
|
|
52787
52727
|
...cfg.fallbackHref ? { fallbackHref: cfg.fallbackHref } : {},
|
|
52788
|
-
skeleton: () => /* @__PURE__ */
|
|
52789
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52728
|
+
skeleton: () => /* @__PURE__ */ jsx389(RoadmapCardSkeleton, { size: "sm" }),
|
|
52729
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
52790
52730
|
RoadmapChatCard,
|
|
52791
52731
|
{
|
|
52792
52732
|
item,
|
|
@@ -52813,7 +52753,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52813
52753
|
// null and the card renders its generic "Deleted item" tombstone. The
|
|
52814
52754
|
// descriptor's `title` defaults to the raw cardId — suppress it so the
|
|
52815
52755
|
// strikethrough line never shows an opaque id.
|
|
52816
|
-
render: (_item, chatRef) => /* @__PURE__ */
|
|
52756
|
+
render: (_item, chatRef) => /* @__PURE__ */ jsx389(
|
|
52817
52757
|
DeletedDataCard,
|
|
52818
52758
|
{
|
|
52819
52759
|
title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
|
|
@@ -52822,7 +52762,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52822
52762
|
}
|
|
52823
52763
|
)
|
|
52824
52764
|
},
|
|
52825
|
-
slack_message: refHydratedEntry("slack_message", "Slack message", (displayRef, opts) => /* @__PURE__ */
|
|
52765
|
+
slack_message: refHydratedEntry("slack_message", "Slack message", (displayRef, opts) => /* @__PURE__ */ jsx389(SlackChatCard, { chatRef: displayRef, isNewTab: opts.isNewTab, discuss: opts.discuss })),
|
|
52826
52766
|
// FAQ hydrates from its EXISTING public list API (`/api/faqs?ids=` —
|
|
52827
52767
|
// also feeding related-content rails, so its base path must not move).
|
|
52828
52768
|
// Rows are faq-shaped, not ChatRef-shaped, hence the bespoke row→display
|
|
@@ -52833,8 +52773,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52833
52773
|
contentRefType: "faq",
|
|
52834
52774
|
noComposedHref: true,
|
|
52835
52775
|
fallbackHref: (item) => item?.id != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
|
|
52836
|
-
skeleton: () => /* @__PURE__ */
|
|
52837
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52776
|
+
skeleton: () => /* @__PURE__ */ jsx389(MingoInfoCardSkeleton, {}),
|
|
52777
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
52838
52778
|
FaqChatCard,
|
|
52839
52779
|
{
|
|
52840
52780
|
chatRef: fetchedFaqDisplayRef(item, chatRef),
|
|
@@ -52843,7 +52783,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52843
52783
|
}
|
|
52844
52784
|
)
|
|
52845
52785
|
},
|
|
52846
|
-
hubspot_ticket: refHydratedEntry("hubspot_ticket", "HubSpot ticket", (displayRef, opts) => /* @__PURE__ */
|
|
52786
|
+
hubspot_ticket: refHydratedEntry("hubspot_ticket", "HubSpot ticket", (displayRef, opts) => /* @__PURE__ */ jsx389(
|
|
52847
52787
|
HubspotTicketChatCard,
|
|
52848
52788
|
{
|
|
52849
52789
|
chatRef: displayRef,
|
|
@@ -52854,7 +52794,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52854
52794
|
hubspot_ticket_anon: refHydratedEntry(
|
|
52855
52795
|
"hubspot_ticket_anon",
|
|
52856
52796
|
"HubSpot ticket (anon)",
|
|
52857
|
-
(displayRef, opts) => /* @__PURE__ */
|
|
52797
|
+
(displayRef, opts) => /* @__PURE__ */ jsx389(
|
|
52858
52798
|
HubspotTicketChatCard,
|
|
52859
52799
|
{
|
|
52860
52800
|
chatRef: displayRef,
|
|
@@ -52870,7 +52810,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52870
52810
|
hubspot_ticket_self: refHydratedEntry(
|
|
52871
52811
|
"hubspot_ticket_self",
|
|
52872
52812
|
"HubSpot ticket (self)",
|
|
52873
|
-
(displayRef, opts) => /* @__PURE__ */
|
|
52813
|
+
(displayRef, opts) => /* @__PURE__ */ jsx389(
|
|
52874
52814
|
HubspotTicketChatCard,
|
|
52875
52815
|
{
|
|
52876
52816
|
chatRef: displayRef,
|
|
@@ -52879,7 +52819,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52879
52819
|
}
|
|
52880
52820
|
)
|
|
52881
52821
|
),
|
|
52882
|
-
data_room_doc: refHydratedEntry("data_room_doc", "Data-room doc", (displayRef, opts) => /* @__PURE__ */
|
|
52822
|
+
data_room_doc: refHydratedEntry("data_room_doc", "Data-room doc", (displayRef, opts) => /* @__PURE__ */ jsx389(
|
|
52883
52823
|
DataRoomDocChatCard,
|
|
52884
52824
|
{
|
|
52885
52825
|
chatRef: displayRef,
|
|
@@ -52887,7 +52827,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52887
52827
|
discuss: opts.discuss
|
|
52888
52828
|
}
|
|
52889
52829
|
)),
|
|
52890
|
-
markdown: refHydratedEntry("markdown", "Doc page (markdown)", (displayRef, opts) => /* @__PURE__ */
|
|
52830
|
+
markdown: refHydratedEntry("markdown", "Doc page (markdown)", (displayRef, opts) => /* @__PURE__ */ jsx389(
|
|
52891
52831
|
DataRoomDocChatCard,
|
|
52892
52832
|
{
|
|
52893
52833
|
chatRef: displayRef,
|
|
@@ -52900,7 +52840,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52900
52840
|
video: {
|
|
52901
52841
|
label: "Video",
|
|
52902
52842
|
bareInline: true,
|
|
52903
|
-
render: (_item, chatRef) => /* @__PURE__ */
|
|
52843
|
+
render: (_item, chatRef) => /* @__PURE__ */ jsx389(ChatInlineVideoPill, { chatRef })
|
|
52904
52844
|
},
|
|
52905
52845
|
...financialRegistryEntries(),
|
|
52906
52846
|
// ───────── content types: full rows from their public list APIs ─────────
|
|
@@ -52908,8 +52848,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52908
52848
|
label: "Blog post",
|
|
52909
52849
|
contentRefType: "blog_post_existing",
|
|
52910
52850
|
bareInline: true,
|
|
52911
|
-
skeleton: () => /* @__PURE__ */
|
|
52912
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52851
|
+
skeleton: () => /* @__PURE__ */ jsx389(BlogCardSkeleton, { size: "sm" }),
|
|
52852
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
52913
52853
|
BlogChatCard,
|
|
52914
52854
|
{
|
|
52915
52855
|
item,
|
|
@@ -52925,8 +52865,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52925
52865
|
label: "Case study",
|
|
52926
52866
|
contentRefType: "case_study",
|
|
52927
52867
|
bareInline: true,
|
|
52928
|
-
skeleton: () => /* @__PURE__ */
|
|
52929
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52868
|
+
skeleton: () => /* @__PURE__ */ jsx389(CaseStudyCardSkeleton, { size: "sm" }),
|
|
52869
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
52930
52870
|
CaseStudyChatCard,
|
|
52931
52871
|
{
|
|
52932
52872
|
item,
|
|
@@ -52941,8 +52881,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52941
52881
|
label: "Customer interview",
|
|
52942
52882
|
contentRefType: "customer_interview",
|
|
52943
52883
|
bareInline: true,
|
|
52944
|
-
skeleton: () => /* @__PURE__ */
|
|
52945
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52884
|
+
skeleton: () => /* @__PURE__ */ jsx389(CustomerInterviewCardSkeleton, { size: "sm" }),
|
|
52885
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
52946
52886
|
CustomerInterviewChatCard,
|
|
52947
52887
|
{
|
|
52948
52888
|
item,
|
|
@@ -52957,10 +52897,10 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52957
52897
|
label: "Product release",
|
|
52958
52898
|
contentRefType: "product_release",
|
|
52959
52899
|
bareInline: true,
|
|
52960
|
-
skeleton: () => /* @__PURE__ */
|
|
52900
|
+
skeleton: () => /* @__PURE__ */ jsx389(ProductReleaseCardSkeleton, { size: "sm" }),
|
|
52961
52901
|
render: (item, chatRef, opts) => {
|
|
52962
52902
|
const builder = opts?.extras?.buildProductReleaseCardProps ?? defaultBuildProductReleaseCardProps;
|
|
52963
|
-
return /* @__PURE__ */
|
|
52903
|
+
return /* @__PURE__ */ jsx389(
|
|
52964
52904
|
ProductReleaseChatCard,
|
|
52965
52905
|
{
|
|
52966
52906
|
item,
|
|
@@ -52977,8 +52917,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52977
52917
|
label: "Investor update",
|
|
52978
52918
|
contentRefType: "investor_update",
|
|
52979
52919
|
bareInline: true,
|
|
52980
|
-
skeleton: () => /* @__PURE__ */
|
|
52981
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52920
|
+
skeleton: () => /* @__PURE__ */ jsx389(InvestorUpdateCardSkeleton, { size: "sm" }),
|
|
52921
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
52982
52922
|
InvestorUpdateChatCard,
|
|
52983
52923
|
{
|
|
52984
52924
|
item,
|
|
@@ -52995,8 +52935,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
52995
52935
|
bareInline: true,
|
|
52996
52936
|
// "Display" affordance (verbatim guide body) instead of "Ask".
|
|
52997
52937
|
displayAction: true,
|
|
52998
|
-
skeleton: () => /* @__PURE__ */
|
|
52999
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52938
|
+
skeleton: () => /* @__PURE__ */ jsx389(OnboardingGuideCardSkeleton, { size: "sm" }),
|
|
52939
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
53000
52940
|
OnboardingGuideChatCard,
|
|
53001
52941
|
{
|
|
53002
52942
|
item,
|
|
@@ -53011,11 +52951,11 @@ var CHAT_CARD_REGISTRY = {
|
|
|
53011
52951
|
label: "Marketing campaign",
|
|
53012
52952
|
contentRefType: "marketing_campaign",
|
|
53013
52953
|
bareInline: true,
|
|
53014
|
-
skeleton: () => /* @__PURE__ */
|
|
52954
|
+
skeleton: () => /* @__PURE__ */ jsx389(CampaignCardAdminSkeleton, {}),
|
|
53015
52955
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
53016
52956
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
53017
52957
|
fallbackHref: (item) => item?.id ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
|
|
53018
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
52958
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx389(
|
|
53019
52959
|
CampaignChatCard,
|
|
53020
52960
|
{
|
|
53021
52961
|
item,
|
|
@@ -53049,7 +52989,7 @@ function ChatCardNavWrap({
|
|
|
53049
52989
|
e.stopPropagation();
|
|
53050
52990
|
if (!isNewTab && panel?.closeChat) panel.closeChat();
|
|
53051
52991
|
};
|
|
53052
|
-
return /* @__PURE__ */
|
|
52992
|
+
return /* @__PURE__ */ jsx389("span", { className: "contents", onClickCapture, children });
|
|
53053
52993
|
}
|
|
53054
52994
|
function ChatCardLoader({
|
|
53055
52995
|
chatRef,
|
|
@@ -53060,7 +53000,7 @@ function ChatCardLoader({
|
|
|
53060
53000
|
extras
|
|
53061
53001
|
}) {
|
|
53062
53002
|
const runtime = useRequiredChatRuntime();
|
|
53063
|
-
const resolvedChatRef =
|
|
53003
|
+
const resolvedChatRef = React150.useMemo(() => {
|
|
53064
53004
|
const cta = resolveSourceRowCTA(
|
|
53065
53005
|
{
|
|
53066
53006
|
sourceRepo: chatRef.sourceRepo,
|
|
@@ -53108,7 +53048,7 @@ function ChatCardLoader({
|
|
|
53108
53048
|
const discussFn = useDisplay ? onDisplay : onDiscuss;
|
|
53109
53049
|
const discuss = discussFn ? {
|
|
53110
53050
|
label: useDisplay ? "Display" : "Ask Mingo",
|
|
53111
|
-
icon: useDisplay ? /* @__PURE__ */
|
|
53051
|
+
icon: useDisplay ? /* @__PURE__ */ jsx389(FileContentIcon, { size: 20 }) : /* @__PURE__ */ jsx389(
|
|
53112
53052
|
MingoIcon,
|
|
53113
53053
|
{
|
|
53114
53054
|
className: "size-5",
|
|
@@ -53127,7 +53067,7 @@ function ChatCardLoader({
|
|
|
53127
53067
|
discuss
|
|
53128
53068
|
};
|
|
53129
53069
|
const path = typeof finalChatRef.metadata?.path === "string" ? finalChatRef.metadata.path : null;
|
|
53130
|
-
const navWrap = (children) => /* @__PURE__ */
|
|
53070
|
+
const navWrap = (children) => /* @__PURE__ */ jsx389(
|
|
53131
53071
|
ChatCardNavWrap,
|
|
53132
53072
|
{
|
|
53133
53073
|
href: finalChatRef.url ?? null,
|
|
@@ -53137,7 +53077,7 @@ function ChatCardLoader({
|
|
|
53137
53077
|
children
|
|
53138
53078
|
}
|
|
53139
53079
|
);
|
|
53140
|
-
const finish = (node) => entry.bareInline ? /* @__PURE__ */
|
|
53080
|
+
const finish = (node) => entry.bareInline ? /* @__PURE__ */ jsx389(Fragment88, { children: navWrap(node) }) : /* @__PURE__ */ jsx389(
|
|
53141
53081
|
ChatCardWithDiscuss,
|
|
53142
53082
|
{
|
|
53143
53083
|
chatRef: finalChatRef,
|
|
@@ -53150,15 +53090,15 @@ function ChatCardLoader({
|
|
|
53150
53090
|
if (!fetchEntry) {
|
|
53151
53091
|
return finish(entry.render(void 0, finalChatRef, renderOpts));
|
|
53152
53092
|
}
|
|
53153
|
-
if (isLoading) return /* @__PURE__ */
|
|
53093
|
+
if (isLoading) return /* @__PURE__ */ jsx389(Fragment88, { children: fetchEntry.skeleton?.() ?? null });
|
|
53154
53094
|
if (!item) {
|
|
53155
53095
|
if (isError) {
|
|
53156
|
-
return /* @__PURE__ */
|
|
53096
|
+
return /* @__PURE__ */ jsx389(CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
|
|
53157
53097
|
}
|
|
53158
53098
|
if (!isFetched) {
|
|
53159
|
-
return /* @__PURE__ */
|
|
53099
|
+
return /* @__PURE__ */ jsx389(CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Not loadable" });
|
|
53160
53100
|
}
|
|
53161
|
-
return /* @__PURE__ */
|
|
53101
|
+
return /* @__PURE__ */ jsx389(CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Not found" });
|
|
53162
53102
|
}
|
|
53163
53103
|
const videoMeta = itemVideoMetadata(item);
|
|
53164
53104
|
if (videoMeta) {
|
|
@@ -53170,9 +53110,9 @@ function ChatCardLoader({
|
|
|
53170
53110
|
// Same 12px rhythm as the message renderer's block-sibling wrapper
|
|
53171
53111
|
// (`my-3` in chat-message-enhanced) so card→player spacing matches
|
|
53172
53112
|
// the spacing between any two hoisted blocks.
|
|
53173
|
-
/* @__PURE__ */
|
|
53113
|
+
/* @__PURE__ */ jsxs309("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
53174
53114
|
finish(entry.render(item, finalChatRef, renderOpts)),
|
|
53175
|
-
/* @__PURE__ */
|
|
53115
|
+
/* @__PURE__ */ jsx389(ChatVideoEntityCard, { chatRef: videoRef })
|
|
53176
53116
|
] })
|
|
53177
53117
|
);
|
|
53178
53118
|
}
|
|
@@ -53180,7 +53120,7 @@ function ChatCardLoader({
|
|
|
53180
53120
|
}
|
|
53181
53121
|
function renderChatInlineEntityCard(chatRef, options = {}) {
|
|
53182
53122
|
const { onDiscuss, onDisplay, baseRoute, chipBasePlatform, extras } = options;
|
|
53183
|
-
const loader = /* @__PURE__ */
|
|
53123
|
+
const loader = /* @__PURE__ */ jsx389(
|
|
53184
53124
|
ChatCardLoader,
|
|
53185
53125
|
{
|
|
53186
53126
|
chatRef,
|
|
@@ -53200,7 +53140,7 @@ function renderChatInlineEntityCard(chatRef, options = {}) {
|
|
|
53200
53140
|
url: chatRef.url ?? (decoded.videoUrl ?? (decoded.youtubeUrl ? `https://www.youtube.com/watch?v=${decoded.youtubeUrl}` : null)),
|
|
53201
53141
|
metadata: { ...chatRef.metadata ?? {}, ...decoded }
|
|
53202
53142
|
};
|
|
53203
|
-
return /* @__PURE__ */
|
|
53143
|
+
return /* @__PURE__ */ jsx389(BlockCard, { inline: /* @__PURE__ */ jsx389(ChatInlineVideoPill, { chatRef: displayRef }), children: /* @__PURE__ */ jsx389(ChatVideoEntityCard, { chatRef: displayRef }) });
|
|
53204
53144
|
}
|
|
53205
53145
|
return loader;
|
|
53206
53146
|
}
|
|
@@ -53487,20 +53427,20 @@ function useChunkCatchup({
|
|
|
53487
53427
|
}
|
|
53488
53428
|
|
|
53489
53429
|
// src/components/chat/hooks/use-scripted-stream.ts
|
|
53490
|
-
import { useEffect as
|
|
53430
|
+
import { useEffect as useEffect87, useState as useState117 } from "react";
|
|
53491
53431
|
var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
|
|
53492
53432
|
function prefersReducedMotion() {
|
|
53493
53433
|
return typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches === true;
|
|
53494
53434
|
}
|
|
53495
53435
|
function useScriptedStream(frames, resetKey, enabled = true) {
|
|
53496
|
-
const [index, setIndex] =
|
|
53497
|
-
const [reducedMotion, setReducedMotion] =
|
|
53498
|
-
const [prevKey, setPrevKey] =
|
|
53436
|
+
const [index, setIndex] = useState117(0);
|
|
53437
|
+
const [reducedMotion, setReducedMotion] = useState117(false);
|
|
53438
|
+
const [prevKey, setPrevKey] = useState117(resetKey);
|
|
53499
53439
|
if (resetKey !== prevKey) {
|
|
53500
53440
|
setPrevKey(resetKey);
|
|
53501
53441
|
setIndex(0);
|
|
53502
53442
|
}
|
|
53503
|
-
|
|
53443
|
+
useEffect87(() => {
|
|
53504
53444
|
setReducedMotion(prefersReducedMotion());
|
|
53505
53445
|
const mq = window.matchMedia?.("(prefers-reduced-motion: reduce)");
|
|
53506
53446
|
if (!mq) return;
|
|
@@ -53510,7 +53450,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
|
|
|
53510
53450
|
}, []);
|
|
53511
53451
|
const playing = enabled && !reducedMotion && frames.length > 0;
|
|
53512
53452
|
const lastIndex = Math.max(0, frames.length - 1);
|
|
53513
|
-
|
|
53453
|
+
useEffect87(() => {
|
|
53514
53454
|
if (!playing || index >= lastIndex) return;
|
|
53515
53455
|
const current = frames[Math.min(index, lastIndex)] ?? EMPTY_FRAME;
|
|
53516
53456
|
const t = setTimeout(() => setIndex((i) => Math.min(i + 1, lastIndex)), current.delayMs);
|
|
@@ -53522,7 +53462,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
|
|
|
53522
53462
|
}
|
|
53523
53463
|
|
|
53524
53464
|
// src/components/chat/hooks/use-jetstream-dialog-subscription.ts
|
|
53525
|
-
import { useCallback as useCallback50, useEffect as
|
|
53465
|
+
import { useCallback as useCallback50, useEffect as useEffect88, useRef as useRef70, useState as useState118 } from "react";
|
|
53526
53466
|
var DEFAULT_STREAM_NAME = "CHAT_CHUNKS";
|
|
53527
53467
|
var RESYNC_AFTER_HIDDEN_MS = 1e4;
|
|
53528
53468
|
var RESYNC_COALESCE_MS = 1e3;
|
|
@@ -53544,11 +53484,11 @@ function useJetStreamDialogSubscription({
|
|
|
53544
53484
|
inactiveThresholdMs,
|
|
53545
53485
|
resyncSignal = 0
|
|
53546
53486
|
}) {
|
|
53547
|
-
const [isConnected, setIsConnected] =
|
|
53548
|
-
const [isSubscribed, setIsSubscribed] =
|
|
53549
|
-
const [reconnectionCount, setReconnectionCount] =
|
|
53550
|
-
const [recoveryCount, setRecoveryCount] =
|
|
53551
|
-
const [currentStreamSeq, setCurrentStreamSeq] =
|
|
53487
|
+
const [isConnected, setIsConnected] = useState118(false);
|
|
53488
|
+
const [isSubscribed, setIsSubscribed] = useState118(false);
|
|
53489
|
+
const [reconnectionCount, setReconnectionCount] = useState118(0);
|
|
53490
|
+
const [recoveryCount, setRecoveryCount] = useState118(0);
|
|
53491
|
+
const [currentStreamSeq, setCurrentStreamSeq] = useState118(null);
|
|
53552
53492
|
const lastRecoveryReportRef = useRef70(0);
|
|
53553
53493
|
const resyncTimerRef = useRef70(null);
|
|
53554
53494
|
const lastResyncSignalRef = useRef70(resyncSignal);
|
|
@@ -53556,49 +53496,49 @@ function useJetStreamDialogSubscription({
|
|
|
53556
53496
|
const subscriptionRef = useRef70(null);
|
|
53557
53497
|
const highestStreamSeqRef = useRef70(null);
|
|
53558
53498
|
const onEventRef = useRef70(onEvent);
|
|
53559
|
-
|
|
53499
|
+
useEffect88(() => {
|
|
53560
53500
|
onEventRef.current = onEvent;
|
|
53561
53501
|
}, [onEvent]);
|
|
53562
53502
|
const onConnectRef = useRef70(onConnect);
|
|
53563
|
-
|
|
53503
|
+
useEffect88(() => {
|
|
53564
53504
|
onConnectRef.current = onConnect;
|
|
53565
53505
|
}, [onConnect]);
|
|
53566
53506
|
const onDisconnectRef = useRef70(onDisconnect);
|
|
53567
|
-
|
|
53507
|
+
useEffect88(() => {
|
|
53568
53508
|
onDisconnectRef.current = onDisconnect;
|
|
53569
53509
|
}, [onDisconnect]);
|
|
53570
53510
|
const onSubscribedRef = useRef70(onSubscribed);
|
|
53571
|
-
|
|
53511
|
+
useEffect88(() => {
|
|
53572
53512
|
onSubscribedRef.current = onSubscribed;
|
|
53573
53513
|
}, [onSubscribed]);
|
|
53574
53514
|
const onBeforeReconnectRef = useRef70(onBeforeReconnect);
|
|
53575
|
-
|
|
53515
|
+
useEffect88(() => {
|
|
53576
53516
|
onBeforeReconnectRef.current = onBeforeReconnect;
|
|
53577
53517
|
}, [onBeforeReconnect]);
|
|
53578
53518
|
const getNatsWsUrlRef = useRef70(getNatsWsUrl);
|
|
53579
|
-
|
|
53519
|
+
useEffect88(() => {
|
|
53580
53520
|
getNatsWsUrlRef.current = getNatsWsUrl;
|
|
53581
53521
|
}, [getNatsWsUrl]);
|
|
53582
53522
|
const reconnectionBackoffRef = useRef70(reconnectionBackoff);
|
|
53583
|
-
|
|
53523
|
+
useEffect88(() => {
|
|
53584
53524
|
reconnectionBackoffRef.current = reconnectionBackoff;
|
|
53585
53525
|
}, [reconnectionBackoff]);
|
|
53586
53526
|
const optStartSeqRef = useRef70(optStartSeq);
|
|
53587
|
-
|
|
53527
|
+
useEffect88(() => {
|
|
53588
53528
|
optStartSeqRef.current = optStartSeq;
|
|
53589
53529
|
}, [optStartSeq]);
|
|
53590
53530
|
const inactiveThresholdRef = useRef70(inactiveThresholdMs);
|
|
53591
|
-
|
|
53531
|
+
useEffect88(() => {
|
|
53592
53532
|
inactiveThresholdRef.current = inactiveThresholdMs;
|
|
53593
53533
|
}, [inactiveThresholdMs]);
|
|
53594
53534
|
const hadConnectionBeforeRef = useRef70(false);
|
|
53595
53535
|
const clientConfigRef = useRef70(clientConfig);
|
|
53596
|
-
|
|
53536
|
+
useEffect88(() => {
|
|
53597
53537
|
clientConfigRef.current = clientConfig;
|
|
53598
53538
|
}, [clientConfig]);
|
|
53599
53539
|
const currentWsUrlRef = useRef70("");
|
|
53600
53540
|
const wsUrl = getNatsWsUrl();
|
|
53601
|
-
|
|
53541
|
+
useEffect88(() => {
|
|
53602
53542
|
if (!enabled || !wsUrl) {
|
|
53603
53543
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
53604
53544
|
releaseClient(currentWsUrlRef.current);
|
|
@@ -53679,7 +53619,7 @@ function useJetStreamDialogSubscription({
|
|
|
53679
53619
|
}
|
|
53680
53620
|
};
|
|
53681
53621
|
}, [enabled, wsUrl]);
|
|
53682
|
-
|
|
53622
|
+
useEffect88(() => {
|
|
53683
53623
|
highestStreamSeqRef.current = null;
|
|
53684
53624
|
lastResyncSignalRef.current = resyncSignal;
|
|
53685
53625
|
setCurrentStreamSeq(null);
|
|
@@ -53697,7 +53637,7 @@ function useJetStreamDialogSubscription({
|
|
|
53697
53637
|
setReconnectionCount((c) => c + 1);
|
|
53698
53638
|
}, RESYNC_COALESCE_MS);
|
|
53699
53639
|
}, []);
|
|
53700
|
-
|
|
53640
|
+
useEffect88(() => {
|
|
53701
53641
|
if (!enabled) return;
|
|
53702
53642
|
let hiddenSince = document.visibilityState === "hidden" ? Date.now() : 0;
|
|
53703
53643
|
const onVisibilityChange = () => {
|
|
@@ -53714,13 +53654,13 @@ function useJetStreamDialogSubscription({
|
|
|
53714
53654
|
document.addEventListener("visibilitychange", onVisibilityChange);
|
|
53715
53655
|
return () => document.removeEventListener("visibilitychange", onVisibilityChange);
|
|
53716
53656
|
}, [enabled, requestResync]);
|
|
53717
|
-
|
|
53657
|
+
useEffect88(() => {
|
|
53718
53658
|
if (!enabled) return;
|
|
53719
53659
|
if (resyncSignal <= lastResyncSignalRef.current) return;
|
|
53720
53660
|
lastResyncSignalRef.current = resyncSignal;
|
|
53721
53661
|
requestResync();
|
|
53722
53662
|
}, [enabled, resyncSignal, requestResync]);
|
|
53723
|
-
|
|
53663
|
+
useEffect88(() => {
|
|
53724
53664
|
if (!enabled || !dialogId || !isConnected) {
|
|
53725
53665
|
if (subscriptionRef.current) {
|
|
53726
53666
|
try {
|
|
@@ -53821,7 +53761,7 @@ function useJetStreamDialogSubscription({
|
|
|
53821
53761
|
}
|
|
53822
53762
|
|
|
53823
53763
|
// src/components/chat/hooks/use-nats-dialog-subscription.ts
|
|
53824
|
-
import { useEffect as
|
|
53764
|
+
import { useEffect as useEffect89, useRef as useRef71, useState as useState119 } from "react";
|
|
53825
53765
|
function useNatsDialogSubscription({
|
|
53826
53766
|
enabled,
|
|
53827
53767
|
dialogId,
|
|
@@ -53835,47 +53775,47 @@ function useNatsDialogSubscription({
|
|
|
53835
53775
|
clientConfig = {},
|
|
53836
53776
|
reconnectionBackoff
|
|
53837
53777
|
}) {
|
|
53838
|
-
const [isConnected, setIsConnected] =
|
|
53839
|
-
const [isSubscribed, setIsSubscribed] =
|
|
53840
|
-
const [reconnectionCount, setReconnectionCount] =
|
|
53778
|
+
const [isConnected, setIsConnected] = useState119(false);
|
|
53779
|
+
const [isSubscribed, setIsSubscribed] = useState119(false);
|
|
53780
|
+
const [reconnectionCount, setReconnectionCount] = useState119(0);
|
|
53841
53781
|
const clientRef = useRef71(null);
|
|
53842
53782
|
const subscriptionRefs = useRef71(/* @__PURE__ */ new Map());
|
|
53843
53783
|
const onEventRef = useRef71(onEvent);
|
|
53844
|
-
|
|
53784
|
+
useEffect89(() => {
|
|
53845
53785
|
onEventRef.current = onEvent;
|
|
53846
53786
|
}, [onEvent]);
|
|
53847
53787
|
const onConnectRef = useRef71(onConnect);
|
|
53848
|
-
|
|
53788
|
+
useEffect89(() => {
|
|
53849
53789
|
onConnectRef.current = onConnect;
|
|
53850
53790
|
}, [onConnect]);
|
|
53851
53791
|
const onDisconnectRef = useRef71(onDisconnect);
|
|
53852
|
-
|
|
53792
|
+
useEffect89(() => {
|
|
53853
53793
|
onDisconnectRef.current = onDisconnect;
|
|
53854
53794
|
}, [onDisconnect]);
|
|
53855
53795
|
const onSubscribedRef = useRef71(onSubscribed);
|
|
53856
|
-
|
|
53796
|
+
useEffect89(() => {
|
|
53857
53797
|
onSubscribedRef.current = onSubscribed;
|
|
53858
53798
|
}, [onSubscribed]);
|
|
53859
53799
|
const onBeforeReconnectRef = useRef71(onBeforeReconnect);
|
|
53860
|
-
|
|
53800
|
+
useEffect89(() => {
|
|
53861
53801
|
onBeforeReconnectRef.current = onBeforeReconnect;
|
|
53862
53802
|
}, [onBeforeReconnect]);
|
|
53863
53803
|
const hadConnectionBeforeRef = useRef71(false);
|
|
53864
53804
|
const getNatsWsUrlRef = useRef71(getNatsWsUrl);
|
|
53865
|
-
|
|
53805
|
+
useEffect89(() => {
|
|
53866
53806
|
getNatsWsUrlRef.current = getNatsWsUrl;
|
|
53867
53807
|
}, [getNatsWsUrl]);
|
|
53868
53808
|
const reconnectionBackoffRef = useRef71(reconnectionBackoff);
|
|
53869
|
-
|
|
53809
|
+
useEffect89(() => {
|
|
53870
53810
|
reconnectionBackoffRef.current = reconnectionBackoff;
|
|
53871
53811
|
}, [reconnectionBackoff]);
|
|
53872
53812
|
const clientConfigRef = useRef71(clientConfig);
|
|
53873
|
-
|
|
53813
|
+
useEffect89(() => {
|
|
53874
53814
|
clientConfigRef.current = clientConfig;
|
|
53875
53815
|
}, [clientConfig]);
|
|
53876
53816
|
const currentWsUrlRef = useRef71("");
|
|
53877
53817
|
const wsUrl = getNatsWsUrl();
|
|
53878
|
-
|
|
53818
|
+
useEffect89(() => {
|
|
53879
53819
|
if (!enabled || !wsUrl) {
|
|
53880
53820
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
53881
53821
|
releaseClient(currentWsUrlRef.current);
|
|
@@ -53961,12 +53901,12 @@ function useNatsDialogSubscription({
|
|
|
53961
53901
|
topicsRef.current = topics;
|
|
53962
53902
|
const lastSubscribedDialogIdRef = useRef71(null);
|
|
53963
53903
|
const isConnectedRef = useRef71(isConnected);
|
|
53964
|
-
|
|
53904
|
+
useEffect89(() => {
|
|
53965
53905
|
isConnectedRef.current = isConnected;
|
|
53966
53906
|
}, [isConnected]);
|
|
53967
53907
|
const currentDialogIdRef = useRef71(null);
|
|
53968
53908
|
const abortControllerRef = useRef71(null);
|
|
53969
|
-
|
|
53909
|
+
useEffect89(() => {
|
|
53970
53910
|
currentDialogIdRef.current = dialogId;
|
|
53971
53911
|
if (!enabled || !dialogId) {
|
|
53972
53912
|
if (subscriptionRefs.current.size > 0) {
|
|
@@ -54047,7 +53987,7 @@ function useNatsDialogSubscription({
|
|
|
54047
53987
|
abortControllerRef.current = null;
|
|
54048
53988
|
};
|
|
54049
53989
|
}, [enabled, dialogId, topicsKey]);
|
|
54050
|
-
|
|
53990
|
+
useEffect89(() => {
|
|
54051
53991
|
if (!enabled || !currentDialogIdRef.current || !isConnected) {
|
|
54052
53992
|
return;
|
|
54053
53993
|
}
|
|
@@ -54097,7 +54037,7 @@ function buildNatsWsUrl(apiBaseUrl, options) {
|
|
|
54097
54037
|
}
|
|
54098
54038
|
|
|
54099
54039
|
// src/components/chat/hooks/use-slash-commands.ts
|
|
54100
|
-
import { useEffect as
|
|
54040
|
+
import { useEffect as useEffect90, useState as useState120 } from "react";
|
|
54101
54041
|
import { useQuery as useQuery3 } from "@tanstack/react-query";
|
|
54102
54042
|
async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
54103
54043
|
try {
|
|
@@ -54114,9 +54054,9 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
54114
54054
|
}
|
|
54115
54055
|
}
|
|
54116
54056
|
function useSlashCommands(prefix, commandsUrl) {
|
|
54117
|
-
const [commands, setCommands] =
|
|
54118
|
-
const [loading, setLoading] =
|
|
54119
|
-
|
|
54057
|
+
const [commands, setCommands] = useState120([]);
|
|
54058
|
+
const [loading, setLoading] = useState120(false);
|
|
54059
|
+
useEffect90(() => {
|
|
54120
54060
|
if (prefix == null) {
|
|
54121
54061
|
setCommands([]);
|
|
54122
54062
|
return;
|
|
@@ -54222,7 +54162,7 @@ function useEmptyStateConfig(emptyStateUrl, options) {
|
|
|
54222
54162
|
}
|
|
54223
54163
|
|
|
54224
54164
|
// src/components/chat/hooks/use-chat-attachments.ts
|
|
54225
|
-
import { useCallback as useCallback51, useMemo as useMemo50, useRef as useRef72, useState as
|
|
54165
|
+
import { useCallback as useCallback51, useMemo as useMemo50, useRef as useRef72, useState as useState121 } from "react";
|
|
54226
54166
|
import { fileTypeFromBlob } from "file-type";
|
|
54227
54167
|
var CHAT_ATTACHMENTS_BUCKET = "chat-attachments";
|
|
54228
54168
|
var CHAT_ATTACHMENTS_FOLDER = "chat";
|
|
@@ -54298,7 +54238,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
54298
54238
|
function useChatAttachments() {
|
|
54299
54239
|
const runtime = useRequiredChatRuntime();
|
|
54300
54240
|
const uploadUrlEndpoint = runtime.endpoints.attachmentUploadUrl;
|
|
54301
|
-
const [attachments, setAttachments] =
|
|
54241
|
+
const [attachments, setAttachments] = useState121([]);
|
|
54302
54242
|
const controllersRef = useRef72(/* @__PURE__ */ new Map());
|
|
54303
54243
|
const updateOne = useCallback51((id, patch) => {
|
|
54304
54244
|
setAttachments((prev) => prev.map((a) => a.id === id ? { ...a, ...patch } : a));
|
|
@@ -54465,16 +54405,16 @@ function useChatAttachments() {
|
|
|
54465
54405
|
}
|
|
54466
54406
|
|
|
54467
54407
|
// src/components/chat/hooks/use-chat-attachment-image-gallery.tsx
|
|
54468
|
-
import { useCallback as useCallback52, useEffect as
|
|
54469
|
-
import { jsx as
|
|
54408
|
+
import { useCallback as useCallback52, useEffect as useEffect91, useRef as useRef73, useState as useState122 } from "react";
|
|
54409
|
+
import { jsx as jsx390 } from "react/jsx-runtime";
|
|
54470
54410
|
var CLOSED = { isOpen: false, images: [], initialIndex: 0 };
|
|
54471
54411
|
function useChatAttachmentImageGallery() {
|
|
54472
54412
|
const runtime = useRequiredChatRuntime();
|
|
54473
54413
|
const viewUrlPrefix = runtime.endpoints.attachmentViewUrlPrefix;
|
|
54474
54414
|
const panelRef = useRef73(null);
|
|
54475
|
-
const [state, setState] =
|
|
54415
|
+
const [state, setState] = useState122(CLOSED);
|
|
54476
54416
|
const handleClose = useCallback52(() => setState(CLOSED), []);
|
|
54477
|
-
|
|
54417
|
+
useEffect91(() => {
|
|
54478
54418
|
const root = panelRef.current;
|
|
54479
54419
|
if (!root) return;
|
|
54480
54420
|
const onClick = (ev) => {
|
|
@@ -54502,7 +54442,7 @@ function useChatAttachmentImageGallery() {
|
|
|
54502
54442
|
root.addEventListener("click", onClick);
|
|
54503
54443
|
return () => root.removeEventListener("click", onClick);
|
|
54504
54444
|
}, [viewUrlPrefix]);
|
|
54505
|
-
const modal = state.isOpen ? /* @__PURE__ */
|
|
54445
|
+
const modal = state.isOpen ? /* @__PURE__ */ jsx390(
|
|
54506
54446
|
ImageGalleryModal,
|
|
54507
54447
|
{
|
|
54508
54448
|
images: state.images,
|
|
@@ -54520,11 +54460,11 @@ function absolutize(prefix) {
|
|
|
54520
54460
|
}
|
|
54521
54461
|
|
|
54522
54462
|
// src/components/chat/hooks/use-close-on-navigation.ts
|
|
54523
|
-
import { useEffect as
|
|
54463
|
+
import { useEffect as useEffect92, useRef as useRef74 } from "react";
|
|
54524
54464
|
function useCloseOnNavigation(close, pathname) {
|
|
54525
54465
|
const prevPathnameRef = useRef74(null);
|
|
54526
54466
|
const initializedRef = useRef74(false);
|
|
54527
|
-
|
|
54467
|
+
useEffect92(() => {
|
|
54528
54468
|
if (!initializedRef.current) {
|
|
54529
54469
|
initializedRef.current = true;
|
|
54530
54470
|
prevPathnameRef.current = pathname;
|
|
@@ -54538,13 +54478,13 @@ function useCloseOnNavigation(close, pathname) {
|
|
|
54538
54478
|
}
|
|
54539
54479
|
|
|
54540
54480
|
// src/components/chat/hooks/use-chat.ts
|
|
54541
|
-
import { useState as
|
|
54481
|
+
import { useState as useState124, useCallback as useCallback54, useEffect as useEffect93, useRef as useRef76 } from "react";
|
|
54542
54482
|
|
|
54543
54483
|
// src/components/chat/hooks/use-sse.ts
|
|
54544
|
-
import { useState as
|
|
54484
|
+
import { useState as useState123, useCallback as useCallback53, useRef as useRef75 } from "react";
|
|
54545
54485
|
function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
54546
|
-
const [isStreaming, setIsStreaming] =
|
|
54547
|
-
const [error, setError] =
|
|
54486
|
+
const [isStreaming, setIsStreaming] = useState123(false);
|
|
54487
|
+
const [error, setError] = useState123(null);
|
|
54548
54488
|
const abortControllerRef = useRef75(null);
|
|
54549
54489
|
const fallbackStream = useCallback53(async function* () {
|
|
54550
54490
|
throw new Error(
|
|
@@ -54611,12 +54551,12 @@ function useChat({
|
|
|
54611
54551
|
initialMessages,
|
|
54612
54552
|
onMessagesChange
|
|
54613
54553
|
} = {}) {
|
|
54614
|
-
const [messages, setMessages] =
|
|
54615
|
-
const [isTyping, setIsTyping] =
|
|
54554
|
+
const [messages, setMessages] = useState124(() => initialMessages ?? []);
|
|
54555
|
+
const [isTyping, setIsTyping] = useState124(false);
|
|
54616
54556
|
const currentAssistantSegmentsRef = useRef76([]);
|
|
54617
54557
|
const onMessagesChangeRef = useRef76(onMessagesChange);
|
|
54618
54558
|
onMessagesChangeRef.current = onMessagesChange;
|
|
54619
|
-
|
|
54559
|
+
useEffect93(() => {
|
|
54620
54560
|
onMessagesChangeRef.current?.(messages);
|
|
54621
54561
|
}, [messages]);
|
|
54622
54562
|
const {
|
|
@@ -55153,7 +55093,7 @@ function pruneStaleChatConversationStorage(source) {
|
|
|
55153
55093
|
}
|
|
55154
55094
|
|
|
55155
55095
|
// src/components/chat/hooks/use-chat-history-hydration.ts
|
|
55156
|
-
import { useEffect as
|
|
55096
|
+
import { useEffect as useEffect94, useRef as useRef77, useState as useState125 } from "react";
|
|
55157
55097
|
function useChatHistoryHydration({
|
|
55158
55098
|
active,
|
|
55159
55099
|
source,
|
|
@@ -55163,9 +55103,9 @@ function useChatHistoryHydration({
|
|
|
55163
55103
|
hydrateMessages,
|
|
55164
55104
|
bumpMetaTick
|
|
55165
55105
|
}) {
|
|
55166
|
-
const [isHydratingHistory, setIsHydratingHistory] =
|
|
55106
|
+
const [isHydratingHistory, setIsHydratingHistory] = useState125(false);
|
|
55167
55107
|
const hydratedKeyRef = useRef77(null);
|
|
55168
|
-
|
|
55108
|
+
useEffect94(() => {
|
|
55169
55109
|
if (!active) return;
|
|
55170
55110
|
const conversationId = conversationIdRef.current;
|
|
55171
55111
|
if (!conversationId) return;
|
|
@@ -57350,7 +57290,7 @@ function createChatDialogStore(options = {}) {
|
|
|
57350
57290
|
}
|
|
57351
57291
|
|
|
57352
57292
|
// src/components/chat/stream/use-chat-stream-reducer.ts
|
|
57353
|
-
import { useCallback as useCallback55, useEffect as
|
|
57293
|
+
import { useCallback as useCallback55, useEffect as useEffect95, useMemo as useMemo51, useRef as useRef78, useSyncExternalStore } from "react";
|
|
57354
57294
|
|
|
57355
57295
|
// src/components/chat/stream/delta-batcher.ts
|
|
57356
57296
|
var DELTA_FLUSH_FALLBACK_MS = 50;
|
|
@@ -57446,7 +57386,7 @@ function useChatStreamReducer({
|
|
|
57446
57386
|
const getServerSnapshot = useCallback55(() => store.getServerSnapshot(), [store]);
|
|
57447
57387
|
const subscribe = useCallback55((listener) => store.subscribe(listener), [store]);
|
|
57448
57388
|
const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
57449
|
-
|
|
57389
|
+
useEffect95(() => store.retain(dialogId, side), [store, dialogId, side]);
|
|
57450
57390
|
const keyRef = useRef78({ dialogId, side });
|
|
57451
57391
|
if (keyRef.current.dialogId !== dialogId || keyRef.current.side !== side) {
|
|
57452
57392
|
keyRef.current = { dialogId, side };
|
|
@@ -57471,7 +57411,7 @@ function useChatStreamReducer({
|
|
|
57471
57411
|
},
|
|
57472
57412
|
[batcher, store, dialogId, side]
|
|
57473
57413
|
);
|
|
57474
|
-
|
|
57414
|
+
useEffect95(() => () => batcher.dispose(), [batcher]);
|
|
57475
57415
|
const mutate = useCallback55(
|
|
57476
57416
|
(fn) => store.mutate(dialogId, side, fn),
|
|
57477
57417
|
[store, dialogId, side]
|
|
@@ -57852,7 +57792,7 @@ var noopBumpMetaTick = () => {
|
|
|
57852
57792
|
};
|
|
57853
57793
|
|
|
57854
57794
|
// src/components/chat/hooks/use-nats-chat-adapter.ts
|
|
57855
|
-
import { useCallback as useCallback57, useEffect as
|
|
57795
|
+
import { useCallback as useCallback57, useEffect as useEffect96, useMemo as useMemo53, useRef as useRef80, useState as useState126 } from "react";
|
|
57856
57796
|
|
|
57857
57797
|
// src/chat-protocol/nats-decoder.ts
|
|
57858
57798
|
function normalizeToolCalls(raw) {
|
|
@@ -58874,7 +58814,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
58874
58814
|
modelLabel = null
|
|
58875
58815
|
} = config;
|
|
58876
58816
|
const isManagedMode = fetchDialogs !== void 0;
|
|
58877
|
-
const [internalDialogId, setInternalDialogId] =
|
|
58817
|
+
const [internalDialogId, setInternalDialogId] = useState126(null);
|
|
58878
58818
|
const dialogId = isManagedMode ? internalDialogId : controlledDialogId !== void 0 ? controlledDialogId : null;
|
|
58879
58819
|
const currentDialogIdRef = useRef80(dialogId);
|
|
58880
58820
|
currentDialogIdRef.current = dialogId;
|
|
@@ -58949,14 +58889,14 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
58949
58889
|
},
|
|
58950
58890
|
[applyEvent]
|
|
58951
58891
|
);
|
|
58952
|
-
const [dialogs, setDialogs] =
|
|
58953
|
-
const [dialogsNextCursor, setDialogsNextCursor] =
|
|
58954
|
-
const [isDialogsLoading, setIsDialogsLoading] =
|
|
58955
|
-
const [dialogsError, setDialogsError] =
|
|
58956
|
-
const [isCreatingDialog, setIsCreatingDialog] =
|
|
58957
|
-
const [messagesNextCursor, setMessagesNextCursor] =
|
|
58958
|
-
const [isMessagesLoading, setIsMessagesLoading] =
|
|
58959
|
-
const [connectionState, setConnectionState] =
|
|
58892
|
+
const [dialogs, setDialogs] = useState126([]);
|
|
58893
|
+
const [dialogsNextCursor, setDialogsNextCursor] = useState126(null);
|
|
58894
|
+
const [isDialogsLoading, setIsDialogsLoading] = useState126(false);
|
|
58895
|
+
const [dialogsError, setDialogsError] = useState126(false);
|
|
58896
|
+
const [isCreatingDialog, setIsCreatingDialog] = useState126(false);
|
|
58897
|
+
const [messagesNextCursor, setMessagesNextCursor] = useState126(null);
|
|
58898
|
+
const [isMessagesLoading, setIsMessagesLoading] = useState126(false);
|
|
58899
|
+
const [connectionState, setConnectionState] = useState126("connecting");
|
|
58960
58900
|
const hasConnectedOnceRef = useRef80(false);
|
|
58961
58901
|
const {
|
|
58962
58902
|
processChunk: catchupProcessChunk,
|
|
@@ -59034,7 +58974,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
59034
58974
|
]
|
|
59035
58975
|
);
|
|
59036
58976
|
const prevDialogIdRef = useRef80(void 0);
|
|
59037
|
-
|
|
58977
|
+
useEffect96(() => {
|
|
59038
58978
|
if (prevDialogIdRef.current === dialogId) return;
|
|
59039
58979
|
prevDialogIdRef.current = dialogId;
|
|
59040
58980
|
historyLoadSeqRef.current += 1;
|
|
@@ -59047,7 +58987,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
59047
58987
|
if (!active || !dialogId) return;
|
|
59048
58988
|
void loadDialogHistory(dialogId);
|
|
59049
58989
|
}, [active, dialogId, dialogKey, loadDialogHistory]);
|
|
59050
|
-
|
|
58990
|
+
useEffect96(() => {
|
|
59051
58991
|
if (!active || !dialogId) return;
|
|
59052
58992
|
const store = storeRef.current;
|
|
59053
58993
|
store.mutate(dialogId, DEFAULT_DIALOG_SIDE, (r) => r.adjustAgentBusySuppression(1));
|
|
@@ -59110,7 +59050,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
59110
59050
|
})();
|
|
59111
59051
|
}
|
|
59112
59052
|
});
|
|
59113
|
-
|
|
59053
|
+
useEffect96(() => {
|
|
59114
59054
|
if (!active || !dialogId) {
|
|
59115
59055
|
setConnectionState("connected");
|
|
59116
59056
|
return;
|
|
@@ -59149,7 +59089,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
59149
59089
|
const reloadDialogs = useCallback57(() => {
|
|
59150
59090
|
void loadDialogsPage();
|
|
59151
59091
|
}, [loadDialogsPage]);
|
|
59152
|
-
|
|
59092
|
+
useEffect96(() => {
|
|
59153
59093
|
if (!fetchDialogs) return;
|
|
59154
59094
|
if (!active) return;
|
|
59155
59095
|
if (initialDialogsLoadedRef.current) return;
|
|
@@ -59813,19 +59753,19 @@ function buildStreamFrames(messages) {
|
|
|
59813
59753
|
|
|
59814
59754
|
// src/components/chat/embeddable-chat.tsx
|
|
59815
59755
|
init_cn();
|
|
59816
|
-
import { useCallback as useCallback60, useEffect as
|
|
59756
|
+
import { useCallback as useCallback60, useEffect as useEffect97, useMemo as useMemo56, useRef as useRef83, useState as useState128 } from "react";
|
|
59817
59757
|
import * as DialogPrimitive5 from "@radix-ui/react-dialog";
|
|
59818
59758
|
import { usePreventScroll as usePreventScroll5 } from "@react-aria/overlays";
|
|
59819
59759
|
import { isIOS } from "@react-aria/utils";
|
|
59820
59760
|
|
|
59821
59761
|
// node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
|
|
59822
|
-
import * as
|
|
59762
|
+
import * as React152 from "react";
|
|
59823
59763
|
|
|
59824
59764
|
// node_modules/@radix-ui/react-primitive/dist/index.mjs
|
|
59825
|
-
import * as
|
|
59765
|
+
import * as React151 from "react";
|
|
59826
59766
|
import * as ReactDOM2 from "react-dom";
|
|
59827
59767
|
import { createSlot } from "@radix-ui/react-slot";
|
|
59828
|
-
import { jsx as
|
|
59768
|
+
import { jsx as jsx391 } from "react/jsx-runtime";
|
|
59829
59769
|
var __defProp3 = Object.defineProperty;
|
|
59830
59770
|
var __name3 = (target, value) => __defProp3(target, "name", { value, configurable: true });
|
|
59831
59771
|
var NODES = [
|
|
@@ -59849,13 +59789,13 @@ var NODES = [
|
|
|
59849
59789
|
];
|
|
59850
59790
|
var Primitive = NODES.reduce((primitive, node) => {
|
|
59851
59791
|
const Slot2 = createSlot(`Primitive.${node}`);
|
|
59852
|
-
const Node2 =
|
|
59792
|
+
const Node2 = React151.forwardRef((props, forwardedRef) => {
|
|
59853
59793
|
const { asChild, ...primitiveProps } = props;
|
|
59854
59794
|
const Comp = asChild ? Slot2 : node;
|
|
59855
59795
|
if (typeof window !== "undefined") {
|
|
59856
59796
|
window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
|
|
59857
59797
|
}
|
|
59858
|
-
return /* @__PURE__ */
|
|
59798
|
+
return /* @__PURE__ */ jsx391(Comp, { ...primitiveProps, ref: forwardedRef });
|
|
59859
59799
|
});
|
|
59860
59800
|
Node2.displayName = `Primitive.${node}`;
|
|
59861
59801
|
return { ...primitive, [node]: Node2 };
|
|
@@ -59866,7 +59806,7 @@ function dispatchDiscreteCustomEvent(target, event) {
|
|
|
59866
59806
|
__name3(dispatchDiscreteCustomEvent, "dispatchDiscreteCustomEvent");
|
|
59867
59807
|
|
|
59868
59808
|
// node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
|
|
59869
|
-
import { jsx as
|
|
59809
|
+
import { jsx as jsx392 } from "react/jsx-runtime";
|
|
59870
59810
|
var __defProp4 = Object.defineProperty;
|
|
59871
59811
|
var __name4 = (target, value) => __defProp4(target, "name", { value, configurable: true });
|
|
59872
59812
|
var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
@@ -59882,9 +59822,9 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
|
59882
59822
|
whiteSpace: "nowrap",
|
|
59883
59823
|
wordWrap: "normal"
|
|
59884
59824
|
});
|
|
59885
|
-
var VisuallyHidden = /* @__PURE__ */
|
|
59825
|
+
var VisuallyHidden = /* @__PURE__ */ React152.forwardRef(
|
|
59886
59826
|
/* @__PURE__ */ __name4(function VisuallyHidden2(props, forwardedRef) {
|
|
59887
|
-
return /* @__PURE__ */
|
|
59827
|
+
return /* @__PURE__ */ jsx392(
|
|
59888
59828
|
Primitive.span,
|
|
59889
59829
|
{
|
|
59890
59830
|
...props,
|
|
@@ -59900,7 +59840,7 @@ init_button2();
|
|
|
59900
59840
|
import { FileText as FileText8, MessageSquare as MessageSquare3 } from "lucide-react";
|
|
59901
59841
|
|
|
59902
59842
|
// src/components/chat/hooks/use-chat-dialog-manager.ts
|
|
59903
|
-
import { useCallback as useCallback59, useMemo as useMemo55, useRef as useRef82, useState as
|
|
59843
|
+
import { useCallback as useCallback59, useMemo as useMemo55, useRef as useRef82, useState as useState127 } from "react";
|
|
59904
59844
|
function useChatDialogManager({
|
|
59905
59845
|
dialogs,
|
|
59906
59846
|
activeDialogId,
|
|
@@ -59911,8 +59851,8 @@ function useChatDialogManager({
|
|
|
59911
59851
|
fetchArchivedDialogs,
|
|
59912
59852
|
unarchiveDialog
|
|
59913
59853
|
}) {
|
|
59914
|
-
const [renameTarget, setRenameTarget] =
|
|
59915
|
-
const [archiveTarget, setArchiveTarget] =
|
|
59854
|
+
const [renameTarget, setRenameTarget] = useState127(null);
|
|
59855
|
+
const [archiveTarget, setArchiveTarget] = useState127(null);
|
|
59916
59856
|
const handleConfirmRename = useCallback59(
|
|
59917
59857
|
(name) => {
|
|
59918
59858
|
if (renameTarget) void renameDialog(renameTarget.id, name);
|
|
@@ -59935,11 +59875,11 @@ function useChatDialogManager({
|
|
|
59935
59875
|
}
|
|
59936
59876
|
setArchiveTarget(null);
|
|
59937
59877
|
}, [archiveTarget, archiveDialog, activeDialogId, clearMessages]);
|
|
59938
|
-
const [archiveOpen, setArchiveOpen] =
|
|
59939
|
-
const [archivedDialogs, setArchivedDialogs] =
|
|
59940
|
-
const [archivedCursor, setArchivedCursor] =
|
|
59941
|
-
const [archivedLoading, setArchivedLoading] =
|
|
59942
|
-
const [archivedPending, setArchivedPending] =
|
|
59878
|
+
const [archiveOpen, setArchiveOpen] = useState127(false);
|
|
59879
|
+
const [archivedDialogs, setArchivedDialogs] = useState127([]);
|
|
59880
|
+
const [archivedCursor, setArchivedCursor] = useState127(null);
|
|
59881
|
+
const [archivedLoading, setArchivedLoading] = useState127(false);
|
|
59882
|
+
const [archivedPending, setArchivedPending] = useState127(false);
|
|
59943
59883
|
const archivedRequestIdRef = useRef82(0);
|
|
59944
59884
|
const loadArchivedPage = useCallback59(
|
|
59945
59885
|
async (cursor) => {
|
|
@@ -59981,10 +59921,10 @@ function useChatDialogManager({
|
|
|
59981
59921
|
void loadArchivedPage();
|
|
59982
59922
|
}, [loadArchivedPage]);
|
|
59983
59923
|
const closeArchive = useCallback59(() => setArchiveOpen(false), []);
|
|
59984
|
-
const [viewingArchivedId, setViewingArchivedId] =
|
|
59924
|
+
const [viewingArchivedId, setViewingArchivedId] = useState127(
|
|
59985
59925
|
null
|
|
59986
59926
|
);
|
|
59987
|
-
const [openingDialogId, setOpeningDialogId] =
|
|
59927
|
+
const [openingDialogId, setOpeningDialogId] = useState127(null);
|
|
59988
59928
|
const handleSelectDialog = useCallback59(
|
|
59989
59929
|
(id) => {
|
|
59990
59930
|
setViewingArchivedId(null);
|
|
@@ -60003,7 +59943,7 @@ function useChatDialogManager({
|
|
|
60003
59943
|
},
|
|
60004
59944
|
[selectDialog]
|
|
60005
59945
|
);
|
|
60006
|
-
const [restoreTarget, setRestoreTarget] =
|
|
59946
|
+
const [restoreTarget, setRestoreTarget] = useState127(null);
|
|
60007
59947
|
const handleConfirmRestore = useCallback59(async () => {
|
|
60008
59948
|
if (restoreTarget) {
|
|
60009
59949
|
try {
|
|
@@ -60074,7 +60014,7 @@ function useChatDialogManager({
|
|
|
60074
60014
|
|
|
60075
60015
|
// src/components/chat/embeddable-chat.tsx
|
|
60076
60016
|
init_next_navigation();
|
|
60077
|
-
import { Fragment as Fragment89, jsx as
|
|
60017
|
+
import { Fragment as Fragment89, jsx as jsx393, jsxs as jsxs310 } from "react/jsx-runtime";
|
|
60078
60018
|
var DRAWER_DEFAULT_WIDTH_RATIO = 0.5;
|
|
60079
60019
|
var DRAWER_WIDTH_KEY = "mingo-chat-width-v3";
|
|
60080
60020
|
var DRAWER_DEFAULT_WIDTH_PX = 750;
|
|
@@ -60096,9 +60036,9 @@ var SPLIT_MIN_WIDTH = HISTORY_RAIL_WIDTH + CHAT_BLOCK_MIN_WIDTH;
|
|
|
60096
60036
|
var RAIL_COLLAPSED_STORAGE_KEY = "mingo-chat-history-collapsed";
|
|
60097
60037
|
var RAIL_ANIM_MS = 320;
|
|
60098
60038
|
function useRailPresence(open) {
|
|
60099
|
-
const [mounted, setMounted] =
|
|
60100
|
-
const [active, setActive] =
|
|
60101
|
-
|
|
60039
|
+
const [mounted, setMounted] = useState128(open);
|
|
60040
|
+
const [active, setActive] = useState128(false);
|
|
60041
|
+
useEffect97(() => {
|
|
60102
60042
|
if (open) {
|
|
60103
60043
|
setMounted(true);
|
|
60104
60044
|
let raf2 = 0;
|
|
@@ -60122,7 +60062,7 @@ function RailSlot({
|
|
|
60122
60062
|
innerClassName,
|
|
60123
60063
|
children
|
|
60124
60064
|
}) {
|
|
60125
|
-
return /* @__PURE__ */
|
|
60065
|
+
return /* @__PURE__ */ jsx393(
|
|
60126
60066
|
"div",
|
|
60127
60067
|
{
|
|
60128
60068
|
className: cn(
|
|
@@ -60131,7 +60071,7 @@ function RailSlot({
|
|
|
60131
60071
|
"shrink-0 overflow-hidden border-r border-ods-border transition-[width,opacity] ease-out",
|
|
60132
60072
|
active ? "w-80 opacity-100 duration-[240ms]" : "w-0 opacity-0 duration-[300ms]"
|
|
60133
60073
|
),
|
|
60134
|
-
children: /* @__PURE__ */
|
|
60074
|
+
children: /* @__PURE__ */ jsx393("div", { className: cn("h-full w-80", innerClassName), children })
|
|
60135
60075
|
}
|
|
60136
60076
|
);
|
|
60137
60077
|
}
|
|
@@ -60188,7 +60128,7 @@ function SourceChip({
|
|
|
60188
60128
|
sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
|
|
60189
60129
|
);
|
|
60190
60130
|
const Icon2 = cta.icon;
|
|
60191
|
-
const icon = /* @__PURE__ */
|
|
60131
|
+
const icon = /* @__PURE__ */ jsx393(Icon2, { className: "h-3.5 w-3.5" });
|
|
60192
60132
|
const chipClass = chatChipClass({ tone: "secondary" });
|
|
60193
60133
|
const decideTab = (href, targetPlatform) => computeIsNewTab(runtime, href, targetPlatform);
|
|
60194
60134
|
if (src.items && src.items.length > 0) {
|
|
@@ -60208,22 +60148,22 @@ function SourceChip({
|
|
|
60208
60148
|
const ItemIcon = itemCta.icon;
|
|
60209
60149
|
return {
|
|
60210
60150
|
label: item.name,
|
|
60211
|
-
icon: /* @__PURE__ */
|
|
60151
|
+
icon: /* @__PURE__ */ jsx393(ItemIcon, { className: "h-3.5 w-3.5" }),
|
|
60212
60152
|
href: itemCta.href ?? void 0,
|
|
60213
60153
|
targetPlatform: itemCta.targetPlatform,
|
|
60214
60154
|
path: item.path ?? null,
|
|
60215
60155
|
secondaryAction: onDiscuss && itemCta.askable && itemCta.chatRef ? {
|
|
60216
|
-
icon: /* @__PURE__ */
|
|
60156
|
+
icon: /* @__PURE__ */ jsx393(MessageSquare3, {}),
|
|
60217
60157
|
label: `Ask about ${item.name}`,
|
|
60218
60158
|
onClick: () => onDiscuss(itemCta.chatRef)
|
|
60219
60159
|
} : void 0
|
|
60220
60160
|
};
|
|
60221
60161
|
});
|
|
60222
|
-
return /* @__PURE__ */
|
|
60162
|
+
return /* @__PURE__ */ jsx393(
|
|
60223
60163
|
HoverDropdown,
|
|
60224
60164
|
{
|
|
60225
60165
|
items: dropdownItems,
|
|
60226
|
-
renderAnchor: ({ href, targetPlatform, path, className, children }) => /* @__PURE__ */
|
|
60166
|
+
renderAnchor: ({ href, targetPlatform, path, className, children }) => /* @__PURE__ */ jsx393(
|
|
60227
60167
|
NavLinkAnchorViaRuntime,
|
|
60228
60168
|
{
|
|
60229
60169
|
href,
|
|
@@ -60233,9 +60173,9 @@ function SourceChip({
|
|
|
60233
60173
|
children
|
|
60234
60174
|
}
|
|
60235
60175
|
),
|
|
60236
|
-
children: /* @__PURE__ */
|
|
60176
|
+
children: /* @__PURE__ */ jsxs310("span", { className: `${chipClass} cursor-pointer`, children: [
|
|
60237
60177
|
icon,
|
|
60238
|
-
/* @__PURE__ */
|
|
60178
|
+
/* @__PURE__ */ jsxs310("span", { className: "truncate max-w-[160px]", children: [
|
|
60239
60179
|
"[",
|
|
60240
60180
|
src.index,
|
|
60241
60181
|
"] ",
|
|
@@ -60246,18 +60186,18 @@ function SourceChip({
|
|
|
60246
60186
|
);
|
|
60247
60187
|
}
|
|
60248
60188
|
const displayName = src.name || formatRelativePath(src.path);
|
|
60249
|
-
const chipBody = (label) => /* @__PURE__ */
|
|
60189
|
+
const chipBody = (label) => /* @__PURE__ */ jsxs310(Fragment89, { children: [
|
|
60250
60190
|
icon,
|
|
60251
|
-
/* @__PURE__ */
|
|
60191
|
+
/* @__PURE__ */ jsxs310("span", { className: "truncate max-w-[160px]", children: [
|
|
60252
60192
|
"[",
|
|
60253
60193
|
src.index,
|
|
60254
60194
|
"] ",
|
|
60255
60195
|
label
|
|
60256
60196
|
] })
|
|
60257
60197
|
] });
|
|
60258
|
-
const wrapChip = (clickable) => /* @__PURE__ */
|
|
60198
|
+
const wrapChip = (clickable) => /* @__PURE__ */ jsxs310("span", { className: "inline-flex items-center", children: [
|
|
60259
60199
|
clickable,
|
|
60260
|
-
/* @__PURE__ */
|
|
60200
|
+
/* @__PURE__ */ jsx393(
|
|
60261
60201
|
SourceActionButton,
|
|
60262
60202
|
{
|
|
60263
60203
|
chatRef: cta.chatRef,
|
|
@@ -60275,7 +60215,7 @@ function SourceChip({
|
|
|
60275
60215
|
const resolvedHref = resolveHrefForRuntime(cta.href, runtime);
|
|
60276
60216
|
const isNewTab = decideTab(resolvedHref, cta.targetPlatform ?? null);
|
|
60277
60217
|
return wrapChip(
|
|
60278
|
-
/* @__PURE__ */
|
|
60218
|
+
/* @__PURE__ */ jsx393(
|
|
60279
60219
|
"a",
|
|
60280
60220
|
{
|
|
60281
60221
|
href: resolvedHref,
|
|
@@ -60291,7 +60231,7 @@ function SourceChip({
|
|
|
60291
60231
|
const resolvedHref = resolveHrefForRuntime(cta.href, runtime);
|
|
60292
60232
|
const isNewTab = decideTab(resolvedHref, cta.targetPlatform ?? null);
|
|
60293
60233
|
return wrapChip(
|
|
60294
|
-
/* @__PURE__ */
|
|
60234
|
+
/* @__PURE__ */ jsx393(
|
|
60295
60235
|
"a",
|
|
60296
60236
|
{
|
|
60297
60237
|
href: resolvedHref,
|
|
@@ -60305,7 +60245,7 @@ function SourceChip({
|
|
|
60305
60245
|
);
|
|
60306
60246
|
}
|
|
60307
60247
|
return wrapChip(
|
|
60308
|
-
/* @__PURE__ */
|
|
60248
|
+
/* @__PURE__ */ jsx393("span", { className: `${chipClass} cursor-default`, title: displayName, children: chipBody(displayName) })
|
|
60309
60249
|
);
|
|
60310
60250
|
}
|
|
60311
60251
|
function SourceChips({
|
|
@@ -60316,13 +60256,13 @@ function SourceChips({
|
|
|
60316
60256
|
onClose,
|
|
60317
60257
|
onDiscuss
|
|
60318
60258
|
}) {
|
|
60319
|
-
const [expanded, setExpanded] =
|
|
60259
|
+
const [expanded, setExpanded] = useState128(false);
|
|
60320
60260
|
if (cited.length === 0) {
|
|
60321
60261
|
const fallback = uncited.slice(0, FALLBACK_TOP_RETRIEVED);
|
|
60322
60262
|
if (fallback.length === 0) return null;
|
|
60323
|
-
return /* @__PURE__ */
|
|
60324
|
-
/* @__PURE__ */
|
|
60325
|
-
/* @__PURE__ */
|
|
60263
|
+
return /* @__PURE__ */ jsxs310("div", { className: "flex flex-col gap-1.5 mt-2 pt-2 border-t border-ods-border", children: [
|
|
60264
|
+
/* @__PURE__ */ jsx393("span", { className: "text-h6 text-ods-text-muted uppercase", children: "Top retrieved sources" }),
|
|
60265
|
+
/* @__PURE__ */ jsx393("div", { className: "flex flex-wrap gap-1.5", children: fallback.map((src) => /* @__PURE__ */ jsx393(
|
|
60326
60266
|
SourceChip,
|
|
60327
60267
|
{
|
|
60328
60268
|
src,
|
|
@@ -60337,14 +60277,14 @@ function SourceChips({
|
|
|
60337
60277
|
}
|
|
60338
60278
|
const hiddenCount = uncited.length;
|
|
60339
60279
|
const hasOverflow = hiddenCount > 0;
|
|
60340
|
-
return /* @__PURE__ */
|
|
60341
|
-
/* @__PURE__ */
|
|
60342
|
-
/* @__PURE__ */
|
|
60280
|
+
return /* @__PURE__ */ jsxs310("div", { className: "flex flex-col gap-1.5 mt-2 pt-2 border-t border-ods-border", children: [
|
|
60281
|
+
/* @__PURE__ */ jsx393("span", { className: "text-h6 text-ods-text-muted uppercase", children: "Sources" }),
|
|
60282
|
+
/* @__PURE__ */ jsxs310(
|
|
60343
60283
|
"div",
|
|
60344
60284
|
{
|
|
60345
60285
|
className: `flex flex-wrap gap-1.5 ${expanded ? "max-h-[200px] overflow-y-auto overscroll-contain" : ""}`,
|
|
60346
60286
|
children: [
|
|
60347
|
-
cited.map((src) => /* @__PURE__ */
|
|
60287
|
+
cited.map((src) => /* @__PURE__ */ jsx393(
|
|
60348
60288
|
SourceChip,
|
|
60349
60289
|
{
|
|
60350
60290
|
src,
|
|
@@ -60355,7 +60295,7 @@ function SourceChips({
|
|
|
60355
60295
|
},
|
|
60356
60296
|
src.index
|
|
60357
60297
|
)),
|
|
60358
|
-
expanded && uncited.map((src) => /* @__PURE__ */
|
|
60298
|
+
expanded && uncited.map((src) => /* @__PURE__ */ jsx393(
|
|
60359
60299
|
SourceChip,
|
|
60360
60300
|
{
|
|
60361
60301
|
src,
|
|
@@ -60366,7 +60306,7 @@ function SourceChips({
|
|
|
60366
60306
|
},
|
|
60367
60307
|
src.index
|
|
60368
60308
|
)),
|
|
60369
|
-
hasOverflow && /* @__PURE__ */
|
|
60309
|
+
hasOverflow && /* @__PURE__ */ jsx393(
|
|
60370
60310
|
"button",
|
|
60371
60311
|
{
|
|
60372
60312
|
onClick: () => setExpanded(!expanded),
|
|
@@ -60382,7 +60322,7 @@ function SourceChips({
|
|
|
60382
60322
|
] });
|
|
60383
60323
|
}
|
|
60384
60324
|
function EmbeddableChat(props) {
|
|
60385
|
-
return /* @__PURE__ */
|
|
60325
|
+
return /* @__PURE__ */ jsx393(EmbeddableChatInner, { ...props });
|
|
60386
60326
|
}
|
|
60387
60327
|
function EmbeddableChatInner({
|
|
60388
60328
|
baseRoute,
|
|
@@ -60425,7 +60365,7 @@ function EmbeddableChatInner({
|
|
|
60425
60365
|
const commandsUrl = runtime.endpoints.commandsUrl;
|
|
60426
60366
|
const { attachmentsEnabled, user: identityUser } = useChatIdentity();
|
|
60427
60367
|
const viewUrlPrefix = runtime.endpoints.attachmentViewUrlPrefix;
|
|
60428
|
-
|
|
60368
|
+
useEffect97(() => {
|
|
60429
60369
|
if (process.env.NODE_ENV !== "production") {
|
|
60430
60370
|
const hasOpen = open !== void 0;
|
|
60431
60371
|
const hasHandler = onOpenChange !== void 0;
|
|
@@ -60441,13 +60381,13 @@ function EmbeddableChatInner({
|
|
|
60441
60381
|
defaultProp: defaultOpen ?? false,
|
|
60442
60382
|
onChange: onOpenChange
|
|
60443
60383
|
});
|
|
60444
|
-
const [autoFocusInput] =
|
|
60384
|
+
const [autoFocusInput] = useState128(() => {
|
|
60445
60385
|
if (typeof window === "undefined") return false;
|
|
60446
60386
|
return !window.matchMedia("(pointer: coarse)").matches;
|
|
60447
60387
|
});
|
|
60448
60388
|
usePreventScroll5({ isDisabled: !isOpen || shellLess });
|
|
60449
60389
|
const navigatingAwayRef = useRef83(false);
|
|
60450
|
-
|
|
60390
|
+
useEffect97(() => {
|
|
60451
60391
|
if (!isOpen) return;
|
|
60452
60392
|
if (shellLess) return;
|
|
60453
60393
|
if (typeof window === "undefined") return;
|
|
@@ -60474,7 +60414,7 @@ function EmbeddableChatInner({
|
|
|
60474
60414
|
};
|
|
60475
60415
|
}, [isOpen, shellLess]);
|
|
60476
60416
|
const chatInputRef = useRef83(null);
|
|
60477
|
-
const [quickActionPreview, setQuickActionPreview] =
|
|
60417
|
+
const [quickActionPreview, setQuickActionPreview] = useState128(null);
|
|
60478
60418
|
const slashCommandsProp = useMemo56(
|
|
60479
60419
|
() => ({
|
|
60480
60420
|
fetchCommands: (prefix, signal) => fetchSlashCommands(prefix, signal, commandsUrl),
|
|
@@ -60517,7 +60457,7 @@ function EmbeddableChatInner({
|
|
|
60517
60457
|
}, [mingoState, mingoDialogCapabilities, effectiveModes]);
|
|
60518
60458
|
const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
|
|
60519
60459
|
const initialActiveMode = controlledActiveMode ?? defaultActiveMode ?? (effectiveModes.guide ? "guide" : "mingo");
|
|
60520
|
-
const [uncontrolledActiveMode, setUncontrolledActiveMode] =
|
|
60460
|
+
const [uncontrolledActiveMode, setUncontrolledActiveMode] = useState128(initialActiveMode);
|
|
60521
60461
|
const activeMode = controlledActiveMode ?? uncontrolledActiveMode;
|
|
60522
60462
|
const handleActiveModeChange = useCallback60(
|
|
60523
60463
|
(next) => {
|
|
@@ -60580,7 +60520,7 @@ function EmbeddableChatInner({
|
|
|
60580
60520
|
loadMoreMessages
|
|
60581
60521
|
} = useUnifiedChat({ modes: effectiveModes, activeMode, mingoStateOverride: mingoState });
|
|
60582
60522
|
const guidePromptSentRef = useRef83(false);
|
|
60583
|
-
|
|
60523
|
+
useEffect97(() => {
|
|
60584
60524
|
if (!guidePendingPrompt) {
|
|
60585
60525
|
guidePromptSentRef.current = false;
|
|
60586
60526
|
return;
|
|
@@ -60601,15 +60541,15 @@ function EmbeddableChatInner({
|
|
|
60601
60541
|
const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
|
|
60602
60542
|
const contextMaxItems = contextPicker?.maxItems ?? 10;
|
|
60603
60543
|
const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
|
|
60604
|
-
const [contextItems, setContextItems] =
|
|
60605
|
-
const [contextPickerOpen, setContextPickerOpen] =
|
|
60606
|
-
const [mentionQuery, setMentionQuery] =
|
|
60544
|
+
const [contextItems, setContextItems] = useState128([]);
|
|
60545
|
+
const [contextPickerOpen, setContextPickerOpen] = useState128(false);
|
|
60546
|
+
const [mentionQuery, setMentionQuery] = useState128(null);
|
|
60607
60547
|
const mentionActiveRef = useRef83(false);
|
|
60608
|
-
|
|
60548
|
+
useEffect97(() => {
|
|
60609
60549
|
mentionActiveRef.current = mentionQuery !== null;
|
|
60610
60550
|
}, [mentionQuery]);
|
|
60611
60551
|
const mentionKeysRef = useRef83(/* @__PURE__ */ new Set());
|
|
60612
|
-
|
|
60552
|
+
useEffect97(() => {
|
|
60613
60553
|
setContextItems([]);
|
|
60614
60554
|
setMentionQuery(null);
|
|
60615
60555
|
mentionKeysRef.current.clear();
|
|
@@ -60702,7 +60642,7 @@ function EmbeddableChatInner({
|
|
|
60702
60642
|
[discussRef, displayRef, resolvedBaseRoute, chipBasePlatform, extras]
|
|
60703
60643
|
);
|
|
60704
60644
|
const mingoAssistantIcon = useMemo56(
|
|
60705
|
-
() => effectiveAssistantIcon ? /* @__PURE__ */
|
|
60645
|
+
() => effectiveAssistantIcon ? /* @__PURE__ */ jsx393(EntityIcon, { icon: effectiveAssistantIcon, size: 24 }) : /* @__PURE__ */ jsx393(MingoIcon, { className: "h-6 w-6", cornerColor: "var(--ods-flamingo-cyan-base)" }),
|
|
60706
60646
|
[effectiveAssistantIcon]
|
|
60707
60647
|
);
|
|
60708
60648
|
const timestampCacheRef = useRef83(/* @__PURE__ */ new Map());
|
|
@@ -60843,7 +60783,7 @@ function EmbeddableChatInner({
|
|
|
60843
60783
|
});
|
|
60844
60784
|
const handleOpen = useCallback60(() => setIsOpen(true), [setIsOpen]);
|
|
60845
60785
|
useCloseOnNavigation(handleNavigationClose, null);
|
|
60846
|
-
|
|
60786
|
+
useEffect97(() => {
|
|
60847
60787
|
const handler = (e) => {
|
|
60848
60788
|
const detail = e.detail;
|
|
60849
60789
|
if (!detail || detail.source !== source) return;
|
|
@@ -60853,7 +60793,7 @@ function EmbeddableChatInner({
|
|
|
60853
60793
|
window.addEventListener("ask-ai:open-with-ref", handler);
|
|
60854
60794
|
return () => window.removeEventListener("ask-ai:open-with-ref", handler);
|
|
60855
60795
|
}, [source, discussRef, setIsOpen]);
|
|
60856
|
-
|
|
60796
|
+
useEffect97(() => {
|
|
60857
60797
|
const handler = (e) => {
|
|
60858
60798
|
const detail = e.detail;
|
|
60859
60799
|
if (!detail || detail.source !== source) return;
|
|
@@ -60870,7 +60810,7 @@ function EmbeddableChatInner({
|
|
|
60870
60810
|
const contentViewKey = hasConversation ? "conversation" : activeMode;
|
|
60871
60811
|
const isGuideEmpty = !hasConversation && activeMode === "guide";
|
|
60872
60812
|
const isQuickActionEmpty = !hasConversation && (activeMode === "guide" || activeMode === "mingo");
|
|
60873
|
-
|
|
60813
|
+
useEffect97(() => {
|
|
60874
60814
|
if (!isQuickActionEmpty) setQuickActionPreview(null);
|
|
60875
60815
|
}, [isQuickActionEmpty]);
|
|
60876
60816
|
const guideCanReturnToMingo = isGuideEmpty && hasMingoMode;
|
|
@@ -60912,11 +60852,11 @@ function EmbeddableChatInner({
|
|
|
60912
60852
|
const uncited = sources.filter((s) => !seenOrder.has(s.index));
|
|
60913
60853
|
return { cited, uncited };
|
|
60914
60854
|
}, [lastAssistantMsg, chatLoading]);
|
|
60915
|
-
const [portalHost, setPortalHost] =
|
|
60916
|
-
const [panelBoundary, setPanelBoundary] =
|
|
60917
|
-
const [panelWidth, setPanelWidth] =
|
|
60855
|
+
const [portalHost, setPortalHost] = useState128(null);
|
|
60856
|
+
const [panelBoundary, setPanelBoundary] = useState128(null);
|
|
60857
|
+
const [panelWidth, setPanelWidth] = useState128(0);
|
|
60918
60858
|
const panelMeasureRef = useRef83(null);
|
|
60919
|
-
|
|
60859
|
+
useEffect97(() => {
|
|
60920
60860
|
const el = panelMeasureRef.current;
|
|
60921
60861
|
if (!el || typeof ResizeObserver === "undefined") return;
|
|
60922
60862
|
const ro = new ResizeObserver((entries) => {
|
|
@@ -60931,8 +60871,8 @@ function EmbeddableChatInner({
|
|
|
60931
60871
|
panelMeasureRef.current = node;
|
|
60932
60872
|
setPanelBoundary(node);
|
|
60933
60873
|
}, []);
|
|
60934
|
-
const [railCollapsed, setRailCollapsed] =
|
|
60935
|
-
|
|
60874
|
+
const [railCollapsed, setRailCollapsed] = useState128(false);
|
|
60875
|
+
useEffect97(() => {
|
|
60936
60876
|
try {
|
|
60937
60877
|
if (window.localStorage.getItem(RAIL_COLLAPSED_STORAGE_KEY) === "1")
|
|
60938
60878
|
setRailCollapsed(true);
|
|
@@ -60949,15 +60889,15 @@ function EmbeddableChatInner({
|
|
|
60949
60889
|
return next;
|
|
60950
60890
|
});
|
|
60951
60891
|
}, []);
|
|
60952
|
-
const [railSearchOpen, setRailSearchOpen] =
|
|
60892
|
+
const [railSearchOpen, setRailSearchOpen] = useState128(false);
|
|
60953
60893
|
const splitEligible = activeMode === "mingo";
|
|
60954
60894
|
const canSplit = panelWidth >= SPLIT_MIN_WIDTH;
|
|
60955
60895
|
const wideMingo = splitEligible && canSplit && !previewMode;
|
|
60956
60896
|
const splitActive = wideMingo && !railCollapsed;
|
|
60957
60897
|
const railPresence = useRailPresence(splitActive);
|
|
60958
60898
|
const showWideHeader = wideMingo || railPresence.mounted;
|
|
60959
|
-
const [composeOpen, setComposeOpen] =
|
|
60960
|
-
|
|
60899
|
+
const [composeOpen, setComposeOpen] = useState128(false);
|
|
60900
|
+
useEffect97(() => {
|
|
60961
60901
|
if (hasConversation) setComposeOpen(false);
|
|
60962
60902
|
}, [hasConversation]);
|
|
60963
60903
|
const isMingoMode = activeMode === "mingo";
|
|
@@ -61013,17 +60953,17 @@ function EmbeddableChatInner({
|
|
|
61013
60953
|
onArchive: headerOnArchive,
|
|
61014
60954
|
onOpenArchive: headerOnOpenArchive
|
|
61015
60955
|
};
|
|
61016
|
-
const body = /* @__PURE__ */
|
|
61017
|
-
/* @__PURE__ */
|
|
60956
|
+
const body = /* @__PURE__ */ jsx393(PortalContainerContext.Provider, { value: portalHost, children: /* @__PURE__ */ jsxs310(CollisionBoundaryContext.Provider, { value: panelBoundary, children: [
|
|
60957
|
+
/* @__PURE__ */ jsx393(
|
|
61018
60958
|
"div",
|
|
61019
60959
|
{
|
|
61020
60960
|
ref: setPanelNode,
|
|
61021
60961
|
className: `flex h-full flex-col overflow-hidden transition-colors duration-200 ${archiveOpen && !splitActive || stackedListView ? "bg-ods-card" : "bg-ods-bg"} ${previewMode ? "pointer-events-none select-none" : ""}`,
|
|
61022
|
-
children: archiveOpen && !splitActive ? /* @__PURE__ */
|
|
60962
|
+
children: archiveOpen && !splitActive ? /* @__PURE__ */ jsx393(
|
|
61023
60963
|
"div",
|
|
61024
60964
|
{
|
|
61025
60965
|
className: "flex flex-1 min-h-0 flex-col animate-in fade-in-0 duration-200",
|
|
61026
|
-
children: /* @__PURE__ */
|
|
60966
|
+
children: /* @__PURE__ */ jsx393(
|
|
61027
60967
|
ChatArchivePage,
|
|
61028
60968
|
{
|
|
61029
60969
|
dialogs: archivedDialogs,
|
|
@@ -61040,7 +60980,7 @@ function EmbeddableChatInner({
|
|
|
61040
60980
|
)
|
|
61041
60981
|
},
|
|
61042
60982
|
"archive-view"
|
|
61043
|
-
) : /* @__PURE__ */
|
|
60983
|
+
) : /* @__PURE__ */ jsxs310(
|
|
61044
60984
|
"div",
|
|
61045
60985
|
{
|
|
61046
60986
|
className: "flex flex-1 min-h-0 flex-col animate-in fade-in-0 duration-200",
|
|
@@ -61058,8 +60998,8 @@ function EmbeddableChatInner({
|
|
|
61058
60998
|
// the viewport `md` breakpoint — otherwise a 720–799px panel on a
|
|
61059
60999
|
// sub-`md` viewport would split the body yet drop to the mobile
|
|
61060
61000
|
// single-bar header (no rail search / collapse controls).
|
|
61061
|
-
/* @__PURE__ */
|
|
61062
|
-
railPresence.mounted && /* @__PURE__ */
|
|
61001
|
+
/* @__PURE__ */ jsxs310("div", { className: "flex h-14 w-full flex-shrink-0 overflow-hidden border-b border-ods-border bg-ods-card", children: [
|
|
61002
|
+
railPresence.mounted && /* @__PURE__ */ jsx393(
|
|
61063
61003
|
RailSlot,
|
|
61064
61004
|
{
|
|
61065
61005
|
active: railPresence.active,
|
|
@@ -61070,50 +61010,50 @@ function EmbeddableChatInner({
|
|
|
61070
61010
|
// renders in the rail below); the chat block is untouched.
|
|
61071
61011
|
// Back is a full-height leading cell, matching the other
|
|
61072
61012
|
// header cells (not a small inline chevron).
|
|
61073
|
-
/* @__PURE__ */
|
|
61074
|
-
/* @__PURE__ */
|
|
61013
|
+
/* @__PURE__ */ jsxs310(Fragment89, { children: [
|
|
61014
|
+
/* @__PURE__ */ jsx393(
|
|
61075
61015
|
ChatHeaderIconButton,
|
|
61076
61016
|
{
|
|
61077
61017
|
divider: "right",
|
|
61078
61018
|
onClick: closeArchive,
|
|
61079
61019
|
"aria-label": "Back to chats",
|
|
61080
|
-
children: /* @__PURE__ */
|
|
61020
|
+
children: /* @__PURE__ */ jsx393(Chevron02LeftIcon, { size: 24 })
|
|
61081
61021
|
}
|
|
61082
61022
|
),
|
|
61083
|
-
/* @__PURE__ */
|
|
61023
|
+
/* @__PURE__ */ jsx393("div", { className: "flex min-w-0 flex-1 items-center px-[var(--spacing-system-mf)]", children: /* @__PURE__ */ jsx393("span", { className: "min-w-0 flex-1 truncate text-h3 text-ods-text-primary", children: "Chat Archive" }) })
|
|
61084
61024
|
] })
|
|
61085
61025
|
) : (
|
|
61086
61026
|
// "Current Chats" rail header — title fills, then the
|
|
61087
61027
|
// search + archive controls. When search is open the
|
|
61088
61028
|
// inline field takes over the title area in place
|
|
61089
61029
|
// (Figma 116:51217) and the magnifier toggle is hidden.
|
|
61090
|
-
/* @__PURE__ */
|
|
61091
|
-
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */
|
|
61030
|
+
/* @__PURE__ */ jsxs310(Fragment89, { children: [
|
|
61031
|
+
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */ jsx393(
|
|
61092
61032
|
ChatHeaderSearchField,
|
|
61093
61033
|
{
|
|
61094
61034
|
initialValue: mingoCaps.searchQuery,
|
|
61095
61035
|
onSearchChange: mingoCaps.onSearchChange,
|
|
61096
61036
|
onCollapse: () => setRailSearchOpen(false)
|
|
61097
61037
|
}
|
|
61098
|
-
) : /* @__PURE__ */
|
|
61099
|
-
/* @__PURE__ */
|
|
61100
|
-
mingoCaps.onSearchChange && /* @__PURE__ */
|
|
61038
|
+
) : /* @__PURE__ */ jsxs310(Fragment89, { children: [
|
|
61039
|
+
/* @__PURE__ */ jsx393("div", { className: "flex min-w-0 flex-1 items-center px-[var(--spacing-system-mf)]", children: /* @__PURE__ */ jsx393("span", { className: "min-w-0 flex-1 truncate text-h3 text-ods-text-primary", children: "Current Chats" }) }),
|
|
61040
|
+
mingoCaps.onSearchChange && /* @__PURE__ */ jsx393(
|
|
61101
61041
|
ChatHeaderIconButton,
|
|
61102
61042
|
{
|
|
61103
61043
|
onClick: () => setRailSearchOpen((o) => !o),
|
|
61104
61044
|
"aria-label": "Search chats",
|
|
61105
61045
|
"aria-pressed": railSearchOpen,
|
|
61106
|
-
children: /* @__PURE__ */
|
|
61046
|
+
children: /* @__PURE__ */ jsx393(SearchIcon, { size: 24 })
|
|
61107
61047
|
}
|
|
61108
61048
|
)
|
|
61109
61049
|
] }),
|
|
61110
|
-
headerOnOpenArchive && /* @__PURE__ */
|
|
61050
|
+
headerOnOpenArchive && /* @__PURE__ */ jsx393(ChatHeaderIconButton, { onClick: headerOnOpenArchive, "aria-label": "Chat archive", children: /* @__PURE__ */ jsx393(ClockHistoryIcon, { size: 24 }) })
|
|
61111
61051
|
] })
|
|
61112
61052
|
)
|
|
61113
61053
|
}
|
|
61114
61054
|
),
|
|
61115
|
-
/* @__PURE__ */
|
|
61116
|
-
/* @__PURE__ */
|
|
61055
|
+
/* @__PURE__ */ jsxs310("div", { className: "flex flex-1 min-w-0", children: [
|
|
61056
|
+
/* @__PURE__ */ jsx393(
|
|
61117
61057
|
"button",
|
|
61118
61058
|
{
|
|
61119
61059
|
type: "button",
|
|
@@ -61121,17 +61061,17 @@ function EmbeddableChatInner({
|
|
|
61121
61061
|
"aria-label": splitActive ? "Collapse chat list" : "Show chat list",
|
|
61122
61062
|
"aria-pressed": !splitActive,
|
|
61123
61063
|
className: "flex size-14 shrink-0 items-center justify-center border-r border-ods-border text-ods-text-secondary transition-colors hover:bg-ods-bg-hover hover:text-ods-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
61124
|
-
children: splitActive ? /* @__PURE__ */
|
|
61064
|
+
children: splitActive ? /* @__PURE__ */ jsx393(Arrow02RightIcon, { size: 24 }) : /* @__PURE__ */ jsx393(Arrow02LeftIcon, { size: 24 })
|
|
61125
61065
|
}
|
|
61126
61066
|
),
|
|
61127
|
-
/* @__PURE__ */
|
|
61128
|
-
/* @__PURE__ */
|
|
61129
|
-
/* @__PURE__ */
|
|
61130
|
-
headerPersonName && /* @__PURE__ */
|
|
61067
|
+
/* @__PURE__ */ jsxs310("div", { className: "flex flex-1 min-w-0 items-center gap-[var(--spacing-system-m)] px-[var(--spacing-system-mf)] py-[var(--spacing-system-sf)]", children: [
|
|
61068
|
+
/* @__PURE__ */ jsxs310("div", { className: "flex min-w-0 flex-col", children: [
|
|
61069
|
+
/* @__PURE__ */ jsx393("p", { className: "truncate text-h3 leading-tight text-ods-text-primary", children: headerShowBack ? headerTitle : "New Chat" }),
|
|
61070
|
+
headerPersonName && /* @__PURE__ */ jsx393("p", { className: "truncate text-h6 leading-tight text-ods-text-secondary", children: headerPersonName })
|
|
61131
61071
|
] }),
|
|
61132
61072
|
headerAvatar ? (
|
|
61133
61073
|
// Owner avatar at the title cell's right edge (Figma 113:63273).
|
|
61134
|
-
/* @__PURE__ */
|
|
61074
|
+
/* @__PURE__ */ jsx393(
|
|
61135
61075
|
SquareAvatar,
|
|
61136
61076
|
{
|
|
61137
61077
|
variant: "round",
|
|
@@ -61146,17 +61086,17 @@ function EmbeddableChatInner({
|
|
|
61146
61086
|
)
|
|
61147
61087
|
) : null
|
|
61148
61088
|
] }),
|
|
61149
|
-
isViewingArchived && headerOnRestore && /* @__PURE__ */
|
|
61150
|
-
headerShowBack && !isViewingArchived && splitHeaderMenuItems.length > 0 && /* @__PURE__ */
|
|
61089
|
+
isViewingArchived && headerOnRestore && /* @__PURE__ */ jsx393(ChatHeaderIconButton, { onClick: headerOnRestore, "aria-label": "Unarchive chat", children: /* @__PURE__ */ jsx393(Refresh01LeftIcon, { size: 24 }) }),
|
|
61090
|
+
headerShowBack && !isViewingArchived && splitHeaderMenuItems.length > 0 && /* @__PURE__ */ jsx393(
|
|
61151
61091
|
ActionsMenuDropdown,
|
|
61152
61092
|
{
|
|
61153
61093
|
triggerAriaLabel: "Chat actions",
|
|
61154
61094
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
61155
61095
|
groups: [{ items: splitHeaderMenuItems }],
|
|
61156
|
-
customTrigger: /* @__PURE__ */
|
|
61096
|
+
customTrigger: /* @__PURE__ */ jsx393(ChatHeaderIconButton, { "aria-label": "Chat actions", children: /* @__PURE__ */ jsx393(Ellipsis01Icon, { size: 24 }) })
|
|
61157
61097
|
}
|
|
61158
61098
|
),
|
|
61159
|
-
/* @__PURE__ */
|
|
61099
|
+
/* @__PURE__ */ jsx393(ChatHeaderIconButton, { onClick: handleClose, "aria-label": "Close", children: /* @__PURE__ */ jsx393(XmarkIcon, { size: 24 }) })
|
|
61160
61100
|
] })
|
|
61161
61101
|
] })
|
|
61162
61102
|
) : (
|
|
@@ -61164,11 +61104,11 @@ function EmbeddableChatInner({
|
|
|
61164
61104
|
// guide, resolved into `narrowHeaderProps` above. (Wide layouts,
|
|
61165
61105
|
// including rail-collapsed, use the wide header above.) Embedded
|
|
61166
61106
|
// previews (hero demo tabs) force the compact bar via `compact`.
|
|
61167
|
-
/* @__PURE__ */
|
|
61107
|
+
/* @__PURE__ */ jsx393(ChatPanelHeader, { ...narrowHeaderProps, compact: previewMode })
|
|
61168
61108
|
),
|
|
61169
|
-
activeMode === "guide" && hasMingoMode && /* @__PURE__ */
|
|
61170
|
-
/* @__PURE__ */
|
|
61171
|
-
railPresence.mounted && /* @__PURE__ */
|
|
61109
|
+
activeMode === "guide" && hasMingoMode && /* @__PURE__ */ jsx393(GuideModeBanner, { className: "animate-in fade-in-0 duration-200" }),
|
|
61110
|
+
/* @__PURE__ */ jsxs310("div", { className: "flex flex-1 min-h-0 overflow-hidden", children: [
|
|
61111
|
+
railPresence.mounted && /* @__PURE__ */ jsx393(
|
|
61172
61112
|
RailSlot,
|
|
61173
61113
|
{
|
|
61174
61114
|
active: railPresence.active,
|
|
@@ -61176,7 +61116,7 @@ function EmbeddableChatInner({
|
|
|
61176
61116
|
children: archiveOpen ? (
|
|
61177
61117
|
// Archive list inside the rail (header lives in the split
|
|
61178
61118
|
// header's left cell above). Right chat block stays put.
|
|
61179
|
-
/* @__PURE__ */
|
|
61119
|
+
/* @__PURE__ */ jsx393(
|
|
61180
61120
|
ChatArchivePage,
|
|
61181
61121
|
{
|
|
61182
61122
|
embedded: true,
|
|
@@ -61190,7 +61130,7 @@ function EmbeddableChatInner({
|
|
|
61190
61130
|
}
|
|
61191
61131
|
}
|
|
61192
61132
|
)
|
|
61193
|
-
) : /* @__PURE__ */
|
|
61133
|
+
) : /* @__PURE__ */ jsx393(
|
|
61194
61134
|
MingoHistoryRail,
|
|
61195
61135
|
{
|
|
61196
61136
|
dialogs,
|
|
@@ -61214,11 +61154,11 @@ function EmbeddableChatInner({
|
|
|
61214
61154
|
)
|
|
61215
61155
|
}
|
|
61216
61156
|
),
|
|
61217
|
-
/* @__PURE__ */
|
|
61157
|
+
/* @__PURE__ */ jsx393("div", { className: "flex flex-1 flex-col min-h-0 min-w-0", children: stackedListView ? (
|
|
61218
61158
|
// Narrow "Current Chats" list (Figma 341:36190) — the default
|
|
61219
61159
|
// single-column view. No composer here; "Start New Chat" opens
|
|
61220
61160
|
// the compose view.
|
|
61221
|
-
/* @__PURE__ */
|
|
61161
|
+
/* @__PURE__ */ jsx393(
|
|
61222
61162
|
MingoHistoryRail,
|
|
61223
61163
|
{
|
|
61224
61164
|
className: "animate-in fade-in-0 duration-200",
|
|
@@ -61241,17 +61181,17 @@ function EmbeddableChatInner({
|
|
|
61241
61181
|
onRetry: reloadDialogs
|
|
61242
61182
|
}
|
|
61243
61183
|
)
|
|
61244
|
-
) : /* @__PURE__ */
|
|
61245
|
-
/* @__PURE__ */
|
|
61184
|
+
) : /* @__PURE__ */ jsxs310(Fragment89, { children: [
|
|
61185
|
+
/* @__PURE__ */ jsx393(
|
|
61246
61186
|
"div",
|
|
61247
61187
|
{
|
|
61248
61188
|
ref: galleryPanelRef,
|
|
61249
61189
|
className: "flex-1 flex flex-col min-h-0 p-[var(--spacing-system-m)]",
|
|
61250
|
-
children: /* @__PURE__ */
|
|
61190
|
+
children: /* @__PURE__ */ jsx393(
|
|
61251
61191
|
"div",
|
|
61252
61192
|
{
|
|
61253
61193
|
className: "flex-1 flex flex-col min-h-0 animate-in fade-in-0 duration-200",
|
|
61254
|
-
children: hasConversation ? /* @__PURE__ */
|
|
61194
|
+
children: hasConversation ? /* @__PURE__ */ jsxs310("div", { className: "flex-1 flex flex-col min-h-0", children: [
|
|
61255
61195
|
messagesInitialLoading ? (
|
|
61256
61196
|
// Match the real list's `fullWidth` layout so swapping
|
|
61257
61197
|
// skeleton → bubbles doesn't shift the column. The panel
|
|
@@ -61263,7 +61203,7 @@ function EmbeddableChatInner({
|
|
|
61263
61203
|
// skeleton overflows a short panel and grows its OWN
|
|
61264
61204
|
// scrollbar — ugly. `fill` top-anchors + clips overflow so
|
|
61265
61205
|
// it reads as "the whole panel is loading" and never scrolls.
|
|
61266
|
-
/* @__PURE__ */
|
|
61206
|
+
/* @__PURE__ */ jsx393(
|
|
61267
61207
|
ChatMessageListSkeleton,
|
|
61268
61208
|
{
|
|
61269
61209
|
fullWidth: true,
|
|
@@ -61271,7 +61211,7 @@ function EmbeddableChatInner({
|
|
|
61271
61211
|
className: "flex-1"
|
|
61272
61212
|
}
|
|
61273
61213
|
)
|
|
61274
|
-
) : /* @__PURE__ */
|
|
61214
|
+
) : /* @__PURE__ */ jsx393(
|
|
61275
61215
|
ChatMessageList,
|
|
61276
61216
|
{
|
|
61277
61217
|
messages,
|
|
@@ -61296,7 +61236,7 @@ function EmbeddableChatInner({
|
|
|
61296
61236
|
onLoadMore: loadMoreMessages
|
|
61297
61237
|
}
|
|
61298
61238
|
),
|
|
61299
|
-
lastSources && (lastSources.cited.length > 0 || lastSources.uncited.length > 0) && !chatLoading && /* @__PURE__ */
|
|
61239
|
+
lastSources && (lastSources.cited.length > 0 || lastSources.uncited.length > 0) && !chatLoading && /* @__PURE__ */ jsx393("div", { className: "flex-shrink-0 pb-2", children: /* @__PURE__ */ jsx393(
|
|
61300
61240
|
SourceChips,
|
|
61301
61241
|
{
|
|
61302
61242
|
cited: lastSources.cited,
|
|
@@ -61312,7 +61252,7 @@ function EmbeddableChatInner({
|
|
|
61312
61252
|
centred greeting + capability grid + Guide-chat promo +
|
|
61313
61253
|
quick-action chips. Guide mode keeps the slash-command
|
|
61314
61254
|
onboarding list below. */
|
|
61315
|
-
/* @__PURE__ */
|
|
61255
|
+
/* @__PURE__ */ jsx393(
|
|
61316
61256
|
MingoWelcome,
|
|
61317
61257
|
{
|
|
61318
61258
|
onStartGuideChat: effectiveModes.guide ? () => handleActiveModeChange("guide") : void 0,
|
|
@@ -61327,7 +61267,7 @@ function EmbeddableChatInner({
|
|
|
61327
61267
|
/* Figma node 7532:328214 — Guide-mode empty state: greeting
|
|
61328
61268
|
+ slash-command onboarding list share one scroll region,
|
|
61329
61269
|
with a pinned quick-action chip row above the composer. */
|
|
61330
|
-
/* @__PURE__ */
|
|
61270
|
+
/* @__PURE__ */ jsx393(
|
|
61331
61271
|
GuideWelcome,
|
|
61332
61272
|
{
|
|
61333
61273
|
subtitle: effectiveGreeting ?? void 0,
|
|
@@ -61343,8 +61283,8 @@ function EmbeddableChatInner({
|
|
|
61343
61283
|
onQuickActionHover: (action) => setQuickActionPreview(action.prompt ?? action.label),
|
|
61344
61284
|
onQuickActionHoverEnd: () => setQuickActionPreview(null),
|
|
61345
61285
|
agentSlug: activeAgentSlug,
|
|
61346
|
-
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */
|
|
61347
|
-
!commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */
|
|
61286
|
+
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ jsxs310("div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
|
|
61287
|
+
!commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ jsx393(
|
|
61348
61288
|
MingoOnboardingCardSkeleton,
|
|
61349
61289
|
{
|
|
61350
61290
|
titleWidth: variant.titleWidth,
|
|
@@ -61366,10 +61306,10 @@ function EmbeddableChatInner({
|
|
|
61366
61306
|
chatInputRef
|
|
61367
61307
|
)
|
|
61368
61308
|
}));
|
|
61369
|
-
return /* @__PURE__ */
|
|
61309
|
+
return /* @__PURE__ */ jsx393(
|
|
61370
61310
|
MingoOnboardingCard,
|
|
61371
61311
|
{
|
|
61372
|
-
icon: /* @__PURE__ */
|
|
61312
|
+
icon: /* @__PURE__ */ jsx393(Icon2, { size: 16 }),
|
|
61373
61313
|
title: label,
|
|
61374
61314
|
slashCommand: `/${cmdId}`,
|
|
61375
61315
|
description: cmd.description,
|
|
@@ -61387,7 +61327,7 @@ function EmbeddableChatInner({
|
|
|
61387
61327
|
)
|
|
61388
61328
|
}
|
|
61389
61329
|
),
|
|
61390
|
-
/* @__PURE__ */
|
|
61330
|
+
/* @__PURE__ */ jsx393(
|
|
61391
61331
|
ChatAttachmentChipStrip,
|
|
61392
61332
|
{
|
|
61393
61333
|
attachments: stagedAttachments,
|
|
@@ -61395,7 +61335,7 @@ function EmbeddableChatInner({
|
|
|
61395
61335
|
disabled: chatLoading
|
|
61396
61336
|
}
|
|
61397
61337
|
),
|
|
61398
|
-
/* @__PURE__ */
|
|
61338
|
+
/* @__PURE__ */ jsx393(
|
|
61399
61339
|
ChatComposer,
|
|
61400
61340
|
{
|
|
61401
61341
|
archived: isViewingArchived,
|
|
@@ -61444,7 +61384,7 @@ function EmbeddableChatInner({
|
|
|
61444
61384
|
}
|
|
61445
61385
|
),
|
|
61446
61386
|
galleryModal,
|
|
61447
|
-
/* @__PURE__ */
|
|
61387
|
+
/* @__PURE__ */ jsx393(
|
|
61448
61388
|
ChatDialogModals,
|
|
61449
61389
|
{
|
|
61450
61390
|
renameTarget,
|
|
@@ -61458,15 +61398,15 @@ function EmbeddableChatInner({
|
|
|
61458
61398
|
onConfirmRestore: handleConfirmRestore
|
|
61459
61399
|
}
|
|
61460
61400
|
),
|
|
61461
|
-
/* @__PURE__ */
|
|
61401
|
+
/* @__PURE__ */ jsx393("div", { ref: setPortalHost, style: { display: "contents" } })
|
|
61462
61402
|
] }) });
|
|
61463
|
-
const panel = shellLess ? /* @__PURE__ */
|
|
61464
|
-
/* @__PURE__ */
|
|
61403
|
+
const panel = shellLess ? /* @__PURE__ */ jsxs310(ChatPanelContext.Provider, { value: chatPanelHandle, children: [
|
|
61404
|
+
/* @__PURE__ */ jsx393(VisuallyHidden, { children: /* @__PURE__ */ jsxs310(DialogPrimitive5.Title, { children: [
|
|
61465
61405
|
sourceLabel,
|
|
61466
61406
|
" AI Assistant"
|
|
61467
61407
|
] }) }),
|
|
61468
61408
|
body
|
|
61469
|
-
] }) : /* @__PURE__ */
|
|
61409
|
+
] }) : /* @__PURE__ */ jsx393(Drawer, { open: isOpen, onOpenChange: (o) => !o && handleClose(), children: /* @__PURE__ */ jsx393(ChatPanelContext.Provider, { value: chatPanelHandle, children: /* @__PURE__ */ jsxs310(
|
|
61470
61410
|
DrawerContent,
|
|
61471
61411
|
{
|
|
61472
61412
|
side: "right",
|
|
@@ -61481,7 +61421,7 @@ function EmbeddableChatInner({
|
|
|
61481
61421
|
"aria-describedby": void 0,
|
|
61482
61422
|
className: "\n mingo-chat-content !bg-ods-bg shadow-2xl\n focus:outline-none focus-visible:outline-none\n w-screen md:w-auto\n ",
|
|
61483
61423
|
children: [
|
|
61484
|
-
/* @__PURE__ */
|
|
61424
|
+
/* @__PURE__ */ jsx393(VisuallyHidden, { children: /* @__PURE__ */ jsxs310(DialogPrimitive5.Title, { children: [
|
|
61485
61425
|
sourceLabel,
|
|
61486
61426
|
" AI Assistant"
|
|
61487
61427
|
] }) }),
|
|
@@ -61489,17 +61429,17 @@ function EmbeddableChatInner({
|
|
|
61489
61429
|
]
|
|
61490
61430
|
}
|
|
61491
61431
|
) }) });
|
|
61492
|
-
return /* @__PURE__ */
|
|
61493
|
-
showInternalTrigger && !shellLess && /* @__PURE__ */
|
|
61432
|
+
return /* @__PURE__ */ jsxs310(Fragment89, { children: [
|
|
61433
|
+
showInternalTrigger && !shellLess && /* @__PURE__ */ jsx393(
|
|
61494
61434
|
"div",
|
|
61495
61435
|
{
|
|
61496
61436
|
"aria-hidden": isOpen,
|
|
61497
61437
|
className: `sticky bottom-0 h-0 z-[9990] pointer-events-none ${isOpen ? "opacity-0" : "opacity-100"}`,
|
|
61498
|
-
children: /* @__PURE__ */
|
|
61438
|
+
children: /* @__PURE__ */ jsx393("div", { className: "absolute bottom-4 md:bottom-6 right-4 md:right-6", children: /* @__PURE__ */ jsx393(
|
|
61499
61439
|
Button,
|
|
61500
61440
|
{
|
|
61501
61441
|
onClick: handleOpen,
|
|
61502
|
-
leftIcon: /* @__PURE__ */
|
|
61442
|
+
leftIcon: /* @__PURE__ */ jsx393(MingoIcon, { className: "h-5 w-5", color: "currentColor" }),
|
|
61503
61443
|
tabIndex: isOpen ? -1 : 0,
|
|
61504
61444
|
className: `shadow-lg !w-auto pointer-events-auto ${isOpen ? "!pointer-events-none" : ""}`,
|
|
61505
61445
|
children: "Ask AI"
|
|
@@ -62568,7 +62508,6 @@ export {
|
|
|
62568
62508
|
renderTicketAssigneeOption,
|
|
62569
62509
|
TakeOverTicketModal,
|
|
62570
62510
|
ReopenTicketModal,
|
|
62571
|
-
ReopenTicketRequestModal,
|
|
62572
62511
|
FilterPillRow,
|
|
62573
62512
|
MingoAiButton,
|
|
62574
62513
|
MOBILE_NAV_PANEL_ID,
|
|
@@ -62613,4 +62552,4 @@ export {
|
|
|
62613
62552
|
LogsList,
|
|
62614
62553
|
assets
|
|
62615
62554
|
};
|
|
62616
|
-
//# sourceMappingURL=chunk-
|
|
62555
|
+
//# sourceMappingURL=chunk-NQSGY5HW.js.map
|