@makeswift/runtime 0.9.12 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/dist/Box.cjs.js +3 -0
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +4 -1
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +3 -2
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +4 -3
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +3 -2
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +4 -3
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +3 -0
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +4 -1
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +3 -0
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +4 -1
  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 +13 -12
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +5 -4
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +11 -10
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +11 -10
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/LiveProvider.cjs.js +3 -0
  34. package/dist/LiveProvider.cjs.js.map +1 -1
  35. package/dist/LiveProvider.es.js +5 -2
  36. package/dist/LiveProvider.es.js.map +1 -1
  37. package/dist/Navigation.cjs.js +11 -10
  38. package/dist/Navigation.cjs.js.map +1 -1
  39. package/dist/Navigation.es.js +11 -10
  40. package/dist/Navigation.es.js.map +1 -1
  41. package/dist/PreviewProvider.cjs.js +10 -6
  42. package/dist/PreviewProvider.cjs.js.map +1 -1
  43. package/dist/PreviewProvider.es.js +9 -5
  44. package/dist/PreviewProvider.es.js.map +1 -1
  45. package/dist/ReadOnlyText.cjs.js +19 -26
  46. package/dist/ReadOnlyText.cjs.js.map +1 -1
  47. package/dist/ReadOnlyText.es.js +15 -22
  48. package/dist/ReadOnlyText.es.js.map +1 -1
  49. package/dist/ReadOnlyTextV2.cjs.js +29 -26
  50. package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
  51. package/dist/ReadOnlyTextV2.es.js +28 -25
  52. package/dist/ReadOnlyTextV2.es.js.map +1 -1
  53. package/dist/Root.cjs.js +3 -0
  54. package/dist/Root.cjs.js.map +1 -1
  55. package/dist/Root.es.js +4 -1
  56. package/dist/Root.es.js.map +1 -1
  57. package/dist/SocialLinks.cjs.js +6 -5
  58. package/dist/SocialLinks.cjs.js.map +1 -1
  59. package/dist/SocialLinks.es.js +7 -6
  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/actions.cjs.js +2 -2
  70. package/dist/actions.cjs.js.map +1 -1
  71. package/dist/actions.es.js +2 -2
  72. package/dist/actions.es.js.map +1 -1
  73. package/dist/builder.cjs.js +2 -0
  74. package/dist/builder.cjs.js.map +1 -1
  75. package/dist/builder.es.js +2 -0
  76. package/dist/builder.es.js.map +1 -1
  77. package/dist/components.cjs.js +3 -2
  78. package/dist/components.cjs.js.map +1 -1
  79. package/dist/components.es.js +3 -2
  80. package/dist/components.es.js.map +1 -1
  81. package/dist/control-serialization.es.js +1 -1
  82. package/dist/controls.cjs.js +8 -8
  83. package/dist/controls.es.js +4 -2
  84. package/dist/controls.es.js.map +1 -1
  85. package/dist/index.cjs.js +280 -216
  86. package/dist/index.cjs.js.map +1 -1
  87. package/dist/index.cjs3.js +21 -107
  88. package/dist/index.cjs3.js.map +1 -1
  89. package/dist/index.cjs4.js +16 -57
  90. package/dist/index.cjs4.js.map +1 -1
  91. package/dist/index.cjs5.js +53 -242
  92. package/dist/index.cjs5.js.map +1 -1
  93. package/dist/index.cjs6.js +0 -41
  94. package/dist/index.cjs6.js.map +1 -1
  95. package/dist/index.cjs7.js +376 -14
  96. package/dist/index.cjs7.js.map +1 -1
  97. package/dist/index.cjs8.js +275 -11
  98. package/dist/index.cjs8.js.map +1 -1
  99. package/dist/index.es.js +274 -209
  100. package/dist/index.es.js.map +1 -1
  101. package/dist/index.es2.js +2 -2
  102. package/dist/index.es3.js +22 -103
  103. package/dist/index.es3.js.map +1 -1
  104. package/dist/index.es4.js +16 -57
  105. package/dist/index.es4.js.map +1 -1
  106. package/dist/index.es5.js +53 -240
  107. package/dist/index.es5.js.map +1 -1
  108. package/dist/index.es6.js +1 -36
  109. package/dist/index.es6.js.map +1 -1
  110. package/dist/index.es7.js +372 -16
  111. package/dist/index.es7.js.map +1 -1
  112. package/dist/index.es8.js +270 -10
  113. package/dist/index.es8.js.map +1 -1
  114. package/dist/main.cjs.js +2 -0
  115. package/dist/main.cjs.js.map +1 -1
  116. package/dist/main.es.js +2 -0
  117. package/dist/main.es.js.map +1 -1
  118. package/dist/next.cjs.js +3 -0
  119. package/dist/next.cjs.js.map +1 -1
  120. package/dist/next.es.js +4 -1
  121. package/dist/next.es.js.map +1 -1
  122. package/dist/prop-controllers.cjs.js +2 -0
  123. package/dist/prop-controllers.cjs.js.map +1 -1
  124. package/dist/prop-controllers.es.js +2 -0
  125. package/dist/prop-controllers.es.js.map +1 -1
  126. package/dist/react-page.cjs.js +1450 -65
  127. package/dist/react-page.cjs.js.map +1 -1
  128. package/dist/react-page.es.js +1427 -66
  129. package/dist/react-page.es.js.map +1 -1
  130. package/dist/react.cjs.js +3 -0
  131. package/dist/react.cjs.js.map +1 -1
  132. package/dist/react.es.js +3 -0
  133. package/dist/react.es.js.map +1 -1
  134. package/dist/slate.cjs.js +33 -391
  135. package/dist/slate.cjs.js.map +1 -1
  136. package/dist/slate.es.js +15 -376
  137. package/dist/slate.es.js.map +1 -1
  138. package/dist/text-input.cjs.js +0 -22
  139. package/dist/text-input.cjs.js.map +1 -1
  140. package/dist/text-input.es.js +1 -18
  141. package/dist/text-input.es.js.map +1 -1
  142. package/dist/types/src/components/builtin/Text/Text.d.ts +3 -4
  143. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  144. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
  145. package/dist/types/src/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -1
  146. package/dist/types/src/controls/rich-text/rich-text.d.ts +0 -1
  147. package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
  148. package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
  149. package/dist/types/src/controls/rich-text-v2/plugin.d.ts +29 -0
  150. package/dist/types/src/controls/rich-text-v2/plugin.d.ts.map +1 -0
  151. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +17 -31
  152. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  153. package/dist/types/src/next/api-handler/index.d.ts.map +1 -1
  154. package/dist/types/src/next/client.d.ts.map +1 -1
  155. package/dist/types/src/next/index.d.ts.map +1 -1
  156. package/dist/types/src/prop-controllers/descriptors.d.ts +1 -1
  157. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  158. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
  159. package/dist/types/src/runtimes/react/controls/control.d.ts +1 -1
  160. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
  161. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/editable-text.d.ts +4 -3
  162. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -0
  163. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/index.d.ts.map +1 -0
  164. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.d.ts.map +1 -0
  165. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncWithBuilder.d.ts +1 -1
  166. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +1 -0
  167. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/ReadOnlyText.d.ts +2 -2
  168. package/dist/types/src/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -0
  169. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/block.d.ts +1 -1
  170. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -0
  171. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +1 -0
  172. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/index.d.ts.map +1 -0
  173. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/inline.d.ts +1 -1
  174. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -0
  175. package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/index.d.ts.map +1 -0
  176. package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +1 -0
  177. package/dist/types/src/runtimes/react/controls/rich-text/components/index.d.ts.map +1 -0
  178. package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts +2 -0
  179. package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts.map +1 -0
  180. package/dist/types/src/runtimes/react/controls/{rich-text.d.ts → rich-text/rich-text.d.ts} +1 -1
  181. package/dist/types/src/runtimes/react/controls/rich-text/rich-text.d.ts.map +1 -0
  182. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
  183. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +2 -1
  184. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
  185. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +2 -1
  186. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
  187. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +1 -1
  188. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +2 -1
  189. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  190. package/dist/types/src/slate/BlockPlugin/index.d.ts +3 -3
  191. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  192. package/dist/types/src/slate/InlineModePlugin/index.d.ts +6 -4
  193. package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +1 -1
  194. package/dist/types/src/slate/InlinePlugin/index.d.ts +3 -3
  195. package/dist/types/src/slate/InlinePlugin/index.d.ts.map +1 -1
  196. package/dist/types/src/slate/InlinePlugin/types.d.ts +1 -1
  197. package/dist/types/src/slate/InlinePlugin/types.d.ts.map +1 -1
  198. package/dist/types/src/slate/LinkPlugin/index.d.ts +3 -3
  199. package/dist/types/src/slate/LinkPlugin/index.d.ts.map +1 -1
  200. package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +16 -0
  201. package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +1 -0
  202. package/dist/types/src/slate/TextAlignPlugin/index.d.ts +3 -3
  203. package/dist/types/src/slate/TypographyPlugin/index.d.ts +3 -3
  204. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  205. package/dist/types/src/slate/types.d.ts +1 -10
  206. package/dist/types/src/slate/types.d.ts.map +1 -1
  207. package/dist/types/src/slate/utils/element.d.ts.map +1 -1
  208. package/dist/types/src/state/actions.d.ts +2 -1
  209. package/dist/types/src/state/actions.d.ts.map +1 -1
  210. package/dist/types/src/state/modules/locales.d.ts.map +1 -1
  211. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  212. package/package.json +1 -1
  213. package/dist/index.cjs10.js +0 -390
  214. package/dist/index.cjs10.js.map +0 -1
  215. package/dist/index.cjs9.js +0 -295
  216. package/dist/index.cjs9.js.map +0 -1
  217. package/dist/index.es10.js +0 -383
  218. package/dist/index.es10.js.map +0 -1
  219. package/dist/index.es9.js +0 -288
  220. package/dist/index.es9.js.map +0 -1
  221. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts.map +0 -1
  222. package/dist/types/src/components/builtin/Text/EditableText/index.d.ts.map +0 -1
  223. package/dist/types/src/components/builtin/Text/EditableText/useSyncDOMSelection.d.ts.map +0 -1
  224. package/dist/types/src/components/builtin/Text/EditableText/useSyncWithBuilder.d.ts.map +0 -1
  225. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +0 -1
  226. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +0 -1
  227. package/dist/types/src/components/builtin/Text/components/Element/element.d.ts.map +0 -1
  228. package/dist/types/src/components/builtin/Text/components/Element/index.d.ts.map +0 -1
  229. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts.map +0 -1
  230. package/dist/types/src/components/builtin/Text/components/Leaf/index.d.ts.map +0 -1
  231. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +0 -1
  232. package/dist/types/src/components/builtin/Text/components/index.d.ts.map +0 -1
  233. package/dist/types/src/runtimes/react/controls/rich-text.d.ts.map +0 -1
  234. package/dist/types.cjs2.js +0 -765
  235. package/dist/types.cjs2.js.map +0 -1
  236. package/dist/types.es2.js +0 -748
  237. package/dist/types.es2.js.map +0 -1
  238. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/index.d.ts +0 -0
  239. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncDOMSelection.d.ts +0 -0
  240. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/element.d.ts +0 -0
  241. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/index.d.ts +0 -0
  242. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/index.d.ts +0 -0
  243. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/leaf.d.ts +0 -0
  244. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/index.d.ts +0 -0
