@kitn.ai/ui 0.16.0 → 0.17.0
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/README.md +28 -13
- package/dist/components/chat-thread.d.ts +2 -4
- package/dist/components/choice-card.d.ts +1 -0
- package/dist/components/dismissed-stub.d.ts +22 -0
- package/dist/components/message.d.ts +59 -2
- package/dist/components/response-compare-types.d.ts +66 -0
- package/dist/components/response-compare.d.ts +51 -0
- package/dist/components/tasks-card.d.ts +1 -0
- package/dist/components/toast.d.ts +48 -0
- package/dist/components/use-card-resolution.d.ts +10 -6
- package/dist/custom-elements.json +260 -11
- package/dist/elements/artifact.js +1 -0
- package/dist/elements/attachments.js +1 -0
- package/dist/elements/autoloader.d.ts +2 -0
- package/dist/elements/autoloader.js +1 -0
- package/dist/elements/card.js +1 -0
- package/dist/elements/cards.d.ts +1 -0
- package/dist/elements/cards.js +1 -0
- package/dist/elements/chain-of-thought.d.ts +0 -12
- package/dist/elements/chain-of-thought.js +1 -0
- package/dist/elements/chat-scope-picker.js +1 -0
- package/dist/elements/chat-workspace.js +1 -0
- package/dist/elements/chat.js +1 -0
- package/dist/elements/checkpoint.js +1 -0
- package/dist/elements/choice.js +1 -0
- package/dist/elements/chunks/Icon-D_Zmwmwh.js +1 -0
- package/dist/elements/chunks/action-icons-PVfIvcuG.js +1 -0
- package/dist/elements/chunks/attachments-Dp6vqtrc.js +1 -0
- package/dist/elements/chunks/bash-InADTalH.js +1 -0
- package/dist/elements/chunks/button-CKyYD9G4.js +1 -0
- package/dist/elements/chunks/card-Cjho-PYk.js +1 -0
- package/dist/elements/chunks/card-routing-C986KuUA.js +1 -0
- package/dist/elements/chunks/chat-thread-RT808iPf.js +1 -0
- package/dist/elements/chunks/check-CDYaMYrM.js +1 -0
- package/dist/elements/chunks/chevron-down-3SBiq8HF.js +1 -0
- package/dist/elements/chunks/chevron-right-k2UFlIVK.js +1 -0
- package/dist/elements/chunks/cn-Dogu6PbV.js +1 -0
- package/dist/elements/chunks/code-block-BYUmfFSd.js +1 -0
- package/dist/elements/chunks/collapsible-BiNwdOn6.js +1 -0
- package/dist/elements/chunks/context-18g6oi4J.js +1 -0
- package/dist/elements/chunks/conversation-list-D9Y0NVdo.js +1 -0
- package/dist/elements/chunks/core-AYMC6_lb.js +12 -0
- package/dist/elements/chunks/css-M7EaDHN_.js +1 -0
- package/dist/elements/chunks/default-input-CSAoYYMd.js +1 -0
- package/dist/elements/chunks/download-D8K0Je8r.js +1 -0
- package/dist/elements/chunks/dropdown-bUs2iTia.js +1 -0
- package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +141 -0
- package/dist/elements/chunks/external-link-6mA0wxab.js +1 -0
- package/dist/elements/chunks/file-text-DnaYk3Dm.js +1 -0
- package/dist/elements/chunks/file-tree-CgtRLlxK.js +1 -0
- package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +1 -0
- package/dist/elements/chunks/github-light-JYsPkUQd.js +1 -0
- package/dist/elements/chunks/hover-card-CIGw62gP.js +1 -0
- package/dist/elements/chunks/html-CPZ3oZQ7.js +1 -0
- package/dist/elements/chunks/index-CTBEJeo6.js +1 -0
- package/dist/elements/chunks/javascript-C25yR2R2.js +1 -0
- package/dist/elements/chunks/json-DxJze_jm.js +1 -0
- package/dist/elements/chunks/link-BlGSeoPy.js +1 -0
- package/dist/elements/chunks/loader-DvhR4qa0.js +1 -0
- package/dist/elements/chunks/markdown-CMTGx9r8.js +64 -0
- package/dist/elements/chunks/message-CDZwXjhL.js +1 -0
- package/dist/elements/chunks/message-feedback-CYx81QiA.js +1 -0
- package/dist/elements/chunks/model-switcher-O_tUhoOT.js +1 -0
- package/dist/elements/chunks/overlay-DydXYMQW.js +1 -0
- package/dist/elements/chunks/prompt-suggestion-ldlWV5kd.js +1 -0
- package/dist/elements/chunks/reasoning-2PUnHlmr.js +1 -0
- package/dist/elements/chunks/resizable-B5WNbSeb.js +1 -0
- package/dist/elements/chunks/star-t9tI-P0q.js +1 -0
- package/dist/elements/chunks/store-C6rIooZz.js +1 -0
- package/dist/elements/chunks/svelte--5p79yCD.js +1 -0
- package/dist/elements/chunks/text-shimmer-uh9V_KUh.js +1 -0
- package/dist/elements/chunks/textarea-3nm6Ia9U.js +1 -0
- package/dist/elements/chunks/thumbs-up-BBtguGld.js +1 -0
- package/dist/elements/chunks/toast-store-D8cL3fWl.js +1 -0
- package/dist/elements/chunks/tool-GJ3vwp1U.js +1 -0
- package/dist/elements/chunks/tooltip-DwKAz4XR.js +1 -0
- package/dist/elements/chunks/triangle-alert-Ct1zt2JL.js +1 -0
- package/dist/elements/chunks/tsx-B8rCNbgL.js +1 -0
- package/dist/elements/chunks/typescript-RycA9KXf.js +1 -0
- package/dist/elements/chunks/use-card-resolution-D-_0Alzy.js +1 -0
- package/dist/elements/chunks/video-mVYiM99-.js +1 -0
- package/dist/elements/chunks/vue-BmIZj4XD.js +1 -0
- package/dist/elements/chunks/x-CzxL27Ch.js +1 -0
- package/dist/elements/code-block.js +1 -0
- package/dist/elements/compare.js +1 -0
- package/dist/elements/confirm-card.js +1 -0
- package/dist/elements/context-meter.js +1 -0
- package/dist/elements/conversation-list.d.ts +1 -11
- package/dist/elements/conversation-list.js +1 -0
- package/dist/elements/embed.js +1 -0
- package/dist/elements/empty.js +1 -0
- package/dist/elements/feedback-bar.js +1 -0
- package/dist/elements/file-tree.js +1 -0
- package/dist/elements/file-upload.js +1 -0
- package/dist/elements/form.js +1 -0
- package/dist/elements/image.js +1 -0
- package/dist/elements/link-preview.js +1 -0
- package/dist/elements/loader.js +1 -0
- package/dist/elements/markdown.js +1 -0
- package/dist/elements/message-skills.d.ts +0 -16
- package/dist/elements/message-skills.js +1 -0
- package/dist/elements/message.js +1 -0
- package/dist/elements/model-switcher.d.ts +1 -11
- package/dist/elements/model-switcher.js +1 -0
- package/dist/elements/popover.js +1 -0
- package/dist/elements/prompt-input.d.ts +1 -9
- package/dist/elements/prompt-input.js +1 -0
- package/dist/elements/prompt-suggestions.d.ts +0 -6
- package/dist/elements/prompt-suggestions.js +1 -0
- package/dist/elements/reasoning.js +1 -0
- package/dist/elements/resizable.d.ts +1 -17
- package/dist/elements/resizable.js +1 -0
- package/dist/elements/response-stream.js +14 -0
- package/dist/elements/scroll-button.js +1 -0
- package/dist/elements/source.d.ts +0 -17
- package/dist/elements/source.js +1 -0
- package/dist/elements/switch.js +1 -0
- package/dist/elements/tasks.js +1 -0
- package/dist/elements/text-shimmer.js +1 -0
- package/dist/elements/thinking-bar.js +1 -0
- package/dist/elements/toast.d.ts +1 -0
- package/dist/elements/toast.js +1 -0
- package/dist/elements/tool.js +1 -0
- package/dist/elements/voice-input.js +1 -0
- package/dist/elements.d.ts +41 -5
- package/dist/index.d.ts +12 -0
- package/dist/index.js +11832 -9790
- package/dist/kitn-chat.es.js +1 -1
- package/dist/llms/llms-full.txt +57 -12
- package/dist/llms/llms.txt +3 -3
- package/dist/mcp.es.js +157 -1
- package/dist/primitives/card-contract.d.ts +20 -4
- package/dist/primitives/card-recovery.d.ts +55 -0
- package/dist/primitives/message-feedback.d.ts +35 -0
- package/dist/primitives/toast-store.d.ts +88 -0
- package/dist/react/index.d.ts +83 -3
- package/dist/react.js +90 -80
- package/dist/register-JyTglR6m.js +1 -0
- package/dist/register-impl-C6wlSsts.js +77 -0
- package/dist/schemas/choice.schema.json +5 -0
- package/dist/schemas/tasks.schema.json +5 -0
- package/dist/ui/tooltip.d.ts +1 -0
- package/frameworks/react/index.tsx +63 -11
- package/llms-full.txt +57 -12
- package/llms.txt +3 -3
- package/package.json +15 -6
- package/src/agent-tooling/mcp/tools/debug.ts +184 -0
- package/src/agent-tooling/mcp/tools/scaffold.ts +133 -1
- package/src/components/chat-thread.tsx +27 -35
- package/src/components/choice-card.tsx +33 -4
- package/src/components/component-meta.json +250 -26
- package/src/components/confirm-card.tsx +15 -1
- package/src/components/dismissed-stub.tsx +80 -0
- package/src/components/form.tsx +21 -3
- package/src/components/message.tsx +151 -10
- package/src/components/response-compare-types.ts +127 -0
- package/src/components/response-compare.tsx +431 -0
- package/src/components/tasks-card.tsx +33 -3
- package/src/components/toast.tsx +398 -0
- package/src/components/use-card-resolution.ts +24 -8
- package/src/elements/autoloader.ts +89 -0
- package/src/elements/chat-types.ts +7 -0
- package/src/elements/chat-workspace.tsx +4 -2
- package/src/elements/chat.tsx +4 -2
- package/src/elements/compare.tsx +88 -0
- package/src/elements/compiled.css +1 -1
- package/src/elements/element-manifest.json +182 -0
- package/src/elements/element-meta.json +191 -68
- package/src/elements/element-types.d.ts +41 -5
- package/src/elements/framework-usage.json +25 -0
- package/src/elements/message.tsx +27 -45
- package/src/elements/register-impl.ts +3 -0
- package/src/elements/register.ts +9 -0
- package/src/elements/remote.tsx +4 -0
- package/src/elements/styles.css +19 -0
- package/src/elements/toast.tsx +74 -0
- package/src/index.ts +30 -0
- package/src/primitives/card-contract.ts +14 -5
- package/src/primitives/card-recovery.ts +149 -0
- package/src/primitives/card-routing.ts +3 -0
- package/src/primitives/card-schemas/choice.schema.json +5 -0
- package/src/primitives/card-schemas/tasks.schema.json +5 -0
- package/src/primitives/message-feedback.ts +123 -0
- package/src/primitives/toast-store.ts +235 -0
- package/src/ui/tooltip.tsx +8 -2
- package/dist/elements/chat-types.d.ts +0 -41
- package/dist/elements/css.d.ts +0 -1
- package/dist/elements/default-input.d.ts +0 -40
- package/dist/elements/define.d.ts +0 -42
- package/dist/elements/register-impl.d.ts +0 -0
- package/dist/elements/register.d.ts +0 -3
- package/dist/register-impl-wCsFPoh9.js +0 -77
- package/dist/register-ujhr1nBS.js +0 -1
- /package/dist/elements/{remote.d.ts → compare.d.ts} +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { defineWebComponent } from './define';
|
|
2
|
+
import { ChatConfig, useChatConfig, type ProseSize } from '../primitives/chat-config';
|
|
3
|
+
import { ResponseCompare, type CompareLayout } from '../components/response-compare';
|
|
4
|
+
import type { ResponseCompareData, CompareSelection } from '../components/response-compare';
|
|
5
|
+
|
|
6
|
+
interface Props extends Record<string, unknown> {
|
|
7
|
+
/** The compare definition (prompt + the two candidates). Set as a JS PROPERTY:
|
|
8
|
+
* `el.data = { prompt, candidates: [A, B], collapse? }`. Import
|
|
9
|
+
* `ResponseCompareData` from `@kitn.ai/ui` for the full shape. */
|
|
10
|
+
data?: Record<string, unknown>;
|
|
11
|
+
/** Stable id correlating every emitted event. Attribute: `compare-id`. */
|
|
12
|
+
compareId?: string;
|
|
13
|
+
/** Re-hydrate / control the user's pick. Set as a JS PROPERTY:
|
|
14
|
+
* `el.selection = { chosenId, rejectedIds }`. Renders the collapsed winner. */
|
|
15
|
+
selection?: Record<string, unknown>;
|
|
16
|
+
/** Layout: `'auto'` (default — columns when wide, tabs when narrow, by CONTAINER
|
|
17
|
+
* width) | `'columns'` (side-by-side) | `'tabs'` (pills to switch). Attribute: `layout`. */
|
|
18
|
+
layout?: CompareLayout;
|
|
19
|
+
/** Prose/text size for the rendered candidates. Attribute: `prose-size`. */
|
|
20
|
+
proseSize?: ProseSize;
|
|
21
|
+
/** Shiki theme for code blocks in the candidates. Attribute: `code-theme`. */
|
|
22
|
+
codeTheme?: string;
|
|
23
|
+
/** Whether code blocks are syntax-highlighted. Attribute: `code-highlight`. */
|
|
24
|
+
codeHighlight?: boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface Events extends Record<string, unknown> {
|
|
28
|
+
/** The user committed a pick. `detail` = `{ chosenId, rejectedIds, at }`. */
|
|
29
|
+
'kai-compare-select': CompareSelection;
|
|
30
|
+
/** Both candidates have settled and the pick is live. */
|
|
31
|
+
'kai-ready': { compareId: string };
|
|
32
|
+
/** The definition was unusable. */
|
|
33
|
+
'kai-error': { compareId: string; message: string };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* `<kai-compare>` — a **dual-response comparison** (set via the `data` property):
|
|
38
|
+
* two assistant candidates for the same prompt, rendered side-by-side (or as tabs),
|
|
39
|
+
* each exactly like an assistant message (reasoning + tools + attachments +
|
|
40
|
+
* markdown). The user **picks** the better one — a COMMIT, not a Submit — which
|
|
41
|
+
* fires a non-bubbling **`kai-compare-select`** CustomEvent off the host
|
|
42
|
+
* (`{ chosenId, rejectedIds:[other], at }`) for the consumer to send a
|
|
43
|
+
* `(prompt, chosen, rejected)` preference pair. The card optimistically collapses
|
|
44
|
+
* to the chosen candidate. Single-shot.
|
|
45
|
+
*
|
|
46
|
+
* Both candidates can stream (push a fresh `data` reference per chunk); the pick is
|
|
47
|
+
* disabled with a per-column shimmer until BOTH settle, then `kai-ready` fires. The
|
|
48
|
+
* columns are a WAI-ARIA radiogroup with roving tabindex (Arrow keys move A↔B,
|
|
49
|
+
* Enter/Space picks). `kai-error` fires for a malformed definition. Isolated in
|
|
50
|
+
* Shadow DOM; theme-aware via the shared tokens.
|
|
51
|
+
*/
|
|
52
|
+
defineWebComponent<Props, Events>(
|
|
53
|
+
'kai-compare',
|
|
54
|
+
{
|
|
55
|
+
data: undefined,
|
|
56
|
+
compareId: undefined,
|
|
57
|
+
selection: undefined,
|
|
58
|
+
layout: 'auto',
|
|
59
|
+
proseSize: undefined,
|
|
60
|
+
codeTheme: undefined,
|
|
61
|
+
codeHighlight: undefined,
|
|
62
|
+
},
|
|
63
|
+
(props, { element, dispatch }) => {
|
|
64
|
+
const compareId = (): string => props.compareId ?? (element.id || 'kai-compare');
|
|
65
|
+
// Inherit the shadow-root portal mount from the outer ChatConfig that
|
|
66
|
+
// defineWebComponent installs, so candidate-body overlays (hover cards,
|
|
67
|
+
// tooltips) stay inside the shadow root.
|
|
68
|
+
const outer = useChatConfig();
|
|
69
|
+
return (
|
|
70
|
+
<ChatConfig
|
|
71
|
+
proseSize={props.proseSize}
|
|
72
|
+
codeTheme={props.codeTheme}
|
|
73
|
+
codeHighlight={props.codeHighlight}
|
|
74
|
+
portalMount={outer.portalMount()}
|
|
75
|
+
>
|
|
76
|
+
<ResponseCompare
|
|
77
|
+
data={props.data as ResponseCompareData | undefined}
|
|
78
|
+
compareId={compareId()}
|
|
79
|
+
selection={props.selection as CompareSelection | undefined}
|
|
80
|
+
layout={(props.layout as CompareLayout | undefined) ?? 'auto'}
|
|
81
|
+
onSelect={(sel) => dispatch('kai-compare-select', sel)}
|
|
82
|
+
onReady={() => dispatch('kai-ready', { compareId: compareId() })}
|
|
83
|
+
onError={(message) => dispatch('kai-error', { compareId: compareId(), message })}
|
|
84
|
+
/>
|
|
85
|
+
</ChatConfig>
|
|
86
|
+
);
|
|
87
|
+
},
|
|
88
|
+
);
|