@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.
Files changed (334) hide show
  1. package/_internal/index.cjs.js +42 -44
  2. package/_internal/renderer/composeRenderElementsBase.js +10 -10
  3. package/_internal/renderer/composeRenderLeafsBase.js +8 -8
  4. package/_internal/renderer/createRenderElementBase.js +6 -6
  5. package/_internal/renderer/createRenderElementsBase.js +8 -8
  6. package/_internal/renderer/createRenderMarkBase.js +10 -10
  7. package/blockquote/constants.js +5 -5
  8. package/blockquote/createReactBlockquote.d.ts +1 -1
  9. package/blockquote/createReactBlockquote.js +58 -58
  10. package/blockquote/defaultRenderBlockquoteElement.d.ts +2 -2
  11. package/blockquote/index.cjs.js +64 -71
  12. package/blockquote/jsx-serializer/createJsxSerializeBlockquote.d.ts +2 -2
  13. package/blockquote/jsx-serializer/createJsxSerializeBlockquote.js +3 -3
  14. package/blockquote/jsx-serializer/index.cjs.js +3 -5
  15. package/blockquote/jsx-serializer/typings.d.ts +1 -1
  16. package/blockquote/toolbar/BlockquoteToolbarIcon.d.ts +2 -2
  17. package/blockquote/toolbar/BlockquoteToolbarIcon.js +4 -4
  18. package/blockquote/toolbar/index.cjs.js +10 -16
  19. package/blockquote/toolbar/useBlockquoteTool.js +6 -6
  20. package/blockquote/typings.d.ts +1 -1
  21. package/bold/constants.js +5 -5
  22. package/bold/createReactBold.d.ts +1 -1
  23. package/bold/createReactBold.js +3 -3
  24. package/bold/defaultRenderBold.d.ts +2 -2
  25. package/bold/defaultRenderBold.js +1 -1
  26. package/bold/index.cjs.js +9 -15
  27. package/bold/jsx-serializer/createJsxSerializeBold.js +3 -3
  28. package/bold/jsx-serializer/index.cjs.js +3 -5
  29. package/components/Icon/index.d.ts +1 -1
  30. package/components/Icon/index.js +15 -15
  31. package/components/Portal/index.d.ts +1 -0
  32. package/components/Portal/index.js +3 -3
  33. package/components/Progress/index.js +10 -10
  34. package/components/Tooltip/calculatePosition.js +66 -66
  35. package/components/Tooltip/index.d.ts +2 -2
  36. package/components/Tooltip/index.js +109 -109
  37. package/components/Tooltip/typings.d.ts +4 -4
  38. package/components/index.cjs.js +203 -211
  39. package/configs/ConfigsProvider.d.ts +2 -2
  40. package/configs/ConfigsProvider.js +7 -7
  41. package/configs/index.cjs.js +38 -44
  42. package/configs/locale.js +3 -3
  43. package/configs/theme.js +28 -28
  44. package/core/components/DefaultElement.d.ts +2 -2
  45. package/core/components/DefaultLeaf.d.ts +2 -2
  46. package/core/components/Editable.d.ts +3 -3
  47. package/core/components/Editable.js +41 -42
  48. package/core/components/Quadrats.d.ts +3 -3
  49. package/core/components/Quadrats.js +7 -7
  50. package/core/composeHandlers.js +30 -30
  51. package/core/composeRenderElements.d.ts +1 -1
  52. package/core/composeRenderElements.js +5 -5
  53. package/core/composeRenderLeafs.js +5 -5
  54. package/core/createReactEditor.js +2 -2
  55. package/core/createRenderElement.d.ts +1 -1
  56. package/core/createRenderElement.js +2 -2
  57. package/core/createRenderElements.d.ts +1 -1
  58. package/core/createRenderElements.js +2 -2
  59. package/core/createRenderMark.js +2 -2
  60. package/core/index.d.ts +6 -4
  61. package/core/index.js +11 -0
  62. package/core/typings/descendant.d.ts +1 -1
  63. package/core/typings/handler.d.ts +7 -7
  64. package/core/typings/renderer.d.ts +5 -5
  65. package/core/typings/with.d.ts +2 -2
  66. package/divider/createReactDivider.d.ts +1 -1
  67. package/divider/createReactDivider.js +4 -4
  68. package/divider/defaultRenderDividerElement.d.ts +2 -2
  69. package/divider/defaultRenderDividerElement.js +2 -2
  70. package/divider/index.cjs.js +6 -12
  71. package/divider/jsx-serializer/createJsxSerializeDivider.d.ts +2 -2
  72. package/divider/jsx-serializer/createJsxSerializeDivider.js +3 -3
  73. package/divider/jsx-serializer/defaultRenderDividerElement.d.ts +2 -2
  74. package/divider/jsx-serializer/index.cjs.js +4 -10
  75. package/divider/jsx-serializer/typings.d.ts +1 -1
  76. package/divider/toolbar/DividerToolbarIcon.d.ts +2 -2
  77. package/divider/toolbar/DividerToolbarIcon.js +4 -4
  78. package/divider/toolbar/index.cjs.js +9 -15
  79. package/divider/toolbar/useDividerTool.js +5 -5
  80. package/divider/typings.d.ts +1 -1
  81. package/embed/components/VideoIframe.d.ts +2 -2
  82. package/embed/components/VideoIframe.js +8 -8
  83. package/embed/createReactEmbed.d.ts +1 -1
  84. package/embed/createReactEmbed.js +7 -7
  85. package/embed/createRenderEmbedElementBase.js +9 -9
  86. package/embed/hooks/useVideoIframeSize.js +19 -19
  87. package/embed/index.cjs.js +43 -49
  88. package/embed/jsx-serializer/createJsxSerializeEmbed.d.ts +1 -1
  89. package/embed/jsx-serializer/createJsxSerializeEmbed.js +6 -6
  90. package/embed/jsx-serializer/facebook/index.cjs.js +2 -4
  91. package/embed/jsx-serializer/index.cjs.js +6 -8
  92. package/embed/jsx-serializer/instagram/index.cjs.js +2 -4
  93. package/embed/jsx-serializer/twitter/index.cjs.js +2 -4
  94. package/embed/jsx-serializer/vimeo/index.cjs.js +2 -4
  95. package/embed/jsx-serializer/youtube/index.cjs.js +2 -4
  96. package/embed/renderers/facebook/components/Facebook.d.ts +2 -2
  97. package/embed/renderers/facebook/components/Facebook.js +11 -11
  98. package/embed/renderers/facebook/defaultRenderFacebookEmbedElement.d.ts +2 -2
  99. package/embed/renderers/facebook/index.cjs.js +12 -18
  100. package/embed/renderers/instagram/components/Instagram.d.ts +2 -2
  101. package/embed/renderers/instagram/components/Instagram.js +18 -18
  102. package/embed/renderers/instagram/defaultRenderInstagramEmbedElement.d.ts +2 -2
  103. package/embed/renderers/instagram/hooks/useLoadInstagramEmbedApi.js +22 -22
  104. package/embed/renderers/instagram/index.cjs.js +41 -47
  105. package/embed/renderers/podcast-apple/components/PodcastApple.d.ts +2 -2
  106. package/embed/renderers/podcast-apple/components/PodcastApple.js +6 -6
  107. package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.d.ts +2 -2
  108. package/embed/renderers/podcast-apple/index.cjs.js +7 -13
  109. package/embed/renderers/spotify/components/Spotify.d.ts +2 -2
  110. package/embed/renderers/spotify/components/Spotify.js +10 -10
  111. package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.d.ts +2 -2
  112. package/embed/renderers/spotify/index.cjs.js +11 -17
  113. package/embed/renderers/twitter/components/Twitter.d.ts +2 -2
  114. package/embed/renderers/twitter/components/Twitter.js +5 -5
  115. package/embed/renderers/twitter/defaultRenderTwitterEmbedElement.d.ts +2 -2
  116. package/embed/renderers/twitter/hooks/useLoadTwitterEmbedApi.js +28 -28
  117. package/embed/renderers/twitter/index.cjs.js +34 -40
  118. package/embed/renderers/vimeo/defaultRenderVimeoEmbedElement.d.ts +2 -2
  119. package/embed/renderers/vimeo/index.cjs.js +1 -7
  120. package/embed/renderers/youtube/defaultRenderYoutubeEmbedElement.d.ts +2 -2
  121. package/embed/renderers/youtube/index.cjs.js +1 -7
  122. package/embed/toolbar/EmbedToolbarIcon.d.ts +2 -2
  123. package/embed/toolbar/EmbedToolbarIcon.js +4 -4
  124. package/embed/toolbar/index.cjs.js +16 -22
  125. package/embed/toolbar/useEmbedTool.js +12 -12
  126. package/embed/typings.d.ts +1 -1
  127. package/file-uploader/components/FileUploader.d.ts +2 -2
  128. package/file-uploader/components/FileUploader.js +7 -7
  129. package/file-uploader/createReactFileUploader.js +7 -7
  130. package/file-uploader/hooks/useFileUploader.js +7 -7
  131. package/file-uploader/index.cjs.js +22 -28
  132. package/file-uploader/toolbar/FileUploaderToolbarIcon.d.ts +2 -2
  133. package/file-uploader/toolbar/FileUploaderToolbarIcon.js +4 -4
  134. package/file-uploader/toolbar/index.cjs.js +9 -15
  135. package/file-uploader/toolbar/useFileUploaderTool.js +5 -5
  136. package/file-uploader/typings.d.ts +3 -3
  137. package/footnote/createReactFootnote.d.ts +1 -1
  138. package/footnote/createReactFootnote.js +6 -6
  139. package/footnote/defaultRenderFootnoteElement.d.ts +2 -2
  140. package/footnote/defaultRenderFootnoteElement.js +9 -9
  141. package/footnote/index.cjs.js +51 -57
  142. package/footnote/jsx-serializer/createJsxSerializeFootnote.d.ts +2 -2
  143. package/footnote/jsx-serializer/createJsxSerializeFootnote.js +4 -4
  144. package/footnote/jsx-serializer/defaultRenderFootnoteElement.d.ts +2 -2
  145. package/footnote/jsx-serializer/defaultRenderFootnoteElement.js +5 -5
  146. package/footnote/jsx-serializer/index.cjs.js +9 -15
  147. package/footnote/jsx-serializer/typings.d.ts +1 -1
  148. package/footnote/toolbar/FootnoteToolbarIcon.d.ts +2 -2
  149. package/footnote/toolbar/FootnoteToolbarIcon.js +4 -4
  150. package/footnote/toolbar/index.cjs.js +17 -23
  151. package/footnote/toolbar/useFootnoteTool.d.ts +1 -1
  152. package/footnote/toolbar/useFootnoteTool.js +13 -13
  153. package/footnote/typings.d.ts +1 -1
  154. package/footnote/useFootnotes.js +15 -15
  155. package/footnote/useFootnotesFromNodes.js +21 -21
  156. package/heading/constants.js +8 -8
  157. package/heading/createReactHeading.d.ts +1 -1
  158. package/heading/createReactHeading.js +37 -37
  159. package/heading/defaultRenderHeadingElement.d.ts +2 -2
  160. package/heading/defaultRenderHeadingElement.js +14 -14
  161. package/heading/index.cjs.js +59 -66
  162. package/heading/jsx-serializer/createJsxSerializeHeading.d.ts +2 -2
  163. package/heading/jsx-serializer/createJsxSerializeHeading.js +3 -3
  164. package/heading/jsx-serializer/index.cjs.js +3 -5
  165. package/heading/jsx-serializer/typings.d.ts +1 -1
  166. package/heading/toolbar/HeadingToolbarIcon.d.ts +2 -2
  167. package/heading/toolbar/HeadingToolbarIcon.js +4 -4
  168. package/heading/toolbar/index.cjs.js +10 -16
  169. package/heading/toolbar/useToggleHeadingTool.js +6 -6
  170. package/heading/typings.d.ts +1 -1
  171. package/highlight/constants.js +5 -5
  172. package/highlight/createReactHighlight.d.ts +1 -1
  173. package/highlight/createReactHighlight.js +3 -3
  174. package/highlight/defaultRenderHighlight.d.ts +2 -2
  175. package/highlight/defaultRenderHighlight.js +1 -1
  176. package/highlight/index.cjs.js +9 -15
  177. package/highlight/jsx-serializer/createJsxSerializeHighlight.d.ts +1 -1
  178. package/highlight/jsx-serializer/createJsxSerializeHighlight.js +4 -4
  179. package/highlight/jsx-serializer/index.cjs.js +4 -6
  180. package/image/components/Image.d.ts +2 -2
  181. package/image/components/Image.js +11 -11
  182. package/image/components/ImageCaption.d.ts +2 -2
  183. package/image/components/ImageCaption.js +13 -13
  184. package/image/components/ImageFigure.d.ts +2 -2
  185. package/image/components/ImageFigure.js +8 -8
  186. package/image/createReactImage.d.ts +1 -1
  187. package/image/createReactImage.js +94 -94
  188. package/image/defaultRenderImageElements.js +4 -4
  189. package/image/hooks/useImageResizer.js +89 -89
  190. package/image/image.css +1 -1
  191. package/image/index.cjs.js +219 -227
  192. package/image/jsx-serializer/createJsxSerializeImage.d.ts +2 -3
  193. package/image/jsx-serializer/createJsxSerializeImage.js +34 -34
  194. package/image/jsx-serializer/defaultRenderImageElements.js +4 -4
  195. package/image/jsx-serializer/index.cjs.js +38 -44
  196. package/image/jsx-serializer/typings.d.ts +1 -1
  197. package/image/typings.d.ts +3 -3
  198. package/index.cjs.js +103 -109
  199. package/index.js +3 -2
  200. package/input-block/components/InputBlock.d.ts +2 -2
  201. package/input-block/components/InputBlock.js +19 -19
  202. package/input-block/createReactInputBlock.d.ts +1 -1
  203. package/input-block/createReactInputBlock.js +10 -10
  204. package/input-block/hooks/useInputBlock.js +43 -43
  205. package/input-block/index.cjs.js +73 -79
  206. package/input-block/typings.d.ts +2 -2
  207. package/italic/constants.js +5 -5
  208. package/italic/createReactItalic.d.ts +1 -1
  209. package/italic/createReactItalic.js +3 -3
  210. package/italic/defaultRenderItalic.d.ts +2 -2
  211. package/italic/defaultRenderItalic.js +1 -1
  212. package/italic/index.cjs.js +9 -15
  213. package/italic/jsx-serializer/createJsxSerializeItalic.js +3 -3
  214. package/italic/jsx-serializer/index.cjs.js +3 -5
  215. package/jsx-serializer/createJsxSerializeElement.d.ts +1 -1
  216. package/jsx-serializer/createJsxSerializeElement.js +2 -2
  217. package/jsx-serializer/createJsxSerializeElements.d.ts +1 -1
  218. package/jsx-serializer/createJsxSerializeElements.js +2 -2
  219. package/jsx-serializer/createJsxSerializeMark.js +2 -2
  220. package/jsx-serializer/createJsxSerializer.js +42 -42
  221. package/jsx-serializer/index.cjs.js +48 -54
  222. package/jsx-serializer/typings.d.ts +5 -5
  223. package/line-break/commonBreak.js +26 -26
  224. package/line-break/createOnKeyDownBreak.js +41 -41
  225. package/line-break/createReactLineBreak.d.ts +1 -1
  226. package/line-break/createReactLineBreak.js +6 -6
  227. package/line-break/defaultRenderLineBreakElement.d.ts +2 -2
  228. package/line-break/index.cjs.js +75 -82
  229. package/line-break/jsx-serializer/createJsxSerializeLineBreak.d.ts +2 -2
  230. package/line-break/jsx-serializer/createJsxSerializeLineBreak.js +4 -4
  231. package/line-break/jsx-serializer/defaultRenderLineBreakElement.d.ts +2 -2
  232. package/line-break/jsx-serializer/defaultRenderLineBreakElement.js +1 -1
  233. package/line-break/jsx-serializer/index.cjs.js +6 -12
  234. package/line-break/jsx-serializer/typings.d.ts +1 -1
  235. package/line-break/renderLineBreakElementWithSymbol.d.ts +2 -2
  236. package/line-break/typings.d.ts +1 -1
  237. package/link/createReactLink.js +22 -22
  238. package/link/defaultRenderLinkElement.d.ts +2 -2
  239. package/link/defaultRenderLinkElement.js +7 -7
  240. package/link/index.cjs.js +29 -35
  241. package/link/jsx-serializer/createJsxSerializeLink.d.ts +2 -2
  242. package/link/jsx-serializer/createJsxSerializeLink.js +3 -3
  243. package/link/jsx-serializer/defaultRenderLinkElement.d.ts +2 -2
  244. package/link/jsx-serializer/index.cjs.js +4 -10
  245. package/link/jsx-serializer/typings.d.ts +1 -1
  246. package/link/toolbar/LinkToolbarIcon.d.ts +2 -2
  247. package/link/toolbar/LinkToolbarIcon.js +4 -4
  248. package/link/toolbar/UnlinkToolbarIcon.d.ts +2 -2
  249. package/link/toolbar/UnlinkToolbarIcon.js +4 -4
  250. package/link/toolbar/index.cjs.js +27 -33
  251. package/link/toolbar/useLinkTool.d.ts +1 -1
  252. package/link/toolbar/useLinkTool.js +14 -14
  253. package/link/toolbar/useUnlinkTool.js +5 -5
  254. package/link/typings.d.ts +1 -1
  255. package/list/createReactList.d.ts +1 -1
  256. package/list/createReactList.js +18 -18
  257. package/list/defaultRenderListElements.js +4 -4
  258. package/list/index.cjs.js +22 -28
  259. package/list/jsx-serializer/createJsxSerializeList.d.ts +2 -2
  260. package/list/jsx-serializer/createJsxSerializeList.js +8 -8
  261. package/list/jsx-serializer/index.cjs.js +8 -10
  262. package/list/jsx-serializer/typings.d.ts +1 -1
  263. package/list/toolbar/ListToolbarIcon.d.ts +2 -2
  264. package/list/toolbar/ListToolbarIcon.js +4 -4
  265. package/list/toolbar/index.cjs.js +10 -16
  266. package/list/toolbar/useListTool.js +6 -6
  267. package/list/typings.d.ts +2 -2
  268. package/package.json +10 -10
  269. package/paragraph/createRenderParagraphElement.d.ts +2 -2
  270. package/paragraph/createRenderParagraphElement.js +3 -3
  271. package/paragraph/defaultRenderParagraphElement.d.ts +2 -2
  272. package/paragraph/index.cjs.js +5 -11
  273. package/paragraph/jsx-serializer/createJsxSerializeParagraph.d.ts +2 -2
  274. package/paragraph/jsx-serializer/createJsxSerializeParagraph.js +3 -3
  275. package/paragraph/jsx-serializer/index.cjs.js +3 -5
  276. package/paragraph/jsx-serializer/typings.d.ts +1 -1
  277. package/paragraph/renderParagraphElementWithSymbol.d.ts +2 -2
  278. package/read-more/components/ReadMore.d.ts +2 -2
  279. package/read-more/components/ReadMore.js +6 -6
  280. package/read-more/createReactReadMore.d.ts +1 -1
  281. package/read-more/createReactReadMore.js +4 -4
  282. package/read-more/defaultRenderReadMoreElement.d.ts +2 -2
  283. package/read-more/index.cjs.js +11 -17
  284. package/read-more/jsx-serializer/createJsxSerializeReadMore.d.ts +2 -2
  285. package/read-more/jsx-serializer/createJsxSerializeReadMore.js +3 -3
  286. package/read-more/jsx-serializer/index.cjs.js +3 -5
  287. package/read-more/jsx-serializer/typings.d.ts +1 -1
  288. package/read-more/toolbar/ReadMoreToolbarIcon.d.ts +2 -2
  289. package/read-more/toolbar/ReadMoreToolbarIcon.js +4 -4
  290. package/read-more/toolbar/index.cjs.js +9 -15
  291. package/read-more/toolbar/useReadMoreTool.js +5 -5
  292. package/read-more/typings.d.ts +1 -1
  293. package/strikethrough/constants.js +5 -5
  294. package/strikethrough/createReactStrikethrough.d.ts +1 -1
  295. package/strikethrough/createReactStrikethrough.js +3 -3
  296. package/strikethrough/defaultRenderStrikethrough.d.ts +2 -2
  297. package/strikethrough/defaultRenderStrikethrough.js +1 -1
  298. package/strikethrough/index.cjs.js +9 -15
  299. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.js +3 -3
  300. package/strikethrough/jsx-serializer/index.cjs.js +3 -5
  301. package/toggle-mark/createReactToggleMarkCreator.d.ts +2 -2
  302. package/toggle-mark/createReactToggleMarkCreator.js +14 -14
  303. package/toggle-mark/index.cjs.js +14 -20
  304. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.d.ts +3 -3
  305. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.js +2 -2
  306. package/toggle-mark/jsx-serializer/index.cjs.js +2 -4
  307. package/toggle-mark/jsx-serializer/typings.d.ts +1 -1
  308. package/toggle-mark/toolbar/ToggleMarkToolbarIcon.d.ts +2 -2
  309. package/toggle-mark/toolbar/ToggleMarkToolbarIcon.js +4 -4
  310. package/toggle-mark/toolbar/index.cjs.js +10 -16
  311. package/toggle-mark/toolbar/useToggleMarkTool.js +6 -6
  312. package/toggle-mark/typings.d.ts +2 -2
  313. package/toolbar/components/Toolbar.d.ts +1 -1
  314. package/toolbar/components/Toolbar.js +102 -102
  315. package/toolbar/components/ToolbarIcon.d.ts +2 -2
  316. package/toolbar/components/ToolbarIcon.js +6 -6
  317. package/toolbar/components/ToolbarInput.d.ts +2 -2
  318. package/toolbar/components/ToolbarInput.js +23 -23
  319. package/toolbar/constants.d.ts +2 -2
  320. package/toolbar/constants.js +3 -3
  321. package/toolbar/hooks/useStartToolInput.js +2 -2
  322. package/toolbar/index.cjs.js +137 -144
  323. package/toolbar/toolbar.css +1 -1
  324. package/toolbar/typings.d.ts +1 -1
  325. package/underline/constants.js +5 -5
  326. package/underline/createReactUnderline.d.ts +1 -1
  327. package/underline/createReactUnderline.js +3 -3
  328. package/underline/defaultRenderUnderline.d.ts +2 -2
  329. package/underline/defaultRenderUnderline.js +1 -1
  330. package/underline/index.cjs.js +9 -15
  331. package/underline/jsx-serializer/createJsxSerializeUnderline.js +3 -3
  332. package/underline/jsx-serializer/index.cjs.js +3 -5
  333. package/utils/composeRefs.js +29 -29
  334. package/utils/index.cjs.js +29 -31