@@ -1,44 +1,5 @@
1
1
  "use strict";
2
- var slate = require("slate");
3
- var isHotkey = require("is-hotkey");
4
- var reactPage = require("./react-page.cjs.js");
5
- var types = require("./types.cjs2.js");
6
2
  var uuid = require("uuid");
7
- function _interopDefaultLegacy(e) {
8
- return e && typeof e === "object" && "default" in e ? e : { "default": e };
9
- }
10
- var isHotkey__default = /* @__PURE__ */ _interopDefaultLegacy(isHotkey);
11
- const BLOCK_ONE_PATH = [0];
12
- const BLOCK_TWO_PATH = [1];
13
- function withInlineMode(editor) {
14
- const { normalizeNode } = editor;
15
- editor.normalizeNode = (entry) => {
16
- const [normalizationNode, normalizationPath] = entry;
17
- if (slate.Path.equals(BLOCK_TWO_PATH, normalizationPath)) {
18
- slate.Transforms.mergeNodes(editor, { at: BLOCK_TWO_PATH });
19
- return;
20
- }
21
- if (slate.Path.isAncestor(BLOCK_ONE_PATH, normalizationPath) && types.ElementUtils.isBlock(normalizationNode)) {
22
- slate.Transforms.unwrapNodes(editor, {
23
- at: normalizationPath
24
- });
25
- return;
26
- }
27
- if (slate.Path.equals(BLOCK_ONE_PATH, normalizationPath)) {
28
- slate.Transforms.setNodes(editor, { type: reactPage.BlockType.Text }, { at: normalizationPath });
29
- return;
30
- }
31
- normalizeNode(entry);
32
- };
33
- return editor;
34
- }
35
- const InlineModePlugin = reactPage.createRichTextV2Plugin({
36
- onKeyDown: (e) => {
37
- if (isHotkey__default["default"]("enter", e))
38
- e.preventDefault();
39
- },
40
- withPlugin: withInlineMode
41
- });
42
3
  function withLocalChanges(editor) {
43
4
  editor.localChanges = /* @__PURE__ */ new Map();
44
5
  editor.recentLocalChanges = [];
@@ -57,7 +18,5 @@ function withLocalChanges(editor) {
57
18
  };
58
19
  return editor;
59
20
  }
