@flamingo-stack/openframe-frontend-core 0.0.752 → 0.0.754
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/build/export-map.json +1 -1
- package/dist/{chunk-OXEAN3EQ.cjs → chunk-35BJY5RR.cjs} +44 -44
- package/dist/{chunk-ZYRRRKSZ.cjs → chunk-5E6JHOGX.cjs} +3 -3
- package/dist/{chunk-35RU25PJ.cjs → chunk-7Z4EQOIX.cjs} +44 -44
- package/dist/{chunk-4PEG4JTM.cjs → chunk-B27XV2TC.cjs} +6 -6
- package/dist/{chunk-4OTCQEP3.cjs → chunk-BLZIUELR.cjs} +11 -11
- package/dist/{chunk-KBJSZFBZ.cjs → chunk-BQQ3JGEO.cjs} +3 -3
- package/dist/{chunk-RDH63XXW.cjs → chunk-DW5OKTUP.cjs} +34 -34
- package/dist/{chunk-KUVYVAS2.cjs → chunk-EDSFLB7J.cjs} +19 -17
- package/dist/{chunk-WQCLN27R.cjs → chunk-FAFFWYEH.cjs} +4 -4
- package/dist/{chunk-P4ODFQGA.cjs → chunk-GQYCVZJI.cjs} +4 -4
- package/dist/{chunk-Y6PVZRYL.cjs → chunk-IVAAQSOU.cjs} +12 -12
- package/dist/{chunk-EUQJ7QHW.cjs → chunk-JXACH52M.cjs} +4 -4
- package/dist/{chunk-JI6NRWCC.cjs → chunk-MOEILCEX.cjs} +13 -13
- package/dist/{chunk-IPVJAML5.cjs → chunk-OGKV5NOP.cjs} +69 -69
- package/dist/{chunk-OXCGQV6B.cjs → chunk-RTQN35EP.cjs} +153 -146
- package/dist/{chunk-EM4OEWCM.cjs → chunk-SDF5UUTE.cjs} +749 -608
- package/dist/{chunk-7OEVVMAU.cjs → chunk-T4BBZ5ST.cjs} +2 -2
- package/dist/{chunk-XADJG35G.cjs → chunk-TBDVF4SN.cjs} +31 -31
- package/dist/{chunk-G44V3UGE.cjs → chunk-TPJTFN7O.cjs} +81 -81
- package/dist/{chunk-J5G4CF2V.cjs → chunk-U4I3QR2A.cjs} +16 -16
- package/dist/{chunk-U2AE4UG7.cjs → chunk-UNRNLSG4.cjs} +2 -2
- package/dist/{chunk-ZVOXBSDP.cjs → chunk-WBOHLXFC.cjs} +2 -2
- package/dist/{chunk-VD3XBUQR.cjs → chunk-YSFOYBYC.cjs} +158 -158
- package/dist/{chunk-7WEGXNNS.cjs → chunk-ZNV5FE4T.cjs} +30 -30
- package/dist/{cloud-tenants-WAOMZZQ2.cjs → cloud-tenants-5OTPO7FL.cjs} +7 -7
- package/dist/components/announcement-bar.d.ts +1 -1
- package/dist/components/announcement-bar.d.ts.map +1 -1
- package/dist/components/announcement-bar.js +3 -1
- package/dist/components/case-studies/index.cjs +20 -20
- package/dist/components/chat/chat-dialog-menu-items.js +6 -6
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.js +3 -0
- package/dist/components/chat/chat-panel-context.d.ts +3 -0
- package/dist/components/chat/chat-panel-context.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.d.ts +20 -0
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.js +78 -8
- package/dist/components/chat/hooks/index.d.ts +1 -0
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/index.js +1 -0
- package/dist/components/chat/hooks/use-what-to-ask.d.ts +69 -0
- package/dist/components/chat/hooks/use-what-to-ask.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-what-to-ask.js +106 -0
- package/dist/components/chat/index.cjs +13 -5
- package/dist/components/chat/index.d.ts +1 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +1 -0
- package/dist/components/chat/mingo-chat-header.d.ts +4 -2
- package/dist/components/chat/mingo-chat-header.d.ts.map +1 -1
- package/dist/components/chat/mingo-chat-header.js +7 -2
- package/dist/components/chat/suggestions-display.d.ts +11 -0
- package/dist/components/chat/suggestions-display.d.ts.map +1 -0
- package/dist/components/chat/suggestions-display.js +27 -0
- package/dist/components/chat/types/message.types.d.ts +27 -1
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.js +2 -0
- package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
- package/dist/components/chat/utils/message-segment-accumulator.js +3 -0
- package/dist/components/contact/index.cjs +8 -8
- package/dist/components/docs/index.cjs +11 -11
- package/dist/components/embeds/index.cjs +8 -8
- package/dist/components/faq/index.cjs +9 -9
- package/dist/components/features/index.cjs +7 -7
- package/dist/components/help-center-pages/index.cjs +84 -84
- package/dist/components/index.cjs +66 -56
- package/dist/components/meeting-scheduler/index.cjs +31 -31
- package/dist/components/navigation/index.cjs +10 -10
- package/dist/components/onboarding-guides/index.cjs +10 -10
- package/dist/components/product-demo/index.cjs +7 -7
- package/dist/components/related-content/index.cjs +5 -5
- package/dist/components/tickets/index.cjs +13 -13
- package/dist/components/ui/index.cjs +15 -7
- package/dist/{devices-VFEPXW2N.cjs → devices-MBGMD7BO.cjs} +8 -8
- package/dist/{embeddable-chat-BYQBABDV.cjs → embeddable-chat-CMEHSDV7.cjs} +163 -91
- package/dist/index.cjs +23 -11
- package/dist/{knowledge-4TE7AWZX.cjs → knowledge-LO5RK6PM.cjs} +8 -8
- package/dist/{logs-3B2P3JXN.cjs → logs-QRGJSZ4G.cjs} +15 -15
- package/dist/{policies-DVI6V22X.cjs → policies-OIQDO6F5.cjs} +11 -11
- package/dist/{scripts-JJ2BVYQ5.cjs → scripts-XULUNPDV.cjs} +12 -12
- package/dist/{software-update-BN23RATE.cjs → software-update-SRF55434.cjs} +10 -10
- package/dist/types/announcement.cjs +2 -0
- package/dist/types/announcement.d.ts +21 -0
- package/dist/types/announcement.d.ts.map +1 -1
- package/dist/types/announcement.js +2 -0
- package/dist/types/index.cjs +2 -0
- package/dist/utils/announcement-surface.d.ts +8 -0
- package/dist/utils/announcement-surface.d.ts.map +1 -0
- package/dist/utils/announcement-surface.js +7 -0
- package/dist/utils/index.cjs +7 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/package.json +1 -1
- package/src/components/announcement-bar.tsx +9 -1
- package/src/components/chat/chat-dialog-menu-items.tsx +6 -6
- package/src/components/chat/chat-message-enhanced.tsx +3 -0
- package/src/components/chat/chat-panel-context.tsx +3 -0
- package/src/components/chat/embeddable-chat.tsx +132 -9
- package/src/components/chat/hooks/index.ts +1 -0
- package/src/components/chat/hooks/use-what-to-ask.ts +203 -0
- package/src/components/chat/index.ts +1 -0
- package/src/components/chat/mingo-chat-header.tsx +11 -4
- package/src/components/chat/suggestions-display.tsx +41 -0
- package/src/components/chat/types/message.types.ts +31 -1
- package/src/components/chat/utils/extract-incomplete-message-state.ts +2 -0
- package/src/components/chat/utils/message-segment-accumulator.ts +4 -0
- package/src/types/announcement.ts +22 -0
- package/src/utils/announcement-surface.ts +14 -0
- package/src/utils/index.ts +2 -0
|
@@ -315,7 +315,7 @@ var _chunkWWUSFOJ7cjs = require('./chunk-WWUSFOJ7.cjs');
|
|
|
315
315
|
|
|
316
316
|
|
|
317
317
|
|
|
318
|
-
var
|
|
318
|
+
var _chunk7Z4EQOIXcjs = require('./chunk-7Z4EQOIX.cjs');
|
|
319
319
|
|
|
320
320
|
|
|
321
321
|
var _chunkL2IQESTQcjs = require('./chunk-L2IQESTQ.cjs');
|
|
@@ -3786,6 +3786,197 @@ var AskDisplay = _react.forwardRef.call(void 0, ({ className, cards: cards2, onS
|
|
|
3786
3786
|
});
|
|
3787
3787
|
AskDisplay.displayName = "AskDisplay";
|
|
3788
3788
|
|
|
3789
|
+
// src/components/chat/chat-panel-context.tsx
|
|
3790
|
+
|
|
3791
|
+
var ChatPanelContext = _react.createContext.call(void 0, null);
|
|
3792
|
+
function useChatPanel() {
|
|
3793
|
+
return _react.useContext.call(void 0, ChatPanelContext);
|
|
3794
|
+
}
|
|
3795
|
+
|
|
3796
|
+
// src/components/chat/quick-action-chip.tsx
|
|
3797
|
+
|
|
3798
|
+
|
|
3799
|
+
var AGENT_ACCENTS = { fae: "pink", mingo: "cyan" };
|
|
3800
|
+
function getAgentAccent(slug) {
|
|
3801
|
+
return slug === "fae" || slug === "mingo" ? AGENT_ACCENTS[slug] : void 0;
|
|
3802
|
+
}
|
|
3803
|
+
function accentFromIdentityIcon(icon) {
|
|
3804
|
+
const color = _optionalChain([icon, 'optionalAccess', _62 => _62.props, 'optionalAccess', _63 => _63.color]);
|
|
3805
|
+
return typeof color === "string" && color.length > 0 ? color : void 0;
|
|
3806
|
+
}
|
|
3807
|
+
var ACCENT_CLASS = {
|
|
3808
|
+
pink: "text-ods-flamingo-pink",
|
|
3809
|
+
cyan: "text-ods-flamingo-cyan"
|
|
3810
|
+
};
|
|
3811
|
+
function isQuickActionIconSpec(icon) {
|
|
3812
|
+
return typeof icon === "object" && icon !== null && !Array.isArray(icon) && !_react.isValidElement.call(void 0, icon);
|
|
3813
|
+
}
|
|
3814
|
+
function renderQuickActionIcon(icon) {
|
|
3815
|
+
if (!isQuickActionIconSpec(icon)) {
|
|
3816
|
+
return icon;
|
|
3817
|
+
}
|
|
3818
|
+
const spec = icon;
|
|
3819
|
+
if (!spec.name && !spec.url) return void 0;
|
|
3820
|
+
const accentClass = spec.accent ? ACCENT_CLASS[spec.accent] : void 0;
|
|
3821
|
+
const props = spec.accent && !accentClass ? { color: spec.accent, ..._nullishCoalesce(spec.props, () => ( {})) } : spec.props;
|
|
3822
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.EntityIcon, { icon: { name: spec.name, url: spec.url, props }, size: _nullishCoalesce(spec.size, () => ( 16)), className: accentClass });
|
|
3823
|
+
}
|
|
3824
|
+
function composeChipLabel(label, lozenge) {
|
|
3825
|
+
if (!lozenge) return label;
|
|
3826
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3827
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3828
|
+
"span",
|
|
3829
|
+
{
|
|
3830
|
+
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
3831
|
+
// -translate-y-[1px]: align-middle centers on x-height, but the chip
|
|
3832
|
+
// labels are uppercase (no descenders), so the lozenge reads ~1px low
|
|
3833
|
+
// against the caps' optical center (measured 9.1px above / 6.9px
|
|
3834
|
+
// below in the 32px Tag). Keep QuickActionChipSkeleton's lozenge bar
|
|
3835
|
+
// offset in lockstep.
|
|
3836
|
+
"mr-2 inline-flex -translate-y-[1px] items-center rounded px-[5px] py-[3px] align-middle font-bold uppercase text-h6",
|
|
3837
|
+
lozenge.className
|
|
3838
|
+
),
|
|
3839
|
+
style: { background: "color-mix(in srgb, currentColor 14%, transparent)" },
|
|
3840
|
+
children: lozenge.label
|
|
3841
|
+
}
|
|
3842
|
+
),
|
|
3843
|
+
label
|
|
3844
|
+
] });
|
|
3845
|
+
}
|
|
3846
|
+
function QuickActionChipSkeleton({
|
|
3847
|
+
labelCh = 16,
|
|
3848
|
+
icon = true,
|
|
3849
|
+
lozenge = false,
|
|
3850
|
+
size = "default",
|
|
3851
|
+
variant = "outline",
|
|
3852
|
+
className
|
|
3853
|
+
}) {
|
|
3854
|
+
const question = variant === "question";
|
|
3855
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3856
|
+
_chunkJHQNUWFMcjs.Tag,
|
|
3857
|
+
{
|
|
3858
|
+
variant: "outline",
|
|
3859
|
+
size: question ? "sentence" : size,
|
|
3860
|
+
className: _chunk3ATAYP36cjs.cn.call(void 0, question && "max-w-full", className),
|
|
3861
|
+
icon: icon && !question ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: size === "large" ? "block size-5" : "block size-4" }) : void 0,
|
|
3862
|
+
label: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3863
|
+
lozenge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: "mr-2 inline-block h-[16px] w-[26px] translate-y-[2px]" }),
|
|
3864
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3865
|
+
_chunkH3RYUTNDcjs.UnifiedSkeleton,
|
|
3866
|
+
{
|
|
3867
|
+
as: "span",
|
|
3868
|
+
"aria-hidden": true,
|
|
3869
|
+
className: "inline-block h-[0.9em] translate-y-[0.08em]",
|
|
3870
|
+
width: `${labelCh}ch`
|
|
3871
|
+
}
|
|
3872
|
+
)
|
|
3873
|
+
] })
|
|
3874
|
+
}
|
|
3875
|
+
);
|
|
3876
|
+
}
|
|
3877
|
+
function QuickActionChipButton({
|
|
3878
|
+
label,
|
|
3879
|
+
icon,
|
|
3880
|
+
theme,
|
|
3881
|
+
lozenge,
|
|
3882
|
+
variant = "outline",
|
|
3883
|
+
selected = false,
|
|
3884
|
+
selectedAccent,
|
|
3885
|
+
size = "default",
|
|
3886
|
+
onSelect,
|
|
3887
|
+
onHoverStart,
|
|
3888
|
+
onHoverEnd,
|
|
3889
|
+
interactive = true,
|
|
3890
|
+
className
|
|
3891
|
+
}) {
|
|
3892
|
+
const themedIcon = theme && isQuickActionIconSpec(icon) && !icon.accent ? { ...icon, accent: theme.accent } : icon;
|
|
3893
|
+
const resolvedLozenge = lozenge === true ? _optionalChain([theme, 'optionalAccess', _64 => _64.lozenge]) : lozenge === false ? void 0 : lozenge;
|
|
3894
|
+
const resolvedIcon = renderQuickActionIcon(themedIcon);
|
|
3895
|
+
const resolvedLabel = composeChipLabel(label, resolvedLozenge);
|
|
3896
|
+
const question = variant === "question";
|
|
3897
|
+
const tagVariant = selected ? selectedAccent === "cyan" ? "selectedCyan" : "selected" : question ? "outline" : variant;
|
|
3898
|
+
const tagSize = question ? "sentence" : size;
|
|
3899
|
+
if (!interactive) {
|
|
3900
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJHQNUWFMcjs.Tag, { variant: tagVariant, size: tagSize, icon: resolvedIcon, label: resolvedLabel, className });
|
|
3901
|
+
}
|
|
3902
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3903
|
+
"button",
|
|
3904
|
+
{
|
|
3905
|
+
type: "button",
|
|
3906
|
+
onClick: onSelect,
|
|
3907
|
+
onMouseEnter: onHoverStart,
|
|
3908
|
+
onMouseLeave: onHoverEnd,
|
|
3909
|
+
onFocus: onHoverStart,
|
|
3910
|
+
onBlur: onHoverEnd,
|
|
3911
|
+
"aria-pressed": selected || void 0,
|
|
3912
|
+
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
3913
|
+
"rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
3914
|
+
// A question may be longer than a narrow column: it shrinks and clips there, read from its start.
|
|
3915
|
+
question ? "min-w-0 max-w-full text-left" : "shrink-0",
|
|
3916
|
+
className
|
|
3917
|
+
),
|
|
3918
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3919
|
+
_chunkJHQNUWFMcjs.Tag,
|
|
3920
|
+
{
|
|
3921
|
+
variant: tagVariant,
|
|
3922
|
+
size: tagSize,
|
|
3923
|
+
icon: resolvedIcon,
|
|
3924
|
+
label: resolvedLabel,
|
|
3925
|
+
className: question ? "max-w-full" : void 0
|
|
3926
|
+
}
|
|
3927
|
+
)
|
|
3928
|
+
}
|
|
3929
|
+
);
|
|
3930
|
+
}
|
|
3931
|
+
function QuickActionChipFromData({
|
|
3932
|
+
chip,
|
|
3933
|
+
defaultTheme,
|
|
3934
|
+
defaultLozenge,
|
|
3935
|
+
interactive = true,
|
|
3936
|
+
className
|
|
3937
|
+
}) {
|
|
3938
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3939
|
+
QuickActionChipButton,
|
|
3940
|
+
{
|
|
3941
|
+
label: chip.label,
|
|
3942
|
+
icon: chip.icon,
|
|
3943
|
+
theme: _nullishCoalesce(chip.theme, () => ( defaultTheme)),
|
|
3944
|
+
lozenge: _nullishCoalesce(chip.lozenge, () => ( (defaultLozenge || void 0))),
|
|
3945
|
+
variant: _nullishCoalesce(chip.variant, () => ( "outline")),
|
|
3946
|
+
selected: chip.selected,
|
|
3947
|
+
selectedAccent: chip.selectedAccent,
|
|
3948
|
+
onSelect: chip.onSelect,
|
|
3949
|
+
onHoverStart: chip.onHoverStart,
|
|
3950
|
+
onHoverEnd: chip.onHoverEnd,
|
|
3951
|
+
interactive,
|
|
3952
|
+
className
|
|
3953
|
+
}
|
|
3954
|
+
);
|
|
3955
|
+
}
|
|
3956
|
+
|
|
3957
|
+
// src/components/chat/suggestions-display.tsx
|
|
3958
|
+
|
|
3959
|
+
function SuggestionsDisplay({ segment }) {
|
|
3960
|
+
const panel = useChatPanel();
|
|
3961
|
+
const pick = _nullishCoalesce(segment.onPick, () => ( _optionalChain([panel, 'optionalAccess', _65 => _65.sendPrompt])));
|
|
3962
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-sf)]", children: [
|
|
3963
|
+
segment.groups.map((group) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-xs)]", children: [
|
|
3964
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h5", children: group.label }),
|
|
3965
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-wrap gap-[var(--spacing-system-xs)]", children: group.prompts.map((prompt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3966
|
+
QuickActionChipButton,
|
|
3967
|
+
{
|
|
3968
|
+
variant: "question",
|
|
3969
|
+
label: prompt.label,
|
|
3970
|
+
icon: prompt.icon,
|
|
3971
|
+
onSelect: pick ? () => pick(_nullishCoalesce(prompt.prompt, () => ( prompt.label))) : void 0
|
|
3972
|
+
},
|
|
3973
|
+
prompt.label
|
|
3974
|
+
)) })
|
|
3975
|
+
] }, group.label)),
|
|
3976
|
+
segment.note && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: segment.note })
|
|
3977
|
+
] });
|
|
3978
|
+
}
|
|
3979
|
+
|
|
3789
3980
|
// src/components/chat/error-message-display.tsx
|
|
3790
3981
|
|
|
3791
3982
|
|
|
@@ -4351,7 +4542,7 @@ function ChatContextPicker({
|
|
|
4351
4542
|
if (!open) return void 0;
|
|
4352
4543
|
const onDocDown = (e) => {
|
|
4353
4544
|
const target = e.target;
|
|
4354
|
-
if (_optionalChain([rootRef, 'access',
|
|
4545
|
+
if (_optionalChain([rootRef, 'access', _66 => _66.current, 'optionalAccess', _67 => _67.contains, 'call', _68 => _68(target)]) || _optionalChain([target, 'optionalAccess', _69 => _69.closest, 'optionalCall', _70 => _70("[data-context-trigger]")])) return;
|
|
4355
4546
|
onClose();
|
|
4356
4547
|
};
|
|
4357
4548
|
document.addEventListener("mousedown", onDocDown);
|
|
@@ -4359,7 +4550,7 @@ function ChatContextPicker({
|
|
|
4359
4550
|
}, [open, onClose]);
|
|
4360
4551
|
_react.useEffect.call(void 0, () => {
|
|
4361
4552
|
if (!open || view !== "items") return void 0;
|
|
4362
|
-
const id = requestAnimationFrame(() => _optionalChain([searchRef, 'access',
|
|
4553
|
+
const id = requestAnimationFrame(() => _optionalChain([searchRef, 'access', _71 => _71.current, 'optionalAccess', _72 => _72.focus, 'call', _73 => _73()]));
|
|
4363
4554
|
return () => cancelAnimationFrame(id);
|
|
4364
4555
|
}, [open, view]);
|
|
4365
4556
|
_react.useEffect.call(void 0, () => {
|
|
@@ -4441,7 +4632,7 @@ function ChatContextPicker({
|
|
|
4441
4632
|
{
|
|
4442
4633
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA65PRT7Fcjs.Upload02Icon, { size: 24 }),
|
|
4443
4634
|
label: "Upload File",
|
|
4444
|
-
onClick: () => _optionalChain([config, 'access',
|
|
4635
|
+
onClick: () => _optionalChain([config, 'access', _74 => _74.onUploadFile, 'optionalCall', _75 => _75()])
|
|
4445
4636
|
}
|
|
4446
4637
|
),
|
|
4447
4638
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ContextMenuRow, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGAENV6K7cjs.PackagePlusIcon, { size: 24 }), label: "Assign Item", onClick: () => setView("types") })
|
|
@@ -4536,7 +4727,7 @@ function ChatContextChipStrip({
|
|
|
4536
4727
|
// `tag` pills (Figma 1:6073): 32px tall, card surface, bordered, mono-
|
|
4537
4728
|
// uppercase label, 16px lead icon + xmark-circle remove. Wraps to new rows.
|
|
4538
4729
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-wrap content-center items-center gap-2", className), children: items.map((item) => {
|
|
4539
|
-
const hostNode = _optionalChain([renderItem, 'optionalCall',
|
|
4730
|
+
const hostNode = _optionalChain([renderItem, 'optionalCall', _76 => _76(item)]);
|
|
4540
4731
|
if (hostNode != null) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: hostNode }, itemKey2(item));
|
|
4541
4732
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4542
4733
|
"div",
|
|
@@ -4681,7 +4872,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
4681
4872
|
const isExecuting = message.type === "EXECUTING_TOOL";
|
|
4682
4873
|
const isExecuted = message.type === "EXECUTED_TOOL";
|
|
4683
4874
|
const integratedToolType = message.integratedToolType || "OPENFRAME";
|
|
4684
|
-
const previewText = variant === "client" ? _optionalChain([message, 'access',
|
|
4875
|
+
const previewText = variant === "client" ? _optionalChain([message, 'access', _77 => _77.toolExplanation, 'optionalAccess', _78 => _78.trim, 'call', _79 => _79()]) : _optionalChain([message, 'access', _80 => _80.toolTitle, 'optionalAccess', _81 => _81.trim, 'call', _82 => _82()]);
|
|
4685
4876
|
const argEntries = _react.useMemo.call(void 0, () => {
|
|
4686
4877
|
if (!message.parameters || typeof message.parameters !== "object") return [];
|
|
4687
4878
|
const entries = Object.entries(message.parameters).filter(([, v]) => v !== null && v !== void 0 && v !== "");
|
|
@@ -4704,7 +4895,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
4704
4895
|
return null;
|
|
4705
4896
|
};
|
|
4706
4897
|
const statusTone = isExecuting ? "working" : message.success === false ? "error" : "success";
|
|
4707
|
-
const statusLabel = _optionalChain([message, 'access',
|
|
4898
|
+
const statusLabel = _optionalChain([message, 'access', _83 => _83.statusLabel, 'optionalAccess', _84 => _84.trim, 'call', _85 => _85()]) || (isExecuting ? "Working on it" : message.success === false ? "Failed" : "Done");
|
|
4708
4899
|
const headerContent = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
4709
4900
|
!isClient && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWI2OTGKCcjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
4710
4901
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -4830,7 +5021,7 @@ function groupAskRuns(segments) {
|
|
|
4830
5021
|
runs.set(index, [segment]);
|
|
4831
5022
|
return;
|
|
4832
5023
|
}
|
|
4833
|
-
_optionalChain([runs, 'access',
|
|
5024
|
+
_optionalChain([runs, 'access', _86 => _86.get, 'call', _87 => _87(headIndex), 'optionalAccess', _88 => _88.push, 'call', _89 => _89(segment)]);
|
|
4834
5025
|
});
|
|
4835
5026
|
return runs;
|
|
4836
5027
|
}
|
|
@@ -4964,7 +5155,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
4964
5155
|
}, [hasMarkerSupport, renderEntityCard, refByKey, segments]);
|
|
4965
5156
|
_react.useEffect.call(void 0, () => {
|
|
4966
5157
|
const cache = renderedCardNodeCache.current;
|
|
4967
|
-
const usedKeys = _optionalChain([renderingPlan, 'optionalAccess',
|
|
5158
|
+
const usedKeys = _optionalChain([renderingPlan, 'optionalAccess', _90 => _90.usedKeys]);
|
|
4968
5159
|
if (!usedKeys) return;
|
|
4969
5160
|
if (cache.size <= usedKeys.size) return;
|
|
4970
5161
|
for (const k of [...cache.keys()]) {
|
|
@@ -4987,7 +5178,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
4987
5178
|
const sepIdx = stripped.indexOf(":");
|
|
4988
5179
|
const marker = sepIdx === -1 ? stripped : stripped.slice(0, sepIdx);
|
|
4989
5180
|
const id = sepIdx === -1 ? "" : stripped.slice(sepIdx + 1);
|
|
4990
|
-
const node = _optionalChain([renderMention, 'optionalCall',
|
|
5181
|
+
const node = _optionalChain([renderMention, 'optionalCall', _91 => _91({ marker, id })]);
|
|
4991
5182
|
if (node != null) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: node });
|
|
4992
5183
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary opacity-60", children });
|
|
4993
5184
|
}
|
|
@@ -4998,7 +5189,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
4998
5189
|
const cardType = stripped.slice(0, sepIdx);
|
|
4999
5190
|
const cardId = stripped.slice(sepIdx + 1);
|
|
5000
5191
|
const key = `${cardType}:${cardId}`;
|
|
5001
|
-
const inline = _optionalChain([renderingPlanRef, 'access',
|
|
5192
|
+
const inline = _optionalChain([renderingPlanRef, 'access', _92 => _92.current, 'optionalAccess', _93 => _93.inlineByKey, 'access', _94 => _94.get, 'call', _95 => _95(key)]);
|
|
5002
5193
|
if (inline != null) return inline;
|
|
5003
5194
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary opacity-60", children: cardId });
|
|
5004
5195
|
}
|
|
@@ -5011,7 +5202,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
5011
5202
|
};
|
|
5012
5203
|
}, [hasMarkerSupport, hasMentionSupport, renderMention, NavLinkAnchor]);
|
|
5013
5204
|
const renderSegmentBody = (segIndex, text2, isStreaming) => {
|
|
5014
|
-
const parts = _optionalChain([renderingPlan, 'optionalAccess',
|
|
5205
|
+
const parts = _optionalChain([renderingPlan, 'optionalAccess', _96 => _96.partsBySegment, 'access', _97 => _97.get, 'call', _98 => _98(segIndex)]);
|
|
5015
5206
|
if (!parts || parts.length === 0) {
|
|
5016
5207
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5017
5208
|
SimpleMarkdownRenderer,
|
|
@@ -5102,6 +5293,8 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
5102
5293
|
const run = askRuns.get(index);
|
|
5103
5294
|
if (!run) return null;
|
|
5104
5295
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AskDisplay, { cards: run, onSelect: onAskSelect }, index);
|
|
5296
|
+
} else if (segment.type === "suggestions") {
|
|
5297
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SuggestionsDisplay, { segment }, index);
|
|
5105
5298
|
} else if (segment.type === "tool_execution") {
|
|
5106
5299
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5107
5300
|
ToolExecutionDisplay,
|
|
@@ -5183,7 +5376,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
5183
5376
|
);
|
|
5184
5377
|
ChatMessageEnhanced.displayName = "ChatMessageEnhanced";
|
|
5185
5378
|
var MemoizedChatMessageEnhanced = _react.memo.call(void 0, ChatMessageEnhanced, (prevProps, nextProps) => {
|
|
5186
|
-
return prevProps.role === nextProps.role && prevProps.content === nextProps.content && prevProps.name === nextProps.name && prevProps.avatar === nextProps.avatar && prevProps.isTyping === nextProps.isTyping && _optionalChain([prevProps, 'access',
|
|
5379
|
+
return prevProps.role === nextProps.role && prevProps.content === nextProps.content && prevProps.name === nextProps.name && prevProps.avatar === nextProps.avatar && prevProps.isTyping === nextProps.isTyping && _optionalChain([prevProps, 'access', _99 => _99.timestamp, 'optionalAccess', _100 => _100.getTime, 'call', _101 => _101()]) === _optionalChain([nextProps, 'access', _102 => _102.timestamp, 'optionalAccess', _103 => _103.getTime, 'call', _104 => _104()]) && prevProps.showAvatar === nextProps.showAvatar && prevProps.assistantType === nextProps.assistantType && prevProps.approvalVariant === nextProps.approvalVariant && prevProps.appearance === nextProps.appearance && prevProps.authorType === nextProps.authorType && prevProps.assistantIcon === nextProps.assistantIcon && prevProps.className === nextProps.className && // Reference equality — the host re-uses the same array instance per
|
|
5187
5380
|
// message (it's set once on the optimistic send and never mutated).
|
|
5188
5381
|
prevProps.contextItems === nextProps.contextItems && prevProps.resolveContextIcon === nextProps.resolveContextIcon && prevProps.renderContextItem === nextProps.renderContextItem && // Host keeps this stable (module const / useCallback), so reference
|
|
5189
5382
|
// equality holds across streaming chunks.
|
|
@@ -5449,7 +5642,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5449
5642
|
const prevCount = prevRenderRef.current.messageCount;
|
|
5450
5643
|
const prevLastId = prevRenderRef.current.lastMessageId;
|
|
5451
5644
|
const newCount = messages.length;
|
|
5452
|
-
const currentLastId = _optionalChain([messages, 'access',
|
|
5645
|
+
const currentLastId = _optionalChain([messages, 'access', _105 => _105[messages.length - 1], 'optionalAccess', _106 => _106.id]);
|
|
5453
5646
|
prevRenderRef.current = { dialogId, messageCount: newCount, lastMessageId: currentLastId };
|
|
5454
5647
|
if (dialogChanged) {
|
|
5455
5648
|
followBottomRef.current = true;
|
|
@@ -5530,10 +5723,10 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5530
5723
|
};
|
|
5531
5724
|
let touchY = null;
|
|
5532
5725
|
const onTouchStart = (e) => {
|
|
5533
|
-
touchY = _nullishCoalesce(_optionalChain([e, 'access',
|
|
5726
|
+
touchY = _nullishCoalesce(_optionalChain([e, 'access', _107 => _107.touches, 'access', _108 => _108[0], 'optionalAccess', _109 => _109.clientY]), () => ( null));
|
|
5534
5727
|
};
|
|
5535
5728
|
const onTouchMove = (e) => {
|
|
5536
|
-
const y = _optionalChain([e, 'access',
|
|
5729
|
+
const y = _optionalChain([e, 'access', _110 => _110.touches, 'access', _111 => _111[0], 'optionalAccess', _112 => _112.clientY]);
|
|
5537
5730
|
if (y == null || touchY == null) return;
|
|
5538
5731
|
if (y > touchY) disarm();
|
|
5539
5732
|
touchY = y;
|
|
@@ -5591,7 +5784,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5591
5784
|
};
|
|
5592
5785
|
}, [autoScroll, scrollRef, contentRef, scrollToBottom, stopScroll, isLoading]);
|
|
5593
5786
|
_react.useEffect.call(void 0, () => {
|
|
5594
|
-
_optionalChain([kickGrowthWatchRef, 'access',
|
|
5787
|
+
_optionalChain([kickGrowthWatchRef, 'access', _113 => _113.current, 'optionalCall', _114 => _114()]);
|
|
5595
5788
|
}, [messages, isTyping]);
|
|
5596
5789
|
const pinPrevHeightRef = _react.useRef.call(void 0, 0);
|
|
5597
5790
|
_react.useLayoutEffect.call(void 0, () => {
|
|
@@ -5670,7 +5863,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5670
5863
|
ro.observe(node);
|
|
5671
5864
|
const timer = setTimeout(() => {
|
|
5672
5865
|
ro.disconnect();
|
|
5673
|
-
if (_optionalChain([anchorWatcherRef, 'access',
|
|
5866
|
+
if (_optionalChain([anchorWatcherRef, 'access', _115 => _115.current, 'optionalAccess', _116 => _116.id]) === last.id) {
|
|
5674
5867
|
anchorWatcherRef.current = null;
|
|
5675
5868
|
}
|
|
5676
5869
|
}, 2e3);
|
|
@@ -5700,7 +5893,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5700
5893
|
scrollTop: el.scrollTop
|
|
5701
5894
|
};
|
|
5702
5895
|
}
|
|
5703
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
5896
|
+
_optionalChain([onLoadMoreRef, 'access', _117 => _117.current, 'optionalCall', _118 => _118()]);
|
|
5704
5897
|
}
|
|
5705
5898
|
},
|
|
5706
5899
|
{ root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
|
|
@@ -5734,8 +5927,8 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5734
5927
|
);
|
|
5735
5928
|
}
|
|
5736
5929
|
const lastMessage = messages[messages.length - 1];
|
|
5737
|
-
const lastSegments = Array.isArray(_optionalChain([lastMessage, 'optionalAccess',
|
|
5738
|
-
const lastSegment = _optionalChain([lastSegments, 'optionalAccess',
|
|
5930
|
+
const lastSegments = Array.isArray(_optionalChain([lastMessage, 'optionalAccess', _119 => _119.content])) ? lastMessage.content : null;
|
|
5931
|
+
const lastSegment = _optionalChain([lastSegments, 'optionalAccess', _120 => _120[lastSegments.length - 1]]);
|
|
5739
5932
|
const isPausedOnApproval = !!lastSegment && (lastSegment.type === "approval_request" || lastSegment.type === "approval_batch" || lastSegment.type === "escalation_offer") && (lastSegment.status === void 0 || lastSegment.status === "pending");
|
|
5740
5933
|
const showStreamingLoader = isTyping && !isPausedOnApproval && !(pendingApprovals && pendingApprovals.length > 0);
|
|
5741
5934
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatAppearanceContext.Provider, { value: appearance, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6F6PHVKcjs.OverlayOpenRegistryProvider, { onOpenChange: handleOverlayOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col", children: [
|
|
@@ -5778,7 +5971,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5778
5971
|
if (message.hidden) return null;
|
|
5779
5972
|
const isEmptyPendingTurn = index === messages.length - 1 && isTyping && message.role === "assistant" && !hasNonEmptyContent(message.content) && (!Array.isArray(message.content) || message.content.every((s) => s.type === "text"));
|
|
5780
5973
|
if (isEmptyPendingTurn) return null;
|
|
5781
|
-
const ownedContent = _optionalChain([renderAfterMessage, 'optionalCall',
|
|
5974
|
+
const ownedContent = _optionalChain([renderAfterMessage, 'optionalCall', _121 => _121(message, index)]);
|
|
5782
5975
|
const row = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5783
5976
|
MemoizedChatMessageEnhanced,
|
|
5784
5977
|
{
|
|
@@ -5881,167 +6074,6 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
5881
6074
|
);
|
|
5882
6075
|
ChatMessageList.displayName = "ChatMessageList";
|
|
5883
6076
|
|
|
5884
|
-
// src/components/chat/quick-action-chip.tsx
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
var AGENT_ACCENTS = { fae: "pink", mingo: "cyan" };
|
|
5888
|
-
function getAgentAccent(slug) {
|
|
5889
|
-
return slug === "fae" || slug === "mingo" ? AGENT_ACCENTS[slug] : void 0;
|
|
5890
|
-
}
|
|
5891
|
-
function accentFromIdentityIcon(icon) {
|
|
5892
|
-
const color = _optionalChain([icon, 'optionalAccess', _118 => _118.props, 'optionalAccess', _119 => _119.color]);
|
|
5893
|
-
return typeof color === "string" && color.length > 0 ? color : void 0;
|
|
5894
|
-
}
|
|
5895
|
-
var ACCENT_CLASS = {
|
|
5896
|
-
pink: "text-ods-flamingo-pink",
|
|
5897
|
-
cyan: "text-ods-flamingo-cyan"
|
|
5898
|
-
};
|
|
5899
|
-
function isQuickActionIconSpec(icon) {
|
|
5900
|
-
return typeof icon === "object" && icon !== null && !Array.isArray(icon) && !_react.isValidElement.call(void 0, icon);
|
|
5901
|
-
}
|
|
5902
|
-
function renderQuickActionIcon(icon) {
|
|
5903
|
-
if (!isQuickActionIconSpec(icon)) {
|
|
5904
|
-
return icon;
|
|
5905
|
-
}
|
|
5906
|
-
const spec = icon;
|
|
5907
|
-
if (!spec.name && !spec.url) return void 0;
|
|
5908
|
-
const accentClass = spec.accent ? ACCENT_CLASS[spec.accent] : void 0;
|
|
5909
|
-
const props = spec.accent && !accentClass ? { color: spec.accent, ..._nullishCoalesce(spec.props, () => ( {})) } : spec.props;
|
|
5910
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk35RU25PJcjs.EntityIcon, { icon: { name: spec.name, url: spec.url, props }, size: _nullishCoalesce(spec.size, () => ( 16)), className: accentClass });
|
|
5911
|
-
}
|
|
5912
|
-
function composeChipLabel(label, lozenge) {
|
|
5913
|
-
if (!lozenge) return label;
|
|
5914
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
5915
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5916
|
-
"span",
|
|
5917
|
-
{
|
|
5918
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
5919
|
-
// -translate-y-[1px]: align-middle centers on x-height, but the chip
|
|
5920
|
-
// labels are uppercase (no descenders), so the lozenge reads ~1px low
|
|
5921
|
-
// against the caps' optical center (measured 9.1px above / 6.9px
|
|
5922
|
-
// below in the 32px Tag). Keep QuickActionChipSkeleton's lozenge bar
|
|
5923
|
-
// offset in lockstep.
|
|
5924
|
-
"mr-2 inline-flex -translate-y-[1px] items-center rounded px-[5px] py-[3px] align-middle font-bold uppercase text-h6",
|
|
5925
|
-
lozenge.className
|
|
5926
|
-
),
|
|
5927
|
-
style: { background: "color-mix(in srgb, currentColor 14%, transparent)" },
|
|
5928
|
-
children: lozenge.label
|
|
5929
|
-
}
|
|
5930
|
-
),
|
|
5931
|
-
label
|
|
5932
|
-
] });
|
|
5933
|
-
}
|
|
5934
|
-
function QuickActionChipSkeleton({
|
|
5935
|
-
labelCh = 16,
|
|
5936
|
-
icon = true,
|
|
5937
|
-
lozenge = false,
|
|
5938
|
-
size = "default",
|
|
5939
|
-
variant = "outline",
|
|
5940
|
-
className
|
|
5941
|
-
}) {
|
|
5942
|
-
const question = variant === "question";
|
|
5943
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5944
|
-
_chunkJHQNUWFMcjs.Tag,
|
|
5945
|
-
{
|
|
5946
|
-
variant: "outline",
|
|
5947
|
-
size: question ? "sentence" : size,
|
|
5948
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0, question && "max-w-full", className),
|
|
5949
|
-
icon: icon && !question ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: size === "large" ? "block size-5" : "block size-4" }) : void 0,
|
|
5950
|
-
label: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
5951
|
-
lozenge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: "mr-2 inline-block h-[16px] w-[26px] translate-y-[2px]" }),
|
|
5952
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5953
|
-
_chunkH3RYUTNDcjs.UnifiedSkeleton,
|
|
5954
|
-
{
|
|
5955
|
-
as: "span",
|
|
5956
|
-
"aria-hidden": true,
|
|
5957
|
-
className: "inline-block h-[0.9em] translate-y-[0.08em]",
|
|
5958
|
-
width: `${labelCh}ch`
|
|
5959
|
-
}
|
|
5960
|
-
)
|
|
5961
|
-
] })
|
|
5962
|
-
}
|
|
5963
|
-
);
|
|
5964
|
-
}
|
|
5965
|
-
function QuickActionChipButton({
|
|
5966
|
-
label,
|
|
5967
|
-
icon,
|
|
5968
|
-
theme,
|
|
5969
|
-
lozenge,
|
|
5970
|
-
variant = "outline",
|
|
5971
|
-
selected = false,
|
|
5972
|
-
selectedAccent,
|
|
5973
|
-
size = "default",
|
|
5974
|
-
onSelect,
|
|
5975
|
-
onHoverStart,
|
|
5976
|
-
onHoverEnd,
|
|
5977
|
-
interactive = true,
|
|
5978
|
-
className
|
|
5979
|
-
}) {
|
|
5980
|
-
const themedIcon = theme && isQuickActionIconSpec(icon) && !icon.accent ? { ...icon, accent: theme.accent } : icon;
|
|
5981
|
-
const resolvedLozenge = lozenge === true ? _optionalChain([theme, 'optionalAccess', _120 => _120.lozenge]) : lozenge === false ? void 0 : lozenge;
|
|
5982
|
-
const resolvedIcon = renderQuickActionIcon(themedIcon);
|
|
5983
|
-
const resolvedLabel = composeChipLabel(label, resolvedLozenge);
|
|
5984
|
-
const question = variant === "question";
|
|
5985
|
-
const tagVariant = selected ? selectedAccent === "cyan" ? "selectedCyan" : "selected" : question ? "outline" : variant;
|
|
5986
|
-
const tagSize = question ? "sentence" : size;
|
|
5987
|
-
if (!interactive) {
|
|
5988
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJHQNUWFMcjs.Tag, { variant: tagVariant, size: tagSize, icon: resolvedIcon, label: resolvedLabel, className });
|
|
5989
|
-
}
|
|
5990
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5991
|
-
"button",
|
|
5992
|
-
{
|
|
5993
|
-
type: "button",
|
|
5994
|
-
onClick: onSelect,
|
|
5995
|
-
onMouseEnter: onHoverStart,
|
|
5996
|
-
onMouseLeave: onHoverEnd,
|
|
5997
|
-
onFocus: onHoverStart,
|
|
5998
|
-
onBlur: onHoverEnd,
|
|
5999
|
-
"aria-pressed": selected || void 0,
|
|
6000
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
6001
|
-
"rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
6002
|
-
// A question may be longer than a narrow column: it shrinks and clips there, read from its start.
|
|
6003
|
-
question ? "min-w-0 max-w-full text-left" : "shrink-0",
|
|
6004
|
-
className
|
|
6005
|
-
),
|
|
6006
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6007
|
-
_chunkJHQNUWFMcjs.Tag,
|
|
6008
|
-
{
|
|
6009
|
-
variant: tagVariant,
|
|
6010
|
-
size: tagSize,
|
|
6011
|
-
icon: resolvedIcon,
|
|
6012
|
-
label: resolvedLabel,
|
|
6013
|
-
className: question ? "max-w-full" : void 0
|
|
6014
|
-
}
|
|
6015
|
-
)
|
|
6016
|
-
}
|
|
6017
|
-
);
|
|
6018
|
-
}
|
|
6019
|
-
function QuickActionChipFromData({
|
|
6020
|
-
chip,
|
|
6021
|
-
defaultTheme,
|
|
6022
|
-
defaultLozenge,
|
|
6023
|
-
interactive = true,
|
|
6024
|
-
className
|
|
6025
|
-
}) {
|
|
6026
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6027
|
-
QuickActionChipButton,
|
|
6028
|
-
{
|
|
6029
|
-
label: chip.label,
|
|
6030
|
-
icon: chip.icon,
|
|
6031
|
-
theme: _nullishCoalesce(chip.theme, () => ( defaultTheme)),
|
|
6032
|
-
lozenge: _nullishCoalesce(chip.lozenge, () => ( (defaultLozenge || void 0))),
|
|
6033
|
-
variant: _nullishCoalesce(chip.variant, () => ( "outline")),
|
|
6034
|
-
selected: chip.selected,
|
|
6035
|
-
selectedAccent: chip.selectedAccent,
|
|
6036
|
-
onSelect: chip.onSelect,
|
|
6037
|
-
onHoverStart: chip.onHoverStart,
|
|
6038
|
-
onHoverEnd: chip.onHoverEnd,
|
|
6039
|
-
interactive,
|
|
6040
|
-
className
|
|
6041
|
-
}
|
|
6042
|
-
);
|
|
6043
|
-
}
|
|
6044
|
-
|
|
6045
6077
|
// src/platform-domains.ts
|
|
6046
6078
|
var PLATFORM_DOMAINS = [
|
|
6047
6079
|
{ key: "marketing-hub", defaultUrl: "https://marketing-hub.flamingo.so", envVar: "NEXT_PUBLIC_MARKETING_HUB_URL" },
|
|
@@ -6093,7 +6125,7 @@ function byKey(key) {
|
|
|
6093
6125
|
return PLATFORM_DOMAINS.find((e) => e.key === key);
|
|
6094
6126
|
}
|
|
6095
6127
|
function envOverrideFor(key) {
|
|
6096
|
-
const envVar = _optionalChain([byKey, 'call',
|
|
6128
|
+
const envVar = _optionalChain([byKey, 'call', _122 => _122(key), 'optionalAccess', _123 => _123.envVar]);
|
|
6097
6129
|
if (!envVar) return null;
|
|
6098
6130
|
return ENV_OVERRIDES[envVar] || null;
|
|
6099
6131
|
}
|
|
@@ -6103,7 +6135,7 @@ function ensureScheme(url) {
|
|
|
6103
6135
|
return `https://${trimmed.replace(/^\/+/, "")}`;
|
|
6104
6136
|
}
|
|
6105
6137
|
function getPlatformProductionUrl(platform) {
|
|
6106
|
-
const resolved = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(envOverrideFor(platform), () => ( _optionalChain([byKey, 'call',
|
|
6138
|
+
const resolved = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(envOverrideFor(platform), () => ( _optionalChain([byKey, 'call', _124 => _124(platform), 'optionalAccess', _125 => _125.defaultUrl]))), () => ( envOverrideFor("flamingo"))), () => ( "https://www.flamingo.run"));
|
|
6107
6139
|
return ensureScheme(resolved);
|
|
6108
6140
|
}
|
|
6109
6141
|
function getPlatformUrl(platform, options = {}) {
|
|
@@ -6112,7 +6144,7 @@ function getPlatformUrl(platform, options = {}) {
|
|
|
6112
6144
|
}
|
|
6113
6145
|
function getDeploymentUrl(options) {
|
|
6114
6146
|
if (typeof window !== "undefined") return window.location.origin;
|
|
6115
|
-
const configured = _optionalChain([options, 'access',
|
|
6147
|
+
const configured = _optionalChain([options, 'access', _126 => _126.configuredUrl, 'optionalAccess', _127 => _127.trim, 'call', _128 => _128()]);
|
|
6116
6148
|
if (configured) return ensureScheme(configured).replace(/\/+$/, "");
|
|
6117
6149
|
if (process.env.VERCEL_ENV === "preview" && process.env.VERCEL_URL) {
|
|
6118
6150
|
return ensureScheme(process.env.VERCEL_URL).replace(/\/+$/, "");
|
|
@@ -6134,7 +6166,7 @@ function getRequestOrigin(headers, options) {
|
|
|
6134
6166
|
const host = headers.get("host");
|
|
6135
6167
|
if (!host) return getDeploymentUrl(options);
|
|
6136
6168
|
const local = LOCAL_HOSTNAME.test(host.replace(/:\d+$/, ""));
|
|
6137
|
-
const proto = _optionalChain([headers, 'access',
|
|
6169
|
+
const proto = _optionalChain([headers, 'access', _129 => _129.get, 'call', _130 => _130("x-forwarded-proto"), 'optionalAccess', _131 => _131.split, 'call', _132 => _132(","), 'access', _133 => _133[0], 'access', _134 => _134.trim, 'call', _135 => _135()]) || (local ? "http" : "https");
|
|
6138
6170
|
return `${proto}://${host}`;
|
|
6139
6171
|
}
|
|
6140
6172
|
function resolveRedirectTarget(origin, target) {
|
|
@@ -6163,7 +6195,7 @@ function toRegistrableBaseDomain(host) {
|
|
|
6163
6195
|
return void 0;
|
|
6164
6196
|
}
|
|
6165
6197
|
function aliasHostsOf(key) {
|
|
6166
|
-
return _nullishCoalesce(_optionalChain([byKey, 'call',
|
|
6198
|
+
return _nullishCoalesce(_optionalChain([byKey, 'call', _136 => _136(key), 'optionalAccess', _137 => _137.aliasHostnames]), () => ( []));
|
|
6167
6199
|
}
|
|
6168
6200
|
function hostsForEntry(entry, opts) {
|
|
6169
6201
|
const resolved = hostOf(getPlatformProductionUrl(entry.key));
|
|
@@ -6459,13 +6491,13 @@ function recordCountLabel(count) {
|
|
|
6459
6491
|
}
|
|
6460
6492
|
function buildGroupedSource(spec) {
|
|
6461
6493
|
const first = spec.rows[0];
|
|
6462
|
-
const externalUrl = _nullishCoalesce(spec.externalUrl, () => ( _optionalChain([first, 'optionalAccess',
|
|
6463
|
-
const targetPlatform = spec.targetPlatform !== void 0 ? spec.targetPlatform : _optionalChain([first, 'optionalAccess',
|
|
6494
|
+
const externalUrl = _nullishCoalesce(spec.externalUrl, () => ( _optionalChain([first, 'optionalAccess', _138 => _138.externalUrl])));
|
|
6495
|
+
const targetPlatform = spec.targetPlatform !== void 0 ? spec.targetPlatform : _optionalChain([first, 'optionalAccess', _139 => _139.targetPlatform]);
|
|
6464
6496
|
return {
|
|
6465
6497
|
index: spec.index,
|
|
6466
6498
|
name: `${getSourceLabel(spec.sourceRepo)} ${recordCountLabel(spec.rows.length)}`,
|
|
6467
|
-
path: _nullishCoalesce(_optionalChain([first, 'optionalAccess',
|
|
6468
|
-
documentType: _nullishCoalesce(_optionalChain([first, 'optionalAccess',
|
|
6499
|
+
path: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _140 => _140.path]), () => ( "")),
|
|
6500
|
+
documentType: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _141 => _141.documentType]), () => ( "")),
|
|
6469
6501
|
...externalUrl ? { externalUrl } : {},
|
|
6470
6502
|
targetPlatform: _nullishCoalesce(targetPlatform, () => ( null)),
|
|
6471
6503
|
sourceRepo: spec.sourceRepo,
|
|
@@ -6533,7 +6565,7 @@ function groupSourcesByTable(sources2) {
|
|
|
6533
6565
|
index: source.index,
|
|
6534
6566
|
sourceRepo: source.sourceRepo,
|
|
6535
6567
|
rows: uniqueRows(members.flatMap(rowsOf)),
|
|
6536
|
-
..._optionalChain([serverChip, 'optionalAccess',
|
|
6568
|
+
..._optionalChain([serverChip, 'optionalAccess', _142 => _142.externalUrl]) ? { externalUrl: serverChip.externalUrl } : {},
|
|
6537
6569
|
...serverChip && serverChip.targetPlatform !== void 0 ? { targetPlatform: serverChip.targetPlatform } : {}
|
|
6538
6570
|
})
|
|
6539
6571
|
);
|
|
@@ -6581,7 +6613,7 @@ function formatChatAttachmentMarkdownForBubble(att, viewUrlPrefix) {
|
|
|
6581
6613
|
|
|
6582
6614
|
[Attached: ${safeName}](${url})`;
|
|
6583
6615
|
}
|
|
6584
|
-
var CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED =
|
|
6616
|
+
var CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunk7Z4EQOIXcjs.escapeRegExp.call(void 0, CHAT_ATTACHMENT_VIEW_URL_PREFIX);
|
|
6585
6617
|
var CHAT_ATTACHMENT_MARKDOWN_PATTERN = new RegExp(
|
|
6586
6618
|
`^\\s*!?\\[[^\\]]*\\]\\(${CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED}[^)]+\\)\\s*$`,
|
|
6587
6619
|
"gm"
|
|
@@ -6605,7 +6637,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
|
|
|
6605
6637
|
function buildAutoContinuationDirective(toolName, opts = {}) {
|
|
6606
6638
|
const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
|
|
6607
6639
|
const ticketHash = opts.ticketId ? ` #${opts.ticketId}` : "";
|
|
6608
|
-
const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access',
|
|
6640
|
+
const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _143 => _143.status, 'optionalAccess', _144 => _144.toUpperCase, 'call', _145 => _145()]) === "CLOSED";
|
|
6609
6641
|
if (toolName === "create_ticket") {
|
|
6610
6642
|
return `${AUTO_CONTINUATION_DIRECTIVE_PREFIX} The user just approved create_ticket${ticketRef}. Per ticket-protocol \xA71a, ask 2-4 SHORT, issue-specific diagnostic follow-up questions tailored to the symptom they reported in their original message. When they answer, propose an update_ticket with content_addendum carrying a clean Q&A digest. Do NOT call any tool in this turn \u2014 just write the questions as prose.`;
|
|
6611
6643
|
}
|
|
@@ -6667,7 +6699,7 @@ function formatSingularLookupInvocation(cmdId, value) {
|
|
|
6667
6699
|
return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
|
|
6668
6700
|
}
|
|
6669
6701
|
function extractEntityIdFilter(override, expectedTableId) {
|
|
6670
|
-
const f = _optionalChain([override, 'optionalAccess',
|
|
6702
|
+
const f = _optionalChain([override, 'optionalAccess', _146 => _146.entityIdFilter]);
|
|
6671
6703
|
if (!f) return null;
|
|
6672
6704
|
const tableId = typeof f.tableId === "string" ? f.tableId : "";
|
|
6673
6705
|
const id = typeof f.id === "string" ? f.id : "";
|
|
@@ -6868,7 +6900,7 @@ function MarqueeWall({
|
|
|
6868
6900
|
if (!container || !copy) return;
|
|
6869
6901
|
const size = axis === "y" ? copy.offsetHeight : copy.offsetWidth;
|
|
6870
6902
|
copySizeRef.current = size;
|
|
6871
|
-
const clone = _optionalChain([trackRef, 'access',
|
|
6903
|
+
const clone = _optionalChain([trackRef, 'access', _147 => _147.current, 'optionalAccess', _148 => _148.querySelector, 'call', _149 => _149('[data-marquee-copy="clone"]')]);
|
|
6872
6904
|
wrapSizeRef.current = clone ? axis === "y" ? clone.offsetTop - copy.offsetTop : clone.offsetLeft - copy.offsetLeft : size + (typeof copyGap === "number" ? copyGap : 0);
|
|
6873
6905
|
const avail = axis === "y" ? container.clientHeight : container.clientWidth;
|
|
6874
6906
|
setOverflows(size > avail + 1);
|
|
@@ -6999,7 +7031,7 @@ function MarqueeWall({
|
|
|
6999
7031
|
if (Math.abs(delta) > 3 && !dragMovedRef.current) {
|
|
7000
7032
|
dragMovedRef.current = true;
|
|
7001
7033
|
try {
|
|
7002
|
-
_optionalChain([containerRef, 'access',
|
|
7034
|
+
_optionalChain([containerRef, 'access', _150 => _150.current, 'optionalAccess', _151 => _151.setPointerCapture, 'call', _152 => _152(e.pointerId)]);
|
|
7003
7035
|
} catch (e4) {
|
|
7004
7036
|
}
|
|
7005
7037
|
}
|
|
@@ -7016,7 +7048,7 @@ function MarqueeWall({
|
|
|
7016
7048
|
dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
|
|
7017
7049
|
if (dragMovedRef.current) {
|
|
7018
7050
|
try {
|
|
7019
|
-
_optionalChain([containerRef, 'access',
|
|
7051
|
+
_optionalChain([containerRef, 'access', _153 => _153.current, 'optionalAccess', _154 => _154.releasePointerCapture, 'call', _155 => _155(e.pointerId)]);
|
|
7020
7052
|
} catch (e5) {
|
|
7021
7053
|
}
|
|
7022
7054
|
}
|
|
@@ -7336,18 +7368,18 @@ function chatDialogMenuItems({
|
|
|
7336
7368
|
onArchive
|
|
7337
7369
|
}) {
|
|
7338
7370
|
const items = [
|
|
7339
|
-
onCopyLink && {
|
|
7340
|
-
id: "copy-link",
|
|
7341
|
-
label: "Copy Chat Link",
|
|
7342
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSVNAJZEXcjs.Link01HorizontalIcon, { className: chatMenuIconClassName }),
|
|
7343
|
-
onClick: onCopyLink
|
|
7344
|
-
},
|
|
7345
7371
|
onRename && {
|
|
7346
7372
|
id: "rename",
|
|
7347
7373
|
label: "Rename Chat",
|
|
7348
7374
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB7AGSQ2Pcjs.PenEditIcon, { className: chatMenuIconClassName }),
|
|
7349
7375
|
onClick: onRename
|
|
7350
7376
|
},
|
|
7377
|
+
onCopyLink && {
|
|
7378
|
+
id: "copy-link",
|
|
7379
|
+
label: "Copy Chat Link",
|
|
7380
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSVNAJZEXcjs.Link01HorizontalIcon, { className: chatMenuIconClassName }),
|
|
7381
|
+
onClick: onCopyLink
|
|
7382
|
+
},
|
|
7351
7383
|
onCompact && {
|
|
7352
7384
|
id: "compact",
|
|
7353
7385
|
label: "Compact Chat Memory",
|
|
@@ -7425,7 +7457,7 @@ function MingoChatHistoryRow({
|
|
|
7425
7457
|
const unread = _nullishCoalesce(dialog.unreadMessagesCount, () => ( 0));
|
|
7426
7458
|
const hasMenu = !!onRequestRename || !!onRequestArchive || !!onRequestCopyLink || !!onRequestCompact;
|
|
7427
7459
|
const owner = dialog.owner;
|
|
7428
|
-
const hasAvatar = !!(_optionalChain([owner, 'optionalAccess',
|
|
7460
|
+
const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _156 => _156.name]) || _optionalChain([owner, 'optionalAccess', _157 => _157.avatarUrl]));
|
|
7429
7461
|
const [menuOpen, setMenuOpen] = _react.useState.call(void 0, false);
|
|
7430
7462
|
const menuItems = chatDialogMenuItems({
|
|
7431
7463
|
onCopyLink: onRequestCopyLink && (() => onRequestCopyLink(dialog)),
|
|
@@ -7450,11 +7482,11 @@ function MingoChatHistoryRow({
|
|
|
7450
7482
|
{
|
|
7451
7483
|
role: "button",
|
|
7452
7484
|
tabIndex: 0,
|
|
7453
|
-
onClick: () => _optionalChain([onSelect, 'optionalCall',
|
|
7485
|
+
onClick: () => _optionalChain([onSelect, 'optionalCall', _158 => _158(dialog.id)]),
|
|
7454
7486
|
onKeyDown: (e) => {
|
|
7455
7487
|
if (e.key === "Enter" || e.key === " ") {
|
|
7456
7488
|
e.preventDefault();
|
|
7457
|
-
_optionalChain([onSelect, 'optionalCall',
|
|
7489
|
+
_optionalChain([onSelect, 'optionalCall', _159 => _159(dialog.id)]);
|
|
7458
7490
|
}
|
|
7459
7491
|
},
|
|
7460
7492
|
className: "flex min-w-0 flex-1 cursor-pointer items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
|
|
@@ -7521,8 +7553,8 @@ function MingoChatHistoryRow({
|
|
|
7521
7553
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7522
7554
|
"span",
|
|
7523
7555
|
{
|
|
7524
|
-
onClick: () => _optionalChain([onSelect, 'optionalCall',
|
|
7525
|
-
title: _optionalChain([owner, 'optionalAccess',
|
|
7556
|
+
onClick: () => _optionalChain([onSelect, 'optionalCall', _160 => _160(dialog.id)]),
|
|
7557
|
+
title: _optionalChain([owner, 'optionalAccess', _161 => _161.name]) || void 0,
|
|
7526
7558
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
7527
7559
|
"absolute inset-0 flex cursor-pointer items-center justify-center transition-opacity",
|
|
7528
7560
|
hasMenu && (menuOpen ? "pointer-events-none opacity-0" : "md:group-hover/row:pointer-events-none md:group-hover/row:opacity-0 md:peer-[:focus-within]/menu:pointer-events-none md:peer-[:focus-within]/menu:opacity-0")
|
|
@@ -7532,9 +7564,9 @@ function MingoChatHistoryRow({
|
|
|
7532
7564
|
{
|
|
7533
7565
|
variant: "round",
|
|
7534
7566
|
sizePx: 24,
|
|
7535
|
-
src: _optionalChain([owner, 'optionalAccess',
|
|
7536
|
-
alt: _optionalChain([owner, 'optionalAccess',
|
|
7537
|
-
fallback: _optionalChain([owner, 'optionalAccess',
|
|
7567
|
+
src: _optionalChain([owner, 'optionalAccess', _162 => _162.avatarUrl]) || void 0,
|
|
7568
|
+
alt: _optionalChain([owner, 'optionalAccess', _163 => _163.name]) || void 0,
|
|
7569
|
+
fallback: _optionalChain([owner, 'optionalAccess', _164 => _164.name]) || void 0,
|
|
7538
7570
|
initialsClassName: "text-[10px] text-ods-text-secondary"
|
|
7539
7571
|
}
|
|
7540
7572
|
)
|
|
@@ -7590,7 +7622,7 @@ function MingoChatHistory({
|
|
|
7590
7622
|
className
|
|
7591
7623
|
}) {
|
|
7592
7624
|
const groups = _react.useMemo.call(void 0, () => groupDialogs(dialogs), [dialogs]);
|
|
7593
|
-
const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess',
|
|
7625
|
+
const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _165 => _165.trim, 'call', _166 => _166()]);
|
|
7594
7626
|
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = useScrollFade();
|
|
7595
7627
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
7596
7628
|
const onLoadMoreRef = _react.useRef.call(void 0, onLoadMore);
|
|
@@ -7607,7 +7639,7 @@ function MingoChatHistory({
|
|
|
7607
7639
|
const io = new IntersectionObserver(
|
|
7608
7640
|
([entry]) => {
|
|
7609
7641
|
if (entry.isIntersecting && !isLoadingMoreRef.current) {
|
|
7610
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
7642
|
+
_optionalChain([onLoadMoreRef, 'access', _167 => _167.current, 'optionalCall', _168 => _168()]);
|
|
7611
7643
|
}
|
|
7612
7644
|
},
|
|
7613
7645
|
{ root, rootMargin: "120px", threshold: 0.1 }
|
|
@@ -7785,8 +7817,8 @@ function MingoWelcome({
|
|
|
7785
7817
|
icon: action.icon,
|
|
7786
7818
|
variant: action.variant,
|
|
7787
7819
|
onSelect: action.onClick,
|
|
7788
|
-
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall',
|
|
7789
|
-
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall',
|
|
7820
|
+
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _169 => _169(action)]),
|
|
7821
|
+
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _170 => _170()])
|
|
7790
7822
|
})),
|
|
7791
7823
|
agentSlug,
|
|
7792
7824
|
rows: 4,
|
|
@@ -7839,9 +7871,9 @@ function GuideWelcome({
|
|
|
7839
7871
|
props: action.iconProps,
|
|
7840
7872
|
accent: _nullishCoalesce(_nullishCoalesce(action.accent, () => ( accentFromIdentityIcon(icon))), () => ( "cyan"))
|
|
7841
7873
|
},
|
|
7842
|
-
onSelect: () => _optionalChain([onQuickAction, 'optionalCall',
|
|
7843
|
-
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall',
|
|
7844
|
-
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall',
|
|
7874
|
+
onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _171 => _171(action)]),
|
|
7875
|
+
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _172 => _172(action)]),
|
|
7876
|
+
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _173 => _173()])
|
|
7845
7877
|
})),
|
|
7846
7878
|
[quickActions, icon, onQuickAction, onQuickActionHover, onQuickActionHoverEnd]
|
|
7847
7879
|
);
|
|
@@ -7858,7 +7890,7 @@ function GuideWelcome({
|
|
|
7858
7890
|
icon && (icon.name || icon.url) ? (
|
|
7859
7891
|
// Agent-mode identity glyph (chat-config Identity tab). Sized to
|
|
7860
7892
|
// match the default Mingo mark (48px).
|
|
7861
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7893
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.EntityIcon, { icon: { name: icon.name, url: icon.url, props: icon.props }, size: 48 })
|
|
7862
7894
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLVO7FALWcjs.AgentMark, { agent: "mingo", className: "h-12 w-12" }),
|
|
7863
7895
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-l)]", children: [
|
|
7864
7896
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h2", children: title }),
|
|
@@ -8040,7 +8072,7 @@ function MingoArchiveList({
|
|
|
8040
8072
|
if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
|
|
8041
8073
|
const observer = new IntersectionObserver(
|
|
8042
8074
|
([entry]) => {
|
|
8043
|
-
if (_optionalChain([entry, 'optionalAccess',
|
|
8075
|
+
if (_optionalChain([entry, 'optionalAccess', _174 => _174.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _175 => _175.current, 'optionalCall', _176 => _176()]);
|
|
8044
8076
|
},
|
|
8045
8077
|
{ rootMargin: "120px", threshold: 0.1 }
|
|
8046
8078
|
);
|
|
@@ -8059,7 +8091,7 @@ function MingoArchiveList({
|
|
|
8059
8091
|
ChatListItem,
|
|
8060
8092
|
{
|
|
8061
8093
|
title: dialog.title || "Untitled Chat",
|
|
8062
|
-
onClick: () => _optionalChain([onSelectDialog, 'optionalCall',
|
|
8094
|
+
onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _177 => _177(dialog.id)]),
|
|
8063
8095
|
trailing: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
8064
8096
|
dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkLVO7FALWcjs.formatRelativeTime.call(void 0, dialog.timestamp) }),
|
|
8065
8097
|
dialog.owner && (dialog.owner.name || dialog.owner.avatarUrl) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -8124,10 +8156,15 @@ function MingoChatHeader({
|
|
|
8124
8156
|
onToggleList,
|
|
8125
8157
|
listOpen = false,
|
|
8126
8158
|
menuItems = [],
|
|
8159
|
+
extraMenuItems = [],
|
|
8127
8160
|
onRestore,
|
|
8128
8161
|
onCollapse,
|
|
8129
8162
|
onClose
|
|
8130
8163
|
}) {
|
|
8164
|
+
const menuGroups = [
|
|
8165
|
+
...menuItems.length > 0 ? [{ items: menuItems, separator: true }] : [],
|
|
8166
|
+
...extraMenuItems.length > 0 ? [{ items: extraMenuItems }] : []
|
|
8167
|
+
];
|
|
8131
8168
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-14 w-full shrink-0 overflow-hidden border-b border-ods-border", children: [
|
|
8132
8169
|
onToggleList && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8133
8170
|
ChatHeaderIconButton,
|
|
@@ -8157,12 +8194,12 @@ function MingoChatHeader({
|
|
|
8157
8194
|
) : null
|
|
8158
8195
|
] }),
|
|
8159
8196
|
onRestore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatHeaderIconButton, { onClick: onRestore, "aria-label": "Unarchive chat", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPX2JK6Pcjs.Refresh01LeftIcon, { size: 24 }) }),
|
|
8160
|
-
|
|
8197
|
+
menuGroups.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8161
8198
|
_chunkP6F6PHVKcjs.ActionsMenuDropdown,
|
|
8162
8199
|
{
|
|
8163
8200
|
triggerAriaLabel: "Chat actions",
|
|
8164
8201
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
8165
|
-
groups:
|
|
8202
|
+
groups: menuGroups,
|
|
8166
8203
|
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatHeaderIconButton, { "aria-label": "Chat actions", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSWHUL32Wcjs.Ellipsis01Icon, { size: 24 }) })
|
|
8167
8204
|
}
|
|
8168
8205
|
),
|
|
@@ -8195,7 +8232,7 @@ function ChatHeaderSearchField({
|
|
|
8195
8232
|
const finishCollapse = _react.useCallback.call(void 0, () => {
|
|
8196
8233
|
if (collapsedRef.current) return;
|
|
8197
8234
|
collapsedRef.current = true;
|
|
8198
|
-
_optionalChain([onCollapse, 'optionalCall',
|
|
8235
|
+
_optionalChain([onCollapse, 'optionalCall', _178 => _178()]);
|
|
8199
8236
|
}, [onCollapse]);
|
|
8200
8237
|
const beginCollapse = _react.useCallback.call(void 0, () => {
|
|
8201
8238
|
setExiting(true);
|
|
@@ -8277,7 +8314,7 @@ var STATUS_GLYPHS = {
|
|
|
8277
8314
|
approval: { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOBGYDNT6cjs.ShieldCheckIcon, { className: "text-ods-accent" }), label: "Waiting for approval" }
|
|
8278
8315
|
};
|
|
8279
8316
|
function statusFor(dialog, statusOf) {
|
|
8280
|
-
return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall',
|
|
8317
|
+
return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _179 => _179(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
|
|
8281
8318
|
}
|
|
8282
8319
|
function MingoChatRail({
|
|
8283
8320
|
dialogs,
|
|
@@ -8306,8 +8343,8 @@ function MingoChatRail({
|
|
|
8306
8343
|
onExpand,
|
|
8307
8344
|
className
|
|
8308
8345
|
}) {
|
|
8309
|
-
const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess',
|
|
8310
|
-
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess',
|
|
8346
|
+
const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _180 => _180.trim, 'call', _181 => _181()]));
|
|
8347
|
+
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _182 => _182.trim, 'call', _183 => _183()]);
|
|
8311
8348
|
const items = [];
|
|
8312
8349
|
if (onNewChat) items.push({ id: "new", label: "Start New Chat", icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIZPN2P7Ucjs.ChatPlusIcon, {}), onClick: onNewChat });
|
|
8313
8350
|
if (onOpenArchive) {
|
|
@@ -8364,7 +8401,7 @@ function MingoChatRail({
|
|
|
8364
8401
|
if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
|
|
8365
8402
|
const observer = new IntersectionObserver(
|
|
8366
8403
|
([entry]) => {
|
|
8367
|
-
if (_optionalChain([entry, 'optionalAccess',
|
|
8404
|
+
if (_optionalChain([entry, 'optionalAccess', _184 => _184.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _185 => _185.current, 'optionalCall', _186 => _186()]);
|
|
8368
8405
|
},
|
|
8369
8406
|
{ rootMargin: "120px", threshold: 0.1 }
|
|
8370
8407
|
);
|
|
@@ -8478,7 +8515,7 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems }) {
|
|
|
8478
8515
|
{
|
|
8479
8516
|
active,
|
|
8480
8517
|
title,
|
|
8481
|
-
onClick: () => _optionalChain([onSelect, 'optionalCall',
|
|
8518
|
+
onClick: () => _optionalChain([onSelect, 'optionalCall', _187 => _187(dialog.id)]),
|
|
8482
8519
|
className: _chunk3ATAYP36cjs.cn.call(void 0, hasMenu && "pr-10"),
|
|
8483
8520
|
trailing: glyph ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8484
8521
|
"span",
|
|
@@ -8612,7 +8649,7 @@ function MingoHistoryRail({
|
|
|
8612
8649
|
onRetry,
|
|
8613
8650
|
className
|
|
8614
8651
|
}) {
|
|
8615
|
-
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess',
|
|
8652
|
+
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _188 => _188.trim, 'call', _189 => _189()]);
|
|
8616
8653
|
const hasList = dialogs.length > 0 || hasSearch;
|
|
8617
8654
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8618
8655
|
"div",
|
|
@@ -8761,7 +8798,7 @@ function ChatDialogModals({
|
|
|
8761
8798
|
RenameChatModal,
|
|
8762
8799
|
{
|
|
8763
8800
|
isOpen: renameTarget != null,
|
|
8764
|
-
initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess',
|
|
8801
|
+
initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _190 => _190.title]), () => ( "")),
|
|
8765
8802
|
onClose: () => setRenameTarget(null),
|
|
8766
8803
|
onSave: onConfirmRename
|
|
8767
8804
|
}
|
|
@@ -8975,7 +9012,7 @@ function ChatAttachmentAddButton({
|
|
|
8975
9012
|
const canAddMore = slotsAvailable > 0 && !disabled;
|
|
8976
9013
|
const handlePick = () => {
|
|
8977
9014
|
if (!canAddMore) return;
|
|
8978
|
-
_optionalChain([fileInputRef, 'access',
|
|
9015
|
+
_optionalChain([fileInputRef, 'access', _191 => _191.current, 'optionalAccess', _192 => _192.click, 'call', _193 => _193()]);
|
|
8979
9016
|
};
|
|
8980
9017
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8981
9018
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -9138,7 +9175,7 @@ function ChatContextMemoryBar({
|
|
|
9138
9175
|
_react.useEffect.call(void 0, () => {
|
|
9139
9176
|
if (!open) return void 0;
|
|
9140
9177
|
const onOutside = (e) => {
|
|
9141
|
-
if (_optionalChain([rootRef, 'access',
|
|
9178
|
+
if (_optionalChain([rootRef, 'access', _194 => _194.current, 'optionalAccess', _195 => _195.contains, 'call', _196 => _196(e.target)])) return;
|
|
9142
9179
|
setOpen(false);
|
|
9143
9180
|
};
|
|
9144
9181
|
document.addEventListener("mousedown", onOutside, true);
|
|
@@ -9440,7 +9477,7 @@ function ChatComposer({
|
|
|
9440
9477
|
const locked = lock != null;
|
|
9441
9478
|
const selected = _nullishCoalesce(selectedContextItems, () => ( []));
|
|
9442
9479
|
const memory = _nullishCoalesce(contextMemoryItems, () => ( []));
|
|
9443
|
-
const entityTypes = _optionalChain([contextPicker, 'optionalAccess',
|
|
9480
|
+
const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _197 => _197.entityTypes]);
|
|
9444
9481
|
const iconByType = _react.useMemo.call(void 0, () => {
|
|
9445
9482
|
const map = /* @__PURE__ */ new Map();
|
|
9446
9483
|
for (const t of _nullishCoalesce(entityTypes, () => ( []))) map.set(t.type, t.icon);
|
|
@@ -9456,7 +9493,7 @@ function ChatComposer({
|
|
|
9456
9493
|
sending,
|
|
9457
9494
|
placeholder,
|
|
9458
9495
|
disabled: locked,
|
|
9459
|
-
disabledPlaceholder: _optionalChain([lock, 'optionalAccess',
|
|
9496
|
+
disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _198 => _198.placeholder]),
|
|
9460
9497
|
previewText,
|
|
9461
9498
|
fullWidth: true,
|
|
9462
9499
|
className: "px-0",
|
|
@@ -9469,7 +9506,7 @@ function ChatComposer({
|
|
|
9469
9506
|
startIcon: contextEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9470
9507
|
ChatComposerPlusMenu,
|
|
9471
9508
|
{
|
|
9472
|
-
onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall',
|
|
9509
|
+
onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _199 => _199()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _200 => _200()]),
|
|
9473
9510
|
open: contextPickerOpen,
|
|
9474
9511
|
disabled: attachmentsDisabled || locked,
|
|
9475
9512
|
dropdown: contextPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -9478,8 +9515,8 @@ function ChatComposer({
|
|
|
9478
9515
|
open: contextPickerOpen,
|
|
9479
9516
|
config: contextPicker,
|
|
9480
9517
|
selectedItems: selected,
|
|
9481
|
-
onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall',
|
|
9482
|
-
onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall',
|
|
9518
|
+
onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _201 => _201(item)]),
|
|
9519
|
+
onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _202 => _202()]),
|
|
9483
9520
|
mentionQuery
|
|
9484
9521
|
}
|
|
9485
9522
|
) : void 0
|
|
@@ -9606,29 +9643,22 @@ function ChatArchivePage(props) {
|
|
|
9606
9643
|
] });
|
|
9607
9644
|
}
|
|
9608
9645
|
|
|
9609
|
-
// src/components/chat/chat-panel-context.tsx
|
|
9610
|
-
|
|
9611
|
-
var ChatPanelContext = _react.createContext.call(void 0, null);
|
|
9612
|
-
function useChatPanel() {
|
|
9613
|
-
return _react.useContext.call(void 0, ChatPanelContext);
|
|
9614
|
-
}
|
|
9615
|
-
|
|
9616
9646
|
// src/components/chat/utils/execute-navigation.ts
|
|
9617
9647
|
function isForeignOriginHref(href) {
|
|
9618
|
-
return /^https?:\/\//i.test(href) && !
|
|
9648
|
+
return /^https?:\/\//i.test(href) && !_chunk7Z4EQOIXcjs.isSameOriginAbsoluteHref.call(void 0, href);
|
|
9619
9649
|
}
|
|
9620
9650
|
function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
|
|
9621
|
-
const isNewTab = runtime ?
|
|
9651
|
+
const isNewTab = runtime ? _chunk7Z4EQOIXcjs.computeIsNewTab.call(void 0, runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
|
|
9622
9652
|
if (isNewTab) {
|
|
9623
|
-
if (_optionalChain([runtime, 'optionalAccess',
|
|
9624
|
-
else window.open(href, "_blank",
|
|
9653
|
+
if (_optionalChain([runtime, 'optionalAccess', _203 => _203.navigation, 'access', _204 => _204.openExternal])) runtime.navigation.openExternal(href);
|
|
9654
|
+
else window.open(href, "_blank", _chunk7Z4EQOIXcjs.NEW_TAB_FEATURES);
|
|
9625
9655
|
return;
|
|
9626
9656
|
}
|
|
9627
|
-
const target = isForeignOriginHref(href) ? href :
|
|
9657
|
+
const target = isForeignOriginHref(href) ? href : _chunk7Z4EQOIXcjs.stripSameOriginToPath.call(void 0, href);
|
|
9628
9658
|
if (target.includes("#") && _chunkCSJO7ZGNcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkCSJO7ZGNcjs.STICKY_HEADER_OFFSET_PX })) {
|
|
9629
9659
|
return;
|
|
9630
9660
|
}
|
|
9631
|
-
const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
|
9661
|
+
const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _205 => _205.navigation, 'access', _206 => _206.navigate, 'optionalCall', _207 => _207({ href, path, targetPlatform })]), () => ( false));
|
|
9632
9662
|
if (!handled) {
|
|
9633
9663
|
if (fallbackNavigate) fallbackNavigate(target);
|
|
9634
9664
|
else window.location.assign(target);
|
|
@@ -9675,10 +9705,10 @@ function useNavLinkViaRuntime({
|
|
|
9675
9705
|
const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
|
|
9676
9706
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
9677
9707
|
const panel = useChatPanel();
|
|
9678
|
-
const resolvedHref =
|
|
9679
|
-
const isNewTab =
|
|
9708
|
+
const resolvedHref = _chunk7Z4EQOIXcjs.resolveHrefForRuntime.call(void 0, href, runtime);
|
|
9709
|
+
const isNewTab = _chunk7Z4EQOIXcjs.computeIsNewTab.call(void 0, runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
|
|
9680
9710
|
const onClick = (e) => {
|
|
9681
|
-
_optionalChain([onClickProp, 'optionalCall',
|
|
9711
|
+
_optionalChain([onClickProp, 'optionalCall', _208 => _208(e)]);
|
|
9682
9712
|
if (e.defaultPrevented) return;
|
|
9683
9713
|
const handled = executeNavigation({
|
|
9684
9714
|
event: e,
|
|
@@ -9688,9 +9718,9 @@ function useNavLinkViaRuntime({
|
|
|
9688
9718
|
targetPlatform,
|
|
9689
9719
|
fallbackNavigate: router.push
|
|
9690
9720
|
});
|
|
9691
|
-
if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
9721
|
+
if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _209 => _209.closeChat])) panel.closeChat();
|
|
9692
9722
|
};
|
|
9693
|
-
const attrs =
|
|
9723
|
+
const attrs = _chunk7Z4EQOIXcjs.newTabAnchorAttrs.call(void 0, isNewTab);
|
|
9694
9724
|
return {
|
|
9695
9725
|
href: resolvedHref,
|
|
9696
9726
|
...attrs,
|
|
@@ -9772,11 +9802,11 @@ var DEFAULT_CAPTIONS_PATH = "/api/captions";
|
|
|
9772
9802
|
function getCaptionsUrl(entityType, entityId, srtContent, options) {
|
|
9773
9803
|
if (!srtContent) return void 0;
|
|
9774
9804
|
const hash = `${srtContent.length}-${srtContent.slice(0, 8).replace(/\s/g, "")}`;
|
|
9775
|
-
const variant = _optionalChain([options, 'optionalAccess',
|
|
9805
|
+
const variant = _optionalChain([options, 'optionalAccess', _210 => _210.variant]) ? `&variant=${options.variant}` : "";
|
|
9776
9806
|
return `${DEFAULT_CAPTIONS_PATH}/${entityType}/${entityId}?v=${hash}${variant}`;
|
|
9777
9807
|
}
|
|
9778
9808
|
function resolveCaptionsBase(endpoints) {
|
|
9779
|
-
return _optionalChain([endpoints, 'optionalAccess',
|
|
9809
|
+
return _optionalChain([endpoints, 'optionalAccess', _211 => _211.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
|
|
9780
9810
|
}
|
|
9781
9811
|
function rebaseCaptionsUrl(endpoints, url) {
|
|
9782
9812
|
if (!url || !url.startsWith(`${DEFAULT_CAPTIONS_PATH}/`)) return url;
|
|
@@ -9811,7 +9841,7 @@ function captionsEntityTypeForDocType(docType) {
|
|
|
9811
9841
|
// src/components/features/use-captions.ts
|
|
9812
9842
|
|
|
9813
9843
|
function useCaptions() {
|
|
9814
|
-
const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess',
|
|
9844
|
+
const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _212 => _212.endpoints]), () => ( null));
|
|
9815
9845
|
return _react.useMemo.call(void 0,
|
|
9816
9846
|
() => ({
|
|
9817
9847
|
forEntity: (entityType, entity) => getEntityCaptionUrls(endpoints, entityType, entity),
|
|
@@ -9837,7 +9867,7 @@ function UserDisplay({
|
|
|
9837
9867
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9838
9868
|
_chunkJHQNUWFMcjs.SquareAvatar,
|
|
9839
9869
|
{
|
|
9840
|
-
src: avatarUrl ?
|
|
9870
|
+
src: avatarUrl ? _chunk7Z4EQOIXcjs.getProxiedImageUrl.call(void 0, avatarUrl) || avatarUrl : void 0,
|
|
9841
9871
|
fallback: name,
|
|
9842
9872
|
alt: name,
|
|
9843
9873
|
sizePx: size,
|
|
@@ -10087,9 +10117,9 @@ function CardsStrip(props) {
|
|
|
10087
10117
|
const p = hoverPointerRef.current;
|
|
10088
10118
|
if (!p.inside) return;
|
|
10089
10119
|
const el = typeof document !== "undefined" ? document.elementFromPoint(p.x, p.y) : null;
|
|
10090
|
-
const cardEl = _optionalChain([el, 'optionalAccess',
|
|
10091
|
-
const scoped = cardEl && _optionalChain([scrollerRef, 'access',
|
|
10092
|
-
const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess',
|
|
10120
|
+
const cardEl = _optionalChain([el, 'optionalAccess', _213 => _213.closest, 'optionalCall', _214 => _214("[data-strip-card-key]")]);
|
|
10121
|
+
const scoped = cardEl && _optionalChain([scrollerRef, 'access', _215 => _215.current, 'optionalAccess', _216 => _216.contains, 'call', _217 => _217(cardEl)]) ? cardEl : null;
|
|
10122
|
+
const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _218 => _218.getAttribute, 'call', _219 => _219("data-strip-card-key")]), () => ( null));
|
|
10093
10123
|
const current = activeKeyRef.current;
|
|
10094
10124
|
if (key === current) return;
|
|
10095
10125
|
if (current !== null) deactivate(current);
|
|
@@ -10127,7 +10157,7 @@ function CardsStrip(props) {
|
|
|
10127
10157
|
}, [syncHoverToPointer]);
|
|
10128
10158
|
const seamBuffer = _react.useCallback.call(void 0, () => {
|
|
10129
10159
|
const half = singleCopyWidthRef.current;
|
|
10130
|
-
const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access',
|
|
10160
|
+
const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _220 => _220.current, 'optionalAccess', _221 => _221.clientWidth]), () => ( 0));
|
|
10131
10161
|
return Math.max(0, Math.min(200, half / 4, half - viewport - TRACK_GAP_PX - 1));
|
|
10132
10162
|
}, []);
|
|
10133
10163
|
const mirror = _react.useCallback.call(void 0,
|
|
@@ -10151,7 +10181,7 @@ function CardsStrip(props) {
|
|
|
10151
10181
|
const scroller = scrollerRef.current;
|
|
10152
10182
|
if (scroller) scroller.scrollLeft = mirror(pos);
|
|
10153
10183
|
},
|
|
10154
|
-
readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access',
|
|
10184
|
+
readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _222 => _222.current, 'optionalAccess', _223 => _223.scrollLeft]), () => ( 0))),
|
|
10155
10185
|
onAfterFrame: syncHoverIfScrolled
|
|
10156
10186
|
});
|
|
10157
10187
|
const [mountedIdx, setMountedIdx] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
|
|
@@ -10199,11 +10229,11 @@ function CardsStrip(props) {
|
|
|
10199
10229
|
fn = (el) => {
|
|
10200
10230
|
if (!el) return void 0;
|
|
10201
10231
|
cardElIdxRef.current.set(el, idx);
|
|
10202
|
-
_optionalChain([cardObserverRef, 'access',
|
|
10232
|
+
_optionalChain([cardObserverRef, 'access', _224 => _224.current, 'optionalAccess', _225 => _225.observe, 'call', _226 => _226(el)]);
|
|
10203
10233
|
return () => {
|
|
10204
10234
|
cardElIdxRef.current.delete(el);
|
|
10205
10235
|
cardElNearRef.current.delete(el);
|
|
10206
|
-
_optionalChain([cardObserverRef, 'access',
|
|
10236
|
+
_optionalChain([cardObserverRef, 'access', _227 => _227.current, 'optionalAccess', _228 => _228.unobserve, 'call', _229 => _229(el)]);
|
|
10207
10237
|
};
|
|
10208
10238
|
};
|
|
10209
10239
|
cardRefFns.set(idx, fn);
|
|
@@ -10222,7 +10252,7 @@ function CardsStrip(props) {
|
|
|
10222
10252
|
const track = trackRef.current;
|
|
10223
10253
|
if (!scroller || !track) return;
|
|
10224
10254
|
const firstCard = track.firstElementChild;
|
|
10225
|
-
const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess',
|
|
10255
|
+
const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _230 => _230.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
|
|
10226
10256
|
chevronSuppressUntilRef.current = performance.now() + CHEVRON_SUPPRESS_MS;
|
|
10227
10257
|
if (marqueeActiveRef.current) {
|
|
10228
10258
|
glideBy((reverse ? -dir : dir) * step);
|
|
@@ -10283,11 +10313,11 @@ function CardsStrip(props) {
|
|
|
10283
10313
|
{
|
|
10284
10314
|
ref: (node) => {
|
|
10285
10315
|
wrapperRef.current = node;
|
|
10286
|
-
_optionalChain([rootRef, 'optionalCall',
|
|
10316
|
+
_optionalChain([rootRef, 'optionalCall', _231 => _231(node)]);
|
|
10287
10317
|
},
|
|
10288
10318
|
className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full min-w-0 flex-col gap-6", className),
|
|
10289
10319
|
children: [
|
|
10290
|
-
showTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${
|
|
10320
|
+
showTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunk7Z4EQOIXcjs.SECTION_HEADING_CLASS} break-words`, children: _chunk7Z4EQOIXcjs.accentSentenceMarks.call(void 0, title) }),
|
|
10291
10321
|
headerSlot,
|
|
10292
10322
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", style: bled ? { marginLeft: -insets.left, marginRight: -insets.right } : void 0, children: [
|
|
10293
10323
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10439,7 +10469,7 @@ function groupByAspectRatio(items, getAspectRatio) {
|
|
|
10439
10469
|
|
|
10440
10470
|
function VideoBitesStrip({
|
|
10441
10471
|
bites,
|
|
10442
|
-
title =
|
|
10472
|
+
title = _chunk7Z4EQOIXcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
10443
10473
|
showTitle = true,
|
|
10444
10474
|
filterPublished = true,
|
|
10445
10475
|
profile = null,
|
|
@@ -10452,14 +10482,14 @@ function VideoBitesStrip({
|
|
|
10452
10482
|
cardHeightMobile = 300,
|
|
10453
10483
|
showChevrons = true,
|
|
10454
10484
|
onBiteNavigate,
|
|
10455
|
-
sortComparator =
|
|
10485
|
+
sortComparator = _chunk7Z4EQOIXcjs.sortBitesByCreatedAtDesc,
|
|
10456
10486
|
className
|
|
10457
10487
|
}) {
|
|
10458
10488
|
const items = _react.useMemo.call(void 0, () => {
|
|
10459
10489
|
const filtered = filterPublished ? bites.filter((b) => b.published) : [...bites];
|
|
10460
10490
|
return filtered.sort(sortComparator);
|
|
10461
10491
|
}, [bites, filterPublished, sortComparator]);
|
|
10462
|
-
const warmup = _chunk3RFQPQ7Zcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access',
|
|
10492
|
+
const warmup = _chunk3RFQPQ7Zcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _232 => _232[0], 'optionalAccess', _233 => _233.url]) || null });
|
|
10463
10493
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10464
10494
|
CardsStrip,
|
|
10465
10495
|
{
|
|
@@ -10528,8 +10558,8 @@ function VideoBiteCard({
|
|
|
10528
10558
|
const controlled = active !== void 0;
|
|
10529
10559
|
const [selfActive, setSelfActive] = _react.useState.call(void 0, false);
|
|
10530
10560
|
const isActive = controlled ? !!active : selfActive;
|
|
10531
|
-
const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall',
|
|
10532
|
-
const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall',
|
|
10561
|
+
const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _234 => _234(key)]) : setSelfActive(true);
|
|
10562
|
+
const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _235 => _235(key)]) : setSelfActive(false);
|
|
10533
10563
|
const titleInputRef = _react.useRef.call(void 0, null);
|
|
10534
10564
|
_chunkDGFDBPO7cjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
10535
10565
|
const el = titleInputRef.current;
|
|
@@ -10539,7 +10569,7 @@ function VideoBiteCard({
|
|
|
10539
10569
|
});
|
|
10540
10570
|
const navigate = () => {
|
|
10541
10571
|
if (bite.onNavigate) bite.onNavigate();
|
|
10542
|
-
else _optionalChain([onBiteNavigate, 'optionalCall',
|
|
10572
|
+
else _optionalChain([onBiteNavigate, 'optionalCall', _236 => _236(bite, index)]);
|
|
10543
10573
|
};
|
|
10544
10574
|
const handlePointerEnter = () => {
|
|
10545
10575
|
if (!isTouch) activate();
|
|
@@ -10564,9 +10594,9 @@ function VideoBiteCard({
|
|
|
10564
10594
|
placeholder: "Title (optional)",
|
|
10565
10595
|
"aria-label": "Bite title",
|
|
10566
10596
|
rows: 1,
|
|
10567
|
-
onChange: (e) => _optionalChain([onTitleChange, 'optionalCall',
|
|
10597
|
+
onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _237 => _237(e.target.value)]),
|
|
10568
10598
|
ref: titleInputRef,
|
|
10569
|
-
onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall',
|
|
10599
|
+
onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _238 => _238(e.target.value)]),
|
|
10570
10600
|
onClick: (e) => e.stopPropagation(),
|
|
10571
10601
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
10572
10602
|
titleClass,
|
|
@@ -10618,7 +10648,7 @@ function VideoBiteCard({
|
|
|
10618
10648
|
},
|
|
10619
10649
|
children: [
|
|
10620
10650
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10621
|
-
|
|
10651
|
+
_chunk7Z4EQOIXcjs.VideoHoverPreviewSurface,
|
|
10622
10652
|
{
|
|
10623
10653
|
url: bite.url,
|
|
10624
10654
|
posterUrl: bite.thumbnail_url,
|
|
@@ -10653,7 +10683,7 @@ function VideoBiteCard({
|
|
|
10653
10683
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10654
10684
|
"div",
|
|
10655
10685
|
{
|
|
10656
|
-
ref: (node) => _optionalChain([rootRef, 'optionalCall',
|
|
10686
|
+
ref: (node) => _optionalChain([rootRef, 'optionalCall', _239 => _239(node)]),
|
|
10657
10687
|
"aria-hidden": isClone || void 0,
|
|
10658
10688
|
"data-strip-card-key": key,
|
|
10659
10689
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
@@ -10689,7 +10719,7 @@ function EntityVideoSection({
|
|
|
10689
10719
|
title = "Video",
|
|
10690
10720
|
videoSummary,
|
|
10691
10721
|
videoBites,
|
|
10692
|
-
bitesTitle =
|
|
10722
|
+
bitesTitle = _chunk7Z4EQOIXcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
10693
10723
|
filterPublishedBites = true,
|
|
10694
10724
|
bitesProfile = null,
|
|
10695
10725
|
bitesHref,
|
|
@@ -10707,8 +10737,8 @@ function EntityVideoSection({
|
|
|
10707
10737
|
const hasHighlight = !!highlightVideoUrl;
|
|
10708
10738
|
const hasVideo = hasFullVideo || hasHighlight;
|
|
10709
10739
|
const derivedCaptions = captionsEntity ? captions.forEntityId(captionsEntity.type, captionsEntity.id) : null;
|
|
10710
|
-
const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess',
|
|
10711
|
-
const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess',
|
|
10740
|
+
const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _240 => _240.captionsUrl])));
|
|
10741
|
+
const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _241 => _241.highlightCaptionsUrl])));
|
|
10712
10742
|
if (!hasVideo && !videoSummary && (!videoBites || videoBites.length === 0)) {
|
|
10713
10743
|
return null;
|
|
10714
10744
|
}
|
|
@@ -10735,7 +10765,7 @@ function EntityVideoSection({
|
|
|
10735
10765
|
)
|
|
10736
10766
|
] }),
|
|
10737
10767
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "full-video", className: "mt-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10738
|
-
|
|
10768
|
+
_chunk7Z4EQOIXcjs.Video,
|
|
10739
10769
|
{
|
|
10740
10770
|
kind: fullVideoKind,
|
|
10741
10771
|
url: fullVideoUrl,
|
|
@@ -10747,7 +10777,7 @@ function EntityVideoSection({
|
|
|
10747
10777
|
}
|
|
10748
10778
|
) }),
|
|
10749
10779
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "highlights", className: "mt-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10750
|
-
|
|
10780
|
+
_chunk7Z4EQOIXcjs.Video,
|
|
10751
10781
|
{
|
|
10752
10782
|
url: highlightVideoUrl,
|
|
10753
10783
|
poster: highlightVideoThumbnail,
|
|
@@ -10756,7 +10786,7 @@ function EntityVideoSection({
|
|
|
10756
10786
|
}
|
|
10757
10787
|
) })
|
|
10758
10788
|
] }) : fullVideoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10759
|
-
|
|
10789
|
+
_chunk7Z4EQOIXcjs.Video,
|
|
10760
10790
|
{
|
|
10761
10791
|
kind: fullVideoKind,
|
|
10762
10792
|
url: fullVideoUrl,
|
|
@@ -10767,7 +10797,7 @@ function EntityVideoSection({
|
|
|
10767
10797
|
priority
|
|
10768
10798
|
}
|
|
10769
10799
|
) : highlightVideoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10770
|
-
|
|
10800
|
+
_chunk7Z4EQOIXcjs.Video,
|
|
10771
10801
|
{
|
|
10772
10802
|
url: highlightVideoUrl,
|
|
10773
10803
|
poster: highlightVideoThumbnail,
|
|
@@ -10777,7 +10807,7 @@ function EntityVideoSection({
|
|
|
10777
10807
|
}
|
|
10778
10808
|
) : null),
|
|
10779
10809
|
videoSummary && MarkdownRenderer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
|
|
10780
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${
|
|
10810
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunk7Z4EQOIXcjs.SECTION_HEADING_CLASS} break-words`, children: "Summary" }),
|
|
10781
10811
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden break-words text-ods-text-primary text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: videoSummary }) })
|
|
10782
10812
|
] }),
|
|
10783
10813
|
videoBites && videoBites.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10826,7 +10856,7 @@ function ChatVideoEntityCard({ chatRef }) {
|
|
|
10826
10856
|
|
|
10827
10857
|
function designDocPeople(doc) {
|
|
10828
10858
|
const people = [];
|
|
10829
|
-
if (_optionalChain([doc, 'access',
|
|
10859
|
+
if (_optionalChain([doc, 'access', _242 => _242.author, 'optionalAccess', _243 => _243.full_name]))
|
|
10830
10860
|
people.push({
|
|
10831
10861
|
key: `dri-${_nullishCoalesce(doc.author.id, () => ( doc.author.full_name))}`,
|
|
10832
10862
|
name: doc.author.full_name,
|
|
@@ -10839,14 +10869,14 @@ function designDocPeople(doc) {
|
|
|
10839
10869
|
return people;
|
|
10840
10870
|
}
|
|
10841
10871
|
function designDocMetaLine(doc) {
|
|
10842
|
-
return [_optionalChain([doc, 'access',
|
|
10872
|
+
return [_optionalChain([doc, 'access', _244 => _244.author, 'optionalAccess', _245 => _245.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunk7Z4EQOIXcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
|
|
10843
10873
|
}
|
|
10844
10874
|
function DesignDocCardSkeleton() {
|
|
10845
10875
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10846
10876
|
"div",
|
|
10847
10877
|
{
|
|
10848
10878
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
10849
|
-
|
|
10879
|
+
_chunk7Z4EQOIXcjs.CONTENT_CARD_SKELETON_FRAME_CLASS,
|
|
10850
10880
|
"flex h-full flex-col gap-[var(--spacing-system-mf)] p-[var(--spacing-system-lf)]"
|
|
10851
10881
|
),
|
|
10852
10882
|
children: [
|
|
@@ -10874,7 +10904,7 @@ function DesignDocCardSkeleton() {
|
|
|
10874
10904
|
function DesignDocCard({ doc, href, target, rel, className }) {
|
|
10875
10905
|
const readiness = DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)];
|
|
10876
10906
|
const people = designDocPeople(doc);
|
|
10877
|
-
const link =
|
|
10907
|
+
const link = _chunk7Z4EQOIXcjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
|
|
10878
10908
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
10879
10909
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-[16px]", children: [
|
|
10880
10910
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
@@ -10882,7 +10912,7 @@ function DesignDocCard({ doc, href, target, rel, className }) {
|
|
|
10882
10912
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h5", children: designDocMetaLine(doc) }) })
|
|
10883
10913
|
] }),
|
|
10884
10914
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10885
|
-
|
|
10915
|
+
_chunk7Z4EQOIXcjs.StatusBadge,
|
|
10886
10916
|
{
|
|
10887
10917
|
text: readiness.label,
|
|
10888
10918
|
colorScheme: readiness.scheme,
|
|
@@ -10892,7 +10922,7 @@ function DesignDocCard({ doc, href, target, rel, className }) {
|
|
|
10892
10922
|
}
|
|
10893
10923
|
)
|
|
10894
10924
|
] }),
|
|
10895
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10925
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.StatusBadge, { text: readiness.label, colorScheme: readiness.scheme, variant: "button", singleLine: true }) }),
|
|
10896
10926
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 text-ods-text-secondary text-h4", children: doc.summary || "" }) }),
|
|
10897
10927
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
10898
10928
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-2", children: [
|
|
@@ -10901,7 +10931,7 @@ function DesignDocCard({ doc, href, target, rel, className }) {
|
|
|
10901
10931
|
] })
|
|
10902
10932
|
] });
|
|
10903
10933
|
const outer = _chunk3ATAYP36cjs.cn.call(void 0,
|
|
10904
|
-
|
|
10934
|
+
_chunk7Z4EQOIXcjs.CONTENT_CARD_FRAME_CLASS,
|
|
10905
10935
|
"flex h-full flex-col gap-[var(--spacing-system-mf)] p-[var(--spacing-system-lf)]",
|
|
10906
10936
|
className
|
|
10907
10937
|
);
|
|
@@ -11045,26 +11075,26 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
11045
11075
|
metaParts.push(
|
|
11046
11076
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: dateText }, "date")
|
|
11047
11077
|
);
|
|
11048
|
-
const href =
|
|
11078
|
+
const href = _chunk7Z4EQOIXcjs.safeHref.call(void 0, item.url);
|
|
11049
11079
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
11050
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11051
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
11052
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${
|
|
11080
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
|
|
11081
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
11082
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
|
|
11053
11083
|
reviewState ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReviewStateBadge, { state: reviewState }) : null,
|
|
11054
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11084
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE, children: primaryText })
|
|
11055
11085
|
] }),
|
|
11056
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11086
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
|
|
11057
11087
|
i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
|
|
11058
11088
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
|
|
11059
11089
|
] }, i)) }) }),
|
|
11060
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11090
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_SUMMARY, children: _chunk7Z4EQOIXcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
11061
11091
|
] }),
|
|
11062
11092
|
href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
|
|
11063
11093
|
] });
|
|
11064
11094
|
if (anchorProps) {
|
|
11065
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: `${
|
|
11095
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
|
|
11066
11096
|
}
|
|
11067
|
-
return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target: "_blank", rel: "noopener noreferrer", className: `${
|
|
11097
|
+
return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
11068
11098
|
}
|
|
11069
11099
|
function GitHubActivityCardSkeleton({
|
|
11070
11100
|
variant = "compact",
|
|
@@ -11081,12 +11111,12 @@ function GitHubActivityCardSkeleton({
|
|
|
11081
11111
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-20 shrink-0 rounded" })
|
|
11082
11112
|
] });
|
|
11083
11113
|
}
|
|
11084
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${
|
|
11085
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className:
|
|
11086
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
11087
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11088
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11089
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11114
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
11115
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: _chunk7Z4EQOIXcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
11116
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
11117
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-2/3 rounded" }) }),
|
|
11118
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-1/2 rounded" }) }),
|
|
11119
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_SUMMARY, children: _chunk7Z4EQOIXcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
11090
11120
|
] }),
|
|
11091
11121
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3.5 rounded" }) })
|
|
11092
11122
|
] });
|
|
@@ -11096,31 +11126,31 @@ function GitHubActivityCardSkeleton({
|
|
|
11096
11126
|
|
|
11097
11127
|
|
|
11098
11128
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
11099
|
-
const goalsCount = _optionalChain([campaign, 'access',
|
|
11129
|
+
const goalsCount = _optionalChain([campaign, 'access', _246 => _246.goals, 'optionalAccess', _247 => _247.length]) || 0;
|
|
11100
11130
|
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
11101
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11102
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
11103
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11104
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11105
|
-
campaign.start_date ?
|
|
11131
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
|
|
11132
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
11133
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE, children: campaign.name }) }),
|
|
11134
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_SUBTITLE, children: [
|
|
11135
|
+
campaign.start_date ? _chunk7Z4EQOIXcjs.formatDateShort.call(void 0, campaign.start_date) : null,
|
|
11106
11136
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
11107
11137
|
"Marketing campaign"
|
|
11108
11138
|
].filter(Boolean).join(" \xB7 ") }) }),
|
|
11109
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11139
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_SUMMARY, children: campaign.description || _chunk7Z4EQOIXcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
11110
11140
|
] })
|
|
11111
11141
|
] });
|
|
11112
11142
|
if (anchorProps) {
|
|
11113
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: `${
|
|
11143
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: innerChildren });
|
|
11114
11144
|
}
|
|
11115
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${
|
|
11145
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: innerChildren });
|
|
11116
11146
|
}
|
|
11117
11147
|
function CampaignCardAdminSkeleton({ className }) {
|
|
11118
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${
|
|
11119
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className:
|
|
11120
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
11121
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11122
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11123
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
11148
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
11149
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: _chunk7Z4EQOIXcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
11150
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
11151
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3/5 rounded" }) }),
|
|
11152
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-1/2 rounded" }) }),
|
|
11153
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
11124
11154
|
] })
|
|
11125
11155
|
] });
|
|
11126
11156
|
}
|
|
@@ -11154,8 +11184,8 @@ function getVendorLogo(vendor) {
|
|
|
11154
11184
|
if (vendor.logo) {
|
|
11155
11185
|
return fixSupabaseStorageUrl(vendor.logo);
|
|
11156
11186
|
}
|
|
11157
|
-
const logoMedia = _optionalChain([vendor, 'access',
|
|
11158
|
-
if (_optionalChain([logoMedia, 'optionalAccess',
|
|
11187
|
+
const logoMedia = _optionalChain([vendor, 'access', _248 => _248.vendor_media, 'optionalAccess', _249 => _249.find, 'call', _250 => _250((m) => m.media_type === "logo")]);
|
|
11188
|
+
if (_optionalChain([logoMedia, 'optionalAccess', _251 => _251.media_url])) {
|
|
11159
11189
|
return fixSupabaseStorageUrl(logoMedia.media_url);
|
|
11160
11190
|
}
|
|
11161
11191
|
return null;
|
|
@@ -11211,7 +11241,7 @@ function VendorIcon({
|
|
|
11211
11241
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: containerClasses, children: logoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11212
11242
|
_chunkHOTM4UM6cjs.next_image_default,
|
|
11213
11243
|
{
|
|
11214
|
-
src:
|
|
11244
|
+
src: _chunk7Z4EQOIXcjs.getProxiedImageUrl2.call(void 0, logoUrl) || logoUrl,
|
|
11215
11245
|
alt: `${vendor.title} logo`,
|
|
11216
11246
|
width,
|
|
11217
11247
|
height,
|
|
@@ -11224,7 +11254,7 @@ function VendorIcon({
|
|
|
11224
11254
|
"flex items-center justify-center uppercase text-h6",
|
|
11225
11255
|
backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
|
|
11226
11256
|
),
|
|
11227
|
-
children: _optionalChain([vendor, 'access',
|
|
11257
|
+
children: _optionalChain([vendor, 'access', _252 => _252.title, 'optionalAccess', _253 => _253.substring, 'call', _254 => _254(0, 2)]) || "??"
|
|
11228
11258
|
}
|
|
11229
11259
|
) });
|
|
11230
11260
|
}
|
|
@@ -11241,8 +11271,8 @@ function useChatCardItem(type, id) {
|
|
|
11241
11271
|
const res = await _chunkDGFDBPO7cjs.embedAuthedFetch.call(void 0, url);
|
|
11242
11272
|
if (!res.ok) throw new Error(`chat card fetch failed: ${res.status}`);
|
|
11243
11273
|
const data = await res.json();
|
|
11244
|
-
const items =
|
|
11245
|
-
const match = items.find((it) =>
|
|
11274
|
+
const items = _chunk7Z4EQOIXcjs.extractCardItems.call(void 0, type, data);
|
|
11275
|
+
const match = items.find((it) => _chunk7Z4EQOIXcjs.extractItemId.call(void 0, type, it) === id);
|
|
11246
11276
|
return _nullishCoalesce(match, () => ( null));
|
|
11247
11277
|
},
|
|
11248
11278
|
enabled: !!url && id.length > 0,
|
|
@@ -11428,7 +11458,7 @@ function pickFetchedCardHref({
|
|
|
11428
11458
|
itemHref,
|
|
11429
11459
|
allowComposed
|
|
11430
11460
|
}) {
|
|
11431
|
-
if (_optionalChain([composed, 'optionalAccess',
|
|
11461
|
+
if (_optionalChain([composed, 'optionalAccess', _255 => _255.hostOverride])) {
|
|
11432
11462
|
return { source: "hostOverride", href: composed.href, targetPlatform: composed.targetPlatform };
|
|
11433
11463
|
}
|
|
11434
11464
|
if (itemHref) return { source: "item", href: itemHref };
|
|
@@ -11444,7 +11474,7 @@ function resolveFetchedCardHref({
|
|
|
11444
11474
|
composeContentUrl
|
|
11445
11475
|
}) {
|
|
11446
11476
|
if (!composeContentUrl || !contentRefType || !id) return null;
|
|
11447
|
-
const canonicalType =
|
|
11477
|
+
const canonicalType = _chunk7Z4EQOIXcjs.canonicalContentRefType.call(void 0, contentRefType);
|
|
11448
11478
|
return composeContentUrl({
|
|
11449
11479
|
// The card registry keys some entries by the legacy rail vocabulary
|
|
11450
11480
|
// (`blog_post_existing`) because that is what `buildListUrl` expects.
|
|
@@ -11490,20 +11520,20 @@ function resolveSourceRowCTA(row, ctx = {}) {
|
|
|
11490
11520
|
if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
|
|
11491
11521
|
const safePath = sanitizePath(row.path);
|
|
11492
11522
|
if (safePath) {
|
|
11493
|
-
const docTarget = row.documentType ? _optionalChain([ctx, 'access',
|
|
11523
|
+
const docTarget = row.documentType ? _optionalChain([ctx, 'access', _256 => _256.docPlatformTargets, 'optionalAccess', _257 => _257[row.documentType]]) : void 0;
|
|
11494
11524
|
if (docTarget) {
|
|
11495
11525
|
const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
|
|
11496
11526
|
const base = `${getPlatformUrl(docTarget.platform)}${seg ? `/${seg}` : ""}/`;
|
|
11497
|
-
href = _nullishCoalesce(
|
|
11527
|
+
href = _nullishCoalesce(_chunk7Z4EQOIXcjs.safeHref.call(void 0, new URL(safePath, base).toString()), () => ( null));
|
|
11498
11528
|
targetPlatform = docTarget.platform;
|
|
11499
11529
|
} else if (ctx.chipBasePlatform) {
|
|
11500
11530
|
const base = `${getPlatformUrl(ctx.chipBasePlatform)}/knowledge-base/`;
|
|
11501
|
-
href = _nullishCoalesce(
|
|
11531
|
+
href = _nullishCoalesce(_chunk7Z4EQOIXcjs.safeHref.call(void 0, new URL(safePath, base).toString()), () => ( null));
|
|
11502
11532
|
targetPlatform = ctx.chipBasePlatform;
|
|
11503
11533
|
} else if (ctx.baseRoute) {
|
|
11504
11534
|
const synthetic = `https://_internal_.local${ctx.baseRoute.startsWith("/") ? ctx.baseRoute : "/" + ctx.baseRoute}/`;
|
|
11505
11535
|
const absolute = new URL(safePath, synthetic).toString();
|
|
11506
|
-
href = _nullishCoalesce(
|
|
11536
|
+
href = _nullishCoalesce(_chunk7Z4EQOIXcjs.safeHref.call(void 0, absolute.replace("https://_internal_.local", "")), () => ( null));
|
|
11507
11537
|
targetPlatform = _nullishCoalesce(ctx.currentPlatform, () => ( null));
|
|
11508
11538
|
}
|
|
11509
11539
|
}
|
|
@@ -11512,15 +11542,15 @@ function resolveSourceRowCTA(row, ctx = {}) {
|
|
|
11512
11542
|
// Canonical vocabulary only — a rail-vocab alias would miss the host's
|
|
11513
11543
|
// `hostedTypes` / `overrides` and fall through to the seam's default
|
|
11514
11544
|
// `<origin>/<type>/<id>` branch. Same canonicalizer `buildListUrl` uses.
|
|
11515
|
-
type:
|
|
11545
|
+
type: _chunk7Z4EQOIXcjs.canonicalContentRefType.call(void 0, row.documentType),
|
|
11516
11546
|
identifier: idValue,
|
|
11517
11547
|
externalUrl: row.externalUrl,
|
|
11518
11548
|
targetPlatform: _nullishCoalesce(row.targetPlatform, () => ( null))
|
|
11519
11549
|
});
|
|
11520
|
-
href = composed.href ? _nullishCoalesce(
|
|
11550
|
+
href = composed.href ? _nullishCoalesce(_chunk7Z4EQOIXcjs.safeHref.call(void 0, composed.href), () => ( null)) : null;
|
|
11521
11551
|
targetPlatform = composed.targetPlatform;
|
|
11522
11552
|
} else if (row.externalUrl) {
|
|
11523
|
-
href = _nullishCoalesce(
|
|
11553
|
+
href = _nullishCoalesce(_chunk7Z4EQOIXcjs.safeHref.call(void 0, row.externalUrl), () => ( null));
|
|
11524
11554
|
targetPlatform = _nullishCoalesce(row.targetPlatform, () => ( null));
|
|
11525
11555
|
}
|
|
11526
11556
|
const documentType = row.documentType;
|
|
@@ -11559,7 +11589,7 @@ function resolveCardDestination({
|
|
|
11559
11589
|
composeContentUrl,
|
|
11560
11590
|
resolveHref = (href) => href
|
|
11561
11591
|
}) {
|
|
11562
|
-
const refPath = typeof _optionalChain([chatRef, 'access',
|
|
11592
|
+
const refPath = typeof _optionalChain([chatRef, 'access', _258 => _258.metadata, 'optionalAccess', _259 => _259.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
|
|
11563
11593
|
const path = _nullishCoalesce(refPath, () => ( (item ? readFetchedCardPath(item) : null)));
|
|
11564
11594
|
const cta = resolveSourceRowCTA(
|
|
11565
11595
|
{
|
|
@@ -11576,7 +11606,7 @@ function resolveCardDestination({
|
|
|
11576
11606
|
const rowUrl = cta.href ? resolveHref(cta.href) : _nullishCoalesce(chatRef.url, () => ( null));
|
|
11577
11607
|
const rowPlatform = _nullishCoalesce(_nullishCoalesce(cta.targetPlatform, () => ( chatRef.targetPlatform)), () => ( null));
|
|
11578
11608
|
if (rowUrl) return { url: rowUrl, targetPlatform: rowPlatform, path, source: "row" };
|
|
11579
|
-
if (_optionalChain([entry, 'optionalAccess',
|
|
11609
|
+
if (_optionalChain([entry, 'optionalAccess', _260 => _260.contentRefType]) && item) {
|
|
11580
11610
|
const choice = pickFetchedCardHref({
|
|
11581
11611
|
composed: resolveFetchedCardHref({
|
|
11582
11612
|
contentRefType: entry.contentRefType,
|
|
@@ -11584,10 +11614,10 @@ function resolveCardDestination({
|
|
|
11584
11614
|
item,
|
|
11585
11615
|
composeContentUrl
|
|
11586
11616
|
}),
|
|
11587
|
-
itemHref: _nullishCoalesce(_optionalChain([entry, 'access',
|
|
11617
|
+
itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _261 => _261.fallbackHref, 'optionalCall', _262 => _262(item)]), () => ( null)),
|
|
11588
11618
|
allowComposed: !entry.noComposedHref
|
|
11589
11619
|
});
|
|
11590
|
-
const url = choice ? _nullishCoalesce(
|
|
11620
|
+
const url = choice ? _nullishCoalesce(_chunk7Z4EQOIXcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
|
|
11591
11621
|
if (choice && url) {
|
|
11592
11622
|
return { url, targetPlatform: _nullishCoalesce(choice.targetPlatform, () => ( rowPlatform)), path, source: choice.source };
|
|
11593
11623
|
}
|
|
@@ -11600,11 +11630,11 @@ function resolveCardDestination({
|
|
|
11600
11630
|
|
|
11601
11631
|
function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
|
|
11602
11632
|
const label = entityLabel || "Item";
|
|
11603
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `${
|
|
11604
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
11605
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
11606
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
11607
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
11633
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_OUTER_STATIC} opacity-70 ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
11634
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-secondary" }) }),
|
|
11635
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
11636
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_TITLE} text-ods-text-secondary line-through`, children: title || `Deleted ${label.toLowerCase()}` }) }),
|
|
11637
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7Z4EQOIXcjs.COMPACT_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
11608
11638
|
label,
|
|
11609
11639
|
" deleted",
|
|
11610
11640
|
recoveryNote ? ` \xB7 ${recoveryNote}` : ""
|
|
@@ -11659,7 +11689,7 @@ function GitHubChatCard({
|
|
|
11659
11689
|
description,
|
|
11660
11690
|
icon: githubKindIcon(kind),
|
|
11661
11691
|
status,
|
|
11662
|
-
anchorProps:
|
|
11692
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11663
11693
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
11664
11694
|
menuAriaLabel: "Activity actions"
|
|
11665
11695
|
}
|
|
@@ -11678,8 +11708,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
|
|
|
11678
11708
|
if (href) {
|
|
11679
11709
|
items.push({
|
|
11680
11710
|
id: "open-details",
|
|
11681
|
-
label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess',
|
|
11682
|
-
icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess',
|
|
11711
|
+
label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _263 => _263.label]), () => ( "Open Details")),
|
|
11712
|
+
icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _264 => _264.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMMLT7ASAcjs.EyeIcon, { size: 20 }))),
|
|
11683
11713
|
// Main row → open the entity (same tab, soft Link nav).
|
|
11684
11714
|
href,
|
|
11685
11715
|
// Trailing 40px ↗ side-button → open in a new tab.
|
|
@@ -11739,18 +11769,18 @@ function itemVideoMetadata(item) {
|
|
|
11739
11769
|
for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
|
|
11740
11770
|
return void 0;
|
|
11741
11771
|
};
|
|
11742
|
-
const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
11772
|
+
const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _265 => _265.metadata]), () => ( {}));
|
|
11743
11773
|
const out = {};
|
|
11744
|
-
const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess',
|
|
11745
|
-
const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess',
|
|
11746
|
-
const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess',
|
|
11774
|
+
const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess', _266 => _266.custom_video_url]), _optionalChain([item, 'optionalAccess', _267 => _267.main_video_url]));
|
|
11775
|
+
const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _268 => _268.youtube_url]), _optionalChain([item, 'optionalAccess', _269 => _269.testimonial_video_url]));
|
|
11776
|
+
const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _270 => _270.highlight_video_url]));
|
|
11747
11777
|
const videoPoster = pick(
|
|
11748
11778
|
m.videoPoster,
|
|
11749
|
-
_optionalChain([item, 'optionalAccess',
|
|
11750
|
-
_optionalChain([item, 'optionalAccess',
|
|
11751
|
-
_optionalChain([item, 'optionalAccess',
|
|
11779
|
+
_optionalChain([item, 'optionalAccess', _271 => _271.main_video_thumbnail]),
|
|
11780
|
+
_optionalChain([item, 'optionalAccess', _272 => _272.highlight_video_thumbnail]),
|
|
11781
|
+
_optionalChain([item, 'optionalAccess', _273 => _273.featured_image])
|
|
11752
11782
|
);
|
|
11753
|
-
const highlightVideoPoster = pick(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess',
|
|
11783
|
+
const highlightVideoPoster = pick(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _274 => _274.highlight_video_thumbnail]));
|
|
11754
11784
|
if (videoUrl) out.videoUrl = videoUrl;
|
|
11755
11785
|
if (youtubeUrl) out.youtubeUrl = youtubeUrl;
|
|
11756
11786
|
if (highlightVideoUrl) out.highlightVideoUrl = highlightVideoUrl;
|
|
@@ -11780,15 +11810,15 @@ function fetchedItemDisplayRef(item, chatRef) {
|
|
|
11780
11810
|
}
|
|
11781
11811
|
function fetchedFaqDisplayRef(item, chatRef) {
|
|
11782
11812
|
const it = item;
|
|
11783
|
-
const answer = typeof _optionalChain([it, 'optionalAccess',
|
|
11813
|
+
const answer = typeof _optionalChain([it, 'optionalAccess', _275 => _275.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
|
|
11784
11814
|
return {
|
|
11785
11815
|
type: "faq",
|
|
11786
11816
|
id: chatRef.id,
|
|
11787
11817
|
sourceRepo: chatRef.sourceRepo,
|
|
11788
|
-
title: typeof _optionalChain([it, 'optionalAccess',
|
|
11818
|
+
title: typeof _optionalChain([it, 'optionalAccess', _276 => _276.question]) === "string" && it.question ? it.question : chatRef.id,
|
|
11789
11819
|
url: _nullishCoalesce(chatRef.url, () => ( null)),
|
|
11790
11820
|
...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
|
|
11791
|
-
metadata: typeof _optionalChain([it, 'optionalAccess',
|
|
11821
|
+
metadata: typeof _optionalChain([it, 'optionalAccess', _277 => _277.section]) === "string" && it.section ? { section: it.section } : {}
|
|
11792
11822
|
};
|
|
11793
11823
|
}
|
|
11794
11824
|
function HubspotTicketChatCard({
|
|
@@ -11796,8 +11826,8 @@ function HubspotTicketChatCard({
|
|
|
11796
11826
|
isNewTab,
|
|
11797
11827
|
discuss
|
|
11798
11828
|
}) {
|
|
11799
|
-
const status = typeof _optionalChain([chatRef, 'access',
|
|
11800
|
-
const statusLabel = typeof _optionalChain([chatRef, 'access',
|
|
11829
|
+
const status = typeof _optionalChain([chatRef, 'access', _278 => _278.metadata, 'optionalAccess', _279 => _279.status]) === "string" ? chatRef.metadata.status : void 0;
|
|
11830
|
+
const statusLabel = typeof _optionalChain([chatRef, 'access', _280 => _280.metadata, 'optionalAccess', _281 => _281.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
11801
11831
|
const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
|
|
11802
11832
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11803
11833
|
MingoInfoCard,
|
|
@@ -11806,7 +11836,7 @@ function HubspotTicketChatCard({
|
|
|
11806
11836
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
11807
11837
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOSS23NHHcjs.TagIcon, { size: 24 }),
|
|
11808
11838
|
status: statusText ? { label: statusText, variant: hubspotStatusToVariant(status) } : void 0,
|
|
11809
|
-
anchorProps:
|
|
11839
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11810
11840
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
11811
11841
|
label: "Open Ticket Details",
|
|
11812
11842
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOSS23NHHcjs.TagIcon, { size: 20 })
|
|
@@ -11820,7 +11850,7 @@ function FaqChatCard({
|
|
|
11820
11850
|
isNewTab,
|
|
11821
11851
|
discuss
|
|
11822
11852
|
}) {
|
|
11823
|
-
const section = typeof _optionalChain([chatRef, 'access',
|
|
11853
|
+
const section = typeof _optionalChain([chatRef, 'access', _282 => _282.metadata, 'optionalAccess', _283 => _283.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
|
|
11824
11854
|
const statusLabel = section && section.length > 0 ? section : "FAQ";
|
|
11825
11855
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11826
11856
|
MingoInfoCard,
|
|
@@ -11829,7 +11859,7 @@ function FaqChatCard({
|
|
|
11829
11859
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
11830
11860
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFO6DOP6Mcjs.QuestionCircleIcon, { size: 24 }),
|
|
11831
11861
|
status: { label: statusLabel, variant: "grey" },
|
|
11832
|
-
anchorProps:
|
|
11862
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11833
11863
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
11834
11864
|
menuAriaLabel: "FAQ actions"
|
|
11835
11865
|
}
|
|
@@ -11840,7 +11870,7 @@ function SlackChatCard({
|
|
|
11840
11870
|
isNewTab,
|
|
11841
11871
|
discuss
|
|
11842
11872
|
}) {
|
|
11843
|
-
const channelName = typeof _optionalChain([chatRef, 'access',
|
|
11873
|
+
const channelName = typeof _optionalChain([chatRef, 'access', _284 => _284.metadata, 'optionalAccess', _285 => _285.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
|
|
11844
11874
|
const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
|
|
11845
11875
|
const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
|
|
11846
11876
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -11849,7 +11879,7 @@ function SlackChatCard({
|
|
|
11849
11879
|
title,
|
|
11850
11880
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
11851
11881
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZUHFVG4Fcjs.SlackLogoGreyIcon, { size: 24 }),
|
|
11852
|
-
anchorProps:
|
|
11882
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11853
11883
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
11854
11884
|
menuAriaLabel: "Message actions"
|
|
11855
11885
|
}
|
|
@@ -11867,7 +11897,7 @@ function GlyphChatCard({
|
|
|
11867
11897
|
title: chatRef.title,
|
|
11868
11898
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
11869
11899
|
icon,
|
|
11870
|
-
anchorProps:
|
|
11900
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11871
11901
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
11872
11902
|
menuAriaLabel: "Card actions"
|
|
11873
11903
|
}
|
|
@@ -11883,22 +11913,22 @@ function TrustCenterChatCard({
|
|
|
11883
11913
|
isNewTab,
|
|
11884
11914
|
discuss
|
|
11885
11915
|
}) {
|
|
11886
|
-
const raw2 = _optionalChain([item, 'optionalAccess',
|
|
11916
|
+
const raw2 = _optionalChain([item, 'optionalAccess', _286 => _286.frameworks]);
|
|
11887
11917
|
const frameworks = Array.isArray(raw2) ? raw2 : [];
|
|
11888
|
-
const summary =
|
|
11918
|
+
const summary = _chunk7Z4EQOIXcjs.trustFrameworksSummary.call(void 0, frameworks);
|
|
11889
11919
|
const leadFramework = frameworks[0];
|
|
11890
11920
|
const lead = leadFramework ? {
|
|
11891
|
-
label:
|
|
11892
|
-
color:
|
|
11921
|
+
label: _chunk7Z4EQOIXcjs.trustFrameworkBadge.call(void 0, leadFramework),
|
|
11922
|
+
color: _chunk7Z4EQOIXcjs.trustFrameworkMonitoringEntry.call(void 0, leadFramework.monitoring).color
|
|
11893
11923
|
} : void 0;
|
|
11894
11924
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11895
11925
|
MingoInfoCard,
|
|
11896
11926
|
{
|
|
11897
|
-
title:
|
|
11898
|
-
description: summary ||
|
|
11927
|
+
title: _chunk7Z4EQOIXcjs.TRUST_CENTER_TITLE,
|
|
11928
|
+
description: summary || _chunk7Z4EQOIXcjs.TRUST_CENTER_TAGLINE,
|
|
11899
11929
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOBGYDNT6cjs.ShieldCheckIcon, { size: 24 }),
|
|
11900
11930
|
status: lead ? { label: lead.label, variant: TRUST_STATUS_TAG_VARIANT[lead.color] } : void 0,
|
|
11901
|
-
anchorProps:
|
|
11931
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11902
11932
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
11903
11933
|
label: "View trust center",
|
|
11904
11934
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOBGYDNT6cjs.ShieldCheckIcon, { size: 20 })
|
|
@@ -11920,7 +11950,7 @@ function DataRoomDocChatCard({
|
|
|
11920
11950
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
11921
11951
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU4USZF42cjs.FileContentIcon, { size: 24 }),
|
|
11922
11952
|
status: { label: badgeText, variant: "grey" },
|
|
11923
|
-
anchorProps:
|
|
11953
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11924
11954
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
11925
11955
|
menuAriaLabel: "Document actions"
|
|
11926
11956
|
}
|
|
@@ -11932,14 +11962,14 @@ function GenericFinancialChatCard({
|
|
|
11932
11962
|
isNewTab,
|
|
11933
11963
|
discuss
|
|
11934
11964
|
}) {
|
|
11935
|
-
const subtitle = typeof _optionalChain([chatRef, 'access',
|
|
11965
|
+
const subtitle = typeof _optionalChain([chatRef, 'access', _287 => _287.metadata, 'optionalAccess', _288 => _288.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
|
|
11936
11966
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11937
11967
|
MingoInfoCard,
|
|
11938
11968
|
{
|
|
11939
11969
|
title: chatRef.title,
|
|
11940
11970
|
description: subtitle,
|
|
11941
11971
|
icon,
|
|
11942
|
-
anchorProps:
|
|
11972
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
11943
11973
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
11944
11974
|
menuAriaLabel: "Document actions"
|
|
11945
11975
|
}
|
|
@@ -12001,12 +12031,12 @@ function ProductReleaseChatCard({
|
|
|
12001
12031
|
discuss
|
|
12002
12032
|
}) {
|
|
12003
12033
|
const releaseProps = buildProps(item);
|
|
12004
|
-
const status = _optionalChain([item, 'optionalAccess',
|
|
12034
|
+
const status = _optionalChain([item, 'optionalAccess', _289 => _289.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
|
|
12005
12035
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12006
12036
|
EntityMingoCard,
|
|
12007
12037
|
{
|
|
12008
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12009
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
12038
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _290 => _290.title]), () => ( "")),
|
|
12039
|
+
description: _optionalChain([item, 'optionalAccess', _291 => _291.summary]) || releaseProps.formattedDate || void 0,
|
|
12010
12040
|
cover: releaseProps.coverImage || void 0,
|
|
12011
12041
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX5LU4XQNcjs.Rocket02Icon, { size: 24 }),
|
|
12012
12042
|
status,
|
|
@@ -12023,17 +12053,17 @@ function CampaignChatCard({
|
|
|
12023
12053
|
isNewTab,
|
|
12024
12054
|
discuss
|
|
12025
12055
|
}) {
|
|
12026
|
-
const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess',
|
|
12056
|
+
const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _292 => _292.goals])) ? item.goals.length : 0;
|
|
12027
12057
|
const meta = [
|
|
12028
|
-
_optionalChain([item, 'optionalAccess',
|
|
12058
|
+
_optionalChain([item, 'optionalAccess', _293 => _293.start_date]) ? _chunk7Z4EQOIXcjs.formatDateShort.call(void 0, item.start_date) : null,
|
|
12029
12059
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
12030
12060
|
"Marketing campaign"
|
|
12031
12061
|
].filter(Boolean).join(" \xB7 ");
|
|
12032
12062
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12033
12063
|
EntityMingoCard,
|
|
12034
12064
|
{
|
|
12035
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12036
|
-
description: meta || _optionalChain([item, 'optionalAccess',
|
|
12065
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _294 => _294.name]), () => ( "")),
|
|
12066
|
+
description: meta || _optionalChain([item, 'optionalAccess', _295 => _295.description]) || void 0,
|
|
12037
12067
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6OCFDC2Qcjs.Megaphone01Icon, { size: 24 }),
|
|
12038
12068
|
chatRef,
|
|
12039
12069
|
isNewTab,
|
|
@@ -12064,7 +12094,7 @@ function EntityMingoCard({
|
|
|
12064
12094
|
imageAlt: typeof title === "string" ? title : void 0,
|
|
12065
12095
|
icon: fallbackIcon,
|
|
12066
12096
|
status,
|
|
12067
|
-
anchorProps:
|
|
12097
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
|
|
12068
12098
|
menuGroups: cardMenuGroups(chatRef.url, discuss, openDetails, externalLink),
|
|
12069
12099
|
menuAriaLabel
|
|
12070
12100
|
}
|
|
@@ -12076,7 +12106,7 @@ function entityCover(image, ogPlaceholder) {
|
|
|
12076
12106
|
function statusPill(status) {
|
|
12077
12107
|
const s = typeof status === "string" ? status.trim() : "";
|
|
12078
12108
|
if (!s) return void 0;
|
|
12079
|
-
const scheme =
|
|
12109
|
+
const scheme = _chunk7Z4EQOIXcjs.getStatusColorScheme.call(void 0, s);
|
|
12080
12110
|
const variant = scheme === "success" || scheme === "error" || scheme === "warning" ? scheme : "grey";
|
|
12081
12111
|
return { label: s, variant };
|
|
12082
12112
|
}
|
|
@@ -12088,14 +12118,14 @@ function BlogChatCard({
|
|
|
12088
12118
|
hasEmbeddedVideo,
|
|
12089
12119
|
discuss
|
|
12090
12120
|
}) {
|
|
12091
|
-
const category = Array.isArray(_optionalChain([item, 'optionalAccess',
|
|
12121
|
+
const category = Array.isArray(_optionalChain([item, 'optionalAccess', _296 => _296.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _297 => _297.categories, 'access', _298 => _298.find, 'call', _299 => _299((c) => _optionalChain([c, 'optionalAccess', _300 => _300.name])), 'optionalAccess', _301 => _301.name]), () => ( void 0)) : void 0;
|
|
12092
12122
|
const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
|
|
12093
12123
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12094
12124
|
EntityMingoCard,
|
|
12095
12125
|
{
|
|
12096
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12097
|
-
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12098
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
12126
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _302 => _302.title]), () => ( "")),
|
|
12127
|
+
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _303 => _303.summary]), () => ( void 0)),
|
|
12128
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _304 => _304.featured_image]), ogPlaceholder),
|
|
12099
12129
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEAPORE6cjs.NewspaperIcon, { size: 24 }),
|
|
12100
12130
|
status,
|
|
12101
12131
|
chatRef,
|
|
@@ -12112,13 +12142,13 @@ function CaseStudyChatCard({
|
|
|
12112
12142
|
ogPlaceholder,
|
|
12113
12143
|
discuss
|
|
12114
12144
|
}) {
|
|
12115
|
-
const meta = [_optionalChain([item, 'optionalAccess',
|
|
12145
|
+
const meta = [_optionalChain([item, 'optionalAccess', _305 => _305.msp, 'optionalAccess', _306 => _306.name]), _optionalChain([item, 'optionalAccess', _307 => _307.user, 'optionalAccess', _308 => _308.full_name])].filter(Boolean).join(" \xB7 ");
|
|
12116
12146
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12117
12147
|
EntityMingoCard,
|
|
12118
12148
|
{
|
|
12119
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12120
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
12121
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
12149
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _309 => _309.title]), () => ( "")),
|
|
12150
|
+
description: _optionalChain([item, 'optionalAccess', _310 => _310.summary]) || meta || void 0,
|
|
12151
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _311 => _311.featured_image]), ogPlaceholder),
|
|
12122
12152
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk44URXY24cjs.TrophyIcon, { size: 24 }),
|
|
12123
12153
|
status: { label: "Case study", variant: "grey" },
|
|
12124
12154
|
chatRef,
|
|
@@ -12135,13 +12165,13 @@ function CustomerInterviewChatCard({
|
|
|
12135
12165
|
ogPlaceholder,
|
|
12136
12166
|
discuss
|
|
12137
12167
|
}) {
|
|
12138
|
-
const meta = [_optionalChain([item, 'optionalAccess',
|
|
12168
|
+
const meta = [_optionalChain([item, 'optionalAccess', _312 => _312.user, 'optionalAccess', _313 => _313.full_name]), _optionalChain([item, 'optionalAccess', _314 => _314.msp, 'optionalAccess', _315 => _315.name])].filter(Boolean).join(" \xB7 ");
|
|
12139
12169
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12140
12170
|
EntityMingoCard,
|
|
12141
12171
|
{
|
|
12142
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12143
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
12144
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
12172
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _316 => _316.title]), () => ( "")),
|
|
12173
|
+
description: _optionalChain([item, 'optionalAccess', _317 => _317.video_summary]) || meta || void 0,
|
|
12174
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _318 => _318.featured_image]), ogPlaceholder),
|
|
12145
12175
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZL4LQNYXcjs.MicrophoneIcon, { size: 24 }),
|
|
12146
12176
|
status: { label: "Interview", variant: "grey" },
|
|
12147
12177
|
chatRef,
|
|
@@ -12158,16 +12188,16 @@ function DesignDocChatCard({
|
|
|
12158
12188
|
discuss
|
|
12159
12189
|
}) {
|
|
12160
12190
|
const displayRef = fetchedItemDisplayRef(item, chatRef);
|
|
12161
|
-
const doc = _optionalChain([item, 'optionalAccess',
|
|
12191
|
+
const doc = _optionalChain([item, 'optionalAccess', _319 => _319.doc]);
|
|
12162
12192
|
const readiness = doc ? DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)] : null;
|
|
12163
12193
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12164
12194
|
MingoInfoCard,
|
|
12165
12195
|
{
|
|
12166
|
-
title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess',
|
|
12196
|
+
title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _320 => _320.title]), () => ( displayRef.title)),
|
|
12167
12197
|
description: doc ? [designDocMetaLine(doc), formatCompletionLabel(doc.completion)].join(" \xB7 ") : _nullishCoalesce(displayRef.preview, () => ( void 0)),
|
|
12168
12198
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU4USZF42cjs.FileContentIcon, { size: 24 }),
|
|
12169
12199
|
status: readiness ? { label: readiness.label, variant: readiness.scheme === "success" ? "success" : "grey" } : { label: "Design doc", variant: "grey" },
|
|
12170
|
-
anchorProps:
|
|
12200
|
+
anchorProps: _chunk7Z4EQOIXcjs.buildAnchorProps.call(void 0, displayRef.url, isNewTab),
|
|
12171
12201
|
menuGroups: cardMenuGroups(displayRef.url, discuss),
|
|
12172
12202
|
menuAriaLabel: "Design doc actions"
|
|
12173
12203
|
}
|
|
@@ -12180,13 +12210,13 @@ function InvestorUpdateChatCard({
|
|
|
12180
12210
|
ogPlaceholder,
|
|
12181
12211
|
discuss
|
|
12182
12212
|
}) {
|
|
12183
|
-
const title = _optionalChain([item, 'optionalAccess',
|
|
12213
|
+
const title = _optionalChain([item, 'optionalAccess', _321 => _321.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _322 => _322.update_number]), () => ( "?"))}`;
|
|
12184
12214
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12185
12215
|
EntityMingoCard,
|
|
12186
12216
|
{
|
|
12187
12217
|
title,
|
|
12188
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
12189
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
12218
|
+
description: _optionalChain([item, 'optionalAccess', _323 => _323.strategic_update]) || _optionalChain([item, 'optionalAccess', _324 => _324.content]) || _chunk7Z4EQOIXcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _325 => _325.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _326 => _326.period_end]), () => ( null))) || void 0,
|
|
12219
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _327 => _327.featured_image]), ogPlaceholder),
|
|
12190
12220
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk37SGOMF5cjs.PresentationLineIcon, { size: 24 }),
|
|
12191
12221
|
status: { label: "Investor update", variant: "grey" },
|
|
12192
12222
|
chatRef,
|
|
@@ -12203,12 +12233,12 @@ function OnboardingGuideChatCard({
|
|
|
12203
12233
|
ogPlaceholder,
|
|
12204
12234
|
discuss
|
|
12205
12235
|
}) {
|
|
12206
|
-
const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess',
|
|
12236
|
+
const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _328 => _328.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _329 => _329.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _330 => _330.og_image_url]), ogPlaceholder)));
|
|
12207
12237
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12208
12238
|
EntityMingoCard,
|
|
12209
12239
|
{
|
|
12210
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12211
|
-
description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12240
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _331 => _331.title]), () => ( "")),
|
|
12241
|
+
description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _332 => _332.summary]), () => ( _optionalChain([item, 'optionalAccess', _333 => _333.description]))), () => ( void 0)),
|
|
12212
12242
|
cover,
|
|
12213
12243
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZFJDLJSIcjs.CompassIcon, { size: 24 }),
|
|
12214
12244
|
status: { label: "Guide", variant: "grey" },
|
|
@@ -12229,13 +12259,13 @@ function ProgramChatCard({
|
|
|
12229
12259
|
discuss
|
|
12230
12260
|
}) {
|
|
12231
12261
|
const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGZ6NU2C2cjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM4KPLFFAcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZL4LQNYXcjs.MicrophoneIcon, { size: 24 });
|
|
12232
|
-
const { line: meta } =
|
|
12262
|
+
const { line: meta } = _chunk7Z4EQOIXcjs.programMetaLine.call(void 0, _nullishCoalesce(item, () => ( {})), configKey, _chunk7Z4EQOIXcjs.programMetaFormatters.call(void 0, _chunk7Z4EQOIXcjs.PROGRAM_META_RENDERERS));
|
|
12233
12263
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12234
12264
|
EntityMingoCard,
|
|
12235
12265
|
{
|
|
12236
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12237
|
-
description: meta || _optionalChain([item, 'optionalAccess',
|
|
12238
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
12266
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _334 => _334.title]), () => ( "")),
|
|
12267
|
+
description: meta || _optionalChain([item, 'optionalAccess', _335 => _335.description]) || void 0,
|
|
12268
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _336 => _336.cover_url]), ogPlaceholder),
|
|
12239
12269
|
fallbackIcon: icon,
|
|
12240
12270
|
status: { label, variant: "grey" },
|
|
12241
12271
|
chatRef,
|
|
@@ -12252,10 +12282,10 @@ function RoadmapChatCard({
|
|
|
12252
12282
|
cardType,
|
|
12253
12283
|
discuss
|
|
12254
12284
|
}) {
|
|
12255
|
-
const logoUrl = typeof _optionalChain([item, 'optionalAccess',
|
|
12256
|
-
const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess',
|
|
12285
|
+
const logoUrl = typeof _optionalChain([item, 'optionalAccess', _337 => _337.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
|
|
12286
|
+
const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _338 => _338.customItemId]) != null;
|
|
12257
12287
|
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3UIJR4PYcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6DN5HKRWcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQDSQKK2cjs.MapIcon, { size: 24 });
|
|
12258
|
-
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12288
|
+
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _339 => _339.customItemId]), className: "size-6" }) : logoUrl ? (
|
|
12259
12289
|
// Contained (not full-bleed) so the integration logo keeps its aspect
|
|
12260
12290
|
// ratio inside the bordered icon box — matches RoadmapCard.
|
|
12261
12291
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHOTM4UM6cjs.next_image_default, { src: logoUrl, alt: "", className: "size-6 object-contain", width: 24, height: 24, unoptimized: true })
|
|
@@ -12266,10 +12296,10 @@ function RoadmapChatCard({
|
|
|
12266
12296
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12267
12297
|
EntityMingoCard,
|
|
12268
12298
|
{
|
|
12269
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12270
|
-
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12299
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _340 => _340.title]), () => ( "")),
|
|
12300
|
+
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _341 => _341.description]), () => ( void 0)),
|
|
12271
12301
|
fallbackIcon: icon,
|
|
12272
|
-
status: statusPill(_optionalChain([item, 'optionalAccess',
|
|
12302
|
+
status: statusPill(_optionalChain([item, 'optionalAccess', _342 => _342.status])),
|
|
12273
12303
|
chatRef,
|
|
12274
12304
|
isNewTab,
|
|
12275
12305
|
discuss,
|
|
@@ -12285,7 +12315,7 @@ function refHydratedEntry(docType, label, renderRef) {
|
|
|
12285
12315
|
bareInline: true,
|
|
12286
12316
|
contentRefType: docType,
|
|
12287
12317
|
noComposedHref: true,
|
|
12288
|
-
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12318
|
+
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _343 => _343.url]), () => ( null)),
|
|
12289
12319
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
12290
12320
|
render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
|
|
12291
12321
|
};
|
|
@@ -12317,15 +12347,15 @@ function financialRegistryEntries() {
|
|
|
12317
12347
|
);
|
|
12318
12348
|
}
|
|
12319
12349
|
function refText(ref, key) {
|
|
12320
|
-
const value = _optionalChain([ref, 'optionalAccess',
|
|
12350
|
+
const value = _optionalChain([ref, 'optionalAccess', _344 => _344[key]]);
|
|
12321
12351
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
12322
12352
|
}
|
|
12323
12353
|
function VendorGlyph({ title, logoUrl }) {
|
|
12324
|
-
if (!logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12354
|
+
if (!logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.EntityIcon, { icon: { name: SOURCE_ICON_NAMES.vendors }, size: 24 });
|
|
12325
12355
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorIcon, { vendor: { title, logo_url: logoUrl }, size: "xs", showBackground: false });
|
|
12326
12356
|
}
|
|
12327
12357
|
function SitePageGlyph({ iconName }) {
|
|
12328
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12358
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.EntityIcon, { icon: { name: _nullishCoalesce(iconName, () => ( SOURCE_ICON_NAMES["website-pages"])) }, size: 24 });
|
|
12329
12359
|
}
|
|
12330
12360
|
var GITHUB_CARD_CONFIGS = {
|
|
12331
12361
|
github_commit: { label: "GitHub commit", kind: "commit" },
|
|
@@ -12363,7 +12393,7 @@ var REF_GLYPH_CARD_CONFIGS = {
|
|
|
12363
12393
|
// rate. A glyph card; it opens the pricing page.
|
|
12364
12394
|
openframe_price: { label: "OpenFrame price" },
|
|
12365
12395
|
// A vendor (product) of the OpenMSP directory. A glyph card; it opens the vendor's page there.
|
|
12366
|
-
vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess',
|
|
12396
|
+
vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _345 => _345.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
|
|
12367
12397
|
};
|
|
12368
12398
|
function sourceGlyph(docType) {
|
|
12369
12399
|
const { Icon } = resolveSourceIcon({ sourceRepo: defaultTableIdForDocumentType(docType), documentType: docType });
|
|
@@ -12382,8 +12412,8 @@ function refGlyphRegistryEntries() {
|
|
|
12382
12412
|
title: displayRef.title,
|
|
12383
12413
|
description: _nullishCoalesce(displayRef.preview, () => ( void 0)),
|
|
12384
12414
|
cover: entityCover(
|
|
12385
|
-
_optionalChain([displayRef, 'access',
|
|
12386
|
-
_nullishCoalesce(_optionalChain([opts, 'access',
|
|
12415
|
+
_optionalChain([displayRef, 'access', _346 => _346.metadata, 'optionalAccess', _347 => _347.videoPoster]),
|
|
12416
|
+
_nullishCoalesce(_optionalChain([opts, 'access', _348 => _348.extras, 'optionalAccess', _349 => _349.buildOgPlaceholderUrl, 'optionalCall', _350 => _350(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
|
|
12387
12417
|
),
|
|
12388
12418
|
fallbackIcon: glyph(displayRef),
|
|
12389
12419
|
status: { label: cfg.label, variant: "grey" },
|
|
@@ -12398,9 +12428,9 @@ function refGlyphRegistryEntries() {
|
|
|
12398
12428
|
}
|
|
12399
12429
|
function fetchedEmployeeEntryDisplayRef(item, chatRef) {
|
|
12400
12430
|
const it = item;
|
|
12401
|
-
const title = typeof _optionalChain([it, 'optionalAccess',
|
|
12402
|
-
const author = typeof _optionalChain([it, 'optionalAccess',
|
|
12403
|
-
const summary = typeof _optionalChain([it, 'optionalAccess',
|
|
12431
|
+
const title = typeof _optionalChain([it, 'optionalAccess', _351 => _351.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
|
|
12432
|
+
const author = typeof _optionalChain([it, 'optionalAccess', _352 => _352.author, 'optionalAccess', _353 => _353.full_name]) === "string" ? it.author.full_name.trim() : "";
|
|
12433
|
+
const summary = typeof _optionalChain([it, 'optionalAccess', _354 => _354.summary]) === "string" ? it.summary.trim() : "";
|
|
12404
12434
|
const preview = [author, summary].filter((x) => x.length > 0).join(" \xB7 ");
|
|
12405
12435
|
return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
|
|
12406
12436
|
}
|
|
@@ -12442,7 +12472,7 @@ function programRegistryEntries() {
|
|
|
12442
12472
|
label: cfg.label,
|
|
12443
12473
|
contentRefType: cfg.contentRefType,
|
|
12444
12474
|
bareInline: true,
|
|
12445
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12475
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.ProgramCardSkeleton, { size: "sm" }),
|
|
12446
12476
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12447
12477
|
ProgramChatCard,
|
|
12448
12478
|
{
|
|
@@ -12452,7 +12482,7 @@ function programRegistryEntries() {
|
|
|
12452
12482
|
discuss: opts.discuss,
|
|
12453
12483
|
configKey: cfg.configKey,
|
|
12454
12484
|
label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
|
|
12455
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
12485
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _355 => _355.extras, 'optionalAccess', _356 => _356.buildOgPlaceholderUrl, 'optionalCall', _357 => _357(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _358 => _358.title]), () => ( "")))]), () => ( null))
|
|
12456
12486
|
}
|
|
12457
12487
|
)
|
|
12458
12488
|
}));
|
|
@@ -12473,7 +12503,7 @@ var ROADMAP_CARD_CONFIGS = {
|
|
|
12473
12503
|
// The card's destination IS the ClickUp deep link, derived from the
|
|
12474
12504
|
// task id post-fetch (the refs frame used to carry it).
|
|
12475
12505
|
noComposedHref: true,
|
|
12476
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
12506
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _359 => _359.id]) != null ? clickupTaskUrl(String(item.id)) : null
|
|
12477
12507
|
}
|
|
12478
12508
|
};
|
|
12479
12509
|
function roadmapRegistryEntries() {
|
|
@@ -12483,7 +12513,7 @@ function roadmapRegistryEntries() {
|
|
|
12483
12513
|
bareInline: true,
|
|
12484
12514
|
...cfg.noComposedHref ? { noComposedHref: true } : {},
|
|
12485
12515
|
...cfg.fallbackHref ? { fallbackHref: cfg.fallbackHref } : {},
|
|
12486
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12516
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.RoadmapCardSkeleton, { size: "sm" }),
|
|
12487
12517
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12488
12518
|
RoadmapChatCard,
|
|
12489
12519
|
{
|
|
@@ -12515,8 +12545,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12515
12545
|
DeletedDataCard,
|
|
12516
12546
|
{
|
|
12517
12547
|
title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
|
|
12518
|
-
entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access',
|
|
12519
|
-
recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access',
|
|
12548
|
+
entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _360 => _360.metadata, 'optionalAccess', _361 => _361.entity_label]), () => ( null)),
|
|
12549
|
+
recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _362 => _362.metadata, 'optionalAccess', _363 => _363.recovery_note]), () => ( null))
|
|
12520
12550
|
}
|
|
12521
12551
|
)
|
|
12522
12552
|
},
|
|
@@ -12533,7 +12563,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12533
12563
|
bareInline: true,
|
|
12534
12564
|
contentRefType: "faq",
|
|
12535
12565
|
noComposedHref: true,
|
|
12536
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
12566
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _364 => _364.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
|
|
12537
12567
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
12538
12568
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FaqChatCard, { chatRef: fetchedFaqDisplayRef(item, chatRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
12539
12569
|
},
|
|
@@ -12541,12 +12571,12 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12541
12571
|
// projection route; `extractCardItems` turns its object payload into the
|
|
12542
12572
|
// single matched row. Destination is the public page unless the host
|
|
12543
12573
|
// re-homes the type (`composeContentUrl` override).
|
|
12544
|
-
[
|
|
12574
|
+
[_chunk7Z4EQOIXcjs.TRUST_CENTER_DOCUMENT_TYPE]: {
|
|
12545
12575
|
label: "Trust center",
|
|
12546
12576
|
bareInline: true,
|
|
12547
|
-
contentRefType:
|
|
12577
|
+
contentRefType: _chunk7Z4EQOIXcjs.TRUST_CENTER_DOCUMENT_TYPE,
|
|
12548
12578
|
noComposedHref: true,
|
|
12549
|
-
fallbackHref: () =>
|
|
12579
|
+
fallbackHref: () => _chunk7Z4EQOIXcjs.TRUST_CENTER_PAGE_PATH,
|
|
12550
12580
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
12551
12581
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TrustCenterChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
12552
12582
|
},
|
|
@@ -12572,7 +12602,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12572
12602
|
label: "Blog post",
|
|
12573
12603
|
contentRefType: "blog_post_existing",
|
|
12574
12604
|
bareInline: true,
|
|
12575
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12605
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.BlogCardSkeleton, { size: "sm" }),
|
|
12576
12606
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12577
12607
|
BlogChatCard,
|
|
12578
12608
|
{
|
|
@@ -12580,8 +12610,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12580
12610
|
chatRef,
|
|
12581
12611
|
isNewTab: opts.isNewTab,
|
|
12582
12612
|
discuss: opts.discuss,
|
|
12583
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
12584
|
-
hasEmbeddedVideo: _optionalChain([chatRef, 'access',
|
|
12613
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _365 => _365.extras, 'optionalAccess', _366 => _366.buildOgPlaceholderUrl, 'optionalCall', _367 => _367(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _368 => _368.title]), () => ( "")))]), () => ( null)),
|
|
12614
|
+
hasEmbeddedVideo: _optionalChain([chatRef, 'access', _369 => _369.metadata, 'optionalAccess', _370 => _370.hasEmbeddedVideo]) === true
|
|
12585
12615
|
}
|
|
12586
12616
|
)
|
|
12587
12617
|
},
|
|
@@ -12589,7 +12619,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12589
12619
|
label: "Case study",
|
|
12590
12620
|
contentRefType: "case_study",
|
|
12591
12621
|
bareInline: true,
|
|
12592
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12622
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.CaseStudyCardSkeleton, { size: "sm" }),
|
|
12593
12623
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12594
12624
|
CaseStudyChatCard,
|
|
12595
12625
|
{
|
|
@@ -12597,7 +12627,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12597
12627
|
chatRef,
|
|
12598
12628
|
isNewTab: opts.isNewTab,
|
|
12599
12629
|
discuss: opts.discuss,
|
|
12600
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
12630
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _371 => _371.extras, 'optionalAccess', _372 => _372.buildOgPlaceholderUrl, 'optionalCall', _373 => _373(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _374 => _374.title]), () => ( "")))]), () => ( null))
|
|
12601
12631
|
}
|
|
12602
12632
|
)
|
|
12603
12633
|
},
|
|
@@ -12606,7 +12636,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12606
12636
|
contentRefType: "design_doc",
|
|
12607
12637
|
bareInline: true,
|
|
12608
12638
|
noComposedHref: true,
|
|
12609
|
-
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
12639
|
+
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _375 => _375.url]), () => ( null)),
|
|
12610
12640
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
12611
12641
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesignDocChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
12612
12642
|
},
|
|
@@ -12614,7 +12644,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12614
12644
|
label: "Customer interview",
|
|
12615
12645
|
contentRefType: "customer_interview",
|
|
12616
12646
|
bareInline: true,
|
|
12617
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12647
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.CustomerInterviewCardSkeleton, { size: "sm" }),
|
|
12618
12648
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12619
12649
|
CustomerInterviewChatCard,
|
|
12620
12650
|
{
|
|
@@ -12622,7 +12652,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12622
12652
|
chatRef,
|
|
12623
12653
|
isNewTab: opts.isNewTab,
|
|
12624
12654
|
discuss: opts.discuss,
|
|
12625
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
12655
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _376 => _376.extras, 'optionalAccess', _377 => _377.buildOgPlaceholderUrl, 'optionalCall', _378 => _378(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _379 => _379.title]), () => ( "")))]), () => ( null))
|
|
12626
12656
|
}
|
|
12627
12657
|
)
|
|
12628
12658
|
},
|
|
@@ -12630,9 +12660,9 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12630
12660
|
label: "Product release",
|
|
12631
12661
|
contentRefType: "product_release",
|
|
12632
12662
|
bareInline: true,
|
|
12633
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12663
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.ProductReleaseCardSkeleton, { size: "sm" }),
|
|
12634
12664
|
render: (item, chatRef, opts) => {
|
|
12635
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
12665
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _380 => _380.extras, 'optionalAccess', _381 => _381.buildProductReleaseCardProps]), () => ( _chunk7Z4EQOIXcjs.defaultBuildProductReleaseCardProps));
|
|
12636
12666
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12637
12667
|
ProductReleaseChatCard,
|
|
12638
12668
|
{
|
|
@@ -12650,7 +12680,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12650
12680
|
label: "Investor update",
|
|
12651
12681
|
contentRefType: "investor_update",
|
|
12652
12682
|
bareInline: true,
|
|
12653
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12683
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.InvestorUpdateCardSkeleton, { size: "sm" }),
|
|
12654
12684
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12655
12685
|
InvestorUpdateChatCard,
|
|
12656
12686
|
{
|
|
@@ -12658,7 +12688,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12658
12688
|
chatRef,
|
|
12659
12689
|
isNewTab: opts.isNewTab,
|
|
12660
12690
|
discuss: opts.discuss,
|
|
12661
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
12691
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _382 => _382.extras, 'optionalAccess', _383 => _383.buildOgPlaceholderUrl, 'optionalCall', _384 => _384(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _385 => _385.title]), () => ( "")))]), () => ( null))
|
|
12662
12692
|
}
|
|
12663
12693
|
)
|
|
12664
12694
|
},
|
|
@@ -12668,7 +12698,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12668
12698
|
bareInline: true,
|
|
12669
12699
|
// "Display" affordance (verbatim guide body) instead of "Ask".
|
|
12670
12700
|
displayAction: true,
|
|
12671
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12701
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.OnboardingGuideCardSkeleton, { size: "sm" }),
|
|
12672
12702
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12673
12703
|
OnboardingGuideChatCard,
|
|
12674
12704
|
{
|
|
@@ -12676,7 +12706,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12676
12706
|
chatRef,
|
|
12677
12707
|
isNewTab: opts.isNewTab,
|
|
12678
12708
|
discuss: opts.discuss,
|
|
12679
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
12709
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _386 => _386.extras, 'optionalAccess', _387 => _387.buildOgPlaceholderUrl, 'optionalCall', _388 => _388(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _389 => _389.title]), () => ( "")))]), () => ( null))
|
|
12680
12710
|
}
|
|
12681
12711
|
)
|
|
12682
12712
|
},
|
|
@@ -12687,13 +12717,13 @@ var CHAT_CARD_REGISTRY = {
|
|
|
12687
12717
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
|
|
12688
12718
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
12689
12719
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
12690
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
12720
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _390 => _390.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
|
|
12691
12721
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
12692
12722
|
},
|
|
12693
12723
|
...roadmapRegistryEntries()
|
|
12694
12724
|
};
|
|
12695
12725
|
function chatCardLabel(docType) {
|
|
12696
|
-
return _optionalChain([CHAT_CARD_REGISTRY, 'access',
|
|
12726
|
+
return _optionalChain([CHAT_CARD_REGISTRY, 'access', _391 => _391[docType], 'optionalAccess', _392 => _392.label]);
|
|
12697
12727
|
}
|
|
12698
12728
|
function ChatCardNavWrap({
|
|
12699
12729
|
href,
|
|
@@ -12709,13 +12739,13 @@ function ChatCardNavWrap({
|
|
|
12709
12739
|
if (!href) return;
|
|
12710
12740
|
const targetEl = e.target;
|
|
12711
12741
|
const host = e.currentTarget;
|
|
12712
|
-
if (!_optionalChain([host, 'optionalAccess',
|
|
12713
|
-
if (_optionalChain([targetEl, 'optionalAccess',
|
|
12714
|
-
if (!_optionalChain([targetEl, 'optionalAccess',
|
|
12742
|
+
if (!_optionalChain([host, 'optionalAccess', _393 => _393.contains, 'call', _394 => _394(targetEl)])) return;
|
|
12743
|
+
if (_optionalChain([targetEl, 'optionalAccess', _395 => _395.closest, 'optionalCall', _396 => _396("button")])) return;
|
|
12744
|
+
if (!_optionalChain([targetEl, 'optionalAccess', _397 => _397.closest, 'optionalCall', _398 => _398("a")])) return;
|
|
12715
12745
|
const handled = executeNavigation({ event: e, runtime, href, path, targetPlatform, fallbackNavigate: router.push });
|
|
12716
12746
|
if (!handled) return;
|
|
12717
12747
|
e.stopPropagation();
|
|
12718
|
-
if (!isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
12748
|
+
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _399 => _399.closeChat])) panel.closeChat();
|
|
12719
12749
|
};
|
|
12720
12750
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
|
|
12721
12751
|
}
|
|
@@ -12731,7 +12761,7 @@ function ChatCardLoader({
|
|
|
12731
12761
|
const entry = CHAT_CARD_REGISTRY[chatRef.type];
|
|
12732
12762
|
const fetchEntry = entry && entry.contentRefType ? entry : null;
|
|
12733
12763
|
const { item, isLoading, isError, isFetched } = useChatCardItem(
|
|
12734
|
-
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess',
|
|
12764
|
+
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _400 => _400.contentRefType]), () => ( "")),
|
|
12735
12765
|
fetchEntry ? chatRef.id : ""
|
|
12736
12766
|
);
|
|
12737
12767
|
if (!entry) return null;
|
|
@@ -12741,7 +12771,7 @@ function ChatCardLoader({
|
|
|
12741
12771
|
entry: fetchEntry,
|
|
12742
12772
|
ctx: sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform }),
|
|
12743
12773
|
composeContentUrl: runtime.composeContentUrl,
|
|
12744
|
-
resolveHref: (href) =>
|
|
12774
|
+
resolveHref: (href) => _chunk7Z4EQOIXcjs.resolveHrefForRuntime.call(void 0, href, runtime)
|
|
12745
12775
|
});
|
|
12746
12776
|
const hrefResolvedChatRef = {
|
|
12747
12777
|
...chatRef,
|
|
@@ -12752,7 +12782,7 @@ function ChatCardLoader({
|
|
|
12752
12782
|
};
|
|
12753
12783
|
const fetchedTitle = fetchEntry && item ? readFetchedCardTitle(item) : null;
|
|
12754
12784
|
const finalChatRef = fetchedTitle && (!hrefResolvedChatRef.title || hrefResolvedChatRef.title === hrefResolvedChatRef.id) ? { ...hrefResolvedChatRef, title: fetchedTitle } : hrefResolvedChatRef;
|
|
12755
|
-
const isNewTab =
|
|
12785
|
+
const isNewTab = _chunk7Z4EQOIXcjs.computeIsNewTab.call(void 0, runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
|
|
12756
12786
|
const useDisplay = !!entry.displayAction && !!onDisplay;
|
|
12757
12787
|
const discussFn = useDisplay ? onDisplay : onDiscuss;
|
|
12758
12788
|
const discuss = discussFn ? {
|
|
@@ -12767,7 +12797,7 @@ function ChatCardLoader({
|
|
|
12767
12797
|
isNewTab,
|
|
12768
12798
|
discuss
|
|
12769
12799
|
};
|
|
12770
|
-
const path = typeof _optionalChain([finalChatRef, 'access',
|
|
12800
|
+
const path = typeof _optionalChain([finalChatRef, 'access', _401 => _401.metadata, 'optionalAccess', _402 => _402.path]) === "string" ? finalChatRef.metadata.path : null;
|
|
12771
12801
|
const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12772
12802
|
ChatCardNavWrap,
|
|
12773
12803
|
{
|
|
@@ -12791,7 +12821,7 @@ function ChatCardLoader({
|
|
|
12791
12821
|
if (!fetchEntry) {
|
|
12792
12822
|
return finish(entry.render(void 0, finalChatRef, renderOpts));
|
|
12793
12823
|
}
|
|
12794
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access',
|
|
12824
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _403 => _403.skeleton, 'optionalCall', _404 => _404()]), () => ( null)) });
|
|
12795
12825
|
if (!item) {
|
|
12796
12826
|
if (isError) {
|
|
12797
12827
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
|
|
@@ -13085,7 +13115,7 @@ function useChunkCatchup({
|
|
|
13085
13115
|
if (catchupRun.current === run) {
|
|
13086
13116
|
if (currentDialogId !== dialogIdRef.current) {
|
|
13087
13117
|
catchupRun.current = null;
|
|
13088
|
-
if (_optionalChain([pendingCatchupRef, 'access',
|
|
13118
|
+
if (_optionalChain([pendingCatchupRef, 'access', _405 => _405.current, 'optionalAccess', _406 => _406.dialogId]) === currentDialogId) {
|
|
13089
13119
|
pendingCatchupRef.current = null;
|
|
13090
13120
|
}
|
|
13091
13121
|
} else {
|
|
@@ -13096,7 +13126,7 @@ function useChunkCatchup({
|
|
|
13096
13126
|
if (pending.dialogId === currentDialogId) {
|
|
13097
13127
|
rearmForQueuedCatchup();
|
|
13098
13128
|
try {
|
|
13099
|
-
await _optionalChain([catchUpChunksRef, 'access',
|
|
13129
|
+
await _optionalChain([catchUpChunksRef, 'access', _407 => _407.current, 'optionalCall', _408 => _408(pending.fromSequenceId)]);
|
|
13100
13130
|
} catch (rerunError) {
|
|
13101
13131
|
console.error("Queued catch-up re-run failed:", rerunError);
|
|
13102
13132
|
}
|
|
@@ -13247,20 +13277,20 @@ function useNatsDialogSubscription({
|
|
|
13247
13277
|
const tearDownSubscriptions = () => {
|
|
13248
13278
|
subscriptionRefs.current.forEach((sub) => {
|
|
13249
13279
|
try {
|
|
13250
|
-
_optionalChain([sub, 'optionalAccess',
|
|
13280
|
+
_optionalChain([sub, 'optionalAccess', _409 => _409.unsubscribe, 'call', _410 => _410()]);
|
|
13251
13281
|
} catch (e10) {
|
|
13252
13282
|
}
|
|
13253
13283
|
});
|
|
13254
13284
|
subscriptionRefs.current.clear();
|
|
13255
13285
|
lastSubscribedDialogIdRef.current = null;
|
|
13256
|
-
_optionalChain([abortControllerRef, 'access',
|
|
13286
|
+
_optionalChain([abortControllerRef, 'access', _411 => _411.current, 'optionalAccess', _412 => _412.abort, 'call', _413 => _413()]);
|
|
13257
13287
|
abortControllerRef.current = null;
|
|
13258
13288
|
};
|
|
13259
13289
|
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
|
|
13260
13290
|
const lifecycle = _chunkKHKPLOU4cjs.startConnectionLifecycle.call(void 0, {
|
|
13261
13291
|
conn: sharedConn,
|
|
13262
13292
|
wsUrl,
|
|
13263
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
13293
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _414 => _414.current, 'optionalCall', _415 => _415()]),
|
|
13264
13294
|
backoff: reconnectionBackoffRef.current,
|
|
13265
13295
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
13266
13296
|
shouldRetryOn: isDisconnectStatus,
|
|
@@ -13271,7 +13301,7 @@ function useNatsDialogSubscription({
|
|
|
13271
13301
|
setReconnectionCount((c) => c + 1);
|
|
13272
13302
|
}
|
|
13273
13303
|
hadConnectionBeforeRef.current = true;
|
|
13274
|
-
_optionalChain([onConnectRef, 'access',
|
|
13304
|
+
_optionalChain([onConnectRef, 'access', _416 => _416.current, 'optionalCall', _417 => _417()]);
|
|
13275
13305
|
}
|
|
13276
13306
|
if (status === "error") {
|
|
13277
13307
|
console.warn("[NATS] protocol error:", evt.data);
|
|
@@ -13281,7 +13311,7 @@ function useNatsDialogSubscription({
|
|
|
13281
13311
|
setIsConnected(false);
|
|
13282
13312
|
setIsSubscribed(false);
|
|
13283
13313
|
tearDownSubscriptions();
|
|
13284
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
13314
|
+
_optionalChain([onDisconnectRef, 'access', _418 => _418.current, 'optionalCall', _419 => _419()]);
|
|
13285
13315
|
}
|
|
13286
13316
|
}
|
|
13287
13317
|
});
|
|
@@ -13312,13 +13342,13 @@ function useNatsDialogSubscription({
|
|
|
13312
13342
|
setIsSubscribed(false);
|
|
13313
13343
|
subscriptionRefs.current.forEach((sub) => {
|
|
13314
13344
|
try {
|
|
13315
|
-
_optionalChain([sub, 'optionalAccess',
|
|
13345
|
+
_optionalChain([sub, 'optionalAccess', _420 => _420.unsubscribe, 'call', _421 => _421()]);
|
|
13316
13346
|
} catch (e11) {
|
|
13317
13347
|
}
|
|
13318
13348
|
});
|
|
13319
13349
|
subscriptionRefs.current.clear();
|
|
13320
13350
|
lastSubscribedDialogIdRef.current = null;
|
|
13321
|
-
_optionalChain([abortControllerRef, 'access',
|
|
13351
|
+
_optionalChain([abortControllerRef, 'access', _422 => _422.current, 'optionalAccess', _423 => _423.abort, 'call', _424 => _424()]);
|
|
13322
13352
|
abortControllerRef.current = null;
|
|
13323
13353
|
}
|
|
13324
13354
|
return void 0;
|
|
@@ -13330,12 +13360,12 @@ function useNatsDialogSubscription({
|
|
|
13330
13360
|
if (subscriptionRefs.current.size > 0) {
|
|
13331
13361
|
subscriptionRefs.current.forEach((sub) => {
|
|
13332
13362
|
try {
|
|
13333
|
-
_optionalChain([sub, 'optionalAccess',
|
|
13363
|
+
_optionalChain([sub, 'optionalAccess', _425 => _425.unsubscribe, 'call', _426 => _426()]);
|
|
13334
13364
|
} catch (e12) {
|
|
13335
13365
|
}
|
|
13336
13366
|
});
|
|
13337
13367
|
subscriptionRefs.current.clear();
|
|
13338
|
-
_optionalChain([abortControllerRef, 'access',
|
|
13368
|
+
_optionalChain([abortControllerRef, 'access', _427 => _427.current, 'optionalAccess', _428 => _428.abort, 'call', _429 => _429()]);
|
|
13339
13369
|
}
|
|
13340
13370
|
abortControllerRef.current = new AbortController();
|
|
13341
13371
|
const abort = abortControllerRef.current;
|
|
@@ -13365,7 +13395,7 @@ function useNatsDialogSubscription({
|
|
|
13365
13395
|
});
|
|
13366
13396
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
13367
13397
|
setIsSubscribed(true);
|
|
13368
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
13398
|
+
_optionalChain([onSubscribedRef, 'access', _430 => _430.current, 'optionalCall', _431 => _431()]);
|
|
13369
13399
|
};
|
|
13370
13400
|
if (isConnectedRef.current) {
|
|
13371
13401
|
createSubscriptions();
|
|
@@ -13376,7 +13406,7 @@ function useNatsDialogSubscription({
|
|
|
13376
13406
|
abort.abort();
|
|
13377
13407
|
subscriptions.forEach((sub) => {
|
|
13378
13408
|
try {
|
|
13379
|
-
_optionalChain([sub, 'optionalAccess',
|
|
13409
|
+
_optionalChain([sub, 'optionalAccess', _432 => _432.unsubscribe, 'call', _433 => _433()]);
|
|
13380
13410
|
} catch (e14) {
|
|
13381
13411
|
}
|
|
13382
13412
|
});
|
|
@@ -13415,7 +13445,7 @@ function useNatsDialogSubscription({
|
|
|
13415
13445
|
});
|
|
13416
13446
|
lastSubscribedDialogIdRef.current = currentDialogId;
|
|
13417
13447
|
setIsSubscribed(true);
|
|
13418
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
13448
|
+
_optionalChain([onSubscribedRef, 'access', _434 => _434.current, 'optionalCall', _435 => _435()]);
|
|
13419
13449
|
} else if (subscriptionRefs.current.size > 0) {
|
|
13420
13450
|
setIsSubscribed(true);
|
|
13421
13451
|
}
|
|
@@ -13423,10 +13453,10 @@ function useNatsDialogSubscription({
|
|
|
13423
13453
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
13424
13454
|
}
|
|
13425
13455
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
13426
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
13456
|
+
const path = _optionalChain([options, 'optionalAccess', _436 => _436.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
13427
13457
|
const u = new URL(path, apiBaseUrl);
|
|
13428
13458
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
13429
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
13459
|
+
if (_optionalChain([options, 'optionalAccess', _437 => _437.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _438 => _438.token])) {
|
|
13430
13460
|
u.searchParams.set("authorization", options.token);
|
|
13431
13461
|
}
|
|
13432
13462
|
return u.toString();
|
|
@@ -13444,7 +13474,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
13444
13474
|
const data = await res.json();
|
|
13445
13475
|
return _nullishCoalesce(data.commands, () => ( []));
|
|
13446
13476
|
} catch (err) {
|
|
13447
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
13477
|
+
if (_optionalChain([err, 'optionalAccess', _439 => _439.name]) === "AbortError") throw err;
|
|
13448
13478
|
console.warn("[chat] slash-commands fetch failed, showing none:", err);
|
|
13449
13479
|
return [];
|
|
13450
13480
|
}
|
|
@@ -13452,8 +13482,8 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
13452
13482
|
var NO_COMMANDS = [];
|
|
13453
13483
|
function useSlashCommands(prefix, commandsUrl) {
|
|
13454
13484
|
const [answered, setAnswered] = _react.useState.call(void 0, null);
|
|
13455
|
-
const commands = prefix != null && _optionalChain([answered, 'optionalAccess',
|
|
13456
|
-
const loading = prefix != null && _optionalChain([answered, 'optionalAccess',
|
|
13485
|
+
const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _440 => _440.prefix]) === prefix ? answered.commands : NO_COMMANDS;
|
|
13486
|
+
const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _441 => _441.prefix]) !== prefix;
|
|
13457
13487
|
_react.useEffect.call(void 0, () => {
|
|
13458
13488
|
if (prefix == null) return void 0;
|
|
13459
13489
|
let cancelled = false;
|
|
@@ -13463,7 +13493,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
13463
13493
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
13464
13494
|
if (!cancelled) setAnswered({ prefix, commands: next });
|
|
13465
13495
|
} catch (err) {
|
|
13466
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
13496
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _442 => _442.name]) !== "AbortError") {
|
|
13467
13497
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
13468
13498
|
setAnswered({ prefix, commands: NO_COMMANDS });
|
|
13469
13499
|
}
|
|
@@ -13486,7 +13516,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
|
|
|
13486
13516
|
const query = _reactquery.useQuery.call(void 0, {
|
|
13487
13517
|
queryKey: ["chat-slash-commands", commandsUrl],
|
|
13488
13518
|
queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
|
|
13489
|
-
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
13519
|
+
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _443 => _443.enabled]), () => ( true)),
|
|
13490
13520
|
staleTime: Infinity,
|
|
13491
13521
|
gcTime: Infinity,
|
|
13492
13522
|
// The commands registry is non-critical chrome — a failure degrades to an
|
|
@@ -13525,21 +13555,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
|
13525
13555
|
}
|
|
13526
13556
|
const data = await res.json();
|
|
13527
13557
|
return {
|
|
13528
|
-
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
13529
|
-
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
13530
|
-
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
13531
|
-
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
13532
|
-
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
13533
|
-
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
13558
|
+
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _444 => _444.name]), () => ( null)),
|
|
13559
|
+
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _445 => _445.icon]), () => ( null)),
|
|
13560
|
+
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _446 => _446.greeting]), () => ( null)),
|
|
13561
|
+
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _447 => _447.enabledRagTableIds]), () => ( [])),
|
|
13562
|
+
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _448 => _448.quickActions]), () => ( [])),
|
|
13563
|
+
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _449 => _449.suggestedQueries]), () => ( []))
|
|
13534
13564
|
};
|
|
13535
13565
|
} catch (err) {
|
|
13536
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
13566
|
+
if (_optionalChain([err, 'optionalAccess', _450 => _450.name]) === "AbortError") throw err;
|
|
13537
13567
|
console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
|
|
13538
13568
|
return EMPTY_STATE_FALLBACK;
|
|
13539
13569
|
}
|
|
13540
13570
|
}
|
|
13541
13571
|
function useEmptyStateConfig(emptyStateUrl, options) {
|
|
13542
|
-
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
13572
|
+
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _451 => _451.enabled]), () => ( true))) && !!emptyStateUrl;
|
|
13543
13573
|
const query = _reactquery.useQuery.call(void 0, {
|
|
13544
13574
|
queryKey: ["chat-empty-state", emptyStateUrl],
|
|
13545
13575
|
queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
|
|
@@ -13568,7 +13598,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
13568
13598
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
13569
13599
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
13570
13600
|
return new Promise((resolve, reject) => {
|
|
13571
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
13601
|
+
if (_optionalChain([signal, 'optionalAccess', _452 => _452.aborted])) {
|
|
13572
13602
|
reject(new Error("Upload cancelled"));
|
|
13573
13603
|
return;
|
|
13574
13604
|
}
|
|
@@ -13610,7 +13640,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
13610
13640
|
const handleSignalAbort = () => {
|
|
13611
13641
|
xhr.abort();
|
|
13612
13642
|
};
|
|
13613
|
-
_optionalChain([signal, 'optionalAccess',
|
|
13643
|
+
_optionalChain([signal, 'optionalAccess', _453 => _453.addEventListener, 'call', _454 => _454("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
|
|
13614
13644
|
xhr.upload.addEventListener("progress", handleProgress, { signal: listeners.signal });
|
|
13615
13645
|
xhr.addEventListener("load", handleLoad, { signal: listeners.signal });
|
|
13616
13646
|
xhr.addEventListener("error", handleError, { signal: listeners.signal });
|
|
@@ -13654,10 +13684,10 @@ function useChatAttachments() {
|
|
|
13654
13684
|
try {
|
|
13655
13685
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
13656
13686
|
} catch (err) {
|
|
13657
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
13687
|
+
if (_optionalChain([ctrl, 'optionalAccess', _455 => _455.signal, 'access', _456 => _456.aborted])) return;
|
|
13658
13688
|
throw new Error(`Could not read file content: ${err instanceof Error ? err.message : String(err)}`);
|
|
13659
13689
|
}
|
|
13660
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
13690
|
+
if (_optionalChain([ctrl, 'optionalAccess', _457 => _457.signal, 'access', _458 => _458.aborted])) return;
|
|
13661
13691
|
if (!sniffed) {
|
|
13662
13692
|
throw new Error("Unrecognized file format");
|
|
13663
13693
|
}
|
|
@@ -13671,7 +13701,7 @@ function useChatAttachments() {
|
|
|
13671
13701
|
const urlResp = await _chunkDGFDBPO7cjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
|
|
13672
13702
|
method: "POST",
|
|
13673
13703
|
headers: { "Content-Type": "application/json" },
|
|
13674
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
13704
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _459 => _459.signal]),
|
|
13675
13705
|
body: JSON.stringify({
|
|
13676
13706
|
fileName: att.file.name,
|
|
13677
13707
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -13700,9 +13730,9 @@ function useChatAttachments() {
|
|
|
13700
13730
|
(pct) => {
|
|
13701
13731
|
updateOne(att.id, { progress: pct });
|
|
13702
13732
|
},
|
|
13703
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
13733
|
+
_optionalChain([ctrl, 'optionalAccess', _460 => _460.signal])
|
|
13704
13734
|
);
|
|
13705
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
13735
|
+
if (_optionalChain([ctrl, 'optionalAccess', _461 => _461.signal, 'access', _462 => _462.aborted])) return;
|
|
13706
13736
|
updateOne(att.id, {
|
|
13707
13737
|
status: "ready",
|
|
13708
13738
|
progress: 100,
|
|
@@ -13710,7 +13740,7 @@ function useChatAttachments() {
|
|
|
13710
13740
|
viewToken: mintData.viewToken
|
|
13711
13741
|
});
|
|
13712
13742
|
} catch (err) {
|
|
13713
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
13743
|
+
if (_optionalChain([ctrl, 'optionalAccess', _463 => _463.signal, 'access', _464 => _464.aborted])) return;
|
|
13714
13744
|
const message = err instanceof Error ? err.message : String(err);
|
|
13715
13745
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message });
|
|
13716
13746
|
} finally {
|
|
@@ -13832,7 +13862,7 @@ function useChatAttachmentImageGallery() {
|
|
|
13832
13862
|
return () => root.removeEventListener("click", onClick);
|
|
13833
13863
|
}, [viewUrlPrefix]);
|
|
13834
13864
|
const modal = state.isOpen ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13835
|
-
|
|
13865
|
+
_chunk7Z4EQOIXcjs.ImageGalleryModal,
|
|
13836
13866
|
{
|
|
13837
13867
|
images: state.images,
|
|
13838
13868
|
isOpen: state.isOpen,
|
|
@@ -13859,11 +13889,11 @@ var ANON_DEFAULTS = {
|
|
|
13859
13889
|
function useResolveChatIdentity(enabled) {
|
|
13860
13890
|
const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
|
|
13861
13891
|
const url = runtime.endpoints.identityUrl;
|
|
13862
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([_chunkDGFDBPO7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess',
|
|
13892
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([_chunkDGFDBPO7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _465 => _465.email]), () => ( null));
|
|
13863
13893
|
const requestKey = enabled ? `${url}\0${_nullishCoalesce(proxyEmail, () => ( ""))}` : null;
|
|
13864
13894
|
const [resolved, setResolved] = _react.useState.call(void 0, null);
|
|
13865
|
-
const data = _optionalChain([resolved, 'optionalAccess',
|
|
13866
|
-
const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess',
|
|
13895
|
+
const data = _optionalChain([resolved, 'optionalAccess', _466 => _466.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
|
|
13896
|
+
const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _467 => _467.key]) !== requestKey;
|
|
13867
13897
|
_react.useEffect.call(void 0, () => {
|
|
13868
13898
|
if (requestKey === null) return void 0;
|
|
13869
13899
|
let cancelled = false;
|
|
@@ -13925,6 +13955,108 @@ function useCloseOnNavigation(close, pathname) {
|
|
|
13925
13955
|
}, [pathname]);
|
|
13926
13956
|
}
|
|
13927
13957
|
|
|
13958
|
+
// src/components/chat/hooks/use-what-to-ask.ts
|
|
13959
|
+
|
|
13960
|
+
var DRAFT_KEY = "";
|
|
13961
|
+
function useWhatToAsk({ dialogId, content, user, assistant, onPick }) {
|
|
13962
|
+
const [byDialog, setByDialog] = _react.useState.call(void 0, {});
|
|
13963
|
+
const [draftSent, setDraftSent] = _react.useState.call(void 0, false);
|
|
13964
|
+
const key = _nullishCoalesce(dialogId, () => ( DRAFT_KEY));
|
|
13965
|
+
const [prevKey, setPrevKey] = _react.useState.call(void 0, key);
|
|
13966
|
+
if (prevKey !== key) {
|
|
13967
|
+
setPrevKey(key);
|
|
13968
|
+
if (prevKey === DRAFT_KEY) {
|
|
13969
|
+
setDraftSent(false);
|
|
13970
|
+
setByDialog((prev) => {
|
|
13971
|
+
const { [DRAFT_KEY]: draft, ...rest } = prev;
|
|
13972
|
+
if (!draft) return prev;
|
|
13973
|
+
return draftSent ? { ...rest, [key]: [..._nullishCoalesce(rest[key], () => ( [])), ...draft] } : rest;
|
|
13974
|
+
});
|
|
13975
|
+
}
|
|
13976
|
+
}
|
|
13977
|
+
const ask = _react.useCallback.call(void 0,
|
|
13978
|
+
(target, override) => {
|
|
13979
|
+
const shown = _nullishCoalesce(override, () => ( content));
|
|
13980
|
+
if (!shown) return;
|
|
13981
|
+
const into = target === "current" && dialogId ? dialogId : DRAFT_KEY;
|
|
13982
|
+
const exchange = {
|
|
13983
|
+
id: `what-to-ask-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`,
|
|
13984
|
+
at: Date.now(),
|
|
13985
|
+
content: shown
|
|
13986
|
+
};
|
|
13987
|
+
setByDialog((prev) => ({ ...prev, [into]: [..._nullishCoalesce(prev[into], () => ( [])), exchange] }));
|
|
13988
|
+
},
|
|
13989
|
+
[content, dialogId]
|
|
13990
|
+
);
|
|
13991
|
+
const noteSend = _react.useCallback.call(void 0, () => {
|
|
13992
|
+
if (dialogId == null) setDraftSent(true);
|
|
13993
|
+
}, [dialogId]);
|
|
13994
|
+
const clearDraft = _react.useCallback.call(void 0, () => {
|
|
13995
|
+
setDraftSent(false);
|
|
13996
|
+
setByDialog((prev) => {
|
|
13997
|
+
if (!prev[DRAFT_KEY]) return prev;
|
|
13998
|
+
const rest = { ...prev };
|
|
13999
|
+
delete rest[DRAFT_KEY];
|
|
14000
|
+
return rest;
|
|
14001
|
+
});
|
|
14002
|
+
}, []);
|
|
14003
|
+
const exchanges = _nullishCoalesce(byDialog[key], () => ( []));
|
|
14004
|
+
const withExchanges = (messages) => {
|
|
14005
|
+
if (exchanges.length === 0) return messages;
|
|
14006
|
+
const local = exchanges.flatMap((exchange) => exchangeMessages(exchange, user, assistant, onPick));
|
|
14007
|
+
return mergeByTime(messages, local);
|
|
14008
|
+
};
|
|
14009
|
+
return { ask, withExchanges, noteSend, clearDraft };
|
|
14010
|
+
}
|
|
14011
|
+
function exchangeMessages({ id, at, content }, user, assistant, onPick) {
|
|
14012
|
+
return [
|
|
14013
|
+
{
|
|
14014
|
+
id: `${id}-question`,
|
|
14015
|
+
role: "user",
|
|
14016
|
+
content: content.question,
|
|
14017
|
+
timestamp: new Date(at),
|
|
14018
|
+
name: _optionalChain([user, 'optionalAccess', _468 => _468.name]),
|
|
14019
|
+
avatar: _optionalChain([user, 'optionalAccess', _469 => _469.avatar]),
|
|
14020
|
+
authorType: _optionalChain([user, 'optionalAccess', _470 => _470.authorType])
|
|
14021
|
+
},
|
|
14022
|
+
{
|
|
14023
|
+
id: `${id}-answer`,
|
|
14024
|
+
role: "assistant",
|
|
14025
|
+
content: [
|
|
14026
|
+
{ type: "text", text: content.reply },
|
|
14027
|
+
{ type: "suggestions", groups: content.groups, note: content.note, onPick }
|
|
14028
|
+
],
|
|
14029
|
+
// A millisecond after the question, so the pair keeps its order.
|
|
14030
|
+
timestamp: new Date(at + 1),
|
|
14031
|
+
name: _optionalChain([assistant, 'optionalAccess', _471 => _471.name]),
|
|
14032
|
+
avatar: _optionalChain([assistant, 'optionalAccess', _472 => _472.avatar]),
|
|
14033
|
+
authorType: _optionalChain([assistant, 'optionalAccess', _473 => _473.authorType]),
|
|
14034
|
+
assistantType: _optionalChain([assistant, 'optionalAccess', _474 => _474.assistantType])
|
|
14035
|
+
}
|
|
14036
|
+
];
|
|
14037
|
+
}
|
|
14038
|
+
function awaitsDecision(messages) {
|
|
14039
|
+
return messages.some(
|
|
14040
|
+
(message) => Array.isArray(message.content) && message.content.some(
|
|
14041
|
+
(segment) => (segment.type === "approval_request" || segment.type === "approval_batch" || segment.type === "escalation_offer") && (_nullishCoalesce(segment.status, () => ( "pending"))) === "pending"
|
|
14042
|
+
)
|
|
14043
|
+
);
|
|
14044
|
+
}
|
|
14045
|
+
function mergeByTime(thread, local) {
|
|
14046
|
+
if (local.length === 0) return thread;
|
|
14047
|
+
const out = [];
|
|
14048
|
+
let next = 0;
|
|
14049
|
+
for (const message of thread) {
|
|
14050
|
+
const at = _optionalChain([message, 'access', _475 => _475.timestamp, 'optionalAccess', _476 => _476.getTime, 'call', _477 => _477()]);
|
|
14051
|
+
while (next < local.length && at !== void 0 && (_nullishCoalesce(_optionalChain([local, 'access', _478 => _478[next], 'access', _479 => _479.timestamp, 'optionalAccess', _480 => _480.getTime, 'call', _481 => _481()]), () => ( 0))) < at) {
|
|
14052
|
+
out.push(local[next]);
|
|
14053
|
+
next += 1;
|
|
14054
|
+
}
|
|
14055
|
+
out.push(message);
|
|
14056
|
+
}
|
|
14057
|
+
return out.concat(local.slice(next));
|
|
14058
|
+
}
|
|
14059
|
+
|
|
13928
14060
|
// src/chat-protocol/progress.ts
|
|
13929
14061
|
var CHAT_PROGRESS_STAGES = ["understanding", "searching", "searching_again", "reading"];
|
|
13930
14062
|
function isChatProgressStage(value) {
|
|
@@ -14021,9 +14153,9 @@ function appendToTrailingAssistant(prev, segments) {
|
|
|
14021
14153
|
for (const seg of segments) {
|
|
14022
14154
|
const tail = merged[merged.length - 1];
|
|
14023
14155
|
const key = upsertKey(seg);
|
|
14024
|
-
if (seg.type === "text" && _optionalChain([tail, 'optionalAccess',
|
|
14156
|
+
if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _482 => _482.type]) === "text") {
|
|
14025
14157
|
merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
|
|
14026
|
-
} else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess',
|
|
14158
|
+
} else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _483 => _483.type]) === "thinking") {
|
|
14027
14159
|
merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
|
|
14028
14160
|
} else if (key) {
|
|
14029
14161
|
let idx = merged.findIndex((m) => upsertKey(m) === key);
|
|
@@ -14064,7 +14196,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
|
|
|
14064
14196
|
}
|
|
14065
14197
|
if (s.type !== "approval_batch") return s;
|
|
14066
14198
|
const isAnchor = s.data.approvalRequestId === requestId;
|
|
14067
|
-
const hasRow = _optionalChain([s, 'access',
|
|
14199
|
+
const hasRow = _optionalChain([s, 'access', _484 => _484.data, 'access', _485 => _485.toolCalls, 'optionalAccess', _486 => _486.some, 'call', _487 => _487((c) => c.toolExecutionRequestId === requestId)]);
|
|
14068
14200
|
if (!isAnchor && !hasRow) return s;
|
|
14069
14201
|
const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
|
|
14070
14202
|
const nextExecutions = hasRow ? {
|
|
@@ -14086,8 +14218,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
|
|
|
14086
14218
|
};
|
|
14087
14219
|
}
|
|
14088
14220
|
function nextBatchExecution(prevExec, toolData) {
|
|
14089
|
-
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess',
|
|
14090
|
-
return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess',
|
|
14221
|
+
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _488 => _488.status]) === "done") return null;
|
|
14222
|
+
return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _489 => _489.result]), success: _optionalChain([prevExec, 'optionalAccess', _490 => _490.success]) };
|
|
14091
14223
|
}
|
|
14092
14224
|
function withBatchExecution(seg, execId, state) {
|
|
14093
14225
|
return {
|
|
@@ -14104,11 +14236,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
|
|
|
14104
14236
|
}
|
|
14105
14237
|
function projectBatchRowFailureToMessages(prev, rowRequestId) {
|
|
14106
14238
|
return mapSegments(prev, (s) => {
|
|
14107
|
-
if (s.type !== "approval_batch" || !_optionalChain([s, 'access',
|
|
14239
|
+
if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _491 => _491.data, 'access', _492 => _492.toolCalls, 'optionalAccess', _493 => _493.some, 'call', _494 => _494((c) => c.toolExecutionRequestId === rowRequestId)])) {
|
|
14108
14240
|
return s;
|
|
14109
14241
|
}
|
|
14110
|
-
const existing = _optionalChain([s, 'access',
|
|
14111
|
-
if (_optionalChain([existing, 'optionalAccess',
|
|
14242
|
+
const existing = _optionalChain([s, 'access', _495 => _495.data, 'access', _496 => _496.executions, 'optionalAccess', _497 => _497[rowRequestId]]);
|
|
14243
|
+
if (_optionalChain([existing, 'optionalAccess', _498 => _498.status]) === "done") return s;
|
|
14112
14244
|
return withBatchExecution(s, rowRequestId, { status: "done", success: false });
|
|
14113
14245
|
});
|
|
14114
14246
|
}
|
|
@@ -14144,7 +14276,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
|
|
|
14144
14276
|
for (let j = message.segments.length - 1; j >= 0; j--) {
|
|
14145
14277
|
const seg = message.segments[j];
|
|
14146
14278
|
if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
|
|
14147
|
-
const prevExec = _optionalChain([seg, 'access',
|
|
14279
|
+
const prevExec = _optionalChain([seg, 'access', _499 => _499.data, 'access', _500 => _500.executions, 'optionalAccess', _501 => _501[execId]]);
|
|
14148
14280
|
const nextExec = nextBatchExecution(prevExec, toolData);
|
|
14149
14281
|
if (nextExec === null) return prev;
|
|
14150
14282
|
if (sameExecutionState(prevExec, nextExec)) return prev;
|
|
@@ -14317,9 +14449,9 @@ var MessageSegmentAccumulator = class {
|
|
|
14317
14449
|
type: "tool_execution",
|
|
14318
14450
|
data: {
|
|
14319
14451
|
...toolData,
|
|
14320
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
14321
|
-
toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
14322
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
14452
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _502 => _502.data, 'access', _503 => _503.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _504 => _504.toolTitle]))),
|
|
14453
|
+
toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _505 => _505.data, 'access', _506 => _506.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _507 => _507.toolExplanation]))),
|
|
14454
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _508 => _508.parameters])
|
|
14323
14455
|
}
|
|
14324
14456
|
};
|
|
14325
14457
|
if (existingIndex !== -1) {
|
|
@@ -14343,7 +14475,7 @@ var MessageSegmentAccumulator = class {
|
|
|
14343
14475
|
if (seg.type !== "approval_batch") return seg;
|
|
14344
14476
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
14345
14477
|
if (!hasCall) return seg;
|
|
14346
|
-
const prev = _optionalChain([seg, 'access',
|
|
14478
|
+
const prev = _optionalChain([seg, 'access', _509 => _509.data, 'access', _510 => _510.executions, 'optionalAccess', _511 => _511[execId]]);
|
|
14347
14479
|
const next = nextBatchExecution(prev, toolData);
|
|
14348
14480
|
matched = true;
|
|
14349
14481
|
if (next === null) return seg;
|
|
@@ -14477,8 +14609,8 @@ var MessageSegmentAccumulator = class {
|
|
|
14477
14609
|
requestId,
|
|
14478
14610
|
{
|
|
14479
14611
|
...pendingApproval,
|
|
14480
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
14481
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
14612
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _512 => _512.command]) || "",
|
|
14613
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _513 => _513.approvalType]) || approvalType
|
|
14482
14614
|
},
|
|
14483
14615
|
status
|
|
14484
14616
|
);
|
|
@@ -14503,9 +14635,9 @@ var MessageSegmentAccumulator = class {
|
|
|
14503
14635
|
type: "escalation_offer",
|
|
14504
14636
|
// The resolved chunk carries no text/origin — a redelivered offer must
|
|
14505
14637
|
// not blank the card the PENDING chunk already painted.
|
|
14506
|
-
data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess',
|
|
14638
|
+
data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _514 => _514.data, 'access', _515 => _515.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _516 => _516.data, 'access', _517 => _517.origin]))) },
|
|
14507
14639
|
status,
|
|
14508
|
-
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess',
|
|
14640
|
+
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _518 => _518.resolvedByName]))),
|
|
14509
14641
|
onApprove: this.callbacks.onEscalationApprove,
|
|
14510
14642
|
onReject: this.callbacks.onEscalationReject
|
|
14511
14643
|
};
|
|
@@ -14704,6 +14836,9 @@ var MessageSegmentAccumulator = class {
|
|
|
14704
14836
|
this.completeContextCompaction(segment.summary);
|
|
14705
14837
|
}
|
|
14706
14838
|
break;
|
|
14839
|
+
case "suggestions":
|
|
14840
|
+
this.segments.push(segment);
|
|
14841
|
+
break;
|
|
14707
14842
|
}
|
|
14708
14843
|
}
|
|
14709
14844
|
return this.getSegments();
|
|
@@ -15010,7 +15145,7 @@ function nullableText(value) {
|
|
|
15010
15145
|
}
|
|
15011
15146
|
function httpsUrl(value) {
|
|
15012
15147
|
const candidate = text(value);
|
|
15013
|
-
if (!candidate ||
|
|
15148
|
+
if (!candidate || _chunk7Z4EQOIXcjs.UNSAFE_URL_CHARS.test(candidate)) return void 0;
|
|
15014
15149
|
try {
|
|
15015
15150
|
return new URL(candidate).protocol === "https:" ? candidate : void 0;
|
|
15016
15151
|
} catch (e19) {
|
|
@@ -15027,7 +15162,7 @@ function youtubeVideoId(value) {
|
|
|
15027
15162
|
const hostname = parsed.hostname.toLowerCase();
|
|
15028
15163
|
const isYoutubeHost = hostname === "youtu.be" || hostname === "youtube.com" || hostname.endsWith(".youtube.com");
|
|
15029
15164
|
if (!isYoutubeHost) return void 0;
|
|
15030
|
-
const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access',
|
|
15165
|
+
const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _519 => _519.exec, 'call', _520 => _520(parsed.pathname), 'optionalAccess', _521 => _521[1]]);
|
|
15031
15166
|
const id = _nullishCoalesce(_nullishCoalesce(fromPath, () => ( parsed.searchParams.get("v"))), () => ( void 0));
|
|
15032
15167
|
return id && YOUTUBE_ID.test(id) ? id : void 0;
|
|
15033
15168
|
}
|
|
@@ -15146,11 +15281,11 @@ function cards(value, decodedSources) {
|
|
|
15146
15281
|
{
|
|
15147
15282
|
type,
|
|
15148
15283
|
id,
|
|
15149
|
-
title: _nullishCoalesce(_optionalChain([source, 'optionalAccess',
|
|
15150
|
-
url: _nullishCoalesce(_optionalChain([source, 'optionalAccess',
|
|
15151
|
-
..._optionalChain([source, 'optionalAccess',
|
|
15152
|
-
..._optionalChain([source, 'optionalAccess',
|
|
15153
|
-
..._optionalChain([source, 'optionalAccess',
|
|
15284
|
+
title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _522 => _522.name]), () => ( id)),
|
|
15285
|
+
url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _523 => _523.externalUrl]), () => ( null)),
|
|
15286
|
+
..._optionalChain([source, 'optionalAccess', _524 => _524.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
|
|
15287
|
+
..._optionalChain([source, 'optionalAccess', _525 => _525.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
|
|
15288
|
+
..._optionalChain([source, 'optionalAccess', _526 => _526.path]) ? { metadata: { path: source.path } } : {}
|
|
15154
15289
|
}
|
|
15155
15290
|
];
|
|
15156
15291
|
});
|
|
@@ -15186,11 +15321,11 @@ function attachmentsEvent(record) {
|
|
|
15186
15321
|
}
|
|
15187
15322
|
function mergeSourceMetadata(previous, event) {
|
|
15188
15323
|
const byIndex = /* @__PURE__ */ new Map();
|
|
15189
|
-
for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess',
|
|
15324
|
+
for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _527 => _527.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
|
|
15190
15325
|
if (!byIndex.has(source.index)) byIndex.set(source.index, source);
|
|
15191
15326
|
}
|
|
15192
15327
|
const byIdentity = /* @__PURE__ */ new Map();
|
|
15193
|
-
for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess',
|
|
15328
|
+
for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _528 => _528.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
|
|
15194
15329
|
const identity = `${ref.type}:${ref.id}`;
|
|
15195
15330
|
if (!byIdentity.has(identity)) byIdentity.set(identity, ref);
|
|
15196
15331
|
}
|
|
@@ -15300,7 +15435,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
15300
15435
|
let stateCache = null;
|
|
15301
15436
|
function invalidate() {
|
|
15302
15437
|
stateCache = null;
|
|
15303
|
-
_optionalChain([onChange, 'optionalCall',
|
|
15438
|
+
_optionalChain([onChange, 'optionalCall', _529 => _529()]);
|
|
15304
15439
|
}
|
|
15305
15440
|
function getState() {
|
|
15306
15441
|
if (!stateCache) {
|
|
@@ -15318,7 +15453,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
15318
15453
|
return stateCache;
|
|
15319
15454
|
}
|
|
15320
15455
|
function emit(name, ...args) {
|
|
15321
|
-
_optionalChain([onEffect, 'optionalCall',
|
|
15456
|
+
_optionalChain([onEffect, 'optionalCall', _530 => _530({ name, args })]);
|
|
15322
15457
|
}
|
|
15323
15458
|
function setMessagesInternal(next) {
|
|
15324
15459
|
if (next !== messages) {
|
|
@@ -15361,12 +15496,12 @@ function createChatStreamReducer(options = {}) {
|
|
|
15361
15496
|
return stampTrailingAssistantSourceMetadata(stampTrailingAssistantSeq(next, seq));
|
|
15362
15497
|
}
|
|
15363
15498
|
function applySegmentsToState(segments, meta) {
|
|
15364
|
-
const seq = _optionalChain([meta, 'optionalAccess',
|
|
15365
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
15499
|
+
const seq = _optionalChain([meta, 'optionalAccess', _531 => _531.streamSeq]);
|
|
15500
|
+
if (_optionalChain([meta, 'optionalAccess', _532 => _532.append]) && meta.isCompacting) {
|
|
15366
15501
|
setMessagesInternal(commitTrailingAssistant(upsertTrailingCompaction(messages, segments), seq));
|
|
15367
15502
|
return;
|
|
15368
15503
|
}
|
|
15369
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
15504
|
+
if (_optionalChain([meta, 'optionalAccess', _533 => _533.append])) {
|
|
15370
15505
|
setMessagesInternal(commitTrailingAssistant(appendToTrailingAssistant(messages, segments), seq));
|
|
15371
15506
|
return;
|
|
15372
15507
|
}
|
|
@@ -15378,7 +15513,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
15378
15513
|
adoptTrailingAssistant = false;
|
|
15379
15514
|
const last = messages[messages.length - 1];
|
|
15380
15515
|
if (!last || last.role !== "assistant" || adoptTail) return;
|
|
15381
|
-
const hasContent = (_nullishCoalesce(_optionalChain([last, 'access',
|
|
15516
|
+
const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _534 => _534.segments, 'optionalAccess', _535 => _535.length]), () => ( 0))) > 0 || last.content !== "";
|
|
15382
15517
|
if (!hasContent) return;
|
|
15383
15518
|
setMessagesInternal([...messages, { id: nextId("assistant"), role: "assistant", content: "", segments: [] }]);
|
|
15384
15519
|
}
|
|
@@ -15597,13 +15732,13 @@ function createChatStreamReducer(options = {}) {
|
|
|
15597
15732
|
const summary = required ? _chunkLVO7FALWcjs.getCommandText.call(void 0, required) : `Batch of ${toolCalls.length} tool calls`;
|
|
15598
15733
|
pendingEscalated.set(requestId, {
|
|
15599
15734
|
command: summary,
|
|
15600
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
15735
|
+
explanation: _optionalChain([required, 'optionalAccess', _536 => _536.toolExplanation]),
|
|
15601
15736
|
approvalType,
|
|
15602
15737
|
toolCalls
|
|
15603
15738
|
});
|
|
15604
15739
|
emit("onEscalatedApproval", requestId, {
|
|
15605
15740
|
command: summary,
|
|
15606
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
15741
|
+
explanation: _optionalChain([required, 'optionalAccess', _537 => _537.toolExplanation]),
|
|
15607
15742
|
approvalType
|
|
15608
15743
|
});
|
|
15609
15744
|
break;
|
|
@@ -15991,7 +16126,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
15991
16126
|
const resolveBatch = (status, confirm) => async () => {
|
|
15992
16127
|
setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
|
|
15993
16128
|
for (const id of ids) {
|
|
15994
|
-
const ok = await _optionalChain([confirm, 'optionalCall',
|
|
16129
|
+
const ok = await _optionalChain([confirm, 'optionalCall', _538 => _538(id)]);
|
|
15995
16130
|
if (ok === false) {
|
|
15996
16131
|
setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
|
|
15997
16132
|
}
|
|
@@ -16127,8 +16262,8 @@ function createChatStreamReducer(options = {}) {
|
|
|
16127
16262
|
}
|
|
16128
16263
|
}
|
|
16129
16264
|
}
|
|
16130
|
-
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess',
|
|
16131
|
-
if (_optionalChain([extras, 'optionalAccess',
|
|
16265
|
+
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _539 => _539.resumed]), () => ( messages.length > 0)));
|
|
16266
|
+
if (_optionalChain([extras, 'optionalAccess', _540 => _540.agentBusy])) agentBusyState();
|
|
16132
16267
|
invalidate();
|
|
16133
16268
|
}
|
|
16134
16269
|
return {
|
|
@@ -16215,7 +16350,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
16215
16350
|
},
|
|
16216
16351
|
endSseTurn() {
|
|
16217
16352
|
const last = messages[messages.length - 1];
|
|
16218
|
-
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access',
|
|
16353
|
+
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _541 => _541.segments, 'optionalAccess', _542 => _542.length]), () => ( 0))) === 0 && last.content === "") {
|
|
16219
16354
|
messages = messages.slice(0, -1);
|
|
16220
16355
|
}
|
|
16221
16356
|
sseCurrentText = "";
|
|
@@ -16369,10 +16504,10 @@ function createChatDialogStore(options = {}) {
|
|
|
16369
16504
|
if (onEvict) {
|
|
16370
16505
|
const sep = key.indexOf(KEY_SEP);
|
|
16371
16506
|
onEvict(key.slice(0, sep), key.slice(sep + 1), {
|
|
16372
|
-
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
16373
|
-
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
16374
|
-
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
16375
|
-
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
16507
|
+
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _543 => _543.state, 'access', _544 => _544.messages]), () => ( EMPTY_STATE.messages)),
|
|
16508
|
+
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _545 => _545.state, 'access', _546 => _546.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
|
|
16509
|
+
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _547 => _547.getLastAppliedSeq, 'call', _548 => _548()]), () => ( Number.NEGATIVE_INFINITY)),
|
|
16510
|
+
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _549 => _549.getPendingEchoes, 'call', _550 => _550()]), () => ( EMPTY_PENDING_ECHOES))
|
|
16376
16511
|
});
|
|
16377
16512
|
}
|
|
16378
16513
|
}
|
|
@@ -16382,12 +16517,12 @@ function createChatDialogStore(options = {}) {
|
|
|
16382
16517
|
const key = keyOf(dialogId, side);
|
|
16383
16518
|
let reducer = reducers.get(key);
|
|
16384
16519
|
if (!reducer) {
|
|
16385
|
-
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall',
|
|
16520
|
+
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _551 => _551(dialogId, side)]), () => ( {}));
|
|
16386
16521
|
const userOnChange = base.onChange;
|
|
16387
16522
|
reducer = createChatStreamReducer({
|
|
16388
16523
|
...base,
|
|
16389
16524
|
onChange: () => {
|
|
16390
|
-
_optionalChain([userOnChange, 'optionalCall',
|
|
16525
|
+
_optionalChain([userOnChange, 'optionalCall', _552 => _552()]);
|
|
16391
16526
|
notify();
|
|
16392
16527
|
}
|
|
16393
16528
|
});
|
|
@@ -16432,7 +16567,7 @@ function createChatDialogStore(options = {}) {
|
|
|
16432
16567
|
};
|
|
16433
16568
|
}
|
|
16434
16569
|
function getSnapshot2(dialogId, side = DEFAULT_DIALOG_SIDE) {
|
|
16435
|
-
return _nullishCoalesce(_optionalChain([reducers, 'access',
|
|
16570
|
+
return _nullishCoalesce(_optionalChain([reducers, 'access', _553 => _553.get, 'call', _554 => _554(keyOf(dialogId, side)), 'optionalAccess', _555 => _555.state]), () => ( EMPTY_STATE));
|
|
16436
16571
|
}
|
|
16437
16572
|
function getServerSnapshot2() {
|
|
16438
16573
|
return EMPTY_STATE;
|
|
@@ -16521,7 +16656,7 @@ function createDeltaBatcher({
|
|
|
16521
16656
|
pending = [];
|
|
16522
16657
|
const key = pendingKey;
|
|
16523
16658
|
for (const delta of batch) applyOne(delta, key);
|
|
16524
|
-
_optionalChain([onFlushed, 'optionalCall',
|
|
16659
|
+
_optionalChain([onFlushed, 'optionalCall', _556 => _556(batch.length)]);
|
|
16525
16660
|
}
|
|
16526
16661
|
function schedule() {
|
|
16527
16662
|
if (raf !== null || timer !== null) return;
|
|
@@ -16545,7 +16680,7 @@ function createDeltaBatcher({
|
|
|
16545
16680
|
}
|
|
16546
16681
|
if (!isDeltaEvent(event)) return false;
|
|
16547
16682
|
const tail = pending[pending.length - 1];
|
|
16548
|
-
const seqAdvances = _optionalChain([tail, 'optionalAccess',
|
|
16683
|
+
const seqAdvances = _optionalChain([tail, 'optionalAccess', _557 => _557.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
|
|
16549
16684
|
if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
|
|
16550
16685
|
pending[pending.length - 1] = {
|
|
16551
16686
|
...tail,
|
|
@@ -16577,7 +16712,7 @@ function useChatStreamReducer({
|
|
|
16577
16712
|
side = DEFAULT_DIALOG_SIDE,
|
|
16578
16713
|
createReducerOptions
|
|
16579
16714
|
}) {
|
|
16580
|
-
const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall',
|
|
16715
|
+
const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _558 => _558()]), () => ( {})));
|
|
16581
16716
|
const getSnapshot2 = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
|
|
16582
16717
|
const getServerSnapshot2 = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
|
|
16583
16718
|
const subscribe2 = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
|
|
@@ -16622,7 +16757,7 @@ function buildConfirmToolBody(request) {
|
|
|
16622
16757
|
async function readServerErrorMessage(response) {
|
|
16623
16758
|
try {
|
|
16624
16759
|
const body = await response.json();
|
|
16625
|
-
if (typeof _optionalChain([body, 'optionalAccess',
|
|
16760
|
+
if (typeof _optionalChain([body, 'optionalAccess', _559 => _559.error]) === "string" && body.error.length > 0) return body.error;
|
|
16626
16761
|
} catch (e20) {
|
|
16627
16762
|
}
|
|
16628
16763
|
return null;
|
|
@@ -16785,7 +16920,7 @@ function useManagedDialogList({
|
|
|
16785
16920
|
try {
|
|
16786
16921
|
await deleteDialogCallback(id);
|
|
16787
16922
|
removeLocal(id);
|
|
16788
|
-
_optionalChain([onDialogRemovedRef, 'access',
|
|
16923
|
+
_optionalChain([onDialogRemovedRef, 'access', _560 => _560.current, 'optionalCall', _561 => _561(id, "deleted")]);
|
|
16789
16924
|
} catch (err) {
|
|
16790
16925
|
console.error(`${logTag} deleteDialog failed:`, err);
|
|
16791
16926
|
throw err;
|
|
@@ -16796,7 +16931,7 @@ function useManagedDialogList({
|
|
|
16796
16931
|
const renameDialog = _react.useCallback.call(void 0,
|
|
16797
16932
|
async (id, title) => {
|
|
16798
16933
|
if (!renameDialogCallback) return;
|
|
16799
|
-
const previous = _optionalChain([dialogsRef, 'access',
|
|
16934
|
+
const previous = _optionalChain([dialogsRef, 'access', _562 => _562.current, 'access', _563 => _563.find, 'call', _564 => _564((d) => d.id === id), 'optionalAccess', _565 => _565.title]);
|
|
16800
16935
|
setDialogs((prev) => prev.map((d) => d.id === id ? { ...d, title } : d));
|
|
16801
16936
|
try {
|
|
16802
16937
|
await renameDialogCallback(id, title);
|
|
@@ -16815,7 +16950,7 @@ function useManagedDialogList({
|
|
|
16815
16950
|
try {
|
|
16816
16951
|
await archiveDialogCallback(id);
|
|
16817
16952
|
removeLocal(id);
|
|
16818
|
-
_optionalChain([onDialogRemovedRef, 'access',
|
|
16953
|
+
_optionalChain([onDialogRemovedRef, 'access', _566 => _566.current, 'optionalCall', _567 => _567(id, "archived")]);
|
|
16819
16954
|
} catch (err) {
|
|
16820
16955
|
console.error(`${logTag} archiveDialog failed:`, err);
|
|
16821
16956
|
throw err;
|
|
@@ -16883,7 +17018,7 @@ var STORAGE_KEY = "conversation";
|
|
|
16883
17018
|
var namespaceFor = (source) => {
|
|
16884
17019
|
const base = `mingo-chat-${source}`;
|
|
16885
17020
|
const auth = _chunkDGFDBPO7cjs.getEmbedProxyAuth.call(void 0, );
|
|
16886
|
-
return _optionalChain([auth, 'optionalAccess',
|
|
17021
|
+
return _optionalChain([auth, 'optionalAccess', _568 => _568.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
|
|
16887
17022
|
};
|
|
16888
17023
|
function createChatConversationStorage(source) {
|
|
16889
17024
|
return _chunkDGFDBPO7cjs.createLocalStorageAdapter.call(void 0, {
|
|
@@ -16956,7 +17091,7 @@ function useChatHistoryHydration({
|
|
|
16956
17091
|
if (cancelled) return;
|
|
16957
17092
|
if (rows.length === 0) {
|
|
16958
17093
|
const found = isRecord(body) ? body.found : void 0;
|
|
16959
|
-
if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall',
|
|
17094
|
+
if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _569 => _569(conversationId)]);
|
|
16960
17095
|
return;
|
|
16961
17096
|
}
|
|
16962
17097
|
const hydrated = [];
|
|
@@ -17033,7 +17168,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17033
17168
|
const { active = true } = runtimeOptions;
|
|
17034
17169
|
const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
|
|
17035
17170
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
17036
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
17171
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _570 => _570.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
17037
17172
|
const sendMessageRef = _react.useRef.call(void 0,
|
|
17038
17173
|
() => Promise.resolve(true)
|
|
17039
17174
|
);
|
|
@@ -17069,7 +17204,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17069
17204
|
if (!restoredConversationRef.current) {
|
|
17070
17205
|
restoredConversationRef.current = true;
|
|
17071
17206
|
pruneStaleChatConversationStorage(source);
|
|
17072
|
-
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access',
|
|
17207
|
+
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _571 => _571.load, 'call', _572 => _572(), 'optionalAccess', _573 => _573.conversationId]), () => ( null));
|
|
17073
17208
|
}
|
|
17074
17209
|
const [conversationId, setConversationId] = _react.useState.call(void 0, () => conversationIdRef.current);
|
|
17075
17210
|
const commitConversationId = _react.useCallback.call(void 0,
|
|
@@ -17160,7 +17295,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17160
17295
|
const abortControllerRef = _react.useRef.call(void 0, null);
|
|
17161
17296
|
const switchConversation = _react.useCallback.call(void 0,
|
|
17162
17297
|
(id) => {
|
|
17163
|
-
_optionalChain([abortControllerRef, 'access',
|
|
17298
|
+
_optionalChain([abortControllerRef, 'access', _574 => _574.current, 'optionalAccess', _575 => _575.abort, 'call', _576 => _576()]);
|
|
17164
17299
|
flushDeltas();
|
|
17165
17300
|
mutate((r) => r.reset());
|
|
17166
17301
|
hydrationSendCountRef.current = 0;
|
|
@@ -17197,8 +17332,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17197
17332
|
} = useManagedDialogList({
|
|
17198
17333
|
autoLoad: active,
|
|
17199
17334
|
fetchDialogs: fetchActiveDialogs,
|
|
17200
|
-
renameDialog: _optionalChain([conversationsApi, 'optionalAccess',
|
|
17201
|
-
archiveDialog: _optionalChain([conversationsApi, 'optionalAccess',
|
|
17335
|
+
renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _577 => _577.renameDialog]),
|
|
17336
|
+
archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _578 => _578.archiveDialog]),
|
|
17202
17337
|
pageSize: 20,
|
|
17203
17338
|
search: conversationsApi ? dialogSearch : void 0,
|
|
17204
17339
|
logTag: "[useSseChatAdapter]",
|
|
@@ -17262,7 +17397,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17262
17397
|
const serverMessage = await readServerErrorMessage(response);
|
|
17263
17398
|
throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
|
|
17264
17399
|
}
|
|
17265
|
-
const reader = _optionalChain([response, 'access',
|
|
17400
|
+
const reader = _optionalChain([response, 'access', _579 => _579.body, 'optionalAccess', _580 => _580.getReader, 'call', _581 => _581()]);
|
|
17266
17401
|
if (!reader) throw new Error("No response body");
|
|
17267
17402
|
const frameDecoder = createSseFrameDecoder();
|
|
17268
17403
|
let finished = false;
|
|
@@ -17291,7 +17426,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17291
17426
|
}
|
|
17292
17427
|
return true;
|
|
17293
17428
|
} catch (err) {
|
|
17294
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
17429
|
+
if (_optionalChain([err, 'optionalAccess', _582 => _582.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
17295
17430
|
return true;
|
|
17296
17431
|
}
|
|
17297
17432
|
flushDeltas();
|
|
@@ -17327,7 +17462,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17327
17462
|
);
|
|
17328
17463
|
sendMessageRef.current = sendMessage;
|
|
17329
17464
|
const stopMessage = _react.useCallback.call(void 0, () => {
|
|
17330
|
-
_optionalChain([abortControllerRef, 'access',
|
|
17465
|
+
_optionalChain([abortControllerRef, 'access', _583 => _583.current, 'optionalAccess', _584 => _584.abort, 'call', _585 => _585()]);
|
|
17331
17466
|
flushDeltas();
|
|
17332
17467
|
mutate((r) => r.setPhase("idle"));
|
|
17333
17468
|
}, [mutate, flushDeltas]);
|
|
@@ -17363,7 +17498,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17363
17498
|
let sendIdx = -1;
|
|
17364
17499
|
return state.messages.map((m) => {
|
|
17365
17500
|
const segments = m.segments;
|
|
17366
|
-
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess',
|
|
17501
|
+
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _586 => _586.filter, 'call', _587 => _587((s) => s.type === "text"), 'access', _588 => _588.map, 'call', _589 => _589((s) => s.text), 'access', _590 => _590.join, 'call', _591 => _591("")]), () => ( ""));
|
|
17367
17502
|
let sources2;
|
|
17368
17503
|
let scrollAnchor;
|
|
17369
17504
|
if (m.role === "user" && !m.hidden) {
|
|
@@ -17372,7 +17507,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17372
17507
|
if (m.role === "assistant") {
|
|
17373
17508
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
17374
17509
|
sources2 = sourcesMap.get(lookupIdx);
|
|
17375
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access',
|
|
17510
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _592 => _592.get, 'call', _593 => _593(lookupIdx), 'optionalAccess', _594 => _594.scrollAnchor]), () => ( void 0));
|
|
17376
17511
|
}
|
|
17377
17512
|
return {
|
|
17378
17513
|
id: m.id,
|
|
@@ -17399,7 +17534,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17399
17534
|
);
|
|
17400
17535
|
return;
|
|
17401
17536
|
}
|
|
17402
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
17537
|
+
const refSlug = typeof _optionalChain([reference, 'access', _595 => _595.metadata, 'optionalAccess', _596 => _596.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
17403
17538
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
17404
17539
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
17405
17540
|
const text2 = `/${cmdId} display "${escaped}"`;
|
|
@@ -17447,18 +17582,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
17447
17582
|
/** True while the mount-time rebuild from the server transcript runs. */
|
|
17448
17583
|
isHydratingHistory,
|
|
17449
17584
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
17450
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
17451
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
17452
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
17585
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _597 => _597.provider]), () => ( null)),
|
|
17586
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _598 => _598.modelLabel]), () => ( null)),
|
|
17587
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _599 => _599.contextWindowMaxTokens]), () => ( null)),
|
|
17453
17588
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
17454
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
17589
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _600 => _600.inputTokens]), () => ( null)),
|
|
17455
17590
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
17456
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
17591
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _601 => _601.outputTokens]), () => ( null)),
|
|
17457
17592
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
17458
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
17593
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _602 => _602.cacheHitRatePct]), () => ( null)),
|
|
17459
17594
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
17460
17595
|
* token counts). null until the trailing usage frame lands. */
|
|
17461
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
17596
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _603 => _603.breakdown]), () => ( null)),
|
|
17462
17597
|
// ─── Dialog management ───────────────────────────────────────────────
|
|
17463
17598
|
// With `chatConversationsUrl` the server transcript store IS the dialog
|
|
17464
17599
|
// list (shared `useManagedDialogList`); selecting a row re-hydrates through
|
|
@@ -17532,7 +17667,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
17532
17667
|
}
|
|
17533
17668
|
break;
|
|
17534
17669
|
case "approval_batch": {
|
|
17535
|
-
const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access',
|
|
17670
|
+
const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _604 => _604.data, 'access', _605 => _605.executions, 'optionalAccess', _606 => _606[c.toolExecutionRequestId], 'optionalAccess', _607 => _607.status]) === "done");
|
|
17536
17671
|
if (segment.status !== "rejected" && !allDone) {
|
|
17537
17672
|
hasIncompleteState = true;
|
|
17538
17673
|
}
|
|
@@ -17567,12 +17702,14 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
17567
17702
|
// outside MESSAGE_START/END — there is no agent turn to continue.
|
|
17568
17703
|
// - `error` ended the turn; resuming it would re-open a bubble the
|
|
17569
17704
|
// backend has already abandoned.
|
|
17705
|
+
// - `suggestions` is built locally by the host and never comes from a turn.
|
|
17570
17706
|
case "text":
|
|
17571
17707
|
case "thinking":
|
|
17572
17708
|
case "ask":
|
|
17573
17709
|
case "ticket_escalated":
|
|
17574
17710
|
case "ticket_event":
|
|
17575
17711
|
case "error":
|
|
17712
|
+
case "suggestions":
|
|
17576
17713
|
break;
|
|
17577
17714
|
default: {
|
|
17578
17715
|
const _exhaustive = segment;
|
|
@@ -17594,11 +17731,11 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
17594
17731
|
function extractIncompleteTailState(messages) {
|
|
17595
17732
|
if (!messages || messages.length === 0) return void 0;
|
|
17596
17733
|
let start = messages.length;
|
|
17597
|
-
while (start > 0 && _optionalChain([messages, 'access',
|
|
17734
|
+
while (start > 0 && _optionalChain([messages, 'access', _608 => _608[start - 1], 'optionalAccess', _609 => _609.role]) === "assistant") start -= 1;
|
|
17598
17735
|
if (start === messages.length) return void 0;
|
|
17599
17736
|
const segments = [];
|
|
17600
17737
|
for (let i = start; i < messages.length; i += 1) {
|
|
17601
|
-
const content = _optionalChain([messages, 'access',
|
|
17738
|
+
const content = _optionalChain([messages, 'access', _610 => _610[i], 'optionalAccess', _611 => _611.content]);
|
|
17602
17739
|
if (Array.isArray(content)) segments.push(...content);
|
|
17603
17740
|
}
|
|
17604
17741
|
if (segments.length === 0) return void 0;
|
|
@@ -17829,7 +17966,7 @@ function decodeNatsChunk(chunk) {
|
|
|
17829
17966
|
userId: typeof data.userId === "string" ? data.userId : void 0,
|
|
17830
17967
|
// Wire shape carries no label; fall back to the id (parity with
|
|
17831
17968
|
// the history path in `process-historical-messages.ts`).
|
|
17832
|
-
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess',
|
|
17969
|
+
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _612 => _612.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _613 => _613.id]) === "string").map((it) => ({
|
|
17833
17970
|
type: it.type,
|
|
17834
17971
|
id: it.id,
|
|
17835
17972
|
label: it.id
|
|
@@ -17881,15 +18018,15 @@ function decodeNatsChunk(chunk) {
|
|
|
17881
18018
|
|
|
17882
18019
|
// src/components/chat/utils/process-historical-messages.ts
|
|
17883
18020
|
function getOwnerDisplayName(owner) {
|
|
17884
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
18021
|
+
if (_optionalChain([owner, 'optionalAccess', _614 => _614.type]) === _chunkYRULLK7Ncjs.OWNER_TYPE.ADMIN && owner.user) {
|
|
17885
18022
|
const { firstName, lastName } = owner.user;
|
|
17886
18023
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
17887
18024
|
if (name) return name;
|
|
17888
18025
|
}
|
|
17889
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
18026
|
+
return _optionalChain([owner, 'optionalAccess', _615 => _615.type]) === _chunkYRULLK7Ncjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
17890
18027
|
}
|
|
17891
18028
|
function getOwnerAvatar(owner) {
|
|
17892
|
-
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess',
|
|
18029
|
+
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _616 => _616.user, 'optionalAccess', _617 => _617.image, 'optionalAccess', _618 => _618.imageUrl]), () => ( void 0));
|
|
17893
18030
|
}
|
|
17894
18031
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
17895
18032
|
messageDataArray.forEach((data) => {
|
|
@@ -18081,7 +18218,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
18081
18218
|
event.offerId,
|
|
18082
18219
|
event.text,
|
|
18083
18220
|
event.origin,
|
|
18084
|
-
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess',
|
|
18221
|
+
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _619 => _619[event.offerId]]), () => ( "pending"))
|
|
18085
18222
|
);
|
|
18086
18223
|
break;
|
|
18087
18224
|
case "ticket-escalated":
|
|
@@ -18115,7 +18252,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
18115
18252
|
);
|
|
18116
18253
|
break;
|
|
18117
18254
|
case "escalation-offer-resolved":
|
|
18118
|
-
_optionalChain([offerResolutions, 'optionalAccess',
|
|
18255
|
+
_optionalChain([offerResolutions, 'optionalAccess', _620 => _620.set, 'call', _621 => _621(event.offerId, {
|
|
18119
18256
|
status: event.status,
|
|
18120
18257
|
resolvedByName: event.resolvedByName
|
|
18121
18258
|
})]);
|
|
@@ -18179,7 +18316,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
18179
18316
|
}
|
|
18180
18317
|
}
|
|
18181
18318
|
} else {
|
|
18182
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
18319
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _622 => _622.set, 'call', _623 => _623(event.requestId, {
|
|
18183
18320
|
command: event.command || "",
|
|
18184
18321
|
explanation: event.explanation,
|
|
18185
18322
|
approvalType,
|
|
@@ -18194,8 +18331,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
18194
18331
|
const existingStatus = approvalStatuses[requestId];
|
|
18195
18332
|
const status = existingStatus || event.status;
|
|
18196
18333
|
const resolvedByName = event.resolvedByName;
|
|
18197
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
18198
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
18334
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _624 => _624.get, 'call', _625 => _625(requestId)]);
|
|
18335
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _626 => _626.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
18199
18336
|
if (batchApprovalsEnabled) {
|
|
18200
18337
|
accumulator.addApprovalBatch(
|
|
18201
18338
|
requestId,
|
|
@@ -18217,7 +18354,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
18217
18354
|
);
|
|
18218
18355
|
}
|
|
18219
18356
|
}
|
|
18220
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
18357
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _627 => _627.delete, 'call', _628 => _628(requestId)]);
|
|
18221
18358
|
break;
|
|
18222
18359
|
}
|
|
18223
18360
|
if (escalatedData) {
|
|
@@ -18226,7 +18363,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
18226
18363
|
explanation: escalatedData.explanation,
|
|
18227
18364
|
approvalType: escalatedData.approvalType
|
|
18228
18365
|
});
|
|
18229
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
18366
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _629 => _629.delete, 'call', _630 => _630(requestId)]);
|
|
18230
18367
|
}
|
|
18231
18368
|
const before = accumulator.getSegments();
|
|
18232
18369
|
const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
|
|
@@ -18318,14 +18455,14 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
18318
18455
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
18319
18456
|
return;
|
|
18320
18457
|
}
|
|
18321
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
18458
|
+
const isUserMessage = _optionalChain([msg, 'access', _631 => _631.owner, 'optionalAccess', _632 => _632.type]) === _chunkYRULLK7Ncjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _633 => _633.owner, 'optionalAccess', _634 => _634.type]) === _chunkYRULLK7Ncjs.OWNER_TYPE.ADMIN;
|
|
18322
18459
|
if (isUserMessage) {
|
|
18323
18460
|
flushAssistantMessage();
|
|
18324
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
18461
|
+
const userAuthorType = _optionalChain([msg, 'access', _635 => _635.owner, 'optionalAccess', _636 => _636.type]) === _chunkYRULLK7Ncjs.OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
18325
18462
|
messageDataArray.forEach((data) => {
|
|
18326
18463
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
18327
18464
|
const rawContext = data.contextItems;
|
|
18328
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
18465
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _637 => _637.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _638 => _638.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
18329
18466
|
processedMessages.push({
|
|
18330
18467
|
id: msg.id,
|
|
18331
18468
|
role: "user",
|
|
@@ -18372,7 +18509,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
18372
18509
|
});
|
|
18373
18510
|
const nextMsg = messages[index + 1];
|
|
18374
18511
|
const isLastMessage = index === messages.length - 1;
|
|
18375
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
18512
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _639 => _639.owner, 'optionalAccess', _640 => _640.type]) === _chunkYRULLK7Ncjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _641 => _641.owner, 'optionalAccess', _642 => _642.type]) === _chunkYRULLK7Ncjs.OWNER_TYPE.ADMIN);
|
|
18376
18513
|
if (isLastMessage || nextIsFromUser) {
|
|
18377
18514
|
flushAssistantMessage();
|
|
18378
18515
|
}
|
|
@@ -18756,7 +18893,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
18756
18893
|
const connectionState = !active || !dialogId ? "connected" : connectedForDialog === dialogId ? "connected" : "connecting";
|
|
18757
18894
|
const sendMessage = _react.useCallback.call(void 0,
|
|
18758
18895
|
async (text2, sendOptions) => {
|
|
18759
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
18896
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _643 => _643.hidden]), () => ( false));
|
|
18760
18897
|
mutate((r) => r.pushOptimisticSend(text2, hidden));
|
|
18761
18898
|
await publishUserMessage(text2, { hidden, dialogId });
|
|
18762
18899
|
},
|
|
@@ -18849,11 +18986,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
18849
18986
|
// Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
|
|
18850
18987
|
// contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
|
|
18851
18988
|
// matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
|
|
18852
|
-
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
18853
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
18854
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
18855
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
18856
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
18989
|
+
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _644 => _644.provider]), () => ( modelProvider)), () => ( null)),
|
|
18990
|
+
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _645 => _645.modelLabel]), () => ( modelLabel)), () => ( null)),
|
|
18991
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _646 => _646.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _647 => _647.contextWindowMaxTokens]))), () => ( null)),
|
|
18992
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _648 => _648.inputTokensSize]), () => ( null)),
|
|
18993
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _649 => _649.outputTokensSize]), () => ( null)),
|
|
18857
18994
|
currentCacheHitRatePct: null,
|
|
18858
18995
|
currentUsageBreakdown: null,
|
|
18859
18996
|
// Dialog management
|
|
@@ -18975,7 +19112,7 @@ function useUnifiedChat(options) {
|
|
|
18975
19112
|
[]
|
|
18976
19113
|
);
|
|
18977
19114
|
const displayRefForward = _react.useCallback.call(void 0,
|
|
18978
|
-
(ref) => _optionalChain([activeStateRef, 'access',
|
|
19115
|
+
(ref) => _optionalChain([activeStateRef, 'access', _650 => _650.current, 'access', _651 => _651.displayRef, 'optionalCall', _652 => _652(ref)]),
|
|
18979
19116
|
[]
|
|
18980
19117
|
);
|
|
18981
19118
|
const displayRef = activeState.displayRef ? displayRefForward : void 0;
|
|
@@ -18985,7 +19122,7 @@ function useUnifiedChat(options) {
|
|
|
18985
19122
|
const renameDialog = _react.useCallback.call(void 0, (id, title) => activeStateRef.current.renameDialog(id, title), []);
|
|
18986
19123
|
const archiveDialog = _react.useCallback.call(void 0, (id) => activeStateRef.current.archiveDialog(id), []);
|
|
18987
19124
|
const loadMoreDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreDialogs(), []);
|
|
18988
|
-
const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access',
|
|
19125
|
+
const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _653 => _653.current, 'access', _654 => _654.setDialogScope, 'optionalCall', _655 => _655(scope)]), []);
|
|
18989
19126
|
const reloadDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.reloadDialogs(), []);
|
|
18990
19127
|
const loadMoreMessages = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreMessages(), []);
|
|
18991
19128
|
const approveRequest = _react.useCallback.call(void 0, (requestId) => activeStateRef.current.approveRequest(requestId), []);
|
|
@@ -19359,4 +19496,8 @@ var MINGO_V2_SPLIT_WIDTH = MINGO_V2_RAIL_WIDTH + CHAT_BLOCK_MIN_WIDTH;
|
|
|
19359
19496
|
|
|
19360
19497
|
|
|
19361
19498
|
|
|
19362
|
-
exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.AUTHORED_LINK_REL_TOKENS = AUTHORED_LINK_REL_TOKENS; exports.authoredRelTokens = authoredRelTokens; exports.isNofollowRel = isNofollowRel; exports.renderedLinkRel = renderedLinkRel; exports.findMarkdownLinkAt = findMarkdownLinkAt; exports.formatMarkdownLink = formatMarkdownLink; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.ASK_AI_OPEN_WITH_REF_EVENT = ASK_AI_OPEN_WITH_REF_EVENT; exports.ASK_AI_OPEN_EVENTS = ASK_AI_OPEN_EVENTS; exports.holdAskAiOpens = holdAskAiOpens; exports.chatListensForAskAiOpens = chatListensForAskAiOpens; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.byKey = byKey; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.chatDialogMenuItems = chatDialogMenuItems; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.ChatPanelContext = ChatPanelContext; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.MingoInfoCardActionProvider = MingoInfoCardActionProvider; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.sourceRowCtxFromRuntime = sourceRowCtxFromRuntime; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.chatProgressLabel = chatProgressLabel; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.chatChipClass = chatChipClass; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.CHAT_BLOCK_MIN_WIDTH = CHAT_BLOCK_MIN_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH;
|
|
19499
|
+
|
|
19500
|
+
|
|
19501
|
+
|
|
19502
|
+
|
|
19503
|
+
exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.AUTHORED_LINK_REL_TOKENS = AUTHORED_LINK_REL_TOKENS; exports.authoredRelTokens = authoredRelTokens; exports.isNofollowRel = isNofollowRel; exports.renderedLinkRel = renderedLinkRel; exports.findMarkdownLinkAt = findMarkdownLinkAt; exports.formatMarkdownLink = formatMarkdownLink; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.ASK_AI_OPEN_WITH_REF_EVENT = ASK_AI_OPEN_WITH_REF_EVENT; exports.ASK_AI_OPEN_EVENTS = ASK_AI_OPEN_EVENTS; exports.holdAskAiOpens = holdAskAiOpens; exports.chatListensForAskAiOpens = chatListensForAskAiOpens; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ChatPanelContext = ChatPanelContext; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.SuggestionsDisplay = SuggestionsDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.byKey = byKey; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.chatDialogMenuItems = chatDialogMenuItems; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.MingoInfoCardActionProvider = MingoInfoCardActionProvider; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.sourceRowCtxFromRuntime = sourceRowCtxFromRuntime; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useWhatToAsk = useWhatToAsk; exports.awaitsDecision = awaitsDecision; exports.mergeByTime = mergeByTime; exports.chatProgressLabel = chatProgressLabel; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.chatChipClass = chatChipClass; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.CHAT_BLOCK_MIN_WIDTH = CHAT_BLOCK_MIN_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH;
|