@portablecore/chat 0.2.10 → 0.2.12
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/components/provider-selector.d.ts +21 -0
- package/dist/components/provider-selector.d.ts.map +1 -0
- package/dist/components/provider-selector.js +80 -0
- package/dist/components/provider-selector.js.map +1 -0
- package/dist/hooks/use-provider-selection.d.ts +21 -0
- package/dist/hooks/use-provider-selection.d.ts.map +1 -0
- package/dist/hooks/use-provider-selection.js +30 -0
- package/dist/hooks/use-provider-selection.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ProviderOption } from "../types.js";
|
|
2
|
+
interface ProviderSelectorProps {
|
|
3
|
+
providers: ProviderOption[];
|
|
4
|
+
value: string;
|
|
5
|
+
onChange: (slug: string) => void;
|
|
6
|
+
/** When provided, shows a secondary row for image provider */
|
|
7
|
+
imageProviders?: ProviderOption[];
|
|
8
|
+
imageValue?: string | null;
|
|
9
|
+
onImageChange?: (slug: string) => void;
|
|
10
|
+
size?: "sm" | "md";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Compact provider selector rendered as a pill of icon buttons.
|
|
14
|
+
* Designed to sit in the inputSuffix slot next to the send button.
|
|
15
|
+
*
|
|
16
|
+
* When clicked, the current provider cycles to the next available one.
|
|
17
|
+
* When long-pressed or right-clicked, opens a popover showing all options.
|
|
18
|
+
*/
|
|
19
|
+
export declare function ProviderSelector({ providers, value, onChange, imageProviders, imageValue, onImageChange, size, }: ProviderSelectorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=provider-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-selector.d.ts","sourceRoot":"","sources":["../../src/components/provider-selector.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,UAAU,qBAAqB;IAC7B,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,8DAA8D;IAC9D,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACnB;AAwCD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,IAAW,GACZ,EAAE,qBAAqB,kDAwIvB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ProviderSelector = ProviderSelector;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
function ProviderLogo({ provider, size, selected, disabled, }) {
|
|
8
|
+
if (provider.logoUrl) {
|
|
9
|
+
return ((0, jsx_runtime_1.jsx)("img", { src: provider.logoUrl, alt: provider.name, className: `object-contain rounded ${!selected && !disabled ? "opacity-50 grayscale" : ""}`, style: { width: size, height: size } }));
|
|
10
|
+
}
|
|
11
|
+
return ((0, jsx_runtime_1.jsx)("span", { className: `flex items-center justify-center rounded font-semibold ${selected
|
|
12
|
+
? "text-slate-700 dark:text-slate-200 bg-slate-100 dark:bg-slate-700"
|
|
13
|
+
: "text-slate-400 dark:text-slate-500"}`, style: { width: size, height: size, fontSize: size * 0.55 }, children: provider.name.charAt(0) }));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Compact provider selector rendered as a pill of icon buttons.
|
|
17
|
+
* Designed to sit in the inputSuffix slot next to the send button.
|
|
18
|
+
*
|
|
19
|
+
* When clicked, the current provider cycles to the next available one.
|
|
20
|
+
* When long-pressed or right-clicked, opens a popover showing all options.
|
|
21
|
+
*/
|
|
22
|
+
function ProviderSelector({ providers, value, onChange, imageProviders, imageValue, onImageChange, size = "md", }) {
|
|
23
|
+
const [popoverOpen, setPopoverOpen] = (0, react_1.useState)(false);
|
|
24
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
25
|
+
const iconSize = size === "sm" ? 16 : 20;
|
|
26
|
+
const buttonPx = size === "sm" ? "w-7 h-7" : "w-8 h-8";
|
|
27
|
+
const available = providers.filter((p) => p.available !== false);
|
|
28
|
+
const current = providers.find((p) => p.slug === value) || providers[0];
|
|
29
|
+
const cycleNext = (0, react_1.useCallback)(() => {
|
|
30
|
+
if (available.length <= 1)
|
|
31
|
+
return;
|
|
32
|
+
const idx = available.findIndex((p) => p.slug === value);
|
|
33
|
+
const next = available[(idx + 1) % available.length];
|
|
34
|
+
onChange(next.slug);
|
|
35
|
+
}, [available, value, onChange]);
|
|
36
|
+
(0, react_1.useEffect)(() => {
|
|
37
|
+
if (!popoverOpen)
|
|
38
|
+
return;
|
|
39
|
+
function handleClickOutside(e) {
|
|
40
|
+
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
41
|
+
setPopoverOpen(false);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
45
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
46
|
+
}, [popoverOpen]);
|
|
47
|
+
if (providers.length === 0)
|
|
48
|
+
return null;
|
|
49
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "relative", ref: containerRef, children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: cycleNext, onContextMenu: (e) => {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
setPopoverOpen((o) => !o);
|
|
52
|
+
}, className: `${buttonPx} flex items-center justify-center rounded-xl border border-slate-200 dark:border-slate-700 hover:border-slate-300 dark:hover:border-slate-600 bg-white dark:bg-slate-800 transition-colors`, title: `${current?.name || "Provider"} (click to switch, right-click for all)`, children: current && ((0, jsx_runtime_1.jsx)(ProviderLogo, { provider: current, size: iconSize, selected: true, disabled: false })) }), popoverOpen && ((0, jsx_runtime_1.jsxs)("div", { className: "absolute bottom-full right-0 mb-2 p-2 bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-xl shadow-lg min-w-[180px] z-50", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-[11px] font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider px-2 pb-1.5", children: "AI Provider" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-col gap-0.5", children: providers.map((p) => {
|
|
53
|
+
const isSelected = p.slug === value;
|
|
54
|
+
const isDisabled = p.available === false;
|
|
55
|
+
return ((0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: () => {
|
|
56
|
+
if (!isDisabled) {
|
|
57
|
+
onChange(p.slug);
|
|
58
|
+
setPopoverOpen(false);
|
|
59
|
+
}
|
|
60
|
+
}, disabled: isDisabled, className: `flex items-center gap-2.5 px-2 py-1.5 rounded-lg text-sm transition-colors ${isDisabled
|
|
61
|
+
? "opacity-40 cursor-not-allowed"
|
|
62
|
+
: isSelected
|
|
63
|
+
? "bg-slate-100 dark:bg-slate-700 text-slate-900 dark:text-slate-100"
|
|
64
|
+
: "text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-750"}`, title: isDisabled ? p.unavailableReason || "Unavailable" : p.name, children: [(0, jsx_runtime_1.jsx)(ProviderLogo, { provider: p, size: iconSize, selected: isSelected, disabled: isDisabled }), (0, jsx_runtime_1.jsx)("span", { className: "flex-1 text-left", children: p.name }), isSelected && ((0, jsx_runtime_1.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: "text-blue-500", children: (0, jsx_runtime_1.jsx)("polyline", { points: "20 6 9 17 4 12" }) }))] }, p.slug));
|
|
65
|
+
}) }), imageProviders && imageProviders.length > 0 && onImageChange && imageValue !== undefined && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "border-t border-slate-100 dark:border-slate-700 my-1.5" }), (0, jsx_runtime_1.jsx)("div", { className: "text-[11px] font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider px-2 pb-1.5", children: "Image Generation" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-col gap-0.5", children: imageProviders.map((p) => {
|
|
66
|
+
const isSelected = p.slug === imageValue;
|
|
67
|
+
const isDisabled = p.available === false;
|
|
68
|
+
return ((0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: () => {
|
|
69
|
+
if (!isDisabled) {
|
|
70
|
+
onImageChange(p.slug);
|
|
71
|
+
setPopoverOpen(false);
|
|
72
|
+
}
|
|
73
|
+
}, disabled: isDisabled, className: `flex items-center gap-2.5 px-2 py-1.5 rounded-lg text-sm transition-colors ${isDisabled
|
|
74
|
+
? "opacity-40 cursor-not-allowed"
|
|
75
|
+
: isSelected
|
|
76
|
+
? "bg-slate-100 dark:bg-slate-700 text-slate-900 dark:text-slate-100"
|
|
77
|
+
: "text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-750"}`, title: isDisabled ? p.unavailableReason || "Unavailable" : p.name, children: [(0, jsx_runtime_1.jsx)(ProviderLogo, { provider: p, size: iconSize, selected: isSelected, disabled: isDisabled }), (0, jsx_runtime_1.jsx)("span", { className: "flex-1 text-left", children: p.name }), isSelected && ((0, jsx_runtime_1.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: "text-blue-500", children: (0, jsx_runtime_1.jsx)("polyline", { points: "20 6 9 17 4 12" }) }))] }, p.slug));
|
|
78
|
+
}) })] }))] }))] }));
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=provider-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-selector.js","sourceRoot":"","sources":["../../src/components/provider-selector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ProviderOption } from "../types.js";
|
|
2
|
+
export interface ProviderSelectionState {
|
|
3
|
+
provider: string;
|
|
4
|
+
imageProvider: string | null;
|
|
5
|
+
setProvider: (slug: string) => void;
|
|
6
|
+
setImageProvider: (slug: string) => void;
|
|
7
|
+
availableProviders: ProviderOption[];
|
|
8
|
+
availableImageProviders: ProviderOption[];
|
|
9
|
+
}
|
|
10
|
+
interface UseProviderSelectionOpts {
|
|
11
|
+
providers: ProviderOption[];
|
|
12
|
+
imageProviders?: ProviderOption[];
|
|
13
|
+
initialProvider?: string;
|
|
14
|
+
initialImageProvider?: string;
|
|
15
|
+
/** Called when the provider changes (e.g., to persist to DB) */
|
|
16
|
+
onProviderChange?: (slug: string) => void;
|
|
17
|
+
onImageProviderChange?: (slug: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function useProviderSelection({ providers, imageProviders, initialProvider, initialImageProvider, onProviderChange, onImageProviderChange, }: UseProviderSelectionOpts): ProviderSelectionState;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=use-provider-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-provider-selection.d.ts","sourceRoot":"","sources":["../../src/hooks/use-provider-selection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,kBAAkB,EAAE,cAAc,EAAE,CAAA;IACpC,uBAAuB,EAAE,cAAc,EAAE,CAAA;CAC1C;AAED,UAAU,wBAAwB;IAChC,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,cAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,EAAE,wBAAwB,GAAG,sBAAsB,CA0CnD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useProviderSelection = useProviderSelection;
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
function useProviderSelection({ providers, imageProviders = [], initialProvider, initialImageProvider, onProviderChange, onImageProviderChange, }) {
|
|
7
|
+
const available = (0, react_1.useMemo)(() => providers.filter((p) => p.available !== false), [providers]);
|
|
8
|
+
const availableImage = (0, react_1.useMemo)(() => imageProviders.filter((p) => p.available !== false), [imageProviders]);
|
|
9
|
+
const defaultSlug = initialProvider || available[0]?.slug || providers[0]?.slug || "";
|
|
10
|
+
const defaultImageSlug = initialImageProvider || availableImage[0]?.slug || imageProviders[0]?.slug || null;
|
|
11
|
+
const [provider, setProviderRaw] = (0, react_1.useState)(defaultSlug);
|
|
12
|
+
const [imageProvider, setImageProviderRaw] = (0, react_1.useState)(defaultImageSlug);
|
|
13
|
+
const setProvider = (0, react_1.useCallback)((slug) => {
|
|
14
|
+
setProviderRaw(slug);
|
|
15
|
+
onProviderChange?.(slug);
|
|
16
|
+
}, [onProviderChange]);
|
|
17
|
+
const setImageProvider = (0, react_1.useCallback)((slug) => {
|
|
18
|
+
setImageProviderRaw(slug);
|
|
19
|
+
onImageProviderChange?.(slug);
|
|
20
|
+
}, [onImageProviderChange]);
|
|
21
|
+
return {
|
|
22
|
+
provider,
|
|
23
|
+
imageProvider,
|
|
24
|
+
setProvider,
|
|
25
|
+
setImageProvider,
|
|
26
|
+
availableProviders: available,
|
|
27
|
+
availableImageProviders: availableImage,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=use-provider-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-provider-selection.js","sourceRoot":"","sources":["../../src/hooks/use-provider-selection.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;AAwBZ,oDAiDC;AAvED,iCAAsD;AAsBtD,SAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,cAAc,GAAG,EAAE,EACnB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACI;IACzB,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EACpD,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,MAAM,cAAc,GAAG,IAAA,eAAO,EAC5B,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EACzD,CAAC,cAAc,CAAC,CACjB,CAAA;IAED,MAAM,WAAW,GAAG,eAAe,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;IACrF,MAAM,gBAAgB,GACpB,oBAAoB,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAA;IAEpF,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,WAAW,CAAC,CAAA;IACxD,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAgB,gBAAgB,CAAC,CAAA;IAEtF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,IAAY,EAAE,EAAE;QACf,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAA;IAED,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAClC,CAAC,IAAY,EAAE,EAAE;QACf,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACzB,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,EACD,CAAC,qBAAqB,CAAC,CACxB,CAAA;IAED,OAAO;QACL,QAAQ;QACR,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,kBAAkB,EAAE,SAAS;QAC7B,uBAAuB,EAAE,cAAc;KACxC,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -33,8 +33,11 @@ export { WhisperRecipientPicker } from "./components/whisper-recipient-picker.js
|
|
|
33
33
|
export type { WhisperRecipient } from "./components/whisper-recipient-picker.js";
|
|
34
34
|
export { useWhisperMode } from "./hooks/use-whisper-mode.js";
|
|
35
35
|
export type { WhisperModeState, UseWhisperModeReturn } from "./hooks/use-whisper-mode.js";
|
|
36
|
+
export { ProviderSelector } from "./components/provider-selector.js";
|
|
37
|
+
export { useProviderSelection } from "./hooks/use-provider-selection.js";
|
|
38
|
+
export type { ProviderSelectionState } from "./hooks/use-provider-selection.js";
|
|
36
39
|
export { formatTime, getDateSeparator, isDifferentDay } from "./utils/time.js";
|
|
37
40
|
export { groupMessages } from "./utils/message-grouping.js";
|
|
38
41
|
export { remarkPlugins, rehypePlugins, defaultMarkdownComponents } from "./utils/markdown-config.js";
|
|
39
|
-
export type { ChatInterfaceConfig, ChatFeatureFlags, ChatVariant, ChatClassNames, StreamBodyOpts, MentionSuggestion, SkillSuggestion, DocumentRef, LiteMessage, MessageType, SseEvent, ChatSlots, RenderableMessage, } from "./types.js";
|
|
42
|
+
export type { ChatInterfaceConfig, ChatFeatureFlags, ChatVariant, ChatClassNames, StreamBodyOpts, MentionSuggestion, SkillSuggestion, DocumentRef, ProviderOption, LiteMessage, MessageType, SseEvent, ChatSlots, RenderableMessage, } from "./types.js";
|
|
40
43
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAG3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGzF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAGpG,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,iBAAiB,GAClB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAG3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAG/E,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAGpG,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,iBAAiB,GAClB,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* slots, resolvers, handlers).
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.defaultMarkdownComponents = exports.rehypePlugins = exports.remarkPlugins = exports.groupMessages = exports.isDifferentDay = exports.getDateSeparator = exports.formatTime = exports.useWhisperMode = exports.WhisperRecipientPicker = exports.EmptyState = exports.MessageActions = exports.CodeBlock = exports.SkillIndicator = exports.ThinkingIndicator = exports.BouncingDots = exports.StreamingText = exports.InputArea = exports.MessageBubble = exports.MessageList = exports.useAttachments = exports.AutocompletePopup = exports.useAutocomplete = exports.useChatScroll = exports.useChatSession = exports.ChatInterfaceCore = void 0;
|
|
14
|
+
exports.defaultMarkdownComponents = exports.rehypePlugins = exports.remarkPlugins = exports.groupMessages = exports.isDifferentDay = exports.getDateSeparator = exports.formatTime = exports.useProviderSelection = exports.ProviderSelector = exports.useWhisperMode = exports.WhisperRecipientPicker = exports.EmptyState = exports.MessageActions = exports.CodeBlock = exports.SkillIndicator = exports.ThinkingIndicator = exports.BouncingDots = exports.StreamingText = exports.InputArea = exports.MessageBubble = exports.MessageList = exports.useAttachments = exports.AutocompletePopup = exports.useAutocomplete = exports.useChatScroll = exports.useChatSession = exports.ChatInterfaceCore = void 0;
|
|
15
15
|
// The main product
|
|
16
16
|
var chat_interface_core_js_1 = require("./chat-interface-core.js");
|
|
17
17
|
Object.defineProperty(exports, "ChatInterfaceCore", { enumerable: true, get: function () { return chat_interface_core_js_1.ChatInterfaceCore; } });
|
|
@@ -54,6 +54,11 @@ var whisper_recipient_picker_js_1 = require("./components/whisper-recipient-pick
|
|
|
54
54
|
Object.defineProperty(exports, "WhisperRecipientPicker", { enumerable: true, get: function () { return whisper_recipient_picker_js_1.WhisperRecipientPicker; } });
|
|
55
55
|
var use_whisper_mode_js_1 = require("./hooks/use-whisper-mode.js");
|
|
56
56
|
Object.defineProperty(exports, "useWhisperMode", { enumerable: true, get: function () { return use_whisper_mode_js_1.useWhisperMode; } });
|
|
57
|
+
// Provider selection
|
|
58
|
+
var provider_selector_js_1 = require("./components/provider-selector.js");
|
|
59
|
+
Object.defineProperty(exports, "ProviderSelector", { enumerable: true, get: function () { return provider_selector_js_1.ProviderSelector; } });
|
|
60
|
+
var use_provider_selection_js_1 = require("./hooks/use-provider-selection.js");
|
|
61
|
+
Object.defineProperty(exports, "useProviderSelection", { enumerable: true, get: function () { return use_provider_selection_js_1.useProviderSelection; } });
|
|
57
62
|
// Utilities
|
|
58
63
|
var time_js_1 = require("./utils/time.js");
|
|
59
64
|
Object.defineProperty(exports, "formatTime", { enumerable: true, get: function () { return time_js_1.formatTime; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,mBAAmB;AACnB,mEAA4D;AAAnD,2HAAA,iBAAiB,OAAA;AAE1B,qEAAqE;AACrE,mEAA4D;AAAnD,qHAAA,cAAc,OAAA;AAGvB,oBAAoB;AACpB,iEAA0D;AAAjD,mHAAA,aAAa,OAAA;AAEtB,eAAe;AACf,mEAA6D;AAApD,sHAAA,eAAe,OAAA;AACxB,4EAAsE;AAA7D,0HAAA,iBAAiB,OAAA;AAE1B,cAAc;AACd,iEAA2D;AAAlD,oHAAA,cAAc,OAAA;AAGvB,sEAAsE;AACtE,gEAA0D;AAAjD,8GAAA,WAAW,OAAA;AACpB,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,4DAAsD;AAA7C,0GAAA,SAAS,OAAA;AAClB,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,kEAA4D;AAAnD,gHAAA,YAAY,OAAA;AACrB,4EAAsE;AAA7D,0HAAA,iBAAiB,OAAA;AAE1B,sEAAgE;AAAvD,oHAAA,cAAc,OAAA;AACvB,4DAAsD;AAA7C,0GAAA,SAAS,OAAA;AAClB,sEAAgE;AAAvD,oHAAA,cAAc,OAAA;AAEvB,8DAAwD;AAA/C,4GAAA,UAAU,OAAA;AACnB,wFAAiF;AAAxE,qIAAA,sBAAsB,OAAA;AAE/B,mEAA4D;AAAnD,qHAAA,cAAc,OAAA;AAGvB,YAAY;AACZ,2CAA8E;AAArE,qGAAA,UAAU,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,yGAAA,cAAc,OAAA;AACrD,mEAA2D;AAAlD,oHAAA,aAAa,OAAA;AACtB,iEAAoG;AAA3F,mHAAA,aAAa,OAAA;AAAE,mHAAA,aAAa,OAAA;AAAE,+HAAA,yBAAyB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,mBAAmB;AACnB,mEAA4D;AAAnD,2HAAA,iBAAiB,OAAA;AAE1B,qEAAqE;AACrE,mEAA4D;AAAnD,qHAAA,cAAc,OAAA;AAGvB,oBAAoB;AACpB,iEAA0D;AAAjD,mHAAA,aAAa,OAAA;AAEtB,eAAe;AACf,mEAA6D;AAApD,sHAAA,eAAe,OAAA;AACxB,4EAAsE;AAA7D,0HAAA,iBAAiB,OAAA;AAE1B,cAAc;AACd,iEAA2D;AAAlD,oHAAA,cAAc,OAAA;AAGvB,sEAAsE;AACtE,gEAA0D;AAAjD,8GAAA,WAAW,OAAA;AACpB,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,4DAAsD;AAA7C,0GAAA,SAAS,OAAA;AAClB,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,kEAA4D;AAAnD,gHAAA,YAAY,OAAA;AACrB,4EAAsE;AAA7D,0HAAA,iBAAiB,OAAA;AAE1B,sEAAgE;AAAvD,oHAAA,cAAc,OAAA;AACvB,4DAAsD;AAA7C,0GAAA,SAAS,OAAA;AAClB,sEAAgE;AAAvD,oHAAA,cAAc,OAAA;AAEvB,8DAAwD;AAA/C,4GAAA,UAAU,OAAA;AACnB,wFAAiF;AAAxE,qIAAA,sBAAsB,OAAA;AAE/B,mEAA4D;AAAnD,qHAAA,cAAc,OAAA;AAGvB,qBAAqB;AACrB,0EAAoE;AAA3D,wHAAA,gBAAgB,OAAA;AACzB,+EAAwE;AAA/D,iIAAA,oBAAoB,OAAA;AAG7B,YAAY;AACZ,2CAA8E;AAArE,qGAAA,UAAU,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,yGAAA,cAAc,OAAA;AACrD,mEAA2D;AAAlD,oHAAA,aAAa,OAAA;AACtB,iEAAoG;AAA3F,mHAAA,aAAa,OAAA;AAAE,mHAAA,aAAa,OAAA;AAAE,+HAAA,yBAAyB,OAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { ReactNode } from "react";
|
|
8
8
|
import type { LiteMessage } from "@portablecore/types/chat";
|
|
9
|
-
export type { ChatInterfaceConfig, ChatFeatureFlags, ChatVariant, ChatClassNames, StreamBodyOpts, MentionSuggestion, SkillSuggestion, DocumentRef, } from "@portablecore/types/chat";
|
|
9
|
+
export type { ChatInterfaceConfig, ChatFeatureFlags, ChatVariant, ChatClassNames, StreamBodyOpts, MentionSuggestion, SkillSuggestion, DocumentRef, ProviderOption, } from "@portablecore/types/chat";
|
|
10
10
|
export type { LiteMessage, MessageType, SseEvent } from "@portablecore/types/chat";
|
|
11
11
|
/**
|
|
12
12
|
* Slots narrowed to ReactNode for use inside React components.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAG3D,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAG3D,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,0BAA0B,CAAA;AAEjC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAElF;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,iBAAiB,CAAC,EAAE,SAAS,CAAA;IAC7B,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,SAAS,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,WAAW,CAAA;IACpB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portablecore/chat",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "Unified chat UI for Portable platforms — composable ChatInterface with extension points",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"remark-breaks": "^4.0.0",
|
|
28
28
|
"rehype-raw": "^7.0.0",
|
|
29
29
|
"rehype-highlight": "^7.0.2",
|
|
30
|
-
"@portablecore/
|
|
31
|
-
"@portablecore/
|
|
30
|
+
"@portablecore/chat-runtime": "0.1.0",
|
|
31
|
+
"@portablecore/types": "0.11.3"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"react": ">=18.0.0",
|