60
- exports.InlineModePlugin = InlineModePlugin;
61
- exports.withInlineMode = withInlineMode;
62
21
  exports.withLocalChanges = withLocalChanges;
63
22
  //# sourceMappingURL=index.cjs6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs6.js","sources":["../src/slate/InlineModePlugin/index.ts","../src/slate/LocalChangesPlugin/index.tsx"],"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","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":["Path","Transforms","ElementUtils","BlockType","createRichTextV2Plugin","isHotkey","editor","localChanges","Map","recentLocalChanges","currentKey","_onChange","onChange","options","operation","key","uuid","set","selection","time","performance","now"],"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,QAAIA,WAAK,OAAO,gBAAgB,iBAAiB,GAAG;AAClDC,YAAA,WAAW,WAAW,QAAQ,EAAE,IAAI,eAAgB,CAAA;AACpD;AAAA,IACF;AAKE,QAAAD,MAAA,KAAK,WAAW,gBAAgB,iBAAiB,KACjDE,mBAAa,QAAQ,iBAAiB,GACtC;AACAD,YAAA,WAAW,YAAY,QAAQ;AAAA,QAC7B,IAAI;AAAA,MAAA,CACL;AACD;AAAA,IACF;AAIA,QAAID,WAAK,OAAO,gBAAgB,iBAAiB,GAAG;AACvCC,YAAAA,WAAA,SAAS,QAAQ,EAAE,MAAME,UAAAA,UAAU,QAAQ,EAAE,IAAI,kBAAA,CAAmB;AAC/E;AAAA,IACF;AAEA,kBAAc,KAAK;AAAA,EAAA;AAGd,SAAA;AACT;AAEO,MAAM,mBAAmBC,UAAAA,uBAAuB;AAAA,EACrD,WAAW,CAAC,MAAqB;AAC3B,QAAAC,kBAAA,WAAS,SAAS,CAAC;AAAG,QAAE,eAAe;AAAA,EAC7C;AAAA,EACA,YAAY;AACd,CAAC;ACzCM,0BAA0BC,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,KAAAA;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;;;;"}
