@quadrats/react 0.4.5 → 0.5.1
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/_internal/renderer/typings.d.ts +3 -3
- package/blockquote/jsx-serializer/createJsxSerializeBlockquote.d.ts +1 -1
- package/core/components/Editable.js +2 -1
- package/core/composeHandlers.d.ts +1 -2
- package/core/composeRenderElements.d.ts +1 -1
- package/core/createReactEditor.d.ts +2 -1
- package/core/createRenderElement.d.ts +1 -1
- package/core/createRenderElements.d.ts +1 -1
- package/core/index.d.ts +10 -1
- package/core/typings/handler.d.ts +1 -2
- package/core/typings/renderer.d.ts +3 -3
- package/divider/jsx-serializer/createJsxSerializeDivider.d.ts +1 -1
- package/divider/toolbar/index.cjs.js +1 -1
- package/divider/toolbar/useDividerTool.js +2 -2
- package/embed/jsx-serializer/createJsxSerializeEmbed.d.ts +1 -1
- package/embed/toolbar/index.cjs.js +1 -1
- package/embed/toolbar/useEmbedTool.js +2 -2
- package/file-uploader/hooks/useFileUploader.js +2 -2
- package/file-uploader/index.cjs.js +1 -1
- package/file-uploader/toolbar/index.cjs.js +1 -1
- package/file-uploader/toolbar/useFileUploaderTool.js +2 -2
- package/footnote/index.cjs.js +6 -5
- package/footnote/jsx-serializer/createJsxSerializeFootnote.d.ts +1 -1
- package/footnote/useFootnotes.js +2 -2
- package/footnote/useFootnotesFromNodes.d.ts +2 -2
- package/footnote/useFootnotesFromNodes.js +4 -3
- package/heading/jsx-serializer/createJsxSerializeHeading.d.ts +1 -1
- package/image/components/Image.js +2 -2
- package/image/components/ImageCaption.js +2 -2
- package/image/hooks/useImageResizer.js +2 -2
- package/image/index.cjs.js +3 -3
- package/image/jsx-serializer/createJsxSerializeImage.d.ts +2 -1
- package/image/jsx-serializer/createJsxSerializeImage.js +5 -4
- package/image/jsx-serializer/index.cjs.js +5 -4
- package/index.cjs.js +3 -2
- package/index.js +1 -1
- package/jsx-serializer/createJsxSerializeElement.d.ts +1 -1
- package/jsx-serializer/createJsxSerializeElements.d.ts +1 -1
- package/jsx-serializer/createJsxSerializer.d.ts +2 -2
- package/jsx-serializer/createJsxSerializer.js +2 -2
- package/jsx-serializer/index.cjs.js +2 -2
- package/jsx-serializer/typings.d.ts +2 -2
- package/link/jsx-serializer/createJsxSerializeLink.d.ts +1 -1
- package/link/toolbar/index.cjs.js +1 -1
- package/link/toolbar/useUnlinkTool.js +2 -2
- package/list/jsx-serializer/createJsxSerializeList.d.ts +1 -1
- package/package.json +12 -12
- package/paragraph/createRenderParagraphElement.d.ts +1 -1
- package/paragraph/jsx-serializer/createJsxSerializeParagraph.d.ts +1 -1
- package/read-more/jsx-serializer/createJsxSerializeReadMore.d.ts +1 -1
- package/read-more/toolbar/index.cjs.js +1 -1
- package/read-more/toolbar/useReadMoreTool.js +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import { QuadratsElement, Text, WithElementType, WithMarkType } from '@quadrats/core';
|
|
3
3
|
export interface RenderLeafPropsBase {
|
|
4
4
|
children: any;
|
|
5
5
|
leaf: Text;
|
|
@@ -7,13 +7,13 @@ export interface RenderLeafPropsBase {
|
|
|
7
7
|
export interface RenderMarkPropsBase<M> extends RenderLeafPropsBase {
|
|
8
8
|
mark: M;
|
|
9
9
|
}
|
|
10
|
-
export interface RenderElementPropsBase<E extends
|
|
10
|
+
export interface RenderElementPropsBase<E extends QuadratsElement = QuadratsElement> {
|
|
11
11
|
children: any;
|
|
12
12
|
element: E;
|
|
13
13
|
}
|
|
14
14
|
export interface CreateRenderMarkOptionsBase<M, P extends RenderMarkPropsBase<M>> extends WithMarkType {
|
|
15
15
|
render: (props: P) => JSX.Element;
|
|
16
16
|
}
|
|
17
|
-
export interface CreateRenderElementOptionsBase<P extends RenderElementPropsBase<
|
|
17
|
+
export interface CreateRenderElementOptionsBase<P extends RenderElementPropsBase<QuadratsElement>> extends WithElementType {
|
|
18
18
|
render: (props: P) => JSX.Element | null | undefined;
|
|
19
19
|
}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeBlockquoteElementProps } from './typings';
|
|
4
4
|
export declare type CreateJsxSerializeBlockquoteOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeBlockquoteElementProps>>;
|
|
5
|
-
export declare function createJsxSerializeBlockquote(options?: CreateJsxSerializeBlockquoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
5
|
+
export declare function createJsxSerializeBlockquote(options?: CreateJsxSerializeBlockquoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -39,7 +39,8 @@ function Editable(props) {
|
|
|
39
39
|
}, [onCompositionStartProp, isEditorEmpty]);
|
|
40
40
|
const renderLeaf = useCallback((props) => {
|
|
41
41
|
const children = renderLeafProp ? renderLeafProp(props) : React.createElement(DefaultLeaf, Object.assign({}, props));
|
|
42
|
-
|
|
42
|
+
const { leaf } = props;
|
|
43
|
+
if (placeholderShowable && leaf[PLACEHOLDER_KEY]) {
|
|
43
44
|
return (React.createElement(React.Fragment, null,
|
|
44
45
|
React.createElement("span", { className: "qdr-editable__placeholder", contentEditable: false }, placeholder),
|
|
45
46
|
children));
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { ReactEditor } from 'slate-react';
|
|
2
|
-
import { HistoryEditor } from '@quadrats/core';
|
|
3
2
|
import { EventHandlerName, EventHandlers, Handler } from './typings/handler';
|
|
4
3
|
/**
|
|
5
4
|
* To compose sequential `event handlers` to single for each event types.
|
|
6
5
|
*/
|
|
7
6
|
export declare function composeHandlers<H extends EventHandlerName>(handlersList: {
|
|
8
7
|
[HH in H]?: Handler<HH>;
|
|
9
|
-
}[]): (editor: ReactEditor
|
|
8
|
+
}[]): (editor: ReactEditor) => EventHandlers;
|
|
@@ -3,4 +3,4 @@ import { RenderElementProps } from './typings/renderer';
|
|
|
3
3
|
/**
|
|
4
4
|
* To compose sequential `renderElement`s to single.
|
|
5
5
|
*/
|
|
6
|
-
export declare function composeRenderElements(renderElements: ((props: RenderElementProps) => JSX.Element | null | undefined)[]): (props: RenderElementProps<import("
|
|
6
|
+
export declare function composeRenderElements(renderElements: ((props: RenderElementProps) => JSX.Element | null | undefined)[]): (props: RenderElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ReactEditor } from 'slate-react';
|
|
2
|
+
export declare function createReactEditor(): ReactEditor;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CreateRenderElementOptions, RenderElementProps } from './typings/renderer';
|
|
3
|
-
export declare function createRenderElement<P extends RenderElementProps>(options: CreateRenderElementOptions<P>): (props: RenderElementProps<import("
|
|
3
|
+
export declare function createRenderElement<P extends RenderElementProps>(options: CreateRenderElementOptions<P>): (props: RenderElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CreateRenderElementOptions, RenderElementProps } from './typings/renderer';
|
|
3
|
-
export declare function createRenderElements<P extends RenderElementProps>(options: CreateRenderElementOptions<P>[]): (props: RenderElementProps<import("
|
|
3
|
+
export declare function createRenderElements<P extends RenderElementProps>(options: CreateRenderElementOptions<P>[]): (props: RenderElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
package/core/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { BaseEditor, QuadratsElement, QuadratsText } from '@quadrats/core';
|
|
2
|
+
import { ReactEditor } from 'slate-react';
|
|
3
|
+
export { useSlateStatic, useFocused, useReadOnly, useSelected, useSlate as useQuadrats, ReactEditor, } from 'slate-react';
|
|
2
4
|
export * from './typings/handler';
|
|
3
5
|
export * from './typings/renderer';
|
|
4
6
|
export * from './typings/with';
|
|
@@ -13,3 +15,10 @@ export { createReactEditor } from './createReactEditor';
|
|
|
13
15
|
export { createRenderElement } from './createRenderElement';
|
|
14
16
|
export { createRenderElements } from './createRenderElements';
|
|
15
17
|
export { createRenderMark } from './createRenderMark';
|
|
18
|
+
declare module 'slate' {
|
|
19
|
+
interface CustomTypes {
|
|
20
|
+
Editor: BaseEditor & ReactEditor;
|
|
21
|
+
Element: QuadratsElement;
|
|
22
|
+
Text: QuadratsText;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { DOMAttributes, EventHandler } from 'react';
|
|
2
2
|
import { ReactEditor } from 'slate-react';
|
|
3
|
-
import { HistoryEditor } from '@quadrats/core';
|
|
4
3
|
export declare type EventHandlerName = {
|
|
5
4
|
[K in keyof Required<DOMAttributes<HTMLElement>>]: NonNullable<DOMAttributes<HTMLElement>[K]> extends EventHandler<any> ? K : never;
|
|
6
5
|
}[keyof DOMAttributes<HTMLElement>];
|
|
7
6
|
export declare type EventHandlers = Pick<DOMAttributes<HTMLElement>, EventHandlerName>;
|
|
8
7
|
export declare type GetEventHandlerByName<H extends EventHandlerName> = NonNullable<EventHandlers[H]>;
|
|
9
8
|
export declare type GetEventByName<H extends EventHandlerName> = GetEventHandlerByName<H> extends (event: infer E) => void ? E : never;
|
|
10
|
-
export declare type Handler<H extends EventHandlerName> = (event: GetEventByName<H>, editor: ReactEditor
|
|
9
|
+
export declare type Handler<H extends EventHandlerName> = (event: GetEventByName<H>, editor: ReactEditor, next: VoidFunction) => void;
|
|
11
10
|
export declare type Handlers = {
|
|
12
11
|
[H in EventHandlerName]?: Handler<H>;
|
|
13
12
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { RenderElementProps as SlateReactRenderElementProps, RenderLeafProps as SlateRenderLeafProps } from 'slate-react';
|
|
3
|
-
import {
|
|
3
|
+
import { QuadratsElement } from '@quadrats/core';
|
|
4
4
|
import { CreateRenderElementOptionsBase, CreateRenderMarkOptionsBase, RenderElementPropsBase, RenderLeafPropsBase, RenderMarkPropsBase } from '@quadrats/react/_internal';
|
|
5
5
|
export declare type RenderLeafProps = RenderLeafPropsBase & Pick<SlateRenderLeafProps, 'attributes'>;
|
|
6
6
|
export declare type RenderMarkProps<M> = RenderMarkPropsBase<M>;
|
|
7
|
-
export declare type RenderElementProps<E extends
|
|
7
|
+
export declare type RenderElementProps<E extends QuadratsElement = QuadratsElement> = RenderElementPropsBase<E> & Pick<SlateReactRenderElementProps, 'attributes'>;
|
|
8
8
|
export declare type CreateRenderMarkOptions<M> = CreateRenderMarkOptionsBase<M, RenderMarkProps<M>>;
|
|
9
|
-
export declare type CreateRenderElementOptions<P extends RenderElementProps<
|
|
9
|
+
export declare type CreateRenderElementOptions<P extends RenderElementProps<QuadratsElement>> = CreateRenderElementOptionsBase<P>;
|
|
10
10
|
export interface WithCreateRenderLeaf<P extends any[] = []> {
|
|
11
11
|
createRenderLeaf: (...params: P) => (props: RenderLeafProps) => JSX.Element;
|
|
12
12
|
}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeDividerProps } from './typings';
|
|
4
4
|
export declare type CreateJsxSerializeDividerOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeDividerProps>>;
|
|
5
|
-
export declare function createJsxSerializeDivider(options?: CreateJsxSerializeDividerOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
5
|
+
export declare function createJsxSerializeDivider(options?: CreateJsxSerializeDividerOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -12,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
13
13
|
|
|
14
14
|
function useDividerTool(controller) {
|
|
15
|
-
const editor = react.
|
|
15
|
+
const editor = react.useSlateStatic();
|
|
16
16
|
return {
|
|
17
17
|
onClick: () => controller.insertDivider(editor),
|
|
18
18
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSlateStatic } from '@quadrats/react';
|
|
2
2
|
|
|
3
3
|
function useDividerTool(controller) {
|
|
4
|
-
const editor =
|
|
4
|
+
const editor = useSlateStatic();
|
|
5
5
|
return {
|
|
6
6
|
onClick: () => controller.insertDivider(editor),
|
|
7
7
|
};
|
|
@@ -6,4 +6,4 @@ export interface CreateJsxSerializeEmbedOptions<Provider extends string> {
|
|
|
6
6
|
strategies: EmbedStrategies<Provider>;
|
|
7
7
|
renderers: Record<Provider, (props: JsxSerializeEmbedElementProps<any, any>) => JSX.Element | null | undefined>;
|
|
8
8
|
}
|
|
9
|
-
export declare function createJsxSerializeEmbed<Provider extends string>(options: CreateJsxSerializeEmbedOptions<Provider>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
9
|
+
export declare function createJsxSerializeEmbed<Provider extends string>(options: CreateJsxSerializeEmbedOptions<Provider>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -12,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
13
13
|
|
|
14
14
|
function useEmbedTool(controller, providers, getPlaceholder, startToolInput) {
|
|
15
|
-
const editor = react.
|
|
15
|
+
const editor = react.useSlateStatic();
|
|
16
16
|
const defaultStartToolInput = toolbar.useStartToolInput();
|
|
17
17
|
const start = startToolInput
|
|
18
18
|
? (inputConfig) => startToolInput(editor, inputConfig)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSlateStatic } from '@quadrats/react';
|
|
2
2
|
import { useStartToolInput } from '@quadrats/react/toolbar';
|
|
3
3
|
|
|
4
4
|
function useEmbedTool(controller, providers, getPlaceholder, startToolInput) {
|
|
5
|
-
const editor =
|
|
5
|
+
const editor = useSlateStatic();
|
|
6
6
|
const defaultStartToolInput = useStartToolInput();
|
|
7
7
|
const start = startToolInput
|
|
8
8
|
? (inputConfig) => startToolInput(editor, inputConfig)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useState, useLayoutEffect } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { useSlateStatic, ReactEditor } from '@quadrats/react';
|
|
3
3
|
|
|
4
4
|
function useFileUploader(element) {
|
|
5
5
|
const [percentage, setPercentage] = useState(0);
|
|
6
|
-
const editor =
|
|
6
|
+
const editor = useSlateStatic();
|
|
7
7
|
useLayoutEffect(() => element.register(() => ReactEditor.findPath(editor, element), setPercentage), [element]);
|
|
8
8
|
return {
|
|
9
9
|
percentage,
|
|
@@ -13,7 +13,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
13
13
|
|
|
14
14
|
function useFileUploader(element) {
|
|
15
15
|
const [percentage, setPercentage] = React.useState(0);
|
|
16
|
-
const editor = react.
|
|
16
|
+
const editor = react.useSlateStatic();
|
|
17
17
|
React.useLayoutEffect(() => element.register(() => react.ReactEditor.findPath(editor, element), setPercentage), [element]);
|
|
18
18
|
return {
|
|
19
19
|
percentage,
|
|
@@ -12,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
13
13
|
|
|
14
14
|
function useFileUploaderTool(controller, options) {
|
|
15
|
-
const editor = react.
|
|
15
|
+
const editor = react.useSlateStatic();
|
|
16
16
|
return {
|
|
17
17
|
onClick: () => controller.upload(editor, options),
|
|
18
18
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSlateStatic } from '@quadrats/react';
|
|
2
2
|
|
|
3
3
|
function useFileUploaderTool(controller, options) {
|
|
4
|
-
const editor =
|
|
4
|
+
const editor = useSlateStatic();
|
|
5
5
|
return {
|
|
6
6
|
onClick: () => controller.upload(editor, options),
|
|
7
7
|
};
|
package/footnote/index.cjs.js
CHANGED
|
@@ -37,10 +37,10 @@ function useFootnotes(editor) {
|
|
|
37
37
|
match: (node) => node.type === footnote.FOOTNOTE_TYPE,
|
|
38
38
|
}));
|
|
39
39
|
const footnotes = footnoteNodes.map((node) => {
|
|
40
|
-
var _a;
|
|
40
|
+
var _a, _b;
|
|
41
41
|
const nodeData = node === null || node === void 0 ? void 0 : node[0];
|
|
42
42
|
return {
|
|
43
|
-
wrapperText: (_a = (nodeData === null || nodeData === void 0 ? void 0 : nodeData.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join(''),
|
|
43
|
+
wrapperText: (_b = (_a = (nodeData === null || nodeData === void 0 ? void 0 : nodeData.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join('')) !== null && _b !== void 0 ? _b : '',
|
|
44
44
|
footnote: nodeData === null || nodeData === void 0 ? void 0 : nodeData.footnote,
|
|
45
45
|
index: nodeData === null || nodeData === void 0 ? void 0 : nodeData.index,
|
|
46
46
|
};
|
|
@@ -50,11 +50,12 @@ function useFootnotes(editor) {
|
|
|
50
50
|
|
|
51
51
|
function deepSearchFootnoteFromNodes(nodes) {
|
|
52
52
|
const result = nodes.flatMap((element) => {
|
|
53
|
-
var _a;
|
|
53
|
+
var _a, _b, _c, _d;
|
|
54
54
|
const curNode = core.Node.isNode(element)
|
|
55
55
|
&& element.type === footnote.FOOTNOTE_TYPE ? element : null;
|
|
56
|
-
const child = core.Node.isNodeList(
|
|
57
|
-
|
|
56
|
+
const child = core.Node.isNodeList((_a = element) === null || _a === void 0 ? void 0 : _a.children)
|
|
57
|
+
? deepSearchFootnoteFromNodes((_c = (_b = element) === null || _b === void 0 ? void 0 : _b.children) !== null && _c !== void 0 ? _c : []) : null;
|
|
58
|
+
return (_d = curNode !== null && curNode !== void 0 ? curNode : child) !== null && _d !== void 0 ? _d : [];
|
|
58
59
|
});
|
|
59
60
|
return result;
|
|
60
61
|
}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeFootnoteElementProps } from './typings';
|
|
4
4
|
export declare type CreateJsxSerializeFootnoteOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeFootnoteElementProps>>;
|
|
5
|
-
export declare function createJsxSerializeFootnote(options?: CreateJsxSerializeFootnoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
5
|
+
export declare function createJsxSerializeFootnote(options?: CreateJsxSerializeFootnoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
package/footnote/useFootnotes.js
CHANGED
|
@@ -7,10 +7,10 @@ function useFootnotes(editor) {
|
|
|
7
7
|
match: (node) => node.type === FOOTNOTE_TYPE,
|
|
8
8
|
}));
|
|
9
9
|
const footnotes = footnoteNodes.map((node) => {
|
|
10
|
-
var _a;
|
|
10
|
+
var _a, _b;
|
|
11
11
|
const nodeData = node === null || node === void 0 ? void 0 : node[0];
|
|
12
12
|
return {
|
|
13
|
-
wrapperText: (_a = (nodeData === null || nodeData === void 0 ? void 0 : nodeData.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join(''),
|
|
13
|
+
wrapperText: (_b = (_a = (nodeData === null || nodeData === void 0 ? void 0 : nodeData.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join('')) !== null && _b !== void 0 ? _b : '',
|
|
14
14
|
footnote: nodeData === null || nodeData === void 0 ? void 0 : nodeData.footnote,
|
|
15
15
|
index: nodeData === null || nodeData === void 0 ? void 0 : nodeData.index,
|
|
16
16
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Descendant } from '@quadrats/core';
|
|
2
2
|
import { FootnoteData } from '@quadrats/common/footnote';
|
|
3
|
-
export declare function useFootnotesFromNodes(nodes:
|
|
3
|
+
export declare function useFootnotesFromNodes(nodes: Descendant[]): FootnoteData[];
|
|
4
4
|
export default useFootnotesFromNodes;
|
|
@@ -3,11 +3,12 @@ import { FOOTNOTE_TYPE } from '@quadrats/common/footnote';
|
|
|
3
3
|
|
|
4
4
|
function deepSearchFootnoteFromNodes(nodes) {
|
|
5
5
|
const result = nodes.flatMap((element) => {
|
|
6
|
-
var _a;
|
|
6
|
+
var _a, _b, _c, _d;
|
|
7
7
|
const curNode = Node.isNode(element)
|
|
8
8
|
&& element.type === FOOTNOTE_TYPE ? element : null;
|
|
9
|
-
const child = Node.isNodeList(
|
|
10
|
-
|
|
9
|
+
const child = Node.isNodeList((_a = element) === null || _a === void 0 ? void 0 : _a.children)
|
|
10
|
+
? deepSearchFootnoteFromNodes((_c = (_b = element) === null || _b === void 0 ? void 0 : _b.children) !== null && _c !== void 0 ? _c : []) : null;
|
|
11
|
+
return (_d = curNode !== null && curNode !== void 0 ? curNode : child) !== null && _d !== void 0 ? _d : [];
|
|
11
12
|
});
|
|
12
13
|
return result;
|
|
13
14
|
}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeHeadingElementProps } from './typings';
|
|
4
4
|
export declare type CreateJsxSerializeHeadingOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeHeadingElementProps>>;
|
|
5
|
-
export declare function createJsxSerializeHeading(options?: CreateJsxSerializeHeadingOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
5
|
+
export declare function createJsxSerializeHeading(options?: CreateJsxSerializeHeadingOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Transforms } from '@quadrats/core';
|
|
3
|
-
import {
|
|
3
|
+
import { useSlateStatic, ReactEditor } from '@quadrats/react';
|
|
4
4
|
import { useImageResizer } from '../hooks/useImageResizer.js';
|
|
5
5
|
|
|
6
6
|
function Image(props) {
|
|
7
7
|
const { attributes, children, element, resizeImage, src, } = props;
|
|
8
|
-
const editor =
|
|
8
|
+
const editor = useSlateStatic();
|
|
9
9
|
const { focusedAndSelected, imageRef, onResizeStart } = useImageResizer(element, resizeImage);
|
|
10
10
|
return (
|
|
11
11
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import { Editor } from '@quadrats/core';
|
|
4
|
-
import {
|
|
4
|
+
import { useSlateStatic, ReactEditor, useLocale } from '@quadrats/react';
|
|
5
5
|
|
|
6
6
|
function ImageCaption(props) {
|
|
7
7
|
const { attributes, children, element } = props;
|
|
8
|
-
const editor =
|
|
8
|
+
const editor = useSlateStatic();
|
|
9
9
|
const path = ReactEditor.findPath(editor, element);
|
|
10
10
|
const text = Editor.string(editor, path);
|
|
11
11
|
const isEmpty = !text;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useRef, useState, useEffect } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { useSlateStatic, useFocused, useSelected, ReactEditor } from '@quadrats/react';
|
|
3
3
|
|
|
4
4
|
function isTouchEvent(event) {
|
|
5
5
|
const { touches } = event;
|
|
@@ -15,7 +15,7 @@ function getEditorWidth(editor) {
|
|
|
15
15
|
const moveEvents = ['mousemove', 'touchmove'];
|
|
16
16
|
const endEvents = ['mouseup', 'touchend'];
|
|
17
17
|
function useImageResizer(element, resizeImage) {
|
|
18
|
-
const editor =
|
|
18
|
+
const editor = useSlateStatic();
|
|
19
19
|
const focused = useFocused();
|
|
20
20
|
const selected = useSelected();
|
|
21
21
|
const focusedAndSelected = focused && selected;
|
package/image/index.cjs.js
CHANGED
|
@@ -41,7 +41,7 @@ function getEditorWidth(editor) {
|
|
|
41
41
|
const moveEvents = ['mousemove', 'touchmove'];
|
|
42
42
|
const endEvents = ['mouseup', 'touchend'];
|
|
43
43
|
function useImageResizer(element, resizeImage) {
|
|
44
|
-
const editor = react.
|
|
44
|
+
const editor = react.useSlateStatic();
|
|
45
45
|
const focused = react.useFocused();
|
|
46
46
|
const selected = react.useSelected();
|
|
47
47
|
const focusedAndSelected = focused && selected;
|
|
@@ -120,7 +120,7 @@ function useImageResizer(element, resizeImage) {
|
|
|
120
120
|
|
|
121
121
|
function Image(props) {
|
|
122
122
|
const { attributes, children, element, resizeImage, src, } = props;
|
|
123
|
-
const editor = react.
|
|
123
|
+
const editor = react.useSlateStatic();
|
|
124
124
|
const { focusedAndSelected, imageRef, onResizeStart } = useImageResizer(element, resizeImage);
|
|
125
125
|
return (
|
|
126
126
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions
|
|
@@ -135,7 +135,7 @@ function Image(props) {
|
|
|
135
135
|
|
|
136
136
|
function ImageCaption(props) {
|
|
137
137
|
const { attributes, children, element } = props;
|
|
138
|
-
const editor = react.
|
|
138
|
+
const editor = react.useSlateStatic();
|
|
139
139
|
const path = react.ReactEditor.findPath(editor, element);
|
|
140
140
|
const text = core.Editor.string(editor, path);
|
|
141
141
|
const isEmpty = !text;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ImageCaptionTypeKey, ImageFigureTypeKey, ImageHostingResolvers, ImageTypeKey } from '@quadrats/common/image';
|
|
3
|
+
import { QuadratsElement } from '@quadrats/core';
|
|
3
4
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
4
5
|
import { JsxSerializeImageCaptionElementProps, JsxSerializeImageElementProps, JsxSerializeImageFigureElementProps } from './typings';
|
|
5
6
|
export declare type CreateJsxSerializeImageOptions<H extends string> = Partial<Record<ImageFigureTypeKey, Partial<CreateJsxSerializeElementOptions<JsxSerializeImageFigureElementProps>>> & Record<ImageTypeKey, Partial<CreateJsxSerializeElementOptions<JsxSerializeImageElementProps>>> & Record<ImageCaptionTypeKey, Partial<CreateJsxSerializeElementOptions<JsxSerializeImageCaptionElementProps>>> & {
|
|
6
7
|
hostingResolvers?: ImageHostingResolvers<H>;
|
|
7
8
|
}>;
|
|
8
|
-
export declare function createJsxSerializeImage<H extends string>(options?: CreateJsxSerializeImageOptions<H>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<
|
|
9
|
+
export declare function createJsxSerializeImage<H extends string>(options?: CreateJsxSerializeImageOptions<H>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -23,17 +23,18 @@ function createJsxSerializeImage(options = {}) {
|
|
|
23
23
|
{
|
|
24
24
|
type: image.type || IMAGE_TYPES.image,
|
|
25
25
|
render: (props) => {
|
|
26
|
+
var _a, _b;
|
|
26
27
|
const { children } = props;
|
|
27
28
|
const element = props.element;
|
|
28
|
-
const figure = getFirstAncestor(element,
|
|
29
|
-
const caption = figure === null || figure === void 0 ? void 0 : figure.children[1];
|
|
30
|
-
return renderImage(Object.assign(Object.assign({}, getImageElementCommonProps(element, hostingResolvers)), { caption: (caption === null ||
|
|
29
|
+
const figure = getFirstAncestor(element, node => node.type === figureType);
|
|
30
|
+
const caption = (_a = figure === null || figure === void 0 ? void 0 : figure.children) === null || _a === void 0 ? void 0 : _a[1];
|
|
31
|
+
return renderImage(Object.assign(Object.assign({}, getImageElementCommonProps(element, hostingResolvers)), { caption: ((_b = caption) === null || _b === void 0 ? void 0 : _b.type) === captionType ? getMergedNodeTexts(caption) : '', children,
|
|
31
32
|
element }));
|
|
32
33
|
},
|
|
33
34
|
},
|
|
34
35
|
{
|
|
35
36
|
type: captionType,
|
|
36
|
-
render:
|
|
37
|
+
render: props => renderCaption(Object.assign(Object.assign({}, props), { isEmpty: !getMergedNodeTexts(props.element) })),
|
|
37
38
|
},
|
|
38
39
|
]);
|
|
39
40
|
}
|
|
@@ -37,17 +37,18 @@ function createJsxSerializeImage(options = {}) {
|
|
|
37
37
|
{
|
|
38
38
|
type: image$1.type || image.IMAGE_TYPES.image,
|
|
39
39
|
render: (props) => {
|
|
40
|
+
var _a, _b;
|
|
40
41
|
const { children } = props;
|
|
41
42
|
const element = props.element;
|
|
42
|
-
const figure = serializers.getFirstAncestor(element,
|
|
43
|
-
const caption = figure === null || figure === void 0 ? void 0 : figure.children[1];
|
|
44
|
-
return renderImage(Object.assign(Object.assign({}, image.getImageElementCommonProps(element, hostingResolvers)), { caption: (caption === null ||
|
|
43
|
+
const figure = serializers.getFirstAncestor(element, node => node.type === figureType);
|
|
44
|
+
const caption = (_a = figure === null || figure === void 0 ? void 0 : figure.children) === null || _a === void 0 ? void 0 : _a[1];
|
|
45
|
+
return renderImage(Object.assign(Object.assign({}, image.getImageElementCommonProps(element, hostingResolvers)), { caption: ((_b = caption) === null || _b === void 0 ? void 0 : _b.type) === captionType ? serializers.getMergedNodeTexts(caption) : '', children,
|
|
45
46
|
element }));
|
|
46
47
|
},
|
|
47
48
|
},
|
|
48
49
|
{
|
|
49
50
|
type: captionType,
|
|
50
|
-
render:
|
|
51
|
+
render: props => renderCaption(Object.assign(Object.assign({}, props), { isEmpty: !serializers.getMergedNodeTexts(props.element) })),
|
|
51
52
|
},
|
|
52
53
|
]);
|
|
53
54
|
}
|
package/index.cjs.js
CHANGED
|
@@ -50,7 +50,8 @@ function Editable(props) {
|
|
|
50
50
|
}, [onCompositionStartProp, isEditorEmpty]);
|
|
51
51
|
const renderLeaf = React.useCallback((props) => {
|
|
52
52
|
const children = renderLeafProp ? renderLeafProp(props) : React__default.createElement(DefaultLeaf, Object.assign({}, props));
|
|
53
|
-
|
|
53
|
+
const { leaf } = props;
|
|
54
|
+
if (placeholderShowable && leaf[PLACEHOLDER_KEY]) {
|
|
54
55
|
return (React__default.createElement(React__default.Fragment, null,
|
|
55
56
|
React__default.createElement("span", { className: "qdr-editable__placeholder", contentEditable: false }, placeholder),
|
|
56
57
|
children));
|
|
@@ -134,11 +135,11 @@ function createRenderMark(options) {
|
|
|
134
135
|
}
|
|
135
136
|
|
|
136
137
|
exports.ReactEditor = slateReact.ReactEditor;
|
|
137
|
-
exports.useEditor = slateReact.useEditor;
|
|
138
138
|
exports.useFocused = slateReact.useFocused;
|
|
139
139
|
exports.useQuadrats = slateReact.useSlate;
|
|
140
140
|
exports.useReadOnly = slateReact.useReadOnly;
|
|
141
141
|
exports.useSelected = slateReact.useSelected;
|
|
142
|
+
exports.useSlateStatic = slateReact.useSlateStatic;
|
|
142
143
|
exports.DefaultElement = DefaultElement;
|
|
143
144
|
exports.DefaultLeaf = DefaultLeaf;
|
|
144
145
|
exports.Editable = Editable;
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from '@quadrats/react/configs';
|
|
2
|
-
export { ReactEditor,
|
|
2
|
+
export { ReactEditor, useFocused, useSlate as useQuadrats, useReadOnly, useSelected, useSlateStatic } from 'slate-react';
|
|
3
3
|
export { default as Editable } from './core/components/Editable.js';
|
|
4
4
|
export { default as DefaultElement } from './core/components/DefaultElement.js';
|
|
5
5
|
export { default as DefaultLeaf } from './core/components/DefaultLeaf.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CreateJsxSerializeElementOptions, JsxSerializeElementProps } from './typings';
|
|
3
|
-
export declare function createJsxSerializeElement<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>): (props: JsxSerializeElementProps<import("
|
|
3
|
+
export declare function createJsxSerializeElement<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>): (props: JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CreateJsxSerializeElementOptions, JsxSerializeElementProps } from './typings';
|
|
3
|
-
export declare function createJsxSerializeElements<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>[]): (props: JsxSerializeElementProps<import("
|
|
3
|
+
export declare function createJsxSerializeElements<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>[]): (props: JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import { Descendant } from '@quadrats/core';
|
|
3
3
|
import { JsxSerializeElementProps, JsxSerializeLeafProps } from './typings';
|
|
4
4
|
export interface CreateJsxSerializerOptioons {
|
|
5
5
|
/**
|
|
@@ -14,5 +14,5 @@ export interface CreateJsxSerializerOptioons {
|
|
|
14
14
|
leafs?: ((props: JsxSerializeLeafProps) => JSX.Element)[];
|
|
15
15
|
}
|
|
16
16
|
export declare function createJsxSerializer(options: CreateJsxSerializerOptioons): {
|
|
17
|
-
serialize: (nodes:
|
|
17
|
+
serialize: (nodes: Descendant[]) => JSX.Element;
|
|
18
18
|
};
|
|
@@ -29,7 +29,7 @@ function createJsxSerializer(options) {
|
|
|
29
29
|
leaf: node,
|
|
30
30
|
children: (React.createElement("span", { style: leafStyle }, node.text
|
|
31
31
|
.split('\n')
|
|
32
|
-
.map(
|
|
32
|
+
.map(t => t || ' ')
|
|
33
33
|
.join('\n'))),
|
|
34
34
|
});
|
|
35
35
|
}
|
|
@@ -39,7 +39,7 @@ function createJsxSerializer(options) {
|
|
|
39
39
|
return addKey(result);
|
|
40
40
|
}
|
|
41
41
|
function serializeNodes(nodes, parent) {
|
|
42
|
-
return React.createElement(React.Fragment, null, nodes.map(
|
|
42
|
+
return React.createElement(React.Fragment, null, nodes.map(node => serializeNode(Object.assign(Object.assign({}, node), { parent }))));
|
|
43
43
|
}
|
|
44
44
|
return {
|
|
45
45
|
serialize: (nodes) => serializeNodes(nodes, undefined),
|
|
@@ -49,7 +49,7 @@ function createJsxSerializer(options) {
|
|
|
49
49
|
leaf: node,
|
|
50
50
|
children: (React__default.createElement("span", { style: leafStyle }, node.text
|
|
51
51
|
.split('\n')
|
|
52
|
-
.map(
|
|
52
|
+
.map(t => t || ' ')
|
|
53
53
|
.join('\n'))),
|
|
54
54
|
});
|
|
55
55
|
}
|
|
@@ -59,7 +59,7 @@ function createJsxSerializer(options) {
|
|
|
59
59
|
return addKey(result);
|
|
60
60
|
}
|
|
61
61
|
function serializeNodes(nodes, parent) {
|
|
62
|
-
return React__default.createElement(React__default.Fragment, null, nodes.map(
|
|
62
|
+
return React__default.createElement(React__default.Fragment, null, nodes.map(node => serializeNode(Object.assign(Object.assign({}, node), { parent }))));
|
|
63
63
|
}
|
|
64
64
|
return {
|
|
65
65
|
serialize: (nodes) => serializeNodes(nodes, undefined),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QuadratsElement } from '@quadrats/core';
|
|
2
2
|
import { WithElementParent } from '@quadrats/core/serializers';
|
|
3
3
|
import { CreateRenderElementOptionsBase, CreateRenderMarkOptionsBase, RenderElementPropsBase, RenderLeafPropsBase, RenderMarkPropsBase } from '@quadrats/react/_internal';
|
|
4
4
|
export declare type JsxSerializeLeafProps = RenderLeafPropsBase;
|
|
5
5
|
export declare type JsxSerializeMarkProps<M> = RenderMarkPropsBase<M>;
|
|
6
|
-
export declare type JsxSerializeElementProps<E extends
|
|
6
|
+
export declare type JsxSerializeElementProps<E extends QuadratsElement = QuadratsElement> = RenderElementPropsBase<E & WithElementParent>;
|
|
7
7
|
export declare type CreateJsxSerializeMarkOptions<M> = CreateRenderMarkOptionsBase<M, JsxSerializeMarkProps<M>>;
|
|
8
8
|
export declare type CreateJsxSerializeElementOptions<P extends JsxSerializeElementProps> = CreateRenderElementOptionsBase<P>;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeLinkElementProps } from './typings';
|
|
4
4
|
export declare type CreateJsxSerializeLinkOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeLinkElementProps>>;
|
|
5
|
-
export declare function createJsxSerializeLink(options?: CreateJsxSerializeLinkOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
5
|
+
export declare function createJsxSerializeLink(options?: CreateJsxSerializeLinkOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSlateStatic } from '@quadrats/react';
|
|
2
2
|
|
|
3
3
|
function useUnlinkTool(controller) {
|
|
4
|
-
const editor =
|
|
4
|
+
const editor = useSlateStatic();
|
|
5
5
|
return {
|
|
6
6
|
onClick: () => controller.unwrapLink(editor),
|
|
7
7
|
};
|
|
@@ -5,4 +5,4 @@ import { JsxSerializeListElementProps } from './typings';
|
|
|
5
5
|
export declare type CreateJsxSerializeListOptions = {
|
|
6
6
|
[key in ListTypeKey]?: CreateJsxSerializeElementOptions<JsxSerializeListElementProps>;
|
|
7
7
|
};
|
|
8
|
-
export declare function createJsxSerializeList(options?: CreateJsxSerializeListOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
8
|
+
export declare function createJsxSerializeList(options?: CreateJsxSerializeListOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quadrats/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Rytass",
|
|
6
6
|
"homepage": "https://github.com/Quadrats/quadrats#readme",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"url": "https://github.com/Quadrats/quadrats/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@quadrats/common": "^0.
|
|
24
|
-
"@quadrats/core": "^0.
|
|
25
|
-
"@quadrats/icons": "^0.
|
|
26
|
-
"@quadrats/locales": "^0.
|
|
27
|
-
"@quadrats/theme": "^0.
|
|
28
|
-
"@quadrats/utils": "^0.
|
|
29
|
-
"@types/is-hotkey": "^0.1.
|
|
30
|
-
"@types/react-transition-group": "^4.
|
|
23
|
+
"@quadrats/common": "^0.5.1",
|
|
24
|
+
"@quadrats/core": "^0.5.1",
|
|
25
|
+
"@quadrats/icons": "^0.5.0",
|
|
26
|
+
"@quadrats/locales": "^0.5.0",
|
|
27
|
+
"@quadrats/theme": "^0.5.0",
|
|
28
|
+
"@quadrats/utils": "^0.5.0",
|
|
29
|
+
"@types/is-hotkey": "^0.1.7",
|
|
30
|
+
"@types/react-transition-group": "^4.4.4",
|
|
31
31
|
"clsx": "^1.1.1",
|
|
32
32
|
"is-hotkey": "^0.2.0",
|
|
33
|
-
"react-transition-group": "^4.
|
|
34
|
-
"slate-react": "^0.
|
|
35
|
-
"tslib": "^2.
|
|
33
|
+
"react-transition-group": "^4.4.2",
|
|
34
|
+
"slate-react": "^0.72.1",
|
|
35
|
+
"tslib": "^2.3.1"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": "^16.8.6",
|
|
@@ -5,4 +5,4 @@ export declare type RenderParagraphElementProps = RenderElementProps<ParagraphEl
|
|
|
5
5
|
export interface CreateRenderParagraphElementOptions {
|
|
6
6
|
render?: (props: RenderParagraphElementProps) => JSX.Element | null | undefined;
|
|
7
7
|
}
|
|
8
|
-
export declare function createRenderParagraphElement(options?: CreateRenderParagraphElementOptions): (props: RenderElementProps<import("@quadrats/core").
|
|
8
|
+
export declare function createRenderParagraphElement(options?: CreateRenderParagraphElementOptions): (props: RenderElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeParagraphProps } from './typings';
|
|
4
4
|
export declare type CreateJsxSerializeParagraphOptions = Partial<Omit<CreateJsxSerializeElementOptions<JsxSerializeParagraphProps>, 'type'>>;
|
|
5
|
-
export declare function createJsxSerializeParagraph(options?: CreateJsxSerializeParagraphOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").
|
|
5
|
+
export declare function createJsxSerializeParagraph(options?: CreateJsxSerializeParagraphOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeReadMoreProps } from './typings';
|
|
4
4
|
export declare type CreateJsxSerializeReadMoreOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeReadMoreProps>>;
|
|
5
|
-
export declare function createJsxSerializeReadMore(options?: CreateJsxSerializeReadMoreOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("
|
|
5
|
+
export declare function createJsxSerializeReadMore(options?: CreateJsxSerializeReadMoreOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
|
|
@@ -12,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
13
13
|
|
|
14
14
|
function useReadMoreTool(controller) {
|
|
15
|
-
const editor = react.
|
|
15
|
+
const editor = react.useSlateStatic();
|
|
16
16
|
return {
|
|
17
17
|
onClick: () => controller.insertReadMore(editor),
|
|
18
18
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSlateStatic } from '@quadrats/react';
|
|
2
2
|
|
|
3
3
|
function useReadMoreTool(controller) {
|
|
4
|
-
const editor =
|
|
4
|
+
const editor = useSlateStatic();
|
|
5
5
|
return {
|
|
6
6
|
onClick: () => controller.insertReadMore(editor),
|
|
7
7
|
};
|