@quadrats/react 0.1.0 → 0.4.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.
Files changed (243) hide show
  1. package/bold/createReactBold.d.ts +1 -1
  2. package/bold/createReactBold.js +5 -5
  3. package/bold/defaultRenderBold.d.ts +1 -1
  4. package/bold/defaultRenderBold.js +1 -1
  5. package/bold/index.cjs.js +5 -5
  6. package/bold/jsx-serializer/createJsxSerializeBold.d.ts +1 -1
  7. package/bold/jsx-serializer/createJsxSerializeBold.js +2 -2
  8. package/bold/jsx-serializer/index.cjs.js +1 -1
  9. package/components/Icon/index.d.ts +1 -1
  10. package/components/Icon/index.js +1 -1
  11. package/components/Portal/index.js +1 -1
  12. package/components/Progress/index.js +1 -1
  13. package/components/Tooltip/index.js +3 -3
  14. package/components/index.cjs.js +1 -1
  15. package/configs/ConfigsProvider.js +1 -1
  16. package/configs/index.cjs.js +1 -1
  17. package/core/components/DefaultElement.js +1 -1
  18. package/core/components/DefaultLeaf.js +1 -1
  19. package/core/components/Editable.js +3 -3
  20. package/core/components/Quadrats.js +3 -3
  21. package/core/composeRenderElements.js +1 -1
  22. package/core/composeRenderLeafs.js +1 -1
  23. package/core/createRenderMark.d.ts +1 -1
  24. package/divider/createReactDivider.js +1 -1
  25. package/divider/index.cjs.js +1 -1
  26. package/divider/jsx-serializer/createJsxSerializeDivider.js +1 -1
  27. package/divider/jsx-serializer/index.cjs.js +1 -1
  28. package/divider/toolbar/DividerToolbarIcon.js +2 -2
  29. package/divider/toolbar/index.cjs.js +1 -1
  30. package/embed/components/VideoIframe.js +1 -1
  31. package/embed/createReactEmbed.js +1 -1
  32. package/embed/index.cjs.js +1 -1
  33. package/embed/index.js +1 -1
  34. package/embed/jsx-serializer/facebook/index.cjs.js +3 -3
  35. package/embed/jsx-serializer/instagram/index.cjs.js +3 -3
  36. package/embed/jsx-serializer/twitter/index.cjs.js +3 -3
  37. package/embed/jsx-serializer/vimeo/index.cjs.js +3 -3
  38. package/embed/jsx-serializer/youtube/index.cjs.js +3 -3
  39. package/embed/renderers/facebook/components/Facebook.js +1 -1
  40. package/embed/renderers/facebook/index.cjs.js +1 -1
  41. package/embed/renderers/instagram/components/Instagram.js +1 -1
  42. package/embed/renderers/instagram/index.cjs.js +1 -1
  43. package/embed/renderers/podcast-apple/components/PodcastApple.d.ts +11 -0
  44. package/embed/renderers/podcast-apple/components/PodcastApple.js +12 -0
  45. package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.d.ts +3 -0
  46. package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.js +6 -0
  47. package/embed/renderers/podcast-apple/index.cjs.js +23 -0
  48. package/embed/renderers/podcast-apple/index.d.ts +2 -0
  49. package/embed/renderers/podcast-apple/index.js +2 -0
  50. package/{blockquote/jsx-serializer → embed/renderers/podcast-apple}/package.json +1 -1
  51. package/embed/renderers/spotify/components/Spotify.d.ts +11 -0
  52. package/embed/renderers/spotify/components/Spotify.js +16 -0
  53. package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.d.ts +3 -0
  54. package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.js +6 -0
  55. package/embed/renderers/spotify/index.cjs.js +27 -0
  56. package/embed/renderers/spotify/index.d.ts +2 -0
  57. package/embed/renderers/spotify/index.js +2 -0
  58. package/{heading/jsx-serializer → embed/renderers/spotify}/package.json +1 -1
  59. package/embed/renderers/twitter/components/Twitter.js +2 -2
  60. package/embed/renderers/twitter/index.cjs.js +1 -1
  61. package/embed/renderers/vimeo/index.cjs.js +1 -1
  62. package/embed/renderers/youtube/index.cjs.js +1 -1
  63. package/embed/toolbar/EmbedToolbarIcon.js +3 -3
  64. package/embed/toolbar/index.cjs.js +1 -1
  65. package/file-uploader/components/FileUploader.js +2 -2
  66. package/file-uploader/createReactFileUploader.js +1 -1
  67. package/file-uploader/index.cjs.js +1 -1
  68. package/file-uploader/toolbar/FileUploaderToolbarIcon.js +2 -2
  69. package/file-uploader/toolbar/index.cjs.js +1 -1
  70. package/footnote/createReactFootnote.d.ts +4 -0
  71. package/footnote/createReactFootnote.js +24 -0
  72. package/footnote/defaultRenderFootnoteElement.d.ts +9 -0
  73. package/footnote/defaultRenderFootnoteElement.js +15 -0
  74. package/footnote/index.cjs.js +45 -0
  75. package/footnote/index.d.ts +3 -0
  76. package/footnote/index.js +2 -0
  77. package/footnote/jsx-serializer/createJsxSerializeFootnote.d.ts +5 -0
  78. package/footnote/jsx-serializer/createJsxSerializeFootnote.js +11 -0
  79. package/footnote/jsx-serializer/defaultRenderFootnoteElement.d.ts +3 -0
  80. package/footnote/jsx-serializer/defaultRenderFootnoteElement.js +10 -0
  81. package/footnote/jsx-serializer/index.cjs.js +27 -0
  82. package/footnote/jsx-serializer/index.d.ts +3 -0
  83. package/footnote/jsx-serializer/index.js +2 -0
  84. package/{blockquote → footnote/jsx-serializer}/package.json +1 -1
  85. package/footnote/jsx-serializer/typings.d.ts +3 -0
  86. package/{heading → footnote}/package.json +1 -1
  87. package/footnote/typings.d.ts +9 -0
  88. package/highlight/createReactHighlight.d.ts +1 -1
  89. package/highlight/createReactHighlight.js +5 -5
  90. package/highlight/defaultRenderHighlight.d.ts +1 -1
  91. package/highlight/defaultRenderHighlight.js +1 -1
  92. package/highlight/index.cjs.js +5 -5
  93. package/highlight/jsx-serializer/createJsxSerializeHighlight.d.ts +1 -1
  94. package/highlight/jsx-serializer/createJsxSerializeHighlight.js +2 -2
  95. package/highlight/jsx-serializer/index.cjs.js +1 -1
  96. package/image/components/Image.js +2 -2
  97. package/image/components/ImageCaption.js +2 -2
  98. package/image/components/ImageFigure.js +1 -1
  99. package/image/createReactImage.js +3 -3
  100. package/image/index.cjs.js +1 -1
  101. package/image/index.js +2 -2
  102. package/image/jsx-serializer/createJsxSerializeImage.js +1 -1
  103. package/image/jsx-serializer/index.cjs.js +1 -1
  104. package/index.cjs.js +4 -4
  105. package/index.js +1 -1
  106. package/input-block/components/InputBlock.js +1 -1
  107. package/input-block/createReactInputBlock.js +1 -1
  108. package/input-block/index.cjs.js +1 -1
  109. package/italic/createReactItalic.d.ts +1 -1
  110. package/italic/createReactItalic.js +5 -5
  111. package/italic/defaultRenderItalic.d.ts +1 -1
  112. package/italic/defaultRenderItalic.js +1 -1
  113. package/italic/index.cjs.js +5 -5
  114. package/italic/jsx-serializer/createJsxSerializeItalic.d.ts +1 -1
  115. package/italic/jsx-serializer/createJsxSerializeItalic.js +2 -2
  116. package/italic/jsx-serializer/index.cjs.js +1 -1
  117. package/jsx-serializer/createJsxSerializeMark.d.ts +1 -1
  118. package/jsx-serializer/createJsxSerializer.js +1 -1
  119. package/jsx-serializer/index.cjs.js +1 -1
  120. package/{break → line-break}/commonBreak.d.ts +0 -0
  121. package/{break → line-break}/commonBreak.js +0 -0
  122. package/{break → line-break}/createOnKeyDownBreak.d.ts +0 -0
  123. package/{break → line-break}/createOnKeyDownBreak.js +0 -0
  124. package/line-break/createReactLineBreak.d.ts +4 -0
  125. package/line-break/createReactLineBreak.js +14 -0
  126. package/line-break/defaultRenderLineBreakElement.d.ts +3 -0
  127. package/line-break/defaultRenderLineBreakElement.js +6 -0
  128. package/{break → line-break}/index.cjs.js +20 -1
  129. package/line-break/index.d.ts +5 -0
  130. package/{break → line-break}/index.js +2 -0
  131. package/line-break/line-break.css +1 -0
  132. package/line-break/line-break.scss +22 -0
  133. package/line-break/package.json +10 -0
  134. package/line-break/renderLineBreakElementWithSymbol.d.ts +3 -0
  135. package/line-break/renderLineBreakElementWithSymbol.js +6 -0
  136. package/line-break/typings.d.ts +32 -0
  137. package/link/createReactLink.js +1 -1
  138. package/link/defaultRenderLinkElement.d.ts +1 -1
  139. package/link/index.cjs.js +1 -1
  140. package/link/jsx-serializer/createJsxSerializeLink.js +1 -1
  141. package/link/jsx-serializer/index.cjs.js +1 -1
  142. package/link/toolbar/LinkToolbarIcon.js +3 -3
  143. package/link/toolbar/UnlinkToolbarIcon.js +3 -3
  144. package/link/toolbar/index.cjs.js +1 -1
  145. package/list/createReactList.js +1 -1
  146. package/list/index.cjs.js +1 -1
  147. package/list/jsx-serializer/createJsxSerializeList.js +1 -1
  148. package/list/toolbar/ListToolbarIcon.js +2 -2
  149. package/list/toolbar/index.cjs.js +1 -1
  150. package/package.json +7 -7
  151. package/paragraph/createRenderParagraphElement.js +1 -1
  152. package/paragraph/defaultRenderParagraphElement.js +1 -1
  153. package/paragraph/index.cjs.js +5 -2
  154. package/paragraph/index.d.ts +1 -0
  155. package/paragraph/index.js +1 -0
  156. package/paragraph/jsx-serializer/createJsxSerializeParagraph.js +1 -1
  157. package/paragraph/package.json +4 -1
  158. package/paragraph/paragraph.css +1 -0
  159. package/paragraph/paragraph.scss +24 -0
  160. package/{blockquote/defaultRenderBlockquoteElement.d.ts → paragraph/renderParagraphElementWithSymbol.d.ts} +2 -2
  161. package/paragraph/renderParagraphElementWithSymbol.js +5 -0
  162. package/read-more/components/ReadMore.js +1 -1
  163. package/read-more/createReactReadMore.js +1 -1
  164. package/read-more/index.cjs.js +1 -1
  165. package/read-more/jsx-serializer/createJsxSerializeReadMore.js +1 -1
  166. package/read-more/toolbar/ReadMoreToolbarIcon.js +2 -2
  167. package/read-more/toolbar/index.cjs.js +1 -1
  168. package/strikethrough/createReactStrikethrough.d.ts +1 -1
  169. package/strikethrough/createReactStrikethrough.js +5 -5
  170. package/strikethrough/defaultRenderStrikethrough.d.ts +1 -1
  171. package/strikethrough/defaultRenderStrikethrough.js +1 -1
  172. package/strikethrough/index.cjs.js +5 -5
  173. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.d.ts +1 -1
  174. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.js +2 -2
  175. package/strikethrough/jsx-serializer/index.cjs.js +1 -1
  176. package/toggle-mark/index.cjs.js +1 -1
  177. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.d.ts +1 -1
  178. package/toggle-mark/toolbar/ToggleMarkToolbarIcon.js +2 -2
  179. package/toggle-mark/toolbar/index.cjs.js +1 -1
  180. package/toolbar/components/Toolbar.js +1 -1
  181. package/toolbar/components/ToolbarIcon.js +2 -2
  182. package/toolbar/components/ToolbarInput.js +2 -2
  183. package/toolbar/index.cjs.js +2 -2
  184. package/underline/createReactUnderline.d.ts +1 -1
  185. package/underline/createReactUnderline.js +5 -5
  186. package/underline/defaultRenderUnderline.d.ts +1 -1
  187. package/underline/defaultRenderUnderline.js +1 -1
  188. package/underline/index.cjs.js +5 -5
  189. package/underline/jsx-serializer/createJsxSerializeUnderline.d.ts +1 -1
  190. package/underline/jsx-serializer/createJsxSerializeUnderline.js +2 -2
  191. package/underline/jsx-serializer/index.cjs.js +1 -1
  192. package/blockquote/constants.d.ts +0 -6
  193. package/blockquote/constants.js +0 -8
  194. package/blockquote/createReactBlockquote.d.ts +0 -4
  195. package/blockquote/createReactBlockquote.js +0 -35
  196. package/blockquote/defaultRenderBlockquoteElement.js +0 -5
  197. package/blockquote/index.cjs.js +0 -54
  198. package/blockquote/index.d.ts +0 -4
  199. package/blockquote/index.js +0 -3
  200. package/blockquote/jsx-serializer/createJsxSerializeBlockquote.d.ts +0 -5
  201. package/blockquote/jsx-serializer/createJsxSerializeBlockquote.js +0 -10
  202. package/blockquote/jsx-serializer/defaultRenderBlockquoteElement.d.ts +0 -1
  203. package/blockquote/jsx-serializer/index.cjs.js +0 -15
  204. package/blockquote/jsx-serializer/index.d.ts +0 -3
  205. package/blockquote/jsx-serializer/index.js +0 -2
  206. package/blockquote/jsx-serializer/typings.d.ts +0 -3
  207. package/blockquote/toolbar/BlockquoteToolbarIcon.d.ts +0 -8
  208. package/blockquote/toolbar/BlockquoteToolbarIcon.js +0 -12
  209. package/blockquote/toolbar/index.cjs.js +0 -29
  210. package/blockquote/toolbar/index.d.ts +0 -2
  211. package/blockquote/toolbar/index.js +0 -2
  212. package/blockquote/toolbar/package.json +0 -7
  213. package/blockquote/toolbar/useBlockquoteTool.d.ts +0 -5
  214. package/blockquote/toolbar/useBlockquoteTool.js +0 -11
  215. package/blockquote/typings.d.ts +0 -15
  216. package/break/index.d.ts +0 -3
  217. package/break/package.json +0 -7
  218. package/break/typings.d.ts +0 -24
  219. package/heading/constants.d.ts +0 -9
  220. package/heading/constants.js +0 -11
  221. package/heading/createReactHeading.d.ts +0 -4
  222. package/heading/createReactHeading.js +0 -47
  223. package/heading/defaultRenderHeadingElement.d.ts +0 -22
  224. package/heading/defaultRenderHeadingElement.js +0 -19
  225. package/heading/index.cjs.js +0 -83
  226. package/heading/index.d.ts +0 -4
  227. package/heading/index.js +0 -3
  228. package/heading/jsx-serializer/createJsxSerializeHeading.d.ts +0 -5
  229. package/heading/jsx-serializer/createJsxSerializeHeading.js +0 -10
  230. package/heading/jsx-serializer/defaultRenderHeadingElement.d.ts +0 -1
  231. package/heading/jsx-serializer/index.cjs.js +0 -15
  232. package/heading/jsx-serializer/index.d.ts +0 -3
  233. package/heading/jsx-serializer/index.js +0 -2
  234. package/heading/jsx-serializer/typings.d.ts +0 -3
  235. package/heading/toolbar/HeadingToolbarIcon.d.ts +0 -10
  236. package/heading/toolbar/HeadingToolbarIcon.js +0 -12
  237. package/heading/toolbar/index.cjs.js +0 -29
  238. package/heading/toolbar/index.d.ts +0 -2
  239. package/heading/toolbar/index.js +0 -2
  240. package/heading/toolbar/package.json +0 -7
  241. package/heading/toolbar/useToggleHeadingTool.d.ts +0 -6
  242. package/heading/toolbar/useToggleHeadingTool.js +0 -11
  243. package/heading/typings.d.ts +0 -15
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var react = require('@quadrats/react');
6
- var tslib = require('tslib');
7
- var React = require('react');
8
- var toolbar = require('@quadrats/react/toolbar');
9
-
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
11
-
12
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
-
14
- function useBlockquoteTool(controller) {
15
- const editor = react.useQuadrats();
16
- return {
17
- active: controller.isSelectionInBlockquote(editor),
18
- onClick: () => controller.toggleBlockquote(editor),
19
- };
20
- }
21
-
22
- function BlockquoteToolbarIcon(props) {
23
- const { controller } = props, rest = tslib.__rest(props, ["controller"]);
24
- const { active, onClick } = useBlockquoteTool(controller);
25
- return React__default.createElement(toolbar.ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
26
- }
27
-
28
- exports.BlockquoteToolbarIcon = BlockquoteToolbarIcon;
29
- exports.useBlockquoteTool = useBlockquoteTool;
@@ -1,2 +0,0 @@
1
- export { useBlockquoteTool } from './useBlockquoteTool';
2
- export { BlockquoteToolbarIconProps, default as BlockquoteToolbarIcon } from './BlockquoteToolbarIcon';
@@ -1,2 +0,0 @@
1
- export { useBlockquoteTool } from './useBlockquoteTool.js';
2
- export { default as BlockquoteToolbarIcon } from './BlockquoteToolbarIcon.js';
@@ -1,7 +0,0 @@
1
- {
2
- "name": "@quadrats/react/blockquote/toolbar",
3
- "sideEffects": false,
4
- "main": "./index.cjs.js",
5
- "module": "./index.js",
6
- "typings": "./index.d.ts"
7
- }
@@ -1,5 +0,0 @@
1
- import { ReactBlockquote } from '@quadrats/react/blockquote';
2
- export declare function useBlockquoteTool(controller: ReactBlockquote): {
3
- active: boolean;
4
- onClick: () => void;
5
- };
@@ -1,11 +0,0 @@
1
- import { useQuadrats } from '@quadrats/react';
2
-
3
- function useBlockquoteTool(controller) {
4
- const editor = useQuadrats();
5
- return {
6
- active: controller.isSelectionInBlockquote(editor),
7
- onClick: () => controller.toggleBlockquote(editor),
8
- };
9
- }
10
-
11
- export { useBlockquoteTool };
@@ -1,15 +0,0 @@
1
- /// <reference types="react" />
2
- import { BlockquoteElement, Blockquote } from '@quadrats/common/blockquote';
3
- import { WithCreateHandlers, WithCreateRenderElement, RenderElementProps } from '@quadrats/react';
4
- export declare type RenderBlockquoteElementProps = RenderElementProps<BlockquoteElement>;
5
- export interface ReactBlockquoteCreateHandlersOptions {
6
- /**
7
- * The hotkey to toggle blockquote.
8
- */
9
- hotkey?: string;
10
- }
11
- export interface ReactBlockquoteCreateRenderElementOptions {
12
- render?: (props: RenderBlockquoteElementProps) => JSX.Element | null | undefined;
13
- }
14
- export interface ReactBlockquote extends Blockquote, WithCreateHandlers<[ReactBlockquoteCreateHandlersOptions?]>, WithCreateRenderElement<[ReactBlockquoteCreateRenderElementOptions?]> {
15
- }
package/break/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './typings';
2
- export { CreateOnKeyDownBreakOptions, createOnKeyDownBreak } from './createOnKeyDownBreak';
3
- export * from './commonBreak';
@@ -1,7 +0,0 @@
1
- {
2
- "name": "@quadrats/react/break",
3
- "sideEffects": false,
4
- "main": "./index.cjs.js",
5
- "module": "./index.js",
6
- "typings": "./index.d.ts"
7
- }
@@ -1,24 +0,0 @@
1
- import { IsNodeMatchOptions } from '@quadrats/core';
2
- export interface ExitBreakRule {
3
- hotkey: string;
4
- /**
5
- * @default ParagraphType
6
- */
7
- defaultType?: string;
8
- match?: IsNodeMatchOptions & {
9
- /**
10
- * Only match at if selection on edge of block.
11
- * @default false
12
- */
13
- onlyAtEdge?: boolean;
14
- };
15
- /**
16
- * Exit before the selected block if true.
17
- * @default false
18
- */
19
- before?: boolean;
20
- }
21
- export interface SoftBreakRule {
22
- hotkey: string;
23
- match?: IsNodeMatchOptions;
24
- }
@@ -1,9 +0,0 @@
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
- export declare const HEADING_HOTKEY = "ctrl+opt";
@@ -1,11 +0,0 @@
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
- const HEADING_HOTKEY = 'ctrl+opt';
10
-
11
- export { HEADING_HOTKEY };
@@ -1,4 +0,0 @@
1
- import { CreateHeadingOptions, HeadingLevel } from '@quadrats/common/heading';
2
- import { ReactHeading } from './typings';
3
- export declare type CreateReactHeadingOptions<L extends HeadingLevel> = CreateHeadingOptions<L>;
4
- export declare function createReactHeading<L extends HeadingLevel = HeadingLevel>(options?: CreateReactHeadingOptions<L>): ReactHeading<L>;
@@ -1,47 +0,0 @@
1
- import { HEADING_HOTKEY } from './constants.js';
2
- import { defaultRenderHeadingElement } from './defaultRenderHeadingElement.js';
3
- import isHotkey from 'is-hotkey';
4
- import { createHeading } from '@quadrats/common/heading';
5
- import { createRenderElement } from '@quadrats/react';
6
- import { createOnKeyDownBreak } from '@quadrats/react/break';
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 }) });
45
- }
46
-
47
- export { createReactHeading };
@@ -1,22 +0,0 @@
1
- /// <reference types="react" />
2
- import { HeadingElement } from '@quadrats/common/heading';
3
- import { RenderElementProps } from '@quadrats/react';
4
- export declare const HEADING_COMPONENTS: {
5
- readonly 1: "h1";
6
- readonly 2: "h2";
7
- readonly 3: "h3";
8
- readonly 4: "h4";
9
- readonly 5: "h5";
10
- readonly 6: "h6";
11
- };
12
- export declare const defaultRenderHeadingElement: ({ attributes, children, element, }: {
13
- attributes?: {
14
- 'data-slate-node': "element";
15
- 'data-slate-inline'?: true | undefined;
16
- 'data-slate-void'?: true | undefined;
17
- dir?: "rtl" | undefined;
18
- ref: any;
19
- } | undefined;
20
- children: RenderElementProps['children'];
21
- element: HeadingElement;
22
- }) => JSX.Element | null;
@@ -1,19 +0,0 @@
1
- import React from 'react';
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), children);
17
- };
18
-
19
- export { HEADING_COMPONENTS, defaultRenderHeadingElement };
@@ -1,83 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var isHotkey = require('is-hotkey');
7
- var heading = require('@quadrats/common/heading');
8
- var react = require('@quadrats/react');
9
- var _break = require('@quadrats/react/break');
10
-
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
12
-
13
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
- var isHotkey__default = /*#__PURE__*/_interopDefaultLegacy(isHotkey);
15
-
16
- /**
17
- * Default hotkey for toggling heading.
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
- */
24
- const HEADING_HOTKEY = 'ctrl+opt';
25
-
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 React__default.createElement(Component, Object.assign({}, attributes), children);
40
- };
41
-
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 = _break.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) && isHotkey__default(hotkey, event)) {
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 }) });
79
- }
80
-
81
- exports.HEADING_HOTKEY = HEADING_HOTKEY;
82
- exports.createReactHeading = createReactHeading;
83
- exports.defaultRenderHeadingElement = defaultRenderHeadingElement;
@@ -1,4 +0,0 @@
1
- export * from './typings';
2
- export { HEADING_HOTKEY } from './constants';
3
- export { defaultRenderHeadingElement } from './defaultRenderHeadingElement';
4
- export { CreateReactHeadingOptions, createReactHeading } from './createReactHeading';
package/heading/index.js DELETED
@@ -1,3 +0,0 @@
1
- export { HEADING_HOTKEY } from './constants.js';
2
- export { defaultRenderHeadingElement } from './defaultRenderHeadingElement.js';
3
- export { createReactHeading } from './createReactHeading.js';
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
3
- import { JsxSerializeHeadingElementProps } from './typings';
4
- export declare type CreateJsxSerializeHeadingOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeHeadingElementProps>>;
5
- export declare function createJsxSerializeHeading(options?: CreateJsxSerializeHeadingOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps<import("slate").Element>) => JSX.Element | null | undefined;
@@ -1,10 +0,0 @@
1
- import { defaultRenderHeadingElement } from '@quadrats/react/heading';
2
- import { HEADING_TYPE } from '@quadrats/common/heading';
3
- import { createJsxSerializeElement } from '@quadrats/react/jsx-serializer';
4
-
5
- function createJsxSerializeHeading(options = {}) {
6
- const { type = HEADING_TYPE, render = defaultRenderHeadingElement } = options;
7
- return createJsxSerializeElement({ type, render });
8
- }
9
-
10
- export { createJsxSerializeHeading };
@@ -1 +0,0 @@
1
- export { defaultRenderHeadingElement } from '@quadrats/react/heading';
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var heading = require('@quadrats/react/heading');
6
- var heading$1 = require('@quadrats/common/heading');
7
- var jsxSerializer = require('@quadrats/react/jsx-serializer');
8
-
9
- function createJsxSerializeHeading(options = {}) {
10
- const { type = heading$1.HEADING_TYPE, render = heading.defaultRenderHeadingElement } = options;
11
- return jsxSerializer.createJsxSerializeElement({ type, render });
12
- }
13
-
14
- exports.defaultRenderHeadingElement = heading.defaultRenderHeadingElement;
15
- exports.createJsxSerializeHeading = createJsxSerializeHeading;
@@ -1,3 +0,0 @@
1
- export * from './typings';
2
- export { defaultRenderHeadingElement } from './defaultRenderHeadingElement';
3
- export { CreateJsxSerializeHeadingOptions, createJsxSerializeHeading } from './createJsxSerializeHeading';
@@ -1,2 +0,0 @@
1
- export { defaultRenderHeadingElement } from '@quadrats/react/heading';
2
- export { createJsxSerializeHeading } from './createJsxSerializeHeading.js';
@@ -1,3 +0,0 @@
1
- import { HeadingElement } from '@quadrats/common/heading';
2
- import { JsxSerializeElementProps } from '@quadrats/react/jsx-serializer';
3
- export declare type JsxSerializeHeadingElementProps = JsxSerializeElementProps<HeadingElement>;
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { HeadingLevel } from '@quadrats/common/heading';
3
- import { ReactHeading } from '@quadrats/react/heading';
4
- import { ToolbarIconProps } from '@quadrats/react/toolbar';
5
- export interface HeadingToolbarIconProps<Level extends HeadingLevel, ValidLevel extends Level> extends Omit<ToolbarIconProps, 'active' | 'onClick'> {
6
- controller: ReactHeading<Level>;
7
- level: ValidLevel;
8
- }
9
- declare function HeadingToolbarIcon<Level extends HeadingLevel, ValidLevel extends Level>(props: HeadingToolbarIconProps<Level, ValidLevel>): JSX.Element;
10
- export default HeadingToolbarIcon;
@@ -1,12 +0,0 @@
1
- import { useToggleHeadingTool } from './useToggleHeadingTool.js';
2
- import { __rest } from 'tslib';
3
- import React from 'react';
4
- import { ToolbarIcon } from '@quadrats/react/toolbar';
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 }));
10
- }
11
-
12
- export default HeadingToolbarIcon;
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var react = require('@quadrats/react');
6
- var tslib = require('tslib');
7
- var React = require('react');
8
- var toolbar = require('@quadrats/react/toolbar');
9
-
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
11
-
12
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
-
14
- function useToggleHeadingTool(controller, level) {
15
- const editor = react.useQuadrats();
16
- return {
17
- active: controller.isSelectionInHeading(editor, level),
18
- onClick: () => controller.toggleHeadingNodes(editor, level),
19
- };
20
- }
21
-
22
- function HeadingToolbarIcon(props) {
23
- const { controller, level } = props, rest = tslib.__rest(props, ["controller", "level"]);
24
- const { active, onClick } = useToggleHeadingTool(controller, level);
25
- return React__default.createElement(toolbar.ToolbarIcon, Object.assign({}, rest, { active: active, onClick: onClick }));
26
- }
27
-
28
- exports.HeadingToolbarIcon = HeadingToolbarIcon;
29
- exports.useToggleHeadingTool = useToggleHeadingTool;
@@ -1,2 +0,0 @@
1
- export * from './useToggleHeadingTool';
2
- export { HeadingToolbarIconProps, default as HeadingToolbarIcon } from './HeadingToolbarIcon';
@@ -1,2 +0,0 @@
1
- export { useToggleHeadingTool } from './useToggleHeadingTool.js';
2
- export { default as HeadingToolbarIcon } from './HeadingToolbarIcon.js';
@@ -1,7 +0,0 @@
1
- {
2
- "name": "@quadrats/react/heading/toolbar",
3
- "sideEffects": false,
4
- "main": "./index.cjs.js",
5
- "module": "./index.js",
6
- "typings": "./index.d.ts"
7
- }
@@ -1,6 +0,0 @@
1
- import { HeadingLevel } from '@quadrats/common/heading';
2
- import { ReactHeading } from '@quadrats/react/heading';
3
- export declare function useToggleHeadingTool<Level extends HeadingLevel, ValidLevel extends Level>(controller: ReactHeading<Level>, level: ValidLevel): {
4
- active: boolean;
5
- onClick: () => void;
6
- };
@@ -1,11 +0,0 @@
1
- import { useQuadrats } from '@quadrats/react';
2
-
3
- function useToggleHeadingTool(controller, level) {
4
- const editor = useQuadrats();
5
- return {
6
- active: controller.isSelectionInHeading(editor, level),
7
- onClick: () => controller.toggleHeadingNodes(editor, level),
8
- };
9
- }
10
-
11
- export { useToggleHeadingTool };
@@ -1,15 +0,0 @@
1
- /// <reference types="react" />
2
- import { Heading, HeadingElement, HeadingLevel } from '@quadrats/common/heading';
3
- import { WithCreateHandlers, WithCreateRenderElement, RenderElementProps } from '@quadrats/react';
4
- export declare type RenderHeadingElementProps = RenderElementProps<HeadingElement>;
5
- export interface ReactHeadingCreateHandlersOptions {
6
- /**
7
- * The hotkey to toggle heading w/ specific level.
8
- */
9
- hotkey?: string;
10
- }
11
- export interface ReactHeadingCreateRenderElementOptions {
12
- render?: (props: RenderHeadingElementProps) => JSX.Element | null | undefined;
13
- }
14
- export interface ReactHeading<Level extends HeadingLevel> extends Heading<Level>, WithCreateHandlers<[ReactHeadingCreateHandlersOptions?]>, WithCreateRenderElement<[ReactHeadingCreateRenderElementOptions?]> {
15
- }