@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,21 +1,57 @@
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
+ };
2
33
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var Text = require("./Text.cjs.js");
4
- require("next/dynamic");
5
- require("react");
6
- require("./index.cjs.js");
7
- require("use-sync-external-store/shim/with-selector");
8
- require("./react-page.cjs.js");
34
+ var React = require("react");
35
+ var slate = require("slate");
36
+ var isHotkey = require("is-hotkey");
37
+ var slateReact = require("slate-react");
38
+ var reactPage = require("./react-page.cjs.js");
39
+ var next = require("./index.cjs.js");
40
+ var index$2 = require("./index.cjs4.js");
41
+ var index = require("./index.cjs5.js");
42
+ var index$1 = require("./index.cjs6.js");
43
+ var useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect.cjs.js");
44
+ var jsxRuntime = require("react/jsx-runtime");
45
+ require("./actions.cjs.js");
9
46
  require("redux");
10
47
  require("redux-thunk");
11
- require("./actions.cjs.js");
12
- require("zod");
13
48
  require("./state/breakpoints.cjs.js");
49
+ require("zod");
14
50
  require("@emotion/css");
15
51
  require("@emotion/serialize");
16
52
  require("@emotion/utils");
17
- require("slate");
18
- require("react/jsx-runtime");
53
+ require("use-sync-external-store/shim/with-selector");
54
+ require("next/dynamic");
19
55
  require("./text-input.cjs.js");
20
56
  require("./combobox.cjs.js");
21
57
  require("use-sync-external-store/shim");
@@ -37,5 +73,233 @@ require("set-cookie-parser");
37
73
  require("./constants.cjs.js");
38
74
  require("uuid");
39
75
  require("corporate-ipsum");
