@etrepum/lexical-builder 0.0.2 → 0.0.3-nightly.20240531.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/index.d.mts +2 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +35 -35
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
@@ -208,7 +208,8 @@ interface ReactConfig {
|
|
208
208
|
placeholder: ((isEditable: boolean) => null | JSX.Element) | null | JSX.Element;
|
209
209
|
ErrorBoundary: ErrorBoundaryType;
|
210
210
|
EditorChildrenComponent: EditorChildrenComponentType;
|
211
|
-
|
211
|
+
Component: EditorComponentType;
|
212
|
+
getContext: () => LexicalComposerContextWithEditor;
|
212
213
|
decorators: readonly DecoratorComponentType[];
|
213
214
|
}
|
214
215
|
interface LexicalPlanComposerProps {
|
package/dist/index.d.mts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts","../src/types.ts","../src/definePlan.ts","../src/safeCast.ts","../src/AutoFocusPlan.ts","../src/DragonPlan.ts","../src/HistoryPlan.ts","../src/shared/invariant.ts","../src/deepThemeMergeInPlace.ts","../src/initializeEditor.ts","../src/shallowMergeConfig.ts","../src/PlanRep.ts","../src/LexicalBuilder.ts","../src/PlainTextPlan.ts","../src/registerSubscription.ts","../src/registerShowPlaceholder.ts","../src/shared/useLayoutEffect.ts","../src/useReactDecorators.tsx","../src/useRegisterSubscription.ts","../src/ReactPlan.tsx","../src/ReactPluginHostPlan.tsx","../src/RichTextPlan.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts","../src/types.ts","../src/definePlan.ts","../src/safeCast.ts","../src/AutoFocusPlan.ts","../src/DragonPlan.ts","../src/HistoryPlan.ts","../src/shared/invariant.ts","../src/deepThemeMergeInPlace.ts","../src/initializeEditor.ts","../src/shallowMergeConfig.ts","../src/PlanRep.ts","../src/LexicalBuilder.ts","../src/PlainTextPlan.ts","../src/registerSubscription.ts","../src/registerShowPlaceholder.ts","../src/shared/useLayoutEffect.ts","../src/useReactDecorators.tsx","../src/useRegisterSubscription.ts","../src/ReactPlan.tsx","../src/ReactPluginHostPlan.tsx","../src/RichTextPlan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AAEH,OAAO,k0BAAuC,CAAwB"}
|
package/dist/index.mjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { registerDragonSupport } from '@lexical/dragon';
|
2
|
-
import {
|
2
|
+
import { registerHistory, createEmptyHistoryState } from '@lexical/history';
|
3
3
|
import { $getRoot, $createParagraphNode, createEditor, createCommand, COMMAND_PRIORITY_CRITICAL, COMMAND_PRIORITY_EDITOR } from 'lexical';
|
4
4
|
import { registerPlainText } from '@lexical/plain-text';
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
@@ -31454,21 +31454,23 @@ function useRegisterSubscription(subscription) {
|
|
31454
31454
|
return useLexicalSubscription(sub);
|
31455
31455
|
}
|
31456
31456
|
|
31457
|
-
function notImplemented() { }
|
31458
31457
|
const scheduleMicrotask = "queueMicrotask" in globalThis
|
31459
31458
|
? queueMicrotask
|
31460
31459
|
: (fn) => Promise.resolve().then(fn);
|
31461
31460
|
function LexicalPlanComposer({ plan, children, }) {
|
31462
31461
|
const componentRef = useRef(undefined);
|
31463
31462
|
const handle = useMemo(() => {
|
31464
|
-
return LexicalBuilder.fromPlans(
|
31465
|
-
|
31466
|
-
|
31467
|
-
|
31468
|
-
|
31469
|
-
|
31470
|
-
|
31471
|
-
|
31463
|
+
return LexicalBuilder.fromPlans({
|
31464
|
+
name: "@lexical/builder/LexicalPlanComposer",
|
31465
|
+
config: {},
|
31466
|
+
dependencies: [ReactPlan],
|
31467
|
+
register(_editor, _config, state) {
|
31468
|
+
componentRef.current = state.getDependencyConfig(ReactPlan).Component;
|
31469
|
+
return () => {
|
31470
|
+
componentRef.current = undefined;
|
31471
|
+
};
|
31472
|
+
},
|
31473
|
+
}, plan).buildEditor();
|
31472
31474
|
}, [plan]);
|
31473
31475
|
useEffect(() => {
|
31474
31476
|
// This is an awful trick to detect StrictMode
|
@@ -31488,7 +31490,8 @@ function LexicalPlanComposer({ plan, children, }) {
|
|
31488
31490
|
function DefaultEditorChildrenComponent({ contentEditable, placeholder, children, }) {
|
31489
31491
|
return (jsxs(Fragment, { children: [contentEditable, placeholder && jsx(Placeholder, { content: placeholder }), children] }));
|
31490
31492
|
}
|
31491
|
-
function buildEditorComponent(
|
31493
|
+
function buildEditorComponent(config) {
|
31494
|
+
const context = config.getContext();
|
31492
31495
|
const [editor] = context;
|
31493
31496
|
const rawConfigDecorators = config.decorators.map((El) => typeof El === "function" ? jsx(El, { context: context }) : El);
|
31494
31497
|
return function EditorComponent(props) {
|
@@ -31513,15 +31516,23 @@ function Placeholder({ content, }) {
|
|
31513
31516
|
return content;
|
31514
31517
|
}
|
31515
31518
|
}
|
31519
|
+
const initialConfig = {
|
31520
|
+
EditorChildrenComponent: DefaultEditorChildrenComponent,
|
31521
|
+
ErrorBoundary: LexicalErrorBoundary,
|
31522
|
+
contentEditable: jsx(ContentEditable, {}),
|
31523
|
+
decorators: [],
|
31524
|
+
placeholder: null,
|
31525
|
+
// Initialized on registration
|
31526
|
+
Component() {
|
31527
|
+
invariant(false, "ReactPlan used before register");
|
31528
|
+
},
|
31529
|
+
// Initialized on registration
|
31530
|
+
getContext() {
|
31531
|
+
invariant(false, "ReactPlan used before register");
|
31532
|
+
},
|
31533
|
+
};
|
31516
31534
|
const ReactPlan = definePlan({
|
31517
|
-
config:
|
31518
|
-
EditorChildrenComponent: DefaultEditorChildrenComponent,
|
31519
|
-
ErrorBoundary: LexicalErrorBoundary,
|
31520
|
-
contentEditable: jsx(ContentEditable, {}),
|
31521
|
-
decorators: [],
|
31522
|
-
placeholder: null,
|
31523
|
-
setComponent: notImplemented,
|
31524
|
-
}),
|
31535
|
+
config: initialConfig,
|
31525
31536
|
mergeConfig(a, b) {
|
31526
31537
|
const config = shallowMergeConfig(a, b);
|
31527
31538
|
if (b && b.decorators && b.decorators.length > 0) {
|
@@ -31535,9 +31546,11 @@ const ReactPlan = definePlan({
|
|
31535
31546
|
editor,
|
31536
31547
|
{ getTheme: () => editor._config.theme },
|
31537
31548
|
];
|
31538
|
-
config.
|
31549
|
+
config.getContext = () => context;
|
31550
|
+
config.Component = buildEditorComponent(config);
|
31539
31551
|
return () => {
|
31540
|
-
config.
|
31552
|
+
config.getContext = initialConfig.getContext;
|
31553
|
+
config.Component = initialConfig.Component;
|
31541
31554
|
};
|
31542
31555
|
},
|
31543
31556
|
});
|
@@ -31575,7 +31588,6 @@ function mountReactPluginHost(editor, container) {
|
|
31575
31588
|
root: createRoot(container),
|
31576
31589
|
});
|
31577
31590
|
}
|
31578
|
-
const componentMap = new WeakMap();
|
31579
31591
|
const REACT_PLUGIN_HOST_MOUNT_COMMAND = createCommand("REACT_PLUGIN_HOST_MOUNT_COMMAND");
|
31580
31592
|
const REACT_MOUNT_PLUGIN_COMMAND = createCommand("REACT_MOUNT_PLUGIN_COMMAND");
|
31581
31593
|
const ReactPluginHostPlan = definePlan({
|
@@ -31583,22 +31595,13 @@ const ReactPluginHostPlan = definePlan({
|
|
31583
31595
|
dependencies: [
|
31584
31596
|
configPlan(ReactPlan, {
|
31585
31597
|
contentEditable: null,
|
31586
|
-
setComponent(Component, context) {
|
31587
|
-
const [editor] = context;
|
31588
|
-
if (Component) {
|
31589
|
-
componentMap.set(editor, [Component, context]);
|
31590
|
-
}
|
31591
|
-
else {
|
31592
|
-
componentMap.delete(editor);
|
31593
|
-
}
|
31594
|
-
},
|
31595
31598
|
}),
|
31596
31599
|
],
|
31597
31600
|
name: "@etrepum/lexical-builder/ReactPluginHostPlan",
|
31598
31601
|
register(editor, _config, state) {
|
31599
31602
|
let root;
|
31600
31603
|
const mountedPlugins = new Map();
|
31601
|
-
const { ErrorBoundary } = state.getDependencyConfig(ReactPlan);
|
31604
|
+
const { ErrorBoundary, Component } = state.getDependencyConfig(ReactPlan);
|
31602
31605
|
function renderMountedPlugins() {
|
31603
31606
|
const children = [];
|
31604
31607
|
for (const { key, element, domNode } of mountedPlugins.values()) {
|
@@ -31629,9 +31632,6 @@ const ReactPluginHostPlan = definePlan({
|
|
31629
31632
|
return false;
|
31630
31633
|
}, COMMAND_PRIORITY_CRITICAL), editor.registerCommand(REACT_PLUGIN_HOST_MOUNT_COMMAND, (arg) => {
|
31631
31634
|
root = arg.root;
|
31632
|
-
const pair = componentMap.get(editor);
|
31633
|
-
invariant(pair !== undefined, "ReactPluginHostPlan: Expecting ReactPlan to have called setComponent");
|
31634
|
-
const [Component] = pair;
|
31635
31635
|
root.render(jsx(Component, { children: jsx(PluginHost, {}) }));
|
31636
31636
|
return true;
|
31637
31637
|
}, COMMAND_PRIORITY_EDITOR));
|