@djangocfg/ui-tools 2.1.381 → 2.1.382
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 +132 -899
- package/dist/ChatRoot-6IZFM5HM.mjs +5 -0
- package/dist/{ChatRoot-EJC5Y2YM.cjs.map → ChatRoot-6IZFM5HM.mjs.map} +1 -1
- package/dist/ChatRoot-LW4XNIKP.cjs +14 -0
- package/dist/{ChatRoot-QOSKJPM6.mjs.map → ChatRoot-LW4XNIKP.cjs.map} +1 -1
- package/dist/DictationField-2ZLQWLYV.mjs +4 -0
- package/dist/DictationField-2ZLQWLYV.mjs.map +1 -0
- package/dist/DictationField-IPPJ54CU.cjs +13 -0
- package/dist/DictationField-IPPJ54CU.cjs.map +1 -0
- package/dist/{DocsLayout-2YKPXZYO.mjs → DocsLayout-2P3ONDWJ.mjs} +3 -3
- package/dist/{DocsLayout-2YKPXZYO.mjs.map → DocsLayout-2P3ONDWJ.mjs.map} +1 -1
- package/dist/{DocsLayout-Q4KS3QWW.cjs → DocsLayout-2YZNS5VK.cjs} +8 -8
- package/dist/{DocsLayout-Q4KS3QWW.cjs.map → DocsLayout-2YZNS5VK.cjs.map} +1 -1
- package/dist/chunk-4LXG3NBV.mjs +833 -0
- package/dist/chunk-4LXG3NBV.mjs.map +1 -0
- package/dist/{chunk-XACCHZH2.cjs → chunk-FIRK5CEH.cjs} +42 -4
- package/dist/chunk-FIRK5CEH.cjs.map +1 -0
- package/dist/{chunk-NWUT327A.mjs → chunk-HIK6BPL7.mjs} +38 -5
- package/dist/chunk-HIK6BPL7.mjs.map +1 -0
- package/dist/chunk-KMSBGNVC.cjs +835 -0
- package/dist/chunk-KMSBGNVC.cjs.map +1 -0
- package/dist/chunk-OZAU3QWD.cjs +2493 -0
- package/dist/chunk-OZAU3QWD.cjs.map +1 -0
- package/dist/chunk-UWVP6LCW.mjs +2447 -0
- package/dist/chunk-UWVP6LCW.mjs.map +1 -0
- package/dist/index.cjs +1532 -100
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1148 -107
- package/dist/index.d.ts +1148 -107
- package/dist/index.mjs +1421 -51
- package/dist/index.mjs.map +1 -1
- package/package.json +16 -8
- package/src/audio-assets.d.ts +8 -0
- package/src/components/markdown/MarkdownMessage/CollapseToggle.tsx +3 -1
- package/src/components/markdown/MarkdownMessage/components.tsx +2 -5
- package/src/stories/index.ts +32 -2
- package/src/tools/Chat/README.md +347 -530
- package/src/tools/Chat/components/Attachments.tsx +6 -1
- package/src/tools/Chat/components/ChatRoot.tsx +30 -2
- package/src/tools/Chat/components/Composer.tsx +20 -3
- package/src/tools/Chat/components/ErrorBanner.tsx +7 -3
- package/src/tools/Chat/components/MessageActions.tsx +3 -1
- package/src/tools/Chat/components/MessageBubble.tsx +6 -5
- package/src/tools/Chat/components/MessageList.tsx +87 -1
- package/src/tools/Chat/components/ToolCalls.tsx +21 -3
- package/src/tools/Chat/context/ChatProvider.tsx +21 -3
- package/src/tools/Chat/core/audio/audioBus.ts +10 -163
- package/src/tools/Chat/core/audio/defaults.ts +43 -0
- package/src/tools/Chat/core/audio/index.ts +1 -0
- package/src/tools/Chat/core/audio/preferences.ts +5 -59
- package/src/tools/Chat/core/audio/sounds/error.mp3 +0 -0
- package/src/tools/Chat/core/audio/sounds/mention.mp3 +0 -0
- package/src/tools/Chat/core/audio/sounds/notification.mp3 +0 -0
- package/src/tools/Chat/core/audio/sounds/received.mp3 +0 -0
- package/src/tools/Chat/core/audio/sounds/sent.mp3 +0 -0
- package/src/tools/Chat/core/audio/sounds/start.mp3 +0 -0
- package/src/tools/Chat/core/audio/types.ts +28 -0
- package/src/tools/Chat/core/reducer.ts +33 -0
- package/src/tools/Chat/core/transport/index.ts +13 -0
- package/src/tools/Chat/core/transport/mappers/index.ts +6 -0
- package/src/tools/Chat/core/transport/mappers/pydantic-ai.ts +142 -0
- package/src/tools/Chat/core/transport/pydantic-ai-transport.ts +208 -0
- package/src/tools/Chat/core/transport/sse.ts +18 -5
- package/src/tools/Chat/hooks/index.ts +25 -0
- package/src/tools/Chat/hooks/useAutoFocusOnStreamEnd.ts +5 -3
- package/src/tools/Chat/hooks/useChat.ts +28 -0
- package/src/tools/Chat/hooks/useChatAudio.ts +59 -180
- package/src/tools/Chat/hooks/useChatDockPrefs.ts +74 -0
- package/src/tools/Chat/hooks/useChatReset.ts +70 -0
- package/src/tools/Chat/hooks/useChatUnread.ts +87 -0
- package/src/tools/Chat/hooks/useFocusOnEmptyClick.ts +111 -0
- package/src/tools/Chat/hooks/useVisitorFingerprint.ts +48 -0
- package/src/tools/Chat/index.ts +69 -1
- package/src/tools/Chat/launcher/ChatDock.tsx +263 -0
- package/src/tools/Chat/launcher/ChatFAB.tsx +349 -0
- package/src/tools/Chat/launcher/ChatGreeting.tsx +200 -0
- package/src/tools/Chat/launcher/ChatHeader.tsx +76 -0
- package/src/tools/Chat/launcher/ChatHeaderActionButton.tsx +87 -0
- package/src/tools/Chat/launcher/ChatHeaderAudioToggle.tsx +47 -0
- package/src/tools/Chat/launcher/ChatHeaderLanguageButton.tsx +179 -0
- package/src/tools/Chat/launcher/ChatHeaderModeToggle.tsx +57 -0
- package/src/tools/Chat/launcher/ChatHeaderResetButton.tsx +93 -0
- package/src/tools/Chat/launcher/ChatLauncher.tsx +321 -0
- package/src/tools/Chat/launcher/ChatUnreadPreview.tsx +197 -0
- package/src/tools/Chat/launcher/index.ts +46 -0
- package/src/tools/Chat/launcher/useChatPresence.ts +44 -0
- package/src/tools/Chat/stories/01-basic.story.tsx +64 -0
- package/src/tools/Chat/stories/02-bubbles.story.tsx +21 -0
- package/src/tools/Chat/stories/03-tool-calls.story.tsx +59 -0
- package/src/tools/Chat/stories/04-personas.story.tsx +78 -0
- package/src/tools/Chat/stories/05-launcher.story.tsx +321 -0
- package/src/tools/Chat/stories/06-header.story.tsx +147 -0
- package/src/tools/Chat/stories/07-audio-actions.story.tsx +112 -0
- package/src/tools/Chat/stories/shared/Frame.tsx +21 -0
- package/src/tools/Chat/stories/shared/index.ts +5 -0
- package/src/tools/Chat/stories/shared/messages.ts +39 -0
- package/src/tools/Chat/stories/shared/personas.ts +13 -0
- package/src/tools/Chat/stories/shared/seeds.ts +92 -0
- package/src/tools/Chat/stories/shared/transports.ts +36 -0
- package/src/tools/Chat/styles/bubbleTokens.ts +71 -0
- package/src/tools/Chat/styles/index.ts +16 -0
- package/src/tools/Chat/styles/useChatStyles.ts +101 -0
- package/src/tools/Chat/types/attachment.ts +25 -0
- package/src/tools/Chat/types/config.ts +48 -0
- package/src/tools/Chat/types/events.ts +35 -0
- package/src/tools/Chat/types/index.ts +34 -0
- package/src/tools/Chat/types/labels.ts +38 -0
- package/src/tools/Chat/types/message.ts +32 -0
- package/src/tools/Chat/types/persona.ts +31 -0
- package/src/tools/Chat/types/session.ts +43 -0
- package/src/tools/Chat/types/tool-call.ts +17 -0
- package/src/tools/Chat/types/transport.ts +28 -0
- package/src/tools/Chat/types.ts +5 -240
- package/src/tools/MarkdownEditor/MarkdownEditor.tsx +50 -14
- package/src/tools/MarkdownEditor/index.ts +1 -1
- package/src/tools/SpeechRecognition/README.md +336 -0
- package/src/tools/SpeechRecognition/__tests__/ids.test.ts +15 -0
- package/src/tools/SpeechRecognition/__tests__/language.test.ts +59 -0
- package/src/tools/SpeechRecognition/__tests__/reducer.test.ts +71 -0
- package/src/tools/SpeechRecognition/__tests__/transcript.test.ts +52 -0
- package/src/tools/SpeechRecognition/components/DevicePicker.tsx +49 -0
- package/src/tools/SpeechRecognition/components/DictationButton.tsx +93 -0
- package/src/tools/SpeechRecognition/components/EngineBadge.tsx +30 -0
- package/src/tools/SpeechRecognition/components/ErrorBanner.tsx +52 -0
- package/src/tools/SpeechRecognition/components/LanguagePicker.tsx +63 -0
- package/src/tools/SpeechRecognition/components/MicMeter.tsx +63 -0
- package/src/tools/SpeechRecognition/components/PushToTalkHint.tsx +51 -0
- package/src/tools/SpeechRecognition/components/TranscriptView.tsx +55 -0
- package/src/tools/SpeechRecognition/components/index.ts +16 -0
- package/src/tools/SpeechRecognition/context/SpeechRecognitionProvider.tsx +47 -0
- package/src/tools/SpeechRecognition/context/index.ts +6 -0
- package/src/tools/SpeechRecognition/core/audio/defaults.ts +24 -0
- package/src/tools/SpeechRecognition/core/engine/external.ts +222 -0
- package/src/tools/SpeechRecognition/core/engine/http.ts +147 -0
- package/src/tools/SpeechRecognition/core/engine/index.ts +52 -0
- package/src/tools/SpeechRecognition/core/engine/mediarecorder.ts +105 -0
- package/src/tools/SpeechRecognition/core/engine/websocket.ts +211 -0
- package/src/tools/SpeechRecognition/core/engine/webspeech.ts +188 -0
- package/src/tools/SpeechRecognition/core/ids.ts +11 -0
- package/src/tools/SpeechRecognition/core/index.ts +14 -0
- package/src/tools/SpeechRecognition/core/language.ts +78 -0
- package/src/tools/SpeechRecognition/core/languages-catalog.ts +229 -0
- package/src/tools/SpeechRecognition/core/logger.ts +3 -0
- package/src/tools/SpeechRecognition/core/reducer.ts +105 -0
- package/src/tools/SpeechRecognition/core/transcript.ts +36 -0
- package/src/tools/SpeechRecognition/hooks/index.ts +14 -0
- package/src/tools/SpeechRecognition/hooks/useDictation.ts +59 -0
- package/src/tools/SpeechRecognition/hooks/useEnginePrefs.ts +15 -0
- package/src/tools/SpeechRecognition/hooks/useMicDevices.ts +57 -0
- package/src/tools/SpeechRecognition/hooks/useMicLevel.ts +52 -0
- package/src/tools/SpeechRecognition/hooks/usePushToTalk.ts +85 -0
- package/src/tools/SpeechRecognition/hooks/useResolvedLanguage.ts +28 -0
- package/src/tools/SpeechRecognition/hooks/useSpeechLanguageInfo.ts +108 -0
- package/src/tools/SpeechRecognition/hooks/useSpeechRecognition.ts +188 -0
- package/src/tools/SpeechRecognition/hooks/useVoiceSupport.ts +78 -0
- package/src/tools/SpeechRecognition/index.ts +82 -0
- package/src/tools/SpeechRecognition/lazy.tsx +19 -0
- package/src/tools/SpeechRecognition/store/index.ts +2 -0
- package/src/tools/SpeechRecognition/store/prefsStore.ts +54 -0
- package/src/tools/SpeechRecognition/stories/01-basic.story.tsx +32 -0
- package/src/tools/SpeechRecognition/stories/02-dictation-field.story.tsx +32 -0
- package/src/tools/SpeechRecognition/stories/03-push-to-talk.story.tsx +27 -0
- package/src/tools/SpeechRecognition/stories/04-mic-meter.story.tsx +35 -0
- package/src/tools/SpeechRecognition/stories/05-custom-engine-http.story.tsx +40 -0
- package/src/tools/SpeechRecognition/stories/06-custom-engine-ws.story.tsx +48 -0
- package/src/tools/SpeechRecognition/stories/07-language-device.story.tsx +57 -0
- package/src/tools/SpeechRecognition/stories/08-errors-permissions.story.tsx +25 -0
- package/src/tools/SpeechRecognition/stories/09-chat-voice.story.tsx +90 -0
- package/src/tools/SpeechRecognition/stories/shared.tsx +123 -0
- package/src/tools/SpeechRecognition/types.ts +133 -0
- package/src/tools/SpeechRecognition/widgets/DictationField.tsx +105 -0
- package/src/tools/SpeechRecognition/widgets/VoiceComposerSlot.tsx +305 -0
- package/src/tools/SpeechRecognition/widgets/VoiceMessageRecorder.tsx +88 -0
- package/src/tools/SpeechRecognition/widgets/index.ts +6 -0
- package/dist/ChatRoot-EJC5Y2YM.cjs +0 -14
- package/dist/ChatRoot-QOSKJPM6.mjs +0 -5
- package/dist/chunk-NWUT327A.mjs.map +0 -1
- package/dist/chunk-QLMKCSR6.mjs +0 -2420
- package/dist/chunk-QLMKCSR6.mjs.map +0 -1
- package/dist/chunk-SI5RD2GD.cjs +0 -2460
- package/dist/chunk-SI5RD2GD.cjs.map +0 -1
- package/dist/chunk-XACCHZH2.cjs.map +0 -1
- package/src/tools/Chat/Chat.story.tsx +0 -1457
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@djangocfg/ui-tools",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.382",
|
|
4
4
|
"description": "Heavy React tools with lazy loading - for Electron, Vite, CRA, Next.js apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ui-tools",
|
|
@@ -139,6 +139,11 @@
|
|
|
139
139
|
"import": "./src/tools/VideoPlayer/lazy.tsx",
|
|
140
140
|
"require": "./src/tools/VideoPlayer/lazy.tsx"
|
|
141
141
|
},
|
|
142
|
+
"./speech-recognition": {
|
|
143
|
+
"types": "./src/tools/SpeechRecognition/index.ts",
|
|
144
|
+
"import": "./src/tools/SpeechRecognition/index.ts",
|
|
145
|
+
"require": "./src/tools/SpeechRecognition/index.ts"
|
|
146
|
+
},
|
|
142
147
|
"./styles": "./src/styles/index.css",
|
|
143
148
|
"./dist.css": "./dist/index.css"
|
|
144
149
|
},
|
|
@@ -153,11 +158,13 @@
|
|
|
153
158
|
"clean": "rm -rf dist",
|
|
154
159
|
"dev": "tsup --watch",
|
|
155
160
|
"playground": "playground dev",
|
|
156
|
-
"check": "tsc --noEmit"
|
|
161
|
+
"check": "tsc --noEmit",
|
|
162
|
+
"test": "vitest run",
|
|
163
|
+
"test:watch": "vitest"
|
|
157
164
|
},
|
|
158
165
|
"peerDependencies": {
|
|
159
|
-
"@djangocfg/i18n": "^2.1.
|
|
160
|
-
"@djangocfg/ui-core": "^2.1.
|
|
166
|
+
"@djangocfg/i18n": "^2.1.382",
|
|
167
|
+
"@djangocfg/ui-core": "^2.1.382",
|
|
161
168
|
"consola": "^3.4.2",
|
|
162
169
|
"lodash-es": "^4.18.1",
|
|
163
170
|
"lucide-react": "^0.545.0",
|
|
@@ -211,10 +218,10 @@
|
|
|
211
218
|
"material-file-icons": "^2.4.0"
|
|
212
219
|
},
|
|
213
220
|
"devDependencies": {
|
|
214
|
-
"@djangocfg/i18n": "^2.1.
|
|
221
|
+
"@djangocfg/i18n": "^2.1.382",
|
|
215
222
|
"@djangocfg/playground": "workspace:*",
|
|
216
|
-
"@djangocfg/typescript-config": "^2.1.
|
|
217
|
-
"@djangocfg/ui-core": "^2.1.
|
|
223
|
+
"@djangocfg/typescript-config": "^2.1.382",
|
|
224
|
+
"@djangocfg/ui-core": "^2.1.382",
|
|
218
225
|
"@types/lodash-es": "^4.17.12",
|
|
219
226
|
"@types/mapbox__mapbox-gl-draw": "^1.4.8",
|
|
220
227
|
"@types/node": "^24.7.2",
|
|
@@ -226,7 +233,8 @@
|
|
|
226
233
|
"react-dom": "^19.1.0",
|
|
227
234
|
"tailwindcss": "^4.1.18",
|
|
228
235
|
"tsup": "^8.5.0",
|
|
229
|
-
"typescript": "^5.9.3"
|
|
236
|
+
"typescript": "^5.9.3",
|
|
237
|
+
"vitest": "^3.1.4"
|
|
230
238
|
},
|
|
231
239
|
"publishConfig": {
|
|
232
240
|
"access": "public"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Audio assets are bundled as base64 data URLs via tsup's `dataurl` loader
|
|
2
|
+
// (see `tsup.config.ts`). This declaration lets TypeScript accept the
|
|
3
|
+
// `import receivedSound from './sounds/received.mp3'` pattern.
|
|
4
|
+
|
|
5
|
+
declare module '*.mp3' {
|
|
6
|
+
const src: string;
|
|
7
|
+
export default src;
|
|
8
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React, { memo } from 'react';
|
|
2
2
|
|
|
3
|
+
import { TOGGLE } from '../../../tools/Chat/styles/bubbleTokens';
|
|
4
|
+
|
|
3
5
|
interface CollapseToggleProps {
|
|
4
6
|
isCollapsed: boolean;
|
|
5
7
|
onClick: () => void;
|
|
@@ -31,7 +33,7 @@ function CollapseToggleRaw({
|
|
|
31
33
|
className={`
|
|
32
34
|
${textSize} font-medium cursor-pointer
|
|
33
35
|
transition-colors duration-200
|
|
34
|
-
${isUser ?
|
|
36
|
+
${isUser ? TOGGLE.user : TOGGLE.assistant}
|
|
35
37
|
inline-flex items-center gap-1
|
|
36
38
|
mt-1
|
|
37
39
|
`}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Components } from 'react-markdown';
|
|
3
3
|
import Mermaid from '../../../tools/Mermaid';
|
|
4
|
+
import { ANCHOR } from '../../../tools/Chat/styles/bubbleTokens';
|
|
4
5
|
import { CodeBlock, CodeBlockFallback } from './CodeBlock';
|
|
5
6
|
import { extractTextFromChildren } from './plainText';
|
|
6
7
|
|
|
@@ -61,11 +62,7 @@ export function createMarkdownComponents(
|
|
|
61
62
|
<a
|
|
62
63
|
{...rest}
|
|
63
64
|
href={href}
|
|
64
|
-
className={`${textSize} ${
|
|
65
|
-
isUser
|
|
66
|
-
? 'text-white/90 underline hover:text-white'
|
|
67
|
-
: 'text-primary underline hover:text-primary/80'
|
|
68
|
-
} transition-colors break-all`}
|
|
65
|
+
className={`${textSize} ${isUser ? ANCHOR.user : ANCHOR.assistant}`}
|
|
69
66
|
>
|
|
70
67
|
{children}
|
|
71
68
|
</a>
|
package/src/stories/index.ts
CHANGED
|
@@ -16,7 +16,22 @@
|
|
|
16
16
|
import * as CodeEditor from '../tools/CodeEditor/CodeEditor.story';
|
|
17
17
|
import * as PrettyCode from '../tools/PrettyCode/PrettyCode.story';
|
|
18
18
|
import * as MarkdownEditor from '../tools/MarkdownEditor/MarkdownEditor.story';
|
|
19
|
-
import * as
|
|
19
|
+
import * as ChatBasic from '../tools/Chat/stories/01-basic.story';
|
|
20
|
+
import * as ChatBubbles from '../tools/Chat/stories/02-bubbles.story';
|
|
21
|
+
import * as ChatToolCalls from '../tools/Chat/stories/03-tool-calls.story';
|
|
22
|
+
import * as ChatPersonas from '../tools/Chat/stories/04-personas.story';
|
|
23
|
+
import * as ChatLauncher from '../tools/Chat/stories/05-launcher.story';
|
|
24
|
+
import * as ChatHeader from '../tools/Chat/stories/06-header.story';
|
|
25
|
+
import * as ChatAudio from '../tools/Chat/stories/07-audio-actions.story';
|
|
26
|
+
import * as STTBasic from '../tools/SpeechRecognition/stories/01-basic.story';
|
|
27
|
+
import * as STTDictation from '../tools/SpeechRecognition/stories/02-dictation-field.story';
|
|
28
|
+
import * as STTPushToTalk from '../tools/SpeechRecognition/stories/03-push-to-talk.story';
|
|
29
|
+
import * as STTMicMeter from '../tools/SpeechRecognition/stories/04-mic-meter.story';
|
|
30
|
+
import * as STTHttp from '../tools/SpeechRecognition/stories/05-custom-engine-http.story';
|
|
31
|
+
import * as STTWs from '../tools/SpeechRecognition/stories/06-custom-engine-ws.story';
|
|
32
|
+
import * as STTLangDevice from '../tools/SpeechRecognition/stories/07-language-device.story';
|
|
33
|
+
import * as STTErrors from '../tools/SpeechRecognition/stories/08-errors-permissions.story';
|
|
34
|
+
import * as STTChatVoice from '../tools/SpeechRecognition/stories/09-chat-voice.story';
|
|
20
35
|
|
|
21
36
|
export const uiToolsStoryModules: Record<string, StoryModule> = {
|
|
22
37
|
'JsonForm.story.tsx': JsonForm,
|
|
@@ -28,6 +43,21 @@
|
|
|
28
43
|
'CodeEditor.story.tsx': CodeEditor,
|
|
29
44
|
'PrettyCode.story.tsx': PrettyCode,
|
|
30
45
|
'MarkdownEditor.story.tsx': MarkdownEditor,
|
|
31
|
-
'Chat.story.tsx':
|
|
46
|
+
'Chat/01-basic.story.tsx': ChatBasic,
|
|
47
|
+
'Chat/02-bubbles.story.tsx': ChatBubbles,
|
|
48
|
+
'Chat/03-tool-calls.story.tsx': ChatToolCalls,
|
|
49
|
+
'Chat/04-personas.story.tsx': ChatPersonas,
|
|
50
|
+
'Chat/05-launcher.story.tsx': ChatLauncher,
|
|
51
|
+
'Chat/06-header.story.tsx': ChatHeader,
|
|
52
|
+
'Chat/07-audio-actions.story.tsx': ChatAudio,
|
|
53
|
+
'SpeechRecognition/01-basic.story.tsx': STTBasic,
|
|
54
|
+
'SpeechRecognition/02-dictation-field.story.tsx': STTDictation,
|
|
55
|
+
'SpeechRecognition/03-push-to-talk.story.tsx': STTPushToTalk,
|
|
56
|
+
'SpeechRecognition/04-mic-meter.story.tsx': STTMicMeter,
|
|
57
|
+
'SpeechRecognition/05-custom-engine-http.story.tsx': STTHttp,
|
|
58
|
+
'SpeechRecognition/06-custom-engine-ws.story.tsx': STTWs,
|
|
59
|
+
'SpeechRecognition/07-language-device.story.tsx': STTLangDevice,
|
|
60
|
+
'SpeechRecognition/08-errors-permissions.story.tsx': STTErrors,
|
|
61
|
+
'Chat/08-voice-composer.story.tsx': STTChatVoice,
|
|
32
62
|
};
|
|
33
63
|
|