@kodaris/krubble-app-components 1.0.66 → 1.0.68
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/chatbot.d.ts +36 -27
- package/dist/chatbot.d.ts.map +1 -1
- package/dist/chatbot.js +429 -321
- package/dist/chatbot.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/krubble-app.bundled.js +3208 -513
- package/dist/krubble-app.bundled.js.map +1 -1
- package/dist/krubble-app.bundled.min.js +395 -298
- package/dist/krubble-app.bundled.min.js.map +1 -1
- package/dist/krubble-app.umd.js +3206 -511
- package/dist/krubble-app.umd.js.map +1 -1
- package/dist/krubble-app.umd.min.js +395 -298
- package/dist/krubble-app.umd.min.js.map +1 -1
- package/dist/router.d.ts +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +8 -2
- package/dist/router.js.map +1 -1
- package/dist/scaffold/nav-item-edit.d.ts.map +1 -1
- package/dist/scaffold/nav-item-edit.js.map +1 -1
- package/dist/scaffold.d.ts +18 -12
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +208 -88
- package/dist/scaffold.js.map +1 -1
- package/dist/screen-detail.js +2 -2
- package/dist/screen-nav.d.ts +4 -4
- package/dist/screen-nav.d.ts.map +1 -1
- package/dist/screen-nav.js +14 -10
- package/dist/screen-nav.js.map +1 -1
- package/dist/subbar.d.ts.map +1 -1
- package/dist/subbar.js +43 -10
- package/dist/subbar.js.map +1 -1
- package/package.json +4 -3
package/dist/chatbot.d.ts
CHANGED
|
@@ -7,21 +7,6 @@ export interface KRChatbotMessage {
|
|
|
7
7
|
content: string;
|
|
8
8
|
reasoning?: string;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
11
|
-
* Frontend action dispatched by the AI via the SSE stream.
|
|
12
|
-
* The backend passes through tool calls from the AI model as ACTION events.
|
|
13
|
-
*
|
|
14
|
-
* Each action type has a specific `data` shape:
|
|
15
|
-
* - `RELOAD` — no data needed
|
|
16
|
-
* - `NAVIGATE` — `{ url: string }`
|
|
17
|
-
* - `UPDATE_HTML` — `{ selector: string, html: string }`
|
|
18
|
-
* - `OPEN_TAB` — `{ url: string }`
|
|
19
|
-
* - `SCROLL_TO` — `{ selector: string }`
|
|
20
|
-
*/
|
|
21
|
-
export interface KRChatbotAction {
|
|
22
|
-
action: 'RELOAD' | 'NAVIGATE' | 'UPDATE_HTML' | 'OPEN_TAB' | 'SCROLL_TO';
|
|
23
|
-
data?: Record<string, string>;
|
|
24
|
-
}
|
|
25
10
|
/**
|
|
26
11
|
* Callback function type for sending messages.
|
|
27
12
|
* Receives the user's message text and the current conversation history.
|
|
@@ -32,18 +17,17 @@ export type KRChatbotSend = (params: {
|
|
|
32
17
|
messages: KRChatbotMessage[];
|
|
33
18
|
}) => Promise<Response>;
|
|
34
19
|
/**
|
|
35
|
-
* AI chatbot component with SSE streaming
|
|
20
|
+
* AI chatbot component with SSE streaming.
|
|
36
21
|
*
|
|
37
22
|
* Accepts a `send` callback that returns a streaming Response (SSE format).
|
|
38
|
-
* Parses the stream for text tokens, status updates,
|
|
39
|
-
*
|
|
40
|
-
* If not prevented, executes the native browser action (reload, navigate, etc.).
|
|
23
|
+
* Parses the stream for text tokens, status updates, and errors.
|
|
24
|
+
* Dispatches a `stream-event` custom event for every SSE message so consumers can react.
|
|
41
25
|
*
|
|
42
26
|
* ## SSE Stream Format
|
|
43
27
|
* The component expects `data:` lines with JSON payloads containing a `type` field:
|
|
44
28
|
* - `STATUS` — `{ type: "STATUS", message: "Thinking..." }`
|
|
45
29
|
* - `RESPONSE_PART` — `{ type: "RESPONSE_PART", message: "token text" }`
|
|
46
|
-
* - `
|
|
30
|
+
* - `TOOL_RESULT` — `{ type: "TOOL_RESULT", message: "tool_name", data: {...} }`
|
|
47
31
|
* - `ERROR` — `{ type: "ERROR", message: "Something went wrong" }`
|
|
48
32
|
* - `HEARTBEAT` — `{ type: "HEARTBEAT" }` (ignored)
|
|
49
33
|
*
|
|
@@ -67,7 +51,7 @@ export type KRChatbotSend = (params: {
|
|
|
67
51
|
* @slot - Optional slot content displayed above the messages area
|
|
68
52
|
*
|
|
69
53
|
* @fires message-submit - When the user sends a message. Cancelable. Detail: `{ message: string }`
|
|
70
|
-
* @fires
|
|
54
|
+
* @fires stream-event - Dispatched for every SSE message received. Detail contains the parsed event data.
|
|
71
55
|
*/
|
|
72
56
|
export declare class KRChatbot extends LitElement {
|
|
73
57
|
static styles: import("lit").CSSResult;
|
|
@@ -77,6 +61,7 @@ export declare class KRChatbot extends LitElement {
|
|
|
77
61
|
private _userHasScrolledUp;
|
|
78
62
|
private _isDragging;
|
|
79
63
|
private _isResizing;
|
|
64
|
+
private _overlay;
|
|
80
65
|
private _resizeDir;
|
|
81
66
|
private _dragStartX;
|
|
82
67
|
private _dragStartY;
|
|
@@ -94,6 +79,11 @@ export declare class KRChatbot extends LitElement {
|
|
|
94
79
|
* Must return a Promise — messages are only cleared if it resolves.
|
|
95
80
|
*/
|
|
96
81
|
clear: (() => Promise<unknown>) | null;
|
|
82
|
+
/**
|
|
83
|
+
* Callback function called on init to load existing conversation messages.
|
|
84
|
+
* Must return a Promise that resolves with an array of KRChatbotMessage.
|
|
85
|
+
*/
|
|
86
|
+
load: (() => Promise<KRChatbotMessage[]>) | null;
|
|
97
87
|
/**
|
|
98
88
|
* Conversation messages. Can be set externally for initial messages.
|
|
99
89
|
* Updated internally as the conversation progresses.
|
|
@@ -122,17 +112,42 @@ export declare class KRChatbot extends LitElement {
|
|
|
122
112
|
private _panelEl;
|
|
123
113
|
private _messagesEl;
|
|
124
114
|
private _inputEl;
|
|
115
|
+
connectedCallback(): void;
|
|
125
116
|
disconnectedCallback(): void;
|
|
126
117
|
updated(changed: Map<string, unknown>): void;
|
|
127
118
|
/**
|
|
128
119
|
* Stops the current stream without clearing the conversation.
|
|
129
120
|
*/
|
|
130
121
|
stop(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Shows a full-viewport transparent overlay during drag/resize operations.
|
|
124
|
+
*
|
|
125
|
+
* This overlay solves a critical rendering issue when the chatbot is used inside
|
|
126
|
+
* a page that contains iframes (e.g., the AI editor shell where the page content
|
|
127
|
+
* is rendered in an iframe and the chatbot floats on top).
|
|
128
|
+
*
|
|
129
|
+
* Without the overlay, modifying the iframe's `pointer-events` style during drag
|
|
130
|
+
* (to prevent it from swallowing mousemove events) causes Chrome to recalculate
|
|
131
|
+
* compositing layers. This layer recalculation blocks the browser from repainting
|
|
132
|
+
* the chatbot panel's style changes (width/height/position) even though they are
|
|
133
|
+
* correctly applied to the DOM. The result is that the panel appears frozen while
|
|
134
|
+
* the user drags, despite the inline styles updating on every mousemove.
|
|
135
|
+
*
|
|
136
|
+
* The overlay approach avoids this entirely: instead of touching the iframe's styles,
|
|
137
|
+
* we place a transparent div (z-index 9999) above the iframe but below the chatbot
|
|
138
|
+
* (z-index 10000). This div intercepts all mouse events that would otherwise hit the
|
|
139
|
+
* iframe, without triggering any compositing layer changes on the iframe itself.
|
|
140
|
+
*/
|
|
141
|
+
private _showOverlay;
|
|
142
|
+
private _hideOverlay;
|
|
131
143
|
private _handleHeaderMouseDown;
|
|
132
144
|
private _handleResizeMouseDown;
|
|
133
145
|
private _handleMouseMove;
|
|
134
146
|
private _handleMouseUp;
|
|
135
147
|
private _handleToggle;
|
|
148
|
+
private _saveState;
|
|
149
|
+
private _restoreState;
|
|
150
|
+
private _applyStoredLayout;
|
|
136
151
|
private _handleInputChange;
|
|
137
152
|
private _handleKeyDown;
|
|
138
153
|
private _handleSubmit;
|
|
@@ -142,12 +157,6 @@ export declare class KRChatbot extends LitElement {
|
|
|
142
157
|
private _handleErrorDismiss;
|
|
143
158
|
private _readStreamChunk;
|
|
144
159
|
private _handleStreamError;
|
|
145
|
-
/**
|
|
146
|
-
* Lightweight text formatting for assistant messages.
|
|
147
|
-
* Handles code blocks, inline code, bold, and line breaks.
|
|
148
|
-
* Escapes HTML entities first to prevent XSS.
|
|
149
|
-
*/
|
|
150
|
-
private _formatAssistantContent;
|
|
151
160
|
render(): import("lit-html").TemplateResult<1>;
|
|
152
161
|
}
|
|
153
162
|
declare global {
|
package/dist/chatbot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAMrD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,SAAU,SAAQ,UAAU;IACvC,OAAgB,MAAM,0BA8hBpB;IAIF,OAAO,CAAC,OAAO,CAAwD;IAEvE,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,UAAU,CAAM;IAExB,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,aAAa,CAAK;IAI1B;;;OAGG;IAEH,IAAI,EAAE,aAAa,GAAG,IAAI,CAAQ;IAElC;;;OAGG;IAEH,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE9C;;;OAGG;IAEH,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAQ;IAExD;;;OAGG;IAEH,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAElC;;OAEG;IAEH,KAAK,SAAS;IAEd;;OAEG;IAEH,QAAQ,SAAM;IAEd;;OAEG;IAEH,WAAW,SAAuB;IAElC;;OAEG;IAKH,MAAM,UAAS;IAKf,OAAO,CAAC,WAAW,CAAM;IAGzB,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,WAAW,CAAM;IAGzB,OAAO,CAAC,MAAM,CAAM;IAKpB,OAAO,CAAC,QAAQ,CAAe;IAG/B,OAAO,CAAC,WAAW,CAAe;IAGlC,OAAO,CAAC,QAAQ,CAAuB;IAI9B,iBAAiB;IAYjB,oBAAoB;IAUpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAsB9C;;OAEG;IACH,IAAI;IAMJ;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,gBAAgB,CA+CvB;IAED,OAAO,CAAC,cAAc,CAarB;IAED,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IA2FrB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IA2FxB,OAAO,CAAC,kBAAkB;IAsBjB,MAAM;CAgPhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
|