@quadrats/react 0.6.7 → 0.7.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/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.d.ts +1 -1
- package/highlight/jsx-serializer/createJsxSerializeHighlight.js +4 -4
- package/highlight/jsx-serializer/index.cjs.js +4 -6
- 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,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ToolbarIconProps } from '@quadrats/react/toolbar';
|
|
3
3
|
import { ReactFootnote } from '@quadrats/react/footnote';
|
|
4
4
|
import { UseFootnoteToolOptions } from './useFootnoteTool';
|
|
@@ -6,5 +6,5 @@ export interface FootnoteToolbarIconProps extends Omit<ToolbarIconProps, 'active
|
|
|
6
6
|
controller: ReactFootnote;
|
|
7
7
|
options?: UseFootnoteToolOptions;
|
|
8
8
|
}
|
|
9
|
-
declare function FootnoteToolbarIcon(props: FootnoteToolbarIconProps): JSX.Element;
|
|
9
|
+
declare function FootnoteToolbarIcon(props: FootnoteToolbarIconProps): React.JSX.Element;
|
|
10
10
|
export default FootnoteToolbarIcon;
|
|
@@ -3,10 +3,10 @@ import React from 'react';
|
|
|
3
3
|
import { ToolbarIcon } from '@quadrats/react/toolbar';
|
|
4
4
|
import { useFootnoteTool } from './useFootnoteTool.js';
|
|
5
5
|
|
|
6
|
-
function FootnoteToolbarIcon(props) {
|
|
7
|
-
const { controller, options = {} } = props, rest = __rest(props, ["controller", "options"]);
|
|
8
|
-
const { active, onClick } = useFootnoteTool(controller, options);
|
|
9
|
-
return React.createElement(ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
6
|
+
function FootnoteToolbarIcon(props) {
|
|
7
|
+
const { controller, options = {} } = props, rest = __rest(props, ["controller", "options"]);
|
|
8
|
+
const { active, onClick } = useFootnoteTool(controller, options);
|
|
9
|
+
return React.createElement(ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export { FootnoteToolbarIcon as default };
|
|
@@ -1,35 +1,29 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var react = require('@quadrats/react');
|
|
6
4
|
var toolbar = require('@quadrats/react/toolbar');
|
|
7
5
|
var tslib = require('tslib');
|
|
8
6
|
var React = require('react');
|
|
9
7
|
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
defaultValue: controller.getFootnoteText(editor),
|
|
25
|
-
}),
|
|
26
|
-
};
|
|
8
|
+
function useFootnoteTool(controller, options = {}) {
|
|
9
|
+
const editor = react.useQuadrats();
|
|
10
|
+
const startToolInput = toolbar.useStartToolInput();
|
|
11
|
+
return {
|
|
12
|
+
active: controller.isSelectionInFootnote(editor),
|
|
13
|
+
onClick: () => startToolInput({
|
|
14
|
+
getPlaceholder: (locale) => locale.editor.footnote.inputPlaceholder,
|
|
15
|
+
confirm: (footnoteText) => {
|
|
16
|
+
controller.upsertFootnoteAndUpdateIndex(editor, footnoteText, options);
|
|
17
|
+
},
|
|
18
|
+
defaultValue: controller.getFootnoteText(editor),
|
|
19
|
+
}),
|
|
20
|
+
};
|
|
27
21
|
}
|
|
28
22
|
|
|
29
|
-
function FootnoteToolbarIcon(props) {
|
|
30
|
-
const { controller, options = {} } = props, rest = tslib.__rest(props, ["controller", "options"]);
|
|
31
|
-
const { active, onClick } = useFootnoteTool(controller, options);
|
|
32
|
-
return
|
|
23
|
+
function FootnoteToolbarIcon(props) {
|
|
24
|
+
const { controller, options = {} } = props, rest = tslib.__rest(props, ["controller", "options"]);
|
|
25
|
+
const { active, onClick } = useFootnoteTool(controller, options);
|
|
26
|
+
return React.createElement(toolbar.ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
33
27
|
}
|
|
34
28
|
|
|
35
29
|
exports.FootnoteToolbarIcon = FootnoteToolbarIcon;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FootnoteUpsertFootnoteOptions } from '@quadrats/common/footnote';
|
|
2
2
|
import { ReactFootnote } from '@quadrats/react/footnote';
|
|
3
|
-
export
|
|
3
|
+
export type UseFootnoteToolOptions = FootnoteUpsertFootnoteOptions;
|
|
4
4
|
export declare function useFootnoteTool(controller: ReactFootnote, options?: UseFootnoteToolOptions): {
|
|
5
5
|
active: boolean;
|
|
6
6
|
onClick: () => void;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { useQuadrats } from '@quadrats/react';
|
|
2
2
|
import { useStartToolInput } from '@quadrats/react/toolbar';
|
|
3
3
|
|
|
4
|
-
function useFootnoteTool(controller, options = {}) {
|
|
5
|
-
const editor = useQuadrats();
|
|
6
|
-
const startToolInput = useStartToolInput();
|
|
7
|
-
return {
|
|
8
|
-
active: controller.isSelectionInFootnote(editor),
|
|
9
|
-
onClick: () => startToolInput({
|
|
10
|
-
getPlaceholder: (locale) => locale.editor.footnote.inputPlaceholder,
|
|
11
|
-
confirm: (footnoteText) => {
|
|
12
|
-
controller.upsertFootnoteAndUpdateIndex(editor, footnoteText, options);
|
|
13
|
-
},
|
|
14
|
-
defaultValue: controller.getFootnoteText(editor),
|
|
15
|
-
}),
|
|
16
|
-
};
|
|
4
|
+
function useFootnoteTool(controller, options = {}) {
|
|
5
|
+
const editor = useQuadrats();
|
|
6
|
+
const startToolInput = useStartToolInput();
|
|
7
|
+
return {
|
|
8
|
+
active: controller.isSelectionInFootnote(editor),
|
|
9
|
+
onClick: () => startToolInput({
|
|
10
|
+
getPlaceholder: (locale) => locale.editor.footnote.inputPlaceholder,
|
|
11
|
+
confirm: (footnoteText) => {
|
|
12
|
+
controller.upsertFootnoteAndUpdateIndex(editor, footnoteText, options);
|
|
13
|
+
},
|
|
14
|
+
defaultValue: controller.getFootnoteText(editor),
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export { useFootnoteTool };
|
package/footnote/typings.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Footnote, FootnoteElement } from '@quadrats/common/footnote';
|
|
3
3
|
import { RenderElementProps, ReactWithable, WithCreateRenderElement, Editor } from '@quadrats/react';
|
|
4
|
-
export
|
|
4
|
+
export type RenderFootnoteElementProps = RenderElementProps<FootnoteElement>;
|
|
5
5
|
export interface ReactFootnoteCreateRenderElementOptions {
|
|
6
6
|
render?: (props: RenderFootnoteElementProps) => JSX.Element | null | undefined;
|
|
7
7
|
}
|
package/footnote/useFootnotes.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { getNodes } from '@quadrats/core';
|
|
2
2
|
import { FOOTNOTE_TYPE } from '@quadrats/common/footnote';
|
|
3
3
|
|
|
4
|
-
function useFootnotes(editor) {
|
|
5
|
-
const footnoteNodes = Array.from(getNodes(editor, {
|
|
6
|
-
at: [],
|
|
7
|
-
match: node => node.type === FOOTNOTE_TYPE,
|
|
8
|
-
}));
|
|
9
|
-
const footnotes = footnoteNodes.map((node) => {
|
|
10
|
-
var _a, _b;
|
|
11
|
-
const nodeData = node === null || node === void 0 ? void 0 : node[0];
|
|
12
|
-
return {
|
|
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
|
-
footnote: nodeData === null || nodeData === void 0 ? void 0 : nodeData.footnote,
|
|
15
|
-
index: nodeData === null || nodeData === void 0 ? void 0 : nodeData.index,
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
return footnotes;
|
|
4
|
+
function useFootnotes(editor) {
|
|
5
|
+
const footnoteNodes = Array.from(getNodes(editor, {
|
|
6
|
+
at: [],
|
|
7
|
+
match: node => node.type === FOOTNOTE_TYPE,
|
|
8
|
+
}));
|
|
9
|
+
const footnotes = footnoteNodes.map((node) => {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const nodeData = node === null || node === void 0 ? void 0 : node[0];
|
|
12
|
+
return {
|
|
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
|
+
footnote: nodeData === null || nodeData === void 0 ? void 0 : nodeData.footnote,
|
|
15
|
+
index: nodeData === null || nodeData === void 0 ? void 0 : nodeData.index,
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
return footnotes;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export { useFootnotes as default, useFootnotes };
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { Node } from '@quadrats/core';
|
|
2
2
|
import { FOOTNOTE_TYPE } from '@quadrats/common/footnote';
|
|
3
3
|
|
|
4
|
-
function deepSearchFootnoteFromNodes(nodes) {
|
|
5
|
-
const result = nodes.flatMap((element) => {
|
|
6
|
-
var _a, _b;
|
|
7
|
-
const curNode = Node.isNode(element)
|
|
8
|
-
&& element.type === FOOTNOTE_TYPE ? element : null;
|
|
9
|
-
const child = Node.isNodeList(element === null || element === void 0 ? void 0 : element.children)
|
|
10
|
-
? deepSearchFootnoteFromNodes((_a = element === null || element === void 0 ? void 0 : element.children) !== null && _a !== void 0 ? _a : []) : null;
|
|
11
|
-
return (_b = curNode !== null && curNode !== void 0 ? curNode : child) !== null && _b !== void 0 ? _b : [];
|
|
12
|
-
});
|
|
13
|
-
return result;
|
|
14
|
-
}
|
|
15
|
-
function useFootnotesFromNodes(nodes) {
|
|
16
|
-
const filter = deepSearchFootnoteFromNodes(nodes);
|
|
17
|
-
return filter.map(element => {
|
|
18
|
-
var _a;
|
|
19
|
-
return ({
|
|
20
|
-
wrapperText: (_a = (element === null || element === void 0 ? void 0 : element.children)) === null || _a === void 0 ? void 0 : _a.map(childNode => childNode.text).join(''),
|
|
21
|
-
footnote: element.footnote,
|
|
22
|
-
index: element.index,
|
|
23
|
-
});
|
|
24
|
-
});
|
|
4
|
+
function deepSearchFootnoteFromNodes(nodes) {
|
|
5
|
+
const result = nodes.flatMap((element) => {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const curNode = Node.isNode(element)
|
|
8
|
+
&& element.type === FOOTNOTE_TYPE ? element : null;
|
|
9
|
+
const child = Node.isNodeList(element === null || element === void 0 ? void 0 : element.children)
|
|
10
|
+
? deepSearchFootnoteFromNodes((_a = element === null || element === void 0 ? void 0 : element.children) !== null && _a !== void 0 ? _a : []) : null;
|
|
11
|
+
return (_b = curNode !== null && curNode !== void 0 ? curNode : child) !== null && _b !== void 0 ? _b : [];
|
|
12
|
+
});
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
function useFootnotesFromNodes(nodes) {
|
|
16
|
+
const filter = deepSearchFootnoteFromNodes(nodes);
|
|
17
|
+
return filter.map(element => {
|
|
18
|
+
var _a;
|
|
19
|
+
return ({
|
|
20
|
+
wrapperText: (_a = (element === null || element === void 0 ? void 0 : element.children)) === null || _a === void 0 ? void 0 : _a.map(childNode => childNode.text).join(''),
|
|
21
|
+
footnote: element.footnote,
|
|
22
|
+
index: element.index,
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export { useFootnotesFromNodes as default, useFootnotesFromNodes };
|
package/heading/constants.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default hotkey for toggling heading.
|
|
3
|
-
*
|
|
4
|
-
* @remarks
|
|
5
|
-
* If the hotkey is `ctrl+opt`, the level 1 hotkey will be `ctrl+opt+1`, and so on.
|
|
6
|
-
*
|
|
7
|
-
* @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
|
|
8
|
-
*/
|
|
1
|
+
/**
|
|
2
|
+
* Default hotkey for toggling heading.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* If the hotkey is `ctrl+opt`, the level 1 hotkey will be `ctrl+opt+1`, and so on.
|
|
6
|
+
*
|
|
7
|
+
* @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
|
|
8
|
+
*/
|
|
9
9
|
const HEADING_HOTKEY = 'ctrl+opt';
|
|
10
10
|
|
|
11
11
|
export { HEADING_HOTKEY };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { CreateHeadingOptions, HeadingLevel } from '@quadrats/common/heading';
|
|
2
2
|
import { ReactHeading } from './typings';
|
|
3
|
-
export
|
|
3
|
+
export type CreateReactHeadingOptions<L extends HeadingLevel> = CreateHeadingOptions<L>;
|
|
4
4
|
export declare function createReactHeading<L extends HeadingLevel = HeadingLevel>(options?: CreateReactHeadingOptions<L>): ReactHeading<L>;
|
|
@@ -5,43 +5,43 @@ import { createOnKeyDownBreak } from '@quadrats/react/line-break';
|
|
|
5
5
|
import { HEADING_HOTKEY } from './constants.js';
|
|
6
6
|
import { defaultRenderHeadingElement } from './defaultRenderHeadingElement.js';
|
|
7
7
|
|
|
8
|
-
function createReactHeading(options = {}) {
|
|
9
|
-
const core = createHeading(options);
|
|
10
|
-
const { type } = core;
|
|
11
|
-
return Object.assign(Object.assign({}, core), { createHandlers: ({ hotkey = HEADING_HOTKEY } = {}) => {
|
|
12
|
-
const onKeyDownBreak = createOnKeyDownBreak({
|
|
13
|
-
exitBreak: {
|
|
14
|
-
rules: [
|
|
15
|
-
{
|
|
16
|
-
hotkey: 'enter',
|
|
17
|
-
match: {
|
|
18
|
-
onlyAtEdge: true,
|
|
19
|
-
includeTypes: [type],
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
return {
|
|
26
|
-
onKeyDown(event, editor, next) {
|
|
27
|
-
/**
|
|
28
|
-
* Only toggle if the hotkey is fired and the key is the same as level.
|
|
29
|
-
*/
|
|
30
|
-
const keyAsNumber = +event.key;
|
|
31
|
-
if (!Number.isNaN(keyAsNumber) && isHotkey(hotkey, event)) {
|
|
32
|
-
try {
|
|
33
|
-
core.toggleHeadingNodes(editor, keyAsNumber);
|
|
34
|
-
event.preventDefault();
|
|
35
|
-
// eslint-disable-next-line no-empty
|
|
36
|
-
}
|
|
37
|
-
catch (_a) { }
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
onKeyDownBreak(event, editor, next);
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
}, createRenderElement: ({ render = defaultRenderHeadingElement } = {}) => createRenderElement({ type, render }) });
|
|
8
|
+
function createReactHeading(options = {}) {
|
|
9
|
+
const core = createHeading(options);
|
|
10
|
+
const { type } = core;
|
|
11
|
+
return Object.assign(Object.assign({}, core), { createHandlers: ({ hotkey = HEADING_HOTKEY } = {}) => {
|
|
12
|
+
const onKeyDownBreak = createOnKeyDownBreak({
|
|
13
|
+
exitBreak: {
|
|
14
|
+
rules: [
|
|
15
|
+
{
|
|
16
|
+
hotkey: 'enter',
|
|
17
|
+
match: {
|
|
18
|
+
onlyAtEdge: true,
|
|
19
|
+
includeTypes: [type],
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
onKeyDown(event, editor, next) {
|
|
27
|
+
/**
|
|
28
|
+
* Only toggle if the hotkey is fired and the key is the same as level.
|
|
29
|
+
*/
|
|
30
|
+
const keyAsNumber = +event.key;
|
|
31
|
+
if (!Number.isNaN(keyAsNumber) && isHotkey(hotkey, event)) {
|
|
32
|
+
try {
|
|
33
|
+
core.toggleHeadingNodes(editor, keyAsNumber);
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
// eslint-disable-next-line no-empty
|
|
36
|
+
}
|
|
37
|
+
catch (_a) { }
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
onKeyDownBreak(event, editor, next);
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}, createRenderElement: ({ render = defaultRenderHeadingElement } = {}) => createRenderElement({ type, render }) });
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export { createReactHeading };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { HeadingElement } from '@quadrats/common/heading';
|
|
3
3
|
import { RenderElementProps } from '@quadrats/react';
|
|
4
4
|
export declare const HEADING_COMPONENTS: {
|
|
@@ -19,4 +19,4 @@ export declare const defaultRenderHeadingElement: ({ attributes, children, eleme
|
|
|
19
19
|
} | undefined;
|
|
20
20
|
children: RenderElementProps['children'];
|
|
21
21
|
element: HeadingElement;
|
|
22
|
-
}) => JSX.Element | null;
|
|
22
|
+
}) => React.JSX.Element | null;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
const HEADING_COMPONENTS = {
|
|
4
|
-
1: 'h1',
|
|
5
|
-
2: 'h2',
|
|
6
|
-
3: 'h3',
|
|
7
|
-
4: 'h4',
|
|
8
|
-
5: 'h5',
|
|
9
|
-
6: 'h6',
|
|
10
|
-
};
|
|
11
|
-
const defaultRenderHeadingElement = ({ attributes, children, element, }) => {
|
|
12
|
-
const Component = HEADING_COMPONENTS[element.level];
|
|
13
|
-
if (!Component) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
return React.createElement(Component, Object.assign({}, attributes, { className: `qdr-${Component}` }), children);
|
|
3
|
+
const HEADING_COMPONENTS = {
|
|
4
|
+
1: 'h1',
|
|
5
|
+
2: 'h2',
|
|
6
|
+
3: 'h3',
|
|
7
|
+
4: 'h4',
|
|
8
|
+
5: 'h5',
|
|
9
|
+
6: 'h6',
|
|
10
|
+
};
|
|
11
|
+
const defaultRenderHeadingElement = ({ attributes, children, element, }) => {
|
|
12
|
+
const Component = HEADING_COMPONENTS[element.level];
|
|
13
|
+
if (!Component) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return React.createElement(Component, Object.assign({}, attributes, { className: `qdr-${Component}` }), children);
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
export { HEADING_COMPONENTS, defaultRenderHeadingElement };
|
package/heading/index.cjs.js
CHANGED
|
@@ -1,81 +1,74 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var React = require('react');
|
|
6
4
|
var isHotkey = require('is-hotkey');
|
|
7
5
|
var heading = require('@quadrats/common/heading');
|
|
8
6
|
var react = require('@quadrats/react');
|
|
9
7
|
var lineBreak = require('@quadrats/react/line-break');
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
* @remarks
|
|
20
|
-
* If the hotkey is `ctrl+opt`, the level 1 hotkey will be `ctrl+opt+1`, and so on.
|
|
21
|
-
*
|
|
22
|
-
* @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
|
|
23
|
-
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default hotkey for toggling heading.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* If the hotkey is `ctrl+opt`, the level 1 hotkey will be `ctrl+opt+1`, and so on.
|
|
14
|
+
*
|
|
15
|
+
* @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
|
|
16
|
+
*/
|
|
24
17
|
const HEADING_HOTKEY = 'ctrl+opt';
|
|
25
18
|
|
|
26
|
-
const HEADING_COMPONENTS = {
|
|
27
|
-
1: 'h1',
|
|
28
|
-
2: 'h2',
|
|
29
|
-
3: 'h3',
|
|
30
|
-
4: 'h4',
|
|
31
|
-
5: 'h5',
|
|
32
|
-
6: 'h6',
|
|
33
|
-
};
|
|
34
|
-
const defaultRenderHeadingElement = ({ attributes, children, element, }) => {
|
|
35
|
-
const Component = HEADING_COMPONENTS[element.level];
|
|
36
|
-
if (!Component) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
return
|
|
19
|
+
const HEADING_COMPONENTS = {
|
|
20
|
+
1: 'h1',
|
|
21
|
+
2: 'h2',
|
|
22
|
+
3: 'h3',
|
|
23
|
+
4: 'h4',
|
|
24
|
+
5: 'h5',
|
|
25
|
+
6: 'h6',
|
|
26
|
+
};
|
|
27
|
+
const defaultRenderHeadingElement = ({ attributes, children, element, }) => {
|
|
28
|
+
const Component = HEADING_COMPONENTS[element.level];
|
|
29
|
+
if (!Component) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return React.createElement(Component, Object.assign({}, attributes, { className: `qdr-${Component}` }), children);
|
|
40
33
|
};
|
|
41
34
|
|
|
42
|
-
function createReactHeading(options = {}) {
|
|
43
|
-
const core = heading.createHeading(options);
|
|
44
|
-
const { type } = core;
|
|
45
|
-
return Object.assign(Object.assign({}, core), { createHandlers: ({ hotkey = HEADING_HOTKEY } = {}) => {
|
|
46
|
-
const onKeyDownBreak = lineBreak.createOnKeyDownBreak({
|
|
47
|
-
exitBreak: {
|
|
48
|
-
rules: [
|
|
49
|
-
{
|
|
50
|
-
hotkey: 'enter',
|
|
51
|
-
match: {
|
|
52
|
-
onlyAtEdge: true,
|
|
53
|
-
includeTypes: [type],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
return {
|
|
60
|
-
onKeyDown(event, editor, next) {
|
|
61
|
-
/**
|
|
62
|
-
* Only toggle if the hotkey is fired and the key is the same as level.
|
|
63
|
-
*/
|
|
64
|
-
const keyAsNumber = +event.key;
|
|
65
|
-
if (!Number.isNaN(keyAsNumber) &&
|
|
66
|
-
try {
|
|
67
|
-
core.toggleHeadingNodes(editor, keyAsNumber);
|
|
68
|
-
event.preventDefault();
|
|
69
|
-
// eslint-disable-next-line no-empty
|
|
70
|
-
}
|
|
71
|
-
catch (_a) { }
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
onKeyDownBreak(event, editor, next);
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}, createRenderElement: ({ render = defaultRenderHeadingElement } = {}) => react.createRenderElement({ type, render }) });
|
|
35
|
+
function createReactHeading(options = {}) {
|
|
36
|
+
const core = heading.createHeading(options);
|
|
37
|
+
const { type } = core;
|
|
38
|
+
return Object.assign(Object.assign({}, core), { createHandlers: ({ hotkey = HEADING_HOTKEY } = {}) => {
|
|
39
|
+
const onKeyDownBreak = lineBreak.createOnKeyDownBreak({
|
|
40
|
+
exitBreak: {
|
|
41
|
+
rules: [
|
|
42
|
+
{
|
|
43
|
+
hotkey: 'enter',
|
|
44
|
+
match: {
|
|
45
|
+
onlyAtEdge: true,
|
|
46
|
+
includeTypes: [type],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
onKeyDown(event, editor, next) {
|
|
54
|
+
/**
|
|
55
|
+
* Only toggle if the hotkey is fired and the key is the same as level.
|
|
56
|
+
*/
|
|
57
|
+
const keyAsNumber = +event.key;
|
|
58
|
+
if (!Number.isNaN(keyAsNumber) && isHotkey(hotkey, event)) {
|
|
59
|
+
try {
|
|
60
|
+
core.toggleHeadingNodes(editor, keyAsNumber);
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
// eslint-disable-next-line no-empty
|
|
63
|
+
}
|
|
64
|
+
catch (_a) { }
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
onKeyDownBreak(event, editor, next);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}, createRenderElement: ({ render = defaultRenderHeadingElement } = {}) => react.createRenderElement({ type, render }) });
|
|
79
72
|
}
|
|
80
73
|
|
|
81
74
|
exports.HEADING_HOTKEY = HEADING_HOTKEY;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { JsxSerializeHeadingElementProps } from './typings';
|
|
4
|
-
export
|
|
5
|
-
export declare function createJsxSerializeHeading(options?: CreateJsxSerializeHeadingOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps
|
|
4
|
+
export type CreateJsxSerializeHeadingOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeHeadingElementProps>>;
|
|
5
|
+
export declare function createJsxSerializeHeading(options?: CreateJsxSerializeHeadingOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => JSX.Element | null | undefined;
|
|
@@ -2,9 +2,9 @@ import { HEADING_TYPE } from '@quadrats/common/heading';
|
|
|
2
2
|
import { createJsxSerializeElement } from '@quadrats/react/jsx-serializer';
|
|
3
3
|
import { defaultRenderHeadingElement } from '@quadrats/react/heading';
|
|
4
4
|
|
|
5
|
-
function createJsxSerializeHeading(options = {}) {
|
|
6
|
-
const { type = HEADING_TYPE, render = defaultRenderHeadingElement } = options;
|
|
7
|
-
return createJsxSerializeElement({ type, render });
|
|
5
|
+
function createJsxSerializeHeading(options = {}) {
|
|
6
|
+
const { type = HEADING_TYPE, render = defaultRenderHeadingElement } = options;
|
|
7
|
+
return createJsxSerializeElement({ type, render });
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export { createJsxSerializeHeading };
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var heading = require('@quadrats/react/heading');
|
|
6
4
|
var heading$1 = require('@quadrats/common/heading');
|
|
7
5
|
var jsxSerializer = require('@quadrats/react/jsx-serializer');
|
|
8
6
|
|
|
9
|
-
function createJsxSerializeHeading(options = {}) {
|
|
10
|
-
const { type = heading$1.HEADING_TYPE, render = heading.defaultRenderHeadingElement } = options;
|
|
11
|
-
return jsxSerializer.createJsxSerializeElement({ type, render });
|
|
7
|
+
function createJsxSerializeHeading(options = {}) {
|
|
8
|
+
const { type = heading$1.HEADING_TYPE, render = heading.defaultRenderHeadingElement } = options;
|
|
9
|
+
return jsxSerializer.createJsxSerializeElement({ type, render });
|
|
12
10
|
}
|
|
13
11
|
|
|
14
12
|
exports.defaultRenderHeadingElement = heading.defaultRenderHeadingElement;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { HeadingElement } from '@quadrats/common/heading';
|
|
2
2
|
import { JsxSerializeElementProps } from '@quadrats/react/jsx-serializer';
|
|
3
|
-
export
|
|
3
|
+
export type JsxSerializeHeadingElementProps = JsxSerializeElementProps<HeadingElement>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { HeadingLevel } from '@quadrats/common/heading';
|
|
3
3
|
import { ReactHeading } from '@quadrats/react/heading';
|
|
4
4
|
import { ToolbarIconProps } from '@quadrats/react/toolbar';
|
|
@@ -6,5 +6,5 @@ export interface HeadingToolbarIconProps<Level extends HeadingLevel, ValidLevel
|
|
|
6
6
|
controller: ReactHeading<Level>;
|
|
7
7
|
level: ValidLevel;
|
|
8
8
|
}
|
|
9
|
-
declare function HeadingToolbarIcon<Level extends HeadingLevel, ValidLevel extends Level>(props: HeadingToolbarIconProps<Level, ValidLevel>): JSX.Element;
|
|
9
|
+
declare function HeadingToolbarIcon<Level extends HeadingLevel, ValidLevel extends Level>(props: HeadingToolbarIconProps<Level, ValidLevel>): React.JSX.Element;
|
|
10
10
|
export default HeadingToolbarIcon;
|
|
@@ -3,10 +3,10 @@ import React from 'react';
|
|
|
3
3
|
import { ToolbarIcon } from '@quadrats/react/toolbar';
|
|
4
4
|
import { useToggleHeadingTool } from './useToggleHeadingTool.js';
|
|
5
5
|
|
|
6
|
-
function HeadingToolbarIcon(props) {
|
|
7
|
-
const { controller, level } = props, rest = __rest(props, ["controller", "level"]);
|
|
8
|
-
const { active, onClick } = useToggleHeadingTool(controller, level);
|
|
9
|
-
return React.createElement(ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
6
|
+
function HeadingToolbarIcon(props) {
|
|
7
|
+
const { controller, level } = props, rest = __rest(props, ["controller", "level"]);
|
|
8
|
+
const { active, onClick } = useToggleHeadingTool(controller, level);
|
|
9
|
+
return React.createElement(ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export { HeadingToolbarIcon as default };
|
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var react = require('@quadrats/react');
|
|
6
4
|
var tslib = require('tslib');
|
|
7
5
|
var React = require('react');
|
|
8
6
|
var toolbar = require('@quadrats/react/toolbar');
|
|
9
7
|
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
active: controller.isSelectionInHeading(editor, level),
|
|
18
|
-
onClick: () => controller.toggleHeadingNodes(editor, level),
|
|
19
|
-
};
|
|
8
|
+
function useToggleHeadingTool(controller, level) {
|
|
9
|
+
const editor = react.useQuadrats();
|
|
10
|
+
return {
|
|
11
|
+
active: controller.isSelectionInHeading(editor, level),
|
|
12
|
+
onClick: () => controller.toggleHeadingNodes(editor, level),
|
|
13
|
+
};
|
|
20
14
|
}
|
|
21
15
|
|
|
22
|
-
function HeadingToolbarIcon(props) {
|
|
23
|
-
const { controller, level } = props, rest = tslib.__rest(props, ["controller", "level"]);
|
|
24
|
-
const { active, onClick } = useToggleHeadingTool(controller, level);
|
|
25
|
-
return
|
|
16
|
+
function HeadingToolbarIcon(props) {
|
|
17
|
+
const { controller, level } = props, rest = tslib.__rest(props, ["controller", "level"]);
|
|
18
|
+
const { active, onClick } = useToggleHeadingTool(controller, level);
|
|
19
|
+
return React.createElement(toolbar.ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
exports.HeadingToolbarIcon = HeadingToolbarIcon;
|