@quadrats/react 0.6.6 → 0.7.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/_internal/index.cjs.js +42 -44
- package/_internal/renderer/composeRenderElementsBase.js +10 -10
- package/_internal/renderer/composeRenderLeafsBase.js +8 -8
- package/_internal/renderer/createRenderElementBase.js +6 -6
- package/_internal/renderer/createRenderElementsBase.js +8 -8
- package/_internal/renderer/createRenderMarkBase.js +10 -10
- package/blockquote/constants.js +5 -5
- package/blockquote/createReactBlockquote.d.ts +1 -1
- package/blockquote/createReactBlockquote.js +58 -58
- package/blockquote/defaultRenderBlockquoteElement.d.ts +2 -2
- package/blockquote/index.cjs.js +64 -71
- package/blockquote/jsx-serializer/createJsxSerializeBlockquote.d.ts +2 -2
- package/blockquote/jsx-serializer/createJsxSerializeBlockquote.js +3 -3
- package/blockquote/jsx-serializer/index.cjs.js +3 -5
- package/blockquote/jsx-serializer/typings.d.ts +1 -1
- package/blockquote/toolbar/BlockquoteToolbarIcon.d.ts +2 -2
- package/blockquote/toolbar/BlockquoteToolbarIcon.js +4 -4
- package/blockquote/toolbar/index.cjs.js +10 -16
- package/blockquote/toolbar/useBlockquoteTool.js +6 -6
- package/blockquote/typings.d.ts +1 -1
- package/bold/constants.js +5 -5
- package/bold/createReactBold.d.ts +1 -1
- package/bold/createReactBold.js +3 -3
- package/bold/defaultRenderBold.d.ts +2 -2
- package/bold/defaultRenderBold.js +1 -1
- package/bold/index.cjs.js +9 -15
- package/bold/jsx-serializer/createJsxSerializeBold.js +3 -3
- package/bold/jsx-serializer/index.cjs.js +3 -5
- package/components/Icon/index.d.ts +1 -1
- package/components/Icon/index.js +15 -15
- package/components/Portal/index.d.ts +1 -0
- package/components/Portal/index.js +3 -3
- package/components/Progress/index.js +10 -10
- package/components/Tooltip/calculatePosition.js +66 -66
- package/components/Tooltip/index.d.ts +2 -2
- package/components/Tooltip/index.js +109 -109
- package/components/Tooltip/typings.d.ts +4 -4
- package/components/index.cjs.js +203 -211
- package/configs/ConfigsProvider.d.ts +2 -2
- package/configs/ConfigsProvider.js +7 -7
- package/configs/index.cjs.js +38 -44
- package/configs/locale.js +3 -3
- package/configs/theme.js +28 -28
- package/core/components/DefaultElement.d.ts +2 -2
- package/core/components/DefaultLeaf.d.ts +2 -2
- package/core/components/Editable.d.ts +3 -3
- package/core/components/Editable.js +41 -42
- package/core/components/Quadrats.d.ts +3 -3
- package/core/components/Quadrats.js +7 -7
- package/core/composeHandlers.js +30 -30
- package/core/composeRenderElements.d.ts +1 -1
- package/core/composeRenderElements.js +5 -5
- package/core/composeRenderLeafs.js +5 -5
- package/core/createReactEditor.js +2 -2
- package/core/createRenderElement.d.ts +1 -1
- package/core/createRenderElement.js +2 -2
- package/core/createRenderElements.d.ts +1 -1
- package/core/createRenderElements.js +2 -2
- package/core/createRenderMark.js +2 -2
- package/core/index.d.ts +6 -4
- package/core/index.js +11 -0
- package/core/typings/descendant.d.ts +1 -1
- package/core/typings/handler.d.ts +7 -7
- package/core/typings/renderer.d.ts +5 -5
- package/core/typings/with.d.ts +2 -2
- package/divider/createReactDivider.d.ts +1 -1
- package/divider/createReactDivider.js +4 -4
- package/divider/defaultRenderDividerElement.d.ts +2 -2
- package/divider/defaultRenderDividerElement.js +2 -2
- package/divider/index.cjs.js +6 -12
- package/divider/jsx-serializer/createJsxSerializeDivider.d.ts +2 -2
- package/divider/jsx-serializer/createJsxSerializeDivider.js +3 -3
- package/divider/jsx-serializer/defaultRenderDividerElement.d.ts +2 -2
- package/divider/jsx-serializer/index.cjs.js +4 -10
- package/divider/jsx-serializer/typings.d.ts +1 -1
- package/divider/toolbar/DividerToolbarIcon.d.ts +2 -2
- package/divider/toolbar/DividerToolbarIcon.js +4 -4
- package/divider/toolbar/index.cjs.js +9 -15
- package/divider/toolbar/useDividerTool.js +5 -5
- package/divider/typings.d.ts +1 -1
- package/embed/components/VideoIframe.d.ts +2 -2
- package/embed/components/VideoIframe.js +8 -8
- package/embed/createReactEmbed.d.ts +1 -1
- package/embed/createReactEmbed.js +7 -7
- package/embed/createRenderEmbedElementBase.js +9 -9
- package/embed/hooks/useVideoIframeSize.js +19 -19
- package/embed/index.cjs.js +43 -49
- package/embed/jsx-serializer/createJsxSerializeEmbed.d.ts +1 -1
- package/embed/jsx-serializer/createJsxSerializeEmbed.js +6 -6
- package/embed/jsx-serializer/facebook/index.cjs.js +2 -4
- package/embed/jsx-serializer/index.cjs.js +6 -8
- package/embed/jsx-serializer/instagram/index.cjs.js +2 -4
- package/embed/jsx-serializer/twitter/index.cjs.js +2 -4
- package/embed/jsx-serializer/vimeo/index.cjs.js +2 -4
- package/embed/jsx-serializer/youtube/index.cjs.js +2 -4
- package/embed/renderers/facebook/components/Facebook.d.ts +2 -2
- package/embed/renderers/facebook/components/Facebook.js +11 -11
- package/embed/renderers/facebook/defaultRenderFacebookEmbedElement.d.ts +2 -2
- package/embed/renderers/facebook/index.cjs.js +12 -18
- package/embed/renderers/instagram/components/Instagram.d.ts +2 -2
- package/embed/renderers/instagram/components/Instagram.js +18 -18
- package/embed/renderers/instagram/defaultRenderInstagramEmbedElement.d.ts +2 -2
- package/embed/renderers/instagram/hooks/useLoadInstagramEmbedApi.js +22 -22
- package/embed/renderers/instagram/index.cjs.js +41 -47
- package/embed/renderers/podcast-apple/components/PodcastApple.d.ts +2 -2
- package/embed/renderers/podcast-apple/components/PodcastApple.js +6 -6
- package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.d.ts +2 -2
- package/embed/renderers/podcast-apple/index.cjs.js +7 -13
- package/embed/renderers/spotify/components/Spotify.d.ts +2 -2
- package/embed/renderers/spotify/components/Spotify.js +10 -10
- package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.d.ts +2 -2
- package/embed/renderers/spotify/index.cjs.js +11 -17
- package/embed/renderers/twitter/components/Twitter.d.ts +2 -2
- package/embed/renderers/twitter/components/Twitter.js +5 -5
- package/embed/renderers/twitter/defaultRenderTwitterEmbedElement.d.ts +2 -2
- package/embed/renderers/twitter/hooks/useLoadTwitterEmbedApi.js +28 -28
- package/embed/renderers/twitter/index.cjs.js +34 -40
- package/embed/renderers/vimeo/defaultRenderVimeoEmbedElement.d.ts +2 -2
- package/embed/renderers/vimeo/index.cjs.js +1 -7
- package/embed/renderers/youtube/defaultRenderYoutubeEmbedElement.d.ts +2 -2
- package/embed/renderers/youtube/index.cjs.js +1 -7
- package/embed/toolbar/EmbedToolbarIcon.d.ts +2 -2
- package/embed/toolbar/EmbedToolbarIcon.js +4 -4
- package/embed/toolbar/index.cjs.js +16 -22
- package/embed/toolbar/useEmbedTool.js +12 -12
- package/embed/typings.d.ts +1 -1
- package/file-uploader/components/FileUploader.d.ts +2 -2
- package/file-uploader/components/FileUploader.js +7 -7
- package/file-uploader/createReactFileUploader.js +7 -7
- package/file-uploader/hooks/useFileUploader.js +7 -7
- package/file-uploader/index.cjs.js +22 -28
- package/file-uploader/toolbar/FileUploaderToolbarIcon.d.ts +2 -2
- package/file-uploader/toolbar/FileUploaderToolbarIcon.js +4 -4
- package/file-uploader/toolbar/index.cjs.js +9 -15
- package/file-uploader/toolbar/useFileUploaderTool.js +5 -5
- package/file-uploader/typings.d.ts +3 -3
- package/footnote/createReactFootnote.d.ts +1 -1
- package/footnote/createReactFootnote.js +6 -6
- package/footnote/defaultRenderFootnoteElement.d.ts +2 -2
- package/footnote/defaultRenderFootnoteElement.js +9 -9
- package/footnote/index.cjs.js +51 -57
- package/footnote/jsx-serializer/createJsxSerializeFootnote.d.ts +2 -2
- package/footnote/jsx-serializer/createJsxSerializeFootnote.js +4 -4
- package/footnote/jsx-serializer/defaultRenderFootnoteElement.d.ts +2 -2
- package/footnote/jsx-serializer/defaultRenderFootnoteElement.js +5 -5
- package/footnote/jsx-serializer/index.cjs.js +9 -15
- package/footnote/jsx-serializer/typings.d.ts +1 -1
- package/footnote/toolbar/FootnoteToolbarIcon.d.ts +2 -2
- package/footnote/toolbar/FootnoteToolbarIcon.js +4 -4
- package/footnote/toolbar/index.cjs.js +17 -23
- package/footnote/toolbar/useFootnoteTool.d.ts +1 -1
- package/footnote/toolbar/useFootnoteTool.js +13 -13
- package/footnote/typings.d.ts +1 -1
- package/footnote/useFootnotes.js +15 -15
- package/footnote/useFootnotesFromNodes.js +21 -21
- package/heading/constants.js +8 -8
- package/heading/createReactHeading.d.ts +1 -1
- package/heading/createReactHeading.js +37 -37
- package/heading/defaultRenderHeadingElement.d.ts +2 -2
- package/heading/defaultRenderHeadingElement.js +14 -14
- package/heading/index.cjs.js +59 -66
- package/heading/jsx-serializer/createJsxSerializeHeading.d.ts +2 -2
- package/heading/jsx-serializer/createJsxSerializeHeading.js +3 -3
- package/heading/jsx-serializer/index.cjs.js +3 -5
- package/heading/jsx-serializer/typings.d.ts +1 -1
- package/heading/toolbar/HeadingToolbarIcon.d.ts +2 -2
- package/heading/toolbar/HeadingToolbarIcon.js +4 -4
- package/heading/toolbar/index.cjs.js +10 -16
- package/heading/toolbar/useToggleHeadingTool.js +6 -6
- package/heading/typings.d.ts +1 -1
- package/highlight/constants.js +5 -5
- package/highlight/createReactHighlight.d.ts +1 -1
- package/highlight/createReactHighlight.js +3 -3
- package/highlight/defaultRenderHighlight.d.ts +2 -2
- package/highlight/defaultRenderHighlight.js +1 -1
- package/highlight/index.cjs.js +9 -15
- package/highlight/jsx-serializer/createJsxSerializeHighlight.js +3 -3
- package/highlight/jsx-serializer/index.cjs.js +3 -5
- package/image/components/Image.d.ts +2 -2
- package/image/components/Image.js +11 -11
- package/image/components/ImageCaption.d.ts +2 -2
- package/image/components/ImageCaption.js +13 -13
- package/image/components/ImageFigure.d.ts +2 -2
- package/image/components/ImageFigure.js +8 -8
- package/image/createReactImage.d.ts +1 -1
- package/image/createReactImage.js +94 -94
- package/image/defaultRenderImageElements.js +4 -4
- package/image/hooks/useImageResizer.js +89 -89
- package/image/image.css +1 -1
- package/image/index.cjs.js +219 -227
- package/image/jsx-serializer/createJsxSerializeImage.d.ts +2 -3
- package/image/jsx-serializer/createJsxSerializeImage.js +34 -34
- package/image/jsx-serializer/defaultRenderImageElements.js +4 -4
- package/image/jsx-serializer/index.cjs.js +38 -44
- package/image/jsx-serializer/typings.d.ts +1 -1
- package/image/typings.d.ts +3 -3
- package/index.cjs.js +103 -109
- package/index.js +3 -2
- package/input-block/components/InputBlock.d.ts +2 -2
- package/input-block/components/InputBlock.js +19 -19
- package/input-block/createReactInputBlock.d.ts +1 -1
- package/input-block/createReactInputBlock.js +10 -10
- package/input-block/hooks/useInputBlock.js +43 -43
- package/input-block/index.cjs.js +73 -79
- package/input-block/typings.d.ts +2 -2
- package/italic/constants.js +5 -5
- package/italic/createReactItalic.d.ts +1 -1
- package/italic/createReactItalic.js +3 -3
- package/italic/defaultRenderItalic.d.ts +2 -2
- package/italic/defaultRenderItalic.js +1 -1
- package/italic/index.cjs.js +9 -15
- package/italic/jsx-serializer/createJsxSerializeItalic.js +3 -3
- package/italic/jsx-serializer/index.cjs.js +3 -5
- package/jsx-serializer/createJsxSerializeElement.d.ts +1 -1
- package/jsx-serializer/createJsxSerializeElement.js +2 -2
- package/jsx-serializer/createJsxSerializeElements.d.ts +1 -1
- package/jsx-serializer/createJsxSerializeElements.js +2 -2
- package/jsx-serializer/createJsxSerializeMark.js +2 -2
- package/jsx-serializer/createJsxSerializer.js +42 -42
- package/jsx-serializer/index.cjs.js +48 -54
- package/jsx-serializer/typings.d.ts +5 -5
- package/line-break/commonBreak.js +26 -26
- package/line-break/createOnKeyDownBreak.js +41 -41
- package/line-break/createReactLineBreak.d.ts +1 -1
- package/line-break/createReactLineBreak.js +6 -6
- package/line-break/defaultRenderLineBreakElement.d.ts +2 -2
- package/line-break/index.cjs.js +75 -82
- package/line-break/jsx-serializer/createJsxSerializeLineBreak.d.ts +2 -2
- package/line-break/jsx-serializer/createJsxSerializeLineBreak.js +4 -4
- package/line-break/jsx-serializer/defaultRenderLineBreakElement.d.ts +2 -2
- package/line-break/jsx-serializer/defaultRenderLineBreakElement.js +1 -1
- package/line-break/jsx-serializer/index.cjs.js +6 -12
- package/line-break/jsx-serializer/typings.d.ts +1 -1
- package/line-break/renderLineBreakElementWithSymbol.d.ts +2 -2
- package/line-break/typings.d.ts +1 -1
- package/link/createReactLink.js +22 -22
- package/link/defaultRenderLinkElement.d.ts +2 -2
- package/link/defaultRenderLinkElement.js +7 -7
- package/link/index.cjs.js +29 -35
- package/link/jsx-serializer/createJsxSerializeLink.d.ts +2 -2
- package/link/jsx-serializer/createJsxSerializeLink.js +3 -3
- package/link/jsx-serializer/defaultRenderLinkElement.d.ts +2 -2
- package/link/jsx-serializer/index.cjs.js +4 -10
- package/link/jsx-serializer/typings.d.ts +1 -1
- package/link/toolbar/LinkToolbarIcon.d.ts +2 -2
- package/link/toolbar/LinkToolbarIcon.js +4 -4
- package/link/toolbar/UnlinkToolbarIcon.d.ts +2 -2
- package/link/toolbar/UnlinkToolbarIcon.js +4 -4
- package/link/toolbar/index.cjs.js +27 -33
- package/link/toolbar/useLinkTool.d.ts +1 -1
- package/link/toolbar/useLinkTool.js +14 -14
- package/link/toolbar/useUnlinkTool.js +5 -5
- package/link/typings.d.ts +1 -1
- package/list/createReactList.d.ts +1 -1
- package/list/createReactList.js +18 -18
- package/list/defaultRenderListElements.js +4 -4
- package/list/index.cjs.js +22 -28
- package/list/jsx-serializer/createJsxSerializeList.d.ts +2 -2
- package/list/jsx-serializer/createJsxSerializeList.js +8 -8
- package/list/jsx-serializer/index.cjs.js +8 -10
- package/list/jsx-serializer/typings.d.ts +1 -1
- package/list/toolbar/ListToolbarIcon.d.ts +2 -2
- package/list/toolbar/ListToolbarIcon.js +4 -4
- package/list/toolbar/index.cjs.js +10 -16
- package/list/toolbar/useListTool.js +6 -6
- package/list/typings.d.ts +2 -2
- package/package.json +10 -10
- package/paragraph/createRenderParagraphElement.d.ts +2 -2
- package/paragraph/createRenderParagraphElement.js +3 -3
- package/paragraph/defaultRenderParagraphElement.d.ts +2 -2
- package/paragraph/index.cjs.js +5 -11
- package/paragraph/jsx-serializer/createJsxSerializeParagraph.d.ts +2 -2
- package/paragraph/jsx-serializer/createJsxSerializeParagraph.js +3 -3
- package/paragraph/jsx-serializer/index.cjs.js +3 -5
- package/paragraph/jsx-serializer/typings.d.ts +1 -1
- package/paragraph/renderParagraphElementWithSymbol.d.ts +2 -2
- package/read-more/components/ReadMore.d.ts +2 -2
- package/read-more/components/ReadMore.js +6 -6
- package/read-more/createReactReadMore.d.ts +1 -1
- package/read-more/createReactReadMore.js +4 -4
- package/read-more/defaultRenderReadMoreElement.d.ts +2 -2
- package/read-more/index.cjs.js +11 -17
- package/read-more/jsx-serializer/createJsxSerializeReadMore.d.ts +2 -2
- package/read-more/jsx-serializer/createJsxSerializeReadMore.js +3 -3
- package/read-more/jsx-serializer/index.cjs.js +3 -5
- package/read-more/jsx-serializer/typings.d.ts +1 -1
- package/read-more/toolbar/ReadMoreToolbarIcon.d.ts +2 -2
- package/read-more/toolbar/ReadMoreToolbarIcon.js +4 -4
- package/read-more/toolbar/index.cjs.js +9 -15
- package/read-more/toolbar/useReadMoreTool.js +5 -5
- package/read-more/typings.d.ts +1 -1
- package/strikethrough/constants.js +5 -5
- package/strikethrough/createReactStrikethrough.d.ts +1 -1
- package/strikethrough/createReactStrikethrough.js +3 -3
- package/strikethrough/defaultRenderStrikethrough.d.ts +2 -2
- package/strikethrough/defaultRenderStrikethrough.js +1 -1
- package/strikethrough/index.cjs.js +9 -15
- package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.js +3 -3
- package/strikethrough/jsx-serializer/index.cjs.js +3 -5
- package/toggle-mark/createReactToggleMarkCreator.d.ts +2 -2
- package/toggle-mark/createReactToggleMarkCreator.js +14 -14
- package/toggle-mark/index.cjs.js +14 -20
- package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.d.ts +3 -3
- package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.js +2 -2
- package/toggle-mark/jsx-serializer/index.cjs.js +2 -4
- package/toggle-mark/jsx-serializer/typings.d.ts +1 -1
- package/toggle-mark/toolbar/ToggleMarkToolbarIcon.d.ts +2 -2
- package/toggle-mark/toolbar/ToggleMarkToolbarIcon.js +4 -4
- package/toggle-mark/toolbar/index.cjs.js +10 -16
- package/toggle-mark/toolbar/useToggleMarkTool.js +6 -6
- package/toggle-mark/typings.d.ts +2 -2
- package/toolbar/components/Toolbar.d.ts +1 -1
- package/toolbar/components/Toolbar.js +102 -102
- package/toolbar/components/ToolbarIcon.d.ts +2 -2
- package/toolbar/components/ToolbarIcon.js +6 -6
- package/toolbar/components/ToolbarInput.d.ts +2 -2
- package/toolbar/components/ToolbarInput.js +23 -23
- package/toolbar/constants.d.ts +2 -2
- package/toolbar/constants.js +3 -3
- package/toolbar/hooks/useStartToolInput.js +2 -2
- package/toolbar/index.cjs.js +137 -144
- package/toolbar/toolbar.css +1 -1
- package/toolbar/typings.d.ts +1 -1
- package/underline/constants.js +5 -5
- package/underline/createReactUnderline.d.ts +1 -1
- package/underline/createReactUnderline.js +3 -3
- package/underline/defaultRenderUnderline.d.ts +2 -2
- package/underline/defaultRenderUnderline.js +1 -1
- package/underline/index.cjs.js +9 -15
- package/underline/jsx-serializer/createJsxSerializeUnderline.js +3 -3
- package/underline/jsx-serializer/index.cjs.js +3 -5
- package/utils/composeRefs.js +29 -29
- package/utils/index.cjs.js +29 -31
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ImageCaptionTypeKey, ImageFigureTypeKey, ImageHostingResolvers, ImageTypeKey } from '@quadrats/common/image';
|
|
3
|
-
import { QuadratsElement } from '@quadrats/core';
|
|
4
3
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
5
4
|
import { JsxSerializeImageCaptionElementProps, JsxSerializeImageElementProps, JsxSerializeImageFigureElementProps } from './typings';
|
|
6
|
-
export
|
|
5
|
+
export type CreateJsxSerializeImageOptions<H extends string> = Partial<Record<ImageFigureTypeKey, Partial<CreateJsxSerializeElementOptions<JsxSerializeImageFigureElementProps>>> & Record<ImageTypeKey, Partial<CreateJsxSerializeElementOptions<JsxSerializeImageElementProps>>> & Record<ImageCaptionTypeKey, Partial<CreateJsxSerializeElementOptions<JsxSerializeImageCaptionElementProps>>> & {
|
|
7
6
|
hostingResolvers?: ImageHostingResolvers<H>;
|
|
8
7
|
}>;
|
|
9
|
-
export declare function createJsxSerializeImage<H extends string>(options?: CreateJsxSerializeImageOptions<H>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps
|
|
8
|
+
export declare function createJsxSerializeImage<H extends string>(options?: CreateJsxSerializeImageOptions<H>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => JSX.Element | null | undefined;
|
|
@@ -3,40 +3,40 @@ import { IMAGE_TYPES, getImageFigureElementCommonProps, getImageElementCommonPro
|
|
|
3
3
|
import { createJsxSerializeElements } from '@quadrats/react/jsx-serializer';
|
|
4
4
|
import { defaultRenderImageElements } from './defaultRenderImageElements.js';
|
|
5
5
|
|
|
6
|
-
function createJsxSerializeImage(options = {}) {
|
|
7
|
-
const { figure = {}, image = {}, caption = {}, hostingResolvers, } = options;
|
|
8
|
-
const figureType = figure.type || IMAGE_TYPES.figure;
|
|
9
|
-
const captionType = caption.type || IMAGE_TYPES.caption;
|
|
10
|
-
const renderFigure = figure.render || defaultRenderImageElements.figure;
|
|
11
|
-
const renderImage = image.render || defaultRenderImageElements.image;
|
|
12
|
-
const renderCaption = caption.render || defaultRenderImageElements.caption;
|
|
13
|
-
return createJsxSerializeElements([
|
|
14
|
-
{
|
|
15
|
-
type: figureType,
|
|
16
|
-
render: (props) => {
|
|
17
|
-
const { children } = props;
|
|
18
|
-
const element = props.element;
|
|
19
|
-
return renderFigure(Object.assign(Object.assign({}, getImageFigureElementCommonProps(element)), { children,
|
|
20
|
-
element }));
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
type: image.type || IMAGE_TYPES.image,
|
|
25
|
-
render: (props) => {
|
|
26
|
-
var _a;
|
|
27
|
-
const { children } = props;
|
|
28
|
-
const element = props.element;
|
|
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: (caption === null || caption === void 0 ? void 0 : caption.type) === captionType ? getMergedNodeTexts(caption) : '', children,
|
|
32
|
-
element }));
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
type: captionType,
|
|
37
|
-
render: props => renderCaption(Object.assign(Object.assign({}, props), { isEmpty: !getMergedNodeTexts(props.element) })),
|
|
38
|
-
},
|
|
39
|
-
]);
|
|
6
|
+
function createJsxSerializeImage(options = {}) {
|
|
7
|
+
const { figure = {}, image = {}, caption = {}, hostingResolvers, } = options;
|
|
8
|
+
const figureType = figure.type || IMAGE_TYPES.figure;
|
|
9
|
+
const captionType = caption.type || IMAGE_TYPES.caption;
|
|
10
|
+
const renderFigure = figure.render || defaultRenderImageElements.figure;
|
|
11
|
+
const renderImage = image.render || defaultRenderImageElements.image;
|
|
12
|
+
const renderCaption = caption.render || defaultRenderImageElements.caption;
|
|
13
|
+
return createJsxSerializeElements([
|
|
14
|
+
{
|
|
15
|
+
type: figureType,
|
|
16
|
+
render: (props) => {
|
|
17
|
+
const { children } = props;
|
|
18
|
+
const element = props.element;
|
|
19
|
+
return renderFigure(Object.assign(Object.assign({}, getImageFigureElementCommonProps(element)), { children,
|
|
20
|
+
element }));
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
type: image.type || IMAGE_TYPES.image,
|
|
25
|
+
render: (props) => {
|
|
26
|
+
var _a;
|
|
27
|
+
const { children } = props;
|
|
28
|
+
const element = props.element;
|
|
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: (caption === null || caption === void 0 ? void 0 : caption.type) === captionType ? getMergedNodeTexts(caption) : '', children,
|
|
32
|
+
element }));
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: captionType,
|
|
37
|
+
render: props => renderCaption(Object.assign(Object.assign({}, props), { isEmpty: !getMergedNodeTexts(props.element) })),
|
|
38
|
+
},
|
|
39
|
+
]);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
export { createJsxSerializeImage };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
const defaultRenderImageElements = {
|
|
4
|
-
figure: ({ children, style }) => React.createElement("figure", { style: style }, children),
|
|
5
|
-
image: ({ caption, src }) => React.createElement("img", { src: src, alt: caption, style: { width: '100%' } }),
|
|
6
|
-
caption: ({ children, isEmpty }) => (isEmpty ? React.createElement("span", null) : React.createElement("figcaption", null, children)),
|
|
3
|
+
const defaultRenderImageElements = {
|
|
4
|
+
figure: ({ children, style }) => React.createElement("figure", { style: style }, children),
|
|
5
|
+
image: ({ caption, src }) => React.createElement("img", { src: src, alt: caption, style: { width: '100%' } }),
|
|
6
|
+
caption: ({ children, isEmpty }) => (isEmpty ? React.createElement("span", null) : React.createElement("figcaption", null, children)),
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export { defaultRenderImageElements };
|
|
@@ -1,56 +1,50 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var React = require('react');
|
|
6
4
|
var serializers = require('@quadrats/core/serializers');
|
|
7
5
|
var image = require('@quadrats/common/image');
|
|
8
6
|
var jsxSerializer = require('@quadrats/react/jsx-serializer');
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const defaultRenderImageElements = {
|
|
15
|
-
figure: ({ children, style }) => React__default.createElement("figure", { style: style }, children),
|
|
16
|
-
image: ({ caption, src }) => React__default.createElement("img", { src: src, alt: caption, style: { width: '100%' } }),
|
|
17
|
-
caption: ({ children, isEmpty }) => (isEmpty ? React__default.createElement("span", null) : React__default.createElement("figcaption", null, children)),
|
|
8
|
+
const defaultRenderImageElements = {
|
|
9
|
+
figure: ({ children, style }) => React.createElement("figure", { style: style }, children),
|
|
10
|
+
image: ({ caption, src }) => React.createElement("img", { src: src, alt: caption, style: { width: '100%' } }),
|
|
11
|
+
caption: ({ children, isEmpty }) => (isEmpty ? React.createElement("span", null) : React.createElement("figcaption", null, children)),
|
|
18
12
|
};
|
|
19
13
|
|
|
20
|
-
function createJsxSerializeImage(options = {}) {
|
|
21
|
-
const { figure = {}, image: image$1 = {}, caption = {}, hostingResolvers, } = options;
|
|
22
|
-
const figureType = figure.type || image.IMAGE_TYPES.figure;
|
|
23
|
-
const captionType = caption.type || image.IMAGE_TYPES.caption;
|
|
24
|
-
const renderFigure = figure.render || defaultRenderImageElements.figure;
|
|
25
|
-
const renderImage = image$1.render || defaultRenderImageElements.image;
|
|
26
|
-
const renderCaption = caption.render || defaultRenderImageElements.caption;
|
|
27
|
-
return jsxSerializer.createJsxSerializeElements([
|
|
28
|
-
{
|
|
29
|
-
type: figureType,
|
|
30
|
-
render: (props) => {
|
|
31
|
-
const { children } = props;
|
|
32
|
-
const element = props.element;
|
|
33
|
-
return renderFigure(Object.assign(Object.assign({}, image.getImageFigureElementCommonProps(element)), { children,
|
|
34
|
-
element }));
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
type: image$1.type || image.IMAGE_TYPES.image,
|
|
39
|
-
render: (props) => {
|
|
40
|
-
var _a;
|
|
41
|
-
const { children } = props;
|
|
42
|
-
const element = props.element;
|
|
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: (caption === null || caption === void 0 ? void 0 : caption.type) === captionType ? serializers.getMergedNodeTexts(caption) : '', children,
|
|
46
|
-
element }));
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
type: captionType,
|
|
51
|
-
render: props => renderCaption(Object.assign(Object.assign({}, props), { isEmpty: !serializers.getMergedNodeTexts(props.element) })),
|
|
52
|
-
},
|
|
53
|
-
]);
|
|
14
|
+
function createJsxSerializeImage(options = {}) {
|
|
15
|
+
const { figure = {}, image: image$1 = {}, caption = {}, hostingResolvers, } = options;
|
|
16
|
+
const figureType = figure.type || image.IMAGE_TYPES.figure;
|
|
17
|
+
const captionType = caption.type || image.IMAGE_TYPES.caption;
|
|
18
|
+
const renderFigure = figure.render || defaultRenderImageElements.figure;
|
|
19
|
+
const renderImage = image$1.render || defaultRenderImageElements.image;
|
|
20
|
+
const renderCaption = caption.render || defaultRenderImageElements.caption;
|
|
21
|
+
return jsxSerializer.createJsxSerializeElements([
|
|
22
|
+
{
|
|
23
|
+
type: figureType,
|
|
24
|
+
render: (props) => {
|
|
25
|
+
const { children } = props;
|
|
26
|
+
const element = props.element;
|
|
27
|
+
return renderFigure(Object.assign(Object.assign({}, image.getImageFigureElementCommonProps(element)), { children,
|
|
28
|
+
element }));
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: image$1.type || image.IMAGE_TYPES.image,
|
|
33
|
+
render: (props) => {
|
|
34
|
+
var _a;
|
|
35
|
+
const { children } = props;
|
|
36
|
+
const element = props.element;
|
|
37
|
+
const figure = serializers.getFirstAncestor(element, node => node.type === figureType);
|
|
38
|
+
const caption = (_a = figure === null || figure === void 0 ? void 0 : figure.children) === null || _a === void 0 ? void 0 : _a[1];
|
|
39
|
+
return renderImage(Object.assign(Object.assign({}, image.getImageElementCommonProps(element, hostingResolvers)), { caption: (caption === null || caption === void 0 ? void 0 : caption.type) === captionType ? serializers.getMergedNodeTexts(caption) : '', children,
|
|
40
|
+
element }));
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
type: captionType,
|
|
45
|
+
render: props => renderCaption(Object.assign(Object.assign({}, props), { isEmpty: !serializers.getMergedNodeTexts(props.element) })),
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
54
48
|
}
|
|
55
49
|
|
|
56
50
|
exports.createJsxSerializeImage = createJsxSerializeImage;
|
|
@@ -13,4 +13,4 @@ export interface JsxSerializeImageElementProps extends JsxSerializeElementProps<
|
|
|
13
13
|
export interface JsxSerializeImageCaptionElementProps extends JsxSerializeElementProps<ImageCaptionElement> {
|
|
14
14
|
isEmpty: boolean;
|
|
15
15
|
}
|
|
16
|
-
export
|
|
16
|
+
export type ImageJsxSerializeElements = Record<ImageFigureTypeKey, (props: JsxSerializeImageFigureElementProps) => JSX.Element | null | undefined> & Record<ImageTypeKey, (props: JsxSerializeImageElementProps) => JSX.Element | null | undefined> & Record<ImageCaptionTypeKey, (props: JsxSerializeImageCaptionElementProps) => JSX.Element | null | undefined>;
|
package/image/typings.d.ts
CHANGED
|
@@ -10,9 +10,9 @@ export interface RenderImageElementProps extends RenderElementProps<ImageElement
|
|
|
10
10
|
resizeImage: ReactImage<any>['resizeImage'];
|
|
11
11
|
src: string;
|
|
12
12
|
}
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
13
|
+
export type RenderImageCaptionElementProps = RenderElementProps<ImageCaptionElement>;
|
|
14
|
+
export type ImageRenderElements = Record<ImageFigureTypeKey, (props: RenderImageFigureElementProps) => JSX.Element | null | undefined> & Record<ImageTypeKey, (props: RenderImageElementProps) => JSX.Element | null | undefined> & Record<ImageCaptionTypeKey, (props: RenderImageCaptionElementProps) => JSX.Element | null | undefined>;
|
|
15
|
+
export type ReactImageCreateRenderElementOptions = {
|
|
16
16
|
[K in ImageFigureTypeKey | ImageTypeKey | ImageCaptionTypeKey]?: ImageRenderElements[K];
|
|
17
17
|
};
|
|
18
18
|
export interface ReactImage<Hosting extends string> extends Omit<Image<Hosting, Editor>, 'with'>, WithCreateHandlers, WithCreateRenderElement<[ReactImageCreateRenderElementOptions?]>, ReactWithable {
|
package/index.cjs.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var configs = require('@quadrats/react/configs');
|
|
6
4
|
var slateReact = require('slate-react');
|
|
7
5
|
var core = require('@quadrats/core');
|
|
@@ -10,130 +8,125 @@ var React = require('react');
|
|
|
10
8
|
var clsx = require('clsx');
|
|
11
9
|
var _internal = require('@quadrats/react/_internal');
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}, [
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
56
|
-
React__default.createElement("span", { className: "qdr-editable__placeholder", contentEditable: false }, placeholder),
|
|
57
|
-
children));
|
|
58
|
-
}
|
|
59
|
-
return children;
|
|
60
|
-
}, [renderLeafProp, placeholder, placeholderShowable]);
|
|
61
|
-
return (React__default.createElement(slateReact.Editable, Object.assign({}, slateEditableProps, { className: clsx__default('qdr-editable', themeProps.className, className), decorate: decorate, onCompositionStart: onCompositionStart, onCompositionEnd: onCompositionEnd, renderLeaf: renderLeaf, style: Object.assign(Object.assign({}, themeProps.style), style) })));
|
|
11
|
+
const DefaultLeaf = ({ attributes, children }) => React.createElement("span", Object.assign({}, attributes), children);
|
|
12
|
+
|
|
13
|
+
function Editable(props) {
|
|
14
|
+
const locale = configs.useLocale();
|
|
15
|
+
const { className, decorate: decorateProp, onCompositionEnd: onCompositionEndProp, onCompositionStart: onCompositionStartProp, placeholder = locale.editor.placeholder, renderLeaf: renderLeafProp, style } = props, slateEditableProps = tslib.__rest(props, ["className", "decorate", "onCompositionEnd", "onCompositionStart", "placeholder", "renderLeaf", "style"]);
|
|
16
|
+
const { props: themeProps } = configs.useTheme();
|
|
17
|
+
const editor = slateReact.useSlate();
|
|
18
|
+
const isEditorEmpty = core.isAncestorEmpty(editor);
|
|
19
|
+
const [placeholderShowable, setPlaceholderShowable] = React.useState(isEditorEmpty);
|
|
20
|
+
const decorate = React.useCallback((entry) => {
|
|
21
|
+
const result = decorateProp ? decorateProp(entry) : [];
|
|
22
|
+
const [node] = entry;
|
|
23
|
+
if (isEditorEmpty && core.Editor.isEditor(node)) {
|
|
24
|
+
const start = core.Editor.start(node, []);
|
|
25
|
+
result.push({
|
|
26
|
+
[PLACEHOLDER_KEY]: true,
|
|
27
|
+
anchor: start,
|
|
28
|
+
focus: start,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}, [decorateProp, isEditorEmpty]);
|
|
33
|
+
const onCompositionEnd = React.useCallback((event) => {
|
|
34
|
+
onCompositionEndProp === null || onCompositionEndProp === void 0 ? void 0 : onCompositionEndProp(event);
|
|
35
|
+
setPlaceholderShowable(true);
|
|
36
|
+
}, [onCompositionEndProp]);
|
|
37
|
+
const onCompositionStart = React.useCallback((event) => {
|
|
38
|
+
onCompositionStartProp === null || onCompositionStartProp === void 0 ? void 0 : onCompositionStartProp(event);
|
|
39
|
+
if (isEditorEmpty) {
|
|
40
|
+
setPlaceholderShowable(false);
|
|
41
|
+
}
|
|
42
|
+
}, [onCompositionStartProp, isEditorEmpty]);
|
|
43
|
+
const renderLeaf = React.useCallback((props) => {
|
|
44
|
+
const children = renderLeafProp ? renderLeafProp(props) : React.createElement(DefaultLeaf, Object.assign({}, props));
|
|
45
|
+
if (placeholderShowable && props.leaf[PLACEHOLDER_KEY]) {
|
|
46
|
+
return (React.createElement(React.Fragment, null,
|
|
47
|
+
React.createElement("span", { className: "qdr-editable__placeholder", contentEditable: false }, placeholder),
|
|
48
|
+
children));
|
|
49
|
+
}
|
|
50
|
+
return children;
|
|
51
|
+
}, [renderLeafProp, placeholder, placeholderShowable]);
|
|
52
|
+
return (React.createElement(slateReact.Editable, Object.assign({}, slateEditableProps, { className: clsx('qdr-editable', themeProps.className, className), decorate: decorate, onCompositionStart: onCompositionStart, onCompositionEnd: onCompositionEnd, renderLeaf: renderLeaf, style: Object.assign(Object.assign({}, themeProps.style), style) })));
|
|
62
53
|
}
|
|
63
54
|
|
|
64
|
-
const DefaultElement = ({ attributes, children }) =>
|
|
55
|
+
const DefaultElement = ({ attributes, children }) => React.createElement("div", Object.assign({}, attributes), children);
|
|
65
56
|
|
|
66
|
-
/**
|
|
67
|
-
* Provide configs of quadrats and control the value.
|
|
68
|
-
*/
|
|
69
|
-
function Quadrats(props) {
|
|
70
|
-
const { children, editor, locale, onChange, theme, value, } = props;
|
|
71
|
-
return (
|
|
72
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Provide configs of quadrats and control the value.
|
|
59
|
+
*/
|
|
60
|
+
function Quadrats(props) {
|
|
61
|
+
const { children, editor, locale, onChange, theme, value, } = props;
|
|
62
|
+
return (React.createElement(configs.ConfigsProvider, { theme: theme, locale: locale },
|
|
63
|
+
React.createElement(slateReact.Slate, { editor: editor, onChange: onChange, value: value }, children)));
|
|
73
64
|
}
|
|
74
65
|
|
|
75
|
-
function createEventHandler(editor, handlers) {
|
|
76
|
-
const [handler, ...restHandlers] = handlers;
|
|
77
|
-
return event => handler(event, editor, () => {
|
|
78
|
-
const next = restHandlers.length > 0 ? createEventHandler(editor, restHandlers) : () => { };
|
|
79
|
-
next(event);
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* To compose sequential `event handlers` to single for each event types.
|
|
84
|
-
*/
|
|
85
|
-
function composeHandlers(handlersList) {
|
|
86
|
-
const handlersListRecord = handlersList.reduce((acc, handlers) => {
|
|
87
|
-
Object.entries(handlers).forEach(([key, value]) => {
|
|
88
|
-
const name = key;
|
|
89
|
-
const handler = value;
|
|
90
|
-
const origin = acc[name];
|
|
91
|
-
if (origin) {
|
|
92
|
-
origin.push(handler);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
acc[name] = [handler];
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
return acc;
|
|
99
|
-
}, {});
|
|
100
|
-
const handlersEntries = Object.entries(handlersListRecord);
|
|
101
|
-
return editor => handlersEntries.reduce((acc, [name, handlers]) => {
|
|
102
|
-
acc[name] = createEventHandler(editor, handlers);
|
|
103
|
-
return acc;
|
|
104
|
-
}, {});
|
|
66
|
+
function createEventHandler(editor, handlers) {
|
|
67
|
+
const [handler, ...restHandlers] = handlers;
|
|
68
|
+
return event => handler(event, editor, () => {
|
|
69
|
+
const next = restHandlers.length > 0 ? createEventHandler(editor, restHandlers) : () => { };
|
|
70
|
+
next(event);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* To compose sequential `event handlers` to single for each event types.
|
|
75
|
+
*/
|
|
76
|
+
function composeHandlers(handlersList) {
|
|
77
|
+
const handlersListRecord = handlersList.reduce((acc, handlers) => {
|
|
78
|
+
Object.entries(handlers).forEach(([key, value]) => {
|
|
79
|
+
const name = key;
|
|
80
|
+
const handler = value;
|
|
81
|
+
const origin = acc[name];
|
|
82
|
+
if (origin) {
|
|
83
|
+
origin.push(handler);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
acc[name] = [handler];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return acc;
|
|
90
|
+
}, {});
|
|
91
|
+
const handlersEntries = Object.entries(handlersListRecord);
|
|
92
|
+
return editor => handlersEntries.reduce((acc, [name, handlers]) => {
|
|
93
|
+
acc[name] = createEventHandler(editor, handlers);
|
|
94
|
+
return acc;
|
|
95
|
+
}, {});
|
|
105
96
|
}
|
|
106
97
|
|
|
107
|
-
/**
|
|
108
|
-
* To compose sequential `renderElement`s to single.
|
|
109
|
-
*/
|
|
110
|
-
function composeRenderElements(renderElements) {
|
|
111
|
-
return _internal.composeRenderElementsBase(props =>
|
|
98
|
+
/**
|
|
99
|
+
* To compose sequential `renderElement`s to single.
|
|
100
|
+
*/
|
|
101
|
+
function composeRenderElements(renderElements) {
|
|
102
|
+
return _internal.composeRenderElementsBase(props => React.createElement(DefaultElement, Object.assign({}, props)), renderElements);
|
|
112
103
|
}
|
|
113
104
|
|
|
114
|
-
/**
|
|
115
|
-
* To compose sequential `renderLeaf`s or `renderMark`s to single.
|
|
116
|
-
*/
|
|
117
|
-
function composeRenderLeafs(renderLeafs) {
|
|
118
|
-
return _internal.composeRenderLeafsBase(props =>
|
|
105
|
+
/**
|
|
106
|
+
* To compose sequential `renderLeaf`s or `renderMark`s to single.
|
|
107
|
+
*/
|
|
108
|
+
function composeRenderLeafs(renderLeafs) {
|
|
109
|
+
return _internal.composeRenderLeafsBase(props => React.createElement(DefaultLeaf, Object.assign({}, props)), renderLeafs);
|
|
119
110
|
}
|
|
120
111
|
|
|
121
|
-
function createReactEditor() {
|
|
122
|
-
return slateReact.withReact(core.createEditor());
|
|
112
|
+
function createReactEditor() {
|
|
113
|
+
return slateReact.withReact(core.createEditor());
|
|
123
114
|
}
|
|
124
115
|
|
|
125
|
-
function createRenderElement(options) {
|
|
126
|
-
return _internal.createRenderElementBase(options);
|
|
116
|
+
function createRenderElement(options) {
|
|
117
|
+
return _internal.createRenderElementBase(options);
|
|
127
118
|
}
|
|
128
119
|
|
|
129
|
-
function createRenderElements(options) {
|
|
130
|
-
return _internal.createRenderElementsBase(options);
|
|
120
|
+
function createRenderElements(options) {
|
|
121
|
+
return _internal.createRenderElementsBase(options);
|
|
131
122
|
}
|
|
132
123
|
|
|
133
|
-
function createRenderMark(options) {
|
|
134
|
-
return _internal.createRenderMarkBase(options);
|
|
124
|
+
function createRenderMark(options) {
|
|
125
|
+
return _internal.createRenderMarkBase(options);
|
|
135
126
|
}
|
|
136
127
|
|
|
128
|
+
const PLACEHOLDER_KEY = '__quadrats-placeholder__';
|
|
129
|
+
|
|
137
130
|
exports.ReactEditor = slateReact.ReactEditor;
|
|
138
131
|
exports.useFocused = slateReact.useFocused;
|
|
139
132
|
exports.useQuadrats = slateReact.useSlate;
|
|
@@ -144,6 +137,7 @@ exports.Editor = core.Editor;
|
|
|
144
137
|
exports.DefaultElement = DefaultElement;
|
|
145
138
|
exports.DefaultLeaf = DefaultLeaf;
|
|
146
139
|
exports.Editable = Editable;
|
|
140
|
+
exports.PLACEHOLDER_KEY = PLACEHOLDER_KEY;
|
|
147
141
|
exports.Quadrats = Quadrats;
|
|
148
142
|
exports.composeHandlers = composeHandlers;
|
|
149
143
|
exports.composeRenderElements = composeRenderElements;
|
|
@@ -152,6 +146,6 @@ exports.createReactEditor = createReactEditor;
|
|
|
152
146
|
exports.createRenderElement = createRenderElement;
|
|
153
147
|
exports.createRenderElements = createRenderElements;
|
|
154
148
|
exports.createRenderMark = createRenderMark;
|
|
155
|
-
|
|
149
|
+
Object.keys(configs).forEach(function (k) {
|
|
156
150
|
if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = configs[k];
|
|
157
|
-
}
|
|
151
|
+
});
|
package/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export * from '@quadrats/react/configs';
|
|
2
|
-
export {
|
|
3
|
-
export { Editor } from '@quadrats/core';
|
|
2
|
+
export { PLACEHOLDER_KEY } from './core/index.js';
|
|
4
3
|
export { default as Editable } from './core/components/Editable.js';
|
|
5
4
|
export { default as DefaultElement } from './core/components/DefaultElement.js';
|
|
6
5
|
export { default as DefaultLeaf } from './core/components/DefaultLeaf.js';
|
|
7
6
|
export { default as Quadrats } from './core/components/Quadrats.js';
|
|
7
|
+
export { ReactEditor, useFocused, useSlate as useQuadrats, useReadOnly, useSelected, useSlateStatic } from 'slate-react';
|
|
8
|
+
export { Editor } from '@quadrats/core';
|
|
8
9
|
export { composeHandlers } from './core/composeHandlers.js';
|
|
9
10
|
export { composeRenderElements } from './core/composeRenderElements.js';
|
|
10
11
|
export { composeRenderLeafs } from './core/composeRenderLeafs.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { RenderInputBlockElementProps } from '../typings';
|
|
3
|
-
declare function InputBlock(props: RenderInputBlockElementProps): JSX.Element;
|
|
3
|
+
declare function InputBlock(props: RenderInputBlockElementProps): React.JSX.Element;
|
|
4
4
|
export default InputBlock;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useInputBlock } from '../hooks/useInputBlock.js';
|
|
3
3
|
|
|
4
|
-
function InputBlock(props) {
|
|
5
|
-
const { attributes, children } = props;
|
|
6
|
-
const { inputRef, onBlur, onKeyDown, placeholder, } = useInputBlock(props);
|
|
7
|
-
return (React.createElement("div", Object.assign({}, attributes, { contentEditable: false, style: {
|
|
8
|
-
display: 'flex',
|
|
9
|
-
}, className: "qdr-input-block" }),
|
|
10
|
-
React.createElement("input", { ref: inputRef, onBlur: onBlur, onKeyDown: onKeyDown, placeholder: placeholder, style: {
|
|
11
|
-
display: 'block',
|
|
12
|
-
color: 'currentColor',
|
|
13
|
-
font: 'inherit',
|
|
14
|
-
width: '100%',
|
|
15
|
-
margin: 0,
|
|
16
|
-
border: 0,
|
|
17
|
-
padding: 0,
|
|
18
|
-
background: 'none',
|
|
19
|
-
outline: 0,
|
|
20
|
-
boxSizing: 'border-box',
|
|
21
|
-
} }),
|
|
22
|
-
children));
|
|
4
|
+
function InputBlock(props) {
|
|
5
|
+
const { attributes, children } = props;
|
|
6
|
+
const { inputRef, onBlur, onKeyDown, placeholder, } = useInputBlock(props);
|
|
7
|
+
return (React.createElement("div", Object.assign({}, attributes, { contentEditable: false, style: {
|
|
8
|
+
display: 'flex',
|
|
9
|
+
}, className: "qdr-input-block" }),
|
|
10
|
+
React.createElement("input", { ref: inputRef, onBlur: onBlur, onKeyDown: onKeyDown, placeholder: placeholder, style: {
|
|
11
|
+
display: 'block',
|
|
12
|
+
color: 'currentColor',
|
|
13
|
+
font: 'inherit',
|
|
14
|
+
width: '100%',
|
|
15
|
+
margin: 0,
|
|
16
|
+
border: 0,
|
|
17
|
+
padding: 0,
|
|
18
|
+
background: 'none',
|
|
19
|
+
outline: 0,
|
|
20
|
+
boxSizing: 'border-box',
|
|
21
|
+
} }),
|
|
22
|
+
children));
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export { InputBlock as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { CreateInputBlockOptions } from '@quadrats/common/input-block';
|
|
2
2
|
import { ReactInputBlock } from './typings';
|
|
3
|
-
export
|
|
3
|
+
export type CreateReactInputBlockOptions = CreateInputBlockOptions;
|
|
4
4
|
export declare function createReactInputBlock(options?: CreateInputBlockOptions): ReactInputBlock;
|
|
@@ -2,16 +2,16 @@ import { createInputBlock } from '@quadrats/common/input-block';
|
|
|
2
2
|
import { createRenderElement, ReactEditor } from '@quadrats/react';
|
|
3
3
|
import { defaultRenderInputBlockElement } from './defaultRenderInputBlockElement.js';
|
|
4
4
|
|
|
5
|
-
function createReactInputBlock(options = {}) {
|
|
6
|
-
const core = createInputBlock(options);
|
|
7
|
-
const { type } = core;
|
|
8
|
-
const remove = (editor, element) => core.remove(editor, [element, ReactEditor.findPath(editor, element)], () => ReactEditor.focus(editor));
|
|
9
|
-
const confirm = (editor, element, value) => core.confirm(element, value, () => remove(editor, element));
|
|
10
|
-
return Object.assign(Object.assign({}, core), { remove,
|
|
11
|
-
confirm, createRenderElement: ({ render = defaultRenderInputBlockElement, } = {}) => createRenderElement({
|
|
12
|
-
type,
|
|
13
|
-
render: (props) => render(Object.assign(Object.assign({}, props), { remove, confirm })),
|
|
14
|
-
}) });
|
|
5
|
+
function createReactInputBlock(options = {}) {
|
|
6
|
+
const core = createInputBlock(options);
|
|
7
|
+
const { type } = core;
|
|
8
|
+
const remove = (editor, element) => core.remove(editor, [element, ReactEditor.findPath(editor, element)], () => ReactEditor.focus(editor));
|
|
9
|
+
const confirm = (editor, element, value) => core.confirm(element, value, () => remove(editor, element));
|
|
10
|
+
return Object.assign(Object.assign({}, core), { remove,
|
|
11
|
+
confirm, createRenderElement: ({ render = defaultRenderInputBlockElement, } = {}) => createRenderElement({
|
|
12
|
+
type,
|
|
13
|
+
render: (props) => render(Object.assign(Object.assign({}, props), { remove, confirm })),
|
|
14
|
+
}) });
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export { createReactInputBlock };
|