@makeswift/runtime 0.9.11 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/dist/Box.cjs.js +4 -1
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +5 -2
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +4 -3
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +5 -4
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +4 -3
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +5 -4
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +4 -1
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +5 -2
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +4 -1
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +5 -2
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +1 -0
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +2 -1
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +14 -13
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +6 -5
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +12 -11
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +12 -11
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/LiveProvider.cjs.js +4 -1
  34. package/dist/LiveProvider.cjs.js.map +1 -1
  35. package/dist/LiveProvider.es.js +6 -3
  36. package/dist/LiveProvider.es.js.map +1 -1
  37. package/dist/Navigation.cjs.js +12 -11
  38. package/dist/Navigation.cjs.js.map +1 -1
  39. package/dist/Navigation.es.js +12 -11
  40. package/dist/Navigation.es.js.map +1 -1
  41. package/dist/PreviewProvider.cjs.js +7 -4
  42. package/dist/PreviewProvider.cjs.js.map +1 -1
  43. package/dist/PreviewProvider.es.js +6 -3
  44. package/dist/PreviewProvider.es.js.map +1 -1
  45. package/dist/ReadOnlyText.cjs.js +34 -26
  46. package/dist/ReadOnlyText.cjs.js.map +1 -1
  47. package/dist/ReadOnlyText.es.js +30 -22
  48. package/dist/ReadOnlyText.es.js.map +1 -1
  49. package/dist/ReadOnlyTextV2.cjs.js +125 -246
  50. package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
  51. package/dist/ReadOnlyTextV2.es.js +126 -246
  52. package/dist/ReadOnlyTextV2.es.js.map +1 -1
  53. package/dist/Root.cjs.js +4 -1
  54. package/dist/Root.cjs.js.map +1 -1
  55. package/dist/Root.es.js +5 -2
  56. package/dist/Root.es.js.map +1 -1
  57. package/dist/SocialLinks.cjs.js +7 -6
  58. package/dist/SocialLinks.cjs.js.map +1 -1
  59. package/dist/SocialLinks.es.js +8 -7
  60. package/dist/SocialLinks.es.js.map +1 -1
  61. package/dist/Text.cjs.js +12 -71
  62. package/dist/Text.cjs.js.map +1 -1
  63. package/dist/Text.es.js +13 -64
  64. package/dist/Text.es.js.map +1 -1
  65. package/dist/Video.cjs.js +1 -0
  66. package/dist/Video.cjs.js.map +1 -1
  67. package/dist/Video.es.js +2 -1
  68. package/dist/Video.es.js.map +1 -1
  69. package/dist/builder.cjs.js +2 -0
  70. package/dist/builder.cjs.js.map +1 -1
  71. package/dist/builder.es.js +2 -0
  72. package/dist/builder.es.js.map +1 -1
  73. package/dist/components.cjs.js +4 -3
  74. package/dist/components.cjs.js.map +1 -1
  75. package/dist/components.es.js +4 -3
  76. package/dist/components.es.js.map +1 -1
  77. package/dist/control-serialization.es.js +1 -1
  78. package/dist/controls.cjs.js +31 -21
  79. package/dist/controls.cjs.js.map +1 -1
  80. package/dist/controls.es.js +4 -2
  81. package/dist/controls.es.js.map +1 -1
  82. package/dist/index.cjs.js +307 -243
  83. package/dist/index.cjs.js.map +1 -1
  84. package/dist/index.cjs2.js +3 -3
  85. package/dist/index.cjs2.js.map +1 -1
  86. package/dist/index.cjs3.js +21 -107
  87. package/dist/index.cjs3.js.map +1 -1
  88. package/dist/index.cjs4.js +16 -57
  89. package/dist/index.cjs4.js.map +1 -1
  90. package/dist/index.cjs5.js +53 -243
  91. package/dist/index.cjs5.js.map +1 -1
  92. package/dist/index.cjs6.js +16 -37
  93. package/dist/index.cjs6.js.map +1 -1
  94. package/dist/index.cjs7.js +376 -14
  95. package/dist/index.cjs7.js.map +1 -1
  96. package/dist/index.cjs8.js +276 -12
  97. package/dist/index.cjs8.js.map +1 -1
  98. package/dist/index.es.js +279 -215
  99. package/dist/index.es.js.map +1 -1
  100. package/dist/index.es2.js +2 -2
  101. package/dist/index.es3.js +22 -103
  102. package/dist/index.es3.js.map +1 -1
  103. package/dist/index.es4.js +16 -57
  104. package/dist/index.es4.js.map +1 -1
  105. package/dist/index.es5.js +53 -241
  106. package/dist/index.es5.js.map +1 -1
  107. package/dist/index.es6.js +16 -32
  108. package/dist/index.es6.js.map +1 -1
  109. package/dist/index.es7.js +372 -16
  110. package/dist/index.es7.js.map +1 -1
  111. package/dist/index.es8.js +271 -11
  112. package/dist/index.es8.js.map +1 -1
  113. package/dist/main.cjs.js +2 -0
  114. package/dist/main.cjs.js.map +1 -1
  115. package/dist/main.es.js +2 -0
  116. package/dist/main.es.js.map +1 -1
  117. package/dist/next.cjs.js +4 -1
  118. package/dist/next.cjs.js.map +1 -1
  119. package/dist/next.es.js +5 -2
  120. package/dist/next.es.js.map +1 -1
  121. package/dist/prop-controllers.cjs.js +2 -0
  122. package/dist/prop-controllers.cjs.js.map +1 -1
  123. package/dist/prop-controllers.es.js +2 -0
  124. package/dist/prop-controllers.es.js.map +1 -1
  125. package/dist/react-page.cjs.js +1731 -183
  126. package/dist/react-page.cjs.js.map +1 -1
  127. package/dist/react-page.es.js +1694 -182
  128. package/dist/react-page.es.js.map +1 -1
  129. package/dist/react.cjs.js +4 -1
  130. package/dist/react.cjs.js.map +1 -1
  131. package/dist/react.es.js +4 -1
  132. package/dist/react.es.js.map +1 -1
  133. package/dist/slate.cjs.js +32 -377
  134. package/dist/slate.cjs.js.map +1 -1
  135. package/dist/slate.es.js +14 -363
  136. package/dist/slate.es.js.map +1 -1
  137. package/dist/text-input.cjs.js +26 -0
  138. package/dist/text-input.cjs.js.map +1 -0
  139. package/dist/text-input.es.js +18 -0
  140. package/dist/text-input.es.js.map +1 -0
  141. package/dist/types/src/components/builtin/Text/Text.d.ts +3 -4
  142. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  143. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
  144. package/dist/types/src/controls/list.d.ts +5 -2
  145. package/dist/types/src/controls/list.d.ts.map +1 -1
  146. package/dist/types/src/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -1
  147. package/dist/types/src/controls/rich-text/introspection.d.ts +5 -0
  148. package/dist/types/src/controls/rich-text/introspection.d.ts.map +1 -0
  149. package/dist/types/src/controls/rich-text/introspection.test.d.ts +2 -0
  150. package/dist/types/src/controls/rich-text/introspection.test.d.ts.map +1 -0
  151. package/dist/types/src/controls/rich-text/rich-text.d.ts +0 -1
  152. package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
  153. package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
  154. package/dist/types/src/controls/rich-text-v2/introspection.d.ts +5 -0
  155. package/dist/types/src/controls/rich-text-v2/introspection.d.ts.map +1 -0
  156. package/dist/types/src/controls/rich-text-v2/introspection.test.d.ts +2 -0
  157. package/dist/types/src/controls/rich-text-v2/introspection.test.d.ts.map +1 -0
  158. package/dist/types/src/controls/rich-text-v2/plugin.d.ts +29 -0
  159. package/dist/types/src/controls/rich-text-v2/plugin.d.ts.map +1 -0
  160. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +32 -34
  161. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  162. package/dist/types/src/controls/rich-text-v2/translation.d.ts +1 -1
  163. package/dist/types/src/controls/rich-text-v2/translation.d.ts.map +1 -1
  164. package/dist/types/src/controls/shape.d.ts +5 -2
  165. package/dist/types/src/controls/shape.d.ts.map +1 -1
  166. package/dist/types/src/controls/typography.d.ts +2 -0
  167. package/dist/types/src/controls/typography.d.ts.map +1 -1
  168. package/dist/types/src/next/client.d.ts.map +1 -1
  169. package/dist/types/src/prop-controllers/descriptors.d.ts +11 -1
  170. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  171. package/dist/types/src/prop-controllers/introspection.d.ts +0 -2
  172. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
  173. package/dist/types/src/runtimes/react/controls/control.d.ts +1 -1
  174. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
  175. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/editable-text.d.ts +4 -3
  176. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -0
  177. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/index.d.ts.map +1 -0
  178. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.d.ts.map +1 -0
  179. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncWithBuilder.d.ts +1 -1
  180. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +1 -0
  181. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/ReadOnlyText.d.ts +2 -2
  182. package/dist/types/src/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -0
  183. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/block.d.ts +1 -1
  184. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -0
  185. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +1 -0
  186. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/index.d.ts.map +1 -0
  187. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/inline.d.ts +1 -1
  188. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -0
  189. package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/index.d.ts.map +1 -0
  190. package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +1 -0
  191. package/dist/types/src/runtimes/react/controls/rich-text/components/index.d.ts.map +1 -0
  192. package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts +2 -0
  193. package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts.map +1 -0
  194. package/dist/types/src/runtimes/react/controls/{rich-text.d.ts → rich-text/rich-text.d.ts} +1 -1
  195. package/dist/types/src/runtimes/react/controls/rich-text/rich-text.d.ts.map +1 -0
  196. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
  197. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +3 -2
  198. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
  199. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +2 -1
  200. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
  201. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts +4 -0
  202. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +1 -0
  203. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +8 -16
  204. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  205. package/dist/types/src/slate/BlockPlugin/index.d.ts +3 -3
  206. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  207. package/dist/types/src/slate/InlineModePlugin/index.d.ts +6 -4
  208. package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +1 -1
  209. package/dist/types/src/slate/InlinePlugin/index.d.ts +3 -3
  210. package/dist/types/src/slate/InlinePlugin/index.d.ts.map +1 -1
  211. package/dist/types/src/slate/InlinePlugin/types.d.ts +1 -1
  212. package/dist/types/src/slate/InlinePlugin/types.d.ts.map +1 -1
  213. package/dist/types/src/slate/LinkPlugin/index.d.ts +3 -3
  214. package/dist/types/src/slate/LinkPlugin/index.d.ts.map +1 -1
  215. package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +16 -0
  216. package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +1 -0
  217. package/dist/types/src/slate/LocalChangesPlugin/index.d.ts +16 -0
  218. package/dist/types/src/slate/LocalChangesPlugin/index.d.ts.map +1 -0
  219. package/dist/types/src/slate/TextAlignPlugin/index.d.ts +3 -3
  220. package/dist/types/src/slate/TextAlignPlugin/index.d.ts.map +1 -1
  221. package/dist/types/src/slate/TypographyPlugin/index.d.ts +3 -3
  222. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  223. package/dist/types/src/slate/index.d.ts +1 -0
  224. package/dist/types/src/slate/index.d.ts.map +1 -1
  225. package/dist/types/src/slate/types.d.ts +3 -12
  226. package/dist/types/src/slate/types.d.ts.map +1 -1
  227. package/dist/types/src/slate/utils/element.d.ts.map +1 -1
  228. package/dist/types/src/state/modules/locales.d.ts.map +1 -1
  229. package/package.json +1 -2
  230. package/dist/index.cjs10.js +0 -390
  231. package/dist/index.cjs10.js.map +0 -1
  232. package/dist/index.cjs9.js +0 -299
  233. package/dist/index.cjs9.js.map +0 -1
  234. package/dist/index.es10.js +0 -383
  235. package/dist/index.es10.js.map +0 -1
  236. package/dist/index.es9.js +0 -292
  237. package/dist/index.es9.js.map +0 -1
  238. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts.map +0 -1
  239. package/dist/types/src/components/builtin/Text/EditableText/index.d.ts.map +0 -1
  240. package/dist/types/src/components/builtin/Text/EditableText/useSyncDOMSelection.d.ts.map +0 -1
  241. package/dist/types/src/components/builtin/Text/EditableText/useSyncWithBuilder.d.ts.map +0 -1
  242. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +0 -1
  243. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +0 -1
  244. package/dist/types/src/components/builtin/Text/components/Element/element.d.ts.map +0 -1
  245. package/dist/types/src/components/builtin/Text/components/Element/index.d.ts.map +0 -1
  246. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts.map +0 -1
  247. package/dist/types/src/components/builtin/Text/components/Leaf/index.d.ts.map +0 -1
  248. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +0 -1
  249. package/dist/types/src/components/builtin/Text/components/index.d.ts.map +0 -1
  250. package/dist/types/src/runtimes/react/controls/rich-text.d.ts.map +0 -1
  251. package/dist/types.cjs2.js +0 -746
  252. package/dist/types.cjs2.js.map +0 -1
  253. package/dist/types.es2.js +0 -729
  254. package/dist/types.es2.js.map +0 -1
  255. package/dist/typography.cjs.js +0 -56
  256. package/dist/typography.cjs.js.map +0 -1
  257. package/dist/typography.es.js +0 -41
  258. package/dist/typography.es.js.map +0 -1
  259. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/index.d.ts +0 -0
  260. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncDOMSelection.d.ts +0 -0
  261. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/element.d.ts +0 -0
  262. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/index.d.ts +0 -0
  263. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/index.d.ts +0 -0
  264. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/leaf.d.ts +0 -0
  265. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/index.d.ts +0 -0