40
- exports["default"] = Text["default"];
76
+ require("next/link");
77
+ function _interopDefaultLegacy(e) {
78
+ return e && typeof e === "object" && "default" in e ? e : { "default": e };
79
+ }
80
+ var isHotkey__default = /* @__PURE__ */ _interopDefaultLegacy(isHotkey);
81
+ function useSyncDOMSelection(editor, isEnabled) {
82
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
83
+ if (!isEnabled.current || editor.selection == null || slateReact.ReactEditor.isFocused(editor))
84
+ return;
85
+ try {
86
+ const root = slateReact.ReactEditor.findDocumentOrShadowRoot(editor);
87
+ const domSelection = root.getSelection();
88
+ const newDomRange = slateReact.ReactEditor.toDOMRange(editor, editor.selection);
89
+ if (newDomRange) {
90
+ if (slate.Range.isBackward(editor.selection)) {
91
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);
92
+ } else {
93
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);
94
+ }
95
+ } else {
96
+ domSelection == null ? void 0 : domSelection.removeAllRanges();
97
+ }
98
+ } catch (e) {
99
+ console.error(e);
100
+ }
101
+ });
102
+ }
103
+ function RichTextV2Element(_a) {
104
+ var _b = _a, {
105
+ definition,
106
+ plugins
107
+ } = _b, props = __objRest(_b, [
108
+ "definition",
109
+ "plugins"
110
+ ]);
111
+ function initialRenderElement(props2) {
112
+ return props2.children;
113
+ }
114
+ const renderElement = plugins.reduce((renderFn, plugin) => (props2) => {
115
+ const {
116
+ control,
117
+ renderElement: renderElement2
118
+ } = plugin;
119
+ if ((control == null ? void 0 : control.definition) == null || renderElement2 == null)
120
+ return renderFn(props2);
121
+ if (control.getElementValue == null)
122
+ return renderElement2(renderFn, void 0)(props2);
123
+ return /* @__PURE__ */ jsxRuntime.jsx(next.ControlValue, {
124
+ definition: control.definition,
125
+ data: control.getElementValue(props2.element),
126
+ children: (value) => renderElement2(renderFn, value)(props2)
127
+ });
128
+ }, initialRenderElement);
129
+ return renderElement(props);
130
+ }
131
+ function RichTextV2Leaf(_c) {
132
+ var _d = _c, {
133
+ definition,
134
+ plugins
135
+ } = _d, props = __objRest(_d, [
136
+ "definition",
137
+ "plugins"
138
+ ]);
139
+ function initialRenderLeaf({
140
+ attributes,
141
+ children,
142
+ leaf
143
+ }) {
144
+ return /* @__PURE__ */ jsxRuntime.jsx("span", __spreadProps(__spreadValues({
145
+ className: leaf.className
146
+ }, attributes), {
147
+ children
148
+ }));
149
+ }
150
+ const renderLeaf = plugins.reduce((renderFn, plugin) => (props2) => {
151
+ const {
152
+ control,
153
+ renderLeaf: renderLeaf2
154
+ } = plugin;
155
+ if ((control == null ? void 0 : control.definition) == null || renderLeaf2 == null)
156
+ return renderFn(props2);
157
+ if (control.getLeafValue == null)
158
+ return renderLeaf2(renderFn, void 0)(props2);
159
+ return /* @__PURE__ */ jsxRuntime.jsx(next.ControlValue, {
160
+ definition: control.definition,
161
+ data: control.getLeafValue(props2.leaf),
162
+ children: (value) => renderLeaf2(renderFn, value)(props2)
163
+ });
164
+ }, initialRenderLeaf);
165
+ return renderLeaf(props);
166
+ }
167
+ function isChangeWithinPreviousSec(change) {
168
+ var _a;
169
+ return performance.now() - ((_a = change == null ? void 0 : change.time) != null ? _a : 0) < 1e3;
170
+ }
171
+ function useSyncRemoteChanges(editor, data) {
172
+ const isInBuilder = next.useIsInBuilder();
173
+ React.useEffect(() => {
174
+ var _a, _b, _c;
175
+ if (!isChangeWithinPreviousSec(editor.localChanges.get((_a = data == null ? void 0 : data.key) != null ? _a : "")) && data && isInBuilder) {
176
+ editor.children = reactPage.richTextV2DataToDescendents(data);
177
+ editor.selection = (_c = (_b = editor == null ? void 0 : editor.localChanges.get(data.key)) == null ? void 0 : _b.selection) != null ? _c : null;
178
+ editor.onChange();
179
+ }
180
+ }, [editor, data]);
181
+ }
182
+ const defaultText = [{
183
+ type: reactPage.BlockType.Default,
184
+ children: [{
185
+ text: ""
186
+ }]
187
+ }];
188
+ function EditableTextV2({
189
+ text,
190
+ definition,
191
+ control
192
+ }) {
193
+ const plugins = React.useMemo(() => {
194
+ var _a;
195
+ const plugins2 = [
196
+ ...((_a = definition == null ? void 0 : definition.config) == null ? void 0 : _a.mode) === reactPage.RichTextV2Mode.Inline ? [reactPage.InlineModePlugin()] : [reactPage.BlockPlugin(), reactPage.TypographyPlugin(), reactPage.TextAlignPlugin(), reactPage.InlinePlugin(), index.LinkPlugin()]
197
+ ];
198
+ return plugins2;
199
+ }, [definition]);
200
+ const [editor] = React.useState(() => plugins.reduceRight((editor2, plugin) => {
201
+ var _a, _b;
202
+ return (_b = (_a = plugin == null ? void 0 : plugin.withPlugin) == null ? void 0 : _a.call(plugin, editor2)) != null ? _b : editor2;
203
+ }, index$1.withLocalChanges(index$2.withBuilder(slateReact.withReact(slate.createEditor())))));
204
+ const isPreservingFocus = React.useRef(false);
205
+ useSyncDOMSelection(editor, isPreservingFocus);
206
+ const editMode = next.useBuilderEditMode();
207
+ useSyncRemoteChanges(editor, text);
208
+ React.useEffect(() => {
209
+ if (control == null)
210
+ return;
211
+ const element = slateReact.ReactEditor.toDOMNode(editor, editor);
212
+ return next.pollBoxModel({
213
+ element,
214
+ onBoxModelChange: (boxModel) => control.changeBoxModel(boxModel)
215
+ });
216
+ }, [editor, control]);
217
+ const renderElement = React.useCallback((props) => {
218
+ return /* @__PURE__ */ jsxRuntime.jsx(RichTextV2Element, __spreadProps(__spreadValues({}, props), {
219
+ definition,
220
+ plugins
221
+ }));
222
+ }, [plugins, definition]);
223
+ const renderLeaf = React.useCallback((props) => {
224
+ return /* @__PURE__ */ jsxRuntime.jsx(RichTextV2Leaf, __spreadProps(__spreadValues({}, props), {
225
+ definition,
226
+ plugins
227
+ }));
228
+ }, [plugins, definition]);
229
+ const initialValue = React.useMemo(() => {
230
+ var _a, _b;
231
+ return (_b = (_a = text && reactPage.richTextV2DataToDescendents(text)) != null ? _a : definition.config.defaultValue) != null ? _b : defaultText;
232
+ }, [text, definition]);
233
+ React.useEffect(() => {
234
+ if (editMode !== reactPage.BuilderEditMode.CONTENT) {
235
+ isPreservingFocus.current = false;
236
+ slateReact.ReactEditor.deselect(editor);
237
+ }
238
+ }, [editMode]);
239
+ React.useEffect(() => {
240
+ var _a;
241
+ const defaultValue = (_a = definition.config.defaultValue) != null ? _a : defaultText;
242
+ control == null ? void 0 : control.setEditor(editor);
243
+ control == null ? void 0 : control.setDefaultValue(defaultValue);
244
+ if (initialValue === defaultValue) {
245
+ control == null ? void 0 : control.onLocalUserChange();
246
+ }
247
+ }, [control, definition, editor]);
248
+ const handleFocus = React.useCallback(() => {
249
+ isPreservingFocus.current = true;
250
+ control == null ? void 0 : control.select();
251
+ }, [control]);
252
+ const handleKeyDown = React.useCallback((e) => {
253
+ if (isHotkey__default["default"]("mod+shift+z", e))
254
+ return control == null ? void 0 : control.redo();
255
+ if (isHotkey__default["default"]("mod+z", e))
256
+ return control == null ? void 0 : control.undo();
257
+ if (isHotkey__default["default"]("escape")(e)) {
258
+ isPreservingFocus.current = false;
259
+ slateReact.ReactEditor.blur(editor);
260
+ control == null ? void 0 : control.switchToBuildMode();
261
+ }
262
+ if (editMode === reactPage.BuilderEditMode.CONTENT) {
263
+ e.stopPropagation();
264
+ }
265
+ plugins.forEach((plugin) => {
266
+ var _a;
267
+ return (_a = plugin == null ? void 0 : plugin.onKeyDown) == null ? void 0 : _a.call(plugin, e, editor);
268
+ });
269
+ }, [control, plugins, editor, editMode]);
270
+ const handleKeyUp = React.useCallback((e) => {
271
+ if (editMode === reactPage.BuilderEditMode.CONTENT) {
272
+ e.stopPropagation();
273
+ e.preventDefault();
274
+ }
275
+ }, [control, editor, editMode]);
276
+ const handleClick = React.useCallback((e) => {
277
+ if (editMode === reactPage.BuilderEditMode.CONTENT)
278
+ e.stopPropagation();
279
+ }, [editMode]);
280
+ const handleBlur = React.useCallback((e) => {
281
+ var _a;
282
+ if (e.relatedTarget == null)
283
+ return;
284
+ if (((_a = e.relatedTarget) == null ? void 0 : _a.getAttribute("contenteditable")) === "true")
285
+ isPreservingFocus.current = false;
286
+ }, []);
287
+ return /* @__PURE__ */ jsxRuntime.jsx(slateReact.Slate, {
288
+ editor,
289
+ value: initialValue,
290
+ children: /* @__PURE__ */ jsxRuntime.jsx(slateReact.Editable, {
291
+ renderLeaf,
292
+ renderElement,
293
+ onFocus: handleFocus,
294
+ onKeyDown: handleKeyDown,
295
+ onKeyUp: handleKeyUp,
296
+ onClick: handleClick,
297
+ onBlur: handleBlur,
298
+ readOnly: editMode !== reactPage.BuilderEditMode.CONTENT,
299
+ placeholder: "Write some text..."
300
+ })
301
+ });
302
+ }
303
+ exports.EditableTextV2 = EditableTextV2;
304
+ exports["default"] = EditableTextV2;
41
305
  //# sourceMappingURL=index.cjs8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs8.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs8.js","sources":["../src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.tsx","../src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.tsx","../src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.tsx","../src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.tsx","../src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.tsx"],"sourcesContent":["import { Editor, Range as SlateRange } from 'slate'\nimport { useIsomorphicLayoutEffect } from '../../../../../components/hooks/useIsomorphicLayoutEffect'\nimport { MutableRefObject } from 'react'\nimport { ReactEditor } from 'slate-react'\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: MutableRefObject<boolean>) {\n useIsomorphicLayoutEffect(() => {\n if (!isEnabled.current || 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 { RenderElementProps } from 'slate-react'\nimport { RichTextV2ControlDefinition } from '../../../../../controls'\nimport { ControlValue } from '../../control'\nimport { RichTextV2Plugin } from '../../../../../controls/rich-text-v2/plugin'\n\ntype RichTextV2ElementProps = RenderElementProps & {\n definition: RichTextV2ControlDefinition\n plugins: RichTextV2Plugin[]\n}\n\nexport function RichTextV2Element({ definition, plugins, ...props }: RichTextV2ElementProps) {\n function initialRenderElement(props: RenderElementProps) {\n return props.children\n }\n\n const renderElement = plugins.reduce(\n (renderFn, plugin) => (props: RenderElementProps) => {\n const { control, renderElement } = plugin\n\n if (control?.definition == null || renderElement == null) return renderFn(props)\n\n if (control.getElementValue == null) return renderElement(renderFn, undefined)(props)\n\n return (\n <ControlValue definition={control.definition} data={control.getElementValue(props.element)}>\n {value => renderElement(renderFn, value)(props)}\n </ControlValue>\n )\n },\n initialRenderElement,\n )\n\n return renderElement(props)\n}\n","import { RenderLeafProps } from 'slate-react'\nimport { RichTextV2ControlDefinition } from '../../../../../controls'\nimport { ControlValue } from '../../control'\nimport { RichTextV2Plugin } from '../../../../../controls/rich-text-v2/plugin'\n\ntype RichTextV2LeafProps = RenderLeafProps & {\n definition: RichTextV2ControlDefinition\n plugins: RichTextV2Plugin[]\n}\n\nexport function RichTextV2Leaf({ definition, plugins, ...props }: RichTextV2LeafProps) {\n function initialRenderLeaf({ attributes, children, leaf }: RenderLeafProps) {\n return (\n <span className={leaf.className} {...attributes}>\n {children}\n </span>\n )\n }\n\n const renderLeaf = plugins.reduce(\n (renderFn, plugin) => (props: RenderLeafProps) => {\n const { control, renderLeaf } = plugin\n\n if (control?.definition == null || renderLeaf == null) return renderFn(props)\n\n if (control.getLeafValue == null) return renderLeaf(renderFn, undefined)(props)\n\n return (\n <ControlValue definition={control.definition} data={control.getLeafValue(props.leaf)}>\n {value => renderLeaf(renderFn, value)(props)}\n </ControlValue>\n )\n },\n initialRenderLeaf,\n )\n\n return renderLeaf(props)\n}\n","import { useEffect } from 'react'\nimport { Editor } from 'slate'\nimport { RichTextV2ControlData, richTextV2DataToDescendents } from '../../../../../controls'\nimport { LocalChange } from '../../../../../slate'\nimport { useIsInBuilder } from '../../..'\n\n// From the component point of view we can't know if the change came from an action or a undo/redo\n// So we diff the time and force updates on actions that occured over a second ago.\nfunction isChangeWithinPreviousSec(change?: LocalChange) {\n return performance.now() - (change?.time ?? 0) < 1000\n}\n\nexport function useSyncRemoteChanges(editor: Editor, data?: RichTextV2ControlData) {\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (\n !isChangeWithinPreviousSec(editor.localChanges.get(data?.key ?? '')) &&\n data &&\n isInBuilder\n ) {\n editor.children = richTextV2DataToDescendents(data)\n editor.selection = editor?.localChanges.get(data.key)?.selection ?? null\n editor.onChange()\n }\n }, [editor, data])\n}\n","import {\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { Descendant, createEditor } from 'slate'\nimport isHotkey from 'is-hotkey'\nimport {\n withReact,\n ReactEditor,\n RenderElementProps,\n RenderLeafProps,\n Slate,\n Editable,\n} from 'slate-react'\n\nimport {\n RichTextV2Control,\n RichTextV2ControlData,\n RichTextV2ControlDefinition,\n RichTextV2Mode,\n} from '../../../../../controls'\nimport { useBuilderEditMode } from '../../..'\nimport { BuilderEditMode } from '../../../../../state/modules/builder-edit-mode'\nimport { pollBoxModel } from '../../../poll-box-model'\nimport {\n BlockPlugin,\n InlineModePlugin,\n InlinePlugin,\n LinkPlugin,\n TextAlignPlugin,\n TypographyPlugin,\n withBuilder,\n withLocalChanges,\n} from '../../../../../slate'\nimport { useSyncDOMSelection } from './useSyncDOMSelection'\nimport { BlockType } from '../../../../../slate'\nimport { RichTextV2Element } from './render-element'\nimport { RichTextV2Leaf } from './render-leaf'\nimport { richTextV2DataToDescendents } from '../../../../../controls/rich-text-v2/translation'\nimport { useSyncRemoteChanges } from './useRemoteChanges'\n\nexport type RichTextV2ControlValue = ReactNode\n\nexport type Descriptors = { text?: RichTextV2ControlDefinition }\n\nconst defaultText: Descendant[] = [{ type: BlockType.Default, children: [{ text: '' }] }]\n\ntype Props = {\n text?: RichTextV2ControlData\n definition: RichTextV2ControlDefinition\n control: RichTextV2Control | null\n}\n\nexport function EditableTextV2({ text, definition, control }: Props) {\n const plugins = useMemo(() => {\n const plugins = [\n /**\n * TODO: we are manually referencing our default plugins for each mode here because\n * Referencing the real LinkPlugin causes a circular dependency.\n * When circular dependencies calm down we should update the plugin definition to use real plugins,\n * and just use the plugins that are defined by our config.\n */\n // ...(definition?.config?.plugins ?? []),\n ...(definition?.config?.mode === RichTextV2Mode.Inline\n ? [InlineModePlugin()]\n : [BlockPlugin(), TypographyPlugin(), TextAlignPlugin(), InlinePlugin(), LinkPlugin()]),\n ]\n return plugins\n }, [definition])\n\n const [editor] = useState(() =>\n plugins.reduceRight(\n (editor, plugin) => plugin?.withPlugin?.(editor) ?? editor,\n withLocalChanges(withBuilder(withReact(createEditor()))),\n ),\n )\n\n const isPreservingFocus = useRef(false)\n useSyncDOMSelection(editor, isPreservingFocus)\n\n const editMode = useBuilderEditMode()\n\n useSyncRemoteChanges(editor, text)\n\n useEffect(() => {\n if (control == null) return\n\n const element = ReactEditor.toDOMNode(editor, editor)\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeBoxModel(boxModel),\n })\n }, [editor, control])\n\n const renderElement = useCallback(\n (props: RenderElementProps) => {\n return <RichTextV2Element {...props} definition={definition} plugins={plugins} />\n },\n [plugins, definition],\n )\n\n const renderLeaf = useCallback(\n (props: RenderLeafProps) => {\n return <RichTextV2Leaf {...props} definition={definition} plugins={plugins} />\n },\n [plugins, definition],\n )\n\n const initialValue = useMemo(\n () =>\n (text && richTextV2DataToDescendents(text)) ?? definition.config.defaultValue ?? defaultText,\n [text, definition],\n )\n\n useEffect(() => {\n /**\n * This is required because clicking on the overlay has `relatedTarget` null just like the sidebar, but\n * - in the case of the overlay we switch to BUILD mode\n * - in the case of the sidebar we preserve the selection\n */\n if (editMode !== BuilderEditMode.CONTENT) {\n isPreservingFocus.current = false\n ReactEditor.deselect(editor)\n }\n }, [editMode])\n\n useEffect(() => {\n const defaultValue = definition.config.defaultValue ?? defaultText\n\n control?.setEditor(editor)\n control?.setDefaultValue(defaultValue)\n\n /**\n * When initialValue is set to the default value we need to trigger an local change so that the sidebar updates and so the data is saved\n */\n if (initialValue === defaultValue) {\n control?.onLocalUserChange()\n }\n }, [control, definition, editor])\n\n const handleFocus = useCallback(() => {\n isPreservingFocus.current = true\n control?.select()\n }, [control])\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (isHotkey('mod+shift+z', e)) return control?.redo()\n if (isHotkey('mod+z', e)) return control?.undo()\n if (isHotkey('escape')(e)) {\n isPreservingFocus.current = false\n ReactEditor.blur(editor)\n control?.switchToBuildMode()\n }\n\n if (editMode === BuilderEditMode.CONTENT) {\n e.stopPropagation()\n }\n\n plugins.forEach(plugin => plugin?.onKeyDown?.(e, editor))\n },\n [control, plugins, editor, editMode],\n )\n\n const handleKeyUp = useCallback(\n (e: KeyboardEvent) => {\n if (editMode === BuilderEditMode.CONTENT) {\n e.stopPropagation()\n e.preventDefault()\n }\n },\n [control, editor, editMode],\n )\n\n const handleClick = useCallback(\n (e: MouseEvent) => {\n if (editMode === BuilderEditMode.CONTENT) e.stopPropagation()\n },\n [editMode],\n )\n\n const handleBlur = useCallback((e: FocusEvent) => {\n // outside of iframe (overlay, sidebar, etc)\n if (e.relatedTarget == null) return\n // another text\n if (e.relatedTarget?.getAttribute('contenteditable') === 'true')\n isPreservingFocus.current = false\n }, [])\n\n return (\n <Slate editor={editor} value={initialValue}>\n <Editable\n renderLeaf={renderLeaf}\n renderElement={renderElement}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onClick={handleClick}\n onBlur={handleBlur}\n readOnly={editMode !== BuilderEditMode.CONTENT}\n placeholder=\"Write some text...\"\n />\n </Slate>\n )\n}\n\nexport default EditableTextV2\n"],"names":["editor","isEnabled","useIsomorphicLayoutEffect","current","selection","ReactEditor","isFocused","root","findDocumentOrShadowRoot","domSelection","getSelection","newDomRange","toDOMRange","SlateRange","isBackward","setBaseAndExtent","endContainer","endOffset","startContainer","startOffset","removeAllRanges","e","console","error","definition","plugins","props","children","renderElement","reduce","renderFn","plugin","control","getElementValue","undefined","ControlValue","element","value","initialRenderElement","attributes","leaf","className","renderLeaf","getLeafValue","initialRenderLeaf","change","performance","now","time","data","isInBuilder","useIsInBuilder","useEffect","isChangeWithinPreviousSec","localChanges","get","key","richTextV2DataToDescendents","onChange","defaultText","type","BlockType","Default","text","useMemo","config","mode","RichTextV2Mode","Inline","InlineModePlugin","BlockPlugin","TypographyPlugin","TextAlignPlugin","InlinePlugin","LinkPlugin","useState","reduceRight","withPlugin","withLocalChanges","withBuilder","withReact","createEditor","isPreservingFocus","useRef","useSyncDOMSelection","editMode","useBuilderEditMode","useSyncRemoteChanges","toDOMNode","pollBoxModel","onBoxModelChange","boxModel","changeBoxModel","useCallback","initialValue","defaultValue","BuilderEditMode","CONTENT","deselect","setEditor","setDefaultValue","onLocalUserChange","handleFocus","select","handleKeyDown","isHotkey","redo","undo","blur","switchToBuildMode","stopPropagation","forEach","onKeyDown","handleKeyUp","preventDefault","handleClick","handleBlur","relatedTarget","getAttribute","Slate","Editable"],"mappings":"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"}