@multiplatform.one/rich-text 7.4.1 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/RichTextEditor/index.cjs +115 -50
- package/dist/cjs/RichTextEditor/index.native.js +119 -53
- package/dist/cjs/RichTextEditor/index.native.js.map +1 -1
- package/dist/cjs/toolbar/HeadingPicker.cjs +0 -7
- package/dist/cjs/toolbar/HeadingPicker.native.js +17 -13
- package/dist/cjs/toolbar/HeadingPicker.native.js.map +1 -1
- package/dist/cjs/toolbar/ListPicker.cjs +0 -7
- package/dist/cjs/toolbar/ListPicker.native.js +11 -12
- package/dist/cjs/toolbar/ListPicker.native.js.map +1 -1
- package/dist/cjs/toolbar/MoreDropdown.cjs +0 -7
- package/dist/cjs/toolbar/MoreDropdown.native.js +11 -12
- package/dist/cjs/toolbar/MoreDropdown.native.js.map +1 -1
- package/dist/esm/RichTextEditor/index.mjs +117 -53
- package/dist/esm/RichTextEditor/index.mjs.map +1 -1
- package/dist/esm/RichTextEditor/index.native.js +121 -56
- package/dist/esm/RichTextEditor/index.native.js.map +1 -1
- package/dist/esm/toolbar/HeadingPicker.mjs +0 -7
- package/dist/esm/toolbar/HeadingPicker.mjs.map +1 -1
- package/dist/esm/toolbar/HeadingPicker.native.js +17 -13
- package/dist/esm/toolbar/HeadingPicker.native.js.map +1 -1
- package/dist/esm/toolbar/ListPicker.mjs +0 -7
- package/dist/esm/toolbar/ListPicker.mjs.map +1 -1
- package/dist/esm/toolbar/ListPicker.native.js +11 -12
- package/dist/esm/toolbar/ListPicker.native.js.map +1 -1
- package/dist/esm/toolbar/MoreDropdown.mjs +0 -7
- package/dist/esm/toolbar/MoreDropdown.mjs.map +1 -1
- package/dist/esm/toolbar/MoreDropdown.native.js +11 -12
- package/dist/esm/toolbar/MoreDropdown.native.js.map +1 -1
- package/dist/jsx/RichTextEditor/index.mjs +117 -53
- package/dist/jsx/RichTextEditor/index.mjs.map +1 -1
- package/dist/jsx/RichTextEditor/index.native.js +119 -53
- package/dist/jsx/RichTextEditor/index.native.js.map +1 -1
- package/dist/jsx/toolbar/HeadingPicker.mjs +0 -7
- package/dist/jsx/toolbar/HeadingPicker.mjs.map +1 -1
- package/dist/jsx/toolbar/HeadingPicker.native.js +17 -13
- package/dist/jsx/toolbar/HeadingPicker.native.js.map +1 -1
- package/dist/jsx/toolbar/ListPicker.mjs +0 -7
- package/dist/jsx/toolbar/ListPicker.mjs.map +1 -1
- package/dist/jsx/toolbar/ListPicker.native.js +11 -12
- package/dist/jsx/toolbar/ListPicker.native.js.map +1 -1
- package/dist/jsx/toolbar/MoreDropdown.mjs +0 -7
- package/dist/jsx/toolbar/MoreDropdown.mjs.map +1 -1
- package/dist/jsx/toolbar/MoreDropdown.native.js +11 -12
- package/dist/jsx/toolbar/MoreDropdown.native.js.map +1 -1
- package/package.json +8 -8
- package/src/RichEditor.stories.tsx +36 -1
- package/src/RichTextEditor/index.tsx +134 -50
- package/src/RichTextEditor/richTextEditor.spec.tsx +141 -147
- package/src/toolbar/HeadingPicker.tsx +15 -14
- package/src/toolbar/ListPicker.tsx +9 -13
- package/src/toolbar/MoreDropdown.tsx +9 -13
- package/types/RichTextEditor/index.d.ts +6 -0
- package/types/RichTextEditor/index.d.ts.map +1 -1
- package/types/toolbar/HeadingPicker.d.ts.map +1 -1
- package/types/toolbar/ListPicker.d.ts.map +1 -1
- package/types/toolbar/MoreDropdown.d.ts.map +1 -1
|
@@ -136,20 +136,21 @@ export function HeadingPicker({ editorRef, state, disabled }: HeadingPickerProps
|
|
|
136
136
|
<Text fontWeight="600">{getActiveHeadingLabel(state)}</Text>
|
|
137
137
|
</ToolbarDropdownButton>
|
|
138
138
|
</DropdownMenu.Trigger>
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
139
|
+
{/*
|
|
140
|
+
* MPO-85: no onCloseAutoFocus. DropdownMenuContentProps used to extend
|
|
141
|
+
* PopoverContentProps and DropdownMenuContent used to spread `...props`,
|
|
142
|
+
* so this handler reached the overlay. The DropdownMenu rewrite dropped
|
|
143
|
+
* both: the interface now declares four props and the component reads
|
|
144
|
+
* only `children`, so the handler was already being discarded before it
|
|
145
|
+
* failed the build with TS2322.
|
|
146
|
+
*
|
|
147
|
+
* Restore the pass here in the same change that gives DropdownMenu.Content
|
|
148
|
+
* its prop pass-through back. Until then the intent is: toolbar menus must
|
|
149
|
+
* not steal focus back to the trigger on select-close, because the user
|
|
150
|
+
* expects to keep typing, so focus returns to the editor. Escape still
|
|
151
|
+
* restores the trigger via the menu's own close().
|
|
152
|
+
*/}
|
|
153
|
+
<DropdownMenu.Content minWidth={200}>
|
|
153
154
|
{HEADING_OPTIONS.map((option) => {
|
|
154
155
|
const description = option.description();
|
|
155
156
|
return (
|
|
@@ -86,19 +86,15 @@ export function ListPicker({ editorRef, state, disabled }: ListPickerProps) {
|
|
|
86
86
|
<ActiveIcon />
|
|
87
87
|
</ToolbarDropdownButton>
|
|
88
88
|
</DropdownMenu.Trigger>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
editorRef.current?.focus();
|
|
99
|
-
}
|
|
100
|
-
}}
|
|
101
|
-
>
|
|
89
|
+
{/*
|
|
90
|
+
* MPO-85: no onCloseAutoFocus — DropdownMenu.Content stopped accepting
|
|
91
|
+
* and forwarding it, so the handler was already discarded before it
|
|
92
|
+
* failed the build. Intent, to restore with the pass-through: toolbar
|
|
93
|
+
* menus must not steal focus back to the trigger on select-close, so
|
|
94
|
+
* focus returns to the editor and typing continues. Escape still
|
|
95
|
+
* restores the trigger via the menu's own close().
|
|
96
|
+
*/}
|
|
97
|
+
<DropdownMenu.Content minWidth={150}>
|
|
102
98
|
{LIST_OPTIONS.map((option) => {
|
|
103
99
|
const Icon = option.icon;
|
|
104
100
|
const label = option.label();
|
|
@@ -170,19 +170,15 @@ export function MoreDropdown({
|
|
|
170
170
|
<MoreIcon />
|
|
171
171
|
</ToolbarButton>
|
|
172
172
|
</DropdownMenu.Trigger>
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
editorRef.current?.focus();
|
|
183
|
-
}
|
|
184
|
-
}}
|
|
185
|
-
>
|
|
173
|
+
{/*
|
|
174
|
+
* MPO-85: no onCloseAutoFocus — DropdownMenu.Content stopped accepting
|
|
175
|
+
* and forwarding it, so the handler was already discarded before it
|
|
176
|
+
* failed the build. Intent, to restore with the pass-through: toolbar
|
|
177
|
+
* menus must not steal focus back to the trigger on select-close, so
|
|
178
|
+
* focus returns to the editor and typing continues. Escape still
|
|
179
|
+
* restores the trigger via the menu's own close().
|
|
180
|
+
*/}
|
|
181
|
+
<DropdownMenu.Content minWidth={200}>
|
|
186
182
|
{inlineItems.length > 0 && (
|
|
187
183
|
<>
|
|
188
184
|
<ItemSection items={inlineItems} state={state} onSelect={handleSelect} />
|
|
@@ -14,6 +14,11 @@ import type React from "react";
|
|
|
14
14
|
import type { LabelProps, SizeTokens } from "tamagui";
|
|
15
15
|
import { type FormFieldProps, type FieldComponentProps, type Validator } from "@multiplatform.one/forms";
|
|
16
16
|
import type { EditorCapabilities, RichTextMentionOptions, ToolbarSection } from "../types";
|
|
17
|
+
/**
|
|
18
|
+
* Rich text empty check: treats null, undefined, empty string, and
|
|
19
|
+
* Tiptap's default empty paragraph as empty values.
|
|
20
|
+
*/
|
|
21
|
+
export declare function richTextIsEmpty(v: unknown): boolean;
|
|
17
22
|
export type RichTextEditorProps<TParentData = any, TName extends DeepKeys<TParentData> = any, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = Omit<FormFieldProps<TParentData, TName, TFieldValidator, TFormValidator, TData>, "children" | "field"> & Partial<Omit<FieldComponentProps<TParentData, TName, TFieldValidator, TFormValidator, TData>, "children">> & {
|
|
18
23
|
value?: string;
|
|
19
24
|
defaultValue?: string;
|
|
@@ -30,6 +35,7 @@ export type RichTextEditorProps<TParentData = any, TName extends DeepKeys<TParen
|
|
|
30
35
|
error?: string | boolean;
|
|
31
36
|
required?: boolean;
|
|
32
37
|
size?: SizeTokens;
|
|
38
|
+
id?: string;
|
|
33
39
|
/** Show the formatting toolbar (default: true) */
|
|
34
40
|
showToolbar?: boolean;
|
|
35
41
|
/** Use compact sizing for toolbar (default: false) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/RichTextEditor/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/RichTextEditor/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadingPicker.d.ts","sourceRoot":"","sources":["../../src/toolbar/HeadingPicker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ1E,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjD,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoGD,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"HeadingPicker.d.ts","sourceRoot":"","sources":["../../src/toolbar/HeadingPicker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ1E,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjD,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoGD,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAuD/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPicker.d.ts","sourceRoot":"","sources":["../../src/toolbar/ListPicker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAS1E,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjD,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiDD,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"ListPicker.d.ts","sourceRoot":"","sources":["../../src/toolbar/ListPicker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAS1E,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjD,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiDD,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAiDzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoreDropdown.d.ts","sourceRoot":"","sources":["../../src/toolbar/MoreDropdown.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,kBAAkB,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgB9F,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjD,KAAK,EAAE,WAAW,CAAC;IACnB,wEAAwE;IACxE,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAwGD,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,YAAqB,EACrB,QAAQ,GACT,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MoreDropdown.d.ts","sourceRoot":"","sources":["../../src/toolbar/MoreDropdown.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,kBAAkB,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgB9F,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjD,KAAK,EAAE,WAAW,CAAC;IACnB,wEAAwE;IACxE,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAwGD,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,YAAqB,EACrB,QAAQ,GACT,EAAE,iBAAiB,2CAyDnB"}
|