package/dist/index.es6.js CHANGED
@@ -1,37 +1,21 @@
1
- import { Path, Transforms } from "slate";
2
- import isHotkey from "is-hotkey";
3
- import { bi as BlockType, ba as createRichTextV2Plugin } from "./react-page.es.js";
4
- import { E as ElementUtils } from "./types.es2.js";
5
- const BLOCK_ONE_PATH = [0];
6
- const BLOCK_TWO_PATH = [1];
7
- function withInlineMode(editor) {
8
- const { normalizeNode } = editor;
9
- editor.normalizeNode = (entry) => {
10
- const [normalizationNode, normalizationPath] = entry;
11
- if (Path.equals(BLOCK_TWO_PATH, normalizationPath)) {
12
- Transforms.mergeNodes(editor, { at: BLOCK_TWO_PATH });
1
+ import { v4 } from "uuid";
2
+ function withLocalChanges(editor) {
3
+ editor.localChanges = /* @__PURE__ */ new Map();
4
+ editor.recentLocalChanges = [];
5
+ editor.currentKey = "";
6
+ const _onChange = editor.onChange;
7
+ editor.onChange = (options) => {
8
+ _onChange(options);
9
+ if (editor == null || (options == null ? void 0 : options.operation) == null)
13
10
  return;
14
- }
15
- if (Path.isAncestor(BLOCK_ONE_PATH, normalizationPath) && ElementUtils.isBlock(normalizationNode)) {
16
- Transforms.unwrapNodes(editor, {
17
- at: normalizationPath
18
- });
19
- return;
20
- }
21
- if (Path.equals(BLOCK_ONE_PATH, normalizationPath)) {
22
- Transforms.setNodes(editor, { type: BlockType.Text }, { at: normalizationPath });
23
- return;
24
- }
25
- normalizeNode(entry);
11
+ const key = v4();
12
+ editor.localChanges.set(key, {
13
+ selection: editor.selection,
14
+ time: performance.now()
15
+ });
16
+ editor.currentKey = key;
26
17
  };
27
18
  return editor;
28
19
  }
29
- const InlineModePlugin = createRichTextV2Plugin({
30
- onKeyDown: (e) => {
31
- if (isHotkey("enter", e))
32
- e.preventDefault();
33
- },
34
- withPlugin: withInlineMode
35
- });
36
- export { InlineModePlugin as I, withInlineMode as w };
20
+ export { withLocalChanges as w };
37
21
  //# sourceMappingURL=index.es6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es6.js","sources":["../src/slate/InlineModePlugin/index.ts"],"sourcesContent":["import { Editor, Path, Transforms } from 'slate'\nimport { KeyboardEvent } from 'react'\nimport isHotkey from 'is-hotkey'\nimport { createRichTextV2Plugin } from '../../controls/rich-text-v2'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../types'\n\nconst BLOCK_ONE_PATH = [0]\nconst BLOCK_TWO_PATH = [1]\n\nexport function withInlineMode(editor: Editor): Editor {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n\n /**\n * Merge root nodes past the first one\n */\n if (Path.equals(BLOCK_TWO_PATH, normalizationPath)) {\n Transforms.mergeNodes(editor, { at: BLOCK_TWO_PATH })\n return\n }\n /**\n * Unwrap non text nodes of first root node\n */\n if (\n Path.isAncestor(BLOCK_ONE_PATH, normalizationPath) &&\n ElementUtils.isBlock(normalizationNode)\n ) {\n Transforms.unwrapNodes(editor, {\n at: normalizationPath,\n })\n return\n }\n /**\n * Update type of root nodes to be `text-block`\n */\n if (Path.equals(BLOCK_ONE_PATH, normalizationPath)) {\n Transforms.setNodes(editor, { type: BlockType.Text }, { at: normalizationPath })\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport const InlineModePlugin = createRichTextV2Plugin({\n onKeyDown: (e: KeyboardEvent) => {\n if (isHotkey('enter', e)) e.preventDefault()\n },\n withPlugin: withInlineMode,\n})\n"],"names":[],"mappings":";;;;AAOA,MAAM,iBAAiB,CAAC,CAAC;AACzB,MAAM,iBAAiB,CAAC,CAAC;AAElB,wBAAwB,QAAwB;AACrD,QAAM,EAAE,kBAAkB;AAC1B,SAAO,gBAAgB,CAAS,UAAA;AACxB,UAAA,CAAC,mBAAmB,qBAAqB;AAK/C,QAAI,KAAK,OAAO,gBAAgB,iBAAiB,GAAG;AAClD,iBAAW,WAAW,QAAQ,EAAE,IAAI,eAAgB,CAAA;AACpD;AAAA,IACF;AAKE,QAAA,KAAK,WAAW,gBAAgB,iBAAiB,KACjD,aAAa,QAAQ,iBAAiB,GACtC;AACA,iBAAW,YAAY,QAAQ;AAAA,QAC7B,IAAI;AAAA,MAAA,CACL;AACD;AAAA,IACF;AAIA,QAAI,KAAK,OAAO,gBAAgB,iBAAiB,GAAG;AACvC,iBAAA,SAAS,QAAQ,EAAE,MAAM,UAAU,QAAQ,EAAE,IAAI,kBAAA,CAAmB;AAC/E;AAAA,IACF;AAEA,kBAAc,KAAK;AAAA,EAAA;AAGd,SAAA;AACT;AAEO,MAAM,mBAAmB,uBAAuB;AAAA,EACrD,WAAW,CAAC,MAAqB;AAC3B,QAAA,SAAS,SAAS,CAAC;AAAG,QAAE,eAAe;AAAA,EAC7C;AAAA,EACA,YAAY;AACd,CAAC;;"}
1
+ {"version":3,"file":"index.es6.js","sources":["../src/slate/LocalChangesPlugin/index.tsx"],"sourcesContent":["import { BaseEditor, Editor, Selection } from 'slate'\nimport { v4 as uuid } from 'uuid'\n\nexport type LocalChange = { selection: Selection; time: number }\n\nexport interface LocalChangesEditor extends BaseEditor {\n localChanges: Map<string, LocalChange>\n recentKeys: Map<string, number>\n recentLocalChanges: { time: number; key: string }[]\n currentKey: string\n}\n\nexport function withLocalChanges(editor: Editor): Editor {\n editor.localChanges = new Map<string, LocalChange>()\n editor.recentLocalChanges = []\n editor.currentKey = ''\n\n const _onChange = editor.onChange\n editor.onChange = options => {\n _onChange(options)\n if (editor == null || options?.operation == null) return\n\n const key = uuid()\n editor.localChanges.set(key, { selection: editor.selection, time: performance.now() })\n editor.currentKey = key\n }\n\n return editor\n}\n"],"names":["editor","localChanges","Map","recentLocalChanges","currentKey","_onChange","onChange","options","operation","key","uuid","set","selection","time","performance","now"],"mappings":";AAYO,0BAA0BA,QAAwB;AAChDC,SAAAA,mCAAmBC;AAC1BF,SAAOG,qBAAqB;AAC5BH,SAAOI,aAAa;AAEpB,QAAMC,YAAYL,OAAOM;AACzBN,SAAOM,WAAWC,CAAW,YAAA;AAC3BF,cAAUE,OAAD;AACLP,QAAAA,UAAU,QAAQO,oCAASC,cAAa;AAAM;AAE5CC,UAAAA,MAAMC;AACLT,WAAAA,aAAaU,IAAIF,KAAK;AAAA,MAAEG,WAAWZ,OAAOY;AAAAA,MAAWC,MAAMC,YAAYC,IAAZ;AAAA,IAAA,CAAlE;AACAf,WAAOI,aAAaK;AAAAA,EAAAA;AAGfT,SAAAA;AACR;;"}
package/dist/index.es7.js CHANGED
@@ -1,18 +1,374 @@
1
- import { Transforms, Editor } from "slate";
2
- import { ReactEditor } from "slate-react";
3
- function withBuilder(editor) {
4
- editor.deselectAndBlur = function() {
5
- ReactEditor.deselect(editor);
6
- ReactEditor.blur(editor);
7
- };
8
- editor.focusAndSelectAll = function() {
9
- ReactEditor.focus(editor);
10
- Transforms.select(editor, {
11
- anchor: Editor.start(editor, []),
12
- focus: Editor.end(editor, [])
13
- });
14
- };
15
- return editor;
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { cx } from "@emotion/css";
33
+ import { getBox } from "css-box-model";
34
+ import isHotkey from "is-hotkey";
35
+ import { useCallback, useState, useEffect, forwardRef, useImperativeHandle, useMemo } from "react";
36
+ import { Range, createEditor } from "slate";
37
+ import { ReactEditor, withReact, Slate, Editable } from "slate-react";
38
+ import { n as useResponsiveStyle, L as Link, J as useEnhancedTypography, K as useTypographyClassName, u as useIsInBuilder, N as useBuilderEditMode, O as pollBoxModel } from "./index.es.js";
39
+ import { _ as useStyle, Y as BlockType, bM as InlineType, bn as richTextDTOtoDAO, bm as richTextDTOtoSelection, a as deepEqual, bF as withBlock, bA as withTypography, bE as onKeyDown, b_ as BuilderEditMode } from "./react-page.es.js";
40
+ import { jsx } from "react/jsx-runtime";
41
+ import { w as withBuilder } from "./index.es4.js";
42
+ import "./state/breakpoints.es.js";
43
+ import "uuid";
44
+ import "./actions.es.js";
45
+ import { u as useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect.es.js";
46
+ import "use-sync-external-store/shim/with-selector";
47
+ import "next/dynamic";
48
+ import "./text-input.es.js";
49
+ import "./combobox.es.js";
50
+ import "use-sync-external-store/shim";
51
+ import "redux";
52
+ import "redux-thunk";
53
+ import "./types.es.js";
54
+ import "./box-models.es.js";
55
+ import "color";
56
+ import "scroll-into-view-if-needed";
57
+ import "react-dom";
58
+ import "html-react-parser";
59
+ import "next/head";
60
+ import "zod";
61
+ import "@emotion/server/create-instance";
62
+ import "next/document";
63
+ import "cors";
64
+ import "path-to-regexp";
65
+ import "cookie";
66
+ import "http-proxy";
67
+ import "set-cookie-parser";
68
+ import "./constants.es.js";
69
+ import "corporate-ipsum";
70
+ import "next/link";
71
+ import "@emotion/serialize";
72
+ import "@emotion/utils";
73
+ function BlockElement({
74
+ element,
75
+ attributes,
76
+ children
77
+ }) {
78
+ const blockStyles = [useStyle({
79
+ margin: 0
80
+ }), useStyle(useResponsiveStyle([element.textAlign], ([textAlign = "left"]) => ({
81
+ textAlign
82
+ })))];
83
+ const quoteStyles = useStyle({
84
+ padding: "0.5em 10px",
85
+ fontSize: "1.25em",
86
+ fontWeight: "300",
87
+ borderLeft: "5px solid rgba(0, 0, 0, 0.1)"
88
+ });
89
+ switch (element.type) {
90
+ case BlockType.Default:
91
+ case BlockType.Paragraph:
92
+ return /* @__PURE__ */ jsx("p", __spreadProps(__spreadValues({}, attributes), {
93
+ className: cx(...blockStyles),
94
+ children
95
+ }));
96
+ case BlockType.Heading1:
97
+ return /* @__PURE__ */ jsx("h1", __spreadProps(__spreadValues({}, attributes), {
98
+ className: cx(...blockStyles),
99
+ children
100
+ }));
101
+ case BlockType.Heading2:
102
+ return /* @__PURE__ */ jsx("h2", __spreadProps(__spreadValues({}, attributes), {
103
+ className: cx(...blockStyles),
104
+ children
105
+ }));
106
+ case BlockType.Heading3:
107
+ return /* @__PURE__ */ jsx("h3", __spreadProps(__spreadValues({}, attributes), {
108
+ className: cx(...blockStyles),
109
+ children
110
+ }));
111
+ case BlockType.Heading4:
112
+ return /* @__PURE__ */ jsx("h4", __spreadProps(__spreadValues({}, attributes), {
113
+ className: cx(...blockStyles),
114
+ children
115
+ }));
116
+ case BlockType.Heading5:
117
+ return /* @__PURE__ */ jsx("h5", __spreadProps(__spreadValues({}, attributes), {
118
+ className: cx(...blockStyles),
119
+ children
120
+ }));
121
+ case BlockType.Heading6:
122
+ return /* @__PURE__ */ jsx("h6", __spreadProps(__spreadValues({}, attributes), {
123
+ className: cx(...blockStyles),
124
+ children
125
+ }));
126
+ case BlockType.BlockQuote:
127
+ return /* @__PURE__ */ jsx("blockquote", __spreadProps(__spreadValues({}, attributes), {
128
+ className: cx(...blockStyles, quoteStyles),
129
+ children
130
+ }));
131
+ case BlockType.OrderedList:
132
+ return /* @__PURE__ */ jsx("ol", __spreadProps(__spreadValues({}, attributes), {
133
+ className: cx(...blockStyles),
134
+ style: {
135
+ listStylePosition: "inside"
136
+ },
137
+ children
138
+ }));
139
+ case BlockType.UnorderedList:
140
+ return /* @__PURE__ */ jsx("ul", __spreadProps(__spreadValues({}, attributes), {
141
+ className: cx(...blockStyles),
142
+ style: {
143
+ listStylePosition: "inside"
144
+ },
145
+ children
146
+ }));
147
+ case BlockType.ListItem:
148
+ return /* @__PURE__ */ jsx("li", __spreadProps(__spreadValues({}, attributes), {
149
+ className: cx(...blockStyles),
150
+ children
151
+ }));
152
+ case BlockType.ListItemChild:
153
+ return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, attributes), {
154
+ className: cx(...blockStyles),
155
+ children
156
+ }));
157
+ }
158
+ }
159
+ function StyledLink(_a) {
160
+ var _b = _a, {
161
+ className
162
+ } = _b, restOfProps = __objRest(_b, [
163
+ "className"
164
+ ]);
165
+ return /* @__PURE__ */ jsx(Link, __spreadProps(__spreadValues({}, restOfProps), {
166
+ className: cx(useStyle({
167
+ textDecoration: "none"
168
+ }), className)
169
+ }));
170
+ }
171
+ function InlineElement({
172
+ element,
173
+ attributes,
174
+ children
175
+ }) {
176
+ var _a;
177
+ switch (element.type) {
178
+ case InlineType.Code:
179
+ return /* @__PURE__ */ jsx("code", __spreadProps(__spreadValues({}, attributes), {
180
+ children
181
+ }));
182
+ case InlineType.SuperScript:
183
+ return /* @__PURE__ */ jsx("sup", __spreadProps(__spreadValues({}, attributes), {
184
+ children
185
+ }));
186
+ case InlineType.SubScript:
187
+ return /* @__PURE__ */ jsx("sub", __spreadProps(__spreadValues({}, attributes), {
188
+ children
189
+ }));
190
+ case InlineType.Link:
191
+ return /* @__PURE__ */ jsx(StyledLink, __spreadProps(__spreadValues({}, attributes), {
192
+ link: (_a = element.link) != null ? _a : void 0,
193
+ children
194
+ }));
195
+ }
196
+ }
197
+ function Element(_c) {
198
+ var _d = _c, {
199
+ element
200
+ } = _d, props = __objRest(_d, [
201
+ "element"
202
+ ]);
203
+ switch (element.type) {
204
+ case InlineType.Code:
205
+ case InlineType.SuperScript:
206
+ case InlineType.SubScript:
207
+ case InlineType.Link:
208
+ return /* @__PURE__ */ jsx(InlineElement, __spreadValues({
209
+ element
210
+ }, props));
211
+ case BlockType.Default:
212
+ case BlockType.Paragraph:
213
+ case BlockType.Heading1:
214
+ case BlockType.Heading2:
215
+ case BlockType.Heading3:
216
+ case BlockType.Heading4:
217
+ case BlockType.Heading5:
218
+ case BlockType.Heading6:
219
+ case BlockType.BlockQuote:
220
+ case BlockType.OrderedList:
221
+ case BlockType.UnorderedList:
222
+ case BlockType.ListItem:
223
+ case BlockType.ListItemChild:
224
+ return /* @__PURE__ */ jsx(BlockElement, __spreadValues({
225
+ element
226
+ }, props));
227
+ default:
228
+ return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, props.attributes), {
229
+ children: props.children
230
+ }));
231
+ }
16
232
  }
