@bitbaum/chatkit 0.26.0 → 0.27.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 +57 -1
- package/dist/react/DictationField.d.ts +50 -2
- package/dist/react/DictationField.d.ts.map +1 -1
- package/dist/react/DictationField.js +49 -6
- package/dist/react/DictationField.js.map +1 -1
- package/dist/react/field-focus.d.ts +34 -0
- package/dist/react/field-focus.d.ts.map +1 -0
- package/dist/react/field-focus.js +120 -0
- package/dist/react/field-focus.js.map +1 -0
- package/dist/react/hooks.d.ts +7 -0
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +20 -1
- package/dist/react/hooks.js.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js.map +1 -1
- package/package.json +2 -2
- package/styles.css +17 -0
package/README.md
CHANGED
|
@@ -458,6 +458,60 @@ and radius follow the same `--ck-*` variables as the composer. The styles are
|
|
|
458
458
|
in `styles.css` (not in the embedded `styles/chat.css`: this is not a chat
|
|
459
459
|
surface).
|
|
460
460
|
|
|
461
|
+
#### In a form (0.27)
|
|
462
|
+
|
|
463
|
+
A field in a form needs more than a note box: a name for the post, an error,
|
|
464
|
+
the keys that submit it, and a blur an inline editor can save on. All of it is
|
|
465
|
+
optional; without these props the field is what it was, except that a `hint`
|
|
466
|
+
is now linked to the field with `aria-describedby`, and Enter in Improve's
|
|
467
|
+
"What should change?" box applies the instruction.
|
|
468
|
+
|
|
469
|
+
```tsx
|
|
470
|
+
<form action="/api/listing" method="post">
|
|
471
|
+
<DictationField
|
|
472
|
+
label="Title"
|
|
473
|
+
name="title" // posts with the native form
|
|
474
|
+
multiline={false}
|
|
475
|
+
value={title}
|
|
476
|
+
onValueChange={setTitle}
|
|
477
|
+
error={tried && !title.trim() ? "A title is needed." : null}
|
|
478
|
+
hint="One line, said or typed."
|
|
479
|
+
onSubmit={save} // Enter here; Cmd/Ctrl+Enter in a text area
|
|
480
|
+
/>
|
|
481
|
+
</form>
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
- `name`, `autoFocus`, `readOnly` (no microphone, no Improve: nothing may
|
|
485
|
+
change the text), `id`, `maxLength`, `disabled`, `required`.
|
|
486
|
+
- `invalid` and `error`: `aria-invalid="true"`, the frame in `--ck-danger`, and
|
|
487
|
+
the error in words under the field (`<p class="ck-field-error" role="alert">`).
|
|
488
|
+
`error` implies `invalid`; an empty `error` (`""`, `0`) is no error. The error and `hint` describe the field through
|
|
489
|
+
`aria-describedby` (ids `<id>-error`, `<id>-hint`).
|
|
490
|
+
- `onSubmit`: the submit keys are the package's, so they are the same in every
|
|
491
|
+
app. Cmd+Enter or Ctrl+Enter in a multi-line field, Enter in a one-line one
|
|
492
|
+
(Shift+Enter does nothing there). Never during an IME composition, never
|
|
493
|
+
while disabled or read-only, never while a take is recorded or transcribed.
|
|
494
|
+
With `onSubmit` set, Enter in a one-line field is the package's whether it
|
|
495
|
+
submits or not: the browser's own form post never runs, so a form is not
|
|
496
|
+
sent mid-take without the words. An Enter that ends an IME composition is
|
|
497
|
+
left to the browser.
|
|
498
|
+
- `onKeyDown` runs first, on every key (Escape to cancel an inline editor);
|
|
499
|
+
`event.preventDefault()` there stops `onSubmit`.
|
|
500
|
+
- `onFocus` / `onBlur` belong to the whole field: the text box, the
|
|
501
|
+
microphone, Improve and its panel. Moving between them is not a blur, so
|
|
502
|
+
pressing the microphone does not close an inline editor that saves on blur.
|
|
503
|
+
Leaving while a take is recorded or transcribed is reported once the take
|
|
504
|
+
has ended and its words have gone through `onValueChange`, so a host that
|
|
505
|
+
unmounts the field on blur keeps what was said. Waiting for Improve is not
|
|
506
|
+
a blur either. A switch to another window or app is not a blur. A field
|
|
507
|
+
unmounted by the host while its blur is held reports no blur (the words
|
|
508
|
+
still arrive through `onValueChange`).
|
|
509
|
+
- `inputProps`: what the box itself may also take — `spellCheck`,
|
|
510
|
+
`autoComplete`, `autoCapitalize`, `inputMode`, `enterKeyHint`, `minLength`,
|
|
511
|
+
`aria-*`, `data-*` (`DictationFieldInputProps`). Spread before the managed
|
|
512
|
+
props, so the field's own id, value, class, label wiring, keys and focus
|
|
513
|
+
win; an `aria-describedby` there is joined with the hint and error ids.
|
|
514
|
+
|
|
461
515
|
### Comments — `CommentThread` (0.23)
|
|
462
516
|
|
|
463
517
|
The conversation under anything: an article, a page, a listing.
|
|
@@ -913,7 +967,9 @@ on `Composer`, `labels` on `ChatThread`.
|
|
|
913
967
|
back after a reload, attachments on, a queue behind a running answer.
|
|
914
968
|
|
|
915
969
|
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.
|
|
970
|
+
44px targets as the composer, and an optional Improve with Undo. In a form
|
|
971
|
+
it takes a name, an error said in words, the same submit keys in every app
|
|
972
|
+
and a blur that belongs to the whole field.
|
|
917
973
|
13. A conversation under an item is `CommentThread`: oldest first, the same box
|
|
918
974
|
with the microphone, remove your own, a way to sign in for a reader who
|
|
919
975
|
cannot yet write.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReactNode, type Ref } from "react";
|
|
1
|
+
import { type HTMLAttributes, type KeyboardEvent as ReactKeyboardEvent, type ReactNode, type Ref } from "react";
|
|
2
2
|
import { type DictationProblem } from "../dictation.js";
|
|
3
3
|
import type { ComposerVoice } from "./Composer.js";
|
|
4
4
|
export type DictationFieldLabels = {
|
|
@@ -30,6 +30,24 @@ export declare const DEFAULT_DICTATION_FIELD_LABELS: DictationFieldLabels;
|
|
|
30
30
|
* owns those — only the way a person asks, sees and takes it back.
|
|
31
31
|
*/
|
|
32
32
|
export type ImproveRun = (text: string, instruction: string) => Promise<string | null | undefined>;
|
|
33
|
+
/**
|
|
34
|
+
* Props the component sets itself. `inputProps` cannot replace them: the
|
|
35
|
+
* field's value, its label wiring, its error state, its 16px text and its
|
|
36
|
+
* keys belong to the package.
|
|
37
|
+
*/
|
|
38
|
+
type ManagedInputKey = "id" | "className" | "style" | "value" | "defaultValue" | "placeholder" | "children" | "dangerouslySetInnerHTML" | "onChange" | "onKeyDown" | "onFocus" | "onBlur" | "aria-label" | "aria-invalid";
|
|
39
|
+
/**
|
|
40
|
+
* What an app may add to the text box itself: `spellCheck`, `autoComplete`,
|
|
41
|
+
* `autoCapitalize`, `inputMode`, `enterKeyHint`, `minLength`, `aria-*` and
|
|
42
|
+
* `data-*`. Spread before the managed props, so the managed ones win;
|
|
43
|
+
* `aria-describedby` is joined with the hint and error ids, not replaced.
|
|
44
|
+
*/
|
|
45
|
+
export type DictationFieldInputProps = Omit<HTMLAttributes<HTMLElement>, ManagedInputKey> & {
|
|
46
|
+
autoComplete?: string;
|
|
47
|
+
minLength?: number;
|
|
48
|
+
} & {
|
|
49
|
+
[data: `data-${string}`]: string | number | boolean | undefined;
|
|
50
|
+
};
|
|
33
51
|
export type DictationFieldProps = {
|
|
34
52
|
value: string;
|
|
35
53
|
onValueChange: (next: string) => void;
|
|
@@ -45,6 +63,35 @@ export type DictationFieldProps = {
|
|
|
45
63
|
maxLength?: number;
|
|
46
64
|
disabled?: boolean;
|
|
47
65
|
required?: boolean;
|
|
66
|
+
/** The field's name in a native `<form>` post. */
|
|
67
|
+
name?: string;
|
|
68
|
+
autoFocus?: boolean;
|
|
69
|
+
/** Shown, selectable, not editable: no microphone, no Improve, no Undo. */
|
|
70
|
+
readOnly?: boolean;
|
|
71
|
+
/** The error state: `aria-invalid`, the frame in the danger colour. */
|
|
72
|
+
invalid?: boolean;
|
|
73
|
+
/** The error, in words, under the field (`role="alert"`). Implies `invalid`. */
|
|
74
|
+
error?: ReactNode;
|
|
75
|
+
/** Runs first; `event.preventDefault()` here stops `onSubmit`. */
|
|
76
|
+
onKeyDown?: (event: ReactKeyboardEvent<HTMLTextAreaElement | HTMLInputElement>) => void;
|
|
77
|
+
/**
|
|
78
|
+
* The submit keys, the same in every app: Cmd+Enter or Ctrl+Enter in a
|
|
79
|
+
* multi-line field, Enter in a one-line one. Never during an IME
|
|
80
|
+
* composition, never while disabled or read-only, never while a take is
|
|
81
|
+
* being recorded or transcribed.
|
|
82
|
+
*/
|
|
83
|
+
onSubmit?: () => void;
|
|
84
|
+
/** Focus entered the FIELD (text box, microphone, Improve and its panel). */
|
|
85
|
+
onFocus?: () => void;
|
|
86
|
+
/**
|
|
87
|
+
* Focus left the whole field — not when it moves between its parts, so
|
|
88
|
+
* pressing the microphone is not a blur. Leaving while a take is recorded
|
|
89
|
+
* or transcribed is reported once the take has ended and its words have
|
|
90
|
+
* been delivered through `onValueChange`.
|
|
91
|
+
*/
|
|
92
|
+
onBlur?: () => void;
|
|
93
|
+
/** Extra attributes for the text box; see `DictationFieldInputProps`. */
|
|
94
|
+
inputProps?: DictationFieldInputProps;
|
|
48
95
|
/** The microphone. Pass `{ transcribeUrl }` for the server leg; `false` hides it. */
|
|
49
96
|
voice?: ComposerVoice | false;
|
|
50
97
|
/** Give it, and a non-empty field offers "Improve". */
|
|
@@ -74,5 +121,6 @@ export type DictationFieldProps = {
|
|
|
74
121
|
* has text offers one more control: pick a suggestion or say or type what to
|
|
75
122
|
* change, the text is replaced, and Undo puts it back until the next edit.
|
|
76
123
|
*/
|
|
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;
|
|
124
|
+
export declare function DictationField({ value, onValueChange, label, ariaLabel, id, placeholder, multiline, rows, maxLength, disabled, required, name, autoFocus, readOnly, invalid, error, onKeyDown, onSubmit, onFocus, onBlur, inputProps, voice, improve, hint, inputRef, labels: overrides, className, }: DictationFieldProps): import("react").JSX.Element;
|
|
125
|
+
export {};
|
|
78
126
|
//# sourceMappingURL=DictationField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictationField.d.ts","sourceRoot":"","sources":["../../src/react/DictationField.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"DictationField.d.ts","sourceRoot":"","sources":["../../src/react/DictationField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useId, useRef, useState } from "react";
|
|
3
|
+
import { useEffect, useId, useRef, useState, } from "react";
|
|
4
4
|
import { appendTranscript } from "../composer.js";
|
|
5
5
|
import { DEFAULT_DICTATION_MESSAGES } from "../dictation.js";
|
|
6
6
|
import { useDictation } from "./use-dictation.js";
|
|
7
7
|
import { useAutoGrow } from "./hooks.js";
|
|
8
|
+
import { useFieldFocus } from "./field-focus.js";
|
|
8
9
|
import { VoiceBar, VoiceProblem } from "./Voice.js";
|
|
9
10
|
import { IconMic, IconSpinner } from "./icons.js";
|
|
10
11
|
export const DEFAULT_DICTATION_FIELD_LABELS = {
|
|
@@ -39,7 +40,7 @@ export const DEFAULT_DICTATION_FIELD_LABELS = {
|
|
|
39
40
|
* has text offers one more control: pick a suggestion or say or type what to
|
|
40
41
|
* change, the text is replaced, and Undo puts it back until the next edit.
|
|
41
42
|
*/
|
|
42
|
-
export function DictationField({ value, onValueChange, label, ariaLabel, id, placeholder, multiline = true, rows = 3, maxLength, disabled = false, required, voice = {}, improve, hint, inputRef, labels: overrides, className, }) {
|
|
43
|
+
export function DictationField({ value, onValueChange, label, ariaLabel, id, placeholder, multiline = true, rows = 3, maxLength, disabled = false, required, name, autoFocus, readOnly = false, invalid = false, error, onKeyDown, onSubmit, onFocus, onBlur, inputProps, voice = {}, improve, hint, inputRef, labels: overrides, className, }) {
|
|
43
44
|
const labels = {
|
|
44
45
|
...DEFAULT_DICTATION_FIELD_LABELS,
|
|
45
46
|
...overrides,
|
|
@@ -65,11 +66,25 @@ export function DictationField({ value, onValueChange, label, ariaLabel, id, pla
|
|
|
65
66
|
set(appendTranscript(valueRef.current, said));
|
|
66
67
|
},
|
|
67
68
|
});
|
|
68
|
-
const voiceOn = voice !== false && dictation.supported;
|
|
69
|
+
const voiceOn = voice !== false && dictation.supported && !readOnly;
|
|
69
70
|
const listening = dictation.status === "listening";
|
|
70
71
|
const transcribing = dictation.status === "transcribing";
|
|
71
72
|
const [open, setOpen] = useState(false);
|
|
72
73
|
const [working, setWorking] = useState(false);
|
|
74
|
+
// Improve at work disables its own box and button, so focus falls off them
|
|
75
|
+
// with nowhere to go: the person is still in the field, waiting.
|
|
76
|
+
const focus = useFieldFocus({
|
|
77
|
+
busy: dictation.status !== "idle" || working,
|
|
78
|
+
onFocus,
|
|
79
|
+
onBlur,
|
|
80
|
+
});
|
|
81
|
+
// An error with no words (`error=""` from a `?? ""`, a `0` from `n && msg`)
|
|
82
|
+
// is no error: colour must never be the only sign.
|
|
83
|
+
const hasError = error !== undefined && error !== null && error !== false && error !== "" && error !== 0;
|
|
84
|
+
const isInvalid = invalid || hasError;
|
|
85
|
+
const hintId = hint ? `${fieldId}-hint` : undefined;
|
|
86
|
+
const errorId = hasError ? `${fieldId}-error` : undefined;
|
|
87
|
+
const describedBy = [inputProps?.["aria-describedby"], errorId, hintId].filter(Boolean).join(" ") || undefined;
|
|
73
88
|
const [failed, setFailed] = useState(false);
|
|
74
89
|
const [instruction, setInstruction] = useState("");
|
|
75
90
|
const [undo, setUndo] = useState(null);
|
|
@@ -97,16 +112,42 @@ export function DictationField({ value, onValueChange, label, ariaLabel, id, pla
|
|
|
97
112
|
setWorking(false);
|
|
98
113
|
}
|
|
99
114
|
};
|
|
100
|
-
const canImprove = Boolean(improve) && value.trim().length > 0;
|
|
115
|
+
const canImprove = Boolean(improve) && !readOnly && value.trim().length > 0;
|
|
101
116
|
const common = {
|
|
102
117
|
id: fieldId,
|
|
103
118
|
className: "ck-field-input",
|
|
119
|
+
style: undefined,
|
|
104
120
|
value,
|
|
105
121
|
placeholder: listening ? labels.listening : placeholder,
|
|
106
122
|
maxLength,
|
|
107
123
|
required,
|
|
124
|
+
name,
|
|
125
|
+
autoFocus,
|
|
126
|
+
readOnly: readOnly || undefined,
|
|
108
127
|
disabled: disabled || transcribing,
|
|
109
128
|
"aria-label": label ? undefined : (ariaLabel ?? placeholder),
|
|
129
|
+
"aria-invalid": isInvalid ? true : undefined,
|
|
130
|
+
"aria-describedby": describedBy,
|
|
131
|
+
};
|
|
132
|
+
const handleKeyDown = (e) => {
|
|
133
|
+
onKeyDown?.(e);
|
|
134
|
+
if (!onSubmit || e.defaultPrevented || e.key !== "Enter")
|
|
135
|
+
return;
|
|
136
|
+
// An Enter that confirms an IME composition (Japanese, Chinese, Korean)
|
|
137
|
+
// is the person choosing a word, not sending.
|
|
138
|
+
if (e.nativeEvent.isComposing || e.keyCode === 229)
|
|
139
|
+
return;
|
|
140
|
+
const chord = e.metaKey || e.ctrlKey;
|
|
141
|
+
if (multiline && !chord)
|
|
142
|
+
return; // a new line
|
|
143
|
+
// From here the key is the package's: in a one-line field the browser
|
|
144
|
+
// would otherwise send the native form, mid-take, without the words.
|
|
145
|
+
e.preventDefault();
|
|
146
|
+
if (disabled || readOnly || dictation.status !== "idle")
|
|
147
|
+
return;
|
|
148
|
+
if (!multiline && (e.shiftKey || e.altKey))
|
|
149
|
+
return;
|
|
150
|
+
onSubmit();
|
|
110
151
|
};
|
|
111
152
|
const onChange = (next) => {
|
|
112
153
|
setUndo(null);
|
|
@@ -120,9 +161,11 @@ export function DictationField({ value, onValueChange, label, ariaLabel, id, pla
|
|
|
120
161
|
else if (inputRef)
|
|
121
162
|
inputRef.current = el;
|
|
122
163
|
};
|
|
123
|
-
return (_jsxs("div", {
|
|
164
|
+
return (_jsxs("div", { ref: focus.wrapRef, className: ["ck-field-wrap", isInvalid && "ck-field-invalid", className]
|
|
165
|
+
.filter(Boolean)
|
|
166
|
+
.join(" "), onFocus: focus.onFocus, onBlur: focus.onBlur, children: [label && (_jsx("label", { className: "ck-field-label", htmlFor: fieldId, children: label })), _jsxs("div", { className: "ck-field-frame", children: [_jsx(VoiceBar, { dictation: dictation, labels: labels }), _jsxs("div", { className: multiline ? "ck-field" : "ck-field ck-field-single", children: [multiline ? (_jsx("textarea", { ...inputProps, ...common, ref: setRefs, rows: rows, onChange: (e) => onChange(e.target.value), onKeyDown: handleKeyDown })) : (_jsx("input", { ...inputProps, ...common, ref: setRefs, type: "text", enterKeyHint: inputProps?.enterKeyHint ?? "done", onChange: (e) => onChange(e.target.value), onKeyDown: handleKeyDown })), _jsxs("div", { className: "ck-field-actions", children: [canImprove && (_jsx("button", { type: "button", className: "ck-field-improve", "aria-expanded": open, disabled: disabled || working, onClick: () => setOpen((o) => !o), children: labels.improve })), 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, {}) }))] })] })] }), errorId && (_jsx("p", { id: errorId, className: "ck-field-error", role: "alert", children: error })), open && improve && !readOnly && (_jsxs("div", { className: "ck-field-improve-panel", children: [improve.suggestions && improve.suggestions.length > 0 && (_jsx("div", { className: "ck-field-suggestions", role: "group", children: improve.suggestions.map((s) => (_jsx("button", { type: "button", className: "ck-field-suggestion", disabled: working, onClick: () => void run(s), children: s }, s))) })), _jsxs("div", { className: "ck-field-improve-row", children: [_jsx(DictationField, { value: instruction, onValueChange: setInstruction, multiline: false, placeholder: labels.improveWhat, ariaLabel: labels.improveWhat, voice: voice, disabled: working, labels: overrides, onSubmit: () => void run(instruction) }), _jsx("button", { type: "button", className: "ck-field-apply", disabled: working || !instruction.trim(), onClick: () => void run(instruction), children: working ? labels.improveWorking : labels.improveApply })] }), failed && (_jsx("p", { className: "ck-problem", role: "alert", children: _jsx("span", { children: labels.improveFailed }) }))] })), undo !== null && !readOnly && (_jsxs("p", { className: "ck-field-undo", role: "status", children: [_jsx("span", { children: labels.improved }), _jsx("button", { type: "button", className: "ck-problem-retry", onClick: () => {
|
|
124
167
|
set(undo);
|
|
125
168
|
setUndo(null);
|
|
126
|
-
}, children: labels.undo })] })), _jsx(VoiceProblem, { dictation: dictation, labels: labels }), hint && _jsx("div", { className: "ck-field-hint", children: hint })] }));
|
|
169
|
+
}, children: labels.undo })] })), _jsx(VoiceProblem, { dictation: dictation, labels: labels }), hint && (_jsx("div", { id: hintId, className: "ck-field-hint", children: hint }))] }));
|
|
127
170
|
}
|
|
128
171
|
//# sourceMappingURL=DictationField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictationField.js","sourceRoot":"","sources":["../../src/react/DictationField.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,
|
|
1
|
+
{"version":3,"file":"DictationField.js","sourceRoot":"","sources":["../../src/react/DictationField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type FocusEvent as ReactFocusEvent } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Focus for a whole field, not for one element in it.
|
|
4
|
+
*
|
|
5
|
+
* A field is a text box, a microphone, Improve and the improve panel. A host
|
|
6
|
+
* that saves and closes an inline editor on blur must not see a blur when
|
|
7
|
+
* focus moves between those parts, or the editor closes under the person's
|
|
8
|
+
* finger as they press the microphone. So `onFocus` fires when focus enters
|
|
9
|
+
* the field and `onBlur` when it leaves it; moves inside are not reported.
|
|
10
|
+
*
|
|
11
|
+
* Focus can also go nowhere (`relatedTarget` null): a tap on empty page, a
|
|
12
|
+
* button that takes no focus (Safari), a control the field itself removes or
|
|
13
|
+
* disables while busy, or the window losing focus. Once focus has settled
|
|
14
|
+
* the field decides: back inside, or the window switched away → still here; a
|
|
15
|
+
* recent press inside → still here (the press was on the field); a recent
|
|
16
|
+
* press outside → left. Until a later press or focus lands outside, the field
|
|
17
|
+
* counts as focused, and the document listeners report the blur then.
|
|
18
|
+
*
|
|
19
|
+
* A blur while `busy` (a take is recorded or transcribed, or Improve is at
|
|
20
|
+
* work) is held and reported once that has ended, which is after a take's
|
|
21
|
+
* words were delivered, so a host that unmounts the field on blur never loses
|
|
22
|
+
* what was said. A field unmounted while its blur is held reports none: the
|
|
23
|
+
* words still reach `onValueChange`, the blur does not.
|
|
24
|
+
*/
|
|
25
|
+
export declare function useFieldFocus({ busy, onFocus, onBlur, }: {
|
|
26
|
+
busy: boolean;
|
|
27
|
+
onFocus?: () => void;
|
|
28
|
+
onBlur?: () => void;
|
|
29
|
+
}): {
|
|
30
|
+
wrapRef: import("react").RefObject<HTMLDivElement | null>;
|
|
31
|
+
onFocus: () => void;
|
|
32
|
+
onBlur: (e: ReactFocusEvent<HTMLDivElement>) => void;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=field-focus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-focus.d.ts","sourceRoot":"","sources":["../../src/react/field-focus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,UAAU,IAAI,eAAe,EAAE,MAAM,OAAO,CAAC;AAK3F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;;;gBAoEO,eAAe,CAAC,cAAc,CAAC;EAyBtC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
3
|
+
/** A press this recent explains a focus that went nowhere (iOS moves focus at the click). */
|
|
4
|
+
const PRESS_EXPLAINS_MS = 1000;
|
|
5
|
+
/**
|
|
6
|
+
* Focus for a whole field, not for one element in it.
|
|
7
|
+
*
|
|
8
|
+
* A field is a text box, a microphone, Improve and the improve panel. A host
|
|
9
|
+
* that saves and closes an inline editor on blur must not see a blur when
|
|
10
|
+
* focus moves between those parts, or the editor closes under the person's
|
|
11
|
+
* finger as they press the microphone. So `onFocus` fires when focus enters
|
|
12
|
+
* the field and `onBlur` when it leaves it; moves inside are not reported.
|
|
13
|
+
*
|
|
14
|
+
* Focus can also go nowhere (`relatedTarget` null): a tap on empty page, a
|
|
15
|
+
* button that takes no focus (Safari), a control the field itself removes or
|
|
16
|
+
* disables while busy, or the window losing focus. Once focus has settled
|
|
17
|
+
* the field decides: back inside, or the window switched away → still here; a
|
|
18
|
+
* recent press inside → still here (the press was on the field); a recent
|
|
19
|
+
* press outside → left. Until a later press or focus lands outside, the field
|
|
20
|
+
* counts as focused, and the document listeners report the blur then.
|
|
21
|
+
*
|
|
22
|
+
* A blur while `busy` (a take is recorded or transcribed, or Improve is at
|
|
23
|
+
* work) is held and reported once that has ended, which is after a take's
|
|
24
|
+
* words were delivered, so a host that unmounts the field on blur never loses
|
|
25
|
+
* what was said. A field unmounted while its blur is held reports none: the
|
|
26
|
+
* words still reach `onValueChange`, the blur does not.
|
|
27
|
+
*/
|
|
28
|
+
export function useFieldFocus({ busy, onFocus, onBlur, }) {
|
|
29
|
+
const wrapRef = useRef(null);
|
|
30
|
+
const inside = useRef(false);
|
|
31
|
+
const held = useRef(false);
|
|
32
|
+
const busyRef = useRef(busy);
|
|
33
|
+
const lastPress = useRef(null);
|
|
34
|
+
const callbacks = useRef({ onFocus, onBlur });
|
|
35
|
+
// Before the busy effect below, so a held blur calls the host's handler
|
|
36
|
+
// from the render that already has the delivered words.
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
callbacks.current = { onFocus, onBlur };
|
|
39
|
+
});
|
|
40
|
+
const contains = useCallback((node) => typeof Node !== "undefined" && node instanceof Node && !!wrapRef.current?.contains(node), []);
|
|
41
|
+
const leave = useCallback(() => {
|
|
42
|
+
if (!inside.current)
|
|
43
|
+
return;
|
|
44
|
+
if (busyRef.current) {
|
|
45
|
+
held.current = true;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
inside.current = false;
|
|
49
|
+
held.current = false;
|
|
50
|
+
callbacks.current.onBlur?.();
|
|
51
|
+
}, []);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
busyRef.current = busy;
|
|
54
|
+
if (!busy && held.current)
|
|
55
|
+
leave();
|
|
56
|
+
}, [busy, leave]);
|
|
57
|
+
const tracking = Boolean(onFocus || onBlur);
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
if (!tracking)
|
|
60
|
+
return;
|
|
61
|
+
const onPointer = (e) => {
|
|
62
|
+
const pressedInside = contains(e.target);
|
|
63
|
+
lastPress.current = { inside: pressedInside, at: Date.now() };
|
|
64
|
+
if (pressedInside) {
|
|
65
|
+
// Back on the field before the take ended: nothing to report.
|
|
66
|
+
held.current = false;
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Focused nowhere in the field (see above) and a press elsewhere: left.
|
|
70
|
+
if (inside.current && !contains(document.activeElement))
|
|
71
|
+
leave();
|
|
72
|
+
};
|
|
73
|
+
const onFocusIn = (e) => {
|
|
74
|
+
if (!contains(e.target))
|
|
75
|
+
leave();
|
|
76
|
+
};
|
|
77
|
+
document.addEventListener("pointerdown", onPointer, true);
|
|
78
|
+
document.addEventListener("focusin", onFocusIn, true);
|
|
79
|
+
return () => {
|
|
80
|
+
document.removeEventListener("pointerdown", onPointer, true);
|
|
81
|
+
document.removeEventListener("focusin", onFocusIn, true);
|
|
82
|
+
};
|
|
83
|
+
}, [tracking, contains, leave]);
|
|
84
|
+
const handleFocus = useCallback(() => {
|
|
85
|
+
held.current = false;
|
|
86
|
+
if (inside.current)
|
|
87
|
+
return;
|
|
88
|
+
inside.current = true;
|
|
89
|
+
callbacks.current.onFocus?.();
|
|
90
|
+
}, []);
|
|
91
|
+
const handleBlur = useCallback((e) => {
|
|
92
|
+
const next = e.relatedTarget;
|
|
93
|
+
if (next) {
|
|
94
|
+
if (!contains(next))
|
|
95
|
+
leave();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
setTimeout(() => {
|
|
99
|
+
if (!inside.current || !wrapRef.current)
|
|
100
|
+
return;
|
|
101
|
+
if (contains(document.activeElement))
|
|
102
|
+
return;
|
|
103
|
+
if (!document.hasFocus())
|
|
104
|
+
return;
|
|
105
|
+
const press = lastPress.current;
|
|
106
|
+
if (press && Date.now() - press.at < PRESS_EXPLAINS_MS) {
|
|
107
|
+
if (!press.inside)
|
|
108
|
+
leave();
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
// No press: focus fell off a control this field removed or disabled
|
|
112
|
+
// while busy (a take, Improve at work). The person has not gone anywhere.
|
|
113
|
+
if (busyRef.current)
|
|
114
|
+
return;
|
|
115
|
+
leave();
|
|
116
|
+
}, 0);
|
|
117
|
+
}, [contains, leave]);
|
|
118
|
+
return { wrapRef, onFocus: handleFocus, onBlur: handleBlur };
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=field-focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-focus.js","sourceRoot":"","sources":["../../src/react/field-focus.ts"],"names":[],"mappings":"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"}
|
package/dist/react/hooks.d.ts
CHANGED
|
@@ -14,6 +14,13 @@ export declare function useClipboard(resetMs?: number): {
|
|
|
14
14
|
* case page). Never scroll other ancestors as a side effect of following.
|
|
15
15
|
* `grew` counts new user turns: an arriving assistant turn is not permission
|
|
16
16
|
* to take the reader away from an older answer.
|
|
17
|
+
*
|
|
18
|
+
* A greeting on a page is not a conversation yet. While the document owns the
|
|
19
|
+
* scroll and the reader has sent nothing (`grew` is 0), the thread neither
|
|
20
|
+
* moves the page nor offers a way back down: a contact box at the foot of a
|
|
21
|
+
* long page opened that page at the box, past everything above it (bitbaum
|
|
22
|
+
* /hire/ and /builders/, 2026-11-12). The first turn the reader sends starts
|
|
23
|
+
* the following.
|
|
17
24
|
*/
|
|
18
25
|
export declare function useStickToBottom(changes: DependencyList, grew: number): {
|
|
19
26
|
scrollRef: RefObject<HTMLDivElement | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAO;;iBAUhC,MAAM;EAYhB;AAED
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAO;;iBAUhC,MAAM;EAYhB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM;;;;;;;EAuMrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,OAAO,UAAO,QAqBvF;AAED;;;;;;;;gFAQgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAM,QAqB/F"}
|
package/dist/react/hooks.js
CHANGED
|
@@ -31,6 +31,13 @@ export function useClipboard(resetMs = 1500) {
|
|
|
31
31
|
* case page). Never scroll other ancestors as a side effect of following.
|
|
32
32
|
* `grew` counts new user turns: an arriving assistant turn is not permission
|
|
33
33
|
* to take the reader away from an older answer.
|
|
34
|
+
*
|
|
35
|
+
* A greeting on a page is not a conversation yet. While the document owns the
|
|
36
|
+
* scroll and the reader has sent nothing (`grew` is 0), the thread neither
|
|
37
|
+
* moves the page nor offers a way back down: a contact box at the foot of a
|
|
38
|
+
* long page opened that page at the box, past everything above it (bitbaum
|
|
39
|
+
* /hire/ and /builders/, 2026-11-12). The first turn the reader sends starts
|
|
40
|
+
* the following.
|
|
34
41
|
*/
|
|
35
42
|
export function useStickToBottom(changes, grew) {
|
|
36
43
|
const scrollRef = useRef(null);
|
|
@@ -39,6 +46,8 @@ export function useStickToBottom(changes, grew) {
|
|
|
39
46
|
const [pageScroll, setPageScroll] = useState(false);
|
|
40
47
|
const followingRef = useRef(true);
|
|
41
48
|
const owner = useRef(null);
|
|
49
|
+
const turns = useRef(grew);
|
|
50
|
+
turns.current = grew;
|
|
42
51
|
const previousTop = useRef(0);
|
|
43
52
|
const downwardIntent = useRef(false);
|
|
44
53
|
const draggingScrollbar = useRef(false);
|
|
@@ -72,6 +81,8 @@ export function useStickToBottom(changes, grew) {
|
|
|
72
81
|
if (!el || !end)
|
|
73
82
|
return;
|
|
74
83
|
const page = el === document.scrollingElement;
|
|
84
|
+
if (page && turns.current === 0)
|
|
85
|
+
return;
|
|
75
86
|
const bottom = end.getBoundingClientRect().bottom;
|
|
76
87
|
const top = page
|
|
77
88
|
? el.scrollTop + bottom - window.innerHeight
|
|
@@ -221,7 +232,15 @@ export function useStickToBottom(changes, grew) {
|
|
|
221
232
|
}
|
|
222
233
|
previous.current = grew;
|
|
223
234
|
}, [grew, follow, pin]);
|
|
224
|
-
return {
|
|
235
|
+
return {
|
|
236
|
+
scrollRef,
|
|
237
|
+
endRef,
|
|
238
|
+
// Nothing to jump to before the reader has said anything on a page.
|
|
239
|
+
following: following || (pageScroll && grew === 0),
|
|
240
|
+
pageScroll,
|
|
241
|
+
onScroll,
|
|
242
|
+
jumpToBottom,
|
|
243
|
+
};
|
|
225
244
|
}
|
|
226
245
|
/**
|
|
227
246
|
* Publishes the VISUAL viewport height as `--ck-viewport-height`.
|
package/dist/react/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export type { ComposerProps, ComposerLabels, ComposerLabelOverrides, ComposerVoi
|
|
|
12
12
|
export { ChatThread, ChatMessage, ChatReplies, ChatStarters, starterParts, ThinkingRow, formatThinkingDuration, DEFAULT_THREAD_LABELS, } from "./Thread.js";
|
|
13
13
|
export type { ChatMessageData, ChatFailure, FooterInfo, MessageChip, ChatSpeaker, LiveTurn, Starter, Thinking, ThinkingStep, ThreadLabels, } from "./Thread.js";
|
|
14
14
|
export { DictationField, DEFAULT_DICTATION_FIELD_LABELS } from "./DictationField.js";
|
|
15
|
-
export type { DictationFieldProps, DictationFieldLabels, ImproveRun } from "./DictationField.js";
|
|
15
|
+
export type { DictationFieldProps, DictationFieldLabels, DictationFieldInputProps, ImproveRun, } from "./DictationField.js";
|
|
16
16
|
export { CommentThread, DEFAULT_COMMENT_THREAD_LABELS } from "./CommentThread.js";
|
|
17
17
|
export type { CommentItem, CommentTransport, CommentThreadProps, CommentThreadLabels, } from "./CommentThread.js";
|
|
18
18
|
export { ChatScreen } from "./Screen.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EACV,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAQlE,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAQlE,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAOrF,OAAO,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAOlF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitbaum/chatkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"description": "One chat for every product: a composer with a microphone that always works, a thread that does not fight the reader, messages with copy and retry, and LLM markdown — the fleet's chat standard as a package.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Cato",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"verify": "pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm test && pnpm run test:browser",
|
|
79
79
|
"format": "prettier --write .",
|
|
80
80
|
"format:check": "prettier --check .",
|
|
81
|
-
"demo": "esbuild demo/demo.tsx --bundle --jsx=automatic --format=iife --define:process.env.NODE_ENV='\"production\"' --outfile=demo/dist/demo.js --log-level=warning",
|
|
81
|
+
"demo": "esbuild demo/demo.tsx --bundle --jsx=automatic --format=iife --define:process.env.NODE_ENV='\"production\"' --outfile=demo/dist/demo.js --log-level=warning && esbuild demo/demo.tsx --bundle --jsx=automatic --format=iife --define:process.env.NODE_ENV='\"development\"' --outfile=demo/dist/demo-dev.js --log-level=warning",
|
|
82
82
|
"test:browser": "pnpm run demo && node test/browser.mjs && node test/browser-scroll.mjs && node test/browser-app.mjs && node test/browser-pdf.mjs && node test/browser-field.mjs"
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
package/styles.css
CHANGED
|
@@ -2588,6 +2588,23 @@ a.ck-turn-chip:hover {
|
|
|
2588
2588
|
font-size: 0.875rem;
|
|
2589
2589
|
color: var(--ck-muted);
|
|
2590
2590
|
}
|
|
2591
|
+
/* The error state. The frame turns the danger colour (a 2px edge, drawn
|
|
2592
|
+
inside so nothing moves; only this field's frame, not the improve box in
|
|
2593
|
+
its panel), and the error is said in words under it: colour
|
|
2594
|
+
is never the only sign. */
|
|
2595
|
+
.ck-field-invalid > .ck-field-frame > .ck-field,
|
|
2596
|
+
.ck-field-invalid > .ck-field-frame > .ck-field:focus-within {
|
|
2597
|
+
border-color: var(--ck-danger);
|
|
2598
|
+
box-shadow: inset 0 0 0 1px var(--ck-danger);
|
|
2599
|
+
}
|
|
2600
|
+
.ck-field-error {
|
|
2601
|
+
margin: 0;
|
|
2602
|
+
font-size: 0.875rem;
|
|
2603
|
+
font-weight: 600;
|
|
2604
|
+
line-height: 1.4;
|
|
2605
|
+
color: var(--ck-danger);
|
|
2606
|
+
overflow-wrap: anywhere;
|
|
2607
|
+
}
|
|
2591
2608
|
:where(.ck-field-wrap, .ck-comments) button:focus-visible,
|
|
2592
2609
|
.ck-comment-signin-link:focus-visible {
|
|
2593
2610
|
outline: 2px solid var(--ck-accent);
|