@quadrats/react 0.6.7 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) 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.js +3 -3
  178. package/highlight/jsx-serializer/index.cjs.js +3 -5
  179. package/image/components/Image.d.ts +2 -2
  180. package/image/components/Image.js +11 -11
  181. package/image/components/ImageCaption.d.ts +2 -2
  182. package/image/components/ImageCaption.js +13 -13
  183. package/image/components/ImageFigure.d.ts +2 -2
  184. package/image/components/ImageFigure.js +8 -8
  185. package/image/createReactImage.d.ts +1 -1
  186. package/image/createReactImage.js +94 -94
  187. package/image/defaultRenderImageElements.js +4 -4
  188. package/image/hooks/useImageResizer.js +89 -89
  189. package/image/image.css +1 -1
  190. package/image/index.cjs.js +219 -227
  191. package/image/jsx-serializer/createJsxSerializeImage.d.ts +2 -3
  192. package/image/jsx-serializer/createJsxSerializeImage.js +34 -34
  193. package/image/jsx-serializer/defaultRenderImageElements.js +4 -4
  194. package/image/jsx-serializer/index.cjs.js +38 -44
  195. package/image/jsx-serializer/typings.d.ts +1 -1
  196. package/image/typings.d.ts +3 -3
  197. package/index.cjs.js +103 -109
  198. package/index.js +3 -2
  199. package/input-block/components/InputBlock.d.ts +2 -2
  200. package/input-block/components/InputBlock.js +19 -19
  201. package/input-block/createReactInputBlock.d.ts +1 -1
  202. package/input-block/createReactInputBlock.js +10 -10
  203. package/input-block/hooks/useInputBlock.js +43 -43
  204. package/input-block/index.cjs.js +73 -79
  205. package/input-block/typings.d.ts +2 -2
  206. package/italic/constants.js +5 -5
  207. package/italic/createReactItalic.d.ts +1 -1
  208. package/italic/createReactItalic.js +3 -3
  209. package/italic/defaultRenderItalic.d.ts +2 -2
  210. package/italic/defaultRenderItalic.js +1 -1
  211. package/italic/index.cjs.js +9 -15
  212. package/italic/jsx-serializer/createJsxSerializeItalic.js +3 -3
  213. package/italic/jsx-serializer/index.cjs.js +3 -5
  214. package/jsx-serializer/createJsxSerializeElement.d.ts +1 -1
  215. package/jsx-serializer/createJsxSerializeElement.js +2 -2
  216. package/jsx-serializer/createJsxSerializeElements.d.ts +1 -1
  217. package/jsx-serializer/createJsxSerializeElements.js +2 -2
  218. package/jsx-serializer/createJsxSerializeMark.js +2 -2
  219. package/jsx-serializer/createJsxSerializer.js +42 -42
  220. package/jsx-serializer/index.cjs.js +48 -54
  221. package/jsx-serializer/typings.d.ts +5 -5
  222. package/line-break/commonBreak.js +26 -26
  223. package/line-break/createOnKeyDownBreak.js +41 -41
  224. package/line-break/createReactLineBreak.d.ts +1 -1
  225. package/line-break/createReactLineBreak.js +6 -6
  226. package/line-break/defaultRenderLineBreakElement.d.ts +2 -2
  227. package/line-break/index.cjs.js +75 -82
  228. package/line-break/jsx-serializer/createJsxSerializeLineBreak.d.ts +2 -2
  229. package/line-break/jsx-serializer/createJsxSerializeLineBreak.js +4 -4
  230. package/line-break/jsx-serializer/defaultRenderLineBreakElement.d.ts +2 -2
  231. package/line-break/jsx-serializer/defaultRenderLineBreakElement.js +1 -1
  232. package/line-break/jsx-serializer/index.cjs.js +6 -12
  233. package/line-break/jsx-serializer/typings.d.ts +1 -1
  234. package/line-break/renderLineBreakElementWithSymbol.d.ts +2 -2
  235. package/line-break/typings.d.ts +1 -1
  236. package/link/createReactLink.js +22 -22
  237. package/link/defaultRenderLinkElement.d.ts +2 -2
  238. package/link/defaultRenderLinkElement.js +7 -7
  239. package/link/index.cjs.js +29 -35
  240. package/link/jsx-serializer/createJsxSerializeLink.d.ts +2 -2
  241. package/link/jsx-serializer/createJsxSerializeLink.js +3 -3
  242. package/link/jsx-serializer/defaultRenderLinkElement.d.ts +2 -2
  243. package/link/jsx-serializer/index.cjs.js +4 -10
  244. package/link/jsx-serializer/typings.d.ts +1 -1
  245. package/link/toolbar/LinkToolbarIcon.d.ts +2 -2
  246. package/link/toolbar/LinkToolbarIcon.js +4 -4
  247. package/link/toolbar/UnlinkToolbarIcon.d.ts +2 -2
  248. package/link/toolbar/UnlinkToolbarIcon.js +4 -4
  249. package/link/toolbar/index.cjs.js +27 -33
  250. package/link/toolbar/useLinkTool.d.ts +1 -1
  251. package/link/toolbar/useLinkTool.js +14 -14
  252. package/link/toolbar/useUnlinkTool.js +5 -5
  253. package/link/typings.d.ts +1 -1
  254. package/list/createReactList.d.ts +1 -1
  255. package/list/createReactList.js +18 -18
  256. package/list/defaultRenderListElements.js +4 -4
  257. package/list/index.cjs.js +22 -28
  258. package/list/jsx-serializer/createJsxSerializeList.d.ts +2 -2
  259. package/list/jsx-serializer/createJsxSerializeList.js +8 -8
  260. package/list/jsx-serializer/index.cjs.js +8 -10
  261. package/list/jsx-serializer/typings.d.ts +1 -1
  262. package/list/toolbar/ListToolbarIcon.d.ts +2 -2
  263. package/list/toolbar/ListToolbarIcon.js +4 -4
  264. package/list/toolbar/index.cjs.js +10 -16
  265. package/list/toolbar/useListTool.js +6 -6
  266. package/list/typings.d.ts +2 -2
  267. package/package.json +10 -10
  268. package/paragraph/createRenderParagraphElement.d.ts +2 -2
  269. package/paragraph/createRenderParagraphElement.js +3 -3
  270. package/paragraph/defaultRenderParagraphElement.d.ts +2 -2
  271. package/paragraph/index.cjs.js +5 -11
  272. package/paragraph/jsx-serializer/createJsxSerializeParagraph.d.ts +2 -2
  273. package/paragraph/jsx-serializer/createJsxSerializeParagraph.js +3 -3
  274. package/paragraph/jsx-serializer/index.cjs.js +3 -5
  275. package/paragraph/jsx-serializer/typings.d.ts +1 -1
  276. package/paragraph/renderParagraphElementWithSymbol.d.ts +2 -2
  277. package/read-more/components/ReadMore.d.ts +2 -2
  278. package/read-more/components/ReadMore.js +6 -6
  279. package/read-more/createReactReadMore.d.ts +1 -1
  280. package/read-more/createReactReadMore.js +4 -4
  281. package/read-more/defaultRenderReadMoreElement.d.ts +2 -2
  282. package/read-more/index.cjs.js +11 -17
  283. package/read-more/jsx-serializer/createJsxSerializeReadMore.d.ts +2 -2
  284. package/read-more/jsx-serializer/createJsxSerializeReadMore.js +3 -3
  285. package/read-more/jsx-serializer/index.cjs.js +3 -5
  286. package/read-more/jsx-serializer/typings.d.ts +1 -1
  287. package/read-more/toolbar/ReadMoreToolbarIcon.d.ts +2 -2
  288. package/read-more/toolbar/ReadMoreToolbarIcon.js +4 -4
  289. package/read-more/toolbar/index.cjs.js +9 -15
  290. package/read-more/toolbar/useReadMoreTool.js +5 -5
  291. package/read-more/typings.d.ts +1 -1
  292. package/strikethrough/constants.js +5 -5
  293. package/strikethrough/createReactStrikethrough.d.ts +1 -1
  294. package/strikethrough/createReactStrikethrough.js +3 -3
  295. package/strikethrough/defaultRenderStrikethrough.d.ts +2 -2
  296. package/strikethrough/defaultRenderStrikethrough.js +1 -1
  297. package/strikethrough/index.cjs.js +9 -15
  298. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.js +3 -3
  299. package/strikethrough/jsx-serializer/index.cjs.js +3 -5
  300. package/toggle-mark/createReactToggleMarkCreator.d.ts +2 -2
  301. package/toggle-mark/createReactToggleMarkCreator.js +14 -14
  302. package/toggle-mark/index.cjs.js +14 -20
  303. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.d.ts +3 -3
  304. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.js +2 -2
  305. package/toggle-mark/jsx-serializer/index.cjs.js +2 -4
  306. package/toggle-mark/jsx-serializer/typings.d.ts +1 -1
  307. package/toggle-mark/toolbar/ToggleMarkToolbarIcon.d.ts +2 -2
  308. package/toggle-mark/toolbar/ToggleMarkToolbarIcon.js +4 -4
  309. package/toggle-mark/toolbar/index.cjs.js +10 -16
  310. package/toggle-mark/toolbar/useToggleMarkTool.js +6 -6
  311. package/toggle-mark/typings.d.ts +2 -2
  312. package/toolbar/components/Toolbar.d.ts +1 -1
  313. package/toolbar/components/Toolbar.js +102 -102
  314. package/toolbar/components/ToolbarIcon.d.ts +2 -2
  315. package/toolbar/components/ToolbarIcon.js +6 -6
  316. package/toolbar/components/ToolbarInput.d.ts +2 -2
  317. package/toolbar/components/ToolbarInput.js +23 -23
  318. package/toolbar/constants.d.ts +2 -2
  319. package/toolbar/constants.js +3 -3
  320. package/toolbar/hooks/useStartToolInput.js +2 -2
  321. package/toolbar/index.cjs.js +137 -144
  322. package/toolbar/toolbar.css +1 -1
  323. package/toolbar/typings.d.ts +1 -1
  324. package/underline/constants.js +5 -5
  325. package/underline/createReactUnderline.d.ts +1 -1
  326. package/underline/createReactUnderline.js +3 -3
  327. package/underline/defaultRenderUnderline.d.ts +2 -2
  328. package/underline/defaultRenderUnderline.js +1 -1
  329. package/underline/index.cjs.js +9 -15
  330. package/underline/jsx-serializer/createJsxSerializeUnderline.js +3 -3
  331. package/underline/jsx-serializer/index.cjs.js +3 -5
  332. package/utils/composeRefs.js +29 -29
  333. package/utils/index.cjs.js +29 -31
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
4
  var clsx = require('clsx');