17
- export { withBuilder as w };
233
+ function Leaf(_e) {
234
+ var _f = _e, {
235
+ leaf
236
+ } = _f, props = __objRest(_f, [
237
+ "leaf"
238
+ ]);
239
+ const enhancedTypography = useEnhancedTypography(leaf.typography);
240
+ const typographyClassName = useTypographyClassName(enhancedTypography);
241
+ return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, props.attributes), {
242
+ className: typographyClassName,
243
+ children: props.children
244
+ }));
245
+ }
246
+ function useSyncDOMSelection(editor, isEnabled) {
247
+ useIsomorphicLayoutEffect(() => {
248
+ if (!isEnabled || editor.selection == null || ReactEditor.isFocused(editor))
249
+ return;
250
+ try {
251
+ const root = ReactEditor.findDocumentOrShadowRoot(editor);
252
+ const domSelection = root.getSelection();
253
+ const newDomRange = ReactEditor.toDOMRange(editor, editor.selection);
254
+ if (newDomRange) {
255
+ if (Range.isBackward(editor.selection)) {
256
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);
257
+ } else {
258
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);
259
+ }
260
+ } else {
261
+ domSelection == null ? void 0 : domSelection.removeAllRanges();
262
+ }
263
+ } catch (e) {
264
+ console.error(e);
265
+ }
266
+ });
267
+ }
268
+ const COMMIT_DEBOUNCE_DELAY = 500;
269
+ function useSyncWithBuilder(editor, text) {
270
+ const [shouldCommit, setShouldCommit] = useState(true);
271
+ const isInBuilder = useIsInBuilder();
272
+ useEffect(() => {
273
+ if (shouldCommit && text && isInBuilder) {
274
+ const nextValue = richTextDTOtoDAO(text);
275
+ const nextSelection = richTextDTOtoSelection(text);
276
+ if (!deepEqual(editor.children, nextValue) || !deepEqual(editor.selection, nextSelection)) {
277
+ editor.children = nextValue;
278
+ editor.selection = nextSelection;
279
+ editor.onChange();
280
+ }
281
+ }
282
+ }, [editor, shouldCommit, text]);
283
+ useEffect(() => {
284
+ if (shouldCommit)
285
+ return;
286
+ const timeoutId = window.setTimeout(() => {
287
+ setShouldCommit(true);
288
+ }, COMMIT_DEBOUNCE_DELAY);
289
+ return () => {
290
+ window.clearTimeout(timeoutId);
291
+ };
292
+ }, [shouldCommit]);
293
+ return useCallback(() => setShouldCommit(false), []);
294
+ }
295
+ const defaultText = [{
296
+ type: BlockType.Paragraph,
297
+ children: [{
298
+ text: ""
299
+ }]
300
+ }];
301
+ const EditableText = forwardRef(function EditableText2({
302
+ id,
303
+ text,
304
+ width,
305
+ margin
306
+ }, ref) {
307
+ const [editor] = useState(() => withBlock(withTypography(withBuilder(withReact(createEditor())))));
308
+ const [isPreservingDOMSElection, setIsPreservingDOMSelection] = useState(false);
309
+ useSyncDOMSelection(editor, isPreservingDOMSElection);
310
+ const delaySync = useSyncWithBuilder(editor, text);
311
+ const editMode = useBuilderEditMode();
312
+ const [propControllers, setPropControllers] = useState(null);
313
+ const controller = propControllers == null ? void 0 : propControllers.text;
314
+ useEffect(() => {
315
+ if (controller == null)
316
+ return;
317
+ const element = ReactEditor.toDOMNode(editor, editor);
318
+ return pollBoxModel({
319
+ element,
320
+ onBoxModelChange: (boxModel) => controller.changeBoxModel(boxModel)
321
+ });
322
+ }, [editor, controller]);
323
+ useImperativeHandle(ref, () => ({
324
+ getDomNode() {
325
+ return ReactEditor.toDOMNode(editor, editor);
326
+ },
327
+ getBoxModel() {
328
+ return getBox(ReactEditor.toDOMNode(editor, editor));
329
+ },
330
+ setPropControllers
331
+ }), [editor, setPropControllers]);
332
+ const initialValue = useMemo(() => text ? richTextDTOtoDAO(text) : defaultText, [text]);
333
+ useEffect(() => {
334
+ controller == null ? void 0 : controller.setSlateEditor(editor);
335
+ }, [controller, editor]);
336
+ const handleFocus = useCallback(() => {
337
+ controller == null ? void 0 : controller.focus();
338
+ setIsPreservingDOMSelection(true);
339
+ }, [controller]);
340
+ const handleKeyDown = useCallback((e) => {
341
+ if (isHotkey("mod+shift+z", e))
342
+ return controller == null ? void 0 : controller.redo();
343
+ if (isHotkey("mod+z", e))
344
+ return controller == null ? void 0 : controller.undo();
345
+ if (isHotkey("escape")(e))
346
+ return controller == null ? void 0 : controller.blur();
347
+ onKeyDown(e, editor);
348
+ }, [controller, editor]);
349
+ const handleBlur = useCallback((e) => {
350
+ if (e.relatedTarget == null)
351
+ return;
352
+ setIsPreservingDOMSelection(false);
353
+ ReactEditor.deselect(editor);
354
+ }, []);
355
+ return /* @__PURE__ */ jsx(Slate, {
356
+ editor,
357
+ value: initialValue,
358
+ onChange: delaySync,
359
+ children: /* @__PURE__ */ jsx(Editable, {
360
+ id,
361
+ renderLeaf: Leaf,
362
+ renderElement: Element,
363
+ onFocus: handleFocus,
364
+ onKeyDown: handleKeyDown,
365
+ onBlur: handleBlur,
366
+ className: cx(width, margin),
367
+ readOnly: editMode !== BuilderEditMode.CONTENT,
368
+ placeholder: "Write some text..."
369
+ })
370
+ });
371
+ });
372
+ var EditableText$1 = EditableText;
373
+ export { EditableText, EditableText$1 as default };
18
374
  //# sourceMappingURL=index.es7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es7.js","sources":["../src/slate/BuilderPlugin/index.ts"],"sourcesContent":["import { BaseEditor, Editor, Transforms } from 'slate'\nimport { ReactEditor } from 'slate-react'\n\nexport interface BuilderEditor extends BaseEditor {\n focusAndSelectAll: () => void\n deselectAndBlur: () => void\n}\n\nexport function withBuilder(editor: Editor) {\n editor.deselectAndBlur = function () {\n ReactEditor.deselect(editor)\n ReactEditor.blur(editor)\n }\n\n editor.focusAndSelectAll = function () {\n ReactEditor.focus(editor)\n Transforms.select(editor, {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n })\n }\n\n return editor\n}\n"],"names":[],"mappings":";;AAQO,qBAAqB,QAAgB;AAC1C,SAAO,kBAAkB,WAAY;AACnC,gBAAY,SAAS,MAAM;AAC3B,gBAAY,KAAK,MAAM;AAAA,EAAA;AAGzB,SAAO,oBAAoB,WAAY;AACrC,gBAAY,MAAM,MAAM;AACxB,eAAW,OAAO,QAAQ;AAAA,MACxB,QAAQ,OAAO,MAAM,QAAQ,CAAA,CAAE;AAAA,MAC/B,OAAO,OAAO,IAAI,QAAQ,CAAA,CAAE;AAAA,IAAA,CAC7B;AAAA,EAAA;AAGI,SAAA;AACT;;"}