1
+ {"version":3,"file":"index.cjs6.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,KAAAA;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;;"}
@@ -1,19 +1,381 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
+ var __objRest = (source, exclude) => {
22
+ var target = {};
23
+ for (var prop in source)
24
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
+ target[prop] = source[prop];
26
+ if (source != null && __getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(source)) {
28
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
+ target[prop] = source[prop];
30
+ }
31
+ return target;
32
+ };
33
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
34
+ var css = require("@emotion/css");
35
+ var cssBoxModel = require("css-box-model");
36
+ var isHotkey = require("is-hotkey");
37
+ var React = require("react");
2
38
  var slate = require("slate");
3
39
  var slateReact = require("slate-react");
4
- function withBuilder(editor) {
5
- editor.deselectAndBlur = function() {
6
- slateReact.ReactEditor.deselect(editor);
7
- slateReact.ReactEditor.blur(editor);
8
- };
9
- editor.focusAndSelectAll = function() {
10
- slateReact.ReactEditor.focus(editor);
11
- slate.Transforms.select(editor, {
12
- anchor: slate.Editor.start(editor, []),
13
- focus: slate.Editor.end(editor, [])
14
- });
15
- };
16
- return editor;
40
+ var next = require("./index.cjs.js");
41
+ var reactPage = require("./react-page.cjs.js");
42
+ var jsxRuntime = require("react/jsx-runtime");
43
+ var index = require("./index.cjs4.js");
44
+ require("./state/breakpoints.cjs.js");
45
+ require("uuid");
46
+ require("./actions.cjs.js");
47
+ var useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect.cjs.js");
48
+ require("use-sync-external-store/shim/with-selector");
49
+ require("next/dynamic");
50
+ require("./text-input.cjs.js");
51
+ require("./combobox.cjs.js");
52
+ require("use-sync-external-store/shim");
53
+ require("redux");
54
+ require("redux-thunk");
55
+ require("./types.cjs.js");
56
+ require("./box-models.cjs.js");
57
+ require("color");
58
+ require("scroll-into-view-if-needed");
59
+ require("react-dom");
60
+ require("html-react-parser");
61
+ require("next/head");
62
+ require("zod");
63
+ require("@emotion/server/create-instance");
64
+ require("next/document");
65
+ require("cors");
66
+ require("path-to-regexp");
67
+ require("cookie");
68
+ require("http-proxy");
69
+ require("set-cookie-parser");
70
+ require("./constants.cjs.js");
71
+ require("corporate-ipsum");
72
+ require("next/link");
73
+ require("@emotion/serialize");
74
+ require("@emotion/utils");
75
+ function _interopDefaultLegacy(e) {
76
+ return e && typeof e === "object" && "default" in e ? e : { "default": e };
77
+ }
78
+ var isHotkey__default = /* @__PURE__ */ _interopDefaultLegacy(isHotkey);
79
+ function BlockElement({
80
+ element,
81
+ attributes,
82
+ children
83
+ }) {
84
+ const blockStyles = [reactPage.useStyle({
85
+ margin: 0
86
+ }), reactPage.useStyle(next.useResponsiveStyle([element.textAlign], ([textAlign = "left"]) => ({
87
+ textAlign
88
+ })))];
89
+ const quoteStyles = reactPage.useStyle({
90
+ padding: "0.5em 10px",
91
+ fontSize: "1.25em",
92
+ fontWeight: "300",
93
+ borderLeft: "5px solid rgba(0, 0, 0, 0.1)"
94
+ });
95
+ switch (element.type) {
96
+ case reactPage.BlockType.Default:
97
+ case reactPage.BlockType.Paragraph:
98
+ return /* @__PURE__ */ jsxRuntime.jsx("p", __spreadProps(__spreadValues({}, attributes), {
99
+ className: css.cx(...blockStyles),
100
+ children
101
+ }));
102
+ case reactPage.BlockType.Heading1:
103
+ return /* @__PURE__ */ jsxRuntime.jsx("h1", __spreadProps(__spreadValues({}, attributes), {
104
+ className: css.cx(...blockStyles),
105
+ children
106
+ }));
107
+ case reactPage.BlockType.Heading2:
108
+ return /* @__PURE__ */ jsxRuntime.jsx("h2", __spreadProps(__spreadValues({}, attributes), {
109
+ className: css.cx(...blockStyles),
110
+ children
111
+ }));
112
+ case reactPage.BlockType.Heading3:
113
+ return /* @__PURE__ */ jsxRuntime.jsx("h3", __spreadProps(__spreadValues({}, attributes), {
114
+ className: css.cx(...blockStyles),
115
+ children
116
+ }));
117
+ case reactPage.BlockType.Heading4:
118
+ return /* @__PURE__ */ jsxRuntime.jsx("h4", __spreadProps(__spreadValues({}, attributes), {
119
+ className: css.cx(...blockStyles),
120
+ children
121
+ }));
122
+ case reactPage.BlockType.Heading5:
123
+ return /* @__PURE__ */ jsxRuntime.jsx("h5", __spreadProps(__spreadValues({}, attributes), {
124
+ className: css.cx(...blockStyles),
125
+ children
126
+ }));
127
+ case reactPage.BlockType.Heading6:
128
+ return /* @__PURE__ */ jsxRuntime.jsx("h6", __spreadProps(__spreadValues({}, attributes), {
129
+ className: css.cx(...blockStyles),
130
+ children
131
+ }));
132
+ case reactPage.BlockType.BlockQuote:
133
+ return /* @__PURE__ */ jsxRuntime.jsx("blockquote", __spreadProps(__spreadValues({}, attributes), {
134
+ className: css.cx(...blockStyles, quoteStyles),
135
+ children
136
+ }));
137
+ case reactPage.BlockType.OrderedList:
138
+ return /* @__PURE__ */ jsxRuntime.jsx("ol", __spreadProps(__spreadValues({}, attributes), {
139
+ className: css.cx(...blockStyles),
140
+ style: {
141
+ listStylePosition: "inside"
142
+ },
143
+ children
144
+ }));
145
+ case reactPage.BlockType.UnorderedList:
146
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", __spreadProps(__spreadValues({}, attributes), {
147
+ className: css.cx(...blockStyles),
148
+ style: {
149
+ listStylePosition: "inside"
150
+ },
151
+ children
152
+ }));
153
+ case reactPage.BlockType.ListItem:
154
+ return /* @__PURE__ */ jsxRuntime.jsx("li", __spreadProps(__spreadValues({}, attributes), {
155
+ className: css.cx(...blockStyles),
156
+ children
157
+ }));
158
+ case reactPage.BlockType.ListItemChild:
159
+ return /* @__PURE__ */ jsxRuntime.jsx("span", __spreadProps(__spreadValues({}, attributes), {
160
+ className: css.cx(...blockStyles),
161
+ children
162
+ }));
163
+ }
164
+ }
165
+ function StyledLink(_a) {
166
+ var _b = _a, {
167
+ className
168
+ } = _b, restOfProps = __objRest(_b, [
169
+ "className"
170
+ ]);
171
+ return /* @__PURE__ */ jsxRuntime.jsx(next.Link, __spreadProps(__spreadValues({}, restOfProps), {
172
+ className: css.cx(reactPage.useStyle({
173
+ textDecoration: "none"
174
+ }), className)
175
+ }));
176
+ }
177
+ function InlineElement({
178
+ element,
179
+ attributes,
180
+ children
181
+ }) {
182
+ var _a;
183
+ switch (element.type) {
184
+ case reactPage.InlineType.Code:
185
+ return /* @__PURE__ */ jsxRuntime.jsx("code", __spreadProps(__spreadValues({}, attributes), {
186
+ children
187
+ }));
188
+ case reactPage.InlineType.SuperScript:
189
+ return /* @__PURE__ */ jsxRuntime.jsx("sup", __spreadProps(__spreadValues({}, attributes), {
190
+ children
191
+ }));
192
+ case reactPage.InlineType.SubScript:
193
+ return /* @__PURE__ */ jsxRuntime.jsx("sub", __spreadProps(__spreadValues({}, attributes), {
194
+ children
195
+ }));
196
+ case reactPage.InlineType.Link:
197
+ return /* @__PURE__ */ jsxRuntime.jsx(StyledLink, __spreadProps(__spreadValues({}, attributes), {
198
+ link: (_a = element.link) != null ? _a : void 0,
199
+ children
200
+ }));
201
+ }
202
+ }
203
+ function Element(_c) {
204
+ var _d = _c, {
205
+ element
206
+ } = _d, props = __objRest(_d, [
207
+ "element"
208
+ ]);
209
+ switch (element.type) {
210
+ case reactPage.InlineType.Code:
211
+ case reactPage.InlineType.SuperScript:
212
+ case reactPage.InlineType.SubScript:
213
+ case reactPage.InlineType.Link:
214
+ return /* @__PURE__ */ jsxRuntime.jsx(InlineElement, __spreadValues({
215
+ element
216
+ }, props));
217
+ case reactPage.BlockType.Default:
218
+ case reactPage.BlockType.Paragraph:
219
+ case reactPage.BlockType.Heading1:
220
+ case reactPage.BlockType.Heading2:
221
+ case reactPage.BlockType.Heading3:
222
+ case reactPage.BlockType.Heading4:
223
+ case reactPage.BlockType.Heading5:
224
+ case reactPage.BlockType.Heading6:
225
+ case reactPage.BlockType.BlockQuote:
226
+ case reactPage.BlockType.OrderedList:
227
+ case reactPage.BlockType.UnorderedList:
228
+ case reactPage.BlockType.ListItem:
229
+ case reactPage.BlockType.ListItemChild:
230
+ return /* @__PURE__ */ jsxRuntime.jsx(BlockElement, __spreadValues({
231
+ element
232
+ }, props));
233
+ default:
234
+ return /* @__PURE__ */ jsxRuntime.jsx("span", __spreadProps(__spreadValues({}, props.attributes), {
235
+ children: props.children
236
+ }));
237
+ }
17
238
  }
