@bitbaum/chatkit 0.22.1 → 0.24.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 +68 -0
- package/dist/dictation.d.ts +13 -1
- package/dist/dictation.d.ts.map +1 -1
- package/dist/dictation.js +27 -0
- package/dist/dictation.js.map +1 -1
- package/dist/react/CommentThread.d.ts +69 -0
- package/dist/react/CommentThread.d.ts.map +1 -0
- package/dist/react/CommentThread.js +78 -0
- package/dist/react/CommentThread.js.map +1 -0
- package/dist/react/Composer.d.ts.map +1 -1
- package/dist/react/Composer.js +5 -29
- package/dist/react/Composer.js.map +1 -1
- package/dist/react/DictationField.d.ts +78 -0
- package/dist/react/DictationField.d.ts.map +1 -0
- package/dist/react/DictationField.js +128 -0
- package/dist/react/DictationField.js.map +1 -0
- package/dist/react/Voice.d.ts +27 -0
- package/dist/react/Voice.d.ts.map +1 -0
- package/dist/react/Voice.js +43 -0
- package/dist/react/Voice.js.map +1 -0
- package/dist/react/index.d.ts +4 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +2 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/use-dictation.d.ts +4 -0
- package/dist/react/use-dictation.d.ts.map +1 -1
- package/dist/react/use-dictation.js +4 -4
- package/dist/react/use-dictation.js.map +1 -1
- package/package.json +3 -3
- package/styles.css +232 -0
package/README.md
CHANGED
|
@@ -422,6 +422,68 @@ remembered for 30 days so the next press records immediately. Every failure is
|
|
|
422
422
|
shown in words (blocked mic, nothing heard, not available), never as a button
|
|
423
423
|
that does nothing. `rememberKey: null` stores nothing on the device.
|
|
424
424
|
|
|
425
|
+
### Any other text box — `DictationField` (0.23)
|
|
426
|
+
|
|
427
|
+
A text box that is not a conversation — a note, a title, a bio, a message to a
|
|
428
|
+
seller — is still a place a person would rather speak than type. Every such
|
|
429
|
+
box is this component, not a `<textarea>` made by hand:
|
|
430
|
+
|
|
431
|
+
```tsx
|
|
432
|
+
<DictationField
|
|
433
|
+
label="Note"
|
|
434
|
+
value={note}
|
|
435
|
+
onValueChange={setNote}
|
|
436
|
+
voice={{ transcribeUrl: "/api/transcribe" }} // the same server leg as Composer
|
|
437
|
+
improve={{ // optional: writing help
|
|
438
|
+
suggestions: ["Make it tighter", "Fix the grammar"],
|
|
439
|
+
run: async (text, instruction) => (await askYourModel(text, instruction)) ?? null,
|
|
440
|
+
}}
|
|
441
|
+
/>
|
|
442
|
+
<DictationField label="Title" value={title} onValueChange={setTitle} multiline={false} />
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
The microphone is `Composer`'s: Web Speech first, recording when the browser's
|
|
446
|
+
recogniser is silent, a take shown with its timer and kept for a retry when
|
|
447
|
+
transcription fails. Dictation appends to what is there. 16px text, 44px
|
|
448
|
+
targets, a visible label wired to the field.
|
|
449
|
+
|
|
450
|
+
`improve` is chatkit's half of writing help only: how a person asks (one tap on
|
|
451
|
+
a suggestion, or say or type what to change), that it is working, that it
|
|
452
|
+
failed — in words, with their text untouched — and **Undo** until the next edit.
|
|
453
|
+
Chatkit ships no model call and no prompt: `run` is yours (or
|
|
454
|
+
`@bitbaum/writingkit`'s `assist`). Return `null` when it could not be done.
|
|
455
|
+
|
|
456
|
+
Single-line fields (`multiline={false}`) keep the controls beside the text. Colour
|
|
457
|
+
and radius follow the same `--ck-*` variables as the composer. The styles are
|
|
458
|
+
in `styles.css` (not in the embedded `styles/chat.css`: this is not a chat
|
|
459
|
+
surface).
|
|
460
|
+
|
|
461
|
+
### Comments — `CommentThread` (0.23)
|
|
462
|
+
|
|
463
|
+
The conversation under anything: an article, a page, a listing.
|
|
464
|
+
|
|
465
|
+
```tsx
|
|
466
|
+
<CommentThread
|
|
467
|
+
comments={loaded} // oldest first; re-mount with a key to reload
|
|
468
|
+
viewer={user ? { name: user.name } : null}
|
|
469
|
+
signInHref="/sign-in?next=/articles/1" // a signed-out reader is shown the way in
|
|
470
|
+
canRemove={(c) => c.authorId === user?.id || user?.id === article.authorId}
|
|
471
|
+
transport={{
|
|
472
|
+
post: async (text) => (await api.post(text)), // returns the stored comment
|
|
473
|
+
remove: async (id) => { await api.remove(id); },
|
|
474
|
+
}}
|
|
475
|
+
voice={{ transcribeUrl: "/api/transcribe" }}
|
|
476
|
+
timeZone="Europe/Zurich"
|
|
477
|
+
/>
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
The component owns the list, the optimistic removal (rolled back, in words, if
|
|
481
|
+
it fails) and every failure message; the box is `Composer`, so it has the
|
|
482
|
+
microphone, 16px text and Enter-to-send; a refused post keeps the draft in the
|
|
483
|
+
box. A comment is shown as text, never as markup, with its line breaks. Times
|
|
484
|
+
render in `timeZone` (UTC by default, so the server's and the browser's markup
|
|
485
|
+
agree), or through your own `formatTime`.
|
|
486
|
+
|
|
425
487
|
### Suggested replies
|
|
426
488
|
|
|
427
489
|
The two to four things the person is likely to say next, as buttons under the
|
|
@@ -850,6 +912,12 @@ on `Composer`, `labels` on `ChatThread`.
|
|
|
850
912
|
anatomy, New chat, Temporary chat that writes nothing, the open chat
|
|
851
913
|
back after a reload, attachments on, a queue behind a running answer.
|
|
852
914
|
|
|
915
|
+
12. Any other text box is `DictationField`: the same microphone, 16px text and
|
|
916
|
+
44px targets as the composer, and an optional Improve with Undo.
|
|
917
|
+
13. A conversation under an item is `CommentThread`: oldest first, the same box
|
|
918
|
+
with the microphone, remove your own, a way to sign in for a reader who
|
|
919
|
+
cannot yet write.
|
|
920
|
+
|
|
853
921
|
`pnpm run verify` proves all of it: unit and render tests, then
|
|
854
922
|
`test/browser.mjs` drives Chromium through the demo at desktop and 390px, light
|
|
855
923
|
and dark, and speaks into a fake microphone past a silent recogniser.
|
package/dist/dictation.d.ts
CHANGED
|
@@ -19,7 +19,19 @@
|
|
|
19
19
|
/** Why a dictation produced no text, in terms the person can act on.
|
|
20
20
|
* `fileTooLarge` is the fourth word, for a recording handed over as a file
|
|
21
21
|
* (see `isAudioFile`) that the server leg would refuse. */
|
|
22
|
-
export type DictationProblem = "mic" | "silence" | "unavailable" | "fileTooLarge";
|
|
22
|
+
export type DictationProblem = "mic" | "silence" | "unavailable" | "fileTooLarge" | "signIn" | "busy";
|
|
23
|
+
/**
|
|
24
|
+
* Which problem a refused transcription is, from its HTTP status alone — the
|
|
25
|
+
* server's sentence is never what the person reads (it is in the server's
|
|
26
|
+
* language, not the page's). 401/403 → signIn, 429 → busy, 413 → fileTooLarge,
|
|
27
|
+
* anything else → unavailable.
|
|
28
|
+
*/
|
|
29
|
+
export declare function problemForStatus(status: number | null | undefined): DictationProblem;
|
|
30
|
+
/** The problem for whatever a server leg threw: a `status` (ours, or set by an
|
|
31
|
+
* app's own `transcribe`) decides; no status is `unavailable`. */
|
|
32
|
+
export declare function problemForTranscription(error: unknown): DictationProblem;
|
|
33
|
+
/** Problems a second try can fix; the others need the person to act. */
|
|
34
|
+
export declare function retryableProblem(p: DictationProblem | null): boolean;
|
|
23
35
|
/** Which path to try first. `browser` is free and instant; `server` is one
|
|
24
36
|
* model everywhere (and detects the language by itself). Either falls back to
|
|
25
37
|
* the other when it cannot work. */
|
package/dist/dictation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictation.d.ts","sourceRoot":"","sources":["../src/dictation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;4DAE4D;AAC5D,MAAM,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"dictation.d.ts","sourceRoot":"","sources":["../src/dictation.ts"],"names":[],"mappings":"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"}
|
package/dist/dictation.js
CHANGED
|
@@ -16,6 +16,31 @@
|
|
|
16
16
|
* Kept pure so "never forever" and "which failures the fallback rescues" are
|
|
17
17
|
* tested properties rather than behaviour buried in a timeout.
|
|
18
18
|
*/
|
|
19
|
+
/**
|
|
20
|
+
* Which problem a refused transcription is, from its HTTP status alone — the
|
|
21
|
+
* server's sentence is never what the person reads (it is in the server's
|
|
22
|
+
* language, not the page's). 401/403 → signIn, 429 → busy, 413 → fileTooLarge,
|
|
23
|
+
* anything else → unavailable.
|
|
24
|
+
*/
|
|
25
|
+
export function problemForStatus(status) {
|
|
26
|
+
if (status === 401 || status === 403)
|
|
27
|
+
return "signIn";
|
|
28
|
+
if (status === 429)
|
|
29
|
+
return "busy";
|
|
30
|
+
if (status === 413)
|
|
31
|
+
return "fileTooLarge";
|
|
32
|
+
return "unavailable";
|
|
33
|
+
}
|
|
34
|
+
/** The problem for whatever a server leg threw: a `status` (ours, or set by an
|
|
35
|
+
* app's own `transcribe`) decides; no status is `unavailable`. */
|
|
36
|
+
export function problemForTranscription(error) {
|
|
37
|
+
const status = error?.status;
|
|
38
|
+
return problemForStatus(typeof status === "number" ? status : null);
|
|
39
|
+
}
|
|
40
|
+
/** Problems a second try can fix; the others need the person to act. */
|
|
41
|
+
export function retryableProblem(p) {
|
|
42
|
+
return p === "unavailable" || p === "busy";
|
|
43
|
+
}
|
|
19
44
|
/**
|
|
20
45
|
* Where a take starts. With a server leg the default is to RECORD: a take
|
|
21
46
|
* then lasts until the person presses done (or the cap). The browser
|
|
@@ -332,6 +357,8 @@ export const DEFAULT_DICTATION_MESSAGES = {
|
|
|
332
357
|
mic: "The microphone is blocked. Allow it for this site and try again.",
|
|
333
358
|
silence: "Nothing was heard. Try again, a little closer to the mic.",
|
|
334
359
|
unavailable: "Voice input is not available right now. Type instead, or try again later.",
|
|
360
|
+
signIn: "Sign in to use voice input.",
|
|
361
|
+
busy: "Voice input is busy right now. Try again in a moment.",
|
|
335
362
|
fileTooLarge: `That recording is too large to transcribe here (max ${Math.round(MAX_AUDIO_FILE_BYTES / 1024 / 1024)} MB).`,
|
|
336
363
|
};
|
|
337
364
|
//# sourceMappingURL=dictation.js.map
|
package/dist/dictation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictation.js","sourceRoot":"","sources":["../src/dictation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"dictation.js","sourceRoot":"","sources":["../src/dictation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiC;IAChE,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IACtD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC1C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,MAAM,GAAI,KAAqC,EAAE,MAAM,CAAC;IAC9D,OAAO,gBAAgB,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,CAA0B;IACzD,OAAO,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,MAAM,CAAC;AAC7C,CAAC;AAUD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,IAM5B;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACzD,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC5B,IAAI,UAAU;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgC;IAChE,OAAO,OAAO,KAAK,aAAa,CAAC;AACnC,CAAC;AAED;gFACgF;AAChF,MAAM,UAAU,UAAU,CAAC,KAAyB;IAClD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC;QACd,KAAK,aAAa,CAAC;QACnB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC;QACf,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC;AAED;+DAC+D;AAC/D,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,IAAI,GAAI,KAAkC,EAAE,IAAI,IAAI,EAAE,CAAC;IAC7D,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,KAAK,CAAC;IAC1E,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,MAAyB,EAAE,OAAe;IAClE,OAAO,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAiBD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAY,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAE7F,wDAAwD;AACxD,SAAS,eAAe,CAAC,CAAoB,EAAE,CAAoB;IACjE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,kEAAkE;AAClE,SAAS,WAAW,CAAC,CAAoB,EAAE,CAAoB;IAC7D,IAAI,IAAI,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAqD,EACrD,OAAuC,EAAE;IAGzC,MAAM,GAAG,GAAW,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;YAAE,SAAS;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;QAC/E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACjD,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAW,EAAE,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,QAAQ,GACZ,UAAU;YACV,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YACtC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,UAAU,IAAI,CAAC,KAAK;YAAE,SAAS;QACnC,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,sEAAsE;YACtE,wDAAwD;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;YAC7C,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,2DAA2D;IAC3D,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,KAAK;QAAE,GAAG,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,MAAM,UAAU,2BAA2B,CACzC,SAAiB,EACjB,iBAA0B;IAE1B,OAAO,iBAAiB,IAAI,SAAS,GAAG,kBAAkB,CAAC;AAC7D,CAAC;AAED;;uCAEuC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/D,MAAM,UAAU,0BAA0B,CAAC,YAA2B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACtF,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,MAAM,GAAG,GAAG,GAAG,GAAG,YAAY,CAAC;IAC/B,gEAAgE;IAChE,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,sBAAsB,CAAC;AAClD,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,wBAAwB;IACxB,YAAY;IACZ,WAAW;IACX,WAAW;CACH,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,MAAM,SAAS,GAAG,6EAA6E,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAsC;IAChE,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;0BAE0B;AAC1B,MAAM,UAAU,aAAa,CAAC,KAAuC;IACnE,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,GAAG,GACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC7C,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACpB,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,MAAM,CAAC;IACnB,OAAO,SAAS,GAAG,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,MAAM,CAAgB;IACtB,MAAM,CAAgB;IAC/B,YAAY,MAAqB,EAAE,SAAwB,IAAI;QAC7D,KAAK,CAAC,MAAM,IAAI,uBAAuB,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;8EAE8E;AAC9E,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,CAAC,GAAG,IAA8C,CAAC;IACzD,MAAM,IAAI,GACR,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QACzB,CAAC,CAAC,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,CAAC,CAAC,KAAK;YACL,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAC3B,OAAQ,CAAC,CAAC,KAA+B,CAAC,OAAO,KAAK,QAAQ;YAChE,CAAC,CAAE,CAAC,CAAC,KAA6B,CAAC,OAAO;YAC1C,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAC7B,CAAC,CAAC,CAAC,CAAC,OAAO;gBACX,CAAC,CAAC,IAAI,CAAC;IACf,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,MAAM,CAAC,GAAI,KAAqC,EAAE,MAAM,CAAC;IACzD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAqC;IAC1E,GAAG,EAAE,kEAAkE;IACvE,OAAO,EAAE,2DAA2D;IACpE,WAAW,EAAE,2EAA2E;IACxF,MAAM,EAAE,6BAA6B;IACrC,IAAI,EAAE,uDAAuD;IAC7D,YAAY,EAAE,uDAAuD,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO;CAC3H,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type ComposerVoice } from "./Composer.js";
|
|
2
|
+
export type CommentItem = {
|
|
3
|
+
id: string;
|
|
4
|
+
/** The name readers see. */
|
|
5
|
+
author: string;
|
|
6
|
+
/** Plain text; line breaks are kept. */
|
|
7
|
+
body: string;
|
|
8
|
+
createdAt: string | number | Date;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Where comments go. The component owns the list, the optimistic removal and
|
|
12
|
+
* every failure message; the app owns the database and who may do what.
|
|
13
|
+
*/
|
|
14
|
+
export type CommentTransport = {
|
|
15
|
+
/** Store the comment and return it as stored (its id, its author, its time). Throw to refuse. */
|
|
16
|
+
post: (text: string) => Promise<CommentItem>;
|
|
17
|
+
/** Delete one. Omit and nobody gets a Remove button. */
|
|
18
|
+
remove?: (id: string) => Promise<void>;
|
|
19
|
+
};
|
|
20
|
+
export type CommentThreadLabels = {
|
|
21
|
+
/** The heading: "No comments yet", "1 comment", "7 comments". */
|
|
22
|
+
count: (n: number) => string;
|
|
23
|
+
placeholder: string;
|
|
24
|
+
ariaLabel: string;
|
|
25
|
+
send: string;
|
|
26
|
+
signIn: string;
|
|
27
|
+
remove: string;
|
|
28
|
+
postFailed: string;
|
|
29
|
+
removeFailed: string;
|
|
30
|
+
postedAs: (name: string) => string;
|
|
31
|
+
};
|
|
32
|
+
export declare const DEFAULT_COMMENT_THREAD_LABELS: CommentThreadLabels;
|
|
33
|
+
export type CommentThreadProps = {
|
|
34
|
+
/** The comments as loaded, oldest first. Re-mount (a `key`) to load a new set. */
|
|
35
|
+
comments: readonly CommentItem[];
|
|
36
|
+
transport: CommentTransport;
|
|
37
|
+
/** Who is looking. `null`: readers see the thread and a sign-in link, not the box. */
|
|
38
|
+
viewer: {
|
|
39
|
+
name: string;
|
|
40
|
+
} | null;
|
|
41
|
+
/** Where "Sign in to comment" goes. Required for a signed-out reader to have a way forward. */
|
|
42
|
+
signInHref?: string;
|
|
43
|
+
/** Who may remove which comment (its author; the page's owner). Default: nobody. */
|
|
44
|
+
canRemove?: (comment: CommentItem) => boolean;
|
|
45
|
+
/** The microphone of the box. Pass `{ transcribeUrl }` for the server leg. */
|
|
46
|
+
voice?: ComposerVoice | false;
|
|
47
|
+
/**
|
|
48
|
+
* How a time reads. Default: `locale` in `timeZone` (UTC when none is given,
|
|
49
|
+
* so the server's and the browser's markup agree). Pass your own to match
|
|
50
|
+
* the rest of the product.
|
|
51
|
+
*/
|
|
52
|
+
formatTime?: (at: Date) => string;
|
|
53
|
+
locale?: string;
|
|
54
|
+
timeZone?: string;
|
|
55
|
+
/** Heading level. Default 2. */
|
|
56
|
+
headingLevel?: 2 | 3 | 4;
|
|
57
|
+
labels?: Partial<CommentThreadLabels>;
|
|
58
|
+
className?: string;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* The conversation under anything: an article, a page, a listing. Comments
|
|
62
|
+
* read oldest first, the box is chatkit's `Composer` (so it has the
|
|
63
|
+
* microphone, 16px text and Enter-to-send like every other box in the fleet),
|
|
64
|
+
* and a person can remove what they wrote. Reading needs nothing; writing
|
|
65
|
+
* needs `viewer`, and a signed-out reader is shown the way to sign in on the
|
|
66
|
+
* same screen, never a dead end.
|
|
67
|
+
*/
|
|
68
|
+
export declare function CommentThread({ comments, transport, viewer, signInHref, canRemove, voice, formatTime, locale, timeZone, headingLevel, labels: overrides, className, }: CommentThreadProps): import("react").JSX.Element;
|
|
69
|
+
//# sourceMappingURL=CommentThread.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentThread.d.ts","sourceRoot":"","sources":["../../src/react/CommentThread.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iGAAiG;IACjG,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,iEAAiE;IACjE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,mBAU3C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kFAAkF;IAClF,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,sFAAsF;IACtF,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChC,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAC9C,8EAA8E;IAC9E,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAaF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,QAAQ,EACR,YAAgB,EAChB,MAAM,EAAE,SAAS,EACjB,SAAS,GACV,EAAE,kBAAkB,+BA6GpB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { createElement, useId, useState } from "react";
|
|
4
|
+
import { Composer } from "./Composer.js";
|
|
5
|
+
export const DEFAULT_COMMENT_THREAD_LABELS = {
|
|
6
|
+
count: (n) => (n === 0 ? "No comments yet" : n === 1 ? "1 comment" : `${n} comments`),
|
|
7
|
+
placeholder: "Say something about this…",
|
|
8
|
+
ariaLabel: "Write a comment",
|
|
9
|
+
send: "Comment",
|
|
10
|
+
signIn: "Sign in to comment",
|
|
11
|
+
remove: "Remove",
|
|
12
|
+
postFailed: "The comment could not be posted. Your text is still in the box; try again.",
|
|
13
|
+
removeFailed: "The comment could not be removed. Try again.",
|
|
14
|
+
postedAs: (name) => `Posted as ${name}.`,
|
|
15
|
+
};
|
|
16
|
+
function defaultTime(locale, timeZone) {
|
|
17
|
+
const fmt = new Intl.DateTimeFormat(locale, {
|
|
18
|
+
day: "numeric",
|
|
19
|
+
month: "short",
|
|
20
|
+
hour: "2-digit",
|
|
21
|
+
minute: "2-digit",
|
|
22
|
+
timeZone: timeZone ?? "UTC",
|
|
23
|
+
});
|
|
24
|
+
return (at) => fmt.format(at);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The conversation under anything: an article, a page, a listing. Comments
|
|
28
|
+
* read oldest first, the box is chatkit's `Composer` (so it has the
|
|
29
|
+
* microphone, 16px text and Enter-to-send like every other box in the fleet),
|
|
30
|
+
* and a person can remove what they wrote. Reading needs nothing; writing
|
|
31
|
+
* needs `viewer`, and a signed-out reader is shown the way to sign in on the
|
|
32
|
+
* same screen, never a dead end.
|
|
33
|
+
*/
|
|
34
|
+
export function CommentThread({ comments, transport, viewer, signInHref, canRemove, voice, formatTime, locale, timeZone, headingLevel = 2, labels: overrides, className, }) {
|
|
35
|
+
const labels = { ...DEFAULT_COMMENT_THREAD_LABELS, ...overrides };
|
|
36
|
+
const [list, setList] = useState(() => [...comments]);
|
|
37
|
+
const [draft, setDraft] = useState("");
|
|
38
|
+
const [sending, setSending] = useState(false);
|
|
39
|
+
const [error, setError] = useState(null);
|
|
40
|
+
const headingId = useId();
|
|
41
|
+
const time = formatTime ?? defaultTime(locale, timeZone);
|
|
42
|
+
const post = async (text) => {
|
|
43
|
+
setError(null);
|
|
44
|
+
setSending(true);
|
|
45
|
+
try {
|
|
46
|
+
const created = await transport.post(text);
|
|
47
|
+
setList((current) => [...current, created]);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
setError(labels.postFailed);
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
setSending(false);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const remove = async (id) => {
|
|
59
|
+
if (!transport.remove)
|
|
60
|
+
return;
|
|
61
|
+
setError(null);
|
|
62
|
+
const before = list;
|
|
63
|
+
setList((current) => current.filter((c) => c.id !== id));
|
|
64
|
+
try {
|
|
65
|
+
await transport.remove(id);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
setList(before);
|
|
69
|
+
setError(labels.removeFailed);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const heading = createElement(`h${headingLevel}`, { id: headingId, className: "ck-comments-title" }, labels.count(list.length));
|
|
73
|
+
return (_jsxs("section", { className: className ? `ck-comments ${className}` : "ck-comments", "aria-labelledby": headingId, children: [heading, list.length > 0 && (_jsx("ol", { className: "ck-comment-list", children: list.map((c) => {
|
|
74
|
+
const at = new Date(c.createdAt);
|
|
75
|
+
return (_jsxs("li", { className: "ck-comment", children: [_jsxs("p", { className: "ck-comment-meta", children: [_jsx("strong", { children: c.author }), _jsx("span", { "aria-hidden": true, children: " \u00B7 " }), _jsx("time", { dateTime: at.toISOString(), children: time(at) }), transport.remove && canRemove?.(c) && (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": true, children: " \u00B7 " }), _jsx("button", { type: "button", className: "ck-comment-remove", onClick: () => void remove(c.id), children: labels.remove })] }))] }), _jsx("p", { className: "ck-comment-body", children: c.body })] }, c.id));
|
|
76
|
+
}) })), error && (_jsx("p", { className: "ck-problem", role: "alert", children: _jsx("span", { children: error }) })), viewer ? (_jsx("div", { className: "ck-comment-box", children: _jsx(Composer, { onSend: post, placeholder: labels.placeholder, ariaLabel: labels.ariaLabel, sending: sending, value: draft, onValueChange: setDraft, attach: false, voice: voice, labels: { send: labels.send }, hint: labels.postedAs(viewer.name) }) })) : (signInHref && (_jsx("p", { className: "ck-comment-signin", children: _jsx("a", { className: "ck-comment-signin-link", href: signInHref, children: labels.signIn }) })))] }));
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=CommentThread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentThread.js","sourceRoot":"","sources":["../../src/react/CommentThread.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAmC7D,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;IACrF,WAAW,EAAE,2BAA2B;IACxC,SAAS,EAAE,iBAAiB;IAC5B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,oBAAoB;IAC5B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,4EAA4E;IACxF,YAAY,EAAE,8CAA8C;IAC5D,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,IAAI,GAAG;CACzC,CAAC;AA4BF,SAAS,WAAW,CAAC,MAA0B,EAAE,QAA4B;IAC3E,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QAC1C,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ,IAAI,KAAK;KAC5B,CAAC,CAAC;IACH,OAAO,CAAC,EAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,QAAQ,EACR,YAAY,GAAG,CAAC,EAChB,MAAM,EAAE,SAAS,EACjB,SAAS,GACU;IACnB,MAAM,MAAM,GAAwB,EAAE,GAAG,6BAA6B,EAAE,GAAG,SAAS,EAAE,CAAC;IACvF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,GAAG,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;QACpD,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;QAClC,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO;QAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAc,aAAa,CACtC,IAAI,YAAY,EAAE,EAClB,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,EACjD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1B,CAAC;IAEF,OAAO,CACL,mBACE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,qBAChD,SAAS,aAEzB,OAAO,EACP,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,aAAI,SAAS,EAAC,iBAAiB,YAC5B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACd,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACjC,OAAO,CACL,cAAe,SAAS,EAAC,YAAY,aACnC,aAAG,SAAS,EAAC,iBAAiB,aAC5B,2BAAS,CAAC,CAAC,MAAM,GAAU,EAC3B,2DAA4B,EAC5B,eAAM,QAAQ,EAAE,EAAE,CAAC,WAAW,EAAE,YAAG,IAAI,CAAC,EAAE,CAAC,GAAQ,EAClD,SAAS,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CACrC,8BACE,2DAA4B,EAC5B,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mBAAmB,EAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAE/B,MAAM,CAAC,MAAM,GACP,IACR,CACJ,IACC,EACJ,YAAG,SAAS,EAAC,iBAAiB,YAAE,CAAC,CAAC,IAAI,GAAK,KAlBpC,CAAC,CAAC,EAAE,CAmBR,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,CACN,EACA,KAAK,IAAI,CACR,YAAG,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,OAAO,YACpC,yBAAO,KAAK,GAAQ,GAClB,CACL,EACA,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,QAAQ,IACP,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,QAAQ,EACvB,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAC7B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAClC,GACE,CACP,CAAC,CAAC,CAAC,CACF,UAAU,IAAI,CACZ,YAAG,SAAS,EAAC,mBAAmB,YAC9B,YAAG,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAE,UAAU,YACnD,MAAM,CAAC,MAAM,GACZ,GACF,CACL,CACF,IACO,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/react/Composer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,
|
|
1
|
+
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/react/Composer.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/Composer.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useImperativeHandle, useRef, useState, } from "react";
|
|
4
|
-
import { appendTranscript, composerCanSend, composerOutgoingText,
|
|
4
|
+
import { appendTranscript, composerCanSend, composerOutgoingText, shouldClearDraft, } from "../composer.js";
|
|
5
5
|
import { DEFAULT_DICTATION_MESSAGES, isAudioFile } from "../dictation.js";
|
|
6
6
|
import { DEFAULT_ATTACHMENT_NOTES, } from "../attachments.js";
|
|
7
7
|
import { useDictation } from "./use-dictation.js";
|
|
8
|
+
import { VoiceBar, VoiceProblem } from "./Voice.js";
|
|
8
9
|
import { useAttachments } from "./use-attachments.js";
|
|
9
10
|
import { useAutoGrow } from "./hooks.js";
|
|
10
11
|
import { AttachMenu, DEFAULT_ATTACH_MENU_LABELS, } from "./AttachMenu.js";
|
|
11
|
-
import { IconArrowUp,
|
|
12
|
+
import { IconArrowUp, IconFile, IconMic, IconSpinner, IconStop, IconX } from "./icons.js";
|
|
12
13
|
export const DEFAULT_COMPOSER_LABELS = {
|
|
13
14
|
send: "Send",
|
|
14
15
|
stop: "Stop generating",
|
|
@@ -39,31 +40,6 @@ function AttachmentStrip({ attachments, labels, }) {
|
|
|
39
40
|
return (_jsxs("div", { className: "ck-attach-item", children: [a.kind === "image" && a.previewUrl ? (_jsx("img", { src: a.previewUrl, alt: a.name, className: "ck-attach-thumb" })) : (_jsxs("span", { className: "ck-attach-file", children: [_jsx(IconFile, {}), _jsx("span", { className: "ck-truncate", children: a.name })] })), _jsx("button", { type: "button", className: "ck-attach-remove", onClick: () => attachments.remove(key), "aria-label": labels.remove(a.name), title: labels.remove(a.name), children: _jsx(IconX, {}) })] }, key));
|
|
40
41
|
}), attachments.note && (_jsx("button", { type: "button", className: "ck-note", onClick: attachments.clearNote, children: attachments.note }))] }));
|
|
41
42
|
}
|
|
42
|
-
/**
|
|
43
|
-
* The words as they are heard, one line, always showing its end: the
|
|
44
|
-
* newest words are what the person is checking. Scrolled by hand rather
|
|
45
|
-
* than laid out right-to-left, so punctuation stays where the language
|
|
46
|
-
* puts it.
|
|
47
|
-
*/
|
|
48
|
-
function LiveWords({ text, dim }) {
|
|
49
|
-
const ref = useRef(null);
|
|
50
|
-
useEffect(() => {
|
|
51
|
-
const el = ref.current;
|
|
52
|
-
if (el)
|
|
53
|
-
el.scrollLeft = el.scrollWidth;
|
|
54
|
-
}, [text]);
|
|
55
|
-
return (_jsx("span", { ref: ref, className: dim ? "ck-voice-live ck-voice-live-dim" : "ck-voice-live", children: text }));
|
|
56
|
-
}
|
|
57
|
-
function Elapsed({ since }) {
|
|
58
|
-
const [now, setNow] = useState(() => Date.now());
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
if (since === null)
|
|
61
|
-
return;
|
|
62
|
-
const t = setInterval(() => setNow(Date.now()), 250);
|
|
63
|
-
return () => clearInterval(t);
|
|
64
|
-
}, [since]);
|
|
65
|
-
return (_jsx("span", { className: "ck-voice-timer", children: formatElapsed(since === null ? 0 : (now - since) / 1000) }));
|
|
66
|
-
}
|
|
67
43
|
/**
|
|
68
44
|
* THE composer: write words — or say them, or paste a screenshot — and send
|
|
69
45
|
* them. Enter sends, Shift+Enter breaks the line, an IME composition never
|
|
@@ -176,7 +152,7 @@ export function Composer({ onSend, placeholder, ariaLabel, disabled = false, sen
|
|
|
176
152
|
})();
|
|
177
153
|
}
|
|
178
154
|
};
|
|
179
|
-
return (_jsxs("div", { className: "ck-composer-wrap", children: [above, _jsxs("div", { className: "ck-composer-frame", children: [
|
|
155
|
+
return (_jsxs("div", { className: "ck-composer-wrap", children: [above, _jsxs("div", { className: "ck-composer-frame", children: [_jsx(VoiceBar, { dictation: dictation, labels: labels }), _jsxs("div", { className: density === "compact" ? "ck-composer ck-composer-compact" : "ck-composer", children: [showModes && (_jsx("div", { className: "ck-modes", role: "group", children: modes.map((m) => (_jsx("button", { type: "button", className: "ck-mode", "aria-pressed": m.id === mode, title: m.hint, onClick: () => onModeChange?.(m.id), children: m.label }, m.id))) })), header, attachOn && stagedPosition === "above" && (_jsx(AttachmentStrip, { attachments: attachments, labels: labels })), _jsx("textarea", { ref: textareaRef, className: "ck-input", rows: 1, value: text, autoFocus: autoFocus, disabled: disabled || transcribing, placeholder: listening ? labels.listening : sending && queue ? labels.queue : placeholder, "aria-label": ariaLabel ?? placeholder, enterKeyHint: "send", onChange: (e) => {
|
|
180
156
|
const next = e.target.value;
|
|
181
157
|
if (onEmptySlash && next === "/" && text === "") {
|
|
182
158
|
onEmptySlash();
|
|
@@ -191,6 +167,6 @@ export function Composer({ onSend, placeholder, ariaLabel, disabled = false, sen
|
|
|
191
167
|
e.preventDefault();
|
|
192
168
|
void submit();
|
|
193
169
|
}
|
|
194
|
-
} }), attachOn && stagedPosition === "below" && (_jsx(AttachmentStrip, { attachments: attachments, labels: labels })), _jsxs("div", { className: "ck-actions", children: [_jsxs("div", { className: "ck-tools", children: [(attachOn || extras.length > 0) && (_jsx(AttachMenu, { onFiles: onFiles, disabled: disabled || (attachments.full && extras.length === 0), labels: { attach: labels.attach, ...labels.attachMenu }, sources: attachOn ? undefined : [], rows: extras })), voiceOn && (_jsx("button", { type: "button", className: listening ? "ck-icon-btn ck-mic ck-mic-on" : "ck-icon-btn ck-mic", onClick: dictation.toggle, disabled: disabled || transcribing, "aria-label": listening ? labels.voiceStop : labels.voice, "aria-pressed": listening, title: listening ? labels.voiceStop : labels.voice, children: transcribing ? _jsx(IconSpinner, {}) : _jsx(IconMic, {}) })), tools, hint && _jsx("span", { className: "ck-hint", children: hint })] }), _jsxs("div", { className: "ck-submit", children: [trailing, sending && onStop ? (_jsxs(_Fragment, { children: [queue && canSend && (_jsx("button", { type: "button", className: "ck-send", onClick: () => void submit(), "aria-label": labels.send, title: labels.send, children: _jsx(IconArrowUp, {}) })), _jsx("button", { type: "button", className: "ck-send ck-send-stop", onClick: onStop, "aria-label": labels.stop, title: labels.stop, children: _jsx(IconStop, {}) })] })) : (!listening && (_jsx("button", { type: "button", className: "ck-send", disabled: !canSend, onClick: () => void submit(), "aria-label": labels.send, title: sendBlockedReason ?? labels.send, children: sending ? _jsx(IconSpinner, {}) : _jsx(IconArrowUp, {}) })))] })] }), footer] })] }),
|
|
170
|
+
} }), attachOn && stagedPosition === "below" && (_jsx(AttachmentStrip, { attachments: attachments, labels: labels })), _jsxs("div", { className: "ck-actions", children: [_jsxs("div", { className: "ck-tools", children: [(attachOn || extras.length > 0) && (_jsx(AttachMenu, { onFiles: onFiles, disabled: disabled || (attachments.full && extras.length === 0), labels: { attach: labels.attach, ...labels.attachMenu }, sources: attachOn ? undefined : [], rows: extras })), voiceOn && (_jsx("button", { type: "button", className: listening ? "ck-icon-btn ck-mic ck-mic-on" : "ck-icon-btn ck-mic", onClick: dictation.toggle, disabled: disabled || transcribing, "aria-label": listening ? labels.voiceStop : labels.voice, "aria-pressed": listening, title: listening ? labels.voiceStop : labels.voice, children: transcribing ? _jsx(IconSpinner, {}) : _jsx(IconMic, {}) })), tools, hint && _jsx("span", { className: "ck-hint", children: hint })] }), _jsxs("div", { className: "ck-submit", children: [trailing, sending && onStop ? (_jsxs(_Fragment, { children: [queue && canSend && (_jsx("button", { type: "button", className: "ck-send", onClick: () => void submit(), "aria-label": labels.send, title: labels.send, children: _jsx(IconArrowUp, {}) })), _jsx("button", { type: "button", className: "ck-send ck-send-stop", onClick: onStop, "aria-label": labels.stop, title: labels.stop, children: _jsx(IconStop, {}) })] })) : (!listening && (_jsx("button", { type: "button", className: "ck-send", disabled: !canSend, onClick: () => void submit(), "aria-label": labels.send, title: sendBlockedReason ?? labels.send, children: sending ? _jsx(IconSpinner, {}) : _jsx(IconArrowUp, {}) })))] })] }), footer] })] }), _jsx(VoiceProblem, { dictation: dictation, labels: labels })] }));
|
|
195
171
|
}
|
|
196
172
|
//# sourceMappingURL=Composer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/react/Composer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/react/Composer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { type ReactNode, type Ref } from "react";
|
|
2
|
+
import { type DictationProblem } from "../dictation.js";
|
|
3
|
+
import type { ComposerVoice } from "./Composer.js";
|
|
4
|
+
export type DictationFieldLabels = {
|
|
5
|
+
voice: string;
|
|
6
|
+
voiceStop: string;
|
|
7
|
+
cancelRecording: string;
|
|
8
|
+
confirmRecording: string;
|
|
9
|
+
transcribing: string;
|
|
10
|
+
listening: string;
|
|
11
|
+
retryTake: string;
|
|
12
|
+
dismiss: string;
|
|
13
|
+
dictation: Record<DictationProblem, string>;
|
|
14
|
+
/** The button that opens the improve panel. */
|
|
15
|
+
improve: string;
|
|
16
|
+
/** Placeholder of the "what should change?" box. */
|
|
17
|
+
improveWhat: string;
|
|
18
|
+
improveApply: string;
|
|
19
|
+
improveWorking: string;
|
|
20
|
+
improveFailed: string;
|
|
21
|
+
/** Shown after a change, beside Undo. */
|
|
22
|
+
improved: string;
|
|
23
|
+
undo: string;
|
|
24
|
+
};
|
|
25
|
+
export declare const DEFAULT_DICTATION_FIELD_LABELS: DictationFieldLabels;
|
|
26
|
+
/**
|
|
27
|
+
* Writing help for a field: given the text and what the person asked for,
|
|
28
|
+
* resolve to the new text, or to `null` when it could not be done. Chatkit
|
|
29
|
+
* ships no model call and no prompt — the app (or `@bitbaum/writingkit`)
|
|
30
|
+
* owns those — only the way a person asks, sees and takes it back.
|
|
31
|
+
*/
|
|
32
|
+
export type ImproveRun = (text: string, instruction: string) => Promise<string | null | undefined>;
|
|
33
|
+
export type DictationFieldProps = {
|
|
34
|
+
value: string;
|
|
35
|
+
onValueChange: (next: string) => void;
|
|
36
|
+
/** Visible label. Without one, `ariaLabel` is required for assistive tech. */
|
|
37
|
+
label?: ReactNode;
|
|
38
|
+
ariaLabel?: string;
|
|
39
|
+
id?: string;
|
|
40
|
+
placeholder?: string;
|
|
41
|
+
/** `false`: a one-line field (a title, a summary). Default: a growing text area. */
|
|
42
|
+
multiline?: boolean;
|
|
43
|
+
/** Fewest rows a multiline field shows. Default 3. */
|
|
44
|
+
rows?: number;
|
|
45
|
+
maxLength?: number;
|
|
46
|
+
disabled?: boolean;
|
|
47
|
+
required?: boolean;
|
|
48
|
+
/** The microphone. Pass `{ transcribeUrl }` for the server leg; `false` hides it. */
|
|
49
|
+
voice?: ComposerVoice | false;
|
|
50
|
+
/** Give it, and a non-empty field offers "Improve". */
|
|
51
|
+
improve?: {
|
|
52
|
+
run: ImproveRun;
|
|
53
|
+
suggestions?: readonly string[];
|
|
54
|
+
};
|
|
55
|
+
/** Under the field: a count, a rule, an example. */
|
|
56
|
+
hint?: ReactNode;
|
|
57
|
+
inputRef?: Ref<HTMLTextAreaElement | HTMLInputElement>;
|
|
58
|
+
labels?: Partial<Omit<DictationFieldLabels, "dictation">> & {
|
|
59
|
+
dictation?: Partial<DictationFieldLabels["dictation"]>;
|
|
60
|
+
};
|
|
61
|
+
className?: string;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* ANY text box a person types words into: the microphone is part of it.
|
|
65
|
+
*
|
|
66
|
+
* This is the rule from AGENTS.md ("The experience belongs to the package")
|
|
67
|
+
* made a component: a field made by hand in an app has no microphone, 14px
|
|
68
|
+
* text that makes iOS zoom the page, and no way to take a failed take back —
|
|
69
|
+
* so there is one, and it is this. `Composer` is the same thing for a
|
|
70
|
+
* conversation (it also sends); this is for everything else: a note, a title,
|
|
71
|
+
* a bio, a message to a seller.
|
|
72
|
+
*
|
|
73
|
+
* Controlled. Dictation appends to what is there. With `improve`, a field that
|
|
74
|
+
* has text offers one more control: pick a suggestion or say or type what to
|
|
75
|
+
* change, the text is replaced, and Undo puts it back until the next edit.
|
|
76
|
+
*/
|
|
77
|
+
export declare function DictationField({ value, onValueChange, label, ariaLabel, id, placeholder, multiline, rows, maxLength, disabled, required, voice, improve, hint, inputRef, labels: overrides, className, }: DictationFieldProps): import("react").JSX.Element;
|
|
78
|
+
//# sourceMappingURL=DictationField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DictationField.d.ts","sourceRoot":"","sources":["../../src/react/DictationField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAErF,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC5C,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,oBAkB5C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEnG,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/D,oDAAoD;IACpD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC,GAAG;QAC1D,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;KACxD,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,aAAa,EACb,KAAK,EACL,SAAS,EACT,EAAE,EACF,WAAW,EACX,SAAgB,EAChB,IAAQ,EACR,SAAS,EACT,QAAgB,EAChB,QAAQ,EACR,KAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,MAAM,EAAE,SAAS,EACjB,SAAS,GACV,EAAE,mBAAmB,+BAwMrB"}
|