1
+ {"version":3,"file":"index.es7.js","sources":["../src/runtimes/react/controls/rich-text/components/Element/block.tsx","../src/runtimes/react/controls/rich-text/components/Element/inline.tsx","../src/runtimes/react/controls/rich-text/components/Element/element.tsx","../src/runtimes/react/controls/rich-text/components/Leaf/leaf.tsx","../src/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.tsx","../src/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.tsx","../src/runtimes/react/controls/rich-text/EditableText/editable-text.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { RenderElementProps } from 'slate-react'\nimport { useResponsiveStyle } from '../../../../../../components/utils/responsive-style'\nimport { Block, BlockType } from '../../../../../../slate'\nimport { useStyle } from '../../../../use-style'\n\nexport interface InlineRenderElementProps extends RenderElementProps {\n element: Block\n}\n\nexport function BlockElement({ element, attributes, children }: InlineRenderElementProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(useResponsiveStyle([element.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n const quoteStyles = useStyle({\n padding: '0.5em 10px',\n fontSize: '1.25em',\n fontWeight: '300',\n borderLeft: '5px solid rgba(0, 0, 0, 0.1)',\n })\n\n switch (element.type) {\n case BlockType.Default:\n case BlockType.Paragraph:\n return (\n <p {...attributes} className={cx(...blockStyles)}>\n {children}\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote {...attributes} className={cx(...blockStyles, quoteStyles)}>\n {children}\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol {...attributes} className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n {children}\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul {...attributes} className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n {children}\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li {...attributes} className={cx(...blockStyles)}>\n {children}\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span {...attributes} className={cx(...blockStyles)}>\n {children}\n </span>\n )\n }\n}\n","import { cx } from '@emotion/css'\nimport { ComponentPropsWithoutRef } from 'react'\nimport { RenderElementProps } from 'slate-react'\nimport { Inline, InlineType } from '../../../../../../slate/types'\nimport { useStyle } from '../../../../use-style'\nimport { Link } from '../../../../../../components/shared/Link'\n\nfunction StyledLink({ className, ...restOfProps }: ComponentPropsWithoutRef<typeof Link>) {\n return <Link {...restOfProps} className={cx(useStyle({ textDecoration: 'none' }), className)} />\n}\n\nexport interface InlineRenderElementProps extends RenderElementProps {\n element: Inline\n}\n\nexport function InlineElement({ element, attributes, children }: InlineRenderElementProps) {\n switch (element.type) {\n case InlineType.Code:\n return <code {...attributes}>{children}</code>\n case InlineType.SuperScript:\n return <sup {...attributes}>{children}</sup>\n case InlineType.SubScript:\n return <sub {...attributes}>{children}</sub>\n case InlineType.Link:\n return (\n <StyledLink {...attributes} link={element.link ?? undefined}>\n {children}\n </StyledLink>\n )\n }\n}\n","import { RenderElementProps } from 'slate-react'\nimport { BlockElement } from './block'\nimport { InlineElement } from './inline'\nimport { BlockType, InlineType } from '../../../../../../slate/types'\n\nexport function Element({ element, ...props }: RenderElementProps) {\n switch (element.type) {\n case InlineType.Code:\n case InlineType.SuperScript:\n case InlineType.SubScript:\n case InlineType.Link:\n return <InlineElement element={element} {...props} />\n case BlockType.Default:\n case BlockType.Paragraph:\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.Heading4:\n case BlockType.Heading5:\n case BlockType.Heading6:\n case BlockType.BlockQuote:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement element={element} {...props} />\n default:\n return <span {...props.attributes}>{props.children}</span>\n }\n}\n","import { RenderLeafProps } from 'slate-react'\nimport useEnhancedTypography, { useTypographyClassName } from '../../../typography'\n\nexport function Leaf({ leaf, ...props }: RenderLeafProps) {\n // for each breakpoint fetch related resources and merge its value with its override\n const enhancedTypography = useEnhancedTypography(leaf.typography)\n\n // for each breakpoint shallow merge back up through the breakpoints and create a className\n const typographyClassName = useTypographyClassName(enhancedTypography)\n\n return (\n <span {...props.attributes} className={typographyClassName}>\n {props.children}\n </span>\n )\n}\n","import { ReactEditor } from 'slate-react'\nimport { Editor, Range as SlateRange } from 'slate'\nimport { useIsomorphicLayoutEffect } from '../../../../../components/hooks/useIsomorphicLayoutEffect'\n\n/**\n * Clicking outside of the host blurs our `<Editable />`.\n * `<Editable />` only updates the DOM's selection to match slate when it is focused.\n * In the case of a panel being clicked this hook updates the DOM selection to match slate.\n */\nexport function useSyncDOMSelection(editor: Editor, isEnabled: boolean) {\n useIsomorphicLayoutEffect(() => {\n if (!isEnabled || editor.selection == null || ReactEditor.isFocused(editor)) return\n try {\n const root = ReactEditor.findDocumentOrShadowRoot(editor) as Document\n const domSelection = root.getSelection()\n const newDomRange: Range | null = ReactEditor.toDOMRange(editor, editor.selection)\n\n if (newDomRange) {\n if (SlateRange.isBackward(editor.selection!)) {\n domSelection?.setBaseAndExtent(\n newDomRange.endContainer,\n newDomRange.endOffset,\n newDomRange.startContainer,\n newDomRange.startOffset,\n )\n } else {\n domSelection?.setBaseAndExtent(\n newDomRange.startContainer,\n newDomRange.startOffset,\n newDomRange.endContainer,\n newDomRange.endOffset,\n )\n }\n } else {\n domSelection?.removeAllRanges()\n }\n } catch (e) {\n console.error(e)\n }\n })\n}\n","import { useState, useEffect, useCallback } from 'react'\nimport { Editor } from 'slate'\nimport { useIsInBuilder } from '../../../../../react'\nimport { richTextDTOtoDAO, richTextDTOtoSelection } from '../../../../../controls'\nimport { RichTextValue } from '../../../../../prop-controllers'\nimport deepEqual from '../../../../../utils/deepEqual'\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\n/**\n * Compare new prop value with current editor and update editor\n * if the values are not equal.\n */\nexport function useSyncWithBuilder(editor: Editor, text?: RichTextValue) {\n const [shouldCommit, setShouldCommit] = useState(true)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (shouldCommit && text && isInBuilder) {\n const nextValue = richTextDTOtoDAO(text)\n const nextSelection = richTextDTOtoSelection(text)\n if (!deepEqual(editor.children, nextValue) || !deepEqual(editor.selection, nextSelection)) {\n editor.children = nextValue\n editor.selection = nextSelection\n editor.onChange()\n }\n }\n }, [editor, shouldCommit, text])\n\n useEffect(() => {\n if (shouldCommit) return\n\n const timeoutId = window.setTimeout(() => {\n setShouldCommit(true)\n }, COMMIT_DEBOUNCE_DELAY)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [shouldCommit])\n\n return useCallback(() => setShouldCommit(false), [])\n}\n","import { cx } from '@emotion/css'\nimport { getBox } from 'css-box-model'\nimport isHotkey from 'is-hotkey'\nimport {\n FocusEvent,\n forwardRef,\n KeyboardEvent,\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\n\nimport { createEditor } from 'slate'\nimport { Slate, Editable, withReact, ReactEditor } from 'slate-react'\nimport { useBuilderEditMode } from '../../..'\nimport { richTextDTOtoDAO } from '../../../../../controls'\nimport { RichTextValue } from '../../../../../prop-controllers'\nimport { ElementIDValue } from '../../../../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../../../../prop-controllers/instances'\nimport {\n RichTextDAO,\n BlockType,\n withBlock,\n withTypography,\n withBuilder,\n onKeyDown,\n} from '../../../../../slate'\nimport { BuilderEditMode } from '../../../../../state/modules/builder-edit-mode'\nimport { PropControllersHandle } from '../../../../../state/modules/prop-controller-handles'\nimport { pollBoxModel } from '../../../poll-box-model'\nimport { Element, Leaf } from '../components'\nimport { Descriptors } from '../rich-text'\nimport { useSyncDOMSelection } from './useSyncDOMSelection'\nimport { useSyncWithBuilder } from './useSyncWithBuilder'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst defaultText: RichTextDAO = [{ type: BlockType.Paragraph, children: [{ text: '' }] }]\n\nexport const EditableText = forwardRef(function EditableText(\n { id, text, width, margin }: Props,\n ref: Ref<PropControllersHandle<Descriptors>>,\n) {\n const [editor] = useState(() => withBlock(withTypography(withBuilder(withReact(createEditor())))))\n const [isPreservingDOMSElection, setIsPreservingDOMSelection] = useState(false)\n useSyncDOMSelection(editor, isPreservingDOMSElection)\n const delaySync = useSyncWithBuilder(editor, text)\n const editMode = useBuilderEditMode()\n\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useEffect(() => {\n if (controller == null) return\n\n const element = ReactEditor.toDOMNode(editor, editor)\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => controller.changeBoxModel(boxModel),\n })\n }, [editor, controller])\n\n useImperativeHandle(\n ref,\n () => ({\n getDomNode() {\n return ReactEditor.toDOMNode(editor, editor)\n },\n getBoxModel() {\n return getBox(ReactEditor.toDOMNode(editor, editor))\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n const initialValue = useMemo(() => (text ? richTextDTOtoDAO(text) : defaultText), [text])\n\n useEffect(() => {\n controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n const handleFocus = useCallback(() => {\n controller?.focus()\n setIsPreservingDOMSelection(true)\n }, [controller])\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (isHotkey('mod+shift+z', e)) return controller?.redo()\n if (isHotkey('mod+z', e)) return controller?.undo()\n if (isHotkey('escape')(e)) return controller?.blur()\n onKeyDown(e, editor)\n },\n [controller, editor],\n )\n\n const handleBlur = useCallback((e: FocusEvent) => {\n // When clicking outside of the iframe (`relatedTarget` is null) we want to preserve the DOM selection.\n if (e.relatedTarget == null) return\n // Otherwise we want to deselect on blur and stop preserving selection.\n setIsPreservingDOMSelection(false)\n ReactEditor.deselect(editor)\n }, [])\n\n return (\n <Slate editor={editor} value={initialValue} onChange={delaySync}>\n <Editable\n id={id}\n renderLeaf={Leaf}\n renderElement={Element}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n className={cx(width, margin)}\n readOnly={editMode !== BuilderEditMode.CONTENT}\n placeholder=\"Write some text...\"\n />\n </Slate>\n )\n})\n\nexport default EditableText\n"],"names":["element","attributes","children","blockStyles","useStyle","margin","useResponsiveStyle","textAlign","quoteStyles","padding","fontSize","fontWeight","borderLeft","type","BlockType","Default","Paragraph","cx","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","className","restOfProps","textDecoration","InlineType","Code","SuperScript","SubScript","Link","link","undefined","props","leaf","enhancedTypography","useEnhancedTypography","typography","typographyClassName","useTypographyClassName","editor","isEnabled","useIsomorphicLayoutEffect","selection","ReactEditor","isFocused","root","findDocumentOrShadowRoot","domSelection","getSelection","newDomRange","toDOMRange","SlateRange","isBackward","setBaseAndExtent","endContainer","endOffset","startContainer","startOffset","removeAllRanges","e","console","error","COMMIT_DEBOUNCE_DELAY","text","shouldCommit","setShouldCommit","useState","isInBuilder","useIsInBuilder","useEffect","nextValue","richTextDTOtoDAO","nextSelection","richTextDTOtoSelection","deepEqual","onChange","timeoutId","window","setTimeout","clearTimeout","useCallback","defaultText","EditableText","forwardRef","id","width","ref","withBlock","withTypography","withBuilder","withReact","createEditor","isPreservingDOMSElection","setIsPreservingDOMSelection","useSyncDOMSelection","delaySync","useSyncWithBuilder","editMode","useBuilderEditMode","propControllers","setPropControllers","controller","toDOMNode","pollBoxModel","onBoxModelChange","boxModel","changeBoxModel","useImperativeHandle","getDomNode","getBoxModel","getBox","initialValue","useMemo","setSlateEditor","handleFocus","focus","handleKeyDown","isHotkey","redo","undo","blur","onKeyDown","handleBlur","relatedTarget","deselect","Leaf","Element","BuilderEditMode","CONTENT"],"mappings":"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"}