@rtc-agent/component 0.2.9-rc.0 → 0.3.0-rc.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/dist/.generated/locales/en-US.d.ts +15 -0
- package/dist/.generated/locales/en-US.d.ts.map +1 -1
- package/dist/assets/index.browser-eyaxJE57.js +201 -0
- package/dist/assets/shared-worker-Czk9mL9X.js +77480 -0
- package/dist/components/chat-layout/rtc-chat-layout.d.ts +12 -0
- package/dist/components/chat-layout/rtc-chat-layout.d.ts.map +1 -1
- package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts.map +1 -1
- package/dist/components/content-area/rtc-error-message.d.ts +1 -2
- package/dist/components/content-area/rtc-error-message.d.ts.map +1 -1
- package/dist/components/content-area/rtc-user-message.d.ts +17 -1
- package/dist/components/content-area/rtc-user-message.d.ts.map +1 -1
- package/dist/components/content-area/rtc-user-message.styles.d.ts +3 -1
- package/dist/components/content-area/rtc-user-message.styles.d.ts.map +1 -1
- package/dist/components/file-preview/rtc-file-preview-area.d.ts +48 -0
- package/dist/components/file-preview/rtc-file-preview-area.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-preview-area.styles.d.ts +2 -0
- package/dist/components/file-preview/rtc-file-preview-area.styles.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-preview-modal.d.ts +108 -0
- package/dist/components/file-preview/rtc-file-preview-modal.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-preview-modal.styles.d.ts +2 -0
- package/dist/components/file-preview/rtc-file-preview-modal.styles.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-thumbnail.d.ts +81 -0
- package/dist/components/file-preview/rtc-file-thumbnail.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-thumbnail.styles.d.ts +2 -0
- package/dist/components/file-preview/rtc-file-thumbnail.styles.d.ts.map +1 -0
- package/dist/components/input-area/rtc-input-area.d.ts +55 -2
- package/dist/components/input-area/rtc-input-area.d.ts.map +1 -1
- package/dist/components/input-area/rtc-input-area.styles.d.ts.map +1 -1
- package/dist/components/rtc-agent/rtc-agent.d.ts +11 -0
- package/dist/components/rtc-agent/rtc-agent.d.ts.map +1 -1
- package/dist/contexts/file-storage.d.ts +17 -0
- package/dist/contexts/file-storage.d.ts.map +1 -0
- package/dist/controllers/persistence.controller.d.ts +11 -0
- package/dist/controllers/persistence.controller.d.ts.map +1 -1
- package/dist/{en-US-CpXp6drY.js → en-US-CrMLbirj.js} +17 -2
- package/dist/{highlight-languages-DwYGpLW6.js → highlight-languages-BvNFb0HY.js} +1 -1
- package/dist/icons/icons.d.ts +2 -0
- package/dist/icons/icons.d.ts.map +1 -1
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/{index-DJBmvsa_.js → index-BTJMzthg.js} +34938 -30784
- package/dist/index.js +1 -1
- package/dist/index.umd.js +1801 -1008
- package/dist/stats.html +1 -1
- package/dist/utils/file-id.d.ts +23 -0
- package/dist/utils/file-id.d.ts.map +1 -0
- package/dist/utils/file-md5.d.ts +51 -0
- package/dist/utils/file-md5.d.ts.map +1 -0
- package/dist/utils/file-storage.d.ts +527 -0
- package/dist/utils/file-storage.d.ts.map +1 -0
- package/dist/worker-bridge.d.ts +186 -2
- package/dist/worker-bridge.d.ts.map +1 -1
- package/package.json +7 -5
- package/dist/assets/shared-worker-vIZKoWv_.js +0 -2667
|
@@ -26,6 +26,7 @@ import '../session-tree/rtc-session-tab-bar.js';
|
|
|
26
26
|
import '../content-area/rtc-content-area.js';
|
|
27
27
|
import '../notice-bar/rtc-notice-bar.js';
|
|
28
28
|
import '../input-area/rtc-input-area.js';
|
|
29
|
+
import '../file-preview/rtc-file-preview-area.js';
|
|
29
30
|
import type { MessageController } from '../../controllers/message.controller.js';
|
|
30
31
|
import '../overlay/rtc-overlay-manager.js';
|
|
31
32
|
import '../drawer/rtc-drawer.js';
|
|
@@ -64,6 +65,8 @@ export declare class RtcChatLayout extends LitElement {
|
|
|
64
65
|
* (not in the set), the saved height is applied.
|
|
65
66
|
*/
|
|
66
67
|
private _heightAppliedSessions;
|
|
68
|
+
/** File state per session: Map<sessionId, {files, uploadProgress, uploadStates}> */
|
|
69
|
+
private _fileStates;
|
|
67
70
|
private _sessionCtx;
|
|
68
71
|
private _tabCtx;
|
|
69
72
|
connectedCallback(): void;
|
|
@@ -82,6 +85,14 @@ export declare class RtcChatLayout extends LitElement {
|
|
|
82
85
|
private _boundOnClearActiveInput;
|
|
83
86
|
/** Clear the active tab's input box */
|
|
84
87
|
clearActiveInput(): void;
|
|
88
|
+
/** Handle file state change from input-area */
|
|
89
|
+
private _handleFilesChanged;
|
|
90
|
+
/** Handle file removal from preview-area */
|
|
91
|
+
private _handleFileRemove;
|
|
92
|
+
/** Handle file retry request from preview-area */
|
|
93
|
+
private _handleFileRetry;
|
|
94
|
+
/** Handle file preview request from preview-area */
|
|
95
|
+
private _handleFilePreview;
|
|
85
96
|
/**
|
|
86
97
|
* Begin dragging resize handle
|
|
87
98
|
*
|
|
@@ -196,6 +207,7 @@ export declare class RtcChatLayout extends LitElement {
|
|
|
196
207
|
* Fix 44: If closeSession fails, restore the tab and show error toast.
|
|
197
208
|
*/
|
|
198
209
|
private _handleTabClose;
|
|
210
|
+
private _renderFilePreview;
|
|
199
211
|
private _renderChatContent;
|
|
200
212
|
render(): import("lit").TemplateResult<1>;
|
|
201
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-chat-layout.d.ts","sourceRoot":"","sources":["../../../src/components/chat-layout/rtc-chat-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAC,UAAU,EAAQ,KAAK,cAAc,EAAC,MAAM,KAAK,CAAC;AAqB1D,OAAO,qCAAqC,CAAC;AAC7C,OAAO,wCAAwC,CAAC;AAChD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,iCAAiC,CAAC;AACzC,OAAO,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yCAAyC,CAAC;AAC/E,OAAO,mCAAmC,CAAC;AAC3C,OAAO,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"rtc-chat-layout.d.ts","sourceRoot":"","sources":["../../../src/components/chat-layout/rtc-chat-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-chat-layout.styles.d.ts","sourceRoot":"","sources":["../../../src/components/chat-layout/rtc-chat-layout.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"rtc-chat-layout.styles.d.ts","sourceRoot":"","sources":["../../../src/components/chat-layout/rtc-chat-layout.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,yBAwIlB,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* RTC Error Message Component
|
|
3
3
|
*
|
|
4
4
|
* Renders an error feedback message with category-specific icon and color,
|
|
5
|
-
* title, description,
|
|
5
|
+
* title, description, and collapsible raw error details.
|
|
6
6
|
*
|
|
7
7
|
* ## Layout model (timeline layout)
|
|
8
8
|
*
|
|
@@ -56,7 +56,6 @@ export declare class RtcErrorMessage extends LitElement implements StatefulCompo
|
|
|
56
56
|
*/
|
|
57
57
|
private _getCategoryLabel;
|
|
58
58
|
private _toggleRawError;
|
|
59
|
-
private _handleRetry;
|
|
60
59
|
/**
|
|
61
60
|
* Extract component state for preservation across virtualization.
|
|
62
61
|
* Called by MessageVirtualScroll before destroying the element.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-error-message.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-error-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAC,UAAU,EAAa,OAAO,EAAC,MAAM,KAAK,CAAC;AAOnD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AA2C7E,qBAEa,eAAgB,SAAQ,UAAW,YAAW,iBAAiB;IACxE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"rtc-error-message.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-error-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAC,UAAU,EAAa,OAAO,EAAC,MAAM,KAAK,CAAC;AAOnD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AA2C7E,qBAEa,eAAgB,SAAQ,UAAW,YAAW,iBAAiB;IACxE,MAAM,CAAC,MAAM,4BAqHX;IAIF,OAAO,CAAC,UAAU,CAMhB;IAEF;;;OAGG;IAEH,OAAO,EAAE,OAAO,CAA6G;IAE7H;;;OAGG;IAEH,OAAO,CAAC,iBAAiB,CAAS;IAElC;;OAEG;IACH,OAAO,KAAK,UAAU,GAMrB;IAED;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,eAAe;IAMvB;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMnC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM9C,MAAM;CAkDT;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,mBAAmB,EAAE,eAAe,CAAC;KACxC;CACJ"}
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
* Layout model:
|
|
7
7
|
* .user-message-wrapper (sticky container)
|
|
8
8
|
* ├── .user-message (bubble with max-height, overflow hidden)
|
|
9
|
-
* │ ├── .user-message-
|
|
9
|
+
* │ ├── .user-message-content (files + text, overflow detection target)
|
|
10
|
+
* │ │ ├── .file-preview-section (conditional, when files exist)
|
|
11
|
+
* │ │ │ └── <rtc-file-preview-area readonly>
|
|
12
|
+
* │ │ └── .user-message-text (text content)
|
|
10
13
|
* │ ├── .show-more-btn (bottom-right, visible on hover when overflowing)
|
|
11
14
|
* │ └── .more-btn (top-right, visible on hover)
|
|
12
15
|
* └── <rtc-message-more-menu> (position:fixed, positioned via floating-ui)
|
|
@@ -35,6 +38,7 @@
|
|
|
35
38
|
import { LitElement } from 'lit';
|
|
36
39
|
import type { Message } from '../../types/index.js';
|
|
37
40
|
import './rtc-message-more-menu.js';
|
|
41
|
+
import '../file-preview/rtc-file-preview-area.js';
|
|
38
42
|
import type { StatefulComponent } from '../../utils/message-virtual-scroll.js';
|
|
39
43
|
export declare class RtcUserMessage extends LitElement implements StatefulComponent {
|
|
40
44
|
static styles: import("lit").CSSResult;
|
|
@@ -50,6 +54,7 @@ export declare class RtcUserMessage extends LitElement implements StatefulCompon
|
|
|
50
54
|
private _moreMenuEl;
|
|
51
55
|
private _resizeObserver?;
|
|
52
56
|
private _textEl?;
|
|
57
|
+
private _contentEl?;
|
|
53
58
|
private _cleanupPosition;
|
|
54
59
|
/** Bound event handler for menu select (stored for clean removal). */
|
|
55
60
|
private _boundOnMenuSelect;
|
|
@@ -82,6 +87,17 @@ export declare class RtcUserMessage extends LitElement implements StatefulCompon
|
|
|
82
87
|
* Extract structured data of user_message type (if present)
|
|
83
88
|
*/
|
|
84
89
|
private _getUserMessageData;
|
|
90
|
+
/**
|
|
91
|
+
* Safely extract file list from user message data.
|
|
92
|
+
* Filters out null/undefined/malformed entries to prevent render crashes.
|
|
93
|
+
*/
|
|
94
|
+
private _extractFiles;
|
|
95
|
+
/**
|
|
96
|
+
* Handle file preview request from rtc-file-preview-area.
|
|
97
|
+
* Dispatches rtc-file-preview-requested event to bubble up to rtc-agent,
|
|
98
|
+
* which renders the global preview modal at window-container level.
|
|
99
|
+
*/
|
|
100
|
+
private _handleFilePreview;
|
|
85
101
|
private _handleShowMore;
|
|
86
102
|
private _handleMoreClick;
|
|
87
103
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-user-message.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-user-message.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rtc-user-message.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-user-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;AAa9C,OAAO,KAAK,EAAC,OAAO,EAAqC,MAAM,sBAAsB,CAAC;AAGtF,OAAO,4BAA4B,CAAC;AACpC,OAAO,0CAA0C,CAAC;AAElD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAI7E,qBAEa,cAAe,SAAQ,UAAW,YAAW,iBAAiB;IACvE,MAAM,CAAC,MAAM,0BAAU;IAIvB,OAAO,CAAC,UAAU,CAMhB;IAGF,OAAO,EAAE,OAAO,CAMd;IAEO,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAGvC,OAAO,CAAC,QAAQ,CAAC,CAAc;IAE/B;;OAEG;IACH,OAAO,CAAC,WAAW,CAA4B;IAE/C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAA6B;IAErD,sEAAsE;IACtE,OAAO,CAAC,kBAAkB,CAA0D;IAEpF,OAAO,CAAC,WAAW,CAMjB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc;IAQtB,iBAAiB;IASjB,YAAY;IAYZ,oBAAoB;IASpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAYrC;;;;;;;OAOG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOnC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAsB9C,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IASrB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;IAWxB;;;OAGG;YACW,aAAa;IAiB3B;;OAEG;IACH,OAAO,CAAC,WAAW;YASL,iBAAiB;YASjB,eAAe;IAoB7B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;YACW,WAAW;IAezB;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAYrB,MAAM;CAkDT;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,kBAAkB,EAAE,cAAc,CAAC;KACtC;CACJ"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* Layout model:
|
|
5
5
|
* .user-message-wrapper — sticky container, full-width
|
|
6
6
|
* └── .user-message — bubble with max-height, overflow hidden
|
|
7
|
-
*
|
|
7
|
+
* ├── .user-message-content — flex column (files + text)
|
|
8
|
+
* │ ├── .file-preview-section — conditional file preview area
|
|
9
|
+
* │ └── .user-message-text — text content
|
|
8
10
|
*
|
|
9
11
|
* The ::after pseudo-element creates a gradient fade mask when text overflows
|
|
10
12
|
* and the bubble is not expanded. It only appears when [data-overflow] is set
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-user-message.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-user-message.styles.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"rtc-user-message.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-user-message.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,MAAM,yBA+MlB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RTC File Preview Area Component
|
|
3
|
+
*
|
|
4
|
+
* Horizontal scrolling container for file thumbnails.
|
|
5
|
+
* Renders rtc-file-thumbnail for each file attachment.
|
|
6
|
+
* Supports edit mode (with delete) and readonly mode (message display).
|
|
7
|
+
*
|
|
8
|
+
* @element rtc-file-preview-area
|
|
9
|
+
* @fires rtc-file-remove - File removed (edit mode only)
|
|
10
|
+
* @fires rtc-file-preview - File preview requested
|
|
11
|
+
* @csspart preview-area - The scrolling container
|
|
12
|
+
*/
|
|
13
|
+
import { LitElement } from 'lit';
|
|
14
|
+
import type { FileAttachment } from '../../types/index.js';
|
|
15
|
+
import './rtc-file-thumbnail.js';
|
|
16
|
+
export declare class RtcFilePreviewArea extends LitElement {
|
|
17
|
+
static styles: import("lit").CSSResult;
|
|
18
|
+
/** File attachments to display */
|
|
19
|
+
files: FileAttachment[];
|
|
20
|
+
/** Readonly mode (no delete buttons) */
|
|
21
|
+
readonly: boolean;
|
|
22
|
+
/** Upload task progress map (taskId -> progress 0-100) */
|
|
23
|
+
uploadProgress: Map<string, number>;
|
|
24
|
+
/** Upload task loading state map (taskId -> state) */
|
|
25
|
+
uploadStates: Map<string, string>;
|
|
26
|
+
private _resizeObserver?;
|
|
27
|
+
connectedCallback(): void;
|
|
28
|
+
disconnectedCallback(): void;
|
|
29
|
+
updated(changed: Map<string | number | symbol, unknown>): void;
|
|
30
|
+
private _updateEmptyState;
|
|
31
|
+
/** Get filename from FileAttachment.extra */
|
|
32
|
+
private _getFilename;
|
|
33
|
+
/** Get filesize from FileAttachment.extra */
|
|
34
|
+
private _getFilesize;
|
|
35
|
+
/** Handle thumbnail click */
|
|
36
|
+
private _handleThumbnailClick;
|
|
37
|
+
/** Handle thumbnail remove */
|
|
38
|
+
private _handleThumbnailRemove;
|
|
39
|
+
/** Handle thumbnail retry */
|
|
40
|
+
private _handleThumbnailRetry;
|
|
41
|
+
render(): import("lit").TemplateResult<1>;
|
|
42
|
+
}
|
|
43
|
+
declare global {
|
|
44
|
+
interface HTMLElementTagNameMap {
|
|
45
|
+
'rtc-file-preview-area': RtcFilePreviewArea;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=rtc-file-preview-area.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtc-file-preview-area.d.ts","sourceRoot":"","sources":["../../../src/components/file-preview/rtc-file-preview-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAIrC,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,yBAAyB,CAAC;AAEjC,qBAEa,kBAAmB,SAAQ,UAAU;IAChD,MAAM,CAAC,MAAM,0BAAU;IAEvB,kCAAkC;IAElC,KAAK,EAAE,cAAc,EAAE,CAAM;IAE7B,wCAAwC;IAExC,QAAQ,EAAE,OAAO,CAAS;IAE1B,0DAA0D;IAE1D,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEhD,sDAAsD;IAEtD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAG9C,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEzC,iBAAiB,IAAI,IAAI;IAkBzB,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM9D,OAAO,CAAC,iBAAiB;IAQzB,6CAA6C;IAC7C,OAAO,CAAC,YAAY;IAIpB,6CAA6C;IAC7C,OAAO,CAAC,YAAY;IAIpB,6BAA6B;IAC7B,OAAO,CAAC,qBAAqB;IAU7B,8BAA8B;IAC9B,OAAO,CAAC,sBAAsB;IAU9B,6BAA6B;IAC7B,OAAO,CAAC,qBAAqB;IAW7B,MAAM;CAmCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,kBAAkB,CAAC;KAC7C;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtc-file-preview-area.styles.d.ts","sourceRoot":"","sources":["../../../src/components/file-preview/rtc-file-preview-area.styles.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,MAAM,yBA+DlB,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RTC File Preview Modal Component
|
|
3
|
+
*
|
|
4
|
+
* Full-screen modal overlay for file preview (images and text).
|
|
5
|
+
* Uses teleport pattern: rendered inside parent's shadowRoot with position: fixed
|
|
6
|
+
* to cover the entire host window, without escaping component boundaries.
|
|
7
|
+
*
|
|
8
|
+
* Supports:
|
|
9
|
+
* - Image preview (object-fit: contain, URL.createObjectURL/revokeObjectURL)
|
|
10
|
+
* - Text preview (monospace, pre-wrap, truncation for large files)
|
|
11
|
+
* - Three close methods: ESC key, backdrop click, close button
|
|
12
|
+
* - Graceful degradation: fallback to getPresignedUrl() if download fails
|
|
13
|
+
* - Large file protection: >1MB text truncated to 1000 lines, >10MB rejected
|
|
14
|
+
*
|
|
15
|
+
* @element rtc-file-preview-modal
|
|
16
|
+
* @fires rtc-preview-close - Modal closed
|
|
17
|
+
* @csspart backdrop - The backdrop overlay
|
|
18
|
+
* @csspart content - The modal content container
|
|
19
|
+
* @csspart header - The modal header
|
|
20
|
+
* @csspart body - The modal body
|
|
21
|
+
*/
|
|
22
|
+
import { LitElement, nothing, type PropertyValues } from 'lit';
|
|
23
|
+
import type { FileAttachment } from '../../types/index.js';
|
|
24
|
+
export declare class RtcFilePreviewModal extends LitElement {
|
|
25
|
+
static styles: import("lit").CSSResult;
|
|
26
|
+
private _fileStorageCtx;
|
|
27
|
+
/** File attachment to preview */
|
|
28
|
+
file: FileAttachment | null;
|
|
29
|
+
/** Whether the modal is open */
|
|
30
|
+
open: boolean;
|
|
31
|
+
/** Content loading state */
|
|
32
|
+
private _contentState;
|
|
33
|
+
/** Object URL for image preview (needs manual revocation) */
|
|
34
|
+
private _objectUrl;
|
|
35
|
+
/** Text content for text file preview */
|
|
36
|
+
private _textContent;
|
|
37
|
+
/** Whether text content was truncated */
|
|
38
|
+
private _textTruncated;
|
|
39
|
+
/** Fallback URL (presigned URL when download fails) */
|
|
40
|
+
private _fallbackUrl;
|
|
41
|
+
/** Error message */
|
|
42
|
+
private _errorMessage;
|
|
43
|
+
/** AbortController for cancelling downloads */
|
|
44
|
+
private _abortController;
|
|
45
|
+
/** The element that triggered the preview (for focus restoration) */
|
|
46
|
+
private _triggerElement;
|
|
47
|
+
/** Bound keydown handler for window-level ESC capture */
|
|
48
|
+
private _boundOnKeydown;
|
|
49
|
+
willUpdate(changed: PropertyValues): void;
|
|
50
|
+
disconnectedCallback(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Open the preview modal for a file.
|
|
53
|
+
* @param file - File attachment to preview
|
|
54
|
+
* @param triggerElement - Element that triggered the preview (for focus restoration)
|
|
55
|
+
*/
|
|
56
|
+
openPreview(file: FileAttachment, triggerElement?: HTMLElement): void;
|
|
57
|
+
/** Close the preview modal */
|
|
58
|
+
close(): void;
|
|
59
|
+
/** Clean up resources */
|
|
60
|
+
private _cleanup;
|
|
61
|
+
/** Revoke the current Object URL */
|
|
62
|
+
private _revokeObjectUrl;
|
|
63
|
+
/** Check if MIME type is image */
|
|
64
|
+
private _isImage;
|
|
65
|
+
/** Check if MIME type is text */
|
|
66
|
+
private _isText;
|
|
67
|
+
/** Get filename from FileAttachment */
|
|
68
|
+
private _getFilename;
|
|
69
|
+
/** Get filesize from FileAttachment */
|
|
70
|
+
private _getFilesize;
|
|
71
|
+
/** Format file size for display */
|
|
72
|
+
private _formatFilesize;
|
|
73
|
+
/** Load preview content based on file type */
|
|
74
|
+
private _loadContent;
|
|
75
|
+
/** Load image preview */
|
|
76
|
+
private _loadImage;
|
|
77
|
+
/** Load text preview */
|
|
78
|
+
private _loadText;
|
|
79
|
+
/** Handle backdrop click */
|
|
80
|
+
private _handleBackdropClick;
|
|
81
|
+
/** Handle content click (stop propagation to prevent closing) */
|
|
82
|
+
private _handleContentClick;
|
|
83
|
+
/** Handle keydown (ESC to close) */
|
|
84
|
+
private _handleKeydown;
|
|
85
|
+
/** Handle close button click */
|
|
86
|
+
private _handleCloseClick;
|
|
87
|
+
/** Handle retry button click */
|
|
88
|
+
private _handleRetryClick;
|
|
89
|
+
/** Render modal header */
|
|
90
|
+
private _renderHeader;
|
|
91
|
+
/** Render image preview */
|
|
92
|
+
private _renderImagePreview;
|
|
93
|
+
/** Render text preview */
|
|
94
|
+
private _renderTextPreview;
|
|
95
|
+
/** Render loading state */
|
|
96
|
+
private _renderLoading;
|
|
97
|
+
/** Render error state */
|
|
98
|
+
private _renderError;
|
|
99
|
+
/** Render modal body content */
|
|
100
|
+
private _renderBody;
|
|
101
|
+
render(): typeof nothing | import("lit").TemplateResult<1>;
|
|
102
|
+
}
|
|
103
|
+
declare global {
|
|
104
|
+
interface HTMLElementTagNameMap {
|
|
105
|
+
'rtc-file-preview-modal': RtcFilePreviewModal;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=rtc-file-preview-modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtc-file-preview-modal.d.ts","sourceRoot":"","sources":["../../../src/components/file-preview/rtc-file-preview-modal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAC,UAAU,EAAQ,OAAO,EAAE,KAAK,cAAc,EAAC,MAAM,KAAK,CAAC;AAQnE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAgBzD,qBAEa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,MAAM,0BAAU;IAMvB,OAAO,CAAC,eAAe,CAAgD;IAIvE,iCAAiC;IAEjC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAQ;IAEnC,gCAAgC;IAEhC,IAAI,EAAE,OAAO,CAAS;IAItB,4BAA4B;IAE5B,OAAO,CAAC,aAAa,CAAwB;IAE7C,6DAA6D;IAE7D,OAAO,CAAC,UAAU,CAAuB;IAEzC,yCAAyC;IAEzC,OAAO,CAAC,YAAY,CAAc;IAElC,yCAAyC;IAEzC,OAAO,CAAC,cAAc,CAAkB;IAExC,uDAAuD;IAEvD,OAAO,CAAC,YAAY,CAAuB;IAE3C,oBAAoB;IAEpB,OAAO,CAAC,aAAa,CAAc;IAEnC,+CAA+C;IAC/C,OAAO,CAAC,gBAAgB,CAAgC;IAExD,qEAAqE;IACrE,OAAO,CAAC,eAAe,CAA4B;IAEnD,yDAAyD;IACzD,OAAO,CAAC,eAAe,CAAgD;IAIvE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAezC,oBAAoB,IAAI,IAAI;IAQ5B;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI;IAcrE,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAkBb,yBAAyB;IACzB,OAAO,CAAC,QAAQ;IAgBhB,oCAAoC;IACpC,OAAO,CAAC,gBAAgB;IAOxB,kCAAkC;IAClC,OAAO,CAAC,QAAQ;IAIhB,iCAAiC;IACjC,OAAO,CAAC,OAAO;IAOf,uCAAuC;IACvC,OAAO,CAAC,YAAY;IAIpB,uCAAuC;IACvC,OAAO,CAAC,YAAY;IAIpB,mCAAmC;IACnC,OAAO,CAAC,eAAe;IAQvB,8CAA8C;YAChC,YAAY;IA0C1B,yBAAyB;YACX,UAAU;IA6BxB,wBAAwB;YACV,SAAS;IAsCvB,4BAA4B;IAC5B,OAAO,CAAC,oBAAoB;IAI5B,iEAAiE;IACjE,OAAO,CAAC,mBAAmB;IAI3B,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAOtB,gCAAgC;IAChC,OAAO,CAAC,iBAAiB;IAIzB,gCAAgC;IAChC,OAAO,CAAC,iBAAiB;IAMzB,0BAA0B;IAC1B,OAAO,CAAC,aAAa;IAsBrB,2BAA2B;IAC3B,OAAO,CAAC,mBAAmB;IAmB3B,0BAA0B;IAC1B,OAAO,CAAC,kBAAkB;IAS1B,2BAA2B;IAC3B,OAAO,CAAC,cAAc;IAQtB,yBAAyB;IACzB,OAAO,CAAC,YAAY;IAYpB,gCAAgC;IAChC,OAAO,CAAC,WAAW;IAoBnB,MAAM;CA6BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,wBAAwB,EAAE,mBAAmB,CAAC;KAC/C;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtc-file-preview-modal.styles.d.ts","sourceRoot":"","sources":["../../../src/components/file-preview/rtc-file-preview-modal.styles.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,MAAM,yBAuSlB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RTC File Thumbnail Component
|
|
3
|
+
*
|
|
4
|
+
* Compact file thumbnail for paste preview and message display.
|
|
5
|
+
* Shows image preview with object-fit: cover, or text file icon.
|
|
6
|
+
* Hover reveals delete button (edit mode only).
|
|
7
|
+
* Supports loading skeleton and error states.
|
|
8
|
+
*
|
|
9
|
+
* @element rtc-file-thumbnail
|
|
10
|
+
* @fires rtc-thumbnail-click - Thumbnail clicked (preview requested)
|
|
11
|
+
* @fires rtc-thumbnail-remove - Delete button clicked
|
|
12
|
+
* @fires rtc-thumbnail-retry - Retry button clicked (error state)
|
|
13
|
+
* @csspart thumbnail - The thumbnail container
|
|
14
|
+
* @csspart remove-btn - The delete button
|
|
15
|
+
*/
|
|
16
|
+
import { LitElement } from 'lit';
|
|
17
|
+
import type { FileAttachment } from '../../types/index.js';
|
|
18
|
+
/** Thumbnail loading state */
|
|
19
|
+
type LoadingState = 'idle' | 'loading' | 'loaded' | 'error';
|
|
20
|
+
export declare class RtcFileThumbnail extends LitElement {
|
|
21
|
+
static styles: import("lit").CSSResult;
|
|
22
|
+
/** File URL (for images) */
|
|
23
|
+
src: string;
|
|
24
|
+
/** MIME type */
|
|
25
|
+
mimetype: string;
|
|
26
|
+
/** File name */
|
|
27
|
+
filename: string;
|
|
28
|
+
/** File size in bytes */
|
|
29
|
+
filesize: number;
|
|
30
|
+
/** Upload task ID (for progress tracking) */
|
|
31
|
+
taskId: string;
|
|
32
|
+
/** Upload progress (0-100) */
|
|
33
|
+
progress: number;
|
|
34
|
+
/** Loading state */
|
|
35
|
+
loadingState: LoadingState;
|
|
36
|
+
/** Error message */
|
|
37
|
+
errorMessage: string;
|
|
38
|
+
/** Sync status (for offline uploads) */
|
|
39
|
+
syncStatus?: 'pending' | 'syncing' | 'synced' | 'failed';
|
|
40
|
+
/** Readonly mode (no delete button) */
|
|
41
|
+
readonly: boolean;
|
|
42
|
+
/** File attachment (preferred over src for self-contained loading) */
|
|
43
|
+
file: FileAttachment | null;
|
|
44
|
+
private _fileStorageCtx;
|
|
45
|
+
private _thumbnailUrl;
|
|
46
|
+
private _imageError;
|
|
47
|
+
/** Check if MIME type is image */
|
|
48
|
+
private _isImage;
|
|
49
|
+
/** Handle thumbnail click */
|
|
50
|
+
private _handleClick;
|
|
51
|
+
/** Handle delete button click */
|
|
52
|
+
private _handleRemove;
|
|
53
|
+
/** Handle retry button click */
|
|
54
|
+
private _handleRetry;
|
|
55
|
+
/** Handle image load error */
|
|
56
|
+
private _handleImageError;
|
|
57
|
+
/** Lifecycle: trigger thumbnail loading when file changes */
|
|
58
|
+
updated(changed: Map<string | number | symbol, unknown>): void;
|
|
59
|
+
/** Lifecycle: cleanup blob URL references */
|
|
60
|
+
disconnectedCallback(): void;
|
|
61
|
+
/** Load thumbnail URL from FileStorage or use src fallback */
|
|
62
|
+
private _loadThumbnail;
|
|
63
|
+
/** Render thumbnail content */
|
|
64
|
+
private _renderThumbnail;
|
|
65
|
+
/** Render circular progress overlay */
|
|
66
|
+
private _renderProgressBar;
|
|
67
|
+
/** Render sync status badge */
|
|
68
|
+
private _renderSyncBadge;
|
|
69
|
+
/** Render delete button */
|
|
70
|
+
private _renderRemoveButton;
|
|
71
|
+
/** Render filename overlay */
|
|
72
|
+
private _renderFilename;
|
|
73
|
+
render(): import("lit").TemplateResult<1>;
|
|
74
|
+
}
|
|
75
|
+
declare global {
|
|
76
|
+
interface HTMLElementTagNameMap {
|
|
77
|
+
'rtc-file-thumbnail': RtcFileThumbnail;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=rtc-file-thumbnail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtc-file-thumbnail.d.ts","sourceRoot":"","sources":["../../../src/components/file-preview/rtc-file-thumbnail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;AAQ9C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAKzD,8BAA8B;AAC9B,KAAK,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5D,qBAEa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,0BAAU;IAEvB,4BAA4B;IAE5B,GAAG,EAAE,MAAM,CAAM;IAEjB,gBAAgB;IAEhB,QAAQ,EAAE,MAAM,CAAM;IAEtB,gBAAgB;IAEhB,QAAQ,EAAE,MAAM,CAAM;IAEtB,yBAAyB;IAEzB,QAAQ,EAAE,MAAM,CAAK;IAErB,6CAA6C;IAE7C,MAAM,EAAE,MAAM,CAAM;IAEpB,8BAA8B;IAE9B,QAAQ,EAAE,MAAM,CAAK;IAErB,oBAAoB;IAEpB,YAAY,EAAE,YAAY,CAAU;IAEpC,oBAAoB;IAEpB,YAAY,EAAE,MAAM,CAAM;IAE1B,wCAAwC;IAExC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEzD,uCAAuC;IAEvC,QAAQ,EAAE,OAAO,CAAS;IAE1B,sEAAsE;IAEtE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAQ;IAInC,OAAO,CAAC,eAAe,CAAgD;IAGvE,OAAO,CAAC,aAAa,CAAc;IAGnC,OAAO,CAAC,WAAW,CAAkB;IAErC,kCAAkC;IAClC,OAAO,CAAC,QAAQ;IAIhB,6BAA6B;IAC7B,OAAO,CAAC,YAAY;IAUpB,iCAAiC;IACjC,OAAO,CAAC,aAAa;IAWrB,gCAAgC;IAChC,OAAO,CAAC,YAAY;IAWpB,8BAA8B;IAC9B,OAAO,CAAC,iBAAiB;IAKzB,6DAA6D;IAC7D,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO9D,6CAA6C;IAC7C,oBAAoB,IAAI,IAAI;IAa5B,8DAA8D;YAChD,cAAc;IA6B5B,+BAA+B;IAC/B,OAAO,CAAC,gBAAgB;IAuCxB,uCAAuC;IACvC,OAAO,CAAC,kBAAkB;IAwB1B,+BAA+B;IAC/B,OAAO,CAAC,gBAAgB;IAkBxB,2BAA2B;IAC3B,OAAO,CAAC,mBAAmB;IAY3B,8BAA8B;IAC9B,OAAO,CAAC,eAAe;IASvB,MAAM;CAwBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtc-file-thumbnail.styles.d.ts","sourceRoot":"","sources":["../../../src/components/file-preview/rtc-file-thumbnail.styles.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,MAAM,yBAqNlB,CAAC"}
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
* RTC Input Area Component
|
|
3
3
|
*
|
|
4
4
|
* Message textarea with bottom toolbar (attach, tool, mode, send buttons).
|
|
5
|
-
* Layout:
|
|
5
|
+
* Layout: file preview area on top (when files are attached), textarea in middle,
|
|
6
|
+
* toolbar on bottom (matches Claude Code UI).
|
|
6
7
|
* Enter to submit, Shift+Enter for newline.
|
|
8
|
+
* Supports file paste upload: paste images or files from clipboard.
|
|
7
9
|
*
|
|
8
10
|
* The mode panel is rendered inside this component's shadow DOM and positioned
|
|
9
11
|
* with @floating-ui/dom relative to the mode button, so it never overflows
|
|
10
12
|
* the rtc-agent window boundary.
|
|
11
13
|
*
|
|
12
14
|
* @element rtc-input-area
|
|
13
|
-
* @fires rtc-input-submit - User submitted message (detail: {
|
|
15
|
+
* @fires rtc-input-submit - User submitted message (detail: { contentData })
|
|
14
16
|
* @fires rtc-command-requested - User submitted a slash command (detail: { name, args })
|
|
15
17
|
* @fires rtc-voice-input-requested - User clicked voice input button
|
|
16
18
|
* @csspart textarea - The textarea element
|
|
@@ -20,10 +22,12 @@
|
|
|
20
22
|
* @csspart voice-btn - The voice input button
|
|
21
23
|
*/
|
|
22
24
|
import { LitElement } from 'lit';
|
|
25
|
+
import type { FileAttachment } from '../../types/index.js';
|
|
23
26
|
import '../overlay/rtc-mode-panel.js';
|
|
24
27
|
import '../overlay/rtc-command-panel.js';
|
|
25
28
|
import '../overlay/rtc-scenario-panel.js';
|
|
26
29
|
import '../token-usage/rtc-token-usage.js';
|
|
30
|
+
import '../file-preview/rtc-file-preview-area.js';
|
|
27
31
|
export declare class RtcInputArea extends LitElement {
|
|
28
32
|
static styles: import("lit").CSSResult;
|
|
29
33
|
/** Theme mode */
|
|
@@ -58,6 +62,22 @@ export declare class RtcInputArea extends LitElement {
|
|
|
58
62
|
private _turnCount;
|
|
59
63
|
private _messageCtx;
|
|
60
64
|
private _settingsCtx;
|
|
65
|
+
private _fileStorageCtx;
|
|
66
|
+
private _pendingFiles;
|
|
67
|
+
private _uploadProgress;
|
|
68
|
+
private _uploadStates;
|
|
69
|
+
/** File objects for retry (fileid → File) */
|
|
70
|
+
private _fileObjects;
|
|
71
|
+
/** Public getters for file state (used by parent to render preview-area) */
|
|
72
|
+
get pendingFiles(): {
|
|
73
|
+
mimetype: string;
|
|
74
|
+
fileid: string;
|
|
75
|
+
extra?: {
|
|
76
|
+
[key: string]: unknown;
|
|
77
|
+
};
|
|
78
|
+
}[];
|
|
79
|
+
get uploadProgress(): Map<string, number>;
|
|
80
|
+
get uploadStates(): Map<string, string>;
|
|
61
81
|
private _value;
|
|
62
82
|
private _showModePanel;
|
|
63
83
|
private _showCommandPanel;
|
|
@@ -92,6 +112,37 @@ export declare class RtcInputArea extends LitElement {
|
|
|
92
112
|
private _scenarioPanelCtrl;
|
|
93
113
|
private get _textarea();
|
|
94
114
|
private _handleVoice;
|
|
115
|
+
/**
|
|
116
|
+
* Handle paste event: extract files from clipboard and upload them
|
|
117
|
+
*/
|
|
118
|
+
private _handlePaste;
|
|
119
|
+
/**
|
|
120
|
+
* Upload files: cache locally first to get real fileid, then display immediately,
|
|
121
|
+
* then upload to S3 in background.
|
|
122
|
+
*
|
|
123
|
+
* Flow:
|
|
124
|
+
* 1. cacheFileForUpload() → writes to local cache (syncStatus='pending'), returns real fileid
|
|
125
|
+
* 2. Create FileAttachment with real fileid (md5.ext)
|
|
126
|
+
* 3. Display immediately (rtc-file-thumbnail loads from FileStorage cache)
|
|
127
|
+
* 4. Background upload() to S3
|
|
128
|
+
*/
|
|
129
|
+
private _uploadFiles;
|
|
130
|
+
/**
|
|
131
|
+
* Upload a single file to S3 (background sync after local caching).
|
|
132
|
+
*/
|
|
133
|
+
private _syncToS3;
|
|
134
|
+
/**
|
|
135
|
+
* Public method: remove a file from pending list (called by parent)
|
|
136
|
+
*/
|
|
137
|
+
removeFile(file: FileAttachment, index: number): void;
|
|
138
|
+
/**
|
|
139
|
+
* Public method: retry a failed upload (called by parent)
|
|
140
|
+
*/
|
|
141
|
+
retryUpload(taskId: string): void;
|
|
142
|
+
/**
|
|
143
|
+
* Notify parent component of file state changes
|
|
144
|
+
*/
|
|
145
|
+
private _notifyFileStateChange;
|
|
95
146
|
/**
|
|
96
147
|
* Public method: set input box content (used for pre-filling in scenarios like fork)
|
|
97
148
|
*/
|
|
@@ -101,6 +152,8 @@ export declare class RtcInputArea extends LitElement {
|
|
|
101
152
|
*/
|
|
102
153
|
clearValue(): void;
|
|
103
154
|
private get _hasContent();
|
|
155
|
+
/** Check if form can be submitted (has content and no files are uploading or failed) */
|
|
156
|
+
private get _canSubmit();
|
|
104
157
|
private get _hasActiveTurns();
|
|
105
158
|
/** Current session has active turns and input is empty → show stop button; otherwise show send button. */
|
|
106
159
|
private get _showStop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-input-area.d.ts","sourceRoot":"","sources":["../../../src/components/input-area/rtc-input-area.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rtc-input-area.d.ts","sourceRoot":"","sources":["../../../src/components/input-area/rtc-input-area.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-input-area.styles.d.ts","sourceRoot":"","sources":["../../../src/components/input-area/rtc-input-area.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"rtc-input-area.styles.d.ts","sourceRoot":"","sources":["../../../src/components/input-area/rtc-input-area.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAmOlB,CAAC"}
|
|
@@ -91,6 +91,7 @@ import '../file-explorer/rtc-file-explorer.js';
|
|
|
91
91
|
import '../editor-area/rtc-editor-area.js';
|
|
92
92
|
import '../status-bar/rtc-status-bar.js';
|
|
93
93
|
import '../chat-layout/rtc-chat-layout.js';
|
|
94
|
+
import '../file-preview/rtc-file-preview-modal.js';
|
|
94
95
|
import '../settings-layout/rtc-settings-layout.js';
|
|
95
96
|
import '../function-tree/rtc-function-tree.js';
|
|
96
97
|
import '../functions-layout/rtc-functions-layout.js';
|
|
@@ -439,6 +440,8 @@ export declare class RtcAgent extends LitElement {
|
|
|
439
440
|
}) => boolean | Promise<boolean>;
|
|
440
441
|
/** Whether gap fill syncing overlay is shown. */
|
|
441
442
|
private _isSyncing;
|
|
443
|
+
/** File currently being previewed (null = modal closed). Rendered at window-container level. */
|
|
444
|
+
private _previewFile;
|
|
442
445
|
/** RTC processor (instantiated after persistence connect). */
|
|
443
446
|
private _rtcProcessor?;
|
|
444
447
|
get windowStateController(): WindowStateController;
|
|
@@ -495,7 +498,13 @@ export declare class RtcAgent extends LitElement {
|
|
|
495
498
|
private _functionsProvider;
|
|
496
499
|
private _functionDebugProvider;
|
|
497
500
|
private _logoProvider;
|
|
501
|
+
private _fileStorageProvider;
|
|
498
502
|
private _localeProvider;
|
|
503
|
+
private _fileStorage;
|
|
504
|
+
/**
|
|
505
|
+
* Initialize FileStorage when WorkerBridge and userId are available
|
|
506
|
+
*/
|
|
507
|
+
private _initializeFileStorage;
|
|
499
508
|
connectedCallback(): void;
|
|
500
509
|
/**
|
|
501
510
|
* Connect to the persistence layer with error handling and retry.
|
|
@@ -578,6 +587,8 @@ export declare class RtcAgent extends LitElement {
|
|
|
578
587
|
private _handleLoginRequested;
|
|
579
588
|
private _handleLoginComplete;
|
|
580
589
|
private _handleLoginDialogClose;
|
|
590
|
+
private _handleFilePreviewRequested;
|
|
591
|
+
private _handleFilePreviewClose;
|
|
581
592
|
/**
|
|
582
593
|
* Read current session's pending_turn_count / running_turn_count from persistence,
|
|
583
594
|
* write to TurnCountContext for <rtc-input-area> to render send/stop buttons.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-agent.d.ts","sourceRoot":"","sources":["../../../src/components/rtc-agent/rtc-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"rtc-agent.d.ts","sourceRoot":"","sources":["../../../src/components/rtc-agent/rtc-agent.ts"],"names":[],"mappings":"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"}
|