@quadrats/react 1.1.6 → 1.1.8

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 (1422) hide show
  1. package/CHANGELOG.md +610 -0
  2. package/_internal/package.json +1 -4
  3. package/_internal/src/renderer/composeRenderElementsBase.ts +19 -0
  4. package/_internal/src/renderer/composeRenderLeafsBase.ts +17 -0
  5. package/_internal/src/renderer/createRenderElementBase.ts +14 -0
  6. package/_internal/src/renderer/createRenderElementsBase.ts +15 -0
  7. package/_internal/src/renderer/createRenderMarkBase.ts +19 -0
  8. package/_internal/src/renderer/typings.ts +30 -0
  9. package/_internal/tsconfig.build.json +5 -0
  10. package/accordion/jsx-serializer/package.json +6 -3
  11. package/accordion/jsx-serializer/src/createJsxSerializeAccordion.ts +79 -0
  12. package/accordion/jsx-serializer/src/defaultRenderAccordionElements.tsx +21 -0
  13. package/accordion/jsx-serializer/src/typings.ts +16 -0
  14. package/accordion/jsx-serializer/tsconfig.build.json +5 -0
  15. package/accordion/package.json +8 -3
  16. package/accordion/src/components/Accordion.tsx +53 -0
  17. package/accordion/src/components/AccordionContent.tsx +38 -0
  18. package/accordion/src/components/AccordionTitle.tsx +33 -0
  19. package/accordion/src/contexts/AccordionContext.ts +4 -0
  20. package/accordion/src/createReactAccordion.ts +194 -0
  21. package/accordion/src/defaultRenderAccordionElements.tsx +11 -0
  22. package/accordion/src/hooks/useAccordion.ts +6 -0
  23. package/accordion/src/typings.ts +41 -0
  24. package/accordion/toolbar/package.json +6 -3
  25. package/accordion/toolbar/src/AccordionToolbarIcon.tsx +17 -0
  26. package/accordion/toolbar/src/index.ts +3 -0
  27. package/accordion/toolbar/src/useAccordionTool.ts +10 -0
  28. package/accordion/toolbar/tsconfig.build.json +5 -0
  29. package/accordion/tsconfig.build.json +5 -0
  30. package/align/package.json +5 -3
  31. package/align/src/constants.ts +8 -0
  32. package/align/src/createReactAlign.ts +27 -0
  33. package/align/src/typings.ts +20 -0
  34. package/align/toolbar/package.json +7 -3
  35. package/align/toolbar/src/AlignToolbarIcon.tsx +19 -0
  36. package/align/toolbar/src/index.ts +3 -0
  37. package/align/toolbar/src/useAlignTool.ts +18 -0
  38. package/align/toolbar/tsconfig.build.json +5 -0
  39. package/align/tsconfig.build.json +5 -0
  40. package/blockquote/jsx-serializer/package.json +6 -3
  41. package/blockquote/jsx-serializer/src/createJsxSerializeBlockquote.ts +14 -0
  42. package/blockquote/jsx-serializer/src/typings.ts +4 -0
  43. package/blockquote/jsx-serializer/tsconfig.build.json +5 -0
  44. package/blockquote/package.json +9 -3
  45. package/blockquote/src/ReactBlockquote.spec.tsx +42 -0
  46. package/blockquote/src/constants.ts +6 -0
  47. package/blockquote/src/createReactBlockquote.ts +105 -0
  48. package/blockquote/src/defaultRenderBlockquoteElement.tsx +15 -0
  49. package/blockquote/src/typings.ts +22 -0
  50. package/blockquote/toolbar/package.json +6 -3
  51. package/blockquote/toolbar/src/BlockquoteToolbarIcon.tsx +17 -0
  52. package/blockquote/toolbar/src/useBlockquoteTool.ts +11 -0
  53. package/blockquote/toolbar/tsconfig.build.json +5 -0
  54. package/blockquote/tsconfig.build.json +5 -0
  55. package/bold/jsx-serializer/package.json +6 -3
  56. package/bold/jsx-serializer/src/createJsxSerializeBold.ts +8 -0
  57. package/bold/jsx-serializer/tsconfig.build.json +5 -0
  58. package/bold/package.json +5 -3
  59. package/bold/src/constants.ts +6 -0
  60. package/bold/src/createReactBold.ts +11 -0
  61. package/bold/src/defaultRenderBold.tsx +12 -0
  62. package/bold/src/typings.ts +6 -0
  63. package/bold/tsconfig.build.json +5 -0
  64. package/card/jsx-serializer/package.json +6 -3
  65. package/card/jsx-serializer/src/createJsxSerializeCard.ts +65 -0
  66. package/card/jsx-serializer/src/defaultRenderCardElements.tsx +9 -0
  67. package/card/jsx-serializer/src/typings.ts +20 -0
  68. package/card/jsx-serializer/tsconfig.build.json +5 -0
  69. package/card/package.json +11 -3
  70. package/card/src/components/Card.tsx +139 -0
  71. package/card/src/components/CardContents.tsx +35 -0
  72. package/card/src/components/CardImage.tsx +30 -0
  73. package/card/src/components/CardPlaceholder.tsx +40 -0
  74. package/card/src/createReactCard.ts +101 -0
  75. package/card/src/defaultRenderCardElements.tsx +16 -0
  76. package/card/src/typings.ts +46 -0
  77. package/card/toolbar/package.json +6 -3
  78. package/card/toolbar/src/CardToolbarIcon.tsx +17 -0
  79. package/card/toolbar/src/useCardTool.tsx +43 -0
  80. package/card/toolbar/tsconfig.build.json +5 -0
  81. package/card/tsconfig.build.json +5 -0
  82. package/carousel/jsx-serializer/package.json +6 -3
  83. package/carousel/jsx-serializer/src/createJsxSerializeCarousel.ts +71 -0
  84. package/carousel/jsx-serializer/src/defaultRenderCarouselElements.tsx +9 -0
  85. package/carousel/jsx-serializer/src/typings.ts +20 -0
  86. package/carousel/jsx-serializer/tsconfig.build.json +5 -0
  87. package/carousel/package.json +10 -3
  88. package/carousel/src/components/Carousel.tsx +102 -0
  89. package/carousel/src/components/CarouselCaption.tsx +27 -0
  90. package/carousel/src/components/CarouselImages.tsx +97 -0
  91. package/carousel/src/components/CarouselPlaceholder.tsx +26 -0
  92. package/carousel/src/contexts/CarouselContext.ts +4 -0
  93. package/carousel/src/createReactCarousel.ts +104 -0
  94. package/carousel/src/defaultRenderCarouselElements.tsx +16 -0
  95. package/carousel/src/hooks/useCarousel.ts +6 -0
  96. package/carousel/src/typings.ts +55 -0
  97. package/carousel/toolbar/package.json +6 -3
  98. package/carousel/toolbar/src/CarouselToolbarIcon.tsx +17 -0
  99. package/carousel/toolbar/src/useCarouselTool.tsx +34 -0
  100. package/carousel/toolbar/tsconfig.build.json +5 -0
  101. package/carousel/tsconfig.build.json +5 -0
  102. package/components/package.json +21 -3
  103. package/components/src/BaseField/index.tsx +35 -0
  104. package/components/src/Button/index.tsx +48 -0
  105. package/components/src/Hint/index.tsx +61 -0
  106. package/components/src/Icon/index.tsx +45 -0
  107. package/components/src/ImageUploader/index.tsx +306 -0
  108. package/components/src/Input/index.tsx +72 -0
  109. package/components/src/Message/index.tsx +138 -0
  110. package/components/src/Modal/index.tsx +161 -0
  111. package/components/src/Notifier/NotifierManager.tsx +50 -0
  112. package/components/src/Notifier/createNotifier.tsx +100 -0
  113. package/components/src/Notifier/typings.ts +33 -0
  114. package/components/src/Portal/index.tsx +15 -0
  115. package/components/src/Progress/index.tsx +49 -0
  116. package/components/src/SegmentedControl/index.tsx +37 -0
  117. package/components/src/Textarea/index.tsx +74 -0
  118. package/components/src/Toggle/index.tsx +34 -0
  119. package/components/src/Tooltip/calculatePosition.ts +84 -0
  120. package/components/src/Tooltip/index.tsx +187 -0
  121. package/components/src/Tooltip/typings.ts +40 -0
  122. package/components/src/Transition/SlideFade.tsx +159 -0
  123. package/components/src/Transition/Transition.tsx +176 -0
  124. package/components/src/Transition/getTransitionStyleProps.ts +48 -0
  125. package/components/src/Transition/useSetNodeTransition.ts +46 -0
  126. package/components/src/index.ts +17 -0
  127. package/components/tsconfig.build.json +5 -0
  128. package/configs/package.json +1 -4
  129. package/configs/src/ConfigsProvider.tsx +39 -0
  130. package/configs/src/locale.ts +8 -0
  131. package/configs/src/theme.ts +50 -0
  132. package/configs/tsconfig.build.json +5 -0
  133. package/divider/jsx-serializer/package.json +6 -3
  134. package/divider/jsx-serializer/src/createJsxSerializeDivider.ts +12 -0
  135. package/divider/jsx-serializer/src/defaultRenderDividerElement.tsx +3 -0
  136. package/divider/jsx-serializer/src/typings.ts +4 -0
  137. package/divider/jsx-serializer/tsconfig.build.json +5 -0
  138. package/divider/package.json +8 -3
  139. package/divider/src/createReactDivider.ts +16 -0
  140. package/divider/src/defaultRenderDividerElement.tsx +8 -0
  141. package/divider/src/typings.ts +13 -0
  142. package/divider/toolbar/package.json +6 -3
  143. package/divider/toolbar/src/DividerToolbarIcon.tsx +17 -0
  144. package/divider/toolbar/src/index.ts +3 -0
  145. package/divider/toolbar/src/useDividerTool.ts +10 -0
  146. package/divider/toolbar/tsconfig.build.json +5 -0
  147. package/divider/tsconfig.build.json +5 -0
  148. package/embed/jsx-serializer/facebook/package.json +6 -3
  149. package/embed/jsx-serializer/facebook/tsconfig.build.json +5 -0
  150. package/embed/jsx-serializer/instagram/package.json +6 -3
  151. package/embed/jsx-serializer/instagram/tsconfig.build.json +5 -0
  152. package/embed/jsx-serializer/package.json +6 -3
  153. package/embed/jsx-serializer/src/createJsxSerializeEmbed.ts +20 -0
  154. package/embed/jsx-serializer/src/typings.ts +7 -0
  155. package/embed/jsx-serializer/tsconfig.build.json +5 -0
  156. package/embed/jsx-serializer/twitter/package.json +6 -3
  157. package/embed/jsx-serializer/twitter/tsconfig.build.json +5 -0
  158. package/embed/jsx-serializer/vimeo/package.json +6 -3
  159. package/embed/jsx-serializer/vimeo/tsconfig.build.json +5 -0
  160. package/embed/jsx-serializer/youtube/package.json +6 -3
  161. package/embed/jsx-serializer/youtube/tsconfig.build.json +5 -0
  162. package/embed/package.json +8 -3
  163. package/embed/renderers/base/package.json +6 -3
  164. package/embed/renderers/base/src/components/BaseEmbedElement.tsx +107 -0
  165. package/embed/renderers/base/src/index.ts +5 -0
  166. package/embed/renderers/base/tsconfig.build.json +5 -0
  167. package/embed/renderers/facebook/package.json +6 -3
  168. package/embed/renderers/facebook/src/components/Facebook.tsx +56 -0
  169. package/embed/renderers/facebook/src/defaultRenderFacebookEmbedElement.tsx +81 -0
  170. package/embed/renderers/facebook/tsconfig.build.json +5 -0
  171. package/embed/renderers/instagram/package.json +6 -3
  172. package/embed/renderers/instagram/src/components/Instagram.tsx +86 -0
  173. package/embed/renderers/instagram/src/defaultRenderInstagramEmbedElement.tsx +74 -0
  174. package/embed/renderers/instagram/src/hooks/useLoadInstagramEmbedApi.ts +39 -0
  175. package/embed/renderers/instagram/tsconfig.build.json +5 -0
  176. package/embed/renderers/podcast-apple/package.json +6 -3
  177. package/embed/renderers/podcast-apple/src/components/PodcastApple.tsx +37 -0
  178. package/embed/renderers/podcast-apple/src/defaultRenderPodcastAppleEmbedElement.tsx +69 -0
  179. package/embed/renderers/podcast-apple/tsconfig.build.json +5 -0
  180. package/embed/renderers/spotify/package.json +6 -3
  181. package/embed/renderers/spotify/src/components/Spotify.tsx +51 -0
  182. package/embed/renderers/spotify/src/defaultRenderSpotifyEmbedElement.tsx +63 -0
  183. package/embed/renderers/spotify/tsconfig.build.json +5 -0
  184. package/embed/renderers/twitter/package.json +6 -3
  185. package/embed/renderers/twitter/src/components/Twitter.tsx +47 -0
  186. package/embed/renderers/twitter/src/defaultRenderTwitterEmbedElement.tsx +78 -0
  187. package/embed/renderers/twitter/src/hooks/useLoadTwitterEmbedApi.ts +55 -0
  188. package/embed/renderers/twitter/tsconfig.build.json +5 -0
  189. package/embed/renderers/vimeo/package.json +6 -3
  190. package/embed/renderers/vimeo/src/defaultRenderVimeoEmbedElement.tsx +52 -0
  191. package/embed/renderers/vimeo/tsconfig.build.json +5 -0
  192. package/embed/renderers/youtube/package.json +6 -3
  193. package/embed/renderers/youtube/src/defaultRenderYoutubeEmbedElement.tsx +52 -0
  194. package/embed/renderers/youtube/tsconfig.build.json +5 -0
  195. package/embed/src/components/VideoIframe.tsx +41 -0
  196. package/embed/src/createReactEmbed.ts +23 -0
  197. package/embed/src/createRenderEmbedElementBase.ts +30 -0
  198. package/embed/src/hooks/useVideoIframeSize.ts +28 -0
  199. package/embed/src/typings.ts +26 -0
  200. package/embed/toolbar/package.json +6 -3
  201. package/embed/toolbar/src/EmbedToolbarIcon.tsx +25 -0
  202. package/embed/toolbar/src/index.ts +3 -0
  203. package/embed/toolbar/src/useEmbedTool.tsx +106 -0
  204. package/embed/toolbar/tsconfig.build.json +5 -0
  205. package/embed/tsconfig.build.json +5 -0
  206. package/file-uploader/package.json +9 -3
  207. package/file-uploader/src/components/FileUploader.tsx +18 -0
  208. package/file-uploader/src/createReactFileUploader.ts +28 -0
  209. package/file-uploader/src/defaultRenderFileUploaderElement.tsx +5 -0
  210. package/file-uploader/src/hooks/useFileUploader.ts +14 -0
  211. package/file-uploader/src/typings.ts +19 -0
  212. package/file-uploader/toolbar/package.json +6 -3
  213. package/file-uploader/toolbar/src/FileUploaderToolbarIcon.tsx +19 -0
  214. package/file-uploader/toolbar/src/index.ts +3 -0
  215. package/file-uploader/toolbar/src/useFileUploaderTool.ts +14 -0
  216. package/file-uploader/toolbar/tsconfig.build.json +5 -0
  217. package/file-uploader/tsconfig.build.json +5 -0
  218. package/footnote/jsx-serializer/package.json +6 -3
  219. package/footnote/jsx-serializer/src/createJsxSerializeFootnote.ts +13 -0
  220. package/footnote/jsx-serializer/src/defaultRenderFootnoteElement.tsx +18 -0
  221. package/footnote/jsx-serializer/src/typings.ts +4 -0
  222. package/footnote/jsx-serializer/tsconfig.build.json +5 -0
  223. package/footnote/package.json +5 -3
  224. package/footnote/src/createReactFootnote.ts +22 -0
  225. package/footnote/src/defaultRenderFootnoteElement.tsx +36 -0
  226. package/footnote/src/typings.ts +14 -0
  227. package/footnote/src/useFootnotes.ts +28 -0
  228. package/footnote/src/useFootnotesFromNodes.ts +33 -0
  229. package/footnote/toolbar/package.json +6 -3
  230. package/footnote/toolbar/src/FootnoteToolbarIcon.tsx +18 -0
  231. package/footnote/toolbar/src/index.ts +3 -0
  232. package/footnote/toolbar/src/useFootnoteTool.ts +22 -0
  233. package/footnote/toolbar/tsconfig.build.json +5 -0
  234. package/footnote/tsconfig.build.json +5 -0
  235. package/heading/jsx-serializer/package.json +6 -3
  236. package/heading/jsx-serializer/src/createJsxSerializeHeading.ts +13 -0
  237. package/heading/jsx-serializer/src/typings.ts +4 -0
  238. package/heading/jsx-serializer/tsconfig.build.json +5 -0
  239. package/heading/package.json +9 -3
  240. package/heading/src/constants.ts +9 -0
  241. package/heading/src/createReactHeading.ts +56 -0
  242. package/heading/src/defaultRenderHeadingElement.tsx +36 -0
  243. package/heading/src/typings.ts +21 -0
  244. package/heading/toolbar/package.json +6 -3
  245. package/heading/toolbar/src/HeadingToolbarIcon.tsx +22 -0
  246. package/heading/toolbar/src/index.ts +3 -0
  247. package/heading/toolbar/src/useToggleHeadingTool.ts +15 -0
  248. package/heading/toolbar/tsconfig.build.json +5 -0
  249. package/heading/tsconfig.build.json +5 -0
  250. package/highlight/jsx-serializer/package.json +6 -3
  251. package/highlight/jsx-serializer/src/createJsxSerializeHighlight.ts +8 -0
  252. package/highlight/jsx-serializer/tsconfig.build.json +5 -0
  253. package/highlight/package.json +5 -3
  254. package/highlight/src/constants.ts +6 -0
  255. package/highlight/src/createReactHighlight.ts +11 -0
  256. package/highlight/src/defaultRenderHighlight.tsx +12 -0
  257. package/highlight/src/typings.ts +6 -0
  258. package/highlight/tsconfig.build.json +5 -0
  259. package/image/jsx-serializer/package.json +6 -3
  260. package/image/jsx-serializer/src/createJsxSerializeImage.ts +85 -0
  261. package/image/jsx-serializer/src/defaultRenderImageElements.tsx +21 -0
  262. package/image/jsx-serializer/src/typings.ts +34 -0
  263. package/image/jsx-serializer/tsconfig.build.json +5 -0
  264. package/image/package.json +10 -3
  265. package/image/src/components/Image.tsx +107 -0
  266. package/image/src/components/ImageCaption.tsx +35 -0
  267. package/image/src/components/ImageFigure.tsx +26 -0
  268. package/image/src/components/ImagePlaceholder.tsx +16 -0
  269. package/image/src/createReactImage.ts +191 -0
  270. package/image/src/defaultRenderImageElements.tsx +11 -0
  271. package/image/src/hooks/useImageResizer.ts +135 -0
  272. package/image/src/typings.ts +50 -0
  273. package/image/tsconfig.build.json +5 -0
  274. package/input-block/package.json +8 -3
  275. package/input-block/src/components/InputBlock.tsx +70 -0
  276. package/input-block/src/createReactInputBlock.ts +34 -0
  277. package/input-block/src/defaultRenderInputBlockElement.tsx +5 -0
  278. package/input-block/src/hooks/useInputBlock.ts +61 -0
  279. package/input-block/src/typings.ts +19 -0
  280. package/input-block/tsconfig.build.json +5 -0
  281. package/italic/jsx-serializer/package.json +6 -3
  282. package/italic/jsx-serializer/src/createJsxSerializeItalic.ts +8 -0
  283. package/italic/jsx-serializer/tsconfig.build.json +5 -0
  284. package/italic/package.json +5 -3
  285. package/italic/src/constants.ts +6 -0
  286. package/italic/src/createReactItalic.ts +11 -0
  287. package/italic/src/defaultRenderItalic.tsx +12 -0
  288. package/italic/src/typings.ts +6 -0
  289. package/italic/tsconfig.build.json +5 -0
  290. package/jsx-serializer/package.json +5 -3
  291. package/jsx-serializer/src/createJsxSerializeElement.ts +8 -0
  292. package/jsx-serializer/src/createJsxSerializeElements.ts +8 -0
  293. package/jsx-serializer/src/createJsxSerializeMark.ts +6 -0
  294. package/jsx-serializer/src/createJsxSerializer.tsx +84 -0
  295. package/jsx-serializer/src/typings.ts +20 -0
  296. package/jsx-serializer/tsconfig.build.json +5 -0
  297. package/line-break/jsx-serializer/package.json +6 -3
  298. package/line-break/jsx-serializer/src/createJsxSerializeLineBreak.ts +13 -0
  299. package/line-break/jsx-serializer/src/defaultRenderLineBreakElement.tsx +7 -0
  300. package/line-break/jsx-serializer/src/typings.ts +4 -0
  301. package/line-break/jsx-serializer/tsconfig.build.json +5 -0
  302. package/line-break/package.json +8 -3
  303. package/line-break/src/commonBreak.ts +32 -0
  304. package/line-break/src/createOnKeyDownBreak.ts +88 -0
  305. package/line-break/src/createReactLineBreak.ts +20 -0
  306. package/line-break/src/defaultRenderLineBreakElement.tsx +8 -0
  307. package/line-break/src/renderLineBreakElementWithSymbol.tsx +8 -0
  308. package/line-break/src/typings.ts +38 -0
  309. package/line-break/tsconfig.build.json +5 -0
  310. package/link/jsx-serializer/package.json +6 -3
  311. package/link/jsx-serializer/src/createJsxSerializeLink.ts +11 -0
  312. package/link/jsx-serializer/src/defaultRenderLinkElement.tsx +8 -0
  313. package/link/jsx-serializer/src/typings.ts +4 -0
  314. package/link/jsx-serializer/tsconfig.build.json +5 -0
  315. package/link/package.json +5 -3
  316. package/link/src/createReactLink.ts +49 -0
  317. package/link/src/defaultRenderLinkElement.tsx +27 -0
  318. package/link/src/typings.ts +14 -0
  319. package/link/toolbar/package.json +6 -3
  320. package/link/toolbar/src/LinkToolbarIcon.tsx +18 -0
  321. package/link/toolbar/src/UnlinkToolbarIcon.tsx +17 -0
  322. package/link/toolbar/src/index.ts +5 -0
  323. package/link/toolbar/src/useLinkTool.ts +31 -0
  324. package/link/toolbar/src/useUnlinkTool.ts +10 -0
  325. package/link/toolbar/tsconfig.build.json +5 -0
  326. package/link/tsconfig.build.json +5 -0
  327. package/list/jsx-serializer/package.json +6 -3
  328. package/list/jsx-serializer/src/createJsxSerializeList.ts +21 -0
  329. package/list/jsx-serializer/src/typings.ts +4 -0
  330. package/list/jsx-serializer/tsconfig.build.json +5 -0
  331. package/list/package.json +8 -3
  332. package/list/src/createReactList.ts +52 -0
  333. package/list/src/defaultRenderListElements.tsx +12 -0
  334. package/list/src/typings.ts +14 -0
  335. package/list/toolbar/package.json +6 -3
  336. package/list/toolbar/src/ListToolbarIcon.tsx +19 -0
  337. package/list/toolbar/src/index.ts +3 -0
  338. package/list/toolbar/src/useListTool.ts +12 -0
  339. package/list/toolbar/tsconfig.build.json +5 -0
  340. package/list/tsconfig.build.json +5 -0
  341. package/package.json +19 -6
  342. package/paragraph/jsx-serializer/package.json +6 -3
  343. package/paragraph/jsx-serializer/src/createJsxSerializeParagraph.ts +14 -0
  344. package/paragraph/jsx-serializer/src/typings.ts +4 -0
  345. package/paragraph/jsx-serializer/tsconfig.build.json +5 -0
  346. package/paragraph/package.json +8 -3
  347. package/paragraph/src/createReactParagraph.ts +9 -0
  348. package/paragraph/src/createRenderParagraphElement.ts +17 -0
  349. package/paragraph/src/defaultRenderParagraphElement.tsx +21 -0
  350. package/paragraph/src/renderParagraphElementWithSymbol.tsx +21 -0
  351. package/paragraph/toolbar/package.json +6 -3
  352. package/paragraph/toolbar/src/ParagraphToolbarIcon.tsx +17 -0
  353. package/paragraph/toolbar/src/useToggleParagraphTool.ts +11 -0
  354. package/paragraph/toolbar/tsconfig.build.json +5 -0
  355. package/paragraph/tsconfig.build.json +5 -0
  356. package/read-more/jsx-serializer/package.json +6 -3
  357. package/read-more/jsx-serializer/src/createJsxSerializeReadMore.ts +11 -0
  358. package/read-more/jsx-serializer/src/typings.ts +4 -0
  359. package/read-more/jsx-serializer/tsconfig.build.json +5 -0
  360. package/read-more/package.json +8 -3
  361. package/read-more/src/components/ReadMore.tsx +24 -0
  362. package/read-more/src/createReactReadMore.ts +16 -0
  363. package/read-more/src/defaultRenderReadMoreElement.tsx +5 -0
  364. package/read-more/src/typings.ts +12 -0
  365. package/read-more/toolbar/package.json +6 -3
  366. package/read-more/toolbar/src/ReadMoreToolbarIcon.tsx +17 -0
  367. package/read-more/toolbar/src/index.ts +3 -0
  368. package/read-more/toolbar/src/useReadMoreTool.ts +10 -0
  369. package/read-more/toolbar/tsconfig.build.json +5 -0
  370. package/read-more/tsconfig.build.json +5 -0
  371. package/src/core/components/DefaultElement.tsx +6 -0
  372. package/src/core/components/DefaultLeaf.tsx +6 -0
  373. package/src/core/components/Editable.tsx +129 -0
  374. package/src/core/components/Quadrats.tsx +40 -0
  375. package/src/core/composeHandlers.ts +58 -0
  376. package/src/core/composeRenderElements.tsx +13 -0
  377. package/src/core/composeRenderLeafs.tsx +11 -0
  378. package/src/core/constants.ts +1 -0
  379. package/src/core/contexts/composition/CompositionProvider.tsx +15 -0
  380. package/src/core/contexts/composition/composition.ts +16 -0
  381. package/src/core/contexts/message/MessageProvider.tsx +46 -0
  382. package/src/core/contexts/message/message.ts +14 -0
  383. package/src/core/contexts/modal/CardModal/CardModal.tsx +256 -0
  384. package/src/core/contexts/modal/CarouselModal/CarouselItem.tsx +97 -0
  385. package/src/core/contexts/modal/CarouselModal/CarouselModal.tsx +280 -0
  386. package/src/core/contexts/modal/CarouselModal/FilesDropZone.tsx +118 -0
  387. package/src/core/contexts/modal/ConfirmModal/ConfirmModal.tsx +72 -0
  388. package/src/core/contexts/modal/EmbedModal/EmbedModal.tsx +57 -0
  389. package/src/core/contexts/modal/ModalProvider.tsx +114 -0
  390. package/src/core/contexts/modal/modal.ts +36 -0
  391. package/src/core/createReactEditor.ts +7 -0
  392. package/src/core/createRenderElement.ts +6 -0
  393. package/src/core/createRenderElements.ts +6 -0
  394. package/src/core/createRenderMark.ts +6 -0
  395. package/src/core/index.ts +53 -0
  396. package/src/core/typings/descendant.ts +3 -0
  397. package/src/core/typings/handler.ts +32 -0
  398. package/src/core/typings/renderer.ts +33 -0
  399. package/src/core/typings/with.ts +5 -0
  400. package/strikethrough/jsx-serializer/package.json +6 -3
  401. package/strikethrough/jsx-serializer/src/createJsxSerializeStrikethrough.ts +8 -0
  402. package/strikethrough/jsx-serializer/tsconfig.build.json +5 -0
  403. package/strikethrough/package.json +5 -3
  404. package/strikethrough/src/constants.ts +6 -0
  405. package/strikethrough/src/createReactStrikethrough.ts +11 -0
  406. package/strikethrough/src/defaultRenderStrikethrough.tsx +12 -0
  407. package/strikethrough/src/typings.ts +6 -0
  408. package/strikethrough/tsconfig.build.json +5 -0
  409. package/table/jsx-serializer/package.json +6 -3
  410. package/table/jsx-serializer/src/components/Table.tsx +6 -0
  411. package/table/jsx-serializer/src/components/TableBody.tsx +6 -0
  412. package/table/jsx-serializer/src/components/TableCell.tsx +51 -0
  413. package/table/jsx-serializer/src/components/TableHeader.tsx +16 -0
  414. package/table/jsx-serializer/src/components/TableMain.tsx +36 -0
  415. package/table/jsx-serializer/src/components/TableRow.tsx +6 -0
  416. package/table/jsx-serializer/src/components/TableTitle.tsx +6 -0
  417. package/table/jsx-serializer/src/contexts/TableHeaderContext.ts +3 -0
  418. package/table/jsx-serializer/src/contexts/TableScrollContext.ts +6 -0
  419. package/table/jsx-serializer/src/createJsxSerializeTable.tsx +163 -0
  420. package/table/jsx-serializer/src/defaultRenderTableElements.tsx +19 -0
  421. package/table/jsx-serializer/src/typings.ts +36 -0
  422. package/table/jsx-serializer/tsconfig.build.json +5 -0
  423. package/table/package.json +12 -3
  424. package/table/src/components/ColumnDragButton.tsx +72 -0
  425. package/table/src/components/RowDragButton.tsx +69 -0
  426. package/table/src/components/Table.tsx +351 -0
  427. package/table/src/components/TableBody.tsx +15 -0
  428. package/table/src/components/TableCell.tsx +415 -0
  429. package/table/src/components/TableDragLayer.tsx +127 -0
  430. package/table/src/components/TableHeader.tsx +26 -0
  431. package/table/src/components/TableMain.tsx +322 -0
  432. package/table/src/components/TableRow.tsx +11 -0
  433. package/table/src/components/TableTitle.tsx +28 -0
  434. package/table/src/contexts/TableActionsContext.ts +23 -0
  435. package/table/src/contexts/TableDragContext.tsx +58 -0
  436. package/table/src/contexts/TableHeaderContext.ts +6 -0
  437. package/table/src/contexts/TableMetadataContext.ts +21 -0
  438. package/table/src/contexts/TableScrollContext.ts +8 -0
  439. package/table/src/contexts/TableStateContext.ts +9 -0
  440. package/table/src/createReactTable.ts +371 -0
  441. package/table/src/defaultRenderTableElements.tsx +19 -0
  442. package/table/src/hooks/useColumnResize.ts +242 -0
  443. package/table/src/hooks/useTableActions.ts +1394 -0
  444. package/table/src/hooks/useTableActionsContext.ts +12 -0
  445. package/table/src/hooks/useTableCell.ts +223 -0
  446. package/table/src/hooks/useTableCellToolbarActions.tsx +694 -0
  447. package/table/src/hooks/useTableMetadata.ts +12 -0
  448. package/table/src/hooks/useTableStateContext.ts +12 -0
  449. package/table/src/hooks/useTableStates.ts +14 -0
  450. package/table/src/typings.ts +107 -0
  451. package/table/src/utils/helper.ts +1106 -0
  452. package/table/toolbar/package.json +6 -3
  453. package/table/toolbar/src/TableToolbarIcon.tsx +17 -0
  454. package/table/toolbar/src/useTableTool.ts +14 -0
  455. package/table/toolbar/tsconfig.build.json +5 -0
  456. package/table/tsconfig.build.json +5 -0
  457. package/toggle-mark/jsx-serializer/package.json +6 -3
  458. package/toggle-mark/jsx-serializer/src/createJsxSerializeToggleMarkCreator.ts +12 -0
  459. package/toggle-mark/jsx-serializer/src/index.ts +6 -0
  460. package/toggle-mark/jsx-serializer/src/typings.ts +3 -0
  461. package/toggle-mark/jsx-serializer/tsconfig.build.json +5 -0
  462. package/toggle-mark/package.json +5 -3
  463. package/toggle-mark/src/createReactToggleMarkCreator.ts +33 -0
  464. package/toggle-mark/src/index.ts +6 -0
  465. package/toggle-mark/src/typings.ts +24 -0
  466. package/toggle-mark/toolbar/package.json +6 -3
  467. package/toggle-mark/toolbar/src/ToggleMarkToolbarIcon.tsx +17 -0
  468. package/toggle-mark/toolbar/src/useToggleMarkTool.ts +11 -0
  469. package/toggle-mark/toolbar/tsconfig.build.json +5 -0
  470. package/toggle-mark/tsconfig.build.json +5 -0
  471. package/toolbar/package.json +9 -3
  472. package/toolbar/src/components/InlineToolbar.tsx +81 -0
  473. package/toolbar/src/components/Toolbar.tsx +243 -0
  474. package/toolbar/src/components/ToolbarGroupIcon.tsx +131 -0
  475. package/toolbar/src/components/ToolbarIcon.tsx +84 -0
  476. package/toolbar/src/components/ToolbarInput.tsx +66 -0
  477. package/toolbar/src/components/toolbarIconName.ts +125 -0
  478. package/toolbar/src/constants.tsx +6 -0
  479. package/toolbar/src/contexts/StartToolInputContext.ts +4 -0
  480. package/toolbar/src/contexts/toolbar.ts +14 -0
  481. package/toolbar/src/contexts/toolbarMenu.ts +15 -0
  482. package/toolbar/src/hooks/useAutoGroupIcons.tsx +98 -0
  483. package/toolbar/src/hooks/useStartToolInput.ts +6 -0
  484. package/toolbar/src/index.ts +7 -0
  485. package/toolbar/src/typings.ts +8 -0
  486. package/toolbar/tsconfig.build.json +5 -0
  487. package/tsconfig.build.json +8 -0
  488. package/underline/jsx-serializer/package.json +6 -3
  489. package/underline/jsx-serializer/src/createJsxSerializeUnderline.ts +8 -0
  490. package/underline/jsx-serializer/tsconfig.build.json +5 -0
  491. package/underline/package.json +5 -3
  492. package/underline/src/constants.ts +6 -0
  493. package/underline/src/createReactUnderline.ts +11 -0
  494. package/underline/src/defaultRenderUnderline.tsx +12 -0
  495. package/underline/src/typings.ts +6 -0
  496. package/underline/tsconfig.build.json +5 -0
  497. package/utils/package.json +1 -4
  498. package/utils/src/composeRefs.ts +34 -0
  499. package/utils/src/removePreviousElement.ts +62 -0
  500. package/utils/src/upload.ts +83 -0
  501. package/utils/src/useClickAway.ts +34 -0
  502. package/utils/src/useDocumentEvents.ts +35 -0
  503. package/utils/src/useIsomorphicLayoutEffect.ts +8 -0
  504. package/utils/src/usePreviousValue.ts +11 -0
  505. package/utils/tsconfig.build.json +5 -0
  506. package/LICENSE +0 -21
  507. package/_internal/index.cjs.js +0 -59
  508. package/_internal/index.js +0 -5
  509. package/_internal/renderer/composeRenderElementsBase.d.ts +0 -3
  510. package/_internal/renderer/composeRenderElementsBase.js +0 -13
  511. package/_internal/renderer/composeRenderLeafsBase.d.ts +0 -3
  512. package/_internal/renderer/composeRenderLeafsBase.js +0 -11
  513. package/_internal/renderer/createRenderElementBase.d.ts +0 -3
  514. package/_internal/renderer/createRenderElementBase.js +0 -9
  515. package/_internal/renderer/createRenderElementsBase.d.ts +0 -3
  516. package/_internal/renderer/createRenderElementsBase.js +0 -11
  517. package/_internal/renderer/createRenderMarkBase.d.ts +0 -3
  518. package/_internal/renderer/createRenderMarkBase.js +0 -13
  519. package/_internal/renderer/typings.d.ts +0 -19
  520. package/accordion/accordion.css +0 -1
  521. package/accordion/components/Accordion.d.ts +0 -9
  522. package/accordion/components/Accordion.js +0 -22
  523. package/accordion/components/AccordionContent.d.ts +0 -8
  524. package/accordion/components/AccordionContent.js +0 -24
  525. package/accordion/components/AccordionTitle.d.ts +0 -8
  526. package/accordion/components/AccordionTitle.js +0 -20
  527. package/accordion/contexts/AccordionContext.d.ts +0 -2
  528. package/accordion/contexts/AccordionContext.js +0 -5
  529. package/accordion/createReactAccordion.d.ts +0 -4
  530. package/accordion/createReactAccordion.js +0 -144
  531. package/accordion/defaultRenderAccordionElements.d.ts +0 -2
  532. package/accordion/defaultRenderAccordionElements.js +0 -12
  533. package/accordion/hooks/useAccordion.d.ts +0 -1
  534. package/accordion/hooks/useAccordion.js +0 -8
  535. package/accordion/index.cjs.js +0 -212
  536. package/accordion/index.js +0 -10
  537. package/accordion/jsx-serializer/createJsxSerializeAccordion.d.ts +0 -5
  538. package/accordion/jsx-serializer/createJsxSerializeAccordion.js +0 -48
  539. package/accordion/jsx-serializer/defaultRenderAccordionElements.d.ts +0 -2
  540. package/accordion/jsx-serializer/defaultRenderAccordionElements.js +0 -16
  541. package/accordion/jsx-serializer/index.cjs.js +0 -64
  542. package/accordion/jsx-serializer/index.js +0 -2
  543. package/accordion/jsx-serializer/typings.d.ts +0 -4
  544. package/accordion/toolbar/AccordionToolbarIcon.d.ts +0 -8
  545. package/accordion/toolbar/AccordionToolbarIcon.js +0 -12
  546. package/accordion/toolbar/index.cjs.js +0 -22
  547. package/accordion/toolbar/index.d.ts +0 -2
  548. package/accordion/toolbar/index.js +0 -2
  549. package/accordion/toolbar/useAccordionTool.d.ts +0 -4
  550. package/accordion/toolbar/useAccordionTool.js +0 -10
  551. package/accordion/typings.d.ts +0 -25
  552. package/align/constants.d.ts +0 -8
  553. package/align/constants.js +0 -10
  554. package/align/createReactAlign.d.ts +0 -2
  555. package/align/createReactAlign.js +0 -26
  556. package/align/index.cjs.js +0 -39
  557. package/align/index.js +0 -2
  558. package/align/toolbar/AlignToolbarIcon.d.ts +0 -10
  559. package/align/toolbar/AlignToolbarIcon.js +0 -12
  560. package/align/toolbar/index.cjs.js +0 -30
  561. package/align/toolbar/index.d.ts +0 -2
  562. package/align/toolbar/index.js +0 -2
  563. package/align/toolbar/useAlignTool.d.ts +0 -6
  564. package/align/toolbar/useAlignTool.js +0 -18
  565. package/align/typings.d.ts +0 -17
  566. package/blockquote/blockquote.css +0 -1
  567. package/blockquote/constants.d.ts +0 -6
  568. package/blockquote/constants.js +0 -8
  569. package/blockquote/createReactBlockquote.d.ts +0 -5
  570. package/blockquote/createReactBlockquote.js +0 -69
  571. package/blockquote/defaultRenderBlockquoteElement.d.ts +0 -6
  572. package/blockquote/defaultRenderBlockquoteElement.js +0 -7
  573. package/blockquote/index.cjs.js +0 -83
  574. package/blockquote/index.js +0 -3
  575. package/blockquote/jsx-serializer/createJsxSerializeBlockquote.d.ts +0 -4
  576. package/blockquote/jsx-serializer/createJsxSerializeBlockquote.js +0 -10
  577. package/blockquote/jsx-serializer/index.cjs.js +0 -13
  578. package/blockquote/jsx-serializer/index.js +0 -2
  579. package/blockquote/jsx-serializer/typings.d.ts +0 -3
  580. package/blockquote/toolbar/BlockquoteToolbarIcon.d.ts +0 -8
  581. package/blockquote/toolbar/BlockquoteToolbarIcon.js +0 -12
  582. package/blockquote/toolbar/index.cjs.js +0 -23
  583. package/blockquote/toolbar/index.js +0 -2
  584. package/blockquote/toolbar/useBlockquoteTool.d.ts +0 -5
  585. package/blockquote/toolbar/useBlockquoteTool.js +0 -11
  586. package/blockquote/typings.d.ts +0 -16
  587. package/bold/constants.d.ts +0 -6
  588. package/bold/constants.js +0 -8
  589. package/bold/createReactBold.d.ts +0 -1
  590. package/bold/createReactBold.js +0 -11
  591. package/bold/defaultRenderBold.d.ts +0 -3
  592. package/bold/defaultRenderBold.js +0 -7
  593. package/bold/index.cjs.js +0 -24
  594. package/bold/index.js +0 -3
  595. package/bold/jsx-serializer/createJsxSerializeBold.d.ts +0 -1
  596. package/bold/jsx-serializer/createJsxSerializeBold.js +0 -10
  597. package/bold/jsx-serializer/index.cjs.js +0 -13
  598. package/bold/jsx-serializer/index.js +0 -2
  599. package/bold/typings.d.ts +0 -5
  600. package/card/card.css +0 -1
  601. package/card/components/Card.d.ts +0 -15
  602. package/card/components/Card.js +0 -109
  603. package/card/components/CardContents.d.ts +0 -9
  604. package/card/components/CardContents.js +0 -18
  605. package/card/components/CardImage.d.ts +0 -9
  606. package/card/components/CardImage.js +0 -13
  607. package/card/components/CardPlaceholder.d.ts +0 -4
  608. package/card/components/CardPlaceholder.js +0 -21
  609. package/card/createReactCard.d.ts +0 -4
  610. package/card/createReactCard.js +0 -82
  611. package/card/defaultRenderCardElements.d.ts +0 -3
  612. package/card/defaultRenderCardElements.js +0 -14
  613. package/card/index.cjs.js +0 -242
  614. package/card/index.js +0 -6
  615. package/card/jsx-serializer/createJsxSerializeCard.d.ts +0 -5
  616. package/card/jsx-serializer/createJsxSerializeCard.js +0 -48
  617. package/card/jsx-serializer/defaultRenderCardElements.d.ts +0 -2
  618. package/card/jsx-serializer/defaultRenderCardElements.js +0 -10
  619. package/card/jsx-serializer/index.cjs.js +0 -58
  620. package/card/jsx-serializer/index.js +0 -2
  621. package/card/jsx-serializer/typings.d.ts +0 -9
  622. package/card/toolbar/CardToolbarIcon.d.ts +0 -8
  623. package/card/toolbar/CardToolbarIcon.js +0 -12
  624. package/card/toolbar/index.cjs.js +0 -52
  625. package/card/toolbar/index.js +0 -2
  626. package/card/toolbar/useCardTool.d.ts +0 -4
  627. package/card/toolbar/useCardTool.js +0 -41
  628. package/card/typings.d.ts +0 -24
  629. package/carousel/carousel.css +0 -1
  630. package/carousel/components/Carousel.d.ts +0 -15
  631. package/carousel/components/Carousel.js +0 -66
  632. package/carousel/components/CarouselCaption.d.ts +0 -9
  633. package/carousel/components/CarouselCaption.js +0 -12
  634. package/carousel/components/CarouselImages.d.ts +0 -9
  635. package/carousel/components/CarouselImages.js +0 -52
  636. package/carousel/components/CarouselPlaceholder.d.ts +0 -4
  637. package/carousel/components/CarouselPlaceholder.js +0 -17
  638. package/carousel/contexts/CarouselContext.d.ts +0 -2
  639. package/carousel/contexts/CarouselContext.js +0 -5
  640. package/carousel/createReactCarousel.d.ts +0 -4
  641. package/carousel/createReactCarousel.js +0 -82
  642. package/carousel/defaultRenderCarouselElements.d.ts +0 -3
  643. package/carousel/defaultRenderCarouselElements.js +0 -14
  644. package/carousel/hooks/useCarousel.d.ts +0 -1
  645. package/carousel/hooks/useCarousel.js +0 -8
  646. package/carousel/index.cjs.js +0 -236
  647. package/carousel/index.js +0 -8
  648. package/carousel/jsx-serializer/createJsxSerializeCarousel.d.ts +0 -5
  649. package/carousel/jsx-serializer/createJsxSerializeCarousel.js +0 -48
  650. package/carousel/jsx-serializer/defaultRenderCarouselElements.d.ts +0 -2
  651. package/carousel/jsx-serializer/defaultRenderCarouselElements.js +0 -10
  652. package/carousel/jsx-serializer/index.cjs.js +0 -58
  653. package/carousel/jsx-serializer/index.js +0 -2
  654. package/carousel/jsx-serializer/typings.d.ts +0 -9
  655. package/carousel/toolbar/CarouselToolbarIcon.d.ts +0 -8
  656. package/carousel/toolbar/CarouselToolbarIcon.js +0 -12
  657. package/carousel/toolbar/index.cjs.js +0 -43
  658. package/carousel/toolbar/index.js +0 -2
  659. package/carousel/toolbar/useCarouselTool.d.ts +0 -4
  660. package/carousel/toolbar/useCarouselTool.js +0 -32
  661. package/carousel/typings.d.ts +0 -27
  662. package/components/BaseField/index.d.ts +0 -11
  663. package/components/BaseField/index.js +0 -17
  664. package/components/Button/index.d.ts +0 -14
  665. package/components/Button/index.js +0 -12
  666. package/components/Hint/index.d.ts +0 -15
  667. package/components/Hint/index.js +0 -30
  668. package/components/Icon/index.d.ts +0 -15
  669. package/components/Icon/index.js +0 -21
  670. package/components/ImageUploader/index.d.ts +0 -25
  671. package/components/ImageUploader/index.js +0 -174
  672. package/components/Input/index.d.ts +0 -14
  673. package/components/Input/index.js +0 -24
  674. package/components/Message/index.d.ts +0 -18
  675. package/components/Message/index.js +0 -72
  676. package/components/Modal/index.d.ts +0 -28
  677. package/components/Modal/index.js +0 -61
  678. package/components/Notifier/NotifierManager.d.ts +0 -17
  679. package/components/Notifier/NotifierManager.js +0 -24
  680. package/components/Notifier/createNotifier.d.ts +0 -21
  681. package/components/Notifier/createNotifier.js +0 -60
  682. package/components/Notifier/typings.d.ts +0 -28
  683. package/components/Portal/index.d.ts +0 -7
  684. package/components/Portal/index.js +0 -8
  685. package/components/Progress/index.d.ts +0 -7
  686. package/components/Progress/index.js +0 -20
  687. package/components/SegmentedControl/index.d.ts +0 -13
  688. package/components/SegmentedControl/index.js +0 -14
  689. package/components/Textarea/index.d.ts +0 -15
  690. package/components/Textarea/index.js +0 -24
  691. package/components/Toggle/index.d.ts +0 -8
  692. package/components/Toggle/index.js +0 -15
  693. package/components/Tooltip/calculatePosition.d.ts +0 -5
  694. package/components/Tooltip/calculatePosition.js +0 -69
  695. package/components/Tooltip/index.d.ts +0 -10
  696. package/components/Tooltip/index.js +0 -124
  697. package/components/Tooltip/typings.d.ts +0 -29
  698. package/components/Transition/SlideFade.d.ts +0 -20
  699. package/components/Transition/SlideFade.js +0 -91
  700. package/components/Transition/Transition.d.ts +0 -98
  701. package/components/Transition/Transition.js +0 -27
  702. package/components/Transition/getTransitionStyleProps.d.ts +0 -16
  703. package/components/Transition/getTransitionStyleProps.js +0 -25
  704. package/components/Transition/useSetNodeTransition.d.ts +0 -7
  705. package/components/Transition/useSetNodeTransition.js +0 -35
  706. package/components/baseField.css +0 -1
  707. package/components/button.css +0 -1
  708. package/components/components.css +0 -1
  709. package/components/hint.css +0 -1
  710. package/components/imageUploader.css +0 -1
  711. package/components/index.cjs.js +0 -867
  712. package/components/index.d.ts +0 -16
  713. package/components/index.js +0 -15
  714. package/components/input.css +0 -1
  715. package/components/message.css +0 -1
  716. package/components/modal.css +0 -1
  717. package/components/progress.css +0 -1
  718. package/components/segmentedControl.css +0 -1
  719. package/components/textarea.css +0 -1
  720. package/components/toggle.css +0 -1
  721. package/components/tooltip.css +0 -1
  722. package/configs/ConfigsProvider.d.ts +0 -18
  723. package/configs/ConfigsProvider.js +0 -15
  724. package/configs/index.cjs.js +0 -58
  725. package/configs/index.js +0 -3
  726. package/configs/locale.d.ts +0 -3
  727. package/configs/locale.js +0 -9
  728. package/configs/theme.d.ts +0 -18
  729. package/configs/theme.js +0 -34
  730. package/core/components/DefaultElement.d.ts +0 -4
  731. package/core/components/DefaultElement.js +0 -5
  732. package/core/components/DefaultLeaf.d.ts +0 -4
  733. package/core/components/DefaultLeaf.js +0 -5
  734. package/core/components/Editable.d.ts +0 -9
  735. package/core/components/Editable.js +0 -71
  736. package/core/components/Quadrats.d.ts +0 -16
  737. package/core/components/Quadrats.js +0 -21
  738. package/core/composeHandlers.d.ts +0 -8
  739. package/core/composeHandlers.js +0 -33
  740. package/core/composeRenderElements.d.ts +0 -6
  741. package/core/composeRenderElements.js +0 -12
  742. package/core/composeRenderLeafs.d.ts +0 -6
  743. package/core/composeRenderLeafs.js +0 -12
  744. package/core/constants.d.ts +0 -1
  745. package/core/constants.js +0 -3
  746. package/core/contexts/composition/CompositionProvider.d.ts +0 -8
  747. package/core/contexts/composition/CompositionProvider.js +0 -8
  748. package/core/contexts/composition/composition.d.ts +0 -7
  749. package/core/contexts/composition/composition.js +0 -11
  750. package/core/contexts/message/MessageProvider.d.ts +0 -5
  751. package/core/contexts/message/MessageProvider.js +0 -35
  752. package/core/contexts/message/message.d.ts +0 -10
  753. package/core/contexts/message/message.js +0 -10
  754. package/core/contexts/modal/CardModal/CardModal.d.ts +0 -28
  755. package/core/contexts/modal/CardModal/CardModal.js +0 -111
  756. package/core/contexts/modal/CarouselModal/CarouselItem.d.ts +0 -15
  757. package/core/contexts/modal/CarouselModal/CarouselItem.js +0 -46
  758. package/core/contexts/modal/CarouselModal/CarouselModal.d.ts +0 -11
  759. package/core/contexts/modal/CarouselModal/CarouselModal.js +0 -169
  760. package/core/contexts/modal/CarouselModal/FilesDropZone.d.ts +0 -13
  761. package/core/contexts/modal/CarouselModal/FilesDropZone.js +0 -64
  762. package/core/contexts/modal/ConfirmModal/ConfirmModal.d.ts +0 -14
  763. package/core/contexts/modal/ConfirmModal/ConfirmModal.js +0 -24
  764. package/core/contexts/modal/EmbedModal/EmbedModal.d.ts +0 -11
  765. package/core/contexts/modal/EmbedModal/EmbedModal.js +0 -27
  766. package/core/contexts/modal/ModalProvider.d.ts +0 -8
  767. package/core/contexts/modal/ModalProvider.js +0 -66
  768. package/core/contexts/modal/modal.d.ts +0 -24
  769. package/core/contexts/modal/modal.js +0 -15
  770. package/core/createReactEditor.d.ts +0 -2
  771. package/core/createReactEditor.js +0 -8
  772. package/core/createRenderElement.d.ts +0 -2
  773. package/core/createRenderElement.js +0 -7
  774. package/core/createRenderElements.d.ts +0 -2
  775. package/core/createRenderElements.js +0 -7
  776. package/core/createRenderMark.d.ts +0 -2
  777. package/core/createRenderMark.js +0 -7
  778. package/core/index.d.ts +0 -37
  779. package/core/typings/descendant.d.ts +0 -2
  780. package/core/typings/handler.d.ts +0 -15
  781. package/core/typings/renderer.d.ts +0 -15
  782. package/core/typings/with.d.ts +0 -4
  783. package/divider/createReactDivider.d.ts +0 -4
  784. package/divider/createReactDivider.js +0 -11
  785. package/divider/defaultRenderDividerElement.d.ts +0 -3
  786. package/divider/defaultRenderDividerElement.js +0 -6
  787. package/divider/divider.css +0 -1
  788. package/divider/index.cjs.js +0 -17
  789. package/divider/index.js +0 -2
  790. package/divider/jsx-serializer/createJsxSerializeDivider.d.ts +0 -4
  791. package/divider/jsx-serializer/createJsxSerializeDivider.js +0 -10
  792. package/divider/jsx-serializer/defaultRenderDividerElement.d.ts +0 -2
  793. package/divider/jsx-serializer/defaultRenderDividerElement.js +0 -6
  794. package/divider/jsx-serializer/index.cjs.js +0 -16
  795. package/divider/jsx-serializer/index.js +0 -2
  796. package/divider/jsx-serializer/typings.d.ts +0 -3
  797. package/divider/toolbar/DividerToolbarIcon.d.ts +0 -8
  798. package/divider/toolbar/DividerToolbarIcon.js +0 -12
  799. package/divider/toolbar/index.cjs.js +0 -22
  800. package/divider/toolbar/index.d.ts +0 -2
  801. package/divider/toolbar/index.js +0 -2
  802. package/divider/toolbar/useDividerTool.d.ts +0 -4
  803. package/divider/toolbar/useDividerTool.js +0 -10
  804. package/divider/typings.d.ts +0 -10
  805. package/editable.css +0 -1
  806. package/embed/components/VideoIframe.d.ts +0 -12
  807. package/embed/components/VideoIframe.js +0 -16
  808. package/embed/createReactEmbed.d.ts +0 -4
  809. package/embed/createReactEmbed.js +0 -17
  810. package/embed/createRenderEmbedElementBase.d.ts +0 -10
  811. package/embed/createRenderEmbedElementBase.js +0 -16
  812. package/embed/embed.css +0 -1
  813. package/embed/hooks/useVideoIframeSize.d.ts +0 -7
  814. package/embed/hooks/useVideoIframeSize.js +0 -24
  815. package/embed/index.cjs.js +0 -68
  816. package/embed/index.js +0 -4
  817. package/embed/jsx-serializer/createJsxSerializeEmbed.d.ts +0 -9
  818. package/embed/jsx-serializer/createJsxSerializeEmbed.js +0 -13
  819. package/embed/jsx-serializer/facebook/index.cjs.js +0 -16
  820. package/embed/jsx-serializer/facebook/index.js +0 -1
  821. package/embed/jsx-serializer/index.cjs.js +0 -15
  822. package/embed/jsx-serializer/index.js +0 -1
  823. package/embed/jsx-serializer/instagram/index.cjs.js +0 -16
  824. package/embed/jsx-serializer/instagram/index.js +0 -1
  825. package/embed/jsx-serializer/twitter/index.cjs.js +0 -16
  826. package/embed/jsx-serializer/twitter/index.js +0 -1
  827. package/embed/jsx-serializer/typings.d.ts +0 -5
  828. package/embed/jsx-serializer/vimeo/index.cjs.js +0 -16
  829. package/embed/jsx-serializer/vimeo/index.js +0 -1
  830. package/embed/jsx-serializer/youtube/index.cjs.js +0 -7
  831. package/embed/jsx-serializer/youtube/index.js +0 -1
  832. package/embed/renderers/base/components/BaseEmbedElement.d.ts +0 -21
  833. package/embed/renderers/base/components/BaseEmbedElement.js +0 -70
  834. package/embed/renderers/base/index.cjs.js +0 -73
  835. package/embed/renderers/base/index.d.ts +0 -1
  836. package/embed/renderers/base/index.js +0 -1
  837. package/embed/renderers/facebook/components/Facebook.d.ts +0 -12
  838. package/embed/renderers/facebook/components/Facebook.js +0 -23
  839. package/embed/renderers/facebook/defaultRenderFacebookEmbedElement.d.ts +0 -5
  840. package/embed/renderers/facebook/defaultRenderFacebookEmbedElement.js +0 -46
  841. package/embed/renderers/facebook/index.cjs.js +0 -70
  842. package/embed/renderers/facebook/index.js +0 -2
  843. package/embed/renderers/instagram/components/Instagram.d.ts +0 -12
  844. package/embed/renderers/instagram/components/Instagram.js +0 -53
  845. package/embed/renderers/instagram/defaultRenderInstagramEmbedElement.d.ts +0 -5
  846. package/embed/renderers/instagram/defaultRenderInstagramEmbedElement.js +0 -46
  847. package/embed/renderers/instagram/hooks/useLoadInstagramEmbedApi.d.ts +0 -1
  848. package/embed/renderers/instagram/hooks/useLoadInstagramEmbedApi.js +0 -27
  849. package/embed/renderers/instagram/index.cjs.js +0 -124
  850. package/embed/renderers/instagram/index.js +0 -3
  851. package/embed/renderers/podcast-apple/components/PodcastApple.d.ts +0 -11
  852. package/embed/renderers/podcast-apple/components/PodcastApple.js +0 -13
  853. package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.d.ts +0 -5
  854. package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.js +0 -39
  855. package/embed/renderers/podcast-apple/index.cjs.js +0 -53
  856. package/embed/renderers/podcast-apple/index.js +0 -2
  857. package/embed/renderers/spotify/components/Spotify.d.ts +0 -12
  858. package/embed/renderers/spotify/components/Spotify.js +0 -18
  859. package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.d.ts +0 -5
  860. package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.js +0 -36
  861. package/embed/renderers/spotify/index.cjs.js +0 -55
  862. package/embed/renderers/spotify/index.js +0 -2
  863. package/embed/renderers/twitter/components/Twitter.d.ts +0 -12
  864. package/embed/renderers/twitter/components/Twitter.js +0 -24
  865. package/embed/renderers/twitter/defaultRenderTwitterEmbedElement.d.ts +0 -5
  866. package/embed/renderers/twitter/defaultRenderTwitterEmbedElement.js +0 -46
  867. package/embed/renderers/twitter/hooks/useLoadTwitterEmbedApi.d.ts +0 -2
  868. package/embed/renderers/twitter/hooks/useLoadTwitterEmbedApi.js +0 -33
  869. package/embed/renderers/twitter/index.cjs.js +0 -101
  870. package/embed/renderers/twitter/index.js +0 -3
  871. package/embed/renderers/vimeo/defaultRenderVimeoEmbedElement.d.ts +0 -6
  872. package/embed/renderers/vimeo/defaultRenderVimeoEmbedElement.js +0 -30
  873. package/embed/renderers/vimeo/index.cjs.js +0 -34
  874. package/embed/renderers/vimeo/index.js +0 -1
  875. package/embed/renderers/youtube/defaultRenderYoutubeEmbedElement.d.ts +0 -6
  876. package/embed/renderers/youtube/defaultRenderYoutubeEmbedElement.js +0 -30
  877. package/embed/renderers/youtube/index.cjs.js +0 -34
  878. package/embed/renderers/youtube/index.js +0 -1
  879. package/embed/toolbar/EmbedToolbarIcon.d.ts +0 -12
  880. package/embed/toolbar/EmbedToolbarIcon.js +0 -12
  881. package/embed/toolbar/index.cjs.js +0 -98
  882. package/embed/toolbar/index.d.ts +0 -2
  883. package/embed/toolbar/index.js +0 -2
  884. package/embed/toolbar/useEmbedTool.d.ts +0 -4
  885. package/embed/toolbar/useEmbedTool.js +0 -87
  886. package/embed/typings.d.ts +0 -15
  887. package/file-uploader/components/FileUploader.d.ts +0 -4
  888. package/file-uploader/components/FileUploader.js +0 -13
  889. package/file-uploader/createReactFileUploader.d.ts +0 -5
  890. package/file-uploader/createReactFileUploader.js +0 -17
  891. package/file-uploader/defaultRenderFileUploaderElement.d.ts +0 -2
  892. package/file-uploader/defaultRenderFileUploaderElement.js +0 -6
  893. package/file-uploader/file-uploader.css +0 -1
  894. package/file-uploader/hooks/useFileUploader.d.ts +0 -4
  895. package/file-uploader/hooks/useFileUploader.js +0 -13
  896. package/file-uploader/index.cjs.js +0 -42
  897. package/file-uploader/index.js +0 -4
  898. package/file-uploader/toolbar/FileUploaderToolbarIcon.d.ts +0 -10
  899. package/file-uploader/toolbar/FileUploaderToolbarIcon.js +0 -12
  900. package/file-uploader/toolbar/index.cjs.js +0 -25
  901. package/file-uploader/toolbar/index.d.ts +0 -2
  902. package/file-uploader/toolbar/index.js +0 -2
  903. package/file-uploader/toolbar/useFileUploaderTool.d.ts +0 -5
  904. package/file-uploader/toolbar/useFileUploaderTool.js +0 -13
  905. package/file-uploader/typings.d.ts +0 -14
  906. package/footnote/createReactFootnote.d.ts +0 -4
  907. package/footnote/createReactFootnote.js +0 -13
  908. package/footnote/defaultRenderFootnoteElement.d.ts +0 -9
  909. package/footnote/defaultRenderFootnoteElement.js +0 -15
  910. package/footnote/index.cjs.js +0 -71
  911. package/footnote/index.js +0 -4
  912. package/footnote/jsx-serializer/createJsxSerializeFootnote.d.ts +0 -4
  913. package/footnote/jsx-serializer/createJsxSerializeFootnote.js +0 -11
  914. package/footnote/jsx-serializer/defaultRenderFootnoteElement.d.ts +0 -5
  915. package/footnote/jsx-serializer/defaultRenderFootnoteElement.js +0 -12
  916. package/footnote/jsx-serializer/index.cjs.js +0 -23
  917. package/footnote/jsx-serializer/index.js +0 -2
  918. package/footnote/jsx-serializer/typings.d.ts +0 -3
  919. package/footnote/toolbar/FootnoteToolbarIcon.d.ts +0 -10
  920. package/footnote/toolbar/FootnoteToolbarIcon.js +0 -12
  921. package/footnote/toolbar/index.cjs.js +0 -30
  922. package/footnote/toolbar/index.d.ts +0 -2
  923. package/footnote/toolbar/index.js +0 -2
  924. package/footnote/toolbar/useFootnoteTool.d.ts +0 -7
  925. package/footnote/toolbar/useFootnoteTool.js +0 -19
  926. package/footnote/typings.d.ts +0 -9
  927. package/footnote/useFootnotes.d.ts +0 -4
  928. package/footnote/useFootnotes.js +0 -21
  929. package/footnote/useFootnotesFromNodes.d.ts +0 -4
  930. package/footnote/useFootnotesFromNodes.js +0 -27
  931. package/heading/constants.d.ts +0 -9
  932. package/heading/constants.js +0 -11
  933. package/heading/createReactHeading.d.ts +0 -4
  934. package/heading/createReactHeading.js +0 -47
  935. package/heading/defaultRenderHeadingElement.d.ts +0 -16
  936. package/heading/defaultRenderHeadingElement.js +0 -20
  937. package/heading/heading.css +0 -1
  938. package/heading/index.cjs.js +0 -77
  939. package/heading/index.js +0 -3
  940. package/heading/jsx-serializer/createJsxSerializeHeading.d.ts +0 -4
  941. package/heading/jsx-serializer/createJsxSerializeHeading.js +0 -10
  942. package/heading/jsx-serializer/index.cjs.js +0 -13
  943. package/heading/jsx-serializer/index.js +0 -2
  944. package/heading/jsx-serializer/typings.d.ts +0 -3
  945. package/heading/toolbar/HeadingToolbarIcon.d.ts +0 -10
  946. package/heading/toolbar/HeadingToolbarIcon.js +0 -12
  947. package/heading/toolbar/index.cjs.js +0 -23
  948. package/heading/toolbar/index.d.ts +0 -2
  949. package/heading/toolbar/index.js +0 -2
  950. package/heading/toolbar/useToggleHeadingTool.d.ts +0 -6
  951. package/heading/toolbar/useToggleHeadingTool.js +0 -11
  952. package/heading/typings.d.ts +0 -15
  953. package/highlight/constants.d.ts +0 -6
  954. package/highlight/constants.js +0 -8
  955. package/highlight/createReactHighlight.d.ts +0 -1
  956. package/highlight/createReactHighlight.js +0 -11
  957. package/highlight/defaultRenderHighlight.d.ts +0 -3
  958. package/highlight/defaultRenderHighlight.js +0 -7
  959. package/highlight/index.cjs.js +0 -24
  960. package/highlight/index.js +0 -3
  961. package/highlight/jsx-serializer/createJsxSerializeHighlight.d.ts +0 -1
  962. package/highlight/jsx-serializer/createJsxSerializeHighlight.js +0 -10
  963. package/highlight/jsx-serializer/index.cjs.js +0 -13
  964. package/highlight/jsx-serializer/index.js +0 -2
  965. package/highlight/typings.d.ts +0 -5
  966. package/image/components/Image.d.ts +0 -4
  967. package/image/components/Image.js +0 -68
  968. package/image/components/ImageCaption.d.ts +0 -4
  969. package/image/components/ImageCaption.js +0 -23
  970. package/image/components/ImageFigure.d.ts +0 -4
  971. package/image/components/ImageFigure.js +0 -15
  972. package/image/components/ImagePlaceholder.d.ts +0 -4
  973. package/image/components/ImagePlaceholder.js +0 -11
  974. package/image/createReactImage.d.ts +0 -8
  975. package/image/createReactImage.js +0 -121
  976. package/image/defaultRenderImageElements.d.ts +0 -2
  977. package/image/defaultRenderImageElements.js +0 -12
  978. package/image/hooks/useImageResizer.d.ts +0 -7
  979. package/image/hooks/useImageResizer.js +0 -95
  980. package/image/image.css +0 -1
  981. package/image/index.cjs.js +0 -324
  982. package/image/index.js +0 -7
  983. package/image/jsx-serializer/createJsxSerializeImage.d.ts +0 -7
  984. package/image/jsx-serializer/createJsxSerializeImage.js +0 -42
  985. package/image/jsx-serializer/defaultRenderImageElements.d.ts +0 -2
  986. package/image/jsx-serializer/defaultRenderImageElements.js +0 -10
  987. package/image/jsx-serializer/index.cjs.js +0 -52
  988. package/image/jsx-serializer/index.js +0 -2
  989. package/image/jsx-serializer/typings.d.ts +0 -18
  990. package/image/typings.d.ts +0 -22
  991. package/index.cjs.js +0 -709
  992. package/index.js +0 -21
  993. package/input-block/components/InputBlock.d.ts +0 -4
  994. package/input-block/components/InputBlock.js +0 -35
  995. package/input-block/createReactInputBlock.d.ts +0 -4
  996. package/input-block/createReactInputBlock.js +0 -17
  997. package/input-block/defaultRenderInputBlockElement.d.ts +0 -2
  998. package/input-block/defaultRenderInputBlockElement.js +0 -6
  999. package/input-block/hooks/useInputBlock.d.ts +0 -10
  1000. package/input-block/hooks/useInputBlock.js +0 -57
  1001. package/input-block/index.cjs.js +0 -108
  1002. package/input-block/index.js +0 -4
  1003. package/input-block/input-block.css +0 -1
  1004. package/input-block/typings.d.ts +0 -12
  1005. package/italic/constants.d.ts +0 -6
  1006. package/italic/constants.js +0 -8
  1007. package/italic/createReactItalic.d.ts +0 -1
  1008. package/italic/createReactItalic.js +0 -11
  1009. package/italic/defaultRenderItalic.d.ts +0 -3
  1010. package/italic/defaultRenderItalic.js +0 -7
  1011. package/italic/index.cjs.js +0 -24
  1012. package/italic/index.js +0 -3
  1013. package/italic/jsx-serializer/createJsxSerializeItalic.d.ts +0 -1
  1014. package/italic/jsx-serializer/createJsxSerializeItalic.js +0 -10
  1015. package/italic/jsx-serializer/index.cjs.js +0 -13
  1016. package/italic/jsx-serializer/index.js +0 -2
  1017. package/italic/typings.d.ts +0 -5
  1018. package/jsx-serializer/createJsxSerializeElement.d.ts +0 -2
  1019. package/jsx-serializer/createJsxSerializeElement.js +0 -7
  1020. package/jsx-serializer/createJsxSerializeElements.d.ts +0 -2
  1021. package/jsx-serializer/createJsxSerializeElements.js +0 -7
  1022. package/jsx-serializer/createJsxSerializeMark.d.ts +0 -2
  1023. package/jsx-serializer/createJsxSerializeMark.js +0 -7
  1024. package/jsx-serializer/createJsxSerializer.d.ts +0 -18
  1025. package/jsx-serializer/createJsxSerializer.js +0 -49
  1026. package/jsx-serializer/index.cjs.js +0 -66
  1027. package/jsx-serializer/index.js +0 -4
  1028. package/jsx-serializer/typings.d.ts +0 -8
  1029. package/line-break/commonBreak.d.ts +0 -14
  1030. package/line-break/commonBreak.js +0 -31
  1031. package/line-break/createOnKeyDownBreak.d.ts +0 -11
  1032. package/line-break/createOnKeyDownBreak.js +0 -48
  1033. package/line-break/createReactLineBreak.d.ts +0 -4
  1034. package/line-break/createReactLineBreak.js +0 -14
  1035. package/line-break/defaultRenderLineBreakElement.d.ts +0 -3
  1036. package/line-break/defaultRenderLineBreakElement.js +0 -5
  1037. package/line-break/index.cjs.js +0 -102
  1038. package/line-break/index.js +0 -4
  1039. package/line-break/jsx-serializer/createJsxSerializeLineBreak.d.ts +0 -4
  1040. package/line-break/jsx-serializer/createJsxSerializeLineBreak.js +0 -11
  1041. package/line-break/jsx-serializer/defaultRenderLineBreakElement.d.ts +0 -2
  1042. package/line-break/jsx-serializer/defaultRenderLineBreakElement.js +0 -6
  1043. package/line-break/jsx-serializer/index.cjs.js +0 -17
  1044. package/line-break/jsx-serializer/index.js +0 -2
  1045. package/line-break/jsx-serializer/typings.d.ts +0 -3
  1046. package/line-break/line-break.css +0 -1
  1047. package/line-break/renderLineBreakElementWithSymbol.d.ts +0 -3
  1048. package/line-break/renderLineBreakElementWithSymbol.js +0 -5
  1049. package/line-break/typings.d.ts +0 -32
  1050. package/link/createReactLink.d.ts +0 -11
  1051. package/link/createReactLink.js +0 -29
  1052. package/link/defaultRenderLinkElement.d.ts +0 -9
  1053. package/link/defaultRenderLinkElement.js +0 -13
  1054. package/link/index.cjs.js +0 -42
  1055. package/link/index.js +0 -2
  1056. package/link/jsx-serializer/createJsxSerializeLink.d.ts +0 -4
  1057. package/link/jsx-serializer/createJsxSerializeLink.js +0 -10
  1058. package/link/jsx-serializer/defaultRenderLinkElement.d.ts +0 -3
  1059. package/link/jsx-serializer/defaultRenderLinkElement.js +0 -5
  1060. package/link/jsx-serializer/index.cjs.js +0 -15
  1061. package/link/jsx-serializer/index.js +0 -2
  1062. package/link/jsx-serializer/typings.d.ts +0 -3
  1063. package/link/toolbar/LinkToolbarIcon.d.ts +0 -10
  1064. package/link/toolbar/LinkToolbarIcon.js +0 -12
  1065. package/link/toolbar/UnlinkToolbarIcon.d.ts +0 -8
  1066. package/link/toolbar/UnlinkToolbarIcon.js +0 -12
  1067. package/link/toolbar/index.cjs.js +0 -51
  1068. package/link/toolbar/index.d.ts +0 -4
  1069. package/link/toolbar/index.js +0 -4
  1070. package/link/toolbar/useLinkTool.d.ts +0 -7
  1071. package/link/toolbar/useLinkTool.js +0 -25
  1072. package/link/toolbar/useUnlinkTool.d.ts +0 -4
  1073. package/link/toolbar/useUnlinkTool.js +0 -10
  1074. package/link/typings.d.ts +0 -9
  1075. package/list/createReactList.d.ts +0 -4
  1076. package/list/createReactList.js +0 -35
  1077. package/list/defaultRenderListElements.d.ts +0 -7
  1078. package/list/defaultRenderListElements.js +0 -9
  1079. package/list/index.cjs.js +0 -44
  1080. package/list/index.js +0 -2
  1081. package/list/jsx-serializer/createJsxSerializeList.d.ts +0 -7
  1082. package/list/jsx-serializer/createJsxSerializeList.js +0 -15
  1083. package/list/jsx-serializer/index.cjs.js +0 -18
  1084. package/list/jsx-serializer/index.js +0 -2
  1085. package/list/jsx-serializer/typings.d.ts +0 -3
  1086. package/list/list.css +0 -1
  1087. package/list/toolbar/ListToolbarIcon.d.ts +0 -10
  1088. package/list/toolbar/ListToolbarIcon.js +0 -12
  1089. package/list/toolbar/index.cjs.js +0 -23
  1090. package/list/toolbar/index.d.ts +0 -2
  1091. package/list/toolbar/index.js +0 -2
  1092. package/list/toolbar/useListTool.d.ts +0 -6
  1093. package/list/toolbar/useListTool.js +0 -11
  1094. package/list/typings.d.ts +0 -9
  1095. package/paragraph/createReactParagraph.d.ts +0 -2
  1096. package/paragraph/createReactParagraph.js +0 -8
  1097. package/paragraph/createRenderParagraphElement.d.ts +0 -8
  1098. package/paragraph/createRenderParagraphElement.js +0 -10
  1099. package/paragraph/defaultRenderParagraphElement.d.ts +0 -8
  1100. package/paragraph/defaultRenderParagraphElement.js +0 -8
  1101. package/paragraph/index.cjs.js +0 -31
  1102. package/paragraph/index.js +0 -4
  1103. package/paragraph/jsx-serializer/createJsxSerializeParagraph.d.ts +0 -4
  1104. package/paragraph/jsx-serializer/createJsxSerializeParagraph.js +0 -10
  1105. package/paragraph/jsx-serializer/index.cjs.js +0 -13
  1106. package/paragraph/jsx-serializer/index.js +0 -2
  1107. package/paragraph/jsx-serializer/typings.d.ts +0 -3
  1108. package/paragraph/paragraph.css +0 -1
  1109. package/paragraph/renderParagraphElementWithSymbol.d.ts +0 -8
  1110. package/paragraph/renderParagraphElementWithSymbol.js +0 -8
  1111. package/paragraph/toolbar/ParagraphToolbarIcon.d.ts +0 -8
  1112. package/paragraph/toolbar/ParagraphToolbarIcon.js +0 -12
  1113. package/paragraph/toolbar/index.cjs.js +0 -23
  1114. package/paragraph/toolbar/index.js +0 -2
  1115. package/paragraph/toolbar/useToggleParagraphTool.d.ts +0 -5
  1116. package/paragraph/toolbar/useToggleParagraphTool.js +0 -11
  1117. package/read-more/components/ReadMore.d.ts +0 -8
  1118. package/read-more/components/ReadMore.js +0 -14
  1119. package/read-more/createReactReadMore.d.ts +0 -4
  1120. package/read-more/createReactReadMore.js +0 -11
  1121. package/read-more/defaultRenderReadMoreElement.d.ts +0 -3
  1122. package/read-more/defaultRenderReadMoreElement.js +0 -6
  1123. package/read-more/index.cjs.js +0 -27
  1124. package/read-more/index.js +0 -3
  1125. package/read-more/jsx-serializer/createJsxSerializeReadMore.d.ts +0 -4
  1126. package/read-more/jsx-serializer/createJsxSerializeReadMore.js +0 -10
  1127. package/read-more/jsx-serializer/index.cjs.js +0 -13
  1128. package/read-more/jsx-serializer/index.js +0 -2
  1129. package/read-more/jsx-serializer/typings.d.ts +0 -3
  1130. package/read-more/read-more.css +0 -1
  1131. package/read-more/toolbar/ReadMoreToolbarIcon.d.ts +0 -8
  1132. package/read-more/toolbar/ReadMoreToolbarIcon.js +0 -12
  1133. package/read-more/toolbar/index.cjs.js +0 -22
  1134. package/read-more/toolbar/index.d.ts +0 -2
  1135. package/read-more/toolbar/index.js +0 -2
  1136. package/read-more/toolbar/useReadMoreTool.d.ts +0 -4
  1137. package/read-more/toolbar/useReadMoreTool.js +0 -10
  1138. package/read-more/typings.d.ts +0 -9
  1139. package/strikethrough/constants.d.ts +0 -6
  1140. package/strikethrough/constants.js +0 -8
  1141. package/strikethrough/createReactStrikethrough.d.ts +0 -1
  1142. package/strikethrough/createReactStrikethrough.js +0 -11
  1143. package/strikethrough/defaultRenderStrikethrough.d.ts +0 -3
  1144. package/strikethrough/defaultRenderStrikethrough.js +0 -7
  1145. package/strikethrough/index.cjs.js +0 -24
  1146. package/strikethrough/index.js +0 -3
  1147. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.d.ts +0 -1
  1148. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.js +0 -10
  1149. package/strikethrough/jsx-serializer/index.cjs.js +0 -13
  1150. package/strikethrough/jsx-serializer/index.js +0 -2
  1151. package/strikethrough/typings.d.ts +0 -5
  1152. package/table/components/ColumnDragButton.d.ts +0 -10
  1153. package/table/components/ColumnDragButton.js +0 -41
  1154. package/table/components/RowDragButton.d.ts +0 -10
  1155. package/table/components/RowDragButton.js +0 -42
  1156. package/table/components/Table.d.ts +0 -9
  1157. package/table/components/Table.js +0 -236
  1158. package/table/components/TableBody.d.ts +0 -5
  1159. package/table/components/TableBody.js +0 -8
  1160. package/table/components/TableCell.d.ts +0 -5
  1161. package/table/components/TableCell.js +0 -297
  1162. package/table/components/TableDragLayer.d.ts +0 -6
  1163. package/table/components/TableDragLayer.js +0 -89
  1164. package/table/components/TableHeader.d.ts +0 -5
  1165. package/table/components/TableHeader.js +0 -13
  1166. package/table/components/TableMain.d.ts +0 -5
  1167. package/table/components/TableMain.js +0 -233
  1168. package/table/components/TableRow.d.ts +0 -5
  1169. package/table/components/TableRow.js +0 -8
  1170. package/table/components/TableTitle.d.ts +0 -5
  1171. package/table/components/TableTitle.js +0 -18
  1172. package/table/contexts/TableActionsContext.d.ts +0 -3
  1173. package/table/contexts/TableActionsContext.js +0 -5
  1174. package/table/contexts/TableDragContext.d.ts +0 -26
  1175. package/table/contexts/TableDragContext.js +0 -26
  1176. package/table/contexts/TableHeaderContext.d.ts +0 -2
  1177. package/table/contexts/TableHeaderContext.js +0 -7
  1178. package/table/contexts/TableMetadataContext.d.ts +0 -3
  1179. package/table/contexts/TableMetadataContext.js +0 -5
  1180. package/table/contexts/TableScrollContext.d.ts +0 -2
  1181. package/table/contexts/TableScrollContext.js +0 -9
  1182. package/table/contexts/TableStateContext.d.ts +0 -3
  1183. package/table/contexts/TableStateContext.js +0 -5
  1184. package/table/createReactTable.d.ts +0 -4
  1185. package/table/createReactTable.js +0 -297
  1186. package/table/defaultRenderTableElements.d.ts +0 -2
  1187. package/table/defaultRenderTableElements.js +0 -20
  1188. package/table/hooks/useColumnResize.d.ts +0 -12
  1189. package/table/hooks/useColumnResize.js +0 -168
  1190. package/table/hooks/useTableActions.d.ts +0 -27
  1191. package/table/hooks/useTableActions.js +0 -1092
  1192. package/table/hooks/useTableActionsContext.d.ts +0 -1
  1193. package/table/hooks/useTableActionsContext.js +0 -12
  1194. package/table/hooks/useTableCell.d.ts +0 -16
  1195. package/table/hooks/useTableCell.js +0 -166
  1196. package/table/hooks/useTableCellToolbarActions.d.ts +0 -34
  1197. package/table/hooks/useTableCellToolbarActions.js +0 -540
  1198. package/table/hooks/useTableMetadata.d.ts +0 -1
  1199. package/table/hooks/useTableMetadata.js +0 -12
  1200. package/table/hooks/useTableStateContext.d.ts +0 -1
  1201. package/table/hooks/useTableStateContext.js +0 -12
  1202. package/table/hooks/useTableStates.d.ts +0 -18
  1203. package/table/hooks/useTableStates.js +0 -14
  1204. package/table/index.cjs.js +0 -4016
  1205. package/table/index.js +0 -27
  1206. package/table/jsx-serializer/components/Table.d.ts +0 -3
  1207. package/table/jsx-serializer/components/Table.js +0 -7
  1208. package/table/jsx-serializer/components/TableBody.d.ts +0 -3
  1209. package/table/jsx-serializer/components/TableBody.js +0 -7
  1210. package/table/jsx-serializer/components/TableCell.d.ts +0 -5
  1211. package/table/jsx-serializer/components/TableCell.js +0 -33
  1212. package/table/jsx-serializer/components/TableHeader.d.ts +0 -3
  1213. package/table/jsx-serializer/components/TableHeader.js +0 -10
  1214. package/table/jsx-serializer/components/TableMain.d.ts +0 -6
  1215. package/table/jsx-serializer/components/TableMain.js +0 -18
  1216. package/table/jsx-serializer/components/TableRow.d.ts +0 -3
  1217. package/table/jsx-serializer/components/TableRow.js +0 -7
  1218. package/table/jsx-serializer/components/TableTitle.d.ts +0 -3
  1219. package/table/jsx-serializer/components/TableTitle.js +0 -7
  1220. package/table/jsx-serializer/contexts/TableHeaderContext.d.ts +0 -1
  1221. package/table/jsx-serializer/contexts/TableHeaderContext.js +0 -5
  1222. package/table/jsx-serializer/contexts/TableScrollContext.d.ts +0 -2
  1223. package/table/jsx-serializer/contexts/TableScrollContext.js +0 -7
  1224. package/table/jsx-serializer/createJsxSerializeTable.d.ts +0 -5
  1225. package/table/jsx-serializer/createJsxSerializeTable.js +0 -113
  1226. package/table/jsx-serializer/defaultRenderTableElements.d.ts +0 -2
  1227. package/table/jsx-serializer/defaultRenderTableElements.js +0 -20
  1228. package/table/jsx-serializer/index.cjs.js +0 -195
  1229. package/table/jsx-serializer/index.js +0 -2
  1230. package/table/jsx-serializer/typings.d.ts +0 -12
  1231. package/table/table.css +0 -1
  1232. package/table/toolbar/TableToolbarIcon.d.ts +0 -8
  1233. package/table/toolbar/TableToolbarIcon.js +0 -12
  1234. package/table/toolbar/index.cjs.js +0 -24
  1235. package/table/toolbar/index.js +0 -2
  1236. package/table/toolbar/useTableTool.d.ts +0 -4
  1237. package/table/toolbar/useTableTool.js +0 -13
  1238. package/table/typings.d.ts +0 -68
  1239. package/table/utils/helper.d.ts +0 -186
  1240. package/table/utils/helper.js +0 -799
  1241. package/toggle-mark/createReactToggleMarkCreator.d.ts +0 -6
  1242. package/toggle-mark/createReactToggleMarkCreator.js +0 -20
  1243. package/toggle-mark/index.cjs.js +0 -22
  1244. package/toggle-mark/index.d.ts +0 -2
  1245. package/toggle-mark/index.js +0 -1
  1246. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.d.ts +0 -4
  1247. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.js +0 -7
  1248. package/toggle-mark/jsx-serializer/index.cjs.js +0 -9
  1249. package/toggle-mark/jsx-serializer/index.d.ts +0 -2
  1250. package/toggle-mark/jsx-serializer/index.js +0 -1
  1251. package/toggle-mark/jsx-serializer/typings.d.ts +0 -2
  1252. package/toggle-mark/toolbar/ToggleMarkToolbarIcon.d.ts +0 -8
  1253. package/toggle-mark/toolbar/ToggleMarkToolbarIcon.js +0 -12
  1254. package/toggle-mark/toolbar/index.cjs.js +0 -23
  1255. package/toggle-mark/toolbar/index.js +0 -2
  1256. package/toggle-mark/toolbar/useToggleMarkTool.d.ts +0 -5
  1257. package/toggle-mark/toolbar/useToggleMarkTool.js +0 -11
  1258. package/toggle-mark/typings.d.ts +0 -12
  1259. package/toolbar/components/InlineToolbar.d.ts +0 -19
  1260. package/toolbar/components/InlineToolbar.js +0 -31
  1261. package/toolbar/components/Toolbar.d.ts +0 -25
  1262. package/toolbar/components/Toolbar.js +0 -137
  1263. package/toolbar/components/ToolbarGroupIcon.d.ts +0 -7
  1264. package/toolbar/components/ToolbarGroupIcon.js +0 -80
  1265. package/toolbar/components/ToolbarIcon.d.ts +0 -9
  1266. package/toolbar/components/ToolbarIcon.js +0 -32
  1267. package/toolbar/components/ToolbarInput.d.ts +0 -8
  1268. package/toolbar/components/ToolbarInput.js +0 -38
  1269. package/toolbar/components/toolbarIconName.d.ts +0 -2
  1270. package/toolbar/components/toolbarIconName.js +0 -86
  1271. package/toolbar/constants.d.ts +0 -5
  1272. package/toolbar/constants.js +0 -8
  1273. package/toolbar/contexts/StartToolInputContext.d.ts +0 -2
  1274. package/toolbar/contexts/StartToolInputContext.js +0 -5
  1275. package/toolbar/contexts/toolbar.d.ts +0 -7
  1276. package/toolbar/contexts/toolbar.js +0 -10
  1277. package/toolbar/contexts/toolbarMenu.d.ts +0 -6
  1278. package/toolbar/contexts/toolbarMenu.js +0 -11
  1279. package/toolbar/hooks/useAutoGroupIcons.d.ts +0 -12
  1280. package/toolbar/hooks/useAutoGroupIcons.js +0 -68
  1281. package/toolbar/hooks/useStartToolInput.d.ts +0 -1
  1282. package/toolbar/hooks/useStartToolInput.js +0 -8
  1283. package/toolbar/index.cjs.js +0 -468
  1284. package/toolbar/index.d.ts +0 -7
  1285. package/toolbar/index.js +0 -6
  1286. package/toolbar/toolbar.css +0 -1
  1287. package/toolbar/typings.d.ts +0 -6
  1288. package/underline/constants.d.ts +0 -6
  1289. package/underline/constants.js +0 -8
  1290. package/underline/createReactUnderline.d.ts +0 -1
  1291. package/underline/createReactUnderline.js +0 -11
  1292. package/underline/defaultRenderUnderline.d.ts +0 -3
  1293. package/underline/defaultRenderUnderline.js +0 -7
  1294. package/underline/index.cjs.js +0 -24
  1295. package/underline/index.js +0 -3
  1296. package/underline/jsx-serializer/createJsxSerializeUnderline.d.ts +0 -1
  1297. package/underline/jsx-serializer/createJsxSerializeUnderline.js +0 -10
  1298. package/underline/jsx-serializer/index.cjs.js +0 -13
  1299. package/underline/jsx-serializer/index.js +0 -2
  1300. package/underline/typings.d.ts +0 -5
  1301. package/utils/composeRefs.d.ts +0 -19
  1302. package/utils/composeRefs.js +0 -32
  1303. package/utils/index.cjs.js +0 -193
  1304. package/utils/index.js +0 -7
  1305. package/utils/removePreviousElement.d.ts +0 -9
  1306. package/utils/removePreviousElement.js +0 -44
  1307. package/utils/upload.d.ts +0 -11
  1308. package/utils/upload.js +0 -57
  1309. package/utils/useClickAway.d.ts +0 -5
  1310. package/utils/useClickAway.js +0 -23
  1311. package/utils/useDocumentEvents.d.ts +0 -5
  1312. package/utils/useDocumentEvents.js +0 -21
  1313. package/utils/useIsomorphicLayoutEffect.d.ts +0 -2
  1314. package/utils/useIsomorphicLayoutEffect.js +0 -9
  1315. package/utils/usePreviousValue.d.ts +0 -1
  1316. package/utils/usePreviousValue.js +0 -11
  1317. /package/_internal/{index.d.ts → src/index.ts} +0 -0
  1318. /package/accordion/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1319. /package/accordion/{accordion.scss → src/accordion.scss} +0 -0
  1320. /package/accordion/{index.d.ts → src/index.ts} +0 -0
  1321. /package/align/{index.d.ts → src/index.ts} +0 -0
  1322. /package/blockquote/jsx-serializer/{defaultRenderBlockquoteElement.d.ts → src/defaultRenderBlockquoteElement.ts} +0 -0
  1323. /package/blockquote/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1324. /package/blockquote/{blockquote.scss → src/blockquote.scss} +0 -0
  1325. /package/blockquote/{index.d.ts → src/index.ts} +0 -0
  1326. /package/blockquote/toolbar/{index.d.ts → src/index.ts} +0 -0
  1327. /package/bold/jsx-serializer/{defaultRenderBold.d.ts → src/defaultRenderBold.ts} +0 -0
  1328. /package/bold/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1329. /package/bold/{index.d.ts → src/index.ts} +0 -0
  1330. /package/card/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1331. /package/card/{card.scss → src/card.scss} +0 -0
  1332. /package/card/{index.d.ts → src/index.ts} +0 -0
  1333. /package/card/toolbar/{index.d.ts → src/index.ts} +0 -0
  1334. /package/carousel/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1335. /package/carousel/{carousel.scss → src/carousel.scss} +0 -0
  1336. /package/carousel/{index.d.ts → src/index.ts} +0 -0
  1337. /package/carousel/toolbar/{index.d.ts → src/index.ts} +0 -0
  1338. /package/components/{baseField.scss → src/BaseField/baseField.scss} +0 -0
  1339. /package/components/{button.scss → src/Button/button.scss} +0 -0
  1340. /package/components/{hint.scss → src/Hint/hint.scss} +0 -0
  1341. /package/components/{imageUploader.scss → src/ImageUploader/imageUploader.scss} +0 -0
  1342. /package/components/{input.scss → src/Input/input.scss} +0 -0
  1343. /package/components/{message.scss → src/Message/message.scss} +0 -0
  1344. /package/components/{modal.scss → src/Modal/modal.scss} +0 -0
  1345. /package/components/{progress.scss → src/Progress/progress.scss} +0 -0
  1346. /package/components/{segmentedControl.scss → src/SegmentedControl/segmentedControl.scss} +0 -0
  1347. /package/components/{textarea.scss → src/Textarea/textarea.scss} +0 -0
  1348. /package/components/{toggle.scss → src/Toggle/toggle.scss} +0 -0
  1349. /package/components/{tooltip.scss → src/Tooltip/tooltip.scss} +0 -0
  1350. /package/components/{components.scss → src/components.scss} +0 -0
  1351. /package/configs/{index.d.ts → src/index.ts} +0 -0
  1352. /package/divider/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1353. /package/divider/{divider.scss → src/divider.scss} +0 -0
  1354. /package/divider/{index.d.ts → src/index.ts} +0 -0
  1355. /package/embed/jsx-serializer/facebook/{index.d.ts → src/index.ts} +0 -0
  1356. /package/embed/jsx-serializer/instagram/{index.d.ts → src/index.ts} +0 -0
  1357. /package/embed/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1358. /package/embed/jsx-serializer/twitter/{index.d.ts → src/index.ts} +0 -0
  1359. /package/embed/jsx-serializer/vimeo/{index.d.ts → src/index.ts} +0 -0
  1360. /package/embed/jsx-serializer/youtube/{index.d.ts → src/index.ts} +0 -0
  1361. /package/embed/renderers/facebook/{index.d.ts → src/index.ts} +0 -0
  1362. /package/embed/renderers/instagram/{index.d.ts → src/index.ts} +0 -0
  1363. /package/embed/renderers/podcast-apple/{index.d.ts → src/index.ts} +0 -0
  1364. /package/embed/renderers/spotify/{index.d.ts → src/index.ts} +0 -0
  1365. /package/embed/renderers/twitter/{index.d.ts → src/index.ts} +0 -0
  1366. /package/embed/renderers/vimeo/{index.d.ts → src/index.ts} +0 -0
  1367. /package/embed/renderers/youtube/{index.d.ts → src/index.ts} +0 -0
  1368. /package/embed/{embed.scss → src/embed.scss} +0 -0
  1369. /package/embed/{index.d.ts → src/index.ts} +0 -0
  1370. /package/file-uploader/{file-uploader.scss → src/components/file-uploader.scss} +0 -0
  1371. /package/file-uploader/{index.d.ts → src/index.ts} +0 -0
  1372. /package/footnote/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1373. /package/footnote/{index.d.ts → src/index.ts} +0 -0
  1374. /package/heading/jsx-serializer/{defaultRenderHeadingElement.d.ts → src/defaultRenderHeadingElement.ts} +0 -0
  1375. /package/heading/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1376. /package/heading/{heading.scss → src/heading.scss} +0 -0
  1377. /package/heading/{index.d.ts → src/index.ts} +0 -0
  1378. /package/highlight/jsx-serializer/{defaultRenderHighlight.d.ts → src/defaultRenderHighlight.ts} +0 -0
  1379. /package/highlight/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1380. /package/highlight/{index.d.ts → src/index.ts} +0 -0
  1381. /package/image/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1382. /package/image/{image.scss → src/components/image.scss} +0 -0
  1383. /package/image/{index.d.ts → src/index.ts} +0 -0
  1384. /package/input-block/{index.d.ts → src/index.ts} +0 -0
  1385. /package/input-block/{input-block.scss → src/input-block.scss} +0 -0
  1386. /package/italic/jsx-serializer/{defaultRenderItalic.d.ts → src/defaultRenderItalic.ts} +0 -0
  1387. /package/italic/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1388. /package/italic/{index.d.ts → src/index.ts} +0 -0
  1389. /package/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1390. /package/line-break/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1391. /package/line-break/{index.d.ts → src/index.ts} +0 -0
  1392. /package/line-break/{line-break.scss → src/line-break.scss} +0 -0
  1393. /package/link/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1394. /package/link/{index.d.ts → src/index.ts} +0 -0
  1395. /package/list/jsx-serializer/{defaultRenderListElements.d.ts → src/defaultRenderListElements.ts} +0 -0
  1396. /package/list/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1397. /package/list/{index.d.ts → src/index.ts} +0 -0
  1398. /package/list/{list.scss → src/list.scss} +0 -0
  1399. /package/paragraph/jsx-serializer/{defaultRenderParagraphElement.d.ts → src/defaultRenderParagraphElement.ts} +0 -0
  1400. /package/paragraph/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1401. /package/paragraph/{index.d.ts → src/index.ts} +0 -0
  1402. /package/paragraph/{paragraph.scss → src/paragraph.scss} +0 -0
  1403. /package/paragraph/toolbar/{index.d.ts → src/index.ts} +0 -0
  1404. /package/read-more/jsx-serializer/{defaultRenderReadMoreElement.d.ts → src/defaultRenderReadMoreElement.ts} +0 -0
  1405. /package/read-more/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1406. /package/read-more/{read-more.scss → src/components/read-more.scss} +0 -0
  1407. /package/read-more/{index.d.ts → src/index.ts} +0 -0
  1408. /package/{editable.scss → src/core/components/editable.scss} +0 -0
  1409. /package/{index.d.ts → src/index.ts} +0 -0
  1410. /package/strikethrough/jsx-serializer/{defaultRenderStrikethrough.d.ts → src/defaultRenderStrikethrough.ts} +0 -0
  1411. /package/strikethrough/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1412. /package/strikethrough/{index.d.ts → src/index.ts} +0 -0
  1413. /package/table/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1414. /package/table/{index.d.ts → src/index.ts} +0 -0
  1415. /package/table/{table.scss → src/table.scss} +0 -0
  1416. /package/table/toolbar/{index.d.ts → src/index.ts} +0 -0
  1417. /package/toggle-mark/toolbar/{index.d.ts → src/index.ts} +0 -0
  1418. /package/toolbar/{toolbar.scss → src/components/toolbar.scss} +0 -0
  1419. /package/underline/jsx-serializer/{defaultRenderUnderline.d.ts → src/defaultRenderUnderline.ts} +0 -0
  1420. /package/underline/jsx-serializer/{index.d.ts → src/index.ts} +0 -0
  1421. /package/underline/{index.d.ts → src/index.ts} +0 -0
  1422. /package/utils/{index.d.ts → src/index.ts} +0 -0