@@ -1,49 +1,49 @@
1
1
  import { useRef, useLayoutEffect } from 'react';
2
2
  import { useQuadrats, useLocale } from '@quadrats/react';
3
3
 
4
- function useInputBlock({ confirm, element, remove }) {
5
- var _a, _b;
6
- const inputRef = useRef(null);
7
- const editor = useQuadrats();
8
- const locale = useLocale();
9
- const placeholder = (_b = (_a = element.getPlaceholder) === null || _a === void 0 ? void 0 : _a.call(element, locale)) !== null && _b !== void 0 ? _b : '';
10
- /**
11
- * Since keying `Enter` or `Escape` will also cause input blurred
12
- * Add a `removeable` flag to avoid.
13
- */
14
- const removeable = useRef(true);
15
- const removeIfRemovable = () => {
16
- if (removeable.current) {
17
- removeable.current = false;
18
- remove(editor, element);
19
- }
20
- };
21
- useLayoutEffect(() => {
22
- /**
23
- * To avoid from selection of quadrats broken, delay autoFocus.
24
- */
25
- window.requestAnimationFrame(() => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
26
- }, [inputRef]);
27
- return {
28
- inputRef,
29
- onBlur: removeIfRemovable,
30
- onKeyDown: (event) => {
31
- var _a;
32
- const value = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.value;
33
- if (event.key === 'Enter') {
34
- event.preventDefault();
35
- if (value) {
36
- removeable.current = false;
37
- confirm(editor, element, value);
38
- }
39
- }
40
- else if (event.key === 'Escape') {
41
- event.preventDefault();
42
- removeIfRemovable();
43
- }
44
- },
45
- placeholder,
46
- };
4
+ function useInputBlock({ confirm, element, remove }) {
5
+ var _a, _b;
6
+ const inputRef = useRef(null);
7
+ const editor = useQuadrats();
8
+ const locale = useLocale();
9
+ const placeholder = (_b = (_a = element.getPlaceholder) === null || _a === void 0 ? void 0 : _a.call(element, locale)) !== null && _b !== void 0 ? _b : '';
10
+ /**
11
+ * Since keying `Enter` or `Escape` will also cause input blurred
12
+ * Add a `removeable` flag to avoid.
13
+ */
14
+ const removeable = useRef(true);
15
+ const removeIfRemovable = () => {
16
+ if (removeable.current) {
17
+ removeable.current = false;
18
+ remove(editor, element);
19
+ }
20
+ };
21
+ useLayoutEffect(() => {
22
+ /**
23
+ * To avoid from selection of quadrats broken, delay autoFocus.
24
+ */
25
+ window.requestAnimationFrame(() => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
26
+ }, [inputRef]);
27
+ return {
28
+ inputRef,
29
+ onBlur: removeIfRemovable,
30
+ onKeyDown: (event) => {
31
+ var _a;
32
+ const value = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.value;
33
+ if (event.key === 'Enter') {
34
+ event.preventDefault();
35
+ if (value) {
36
+ removeable.current = false;
37
+ confirm(editor, element, value);
38
+ }
39
+ }
40
+ else if (event.key === 'Escape') {
41
+ event.preventDefault();
42
+ removeIfRemovable();
43
+ }
44
+ },
45
+ placeholder,
46
+ };
47
47
  }
48
48
 
49
49
  export { useInputBlock };
@@ -1,93 +1,87 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
4
  var react = require('@quadrats/react');
7
5
  var inputBlock = require('@quadrats/common/input-block');
8
6
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
-
13
- function useInputBlock({ confirm, element, remove }) {
14
- var _a, _b;
15
- const inputRef = React.useRef(null);
16
- const editor = react.useQuadrats();
17
- const locale = react.useLocale();
18
- const placeholder = (_b = (_a = element.getPlaceholder) === null || _a === void 0 ? void 0 : _a.call(element, locale)) !== null && _b !== void 0 ? _b : '';
19
- /**
20
- * Since keying `Enter` or `Escape` will also cause input blurred
21
- * Add a `removeable` flag to avoid.
22
- */
23
- const removeable = React.useRef(true);
24
- const removeIfRemovable = () => {
25
- if (removeable.current) {
26
- removeable.current = false;
27
- remove(editor, element);
28
- }
29
- };
30
- React.useLayoutEffect(() => {
31
- /**
32
- * To avoid from selection of quadrats broken, delay autoFocus.
33
- */
34
- window.requestAnimationFrame(() => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
35
- }, [inputRef]);
36
- return {
37
- inputRef,
38
- onBlur: removeIfRemovable,
39
- onKeyDown: (event) => {
40
- var _a;
41
- const value = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.value;
42
- if (event.key === 'Enter') {
43
- event.preventDefault();
44
- if (value) {
45
- removeable.current = false;
46
- confirm(editor, element, value);
47
- }
48
- }
49
- else if (event.key === 'Escape') {
50
- event.preventDefault();
51
- removeIfRemovable();
52
- }
53
- },
54
- placeholder,
55
- };
7
+ function useInputBlock({ confirm, element, remove }) {
8
+ var _a, _b;
9
+ const inputRef = React.useRef(null);
10
+ const editor = react.useQuadrats();
11
+ const locale = react.useLocale();
12
+ const placeholder = (_b = (_a = element.getPlaceholder) === null || _a === void 0 ? void 0 : _a.call(element, locale)) !== null && _b !== void 0 ? _b : '';
13
+ /**
14
+ * Since keying `Enter` or `Escape` will also cause input blurred
15
+ * Add a `removeable` flag to avoid.
16
+ */
17
+ const removeable = React.useRef(true);
18
+ const removeIfRemovable = () => {
19
+ if (removeable.current) {
20
+ removeable.current = false;
21
+ remove(editor, element);
22
+ }
23
+ };
24
+ React.useLayoutEffect(() => {
25
+ /**
26
+ * To avoid from selection of quadrats broken, delay autoFocus.
27
+ */
28
+ window.requestAnimationFrame(() => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
29
+ }, [inputRef]);
30
+ return {
31
+ inputRef,
32
+ onBlur: removeIfRemovable,
33
+ onKeyDown: (event) => {
34
+ var _a;
35
+ const value = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.value;
36
+ if (event.key === 'Enter') {
37
+ event.preventDefault();
38
+ if (value) {
39
+ removeable.current = false;
40
+ confirm(editor, element, value);
41
+ }
42
+ }
43
+ else if (event.key === 'Escape') {
44
+ event.preventDefault();
45
+ removeIfRemovable();
46
+ }
47
+ },
48
+ placeholder,
49
+ };
56
50
  }
57
51
 
58
- function InputBlock(props) {
59
- const { attributes, children } = props;
60
- const { inputRef, onBlur, onKeyDown, placeholder, } = useInputBlock(props);
61
- return (React__default.createElement("div", Object.assign({}, attributes, { contentEditable: false, style: {
62
- display: 'flex',
63
- }, className: "qdr-input-block" }),
64
- React__default.createElement("input", { ref: inputRef, onBlur: onBlur, onKeyDown: onKeyDown, placeholder: placeholder, style: {
65
- display: 'block',
66
- color: 'currentColor',
67
- font: 'inherit',
68
- width: '100%',
69
- margin: 0,
70
- border: 0,
71
- padding: 0,
72
- background: 'none',
73
- outline: 0,
74
- boxSizing: 'border-box',
75
- } }),
76
- children));
52
+ function InputBlock(props) {
53
+ const { attributes, children } = props;
54
+ const { inputRef, onBlur, onKeyDown, placeholder, } = useInputBlock(props);
55
+ return (React.createElement("div", Object.assign({}, attributes, { contentEditable: false, style: {
56
+ display: 'flex',
57
+ }, className: "qdr-input-block" }),
58
+ React.createElement("input", { ref: inputRef, onBlur: onBlur, onKeyDown: onKeyDown, placeholder: placeholder, style: {
59
+ display: 'block',
60
+ color: 'currentColor',
61
+ font: 'inherit',
62
+ width: '100%',
63
+ margin: 0,
64
+ border: 0,
65
+ padding: 0,
66
+ background: 'none',
67
+ outline: 0,
68
+ boxSizing: 'border-box',
69
+ } }),
70
+ children));
77
71
  }
78
72
 
79
- const defaultRenderInputBlockElement = (props) => React__default.createElement(InputBlock, Object.assign({}, props));
73
+ const defaultRenderInputBlockElement = (props) => React.createElement(InputBlock, Object.assign({}, props));
80
74
 
81
- function createReactInputBlock(options = {}) {
82
- const core = inputBlock.createInputBlock(options);
83
- const { type } = core;
84
- const remove = (editor, element) => core.remove(editor, [element, react.ReactEditor.findPath(editor, element)], () => react.ReactEditor.focus(editor));
85
- const confirm = (editor, element, value) => core.confirm(element, value, () => remove(editor, element));
86
- return Object.assign(Object.assign({}, core), { remove,
87
- confirm, createRenderElement: ({ render = defaultRenderInputBlockElement, } = {}) => react.createRenderElement({
88
- type,
89
- render: (props) => render(Object.assign(Object.assign({}, props), { remove, confirm })),
90
- }) });
75
+ function createReactInputBlock(options = {}) {
76
+ const core = inputBlock.createInputBlock(options);
77
+ const { type } = core;
78
+ const remove = (editor, element) => core.remove(editor, [element, react.ReactEditor.findPath(editor, element)], () => react.ReactEditor.focus(editor));
79
+ const confirm = (editor, element, value) => core.confirm(element, value, () => remove(editor, element));
80
+ return Object.assign(Object.assign({}, core), { remove,
81
+ confirm, createRenderElement: ({ render = defaultRenderInputBlockElement, } = {}) => react.createRenderElement({
82
+ type,
83
+ render: (props) => render(Object.assign(Object.assign({}, props), { remove, confirm })),
84
+ }) });
91
85
  }
92
86
 
93
87
  exports.InputBlock = InputBlock;
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { InputBlock, InputBlockElement } from '@quadrats/common/input-block';
3
3
  import { Editor, RenderElementProps, WithCreateRenderElement } from '@quadrats/react';
4
- export declare type RenderInputBlockElementProps = RenderElementProps<InputBlockElement> & Pick<ReactInputBlock, 'remove' | 'confirm'>;
5
- export declare type RenderInputBlockElement = (props: RenderInputBlockElementProps) => JSX.Element | null | undefined;
4
+ export type RenderInputBlockElementProps = RenderElementProps<InputBlockElement> & Pick<ReactInputBlock, 'remove' | 'confirm'>;
5
+ export type RenderInputBlockElement = (props: RenderInputBlockElementProps) => JSX.Element | null | undefined;
6
6
  export interface ReactInputBlockCreateRenderElementOptions {
7
7
  render?: RenderInputBlockElement;
8
8
  }
@@ -1,8 +1,8 @@
1
- /**
2
- * Default hotkey for toggling italic.
3
- *
4
- * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
5
- */
1
+ /**
2
+ * Default hotkey for toggling italic.
3
+ *
4
+ * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
5
+ */
6
6
  const ITALIC_HOTKEY = 'mod+i';
7
7
 
8
8
  export { ITALIC_HOTKEY };
@@ -1 +1 @@
1
- export declare const createReactItalic: (variant?: string | undefined) => import("@quadrats/react/toggle-mark").ReactToggleMark;
1
+ export declare const createReactItalic: (variant?: string) => import("@quadrats/react/toggle-mark").ReactToggleMark;
@@ -3,9 +3,9 @@ import { createReactToggleMarkCreator } from '@quadrats/react/toggle-mark';
3
3
  import { defaultRenderItalic } from './defaultRenderItalic.js';
4
4
  import { ITALIC_HOTKEY } from './constants.js';
5
5
 
6
- const createReactItalic = (variant) => createReactToggleMarkCreator(createItalic(variant), {
7
- hotkey: ITALIC_HOTKEY,
8
- render: defaultRenderItalic,
6
+ const createReactItalic = (variant) => createReactToggleMarkCreator(createItalic(variant), {
7
+ hotkey: ITALIC_HOTKEY,
8
+ render: defaultRenderItalic,
9
9
  })();
10
10
 
11
11
  export { createReactItalic };
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { RenderMarkPropsBase } from '@quadrats/react/_internal';
3
- export declare const defaultRenderItalic: ({ children, leaf }: RenderMarkPropsBase<boolean>) => JSX.Element;
3
+ export declare const defaultRenderItalic: ({ children, leaf }: RenderMarkPropsBase<boolean>) => React.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ITALIC_TYPE } from '@quadrats/common/italic';
3
3
 
4
- const defaultRenderItalic = ({ children, leaf }) => (React.createElement("i", { className: leaf.italicVariant
4
+ const defaultRenderItalic = ({ children, leaf }) => (React.createElement("i", { className: leaf.italicVariant
5
5
  ? `${ITALIC_TYPE}.${leaf.italicVariant}` : `${ITALIC_TYPE}` }, children));
6
6
 
7
7
  export { defaultRenderItalic };
@@ -1,28 +1,22 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
4
  var italic = require('@quadrats/common/italic');
7
5
  var toggleMark = require('@quadrats/react/toggle-mark');
8
6
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
-
13
- /**
14
- * Default hotkey for toggling italic.
15
- *
16
- * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
17
- */
7
+ /**
8
+ * Default hotkey for toggling italic.
9
+ *
10
+ * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
11
+ */
18
12
  const ITALIC_HOTKEY = 'mod+i';
19
13
 
20
- const defaultRenderItalic = ({ children, leaf }) => (React__default.createElement("i", { className: leaf.italicVariant
14
+ const defaultRenderItalic = ({ children, leaf }) => (React.createElement("i", { className: leaf.italicVariant
21
15
  ? `${italic.ITALIC_TYPE}.${leaf.italicVariant}` : `${italic.ITALIC_TYPE}` }, children));
22
16
 
23
- const createReactItalic = (variant) => toggleMark.createReactToggleMarkCreator(italic.createItalic(variant), {
24
- hotkey: ITALIC_HOTKEY,
25
- render: defaultRenderItalic,
17
+ const createReactItalic = (variant) => toggleMark.createReactToggleMarkCreator(italic.createItalic(variant), {
18
+ hotkey: ITALIC_HOTKEY,
19
+ render: defaultRenderItalic,
26
20
  })();
27
21
 
28
22
  exports.ITALIC_HOTKEY = ITALIC_HOTKEY;
@@ -2,9 +2,9 @@ import { ITALIC_TYPE } from '@quadrats/common/italic';
2
2
  import { createJsxSerializeToggleMarkCreator } from '@quadrats/react/toggle-mark/jsx-serializer';
3
3
  import { defaultRenderItalic } from '@quadrats/react/italic';
4
4
 
5
- const createJsxSerializeItalic = createJsxSerializeToggleMarkCreator({
6
- type: ITALIC_TYPE,
7
- render: defaultRenderItalic,
5
+ const createJsxSerializeItalic = createJsxSerializeToggleMarkCreator({
6
+ type: ITALIC_TYPE,
7
+ render: defaultRenderItalic,
8
8
  });
9
9
 
10
10
  export { createJsxSerializeItalic };
@@ -1,14 +1,12 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var italic = require('@quadrats/react/italic');
6
4
  var italic$1 = require('@quadrats/common/italic');
7
5
  var jsxSerializer = require('@quadrats/react/toggle-mark/jsx-serializer');
8
6
 
9
- const createJsxSerializeItalic = jsxSerializer.createJsxSerializeToggleMarkCreator({
10
- type: italic$1.ITALIC_TYPE,
11
- render: italic.defaultRenderItalic,
7
+ const createJsxSerializeItalic = jsxSerializer.createJsxSerializeToggleMarkCreator({
8
+ type: italic$1.ITALIC_TYPE,
9
+ render: italic.defaultRenderItalic,
12
10
  });
13
11
 
14
12
  exports.defaultRenderItalic = italic.defaultRenderItalic;
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { CreateJsxSerializeElementOptions, JsxSerializeElementProps } from './typings';
3
- export declare function createJsxSerializeElement<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>): (props: JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
3
+ export declare function createJsxSerializeElement<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>): (props: JsxSerializeElementProps) => JSX.Element | null | undefined;
@@ -1,7 +1,7 @@
1
1
  import { createRenderElementBase } from '@quadrats/react/_internal';
2
2
 
3
- function createJsxSerializeElement(options) {
4
- return createRenderElementBase(options);
3
+ function createJsxSerializeElement(options) {
4
+ return createRenderElementBase(options);
5
5
  }
6
6
 
7
7
  export { createJsxSerializeElement };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { CreateJsxSerializeElementOptions, JsxSerializeElementProps } from './typings';
3
- export declare function createJsxSerializeElements<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>[]): (props: JsxSerializeElementProps<import("@quadrats/core").QuadratsElement>) => JSX.Element | null | undefined;
3
+ export declare function createJsxSerializeElements<P extends JsxSerializeElementProps>(options: CreateJsxSerializeElementOptions<P>[]): (props: JsxSerializeElementProps) => JSX.Element | null | undefined;
@@ -1,7 +1,7 @@
1
1
  import { createRenderElementsBase } from '@quadrats/react/_internal';
2
2
 
3
- function createJsxSerializeElements(options) {
4
- return createRenderElementsBase(options);
3
+ function createJsxSerializeElements(options) {
4
+ return createRenderElementsBase(options);
5
5
  }
6
6
 
7
7
  export { createJsxSerializeElements };
@@ -1,7 +1,7 @@
1
1
  import { createRenderMarkBase } from '@quadrats/react/_internal';
2
2
 
3
- function createJsxSerializeMark(options) {
4
- return createRenderMarkBase(options);
3
+ function createJsxSerializeMark(options) {
4
+ return createRenderMarkBase(options);
5
5
  }
6
6
 
7
7
  export { createJsxSerializeMark };
@@ -2,48 +2,48 @@ import React, { cloneElement } from 'react';
2
2
  import { isText } from '@quadrats/core/serializers';
3
3
  import { composeRenderElementsBase, composeRenderLeafsBase } from '@quadrats/react/_internal';
4
4
 
5
- let key = 0;
6
- function addKey(element) {
7
- key += 1;
8
- return cloneElement(element, { key });
9
- }
10
- function createJsxSerializer(options) {
11
- const { defaultElement: defaultSerializeElement = ({ children }) => React.createElement("div", null, children), defaultLeaf: defaultSerializeLeaf = ({ children }) => React.createElement("span", null, children), elements: serializeElements = [], leafs: serializeLeafs = [], } = options;
12
- const serializeElement = composeRenderElementsBase(defaultSerializeElement, serializeElements);
13
- const serializeLeaf = composeRenderLeafsBase(defaultSerializeLeaf, serializeLeafs);
14
- const leafStyle = {
15
- whiteSpace: 'pre-wrap',
16
- };
17
- function serializeNode(node) {
18
- const { parent } = node;
19
- let result;
20
- if (!isText(node)) {
21
- result = serializeElement({
22
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
23
- children: serializeNodes(node.children, node),
24
- element: Object.assign(Object.assign({}, node), { parent }),
25
- });
26
- }
27
- else if (node.text) {
28
- result = serializeLeaf({
29
- leaf: node,
30
- children: (React.createElement("span", { style: leafStyle }, node.text
31
- .split('\n')
32
- .map(t => t || ' ')
33
- .join('\n'))),
34
- });
35
- }
36
- else {
37
- result = React.createElement("span", null, "\uFEFF");
38
- }
39
- return addKey(result);
40
- }
41
- function serializeNodes(nodes, parent) {
42
- return React.createElement(React.Fragment, null, nodes.map(node => serializeNode(Object.assign(Object.assign({}, node), { parent }))));
43
- }
44
- return {
45
- serialize: (nodes) => serializeNodes(nodes, undefined),
46
- };
5
+ let key = 0;
6
+ function addKey(element) {
7
+ key += 1;
8
+ return cloneElement(element, { key });
9
+ }
10
+ function createJsxSerializer(options) {
11
+ const { defaultElement: defaultSerializeElement = ({ children }) => React.createElement("div", null, children), defaultLeaf: defaultSerializeLeaf = ({ children }) => React.createElement("span", null, children), elements: serializeElements = [], leafs: serializeLeafs = [], } = options;
12
+ const serializeElement = composeRenderElementsBase(defaultSerializeElement, serializeElements);
13
+ const serializeLeaf = composeRenderLeafsBase(defaultSerializeLeaf, serializeLeafs);
14
+ const leafStyle = {
15
+ whiteSpace: 'pre-wrap',
16
+ };
17
+ function serializeNode(node) {
18
+ const { parent } = node;
19
+ let result;
20
+ if (!isText(node)) {
21
+ result = serializeElement({
22
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
23
+ children: serializeNodes(node.children, node),
24
+ element: Object.assign(Object.assign({}, node), { parent }),
25
+ });
26
+ }
27
+ else if (node.text) {
28
+ result = serializeLeaf({
29
+ leaf: node,
30
+ children: (React.createElement("span", { style: leafStyle }, node.text
31
+ .split('\n')
32
+ .map(t => t || ' ')
33
+ .join('\n'))),
34
+ });
35
+ }
36
+ else {
37
+ result = React.createElement("span", null, "\uFEFF");
38
+ }
39
+ return addKey(result);
40
+ }
41
+ function serializeNodes(nodes, parent) {
42
+ return React.createElement(React.Fragment, null, nodes.map(node => serializeNode(Object.assign(Object.assign({}, node), { parent }))));
43
+ }
44
+ return {
45
+ serialize: (nodes) => serializeNodes(nodes, undefined),
46
+ };
47
47
  }
48
48
 
49
49
  export { createJsxSerializer };