@qwanyx/stack 0.2.67 → 0.2.69
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/client/MailClient.d.ts +26 -0
- package/dist/components/VoiceTextEditor.d.ts +24 -0
- package/dist/index.cjs.js +36 -34
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +1896 -1717
- package/package.json +1 -1
|
@@ -150,6 +150,32 @@ export declare class MailClient {
|
|
|
150
150
|
size: number;
|
|
151
151
|
}>;
|
|
152
152
|
} | null>;
|
|
153
|
+
/**
|
|
154
|
+
* Find an email in All Mail by Message-ID or FROM+SUBJECT
|
|
155
|
+
* Useful for finding archived/moved emails when UID is stale
|
|
156
|
+
*
|
|
157
|
+
* @param accountId - The account to search in
|
|
158
|
+
* @param criteria - Search criteria (message_id takes precedence, then from+subject)
|
|
159
|
+
* @returns The found email or null
|
|
160
|
+
*/
|
|
161
|
+
findEmailInAllMail(accountId: string, criteria: {
|
|
162
|
+
message_id?: string;
|
|
163
|
+
from?: string;
|
|
164
|
+
subject?: string;
|
|
165
|
+
folder?: string;
|
|
166
|
+
}): Promise<{
|
|
167
|
+
found: boolean;
|
|
168
|
+
email?: {
|
|
169
|
+
uid: number;
|
|
170
|
+
message_id?: string;
|
|
171
|
+
subject: string;
|
|
172
|
+
from: string;
|
|
173
|
+
to: string;
|
|
174
|
+
date: string;
|
|
175
|
+
body: string;
|
|
176
|
+
has_attachments: boolean;
|
|
177
|
+
};
|
|
178
|
+
}>;
|
|
153
179
|
/**
|
|
154
180
|
* Convert content (string | ArrayBuffer | Uint8Array) to base64 string
|
|
155
181
|
*/
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VoiceTextEditor Component
|
|
3
|
+
* Combines AudioEditor (recorder + transcription) with a textarea + AI dropdown
|
|
4
|
+
* Pattern from TaskEditModal: AudioEditor + Notes component
|
|
5
|
+
*/
|
|
6
|
+
export interface VoiceTextEditorProps {
|
|
7
|
+
/** Label shown above the textarea */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Current text value */
|
|
10
|
+
value: string;
|
|
11
|
+
/** Called when text changes */
|
|
12
|
+
onChange: (value: string) => void;
|
|
13
|
+
/** Called to transcribe audio - should return transcribed text */
|
|
14
|
+
onTranscribe: (audioBlob: Blob) => Promise<string | null>;
|
|
15
|
+
/** Called for AI actions - should return transformed text */
|
|
16
|
+
onAIAction?: (action: 'restructure' | 'proofread' | 'rewrite', text: string) => Promise<string>;
|
|
17
|
+
/** Placeholder text for textarea */
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
/** Additional CSS classes */
|
|
20
|
+
className?: string;
|
|
21
|
+
/** Number of rows for textarea (if not flex) */
|
|
22
|
+
rows?: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function VoiceTextEditor({ label, value, onChange, onTranscribe, onAIAction, placeholder, className, rows }: VoiceTextEditorProps): import("react/jsx-runtime").JSX.Element;
|