@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,6 +1,6 @@
|
|
|
1
1
|
import { createToggleMarkCreator, CreateToggleMarkOptions } from '@quadrats/common/toggle-mark';
|
|
2
2
|
import { CreateRenderMarkOptions } from '@quadrats/react';
|
|
3
3
|
import { ReactToggleMark, ReactToggleMarkCreateHandlersOptions } from './typings';
|
|
4
|
-
export
|
|
5
|
-
export
|
|
4
|
+
export type CreateReactToggleMarkCreatorOptions = Required<ReactToggleMarkCreateHandlersOptions & Omit<CreateRenderMarkOptions<boolean>, 'type'>>;
|
|
5
|
+
export type CreateReactToggleMarkOptions = CreateToggleMarkOptions;
|
|
6
6
|
export declare function createReactToggleMarkCreator(createCore: ReturnType<typeof createToggleMarkCreator>, defaults: CreateReactToggleMarkCreatorOptions): ({ type }?: CreateReactToggleMarkOptions) => ReactToggleMark;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import isHotkey from 'is-hotkey';
|
|
2
2
|
import { createRenderMark } from '@quadrats/react';
|
|
3
3
|
|
|
4
|
-
function createReactToggleMarkCreator(createCore, defaults) {
|
|
5
|
-
return ({ type } = {}) => {
|
|
6
|
-
const core = createCore({ type });
|
|
7
|
-
return Object.assign(Object.assign({}, core), { createHandlers: ({ hotkey = defaults.hotkey } = {}) => ({
|
|
8
|
-
onKeyDown: (event, editor, next) => {
|
|
9
|
-
if (isHotkey(hotkey, event)) {
|
|
10
|
-
core.toggleMark(editor);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
next();
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
}), createRenderLeaf: ({ render = defaults.render } = {}) => createRenderMark({ type: core.type, render }) });
|
|
17
|
-
};
|
|
4
|
+
function createReactToggleMarkCreator(createCore, defaults) {
|
|
5
|
+
return ({ type } = {}) => {
|
|
6
|
+
const core = createCore({ type });
|
|
7
|
+
return Object.assign(Object.assign({}, core), { createHandlers: ({ hotkey = defaults.hotkey } = {}) => ({
|
|
8
|
+
onKeyDown: (event, editor, next) => {
|
|
9
|
+
if (isHotkey(hotkey, event)) {
|
|
10
|
+
core.toggleMark(editor);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
next();
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
}), createRenderLeaf: ({ render = defaults.render } = {}) => createRenderMark({ type: core.type, render }) });
|
|
17
|
+
};
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export { createReactToggleMarkCreator };
|
package/toggle-mark/index.cjs.js
CHANGED
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var isHotkey = require('is-hotkey');
|
|
6
4
|
var react = require('@quadrats/react');
|
|
7
5
|
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
}), createRenderLeaf: ({ render = defaults.render } = {}) => react.createRenderMark({ type: core.type, render }) });
|
|
25
|
-
};
|
|
6
|
+
function createReactToggleMarkCreator(createCore, defaults) {
|
|
7
|
+
return ({ type } = {}) => {
|
|
8
|
+
const core = createCore({ type });
|
|
9
|
+
return Object.assign(Object.assign({}, core), { createHandlers: ({ hotkey = defaults.hotkey } = {}) => ({
|
|
10
|
+
onKeyDown: (event, editor, next) => {
|
|
11
|
+
if (isHotkey(hotkey, event)) {
|
|
12
|
+
core.toggleMark(editor);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
next();
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
}), createRenderLeaf: ({ render = defaults.render } = {}) => react.createRenderMark({ type: core.type, render }) });
|
|
19
|
+
};
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
exports.createReactToggleMarkCreator = createReactToggleMarkCreator;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CreateJsxSerializeMarkOptions } from '@quadrats/react/jsx-serializer';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export declare function createJsxSerializeToggleMarkCreator(defaults: CreateJsxSerializeToggleMarkCreatorOptions): (options?:
|
|
3
|
+
export type CreateJsxSerializeToggleMarkCreatorOptions = CreateJsxSerializeMarkOptions<boolean>;
|
|
4
|
+
export type CreateJsxSerializeToggleMarkOptions = Partial<CreateJsxSerializeToggleMarkCreatorOptions>;
|
|
5
|
+
export declare function createJsxSerializeToggleMarkCreator(defaults: CreateJsxSerializeToggleMarkCreatorOptions): (options?: CreateJsxSerializeToggleMarkOptions) => (props: Omit<import("@quadrats/react/jsx-serializer").JsxSerializeMarkProps<boolean>, "mark">) => JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createJsxSerializeMark } from '@quadrats/react/jsx-serializer';
|
|
2
2
|
|
|
3
|
-
function createJsxSerializeToggleMarkCreator(defaults) {
|
|
4
|
-
return (options) => createJsxSerializeMark(Object.assign(Object.assign({}, defaults), options));
|
|
3
|
+
function createJsxSerializeToggleMarkCreator(defaults) {
|
|
4
|
+
return (options) => createJsxSerializeMark(Object.assign(Object.assign({}, defaults), options));
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export { createJsxSerializeToggleMarkCreator };
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var jsxSerializer = require('@quadrats/react/jsx-serializer');
|
|
6
4
|
|
|
7
|
-
function createJsxSerializeToggleMarkCreator(defaults) {
|
|
8
|
-
return (options) => jsxSerializer.createJsxSerializeMark(Object.assign(Object.assign({}, defaults), options));
|
|
5
|
+
function createJsxSerializeToggleMarkCreator(defaults) {
|
|
6
|
+
return (options) => jsxSerializer.createJsxSerializeMark(Object.assign(Object.assign({}, defaults), options));
|
|
9
7
|
}
|
|
10
8
|
|
|
11
9
|
exports.createJsxSerializeToggleMarkCreator = createJsxSerializeToggleMarkCreator;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { JsxSerializeMarkProps } from '@quadrats/react/jsx-serializer';
|
|
2
|
-
export
|
|
2
|
+
export type JsxSerializeToggleMarkProps = JsxSerializeMarkProps<boolean>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ToolbarIconProps } from '@quadrats/react/toolbar';
|
|
3
3
|
import { ReactToggleMark } from '@quadrats/react/toggle-mark';
|
|
4
4
|
export interface ToggleMarkToolbarIconProps extends Omit<ToolbarIconProps, 'active' | 'onClick'> {
|
|
5
5
|
controller: ReactToggleMark;
|
|
6
6
|
}
|
|
7
|
-
declare function ToggleMarkToolbarIcon(props: ToggleMarkToolbarIconProps): JSX.Element;
|
|
7
|
+
declare function ToggleMarkToolbarIcon(props: ToggleMarkToolbarIconProps): React.JSX.Element;
|
|
8
8
|
export default ToggleMarkToolbarIcon;
|
|
@@ -3,10 +3,10 @@ import React from 'react';
|
|
|
3
3
|
import { ToolbarIcon } from '@quadrats/react/toolbar';
|
|
4
4
|
import { useToggleMarkTool } from './useToggleMarkTool.js';
|
|
5
5
|
|
|
6
|
-
function ToggleMarkToolbarIcon(props) {
|
|
7
|
-
const { controller } = props, rest = __rest(props, ["controller"]);
|
|
8
|
-
const { active, onClick } = useToggleMarkTool(controller);
|
|
9
|
-
return React.createElement(ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
6
|
+
function ToggleMarkToolbarIcon(props) {
|
|
7
|
+
const { controller } = props, rest = __rest(props, ["controller"]);
|
|
8
|
+
const { active, onClick } = useToggleMarkTool(controller);
|
|
9
|
+
return React.createElement(ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export { ToggleMarkToolbarIcon 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.isToggleMarkActive(editor),
|
|
18
|
-
onClick: () => controller.toggleMark(editor),
|
|
19
|
-
};
|
|
8
|
+
function useToggleMarkTool(controller) {
|
|
9
|
+
const editor = react.useQuadrats();
|
|
10
|
+
return {
|
|
11
|
+
active: controller.isToggleMarkActive(editor),
|
|
12
|
+
onClick: () => controller.toggleMark(editor),
|
|
13
|
+
};
|
|
20
14
|
}
|
|
21
15
|
|
|
22
|
-
function ToggleMarkToolbarIcon(props) {
|
|
23
|
-
const { controller } = props, rest = tslib.__rest(props, ["controller"]);
|
|
24
|
-
const { active, onClick } = useToggleMarkTool(controller);
|
|
25
|
-
return
|
|
16
|
+
function ToggleMarkToolbarIcon(props) {
|
|
17
|
+
const { controller } = props, rest = tslib.__rest(props, ["controller"]);
|
|
18
|
+
const { active, onClick } = useToggleMarkTool(controller);
|
|
19
|
+
return React.createElement(toolbar.ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
exports.ToggleMarkToolbarIcon = ToggleMarkToolbarIcon;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useQuadrats } from '@quadrats/react';
|
|
2
2
|
|
|
3
|
-
function useToggleMarkTool(controller) {
|
|
4
|
-
const editor = useQuadrats();
|
|
5
|
-
return {
|
|
6
|
-
active: controller.isToggleMarkActive(editor),
|
|
7
|
-
onClick: () => controller.toggleMark(editor),
|
|
8
|
-
};
|
|
3
|
+
function useToggleMarkTool(controller) {
|
|
4
|
+
const editor = useQuadrats();
|
|
5
|
+
return {
|
|
6
|
+
active: controller.isToggleMarkActive(editor),
|
|
7
|
+
onClick: () => controller.toggleMark(editor),
|
|
8
|
+
};
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export { useToggleMarkTool };
|
package/toggle-mark/typings.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ToggleMark } from '@quadrats/common/toggle-mark';
|
|
2
2
|
import { CreateRenderMarkOptions, Editor, RenderMarkProps, WithCreateHandlers, WithCreateRenderLeaf } from '@quadrats/react';
|
|
3
|
-
export
|
|
3
|
+
export type RenderToggleMarkProps = RenderMarkProps<boolean>;
|
|
4
4
|
export interface ReactToggleMarkCreateHandlersOptions {
|
|
5
5
|
/**
|
|
6
6
|
* The hotkey to toggle the mark.
|
|
7
7
|
*/
|
|
8
8
|
hotkey?: string;
|
|
9
9
|
}
|
|
10
|
-
export
|
|
10
|
+
export type ReactToggleMarkCreateRenderLeafOptions = Partial<Omit<CreateRenderMarkOptions<boolean>, 'type'>>;
|
|
11
11
|
export interface ReactToggleMark extends ToggleMark<Editor>, WithCreateHandlers<[ReactToggleMarkCreateHandlersOptions?]>, WithCreateRenderLeaf<[ReactToggleMarkCreateRenderLeafOptions?]> {
|
|
12
12
|
}
|
|
@@ -13,5 +13,5 @@ export interface ToolbarProps {
|
|
|
13
13
|
*/
|
|
14
14
|
containerRef?: React.MutableRefObject<HTMLElement | undefined>;
|
|
15
15
|
}
|
|
16
|
-
declare function Toolbar(props: ToolbarProps): JSX.Element | null;
|
|
16
|
+
declare function Toolbar(props: ToolbarProps): React.JSX.Element | null;
|
|
17
17
|
export default Toolbar;
|
|
@@ -6,108 +6,108 @@ import { Portal } from '@quadrats/react/components';
|
|
|
6
6
|
import { StartToolInputContext } from '../contexts/StartToolInputContext.js';
|
|
7
7
|
import ToolbarInput from './ToolbarInput.js';
|
|
8
8
|
|
|
9
|
-
function roundNumber(value, min, max) {
|
|
10
|
-
if (value < min) {
|
|
11
|
-
return min;
|
|
12
|
-
}
|
|
13
|
-
if (value > max) {
|
|
14
|
-
return max;
|
|
15
|
-
}
|
|
16
|
-
return value;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @todo
|
|
20
|
-
* Also round top.
|
|
21
|
-
*/
|
|
22
|
-
function setPosition(el, range) {
|
|
23
|
-
const rect = range.getBoundingClientRect();
|
|
24
|
-
const top = rect.top + window.pageYOffset - el.offsetHeight;
|
|
25
|
-
const left = roundNumber(rect.left + window.pageXOffset - (el.offsetWidth - rect.width) / 2, 0, window.innerWidth - el.offsetWidth);
|
|
26
|
-
el.style.top = `${top}px`;
|
|
27
|
-
el.style.left = `${left}px`;
|
|
28
|
-
}
|
|
29
|
-
function Toolbar(props) {
|
|
30
|
-
const { children, disabledElementTypes } = props;
|
|
31
|
-
const { props: themeProps } = useContext(ThemeContext);
|
|
32
|
-
const editor = useQuadrats();
|
|
33
|
-
const toolbarRef = useRef(null);
|
|
34
|
-
const lastNativeRangeRef = useRef();
|
|
35
|
-
const focused = ReactEditor.isFocused(editor);
|
|
36
|
-
const { selection } = editor;
|
|
37
|
-
const [toolInput, setToolInput] = useState();
|
|
38
|
-
const startToolInput = useCallback(inputConfig => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
|
|
39
|
-
let renderExpandedStatus;
|
|
40
|
-
if (toolInput) {
|
|
41
|
-
const { currentSelection } = toolInput;
|
|
42
|
-
if (currentSelection) {
|
|
43
|
-
if (Range.isExpanded(currentSelection)) {
|
|
44
|
-
renderExpandedStatus = true;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
renderExpandedStatus = false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else if (focused) {
|
|
52
|
-
if (selection && Range.isCollapsed(selection)) {
|
|
53
|
-
renderExpandedStatus = false;
|
|
54
|
-
}
|
|
55
|
-
else if (getSelectionText(editor) !== '') {
|
|
56
|
-
renderExpandedStatus = true;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const shouldRender = typeof renderExpandedStatus === 'boolean';
|
|
60
|
-
useLayoutEffect(() => {
|
|
61
|
-
/**
|
|
62
|
-
* The native selection is not yet synchronized while effect invoked.
|
|
63
|
-
* Thus invoke handler on next frame to avoid from this issue.
|
|
64
|
-
*/
|
|
65
|
-
window.requestAnimationFrame(() => {
|
|
66
|
-
/**
|
|
67
|
-
* Editor will be blurred after getting into input process.
|
|
68
|
-
* Thus cache the last range of selection to recalculate position of toolbar.
|
|
69
|
-
*/
|
|
70
|
-
if (!toolInput) {
|
|
71
|
-
const nativeSelection = window.getSelection();
|
|
72
|
-
if (nativeSelection && nativeSelection.rangeCount > 0) {
|
|
73
|
-
lastNativeRangeRef.current = nativeSelection.getRangeAt(0);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const el = toolbarRef.current;
|
|
77
|
-
const range = lastNativeRangeRef.current;
|
|
78
|
-
if (shouldRender && el && range) {
|
|
79
|
-
setPosition(el, range);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
const getPortalContainer = useCallback(() => {
|
|
84
|
-
var _a;
|
|
85
|
-
if ((_a = props.containerRef) === null || _a === void 0 ? void 0 : _a.current) {
|
|
86
|
-
return props.containerRef.current;
|
|
87
|
-
}
|
|
88
|
-
return document.body;
|
|
89
|
-
}, [props.containerRef]);
|
|
90
|
-
if (!shouldRender || (disabledElementTypes && isNodesTypeIn(editor, disabledElementTypes, { mode: 'all' }))) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
94
|
-
const tools = children(renderExpandedStatus);
|
|
95
|
-
if (!tools) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
return (React.createElement(Portal, { getContainer: getPortalContainer },
|
|
99
|
-
React.createElement("div", { ref: toolbarRef, className: clsx('qdr-toolbar__wrapper', { 'qdr-toolbar__wrapper--inputting': toolInput }, themeProps.className), style: themeProps.style },
|
|
100
|
-
React.createElement("div", { className: "qdr-toolbar__arrow" }),
|
|
101
|
-
React.createElement("div", { className: "qdr-toolbar" },
|
|
102
|
-
React.createElement(StartToolInputContext.Provider, { value: startToolInput }, tools),
|
|
103
|
-
toolInput && (React.createElement(ToolbarInput, { exit: () => {
|
|
104
|
-
const { currentSelection } = toolInput;
|
|
105
|
-
if (currentSelection) {
|
|
106
|
-
Transforms.select(editor, currentSelection);
|
|
107
|
-
}
|
|
108
|
-
ReactEditor.focus(editor);
|
|
109
|
-
setToolInput(undefined);
|
|
110
|
-
}, toolInput: toolInput }))))));
|
|
9
|
+
function roundNumber(value, min, max) {
|
|
10
|
+
if (value < min) {
|
|
11
|
+
return min;
|
|
12
|
+
}
|
|
13
|
+
if (value > max) {
|
|
14
|
+
return max;
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @todo
|
|
20
|
+
* Also round top.
|
|
21
|
+
*/
|
|
22
|
+
function setPosition(el, range) {
|
|
23
|
+
const rect = range.getBoundingClientRect();
|
|
24
|
+
const top = rect.top + window.pageYOffset - el.offsetHeight;
|
|
25
|
+
const left = roundNumber(rect.left + window.pageXOffset - (el.offsetWidth - rect.width) / 2, 0, window.innerWidth - el.offsetWidth);
|
|
26
|
+
el.style.top = `${top}px`;
|
|
27
|
+
el.style.left = `${left}px`;
|
|
28
|
+
}
|
|
29
|
+
function Toolbar(props) {
|
|
30
|
+
const { children, disabledElementTypes } = props;
|
|
31
|
+
const { props: themeProps } = useContext(ThemeContext);
|
|
32
|
+
const editor = useQuadrats();
|
|
33
|
+
const toolbarRef = useRef(null);
|
|
34
|
+
const lastNativeRangeRef = useRef();
|
|
35
|
+
const focused = ReactEditor.isFocused(editor);
|
|
36
|
+
const { selection } = editor;
|
|
37
|
+
const [toolInput, setToolInput] = useState();
|
|
38
|
+
const startToolInput = useCallback(inputConfig => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
|
|
39
|
+
let renderExpandedStatus;
|
|
40
|
+
if (toolInput) {
|
|
41
|
+
const { currentSelection } = toolInput;
|
|
42
|
+
if (currentSelection) {
|
|
43
|
+
if (Range.isExpanded(currentSelection)) {
|
|
44
|
+
renderExpandedStatus = true;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
renderExpandedStatus = false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (focused) {
|
|
52
|
+
if (selection && Range.isCollapsed(selection)) {
|
|
53
|
+
renderExpandedStatus = false;
|
|
54
|
+
}
|
|
55
|
+
else if (getSelectionText(editor) !== '') {
|
|
56
|
+
renderExpandedStatus = true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const shouldRender = typeof renderExpandedStatus === 'boolean';
|
|
60
|
+
useLayoutEffect(() => {
|
|
61
|
+
/**
|
|
62
|
+
* The native selection is not yet synchronized while effect invoked.
|
|
63
|
+
* Thus invoke handler on next frame to avoid from this issue.
|
|
64
|
+
*/
|
|
65
|
+
window.requestAnimationFrame(() => {
|
|
66
|
+
/**
|
|
67
|
+
* Editor will be blurred after getting into input process.
|
|
68
|
+
* Thus cache the last range of selection to recalculate position of toolbar.
|
|
69
|
+
*/
|
|
70
|
+
if (!toolInput) {
|
|
71
|
+
const nativeSelection = window.getSelection();
|
|
72
|
+
if (nativeSelection && nativeSelection.rangeCount > 0) {
|
|
73
|
+
lastNativeRangeRef.current = nativeSelection.getRangeAt(0);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const el = toolbarRef.current;
|
|
77
|
+
const range = lastNativeRangeRef.current;
|
|
78
|
+
if (shouldRender && el && range) {
|
|
79
|
+
setPosition(el, range);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
const getPortalContainer = useCallback(() => {
|
|
84
|
+
var _a;
|
|
85
|
+
if ((_a = props.containerRef) === null || _a === void 0 ? void 0 : _a.current) {
|
|
86
|
+
return props.containerRef.current;
|
|
87
|
+
}
|
|
88
|
+
return document.body;
|
|
89
|
+
}, [props.containerRef]);
|
|
90
|
+
if (!shouldRender || (disabledElementTypes && isNodesTypeIn(editor, disabledElementTypes, { mode: 'all' }))) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
94
|
+
const tools = children(renderExpandedStatus);
|
|
95
|
+
if (!tools) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
return (React.createElement(Portal, { getContainer: getPortalContainer },
|
|
99
|
+
React.createElement("div", { ref: toolbarRef, className: clsx('qdr-toolbar__wrapper', { 'qdr-toolbar__wrapper--inputting': toolInput }, themeProps.className), style: themeProps.style },
|
|
100
|
+
React.createElement("div", { className: "qdr-toolbar__arrow" }),
|
|
101
|
+
React.createElement("div", { className: "qdr-toolbar" },
|
|
102
|
+
React.createElement(StartToolInputContext.Provider, { value: startToolInput }, tools),
|
|
103
|
+
toolInput && (React.createElement(ToolbarInput, { exit: () => {
|
|
104
|
+
const { currentSelection } = toolInput;
|
|
105
|
+
if (currentSelection) {
|
|
106
|
+
Transforms.select(editor, currentSelection);
|
|
107
|
+
}
|
|
108
|
+
ReactEditor.focus(editor);
|
|
109
|
+
setToolInput(undefined);
|
|
110
|
+
}, toolInput: toolInput }))))));
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
export { Toolbar as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { IconProps } from '@quadrats/react/components';
|
|
3
3
|
export interface ToolbarIconProps extends Omit<IconProps, 'ref'> {
|
|
4
4
|
active?: boolean;
|
|
5
5
|
}
|
|
6
|
-
declare function ToolbarIcon(props: ToolbarIconProps): JSX.Element;
|
|
6
|
+
declare function ToolbarIcon(props: ToolbarIconProps): React.JSX.Element;
|
|
7
7
|
export default ToolbarIcon;
|
|
@@ -3,12 +3,12 @@ import React from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { Icon } from '@quadrats/react/components';
|
|
5
5
|
|
|
6
|
-
function ToolbarIcon(props) {
|
|
7
|
-
const { active, className, onMouseDown } = props, rest = __rest(props, ["active", "className", "onMouseDown"]);
|
|
8
|
-
return (React.createElement(Icon, Object.assign({}, rest, { className: clsx('qdr-toolbar__icon', { 'qdr-toolbar__icon--active': active }, className), onMouseDown: (event) => {
|
|
9
|
-
event.preventDefault();
|
|
10
|
-
onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event);
|
|
11
|
-
} })));
|
|
6
|
+
function ToolbarIcon(props) {
|
|
7
|
+
const { active, className, onMouseDown } = props, rest = __rest(props, ["active", "className", "onMouseDown"]);
|
|
8
|
+
return (React.createElement(Icon, Object.assign({}, rest, { className: clsx('qdr-toolbar__icon', { 'qdr-toolbar__icon--active': active }, className), onMouseDown: (event) => {
|
|
9
|
+
event.preventDefault();
|
|
10
|
+
onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event);
|
|
11
|
+
} })));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export { ToolbarIcon as default };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ToolInputConfig } from '../typings';
|
|
3
3
|
export interface ToolbarInputProps {
|
|
4
4
|
exit: VoidFunction;
|
|
5
5
|
toolInput: ToolInputConfig;
|
|
6
6
|
}
|
|
7
|
-
declare function ToolbarInput({ exit, toolInput }: ToolbarInputProps): JSX.Element;
|
|
7
|
+
declare function ToolbarInput({ exit, toolInput }: ToolbarInputProps): React.JSX.Element;
|
|
8
8
|
export default ToolbarInput;
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useLocale } from '@quadrats/react';
|
|
3
3
|
|
|
4
|
-
function ToolbarInput({ exit, toolInput }) {
|
|
5
|
-
const { confirm, getPlaceholder } = toolInput;
|
|
6
|
-
const onExit = (event) => {
|
|
7
|
-
event.preventDefault();
|
|
8
|
-
exit();
|
|
9
|
-
};
|
|
10
|
-
const onKeyDown = (event) => {
|
|
11
|
-
const isEnter = event.key === 'Enter';
|
|
12
|
-
if (isEnter || event.key === 'Escape') {
|
|
13
|
-
onExit(event);
|
|
14
|
-
if (isEnter) {
|
|
15
|
-
confirm(event.target.value);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
const locale = useLocale();
|
|
20
|
-
const placeholder = getPlaceholder(locale);
|
|
21
|
-
return (React.createElement("div", { className: "qdr-toolbar__input__wrapper" },
|
|
22
|
-
React.createElement("input", { defaultValue: toolInput.defaultValue, autoFocus: true, className: "qdr-toolbar__input", placeholder: placeholder, onKeyDown: onKeyDown, onBlur: exit }),
|
|
23
|
-
React.createElement("svg", { className: "qdr-toolbar__input__cross", viewBox: "0 0 320 512", onMouseDown: onExit },
|
|
24
|
-
React.createElement("path", {
|
|
25
|
-
// eslint-disable-next-line max-len
|
|
26
|
-
d: "M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z" }))));
|
|
4
|
+
function ToolbarInput({ exit, toolInput }) {
|
|
5
|
+
const { confirm, getPlaceholder } = toolInput;
|
|
6
|
+
const onExit = (event) => {
|
|
7
|
+
event.preventDefault();
|
|
8
|
+
exit();
|
|
9
|
+
};
|
|
10
|
+
const onKeyDown = (event) => {
|
|
11
|
+
const isEnter = event.key === 'Enter';
|
|
12
|
+
if (isEnter || event.key === 'Escape') {
|
|
13
|
+
onExit(event);
|
|
14
|
+
if (isEnter) {
|
|
15
|
+
confirm(event.target.value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const locale = useLocale();
|
|
20
|
+
const placeholder = getPlaceholder(locale);
|
|
21
|
+
return (React.createElement("div", { className: "qdr-toolbar__input__wrapper" },
|
|
22
|
+
React.createElement("input", { defaultValue: toolInput.defaultValue, autoFocus: true, className: "qdr-toolbar__input", placeholder: placeholder, onKeyDown: onKeyDown, onBlur: exit }),
|
|
23
|
+
React.createElement("svg", { className: "qdr-toolbar__input__cross", viewBox: "0 0 320 512", onMouseDown: onExit },
|
|
24
|
+
React.createElement("path", {
|
|
25
|
+
// eslint-disable-next-line max-len
|
|
26
|
+
d: "M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z" }))));
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export { ToolbarInput as default };
|
package/toolbar/constants.d.ts
CHANGED
package/toolbar/constants.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* A react element constant of toolbar divider.
|
|
5
|
-
*/
|
|
3
|
+
/**
|
|
4
|
+
* A react element constant of toolbar divider.
|
|
5
|
+
*/
|
|
6
6
|
const TOOLBAR_DIVIDER = React.createElement("span", { className: "qdr-toolbar__divider" });
|
|
7
7
|
|
|
8
8
|
export { TOOLBAR_DIVIDER };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useContext } from 'react';
|
|
2
2
|
import { StartToolInputContext } from '../contexts/StartToolInputContext.js';
|
|
3
3
|
|
|
4
|
-
function useStartToolInput() {
|
|
5
|
-
return useContext(StartToolInputContext);
|
|
4
|
+
function useStartToolInput() {
|
|
5
|
+
return useContext(StartToolInputContext);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export { useStartToolInput };
|