@@ -0,0 +1,1106 @@
1
+ import { Element, PARAGRAPH_TYPE, Transforms, QuadratsElement } from '@quadrats/core';
2
+ import { ReactEditor } from 'slate-react';
3
+ import {
4
+ TABLE_MAIN_TYPE,
5
+ TABLE_BODY_TYPE,
6
+ TABLE_HEADER_TYPE,
7
+ TABLE_ROW_TYPE,
8
+ TABLE_CELL_TYPE,
9
+ TableElement,
10
+ ColumnWidth,
11
+ MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE,
12
+ MIN_COLUMN_WIDTH_PIXEL,
13
+ MIN_COLUMN_WIDTH_PERCENTAGE,
14
+ } from '@quadrats/common/table';
15
+ import { QuadratsReactEditor } from '@quadrats/react';
16
+ import { ALIGN_TYPE, ALIGNABLE_TYPES, AlignValue } from '@quadrats/common/align';
17
+ import { ParagraphElement } from '@quadrats/common/paragraph';
18
+ import { HeadingElement } from '@quadrats/common/heading';
19
+
20
+ /**
21
+ * 分配百分比寬度,確保總和為 100%
22
+ * 前 n-1 個欄位使用四捨五入的平均值,最後一個欄位使用剩餘寬度
23
+ * @param count - 欄位數量
24
+ * @returns 百分比陣列,總和為 100%
25
+ */
26
+ export function distributeEqualPercentages(count: number): number[] {
27
+ if (count <= 0) return [];
28
+ if (count === 1) return [100];
29
+
30
+ const percentages: number[] = [];
31
+ const averagePercentage = Math.round((100 / count) * 10) / 10;
32
+
33
+ // 前 n-1 個欄位使用四捨五入的平均值
34
+ for (let i = 0; i < count - 1; i++) {
35
+ percentages.push(averagePercentage);
36
+ }
37
+
38
+ // 最後一個欄位使用剩餘寬度,確保總和為 100%
39
+ const sumOfFirst = percentages.reduce((sum, val) => sum + val, 0);
40
+ const lastPercentage = Math.round((100 - sumOfFirst) * 10) / 10;
41
+
42
+ percentages.push(lastPercentage);
43
+
44
+ return percentages;
45
+ }
46
+
47
+ /**
48
+ * 等比例縮減現有百分比並加入新欄位
49
+ * 前 n-1 個縮減後的欄位使用四捨五入,最後一個縮減欄位使用剩餘寬度
50
+ * @param currentPercentages - 當前的百分比陣列
51
+ * @param newColumnPercentage - 新欄位要佔的百分比
52
+ * @param insertIndex - 新欄位插入的位置(0-based)
53
+ * @returns 新的百分比陣列,總和為 100%
54
+ */
55
+ export function scalePercentagesWithNewColumn(
56
+ currentPercentages: number[],
57
+ newColumnPercentage: number,
58
+ insertIndex: number,
59
+ ): number[] {
60
+ if (currentPercentages.length === 0) return [100];
61
+
62
+ const currentTotal = currentPercentages.reduce((sum, val) => sum + val, 0);
63
+ const targetTotal = 100 - newColumnPercentage;
64
+ const scaleFactor = targetTotal / currentTotal;
65
+
66
+ const scaledPercentages: number[] = [];
67
+
68
+ // 前 n-1 個欄位使用縮放後四捨五入的值
69
+ for (let i = 0; i < currentPercentages.length - 1; i++) {
70
+ const scaledValue = Math.round(currentPercentages[i] * scaleFactor * 10) / 10;
71
+
72
+ scaledPercentages.push(scaledValue);
73
+ }
74
+
75
+ // 最後一個現有欄位使用剩餘寬度,確保總和正確
76
+ const sumOfScaled = scaledPercentages.reduce((sum, val) => sum + val, 0);
77
+ const lastScaledValue = Math.round((targetTotal - sumOfScaled) * 10) / 10;
78
+
79
+ scaledPercentages.push(lastScaledValue);
80
+
81
+ // 在指定位置插入新欄位
82
+ const result = [...scaledPercentages];
83
+
84
+ result.splice(insertIndex, 0, newColumnPercentage);
85
+
86
+ return result;
87
+ }
88
+
89
+ export interface TableElements {
90
+ tableMainElement: TableElement | null;
91
+ tableBodyElement: TableElement | null;
92
+ tableHeaderElement: TableElement | null;
93
+ }
94
+
95
+ export interface TablePaths {
96
+ tableMainPath: number[];
97
+ tableBodyPath: number[];
98
+ tableHeaderPath: number[] | null;
99
+ }
100
+
101
+ export interface TableStructure extends TableElements, TablePaths {
102
+ headerRowCount: number;
103
+ columnCount: number;
104
+ firstRow: Element | null;
105
+ }
106
+
107
+ /**
108
+ * 提取表格的所有基本元素
109
+ */
110
+ export function getTableElements(element: TableElement): TableElements {
111
+ const tableMainElement = element.children.find(
112
+ (child) => Element.isElement(child) && child.type.includes(TABLE_MAIN_TYPE),
113
+ ) as TableElement | null;
114
+
115
+ if (!tableMainElement || !Element.isElement(tableMainElement)) {
116
+ return {
117
+ tableMainElement: null,
118
+ tableBodyElement: null,
119
+ tableHeaderElement: null,
120
+ };
121
+ }
122
+
123
+ const tableBodyElement = tableMainElement.children.find(
124
+ (child) => Element.isElement(child) && child.type.includes(TABLE_BODY_TYPE),
125
+ ) as TableElement | null;
126
+
127
+ const tableHeaderElement = tableMainElement.children.find(
128
+ (child) => Element.isElement(child) && child.type.includes(TABLE_HEADER_TYPE),
129
+ ) as TableElement | null;
130
+
131
+ return {
132
+ tableMainElement: Element.isElement(tableMainElement) ? tableMainElement : null,
133
+ tableBodyElement: Element.isElement(tableBodyElement) ? tableBodyElement : null,
134
+ tableHeaderElement: Element.isElement(tableHeaderElement) ? tableHeaderElement : null,
135
+ };
136
+ }
137
+
138
+ /**
139
+ * 獲取表格的完整結構
140
+ */
141
+ export function getTableStructure(editor: QuadratsReactEditor, element: TableElement): TableStructure | null {
142
+ const elements = getTableElements(element);
143
+
144
+ if (!elements.tableMainElement || !elements.tableBodyElement) {
145
+ return null;
146
+ }
147
+
148
+ const tableMainPath = ReactEditor.findPath(editor, elements.tableMainElement);
149
+ const tableBodyPath = ReactEditor.findPath(editor, elements.tableBodyElement);
150
+ const tableHeaderPath = elements.tableHeaderElement
151
+ ? ReactEditor.findPath(editor, elements.tableHeaderElement)
152
+ : null;
153
+
154
+ const headerRowCount = elements.tableHeaderElement?.children.length || 0;
155
+ const firstRow = elements.tableBodyElement.children[0];
156
+ const columnCount = Element.isElement(firstRow) ? firstRow.children.length : 0;
157
+
158
+ return {
159
+ ...elements,
160
+ tableMainPath,
161
+ tableBodyPath,
162
+ tableHeaderPath,
163
+ headerRowCount,
164
+ columnCount,
165
+ firstRow: Element.isElement(firstRow) ? firstRow : null,
166
+ };
167
+ }
168
+
169
+ /**
170
+ * 檢查列是否有 pinned cells
171
+ */
172
+ export function hasColumnPinnedCells(tableStructure: TableStructure, columnIndex: number): boolean {
173
+ const containers = [tableStructure.tableBodyElement, tableStructure.tableHeaderElement].filter(Boolean);
174
+
175
+ for (const container of containers) {
176
+ if (!Element.isElement(container)) continue;
177
+
178
+ for (const row of container.children) {
179
+ if (Element.isElement(row) && row.type.includes(TABLE_ROW_TYPE)) {
180
+ const cell = row.children[columnIndex];
181
+
182
+ if (Element.isElement(cell) && cell.type.includes(TABLE_CELL_TYPE) && (cell as TableElement).pinned) {
183
+ return true;
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ return false;
190
+ }
191
+
192
+ /**
193
+ * 檢查是否有任何 pinned columns
194
+ */
195
+ export function hasAnyPinnedColumns(tableStructure: TableStructure): boolean {
196
+ if (Element.isElement(tableStructure.tableBodyElement)) {
197
+ const lastRow = tableStructure.tableBodyElement.children[tableStructure.tableBodyElement.children.length - 1];
198
+
199
+ if (Element.isElement(lastRow) && lastRow.type.includes(TABLE_ROW_TYPE)) {
200
+ if (
201
+ lastRow.children[0] &&
202
+ Element.isElement(lastRow.children[0]) &&
203
+ lastRow.children[0].type.includes(TABLE_CELL_TYPE)
204
+ ) {
205
+ // 如果最後一行 body row 的第一個 cell 是 pinned,代表有任何 pinned columns
206
+ return lastRow.children[0].pinned === true;
207
+ }
208
+ }
209
+ }
210
+
211
+ return false;
212
+ }
213
+
214
+ /**
215
+ * 檢查是否有任何 pinned rows
216
+ */
217
+ export function hasAnyPinnedRows(tableStructure: TableStructure): boolean {
218
+ if (!tableStructure.tableHeaderElement) return false;
219
+
220
+ if (tableStructure.tableHeaderElement.children[0]) {
221
+ const firstRow = tableStructure.tableHeaderElement.children[0];
222
+
223
+ if (Element.isElement(firstRow) && firstRow.type.includes(TABLE_ROW_TYPE)) {
224
+ // 如果第一個 header row 的所有 cell 都是 pinned,代表有任何 pinned rows
225
+ return firstRow.children.every(
226
+ (cell) => Element.isElement(cell) && cell.type.includes(TABLE_CELL_TYPE) && (cell as TableElement).pinned,
227
+ );
228
+ }
229
+ }
230
+
231
+ return false;
232
+ }
233
+
234
+ /**
235
+ * 創建新的 table cell
236
+ */
237
+ export function createTableCell(referenceCell?: TableElement, overrideProps?: Partial<TableElement>): TableElement {
238
+ const baseCell: TableElement = {
239
+ type: TABLE_CELL_TYPE,
240
+ children: [
241
+ {
242
+ type: PARAGRAPH_TYPE,
243
+ children: [{ text: '' }],
244
+ },
245
+ ],
246
+ };
247
+
248
+ if (referenceCell) {
249
+ if (referenceCell.treatAsTitle) {
250
+ baseCell.treatAsTitle = true;
251
+ }
252
+
253
+ if (referenceCell.pinned) {
254
+ baseCell.pinned = true;
255
+ }
256
+
257
+ if (referenceCell.children[0]?.align) {
258
+ baseCell.children[0].align = referenceCell.children[0].align;
259
+ }
260
+ }
261
+
262
+ return { ...baseCell, ...overrideProps };
263
+ }
264
+
265
+ /**
266
+ * 獲取參考 row
267
+ */
268
+ export function getReferenceRowFromHeaderOrBody(
269
+ HeaderOrBodyContainer: TableElement,
270
+ rowIndex: number,
271
+ ): TableElement | undefined {
272
+ const row = HeaderOrBodyContainer.children[rowIndex];
273
+
274
+ if (!Element.isElement(row) || !row.type.includes(TABLE_ROW_TYPE)) {
275
+ return undefined;
276
+ }
277
+
278
+ return row as TableElement;
279
+ }
280
+
281
+ /**
282
+ * 收集指定範圍的 cells
283
+ * @param tableStructure - 表格結構
284
+ * @param scope - 'table' | 'column'
285
+ * @param columnIndex - 當 scope 為 'column' 時需要指定
286
+ * @returns cells 陣列
287
+ */
288
+ export function collectCells(
289
+ tableStructure: TableStructure,
290
+ scope: 'table' | 'column',
291
+ columnIndex?: number,
292
+ ): Element[] {
293
+ const containers = [tableStructure.tableBodyElement, tableStructure.tableHeaderElement].filter(
294
+ Boolean,
295
+ ) as TableElement[];
296
+
297
+ const cells: Element[] = [];
298
+
299
+ for (const container of containers) {
300
+ if (!Element.isElement(container)) continue;
301
+
302
+ for (const row of container.children) {
303
+ if (!Element.isElement(row)) continue;
304
+
305
+ if (scope === 'column' && typeof columnIndex === 'number') {
306
+ // 收集指定 column 的 cells
307
+ const cell = row.children[columnIndex];
308
+
309
+ if (Element.isElement(cell)) {
310
+ cells.push(cell);
311
+ }
312
+ } else if (scope === 'table') {
313
+ // 收集所有 cells
314
+ for (const cell of row.children) {
315
+ if (Element.isElement(cell)) {
316
+ cells.push(cell);
317
+ }
318
+ }
319
+ }
320
+ }
321
+ }
322
+
323
+ return cells;
324
+ }
325
+
326
+ /**
327
+ * 設定指定 cells 的 align
328
+ * @param editor - Slate editor
329
+ * @param cells - 要設定 align 的 cell 元素陣列
330
+ * @param alignValue - align 值
331
+ */
332
+ export function setAlignForCells(editor: QuadratsReactEditor, cells: Element[], alignValue: AlignValue) {
333
+ for (const cell of cells) {
334
+ if (!Element.isElement(cell)) continue;
335
+
336
+ const cellPath = ReactEditor.findPath(editor, cell as TableElement);
337
+
338
+ // 對 cell 內的所有可 align 的元素設定 align
339
+ for (let contentIndex = 0; contentIndex < cell.children.length; contentIndex++) {
340
+ const content = cell.children[contentIndex];
341
+
342
+ if (
343
+ Element.isElement(content) &&
344
+ (content as QuadratsElement).type &&
345
+ ALIGNABLE_TYPES.includes((content as QuadratsElement).type)
346
+ ) {
347
+ const contentPath = [...cellPath, contentIndex];
348
+
349
+ Transforms.setNodes(editor, { [ALIGN_TYPE]: alignValue } as Partial<ParagraphElement | HeadingElement>, {
350
+ at: contentPath,
351
+ });
352
+ }
353
+ }
354
+ }
355
+ }
356
+
357
+ /**
358
+ * 獲取指定 cells 的 align 狀態
359
+ * @param cells - 要檢查的 cell 元素陣列
360
+ * @returns 如果所有 cell 的 align 都相同則返回該值,否則返回 'left'
361
+ */
362
+ export function getAlignFromCells(cells: Element[]): AlignValue {
363
+ const alignValues: AlignValue[] = [];
364
+
365
+ for (const cell of cells) {
366
+ if (!Element.isElement(cell)) continue;
367
+
368
+ // 檢查 cell 內的第一個可 align 元素
369
+ for (const content of cell.children) {
370
+ if (
371
+ Element.isElement(content) &&
372
+ (content as QuadratsElement).type &&
373
+ ALIGNABLE_TYPES.includes((content as QuadratsElement).type)
374
+ ) {
375
+ const alignValue = (content as ParagraphElement | HeadingElement)[ALIGN_TYPE];
376
+
377
+ if (alignValue) {
378
+ alignValues.push(alignValue as AlignValue);
379
+ }
380
+
381
+ break; // 只檢查第一個可 align 元素
382
+ }
383
+ }
384
+ }
385
+
386
+ // 如果所有 align 值都相同,返回該值;否則返回預設的 'left'
387
+ if (alignValues.length > 0) {
388
+ const firstAlign = alignValues[0];
389
+ const allSame = alignValues.every((align) => align === firstAlign);
390
+
391
+ if (allSame) {
392
+ return firstAlign;
393
+ }
394
+ }
395
+
396
+ return 'left';
397
+ }
398
+
399
+ /**
400
+ * 獲取釘選欄位的資訊
401
+ * @param tableElement - 表格最外層元素
402
+ * @returns 釘選欄位的索引陣列和總寬度百分比
403
+ */
404
+ export function getPinnedColumnsInfo(tableElement: TableElement): {
405
+ pinnedColumnIndices: number[];
406
+ totalPinnedPercentage: number;
407
+ } {
408
+ const { tableBodyElement } = getTableElements(tableElement);
409
+
410
+ if (!tableBodyElement || !Element.isElement(tableBodyElement)) {
411
+ return { pinnedColumnIndices: [], totalPinnedPercentage: 0 };
412
+ }
413
+
414
+ const firstRow = tableBodyElement.children[0];
415
+
416
+ if (!Element.isElement(firstRow)) {
417
+ return { pinnedColumnIndices: [], totalPinnedPercentage: 0 };
418
+ }
419
+
420
+ const pinnedColumnIndices: number[] = [];
421
+ let totalPinnedPercentage = 0;
422
+
423
+ firstRow.children.forEach((cell, index) => {
424
+ if (Element.isElement(cell) && cell.treatAsTitle && cell.pinned) {
425
+ pinnedColumnIndices.push(index);
426
+
427
+ // 如果有設定 columnWidths,使用設定的寬度
428
+ if (tableElement.columnWidths && tableElement.columnWidths[index]) {
429
+ const width = tableElement.columnWidths[index];
430
+
431
+ if (width.type === 'percentage') {
432
+ totalPinnedPercentage += width.value;
433
+ }
434
+ }
435
+ }
436
+ });
437
+
438
+ return { pinnedColumnIndices, totalPinnedPercentage };
439
+ }
440
+
441
+ /**
442
+ * 強制調整釘選欄位寬度以符合最大限制
443
+ * @param columnWidths - 當前欄位寬度陣列
444
+ * @param pinnedColumnIndices - 釘選欄位索引陣列
445
+ * @returns 調整後的欄位寬度陣列
446
+ */
447
+ export function enforcePinnedColumnsMaxWidth(
448
+ columnWidths: ColumnWidth[],
449
+ pinnedColumnIndices: number[],
450
+ ): ColumnWidth[] {
451
+ if (pinnedColumnIndices.length === 0) {
452
+ return columnWidths;
453
+ }
454
+
455
+ // 計算釘選欄位的總寬度
456
+ let totalPinnedPercentage = 0;
457
+
458
+ pinnedColumnIndices.forEach((index) => {
459
+ const width = columnWidths[index];
460
+
461
+ if (width && width.type === 'percentage') {
462
+ totalPinnedPercentage += width.value;
463
+ }
464
+ });
465
+
466
+ // 如果超過最大限制,按比例縮減
467
+ if (totalPinnedPercentage > MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE) {
468
+ const scaleFactor = MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE / totalPinnedPercentage;
469
+ const newWidths = [...columnWidths];
470
+
471
+ pinnedColumnIndices.forEach((index) => {
472
+ const width = newWidths[index];
473
+
474
+ if (width && width.type === 'percentage') {
475
+ newWidths[index] = {
476
+ type: 'percentage',
477
+ value: Math.round(width.value * scaleFactor * 10) / 10,
478
+ };
479
+ }
480
+ });
481
+
482
+ return newWidths;
483
+ }
484
+
485
+ return columnWidths;
486
+ }
487
+
488
+ /**
489
+ * 獲取表格的欄位寬度陣列
490
+ * 當有釘選欄位時:
491
+ * - 釘選欄位使用 percentage
492
+ * - 未釘選欄位使用 pixel(基於剩餘空間平均分配)
493
+ * @param tableElement - 表格最外層元素
494
+ * @param tableWidth - 表格容器的實際寬度(pixel),用於計算 pixel 寬度
495
+ * @returns 欄位寬度陣列
496
+ */
497
+ export function getColumnWidths(tableElement: TableElement, tableWidth?: number): ColumnWidth[] {
498
+ const tableStructure = getTableElements(tableElement);
499
+ const { tableBodyElement } = tableStructure;
500
+
501
+ if (!tableBodyElement || !Element.isElement(tableBodyElement)) {
502
+ return [];
503
+ }
504
+
505
+ const firstRow = tableBodyElement.children[0];
506
+
507
+ if (!Element.isElement(firstRow)) {
508
+ return [];
509
+ }
510
+
511
+ const columnCount = firstRow.children.length;
512
+
513
+ // 獲取釘選欄位資訊
514
+ const { pinnedColumnIndices } = getPinnedColumnsInfo(tableElement);
515
+ const hasPinnedColumns = pinnedColumnIndices.length > 0;
516
+
517
+ // 如果 tableElement 有 columnWidths
518
+ if (tableElement.columnWidths && tableElement.columnWidths.length === columnCount) {
519
+ let widths = [...tableElement.columnWidths];
520
+
521
+ // 強制檢查釘選欄位是否超過 40%,如果超過則調整
522
+ if (hasPinnedColumns) {
523
+ widths = enforcePinnedColumnsMaxWidth(widths, pinnedColumnIndices);
524
+ }
525
+
526
+ return widths;
527
+ }
528
+
529
+ // 如果沒有設定 columnWidths,需要初始化
530
+ // 如果有釘選欄位,使用混合模式
531
+ if (hasPinnedColumns && tableWidth) {
532
+ const widths: ColumnWidth[] = [];
533
+
534
+ // 先計算釘選欄位的總寬度
535
+ const pinnedPercentagePerColumn = Math.min(
536
+ Math.round((MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE / pinnedColumnIndices.length) * 10) / 10,
537
+ MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE,
538
+ );
539
+
540
+ // 計算實際釘選欄位總百分比
541
+ const actualPinnedPercentage = Math.min(
542
+ pinnedPercentagePerColumn * pinnedColumnIndices.length,
543
+ MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE,
544
+ );
545
+
546
+ // 計算剩餘空間(pixel)
547
+ const remainingPercentage = 100 - actualPinnedPercentage;
548
+ const remainingPixelWidth = (tableWidth * remainingPercentage) / 100;
549
+ const unpinnedColumnCount = columnCount - pinnedColumnIndices.length;
550
+ const pixelWidthPerColumn = unpinnedColumnCount > 0 ? Math.floor(remainingPixelWidth / unpinnedColumnCount) : 0;
551
+
552
+ // 建立寬度陣列
553
+ for (let i = 0; i < columnCount; i++) {
554
+ if (pinnedColumnIndices.includes(i)) {
555
+ widths.push({ type: 'percentage', value: pinnedPercentagePerColumn });
556
+ } else {
557
+ widths.push({ type: 'pixel', value: pixelWidthPerColumn });
558
+ }
559
+ }
560
+
561
+ return widths;
562
+ }
563
+
564
+ // 否則返回平均分配的 percentage(總和為 100%)
565
+ const percentages = distributeEqualPercentages(columnCount);
566
+
567
+ return percentages.map((value) => ({ type: 'percentage' as const, value }));
568
+ }
569
+
570
+ /**
571
+ * 設定表格的欄位寬度
572
+ * @param editor - Slate editor
573
+ * @param tableElement - 表格最外層元素
574
+ * @param columnWidths - 欄位寬度陣列
575
+ */
576
+ export function setColumnWidths(
577
+ editor: QuadratsReactEditor,
578
+ tableElement: TableElement,
579
+ columnWidths: ColumnWidth[],
580
+ ): void {
581
+ const tablePath = ReactEditor.findPath(editor, tableElement);
582
+
583
+ Transforms.setNodes(editor, { columnWidths: [...columnWidths] } as Partial<TableElement>, { at: tablePath });
584
+ }
585
+
586
+ /**
587
+ * 計算新增欄位後的欄位寬度
588
+ * - 如果所有欄位都是 percentage:按比例縮減現有欄位,新欄位佔平均寬度
589
+ * - 如果有混合模式(percentage + pixel):
590
+ * * 如果用戶操作的欄位是 pinned column:新欄位使用 percentage(需要調整 pinned columns 的百分比)
591
+ * * 如果用戶操作的欄位是 unpinned column:新欄位使用 pixel(與其他 pixel 欄位相同寬度)
592
+ *
593
+ * @param currentWidths - 當前的欄位寬度陣列
594
+ * @param insertIndex - 新欄位插入的位置(0-based)
595
+ * @param pinnedColumnIndices - 當前釘選欄位的索引陣列(插入前的索引)
596
+ * @param operatingColumnIndex - 用戶實際操作的欄位索引(用於判斷是在 pinned 還是 unpinned column 操作)
597
+ * @returns 新的欄位寬度陣列
598
+ */
599
+ export function calculateColumnWidthsAfterAdd(
600
+ currentWidths: ColumnWidth[],
601
+ insertIndex: number,
602
+ pinnedColumnIndices: number[] = [],
603
+ operatingColumnIndex?: number,
604
+ ): ColumnWidth[] {
605
+ const newColumnCount = currentWidths.length + 1;
606
+
607
+ // 分離 percentage 和 pixel 欄位
608
+ const percentageColumns: { index: number; value: number }[] = [];
609
+ const pixelColumns: { index: number; value: number }[] = [];
610
+
611
+ currentWidths.forEach((width, index) => {
612
+ if (width.type === 'percentage') {
613
+ percentageColumns.push({ index, value: width.value });
614
+ } else {
615
+ pixelColumns.push({ index, value: width.value });
616
+ }
617
+ });
618
+
619
+ // 如果所有欄位都是 percentage(正常模式,無 pinned columns)
620
+ if (percentageColumns.length === currentWidths.length) {
621
+ // 計算新欄位的平均百分比
622
+ const averagePercentage = Math.round((100 / newColumnCount) * 10) / 10;
623
+
624
+ // 提取當前的百分比值
625
+ const currentPercentages = currentWidths.map((w) => w.value);
626
+
627
+ // 等比例縮減現有欄位並插入新欄位
628
+ const newPercentages = scalePercentagesWithNewColumn(currentPercentages, averagePercentage, insertIndex);
629
+
630
+ return newPercentages.map((value) => ({ type: 'percentage' as const, value }));
631
+ }
632
+
633
+ // 如果有混合的 pixel 和 percentage 欄位(有 pinned columns)
634
+ if (percentageColumns.length && pixelColumns.length) {
635
+ // 判斷新欄位是否應該是 pinned column
636
+ const isNewColumnPinned =
637
+ typeof operatingColumnIndex === 'number' ? pinnedColumnIndices.includes(operatingColumnIndex) : false;
638
+
639
+ if (isNewColumnPinned) {
640
+ // 新欄位應該是 pinned column,使用 percentage
641
+ // 需要調整所有 pinned columns 的百分比
642
+ const newWidths: ColumnWidth[] = [];
643
+ const pinnedColumnCount = pinnedColumnIndices.length + 1; // 加上新欄位
644
+
645
+ const pinnedPercentagePerColumn = Math.min(
646
+ Math.round((MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE / pinnedColumnCount) * 10) / 10,
647
+ MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE,
648
+ );
649
+
650
+ currentWidths.forEach((width, index) => {
651
+ if (index === insertIndex) {
652
+ newWidths.push({ type: 'percentage', value: pinnedPercentagePerColumn });
653
+ }
654
+
655
+ if (pinnedColumnIndices.includes(index)) {
656
+ // 調整現有 pinned column 的百分比
657
+ newWidths.push({ type: 'percentage', value: pinnedPercentagePerColumn });
658
+ } else {
659
+ // 保持非 pinned column (pixel) 不變
660
+ newWidths.push({ ...width });
661
+ }
662
+ });
663
+
664
+ // 如果插入位置在最後(但仍在 pinned 區域內)
665
+ if (insertIndex >= currentWidths.length) {
666
+ newWidths.push({ type: 'percentage', value: pinnedPercentagePerColumn });
667
+ }
668
+
669
+ return newWidths;
670
+ } else {
671
+ // 新欄位應該是 unpinned column,使用 pixel
672
+ const newWidths: ColumnWidth[] = [];
673
+
674
+ // 找到最後一個 pixel 欄位的寬度,新欄位將複製這個寬度
675
+ const lastPixelWidth = pixelColumns.length > 0 ? pixelColumns[pixelColumns.length - 1].value : 150;
676
+
677
+ currentWidths.forEach((width, index) => {
678
+ if (index === insertIndex) {
679
+ newWidths.push({ type: 'pixel', value: lastPixelWidth });
680
+ }
681
+
682
+ newWidths.push({ ...width });
683
+ });
684
+
685
+ // 如果插入位置在最後
686
+ if (insertIndex >= currentWidths.length) {
687
+ newWidths.push({ type: 'pixel', value: lastPixelWidth });
688
+ }
689
+
690
+ return newWidths;
691
+ }
692
+ }
693
+
694
+ // Fallback: 等比例縮減並插入新欄位
695
+ const averagePercentage = Math.round((100 / newColumnCount) * 10) / 10;
696
+
697
+ // 提取當前的百分比值(假設都是 percentage,否則轉為平均分配)
698
+ const currentPercentages = currentWidths.map((w) => (w.type === 'percentage' ? w.value : 100 / currentWidths.length));
699
+
700
+ // 等比例縮減現有欄位並插入新欄位
701
+ const newPercentages = scalePercentagesWithNewColumn(currentPercentages, averagePercentage, insertIndex);
702
+
703
+ return newPercentages.map((value) => ({ type: 'percentage' as const, value }));
704
+ }
705
+
706
+ /**
707
+ * 計算刪除欄位後的欄位寬度
708
+ * 此函數會智慧處理欄位寬度的重新分配:
709
+ * - 如果所有欄位都是 percentage:按比例放大剩餘欄位
710
+ * - 如果有 pixel 欄位:保持 pixel 欄位不變,只調整 percentage 欄位
711
+ *
712
+ * @param currentWidths - 當前的欄位寬度陣列
713
+ * @param deleteIndex - 要刪除的欄位索引(0-based)
714
+ * @returns 新的欄位寬度陣列
715
+ */
716
+ export function calculateColumnWidthsAfterDelete(currentWidths: ColumnWidth[], deleteIndex: number): ColumnWidth[] {
717
+ if (currentWidths.length <= 1) {
718
+ return currentWidths;
719
+ }
720
+
721
+ const deletedWidth = currentWidths[deleteIndex];
722
+ const newWidths = currentWidths.filter((_, index) => index !== deleteIndex);
723
+
724
+ // 如果刪除的是 pixel 欄位,其他欄位保持不變
725
+ if (deletedWidth.type === 'pixel') {
726
+ return newWidths;
727
+ }
728
+
729
+ // 刪除的是 percentage 欄位
730
+ const deletedPercentage = deletedWidth.value;
731
+
732
+ // 分離 percentage 和 pixel 欄位
733
+ const percentageIndices: number[] = [];
734
+
735
+ newWidths.forEach((width, index) => {
736
+ if (width.type === 'percentage') {
737
+ percentageIndices.push(index);
738
+ }
739
+ });
740
+
741
+ // 如果沒有 percentage 欄位,直接返回
742
+ if (percentageIndices.length === 0) {
743
+ return newWidths;
744
+ }
745
+
746
+ // 將刪除欄位的百分比按比例分配給其他 percentage 欄位
747
+ const currentPercentageTotal = percentageIndices.reduce((sum, index) => sum + newWidths[index].value, 0);
748
+
749
+ return newWidths.map((width) => {
750
+ if (width.type === 'percentage') {
751
+ const proportion = width.value / currentPercentageTotal;
752
+ const additionalPercentage = deletedPercentage * proportion;
753
+ const newValue = Math.round((width.value + additionalPercentage) * 10) / 10;
754
+
755
+ return { type: 'percentage', value: newValue };
756
+ }
757
+
758
+ return width;
759
+ });
760
+ }
761
+
762
+ /**
763
+ * 計算拖曳後的欄位寬度
764
+ * 處理釘選欄位的特殊邏輯:
765
+ * - 情況 1:未釘選欄位(pixel)與未釘選欄位(pixel)之間:直接改變 pixel 值,允許超出容器
766
+ * - 情況 2:釘選欄位(percentage)與釘選欄位(percentage)之間:互相調整,且總和不超過 40%
767
+ * - 情況 3:釘選欄位(percentage)與未釘選欄位(pixel)之間:
768
+ * * 只調整釘選欄位的百分比(不超過 40% 總限制)
769
+ * * 當 table 未溢出(寬度 < container)時,重新計算所有未釘選欄位的 pixel 值以維持 100%
770
+ * * 當 table 已溢出時,只調整下一個欄位的 pixel 值
771
+ * * 當達到 40% 上限時,停止調整
772
+ * - 預設情況:兩個都是 percentage 但都不是釘選欄位(正常模式)
773
+ *
774
+ * @param currentWidths - 當前的欄位寬度陣列
775
+ * @param columnIndex - 被調整的欄位索引
776
+ * @param deltaPercentage - 寬度變化量(百分比)
777
+ * @param deltaPixel - 寬度變化量(pixel)
778
+ * @param pinnedColumnIndices - 釘選欄位的索引陣列
779
+ * @returns 新的欄位寬度陣列
780
+ */
781
+ export function calculateResizedColumnWidths(
782
+ currentWidths: ColumnWidth[],
783
+ columnIndex: number,
784
+ deltaPercentage: number,
785
+ deltaPixel: number,
786
+ pinnedColumnIndices: number[] = [],
787
+ ): ColumnWidth[] {
788
+ const newWidths = [...currentWidths];
789
+ const nextColumnIndex = columnIndex + 1;
790
+ const isLastColumn = nextColumnIndex >= newWidths.length;
791
+
792
+ const currentCol = newWidths[columnIndex];
793
+ const nextCol = isLastColumn ? null : newWidths[nextColumnIndex];
794
+ const isCurrentPinned = pinnedColumnIndices.includes(columnIndex);
795
+ const isNextPinned = nextCol ? pinnedColumnIndices.includes(nextColumnIndex) : false;
796
+
797
+ // **特殊情況:最後一欄,只調整當前欄位**
798
+ // 最後一欄必定不是 pinned column
799
+ if (isLastColumn) {
800
+ if (currentCol.type === 'pixel') {
801
+ // pixel 欄位(有 pinned column 情境):直接調整寬度
802
+ const currentPixel = currentCol.value;
803
+ const newCurrentPixel = Math.max(MIN_COLUMN_WIDTH_PIXEL, currentPixel + deltaPixel);
804
+
805
+ newWidths[columnIndex] = { type: 'pixel', value: Math.floor(newCurrentPixel) };
806
+ } else if (currentCol.type === 'percentage') {
807
+ // percentage 欄位(無 pinned column 情境):調整當前欄位並將差額分配給前一欄以確保總和為 100%
808
+ const currentWidth = currentCol.value;
809
+ let newCurrentWidth = Math.max(
810
+ MIN_COLUMN_WIDTH_PERCENTAGE,
811
+ Math.round((currentWidth + deltaPercentage) * 10) / 10,
812
+ );
813
+
814
+ // 計算其他欄位的總百分比
815
+ const otherColumnsTotal = newWidths
816
+ .filter((_, idx) => idx !== columnIndex)
817
+ .reduce((sum, width) => sum + (width.type === 'percentage' ? width.value : 0), 0);
818
+
819
+ // 確保總和為 100%
820
+ const maxAllowedWidth = 100 - otherColumnsTotal;
821
+
822
+ newCurrentWidth = Math.min(newCurrentWidth, maxAllowedWidth);
823
+
824
+ // 計算寬度變化量
825
+ const widthChange = currentWidth - newCurrentWidth;
826
+
827
+ // 如果有寬度變化且存在前一欄,將差額分配給前一欄
828
+ if (widthChange !== 0 && columnIndex > 0) {
829
+ const prevCol = newWidths[columnIndex - 1];
830
+
831
+ if (prevCol.type === 'percentage') {
832
+ const newPrevWidth = Math.max(
833
+ MIN_COLUMN_WIDTH_PERCENTAGE,
834
+ Math.round((prevCol.value + widthChange) * 10) / 10,
835
+ );
836
+
837
+ newWidths[columnIndex - 1] = { type: 'percentage', value: newPrevWidth };
838
+ }
839
+ }
840
+
841
+ newWidths[columnIndex] = { type: 'percentage', value: newCurrentWidth };
842
+ }
843
+
844
+ return newWidths;
845
+ }
846
+
847
+ // 以下是有 next column 的邏輯
848
+ if (!nextCol) {
849
+ return newWidths;
850
+ }
851
+
852
+ // 情況 1:當前欄位是 pixel(未釘選),下一欄位也是 pixel(未釘選)
853
+ if (currentCol.type === 'pixel' && nextCol.type === 'pixel') {
854
+ const currentPixel = currentCol.value;
855
+ const newCurrentPixel = Math.max(MIN_COLUMN_WIDTH_PIXEL, currentPixel + deltaPixel);
856
+
857
+ newWidths[columnIndex] = { type: 'pixel', value: Math.floor(newCurrentPixel) };
858
+
859
+ return newWidths;
860
+ }
861
+
862
+ // 情況 2:當前欄位是 percentage(釘選),下一欄位也是 percentage(釘選)
863
+ if (currentCol.type === 'percentage' && nextCol.type === 'percentage' && isCurrentPinned && isNextPinned) {
864
+ const currentWidth = currentCol.value;
865
+ const nextWidth = nextCol.value;
866
+
867
+ // 計算新寬度
868
+ let newCurrentWidth = Math.round((currentWidth + deltaPercentage) * 10) / 10;
869
+ let newNextWidth = Math.round((nextWidth - deltaPercentage) * 10) / 10;
870
+
871
+ if (newCurrentWidth < MIN_COLUMN_WIDTH_PERCENTAGE) {
872
+ newCurrentWidth = MIN_COLUMN_WIDTH_PERCENTAGE;
873
+ newNextWidth = Math.round((currentWidth + nextWidth - MIN_COLUMN_WIDTH_PERCENTAGE) * 10) / 10;
874
+ } else if (newNextWidth < MIN_COLUMN_WIDTH_PERCENTAGE) {
875
+ newNextWidth = MIN_COLUMN_WIDTH_PERCENTAGE;
876
+ newCurrentWidth = Math.round((currentWidth + nextWidth - MIN_COLUMN_WIDTH_PERCENTAGE) * 10) / 10;
877
+ }
878
+
879
+ // 確保釘選欄位總和不超過 40%
880
+ const otherPinnedTotal = pinnedColumnIndices
881
+ .filter((idx) => idx !== columnIndex && idx !== nextColumnIndex)
882
+ .reduce((sum, idx) => sum + (newWidths[idx].type === 'percentage' ? newWidths[idx].value : 0), 0);
883
+
884
+ const twoColumnsTotal = newCurrentWidth + newNextWidth;
885
+
886
+ if (otherPinnedTotal + twoColumnsTotal > MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE) {
887
+ // 按比例縮減這兩個欄位
888
+ const allowedTotal = MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE - otherPinnedTotal;
889
+ const scale = allowedTotal / twoColumnsTotal;
890
+
891
+ newCurrentWidth = Math.round(newCurrentWidth * scale * 10) / 10;
892
+ newNextWidth = Math.round(newNextWidth * scale * 10) / 10;
893
+ }
894
+
895
+ newWidths[columnIndex] = { type: 'percentage', value: newCurrentWidth };
896
+ newWidths[nextColumnIndex] = { type: 'percentage', value: newNextWidth };
897
+
898
+ return newWidths;
899
+ }
900
+
901
+ // 情況 3:當前欄位是 percentage(釘選),下一欄位是 pixel(未釘選)
902
+ if (currentCol.type === 'percentage' && nextCol.type === 'pixel' && isCurrentPinned && !isNextPinned) {
903
+ const currentWidth = currentCol.value;
904
+
905
+ // 計算新的釘選欄位寬度
906
+ let newCurrentWidth = Math.round((currentWidth + deltaPercentage) * 10) / 10;
907
+
908
+ newCurrentWidth = Math.max(MIN_COLUMN_WIDTH_PERCENTAGE, newCurrentWidth);
909
+
910
+ // 確保所有釘選欄位總和不超過 40%
911
+ const otherPinnedTotal = pinnedColumnIndices
912
+ .filter((idx) => idx !== columnIndex)
913
+ .reduce((sum, idx) => sum + (newWidths[idx].type === 'percentage' ? newWidths[idx].value : 0), 0);
914
+
915
+ const maxAllowedWidth = MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE - otherPinnedTotal;
916
+
917
+ // 計算調整前後的實際寬度
918
+ const beforeAdjustWidth = Math.min(currentWidth, maxAllowedWidth);
919
+ const afterAdjustWidth = Math.min(newCurrentWidth, maxAllowedWidth);
920
+
921
+ // 如果調整前後的寬度相同(表示已經被限制在上限),則不調整任何欄位
922
+ if (Math.abs(afterAdjustWidth - beforeAdjustWidth) < 0.1) {
923
+ return newWidths;
924
+ }
925
+
926
+ // 應用上限限制
927
+ newCurrentWidth = afterAdjustWidth;
928
+
929
+ // 更新當前釘選欄位的寬度
930
+ newWidths[columnIndex] = { type: 'percentage', value: newCurrentWidth };
931
+
932
+ return newWidths;
933
+ }
934
+
935
+ // 預設情況:兩個都是 percentage 但都不是釘選欄位(正常模式)
936
+ if (currentCol.type === 'percentage' && nextCol.type === 'percentage') {
937
+ const currentWidth = currentCol.value;
938
+ const nextWidth = nextCol.value;
939
+
940
+ let newCurrentWidth = Math.round((currentWidth + deltaPercentage) * 10) / 10;
941
+ let newNextWidth = Math.round((nextWidth - deltaPercentage) * 10) / 10;
942
+
943
+ if (newCurrentWidth < MIN_COLUMN_WIDTH_PERCENTAGE) {
944
+ newCurrentWidth = MIN_COLUMN_WIDTH_PERCENTAGE;
945
+ newNextWidth = Math.round((currentWidth + nextWidth - MIN_COLUMN_WIDTH_PERCENTAGE) * 10) / 10;
946
+ } else if (newNextWidth < MIN_COLUMN_WIDTH_PERCENTAGE) {
947
+ newNextWidth = MIN_COLUMN_WIDTH_PERCENTAGE;
948
+ newCurrentWidth = Math.round((currentWidth + nextWidth - MIN_COLUMN_WIDTH_PERCENTAGE) * 10) / 10;
949
+ }
950
+
951
+ newWidths[columnIndex] = { type: 'percentage', value: newCurrentWidth };
952
+ newWidths[nextColumnIndex] = { type: 'percentage', value: newNextWidth };
953
+
954
+ return newWidths;
955
+ }
956
+
957
+ return newWidths;
958
+ }
959
+
960
+ /**
961
+ * 移動或交換欄位寬度設定
962
+ * @param currentWidths - 當前的欄位寬度陣列
963
+ * @param sourceIndex - 來源欄位的索引
964
+ * @param targetIndex - 目標欄位的索引
965
+ * @param mode - 'swap' 為交換兩個位置,'move' 為移動到目標位置
966
+ * @returns 處理後的欄位寬度陣列
967
+ */
968
+ export function moveOrSwapColumnWidth(
969
+ currentWidths: ColumnWidth[],
970
+ sourceIndex: number,
971
+ targetIndex: number,
972
+ mode: 'swap' | 'move' = 'move',
973
+ ): ColumnWidth[] {
974
+ if (
975
+ sourceIndex === targetIndex ||
976
+ sourceIndex < 0 ||
977
+ targetIndex < 0 ||
978
+ sourceIndex >= currentWidths.length ||
979
+ targetIndex >= currentWidths.length
980
+ ) {
981
+ return currentWidths;
982
+ }
983
+
984
+ const newWidths = [...currentWidths];
985
+
986
+ if (mode === 'swap') {
987
+ // swap 邏輯:直接交換兩個位置的值
988
+ const temp = newWidths[sourceIndex];
989
+
990
+ newWidths[sourceIndex] = newWidths[targetIndex];
991
+ newWidths[targetIndex] = temp;
992
+ } else {
993
+ // move 邏輯:移除再插入
994
+ const [movedWidth] = newWidths.splice(sourceIndex, 1);
995
+
996
+ newWidths.splice(targetIndex, 0, movedWidth);
997
+ }
998
+
999
+ return newWidths;
1000
+ }
1001
+
1002
+ /**
1003
+ * 將 columnWidths 轉換為混合模式(釘選欄位用 percentage,未釘選欄位用 pixel)
1004
+ * @param currentWidths - 當前的欄位寬度陣列
1005
+ * @param pinnedColumnIndices - 釘選欄位的索引陣列
1006
+ * @param tableWidth - 表格的實際寬度(pixel)
1007
+ * @returns 轉換後的欄位寬度陣列
1008
+ */
1009
+ export function convertToMixedWidthMode(
1010
+ currentWidths: ColumnWidth[],
1011
+ pinnedColumnIndices: number[],
1012
+ tableWidth: number,
1013
+ ): ColumnWidth[] {
1014
+ if (pinnedColumnIndices.length === 0 || tableWidth === 0) {
1015
+ return currentWidths;
1016
+ }
1017
+
1018
+ const newWidths: ColumnWidth[] = [];
1019
+
1020
+ // 計算釘選欄位的總百分比
1021
+ let totalPinnedPercentage = 0;
1022
+
1023
+ pinnedColumnIndices.forEach((index) => {
1024
+ const width = currentWidths[index];
1025
+
1026
+ if (width) {
1027
+ if (width.type === 'percentage') {
1028
+ totalPinnedPercentage += width.value;
1029
+ } else {
1030
+ // 如果是 pixel,轉換為百分比
1031
+ const percentage = (width.value / tableWidth) * 100;
1032
+
1033
+ totalPinnedPercentage += percentage;
1034
+ }
1035
+ }
1036
+ });
1037
+
1038
+ // 確保釘選欄位總和不超過指定範圍
1039
+ const scaleFactor =
1040
+ totalPinnedPercentage > MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE
1041
+ ? MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE / totalPinnedPercentage
1042
+ : 1;
1043
+
1044
+ totalPinnedPercentage = Math.min(totalPinnedPercentage, MAX_PINNED_COLUMNS_WIDTH_PERCENTAGE);
1045
+
1046
+ // 調整釘選欄位的百分比
1047
+ currentWidths.forEach((width, index) => {
1048
+ if (pinnedColumnIndices.includes(index)) {
1049
+ if (width.type === 'percentage') {
1050
+ currentWidths[index] = {
1051
+ type: 'percentage',
1052
+ value: Math.round(width.value * scaleFactor * 10) / 10,
1053
+ };
1054
+ } else {
1055
+ const percentage = (width.value / tableWidth) * 100;
1056
+
1057
+ currentWidths[index] = {
1058
+ type: 'percentage',
1059
+ value: Math.round(percentage * scaleFactor * 10) / 10,
1060
+ };
1061
+ }
1062
+ }
1063
+ });
1064
+
1065
+ // 計算剩餘空間(用於未釘選欄位)
1066
+ const remainingPercentage = 100 - totalPinnedPercentage;
1067
+ const remainingPixelWidth = (tableWidth * remainingPercentage) / 100;
1068
+ const unpinnedColumnCount = currentWidths.length - pinnedColumnIndices.length;
1069
+ const pixelWidthPerColumn = unpinnedColumnCount > 0 ? Math.floor(remainingPixelWidth / unpinnedColumnCount) : 0;
1070
+
1071
+ // 建立新的寬度陣列
1072
+ currentWidths.forEach((width, index) => {
1073
+ if (pinnedColumnIndices.includes(index)) {
1074
+ // 釘選欄位:使用 percentage
1075
+ newWidths.push(width);
1076
+ } else {
1077
+ // 未釘選欄位:使用 pixel
1078
+ newWidths.push({ type: 'pixel', value: pixelWidthPerColumn });
1079
+ }
1080
+ });
1081
+
1082
+ return newWidths;
1083
+ }
1084
+
1085
+ /**
1086
+ * 將混合模式的欄位寬度轉換回純百分比模式
1087
+ * 當所有 pinned columns 都被 unpin 後,需要將 pixel 欄位轉換回 percentage
1088
+ * @param currentWidths - 當前的欄位寬度陣列(混合模式)
1089
+ * @returns 轉換後的純百分比欄位寬度陣列,總和為 100%
1090
+ */
1091
+ export function convertToPercentageMode(currentWidths: ColumnWidth[]): ColumnWidth[] {
1092
+ if (currentWidths.length === 0) return [];
1093
+
1094
+ // 檢查是否有 pixel 欄位
1095
+ const hasPixelColumns = currentWidths.some((width) => width.type === 'pixel');
1096
+
1097
+ // 如果沒有 pixel 欄位,表示已經是純百分比模式,直接返回
1098
+ if (!hasPixelColumns) {
1099
+ return currentWidths;
1100
+ }
1101
+
1102
+ // 使用 distributeEqualPercentages 重新分配百分比,確保總和為 100%
1103
+ const percentages = distributeEqualPercentages(currentWidths.length);
1104
+
1105
+ return percentages.map((value) => ({ type: 'percentage' as const, value }));
1106
+ }