18
- exports.withBuilder = withBuilder;
239
+ function Leaf(_e) {
240
+ var _f = _e, {
241
+ leaf
242
+ } = _f, props = __objRest(_f, [
243
+ "leaf"
244
+ ]);
245
+ const enhancedTypography = next.useEnhancedTypography(leaf.typography);
246
+ const typographyClassName = next.useTypographyClassName(enhancedTypography);
247
+ return /* @__PURE__ */ jsxRuntime.jsx("span", __spreadProps(__spreadValues({}, props.attributes), {
248
+ className: typographyClassName,
249
+ children: props.children
250
+ }));
251
+ }
252
+ function useSyncDOMSelection(editor, isEnabled) {
253
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
254
+ if (!isEnabled || editor.selection == null || slateReact.ReactEditor.isFocused(editor))
255
+ return;
256
+ try {
257
+ const root = slateReact.ReactEditor.findDocumentOrShadowRoot(editor);
258
+ const domSelection = root.getSelection();
259
+ const newDomRange = slateReact.ReactEditor.toDOMRange(editor, editor.selection);
260
+ if (newDomRange) {
261
+ if (slate.Range.isBackward(editor.selection)) {
262
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);
263
+ } else {
264
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);
265
+ }
266
+ } else {
267
+ domSelection == null ? void 0 : domSelection.removeAllRanges();
268
+ }
269
+ } catch (e) {
270
+ console.error(e);
271
+ }
272
+ });
273
+ }
274
+ const COMMIT_DEBOUNCE_DELAY = 500;
275
+ function useSyncWithBuilder(editor, text) {
276
+ const [shouldCommit, setShouldCommit] = React.useState(true);
277
+ const isInBuilder = next.useIsInBuilder();
278
+ React.useEffect(() => {
279
+ if (shouldCommit && text && isInBuilder) {
280
+ const nextValue = reactPage.richTextDTOtoDAO(text);
281
+ const nextSelection = reactPage.richTextDTOtoSelection(text);
282
+ if (!reactPage.deepEqual(editor.children, nextValue) || !reactPage.deepEqual(editor.selection, nextSelection)) {
283
+ editor.children = nextValue;
284
+ editor.selection = nextSelection;
285
+ editor.onChange();
286
+ }
287
+ }
288
+ }, [editor, shouldCommit, text]);
289
+ React.useEffect(() => {
290
+ if (shouldCommit)
291
+ return;
292
+ const timeoutId = window.setTimeout(() => {
293
+ setShouldCommit(true);
294
+ }, COMMIT_DEBOUNCE_DELAY);
295
+ return () => {
296
+ window.clearTimeout(timeoutId);
297
+ };
298
+ }, [shouldCommit]);
299
+ return React.useCallback(() => setShouldCommit(false), []);
300
+ }
301
+ const defaultText = [{
302
+ type: reactPage.BlockType.Paragraph,
303
+ children: [{
304
+ text: ""
305
+ }]
306
+ }];
307
+ const EditableText = React.forwardRef(function EditableText2({
308
+ id,
309
+ text,
310
+ width,
311
+ margin
312
+ }, ref) {
313
+ const [editor] = React.useState(() => reactPage.withBlock(reactPage.withTypography(index.withBuilder(slateReact.withReact(slate.createEditor())))));
314
+ const [isPreservingDOMSElection, setIsPreservingDOMSelection] = React.useState(false);
315
+ useSyncDOMSelection(editor, isPreservingDOMSElection);
316
+ const delaySync = useSyncWithBuilder(editor, text);
317
+ const editMode = next.useBuilderEditMode();
318
+ const [propControllers, setPropControllers] = React.useState(null);
319
+ const controller = propControllers == null ? void 0 : propControllers.text;
320
+ React.useEffect(() => {
321
+ if (controller == null)
322
+ return;
323
+ const element = slateReact.ReactEditor.toDOMNode(editor, editor);
324
+ return next.pollBoxModel({
325
+ element,
326
+ onBoxModelChange: (boxModel) => controller.changeBoxModel(boxModel)
327
+ });
328
+ }, [editor, controller]);
329
+ React.useImperativeHandle(ref, () => ({
330
+ getDomNode() {
331
+ return slateReact.ReactEditor.toDOMNode(editor, editor);
332
+ },
333
+ getBoxModel() {
334
+ return cssBoxModel.getBox(slateReact.ReactEditor.toDOMNode(editor, editor));
335
+ },
336
+ setPropControllers
337
+ }), [editor, setPropControllers]);
338
+ const initialValue = React.useMemo(() => text ? reactPage.richTextDTOtoDAO(text) : defaultText, [text]);
339
+ React.useEffect(() => {
340
+ controller == null ? void 0 : controller.setSlateEditor(editor);
341
+ }, [controller, editor]);
342
+ const handleFocus = React.useCallback(() => {
343
+ controller == null ? void 0 : controller.focus();
344
+ setIsPreservingDOMSelection(true);
345
+ }, [controller]);
346
+ const handleKeyDown = React.useCallback((e) => {
347
+ if (isHotkey__default["default"]("mod+shift+z", e))
348
+ return controller == null ? void 0 : controller.redo();
349
+ if (isHotkey__default["default"]("mod+z", e))
350
+ return controller == null ? void 0 : controller.undo();
351
+ if (isHotkey__default["default"]("escape")(e))
352
+ return controller == null ? void 0 : controller.blur();
353
+ reactPage.onKeyDown(e, editor);
354
+ }, [controller, editor]);
355
+ const handleBlur = React.useCallback((e) => {
356
+ if (e.relatedTarget == null)
357
+ return;
358
+ setIsPreservingDOMSelection(false);
359
+ slateReact.ReactEditor.deselect(editor);
360
+ }, []);
361
+ return /* @__PURE__ */ jsxRuntime.jsx(slateReact.Slate, {
362
+ editor,
363
+ value: initialValue,
364
+ onChange: delaySync,
365
+ children: /* @__PURE__ */ jsxRuntime.jsx(slateReact.Editable, {
366
+ id,
367
+ renderLeaf: Leaf,
368
+ renderElement: Element,
369
+ onFocus: handleFocus,
370
+ onKeyDown: handleKeyDown,
371
+ onBlur: handleBlur,
372
+ className: css.cx(width, margin),
373
+ readOnly: editMode !== reactPage.BuilderEditMode.CONTENT,
374
+ placeholder: "Write some text..."
375
+ })
376
+ });
377
+ });
378
+ var EditableText$1 = EditableText;
379
+ exports.EditableText = EditableText;
380
+ exports["default"] = EditableText$1;
19
381
  //# sourceMappingURL=index.cjs7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs7.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":["ReactEditor","Transforms","Editor"],"mappings":";;;AAQO,qBAAqB,QAAgB;AAC1C,SAAO,kBAAkB,WAAY;AACnCA,2BAAY,SAAS,MAAM;AAC3BA,2BAAY,KAAK,MAAM;AAAA,EAAA;AAGzB,SAAO,oBAAoB,WAAY;AACrCA,2BAAY,MAAM,MAAM;AACxBC,UAAA,WAAW,OAAO,QAAQ;AAAA,MACxB,QAAQC,MAAA,OAAO,MAAM,QAAQ,CAAA,CAAE;AAAA,MAC/B,OAAOA,MAAA,OAAO,IAAI,QAAQ,CAAA,CAAE;AAAA,IAAA,CAC7B;AAAA,EAAA;AAGI,SAAA;AACT;;"}
1
+ {"version":3,"file":"index.cjs7.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","Link","textDecoration","InlineType","Code","SuperScript","SubScript","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","Slate","Editable","Leaf","Element","BuilderEditMode","CONTENT"],"mappings":"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"}