7
5
  var core = require('@quadrats/core');
@@ -9,157 +7,152 @@ var react = require('@quadrats/react');
9
7
  var components = require('@quadrats/react/components');
10
8
  var tslib = require('tslib');
11
9
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
13
-
14
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
- var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
16
-
17
- /**
18
- * A react element constant of toolbar divider.
19
- */
20
- const TOOLBAR_DIVIDER = React__default.createElement("span", { className: "qdr-toolbar__divider" });
10
+ /**
11
+ * A react element constant of toolbar divider.
12
+ */
13
+ const TOOLBAR_DIVIDER = React.createElement("span", { className: "qdr-toolbar__divider" });
21
14
 
22
15
  const StartToolInputContext = React.createContext(() => { });
23
16
 
24
- function ToolbarInput({ exit, toolInput }) {
25
- const { confirm, getPlaceholder } = toolInput;
26
- const onExit = (event) => {
27
- event.preventDefault();
28
- exit();
29
- };
30
- const onKeyDown = (event) => {
31
- const isEnter = event.key === 'Enter';
32
- if (isEnter || event.key === 'Escape') {
33
- onExit(event);
34
- if (isEnter) {
35
- confirm(event.target.value);
36
- }
37
- }
38
- };
39
- const locale = react.useLocale();
40
- const placeholder = getPlaceholder(locale);
41
- return (React__default.createElement("div", { className: "qdr-toolbar__input__wrapper" },
42
- React__default.createElement("input", { defaultValue: toolInput.defaultValue, autoFocus: true, className: "qdr-toolbar__input", placeholder: placeholder, onKeyDown: onKeyDown, onBlur: exit }),
43
- React__default.createElement("svg", { className: "qdr-toolbar__input__cross", viewBox: "0 0 320 512", onMouseDown: onExit },
44
- React__default.createElement("path", {
45
- // eslint-disable-next-line max-len
46
- 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" }))));
17
+ function ToolbarInput({ exit, toolInput }) {
18
+ const { confirm, getPlaceholder } = toolInput;
19
+ const onExit = (event) => {
20
+ event.preventDefault();
21
+ exit();
22
+ };
23
+ const onKeyDown = (event) => {
24
+ const isEnter = event.key === 'Enter';
25
+ if (isEnter || event.key === 'Escape') {
26
+ onExit(event);
27
+ if (isEnter) {
28
+ confirm(event.target.value);
29
+ }
30
+ }
31
+ };
32
+ const locale = react.useLocale();
33
+ const placeholder = getPlaceholder(locale);
34
+ return (React.createElement("div", { className: "qdr-toolbar__input__wrapper" },
35
+ React.createElement("input", { defaultValue: toolInput.defaultValue, autoFocus: true, className: "qdr-toolbar__input", placeholder: placeholder, onKeyDown: onKeyDown, onBlur: exit }),
36
+ React.createElement("svg", { className: "qdr-toolbar__input__cross", viewBox: "0 0 320 512", onMouseDown: onExit },
37
+ React.createElement("path", {
38
+ // eslint-disable-next-line max-len
39
+ 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" }))));
47
40
  }
48
41
 
49
- function roundNumber(value, min, max) {
50
- if (value < min) {
51
- return min;
52
- }
53
- if (value > max) {
54
- return max;
55
- }
56
- return value;
57
- }
58
- /**
59
- * @todo
60
- * Also round top.
61
- */
62
- function setPosition(el, range) {
63
- const rect = range.getBoundingClientRect();
64
- const top = rect.top + window.pageYOffset - el.offsetHeight;
65
- const left = roundNumber(rect.left + window.pageXOffset - (el.offsetWidth - rect.width) / 2, 0, window.innerWidth - el.offsetWidth);
66
- el.style.top = `${top}px`;
67
- el.style.left = `${left}px`;
68
- }
69
- function Toolbar(props) {
70
- const { children, disabledElementTypes } = props;
71
- const { props: themeProps } = React.useContext(react.ThemeContext);
72
- const editor = react.useQuadrats();
73
- const toolbarRef = React.useRef(null);
74
- const lastNativeRangeRef = React.useRef();
75
- const focused = react.ReactEditor.isFocused(editor);
76
- const { selection } = editor;
77
- const [toolInput, setToolInput] = React.useState();
78
- const startToolInput = React.useCallback(inputConfig => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
79
- let renderExpandedStatus;
80
- if (toolInput) {
81
- const { currentSelection } = toolInput;
82
- if (currentSelection) {
83
- if (core.Range.isExpanded(currentSelection)) {
84
- renderExpandedStatus = true;
85
- }
86
- else {
87
- renderExpandedStatus = false;
88
- }
89
- }
90
- }
91
- else if (focused) {
92
- if (selection && core.Range.isCollapsed(selection)) {
93
- renderExpandedStatus = false;
94
- }
95
- else if (core.getSelectionText(editor) !== '') {
96
- renderExpandedStatus = true;
97
- }
98
- }
99
- const shouldRender = typeof renderExpandedStatus === 'boolean';
100
- React.useLayoutEffect(() => {
101
- /**
102
- * The native selection is not yet synchronized while effect invoked.
103
- * Thus invoke handler on next frame to avoid from this issue.
104
- */
105
- window.requestAnimationFrame(() => {
106
- /**
107
- * Editor will be blurred after getting into input process.
108
- * Thus cache the last range of selection to recalculate position of toolbar.
109
- */
110
- if (!toolInput) {
111
- const nativeSelection = window.getSelection();
112
- if (nativeSelection && nativeSelection.rangeCount > 0) {
113
- lastNativeRangeRef.current = nativeSelection.getRangeAt(0);
114
- }
115
- }
116
- const el = toolbarRef.current;
117
- const range = lastNativeRangeRef.current;
118
- if (shouldRender && el && range) {
119
- setPosition(el, range);
120
- }
121
- });
122
- });
123
- const getPortalContainer = React.useCallback(() => {
124
- var _a;
125
- if ((_a = props.containerRef) === null || _a === void 0 ? void 0 : _a.current) {
126
- return props.containerRef.current;
127
- }
128
- return document.body;
129
- }, [props.containerRef]);
130
- if (!shouldRender || (disabledElementTypes && core.isNodesTypeIn(editor, disabledElementTypes, { mode: 'all' }))) {
131
- return null;
132
- }
133
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
134
- const tools = children(renderExpandedStatus);
135
- if (!tools) {
136
- return null;
137
- }
138
- return (React__default.createElement(components.Portal, { getContainer: getPortalContainer },
139
- React__default.createElement("div", { ref: toolbarRef, className: clsx__default('qdr-toolbar__wrapper', { 'qdr-toolbar__wrapper--inputting': toolInput }, themeProps.className), style: themeProps.style },
140
- React__default.createElement("div", { className: "qdr-toolbar__arrow" }),
141
- React__default.createElement("div", { className: "qdr-toolbar" },
142
- React__default.createElement(StartToolInputContext.Provider, { value: startToolInput }, tools),
143
- toolInput && (React__default.createElement(ToolbarInput, { exit: () => {
144
- const { currentSelection } = toolInput;
145
- if (currentSelection) {
146
- core.Transforms.select(editor, currentSelection);
147
- }
148
- react.ReactEditor.focus(editor);
149
- setToolInput(undefined);
150
- }, toolInput: toolInput }))))));
42
+ function roundNumber(value, min, max) {
43
+ if (value < min) {
44
+ return min;
45
+ }
46
+ if (value > max) {
47
+ return max;
48
+ }
49
+ return value;
50
+ }
51
+ /**
52
+ * @todo
53
+ * Also round top.
54
+ */
55
+ function setPosition(el, range) {
56
+ const rect = range.getBoundingClientRect();
57
+ const top = rect.top + window.pageYOffset - el.offsetHeight;
58
+ const left = roundNumber(rect.left + window.pageXOffset - (el.offsetWidth - rect.width) / 2, 0, window.innerWidth - el.offsetWidth);
59
+ el.style.top = `${top}px`;
60
+ el.style.left = `${left}px`;
61
+ }
62
+ function Toolbar(props) {
63
+ const { children, disabledElementTypes } = props;
64
+ const { props: themeProps } = React.useContext(react.ThemeContext);
65
+ const editor = react.useQuadrats();
66
+ const toolbarRef = React.useRef(null);
67
+ const lastNativeRangeRef = React.useRef();
68
+ const focused = react.ReactEditor.isFocused(editor);
69
+ const { selection } = editor;
70
+ const [toolInput, setToolInput] = React.useState();
71
+ const startToolInput = React.useCallback(inputConfig => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
72
+ let renderExpandedStatus;
73
+ if (toolInput) {
74
+ const { currentSelection } = toolInput;
75
+ if (currentSelection) {
76
+ if (core.Range.isExpanded(currentSelection)) {
77
+ renderExpandedStatus = true;
78
+ }
79
+ else {
80
+ renderExpandedStatus = false;
81
+ }
82
+ }
83
+ }
84
+ else if (focused) {
85
+ if (selection && core.Range.isCollapsed(selection)) {
86
+ renderExpandedStatus = false;
87
+ }
88
+ else if (core.getSelectionText(editor) !== '') {
89
+ renderExpandedStatus = true;
90
+ }
91
+ }
92
+ const shouldRender = typeof renderExpandedStatus === 'boolean';
93
+ React.useLayoutEffect(() => {
94
+ /**
95
+ * The native selection is not yet synchronized while effect invoked.
96
+ * Thus invoke handler on next frame to avoid from this issue.
97
+ */
98
+ window.requestAnimationFrame(() => {
99
+ /**
100
+ * Editor will be blurred after getting into input process.
101
+ * Thus cache the last range of selection to recalculate position of toolbar.
102
+ */
103
+ if (!toolInput) {
104
+ const nativeSelection = window.getSelection();
105
+ if (nativeSelection && nativeSelection.rangeCount > 0) {
106
+ lastNativeRangeRef.current = nativeSelection.getRangeAt(0);
107
+ }
108
+ }
109
+ const el = toolbarRef.current;
110
+ const range = lastNativeRangeRef.current;
111
+ if (shouldRender && el && range) {
112
+ setPosition(el, range);
113
+ }
114
+ });
115
+ });
116
+ const getPortalContainer = React.useCallback(() => {
117
+ var _a;
118
+ if ((_a = props.containerRef) === null || _a === void 0 ? void 0 : _a.current) {
119
+ return props.containerRef.current;
120
+ }
121
+ return document.body;
122
+ }, [props.containerRef]);
123
+ if (!shouldRender || (disabledElementTypes && core.isNodesTypeIn(editor, disabledElementTypes, { mode: 'all' }))) {
124
+ return null;
125
+ }
126
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
127
+ const tools = children(renderExpandedStatus);
128
+ if (!tools) {
129
+ return null;
130
+ }
131
+ return (React.createElement(components.Portal, { getContainer: getPortalContainer },
132
+ React.createElement("div", { ref: toolbarRef, className: clsx('qdr-toolbar__wrapper', { 'qdr-toolbar__wrapper--inputting': toolInput }, themeProps.className), style: themeProps.style },
133
+ React.createElement("div", { className: "qdr-toolbar__arrow" }),
134
+ React.createElement("div", { className: "qdr-toolbar" },
135
+ React.createElement(StartToolInputContext.Provider, { value: startToolInput }, tools),
136
+ toolInput && (React.createElement(ToolbarInput, { exit: () => {
137
+ const { currentSelection } = toolInput;
138
+ if (currentSelection) {
139
+ core.Transforms.select(editor, currentSelection);
140
+ }
141
+ react.ReactEditor.focus(editor);
142
+ setToolInput(undefined);
143
+ }, toolInput: toolInput }))))));
151
144
  }
152
145
 
153
- function ToolbarIcon(props) {
154
- const { active, className, onMouseDown } = props, rest = tslib.__rest(props, ["active", "className", "onMouseDown"]);
155
- return (React__default.createElement(components.Icon, Object.assign({}, rest, { className: clsx__default('qdr-toolbar__icon', { 'qdr-toolbar__icon--active': active }, className), onMouseDown: (event) => {
156
- event.preventDefault();
157
- onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event);
158
- } })));
146
+ function ToolbarIcon(props) {
147
+ const { active, className, onMouseDown } = props, rest = tslib.__rest(props, ["active", "className", "onMouseDown"]);
148
+ return (React.createElement(components.Icon, Object.assign({}, rest, { className: clsx('qdr-toolbar__icon', { 'qdr-toolbar__icon--active': active }, className), onMouseDown: (event) => {
149
+ event.preventDefault();
150
+ onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event);
151
+ } })));
159
152
  }
160
153
 
161
- function useStartToolInput() {
162
- return React.useContext(StartToolInputContext);
154
+ function useStartToolInput() {
155
+ return React.useContext(StartToolInputContext);
163
156
  }
164
157
 
165
158
  exports.TOOLBAR_DIVIDER = TOOLBAR_DIVIDER;
@@ -1 +1 @@
1
- .qdr-toolbar{display:flex;align-items:center;font-size:24px;height:40px;padding:8px 10px;background-color:var(--qdr-surface);border:1px solid var(--qdr-border);border-radius:4px;box-sizing:border-box}.qdr-toolbar__wrapper{position:absolute;z-index:1;padding-bottom:10px;height:40px;box-sizing:content-box}.qdr-toolbar__wrapper--inputting{min-width:250px;max-width:350px}.qdr-toolbar__arrow{position:absolute;top:calc(100% - 10px);left:50%;content:"";width:10px;height:10px;background:var(--qdr-surface);border:1px solid var(--qdr-border);border-top:none;border-left:none;transform:translateX(-50%) translateY(-50%) rotate(45deg)}.qdr-toolbar__divider{width:1px;height:20px;background-color:var(--qdr-divider);margin:0 8px}.qdr-toolbar__icon{position:relative;color:var(--qdr-icon);font-size:24px;display:inline-flex;justify-content:center;align-items:center;margin:0 9px;border:0;background-color:transparent;padding:0;outline:none;box-shadow:none;border-radius:0;transition:color .2s ease-out;cursor:pointer}.qdr-toolbar__icon:hover,.qdr-toolbar__icon--active{color:var(--qdr-primary)}.qdr-toolbar__input{font-size:13px;background:var(--qdr-surface);color:var(--qdr-placeholder);width:calc(100% - 14px);height:100%;border:none;padding:0;outline:none}.qdr-toolbar__input__wrapper{display:flex;align-items:center;position:absolute;top:8px;left:10px;width:calc(100% - 20px);height:calc(100% - 26px);background:var(--qdr-surface);box-sizing:border-box}.qdr-toolbar__input__cross{fill:var(--qdr-placeholder);font-size:14px;width:1em;height:1em;cursor:pointer}
1
+ .qdr-toolbar{display:flex;align-items:center;font-size:24px;height:40px;padding:8px 10px;background-color:var(--qdr-surface);border:1px solid var(--qdr-border);border-radius:4px;box-sizing:border-box}.qdr-toolbar__wrapper{position:absolute;z-index:1;padding-bottom:10px;height:40px;box-sizing:content-box}.qdr-toolbar__wrapper--inputting{min-width:250px;max-width:350px}.qdr-toolbar__arrow{position:absolute;top:calc(100% - 10px);left:50%;content:"";width:10px;height:10px;background:var(--qdr-surface);border:1px solid var(--qdr-border);border-top:none;border-left:none;transform:translateX(-50%) translateY(-50%) rotate(45deg)}.qdr-toolbar__divider{width:1px;height:20px;background-color:var(--qdr-divider);margin:0 8px}.qdr-toolbar__icon{position:relative;color:var(--qdr-icon);font-size:24px;display:inline-flex;justify-content:center;align-items:center;margin:0 9px;border:0;background-color:rgba(0,0,0,0);padding:0;outline:none;box-shadow:none;border-radius:0;transition:color .2s ease-out;cursor:pointer}.qdr-toolbar__icon:hover,.qdr-toolbar__icon--active{color:var(--qdr-primary)}.qdr-toolbar__input{font-size:13px;background:var(--qdr-surface);color:var(--qdr-placeholder);width:calc(100% - 14px);height:100%;border:none;padding:0;outline:none}.qdr-toolbar__input__wrapper{display:flex;align-items:center;position:absolute;top:8px;left:10px;width:calc(100% - 20px);height:calc(100% - 26px);background:var(--qdr-surface);box-sizing:border-box}.qdr-toolbar__input__cross{fill:var(--qdr-placeholder);font-size:14px;width:1em;height:1em;cursor:pointer}
@@ -3,4 +3,4 @@ import { InputWidgetConfig } from '@quadrats/common/input-widget';
3
3
  export interface ToolInputConfig extends InputWidgetConfig {
4
4
  currentSelection: Range | null;
5
5
  }
6
- export declare type StartToolInput = (config: InputWidgetConfig) => void;
6
+ export type StartToolInput = (config: InputWidgetConfig) => void;
@@ -1,8 +1,8 @@
1
- /**
2
- * Default hotkey for toggling underline.
3
- *
4
- * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
5
- */
1
+ /**
2
+ * Default hotkey for toggling underline.
3
+ *
4
+ * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
5
+ */
6
6
  const UNDERLINE_HOTKEY = 'mod+u';
7
7
 
8
8
  export { UNDERLINE_HOTKEY };
@@ -1 +1 @@
1
- export declare const createReactUnderline: (variant?: string | undefined) => import("@quadrats/react/toggle-mark").ReactToggleMark;
1
+ export declare const createReactUnderline: (variant?: string) => import("@quadrats/react/toggle-mark").ReactToggleMark;
@@ -3,9 +3,9 @@ import { createReactToggleMarkCreator } from '@quadrats/react/toggle-mark';
3
3
  import { defaultRenderUnderline } from './defaultRenderUnderline.js';
4
4
  import { UNDERLINE_HOTKEY } from './constants.js';
5
5
 
6
- const createReactUnderline = (variant) => createReactToggleMarkCreator(createUnderline(variant), {
7
- hotkey: UNDERLINE_HOTKEY,
8
- render: defaultRenderUnderline,
6
+ const createReactUnderline = (variant) => createReactToggleMarkCreator(createUnderline(variant), {
7
+ hotkey: UNDERLINE_HOTKEY,
8
+ render: defaultRenderUnderline,
9
9
  })();
10
10
 
11
11
  export { createReactUnderline };
@@ -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 defaultRenderUnderline: ({ children, leaf }: RenderMarkPropsBase<boolean>) => JSX.Element;
3
+ export declare const defaultRenderUnderline: ({ children, leaf }: RenderMarkPropsBase<boolean>) => React.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { UNDERLINE_TYPE } from '@quadrats/common/underline';
3
3
 
4
- const defaultRenderUnderline = ({ children, leaf }) => (React.createElement("u", { className: leaf.underlineVariant
4
+ const defaultRenderUnderline = ({ children, leaf }) => (React.createElement("u", { className: leaf.underlineVariant
5
5
  ? `${UNDERLINE_TYPE}.${leaf.underlineVariant}` : `${UNDERLINE_TYPE}` }, children));
6
6
 
7
7
  export { defaultRenderUnderline };
@@ -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 underline = require('@quadrats/common/underline');
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 underline.
15
- *
16
- * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
17
- */
7
+ /**
8
+ * Default hotkey for toggling underline.
9
+ *
10
+ * @see [is-hotkey]{@link https://www.npmjs.com/package/is-hotkey}
11
+ */
18
12
  const UNDERLINE_HOTKEY = 'mod+u';
19
13
 
20
- const defaultRenderUnderline = ({ children, leaf }) => (React__default.createElement("u", { className: leaf.underlineVariant
14
+ const defaultRenderUnderline = ({ children, leaf }) => (React.createElement("u", { className: leaf.underlineVariant
21
15
  ? `${underline.UNDERLINE_TYPE}.${leaf.underlineVariant}` : `${underline.UNDERLINE_TYPE}` }, children));
22
16
 
23
- const createReactUnderline = (variant) => toggleMark.createReactToggleMarkCreator(underline.createUnderline(variant), {
24
- hotkey: UNDERLINE_HOTKEY,
25
- render: defaultRenderUnderline,
17
+ const createReactUnderline = (variant) => toggleMark.createReactToggleMarkCreator(underline.createUnderline(variant), {
18
+ hotkey: UNDERLINE_HOTKEY,
19
+ render: defaultRenderUnderline,
26
20
  })();
27
21
 
28
22
  exports.UNDERLINE_HOTKEY = UNDERLINE_HOTKEY;
@@ -2,9 +2,9 @@ import { UNDERLINE_TYPE } from '@quadrats/common/underline';
2
2
  import { createJsxSerializeToggleMarkCreator } from '@quadrats/react/toggle-mark/jsx-serializer';
3
3
  import { defaultRenderUnderline } from '@quadrats/react/underline';
4
4
 
5
- const createJsxSerializeUnderline = createJsxSerializeToggleMarkCreator({
6
- type: UNDERLINE_TYPE,
7
- render: defaultRenderUnderline,
5
+ const createJsxSerializeUnderline = createJsxSerializeToggleMarkCreator({
6
+ type: UNDERLINE_TYPE,
7
+ render: defaultRenderUnderline,
8
8
  });
9
9
 
10
10
  export { createJsxSerializeUnderline };
@@ -1,14 +1,12 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var underline = require('@quadrats/react/underline');
6
4
  var underline$1 = require('@quadrats/common/underline');
7
5
  var jsxSerializer = require('@quadrats/react/toggle-mark/jsx-serializer');
8
6
 
9
- const createJsxSerializeUnderline = jsxSerializer.createJsxSerializeToggleMarkCreator({
10
- type: underline$1.UNDERLINE_TYPE,
11
- render: underline.defaultRenderUnderline,
7
+ const createJsxSerializeUnderline = jsxSerializer.createJsxSerializeToggleMarkCreator({
8
+ type: underline$1.UNDERLINE_TYPE,
9
+ render: underline.defaultRenderUnderline,
12
10
  });
13
11
 
14
12
  exports.defaultRenderUnderline = underline.defaultRenderUnderline;
@@ -1,32 +1,32 @@
1
- /**
2
- * Compose all refs to single one.
3
- * It's helpful if you want to use useRef in an forwardRef component.
4
- *
5
- * @example
6
- *
7
- * const Some = forwardRef((props, ref) => {
8
- * const refFromHook = useRef(null);
9
- * const composedRef = composeRefs([ref, refFromHook]);
10
- *
11
- * return (
12
- * <div ref{composedRef}>
13
- * ...
14
- * </div>
15
- * );
16
- * });
17
- */
18
- function composeRefs(refs) {
19
- return (element) => {
20
- refs.forEach((ref) => {
21
- if (!ref) {
22
- return;
23
- }
24
- if (typeof ref === 'function') {
25
- return ref(element);
26
- }
27
- ref.current = element;
28
- });
29
- };
1
+ /**
2
+ * Compose all refs to single one.
3
+ * It's helpful if you want to use useRef in an forwardRef component.
4
+ *
5
+ * @example
6
+ *
7
+ * const Some = forwardRef((props, ref) => {
8
+ * const refFromHook = useRef(null);
9
+ * const composedRef = composeRefs([ref, refFromHook]);
10
+ *
11
+ * return (
12
+ * <div ref{composedRef}>
13
+ * ...
14
+ * </div>
15
+ * );
16
+ * });
17
+ */
18
+ function composeRefs(refs) {
19
+ return (element) => {
20
+ refs.forEach((ref) => {
21
+ if (!ref) {
22
+ return;
23
+ }
24
+ if (typeof ref === 'function') {
25
+ return ref(element);
26
+ }
27
+ ref.current = element;
28
+ });
29
+ };
30
30
  }
31
31
 
32
32
  export { composeRefs };
@@ -1,36 +1,34 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- /**
6
- * Compose all refs to single one.
7
- * It's helpful if you want to use useRef in an forwardRef component.
8
- *
9
- * @example
10
- *
11
- * const Some = forwardRef((props, ref) => {
12
- * const refFromHook = useRef(null);
13
- * const composedRef = composeRefs([ref, refFromHook]);
14
- *
15
- * return (
16
- * <div ref{composedRef}>
17
- * ...
18
- * </div>
19
- * );
20
- * });
21
- */
22
- function composeRefs(refs) {
23
- return (element) => {
24
- refs.forEach((ref) => {
25
- if (!ref) {
26
- return;
27
- }
28
- if (typeof ref === 'function') {
29
- return ref(element);
30
- }
31
- ref.current = element;
32
- });
33
- };
3
+ /**
4
+ * Compose all refs to single one.
5
+ * It's helpful if you want to use useRef in an forwardRef component.
6
+ *
7
+ * @example
8
+ *
9
+ * const Some = forwardRef((props, ref) => {
10
+ * const refFromHook = useRef(null);
11
+ * const composedRef = composeRefs([ref, refFromHook]);
12
+ *
13
+ * return (
14
+ * <div ref{composedRef}>
15
+ * ...
16
+ * </div>
17
+ * );
18
+ * });
19
+ */
20
+ function composeRefs(refs) {
21
+ return (element) => {
22
+ refs.forEach((ref) => {
23
+ if (!ref) {
24
+ return;
25
+ }
26
+ if (typeof ref === 'function') {
27
+ return ref(element);
28
+ }
29
+ ref.current = element;
30
+ });
31
+ };
34
32
  }
35
33
 
36
34
  exports.composeRefs = composeRefs;