@makeswift/runtime 0.9.12 → 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 (235) 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 +6 -3
  42. package/dist/PreviewProvider.cjs.js.map +1 -1
  43. package/dist/PreviewProvider.es.js +5 -2
  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/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 +3 -2
  74. package/dist/components.cjs.js.map +1 -1
  75. package/dist/components.es.js +3 -2
  76. package/dist/components.es.js.map +1 -1
  77. package/dist/control-serialization.es.js +1 -1
  78. package/dist/controls.cjs.js +8 -8
  79. package/dist/controls.es.js +4 -2
  80. package/dist/controls.es.js.map +1 -1
  81. package/dist/index.cjs.js +276 -213
  82. package/dist/index.cjs.js.map +1 -1
  83. package/dist/index.cjs3.js +21 -107
  84. package/dist/index.cjs3.js.map +1 -1
  85. package/dist/index.cjs4.js +16 -57
  86. package/dist/index.cjs4.js.map +1 -1
  87. package/dist/index.cjs5.js +53 -242
  88. package/dist/index.cjs5.js.map +1 -1
  89. package/dist/index.cjs6.js +0 -41
  90. package/dist/index.cjs6.js.map +1 -1
  91. package/dist/index.cjs7.js +376 -14
  92. package/dist/index.cjs7.js.map +1 -1
  93. package/dist/index.cjs8.js +275 -11
  94. package/dist/index.cjs8.js.map +1 -1
  95. package/dist/index.es.js +270 -206
  96. package/dist/index.es.js.map +1 -1
  97. package/dist/index.es2.js +2 -2
  98. package/dist/index.es3.js +22 -103
  99. package/dist/index.es3.js.map +1 -1
  100. package/dist/index.es4.js +16 -57
  101. package/dist/index.es4.js.map +1 -1
  102. package/dist/index.es5.js +53 -240
  103. package/dist/index.es5.js.map +1 -1
  104. package/dist/index.es6.js +1 -36
  105. package/dist/index.es6.js.map +1 -1
  106. package/dist/index.es7.js +372 -16
  107. package/dist/index.es7.js.map +1 -1
  108. package/dist/index.es8.js +270 -10
  109. package/dist/index.es8.js.map +1 -1
  110. package/dist/main.cjs.js +2 -0
  111. package/dist/main.cjs.js.map +1 -1
  112. package/dist/main.es.js +2 -0
  113. package/dist/main.es.js.map +1 -1
  114. package/dist/next.cjs.js +3 -0
  115. package/dist/next.cjs.js.map +1 -1
  116. package/dist/next.es.js +4 -1
  117. package/dist/next.es.js.map +1 -1
  118. package/dist/prop-controllers.cjs.js +2 -0
  119. package/dist/prop-controllers.cjs.js.map +1 -1
  120. package/dist/prop-controllers.es.js +2 -0
  121. package/dist/prop-controllers.es.js.map +1 -1
  122. package/dist/react-page.cjs.js +1450 -65
  123. package/dist/react-page.cjs.js.map +1 -1
  124. package/dist/react-page.es.js +1427 -66
  125. package/dist/react-page.es.js.map +1 -1
  126. package/dist/react.cjs.js +3 -0
  127. package/dist/react.cjs.js.map +1 -1
  128. package/dist/react.es.js +3 -0
  129. package/dist/react.es.js.map +1 -1
  130. package/dist/slate.cjs.js +33 -391
  131. package/dist/slate.cjs.js.map +1 -1
  132. package/dist/slate.es.js +15 -376
  133. package/dist/slate.es.js.map +1 -1
  134. package/dist/text-input.cjs.js +0 -22
  135. package/dist/text-input.cjs.js.map +1 -1
  136. package/dist/text-input.es.js +1 -18
  137. package/dist/text-input.es.js.map +1 -1
  138. package/dist/types/src/components/builtin/Text/Text.d.ts +3 -4
  139. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  140. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
  141. package/dist/types/src/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -1
  142. package/dist/types/src/controls/rich-text/rich-text.d.ts +0 -1
  143. package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
  144. package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
  145. package/dist/types/src/controls/rich-text-v2/plugin.d.ts +29 -0
  146. package/dist/types/src/controls/rich-text-v2/plugin.d.ts.map +1 -0
  147. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +17 -31
  148. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  149. package/dist/types/src/next/client.d.ts.map +1 -1
  150. package/dist/types/src/prop-controllers/descriptors.d.ts +1 -1
  151. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  152. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
  153. package/dist/types/src/runtimes/react/controls/control.d.ts +1 -1
  154. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
  155. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/editable-text.d.ts +4 -3
  156. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -0
  157. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/index.d.ts.map +1 -0
  158. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.d.ts.map +1 -0
  159. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncWithBuilder.d.ts +1 -1
  160. package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +1 -0
  161. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/ReadOnlyText.d.ts +2 -2
  162. package/dist/types/src/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -0
  163. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/block.d.ts +1 -1
  164. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -0
  165. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +1 -0
  166. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/index.d.ts.map +1 -0
  167. package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/inline.d.ts +1 -1
  168. package/dist/types/src/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -0
  169. package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/index.d.ts.map +1 -0
  170. package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +1 -0
  171. package/dist/types/src/runtimes/react/controls/rich-text/components/index.d.ts.map +1 -0
  172. package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts +2 -0
  173. package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts.map +1 -0
  174. package/dist/types/src/runtimes/react/controls/{rich-text.d.ts → rich-text/rich-text.d.ts} +1 -1
  175. package/dist/types/src/runtimes/react/controls/rich-text/rich-text.d.ts.map +1 -0
  176. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
  177. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +2 -1
  178. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
  179. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +2 -1
  180. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
  181. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +1 -1
  182. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +2 -1
  183. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  184. package/dist/types/src/slate/BlockPlugin/index.d.ts +3 -3
  185. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  186. package/dist/types/src/slate/InlineModePlugin/index.d.ts +6 -4
  187. package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +1 -1
  188. package/dist/types/src/slate/InlinePlugin/index.d.ts +3 -3
  189. package/dist/types/src/slate/InlinePlugin/index.d.ts.map +1 -1
  190. package/dist/types/src/slate/InlinePlugin/types.d.ts +1 -1
  191. package/dist/types/src/slate/InlinePlugin/types.d.ts.map +1 -1
  192. package/dist/types/src/slate/LinkPlugin/index.d.ts +3 -3
  193. package/dist/types/src/slate/LinkPlugin/index.d.ts.map +1 -1
  194. package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +16 -0
  195. package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +1 -0
  196. package/dist/types/src/slate/TextAlignPlugin/index.d.ts +3 -3
  197. package/dist/types/src/slate/TypographyPlugin/index.d.ts +3 -3
  198. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  199. package/dist/types/src/slate/types.d.ts +1 -10
  200. package/dist/types/src/slate/types.d.ts.map +1 -1
  201. package/dist/types/src/slate/utils/element.d.ts.map +1 -1
  202. package/dist/types/src/state/modules/locales.d.ts.map +1 -1
  203. package/package.json +1 -1
  204. package/dist/index.cjs10.js +0 -390
  205. package/dist/index.cjs10.js.map +0 -1
  206. package/dist/index.cjs9.js +0 -295
  207. package/dist/index.cjs9.js.map +0 -1
  208. package/dist/index.es10.js +0 -383
  209. package/dist/index.es10.js.map +0 -1
  210. package/dist/index.es9.js +0 -288
  211. package/dist/index.es9.js.map +0 -1
  212. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts.map +0 -1
  213. package/dist/types/src/components/builtin/Text/EditableText/index.d.ts.map +0 -1
  214. package/dist/types/src/components/builtin/Text/EditableText/useSyncDOMSelection.d.ts.map +0 -1
  215. package/dist/types/src/components/builtin/Text/EditableText/useSyncWithBuilder.d.ts.map +0 -1
  216. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +0 -1
  217. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +0 -1
  218. package/dist/types/src/components/builtin/Text/components/Element/element.d.ts.map +0 -1
  219. package/dist/types/src/components/builtin/Text/components/Element/index.d.ts.map +0 -1
  220. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts.map +0 -1
  221. package/dist/types/src/components/builtin/Text/components/Leaf/index.d.ts.map +0 -1
  222. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +0 -1
  223. package/dist/types/src/components/builtin/Text/components/index.d.ts.map +0 -1
  224. package/dist/types/src/runtimes/react/controls/rich-text.d.ts.map +0 -1
  225. package/dist/types.cjs2.js +0 -765
  226. package/dist/types.cjs2.js.map +0 -1
  227. package/dist/types.es2.js +0 -748
  228. package/dist/types.es2.js.map +0 -1
  229. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/index.d.ts +0 -0
  230. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncDOMSelection.d.ts +0 -0
  231. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/element.d.ts +0 -0
  232. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/index.d.ts +0 -0
  233. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/index.d.ts +0 -0
  234. /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/leaf.d.ts +0 -0
  235. /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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"}