@makeswift/runtime 0.8.9 → 0.8.10

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 (249) hide show
  1. package/dist/Box.cjs.js +2 -4
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +2 -4
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +1 -4
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +1 -4
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +1 -4
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +1 -4
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +1 -4
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +1 -4
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +1 -4
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +1 -4
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +3 -5
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +3 -5
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +1 -4
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +2 -5
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +1 -4
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +2 -5
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/LiveProvider.cjs.js +1 -4
  34. package/dist/LiveProvider.cjs.js.map +1 -1
  35. package/dist/LiveProvider.es.js +2 -5
  36. package/dist/LiveProvider.es.js.map +1 -1
  37. package/dist/Navigation.cjs.js +3 -5
  38. package/dist/Navigation.cjs.js.map +1 -1
  39. package/dist/Navigation.es.js +3 -5
  40. package/dist/Navigation.es.js.map +1 -1
  41. package/dist/PreviewProvider.cjs.js +1 -4
  42. package/dist/PreviewProvider.cjs.js.map +1 -1
  43. package/dist/PreviewProvider.es.js +3 -6
  44. package/dist/PreviewProvider.es.js.map +1 -1
  45. package/dist/ReadOnlyText.cjs.js +62 -60
  46. package/dist/ReadOnlyText.cjs.js.map +1 -1
  47. package/dist/ReadOnlyText.es.js +9 -7
  48. package/dist/ReadOnlyText.es.js.map +1 -1
  49. package/dist/ReadOnlyTextV2.cjs.js +318 -0
  50. package/dist/ReadOnlyTextV2.cjs.js.map +1 -0
  51. package/dist/ReadOnlyTextV2.es.js +314 -0
  52. package/dist/ReadOnlyTextV2.es.js.map +1 -0
  53. package/dist/Root.cjs.js +2 -4
  54. package/dist/Root.cjs.js.map +1 -1
  55. package/dist/Root.es.js +2 -4
  56. package/dist/Root.es.js.map +1 -1
  57. package/dist/SocialLinks.cjs.js +1 -4
  58. package/dist/SocialLinks.cjs.js.map +1 -1
  59. package/dist/SocialLinks.es.js +1 -4
  60. package/dist/SocialLinks.es.js.map +1 -1
  61. package/dist/Text.cjs.js +2 -5
  62. package/dist/Text.cjs.js.map +1 -1
  63. package/dist/Text.es.js +3 -6
  64. package/dist/Text.es.js.map +1 -1
  65. package/dist/Video.cjs.js +1 -4
  66. package/dist/Video.cjs.js.map +1 -1
  67. package/dist/Video.es.js +1 -4
  68. package/dist/Video.es.js.map +1 -1
  69. package/dist/actions.cjs.js.map +1 -1
  70. package/dist/actions.es.js.map +1 -1
  71. package/dist/builder.cjs.js +1 -2
  72. package/dist/builder.cjs.js.map +1 -1
  73. package/dist/builder.es.js +1 -2
  74. package/dist/builder.es.js.map +1 -1
  75. package/dist/components.cjs.js +2 -4
  76. package/dist/components.cjs.js.map +1 -1
  77. package/dist/components.es.js +2 -4
  78. package/dist/components.es.js.map +1 -1
  79. package/dist/constants.cjs.js.map +1 -1
  80. package/dist/constants.es.js.map +1 -1
  81. package/dist/control-serialization.cjs.js +0 -2
  82. package/dist/control-serialization.cjs.js.map +1 -1
  83. package/dist/control-serialization.es.js +0 -2
  84. package/dist/control-serialization.es.js.map +1 -1
  85. package/dist/controls.cjs.js +2 -6
  86. package/dist/controls.cjs.js.map +1 -1
  87. package/dist/controls.es.js +2 -3
  88. package/dist/controls.es.js.map +1 -1
  89. package/dist/descriptors.cjs.js +53 -88
  90. package/dist/descriptors.cjs.js.map +1 -1
  91. package/dist/descriptors.es.js +32 -64
  92. package/dist/descriptors.es.js.map +1 -1
  93. package/dist/element.cjs.js +55 -0
  94. package/dist/element.cjs.js.map +1 -0
  95. package/dist/element.es.js +54 -0
  96. package/dist/element.es.js.map +1 -0
  97. package/dist/index.cjs.js +33 -116
  98. package/dist/index.cjs.js.map +1 -1
  99. package/dist/index.cjs2.js +3 -4
  100. package/dist/index.cjs2.js.map +1 -1
  101. package/dist/index.cjs5.js +48 -82
  102. package/dist/index.cjs5.js.map +1 -1
  103. package/dist/index.cjs6.js +41 -42
  104. package/dist/index.cjs6.js.map +1 -1
  105. package/dist/index.cjs7.js +14 -341
  106. package/dist/index.cjs7.js.map +1 -1
  107. package/dist/index.cjs8.js +209 -0
  108. package/dist/index.cjs8.js.map +1 -0
  109. package/dist/index.cjs9.js +370 -0
  110. package/dist/index.cjs9.js.map +1 -0
  111. package/dist/index.es.js +32 -117
  112. package/dist/index.es.js.map +1 -1
  113. package/dist/index.es2.js +2 -3
  114. package/dist/index.es2.js.map +1 -1
  115. package/dist/index.es3.js +1 -1
  116. package/dist/index.es5.js +19 -54
  117. package/dist/index.es5.js.map +1 -1
  118. package/dist/index.es6.js +36 -40
  119. package/dist/index.es6.js.map +1 -1
  120. package/dist/index.es7.js +13 -336
  121. package/dist/index.es7.js.map +1 -1
  122. package/dist/index.es8.js +202 -0
  123. package/dist/index.es8.js.map +1 -0
  124. package/dist/index.es9.js +363 -0
  125. package/dist/index.es9.js.map +1 -0
  126. package/dist/introspection.cjs.js +0 -2
  127. package/dist/introspection.cjs.js.map +1 -1
  128. package/dist/introspection.es.js +0 -2
  129. package/dist/introspection.es.js.map +1 -1
  130. package/dist/leaf.cjs.js.map +1 -1
  131. package/dist/leaf.es.js +1 -1
  132. package/dist/leaf.es.js.map +1 -1
  133. package/dist/main.cjs.js +1 -2
  134. package/dist/main.cjs.js.map +1 -1
  135. package/dist/main.es.js +1 -2
  136. package/dist/main.es.js.map +1 -1
  137. package/dist/next.cjs.js +1 -4
  138. package/dist/next.cjs.js.map +1 -1
  139. package/dist/next.es.js +2 -5
  140. package/dist/next.es.js.map +1 -1
  141. package/dist/prop-controllers.cjs.js +1 -2
  142. package/dist/prop-controllers.cjs.js.map +1 -1
  143. package/dist/prop-controllers.es.js +1 -2
  144. package/dist/prop-controllers.es.js.map +1 -1
  145. package/dist/react.cjs.js +1 -4
  146. package/dist/react.cjs.js.map +1 -1
  147. package/dist/react.es.js +1 -4
  148. package/dist/react.es.js.map +1 -1
  149. package/dist/slate.cjs.js +8 -3
  150. package/dist/slate.cjs.js.map +1 -1
  151. package/dist/slate.cjs2.js +46 -0
  152. package/dist/slate.cjs2.js.map +1 -0
  153. package/dist/slate.es.js +6 -4
  154. package/dist/slate.es.js.map +1 -1
  155. package/dist/slate.es2.js +44 -0
  156. package/dist/slate.es2.js.map +1 -0
  157. package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
  158. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  159. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts.map +1 -1
  160. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts +2 -1
  161. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +1 -1
  162. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts +1 -1
  163. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +1 -1
  164. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts +1 -1
  165. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts.map +1 -1
  166. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts +1 -1
  167. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +1 -1
  168. package/dist/types/src/controls/list.d.ts +2 -1
  169. package/dist/types/src/controls/list.d.ts.map +1 -1
  170. package/dist/types/src/controls/rich-text/dto-types.d.ts +1 -1
  171. package/dist/types/src/controls/rich-text/dto-types.d.ts.map +1 -1
  172. package/dist/types/src/controls/rich-text/index.d.ts +0 -1
  173. package/dist/types/src/controls/rich-text/index.d.ts.map +1 -1
  174. package/dist/types/src/controls/rich-text/rich-text.d.ts +1 -1
  175. package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
  176. package/dist/types/src/controls/rich-text/translation.d.ts +1 -1
  177. package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
  178. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +25 -4
  179. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  180. package/dist/types/src/controls/shape.d.ts +2 -1
  181. package/dist/types/src/controls/shape.d.ts.map +1 -1
  182. package/dist/types/src/controls/slot.d.ts +1 -1
  183. package/dist/types/src/controls/slot.d.ts.map +1 -1
  184. package/dist/types/src/controls/style.d.ts +2 -1
  185. package/dist/types/src/controls/style.d.ts.map +1 -1
  186. package/dist/types/src/prop-controllers/base.d.ts +7 -0
  187. package/dist/types/src/prop-controllers/base.d.ts.map +1 -0
  188. package/dist/types/src/prop-controllers/instances.d.ts +1 -5
  189. package/dist/types/src/prop-controllers/instances.d.ts.map +1 -1
  190. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +13 -0
  191. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -0
  192. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts +4 -0
  193. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts.map +1 -0
  194. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts +9 -0
  195. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts.map +1 -0
  196. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +21 -0
  197. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -0
  198. package/dist/types/src/runtimes/react/controls/rich-text-v2/index.d.ts +2 -0
  199. package/dist/types/src/runtimes/react/controls/rich-text-v2/index.d.ts.map +1 -0
  200. package/dist/types/src/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts +8 -0
  201. package/dist/types/src/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -0
  202. package/dist/types/src/slate/BlockPlugin/index.d.ts +1 -1
  203. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  204. package/dist/types/src/slate/BlockPlugin/types.d.ts +1 -1
  205. package/dist/types/src/slate/BlockPlugin/types.d.ts.map +1 -1
  206. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts +1 -1
  207. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts.map +1 -1
  208. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts +1 -1
  209. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts.map +1 -1
  210. package/dist/types/src/slate/BuilderPlugin/index.d.ts +7 -0
  211. package/dist/types/src/slate/BuilderPlugin/index.d.ts.map +1 -0
  212. package/dist/types/src/slate/InlineModePlugin/index.d.ts +5 -0
  213. package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +1 -0
  214. package/dist/types/src/slate/ListPlugin/index.d.ts +1 -1
  215. package/dist/types/src/slate/ListPlugin/index.d.ts.map +1 -1
  216. package/dist/types/src/slate/ListPlugin/toggleList.d.ts +1 -1
  217. package/dist/types/src/slate/ListPlugin/toggleList.d.ts.map +1 -1
  218. package/dist/types/src/slate/ListPlugin/wrapList.d.ts +1 -1
  219. package/dist/types/src/slate/ListPlugin/wrapList.d.ts.map +1 -1
  220. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts +1 -1
  221. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts.map +1 -1
  222. package/dist/types/src/slate/TypographyPlugin/index.d.ts +1 -1
  223. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  224. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +1 -1
  225. package/dist/types/src/slate/index.d.ts +2 -0
  226. package/dist/types/src/slate/index.d.ts.map +1 -1
  227. package/dist/types/src/slate/selectors.d.ts +1 -1
  228. package/dist/types/src/slate/selectors.d.ts.map +1 -1
  229. package/dist/types/src/slate/utils/editor.d.ts +1 -1
  230. package/dist/types/src/slate/utils/editor.d.ts.map +1 -1
  231. package/dist/types/src/slate/utils/element.d.ts +1 -1
  232. package/dist/types/src/slate/utils/element.d.ts.map +1 -1
  233. package/dist/types/src/state/actions.d.ts +2 -1
  234. package/dist/types/src/state/actions.d.ts.map +1 -1
  235. package/dist/types/src/state/modules/prop-controller-handles.d.ts +2 -1
  236. package/dist/types/src/state/modules/prop-controller-handles.d.ts.map +1 -1
  237. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  238. package/dist/types/src/state/react-page.d.ts +1 -1
  239. package/dist/types/src/state/react-page.d.ts.map +1 -1
  240. package/dist/types/{src/controls/rich-text/types.d.ts → types/slate.d.ts} +20 -17
  241. package/dist/types/types/slate.d.ts.map +1 -0
  242. package/dist/useIsomorphicLayoutEffect.cjs.js +6 -0
  243. package/dist/useIsomorphicLayoutEffect.cjs.js.map +1 -0
  244. package/dist/useIsomorphicLayoutEffect.es.js +5 -0
  245. package/dist/useIsomorphicLayoutEffect.es.js.map +1 -0
  246. package/package.json +1 -1
  247. package/dist/types/src/controls/rich-text/types.d.ts.map +0 -1
  248. package/dist/types/src/runtimes/react/controls/rich-text-v2.d.ts +0 -15
  249. package/dist/types/src/runtimes/react/controls/rich-text-v2.d.ts.map +0 -1
@@ -0,0 +1,370 @@
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 React = require("react");
35
+ var slate$1 = require("slate");
36
+ var slateReact = require("slate-react");
37
+ var css = require("@emotion/css");
38
+ var boxModels = require("./box-models.cjs.js");
39
+ var descriptors = require("./descriptors.cjs.js");
40
+ var leaf = require("./leaf.cjs.js");
41
+ var next = require("./index.cjs.js");
42
+ var slate = require("./slate.cjs2.js");
43
+ var jsxRuntime = require("react/jsx-runtime");
44
+ var index = require("./index.cjs3.js");
45
+ var isHotkey = require("is-hotkey");
46
+ var index$1 = require("./index.cjs5.js");
47
+ var useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect.cjs.js");
48
+ require("css-box-model");
49
+ require("./actions.cjs.js");
50
+ require("./introspection.cjs.js");
51
+ require("./state/breakpoints.cjs.js");
52
+ require("use-sync-external-store/shim/with-selector");
53
+ require("next/dynamic");
54
+ require("./constants.cjs.js");
55
+ require("redux");
56
+ require("redux-thunk");
57
+ require("@emotion/serialize");
58
+ require("@emotion/utils");
59
+ require("./text-input.cjs.js");
60
+ require("./combobox.cjs.js");
61
+ require("use-sync-external-store/shim");
62
+ require("./types.cjs.js");
63
+ require("color");
64
+ require("scroll-into-view-if-needed");
65
+ require("react-dom");
66
+ require("html-react-parser");
67
+ require("next/head");
68
+ require("@emotion/server/create-instance");
69
+ require("next/document");
70
+ require("cors");
71
+ require("path-to-regexp");
72
+ require("cookie");
73
+ require("http-proxy");
74
+ require("set-cookie-parser");
75
+ require("uuid");
76
+ require("corporate-ipsum");
77
+ require("next/link");
78
+ require("./element.cjs.js");
79
+ function _interopDefaultLegacy(e) {
80
+ return e && typeof e === "object" && "default" in e ? e : { "default": e };
81
+ }
82
+ var isHotkey__default = /* @__PURE__ */ _interopDefaultLegacy(isHotkey);
83
+ function BlockElement({
84
+ element,
85
+ attributes,
86
+ children
87
+ }) {
88
+ const blockStyles = [next.useStyle({
89
+ margin: 0
90
+ }), next.useStyle(next.useResponsiveStyle([element.textAlign], ([textAlign = "left"]) => ({
91
+ textAlign
92
+ })))];
93
+ switch (element.type) {
94
+ case slate.BlockType.Text:
95
+ return /* @__PURE__ */ jsxRuntime.jsx("span", __spreadProps(__spreadValues({}, attributes), {
96
+ className: css.cx(...blockStyles),
97
+ children
98
+ }));
99
+ case slate.BlockType.Paragraph:
100
+ return /* @__PURE__ */ jsxRuntime.jsx("p", __spreadProps(__spreadValues({}, attributes), {
101
+ className: css.cx(...blockStyles),
102
+ children
103
+ }));
104
+ case slate.BlockType.Heading1:
105
+ return /* @__PURE__ */ jsxRuntime.jsx("h1", __spreadProps(__spreadValues({}, attributes), {
106
+ className: css.cx(...blockStyles),
107
+ children
108
+ }));
109
+ case slate.BlockType.Heading2:
110
+ return /* @__PURE__ */ jsxRuntime.jsx("h2", __spreadProps(__spreadValues({}, attributes), {
111
+ className: css.cx(...blockStyles),
112
+ children
113
+ }));
114
+ case slate.BlockType.Heading3:
115
+ return /* @__PURE__ */ jsxRuntime.jsx("h3", __spreadProps(__spreadValues({}, attributes), {
116
+ className: css.cx(...blockStyles),
117
+ children
118
+ }));
119
+ case slate.BlockType.Heading4:
120
+ return /* @__PURE__ */ jsxRuntime.jsx("h4", __spreadProps(__spreadValues({}, attributes), {
121
+ className: css.cx(...blockStyles),
122
+ children
123
+ }));
124
+ case slate.BlockType.Heading5:
125
+ return /* @__PURE__ */ jsxRuntime.jsx("h5", __spreadProps(__spreadValues({}, attributes), {
126
+ className: css.cx(...blockStyles),
127
+ children
128
+ }));
129
+ case slate.BlockType.Heading6:
130
+ return /* @__PURE__ */ jsxRuntime.jsx("h6", __spreadProps(__spreadValues({}, attributes), {
131
+ className: css.cx(...blockStyles),
132
+ children
133
+ }));
134
+ case slate.BlockType.BlockQuote:
135
+ return /* @__PURE__ */ jsxRuntime.jsx("blockquote", __spreadProps(__spreadValues({}, attributes), {
136
+ className: css.cx(...blockStyles, next.useStyle({
137
+ padding: "0.5em 10px",
138
+ fontSize: "1.25em",
139
+ fontWeight: "300",
140
+ borderLeft: "5px solid rgba(0, 0, 0, 0.1)"
141
+ })),
142
+ children
143
+ }));
144
+ case slate.BlockType.OrderedList:
145
+ return /* @__PURE__ */ jsxRuntime.jsx("ol", __spreadProps(__spreadValues({}, attributes), {
146
+ className: css.cx(...blockStyles),
147
+ style: {
148
+ listStylePosition: "inside"
149
+ },
150
+ children
151
+ }));
152
+ case slate.BlockType.UnorderedList:
153
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", __spreadProps(__spreadValues({}, attributes), {
154
+ className: css.cx(...blockStyles),
155
+ style: {
156
+ listStylePosition: "inside"
157
+ },
158
+ children
159
+ }));
160
+ case slate.BlockType.ListItem:
161
+ return /* @__PURE__ */ jsxRuntime.jsx("li", __spreadProps(__spreadValues({}, attributes), {
162
+ className: css.cx(...blockStyles),
163
+ children
164
+ }));
165
+ case slate.BlockType.ListItemChild:
166
+ return /* @__PURE__ */ jsxRuntime.jsx("span", __spreadProps(__spreadValues({}, attributes), {
167
+ className: css.cx(...blockStyles),
168
+ children
169
+ }));
170
+ }
171
+ }
172
+ function StyledLink(_a) {
173
+ var _b = _a, {
174
+ className
175
+ } = _b, restOfProps = __objRest(_b, [
176
+ "className"
177
+ ]);
178
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Link, __spreadProps(__spreadValues({}, restOfProps), {
179
+ className: css.cx(next.useStyle({
180
+ textDecoration: "none"
181
+ }), className)
182
+ }));
183
+ }
184
+ function InlineElement({
185
+ element,
186
+ attributes,
187
+ children
188
+ }) {
189
+ switch (element.type) {
190
+ case slate.InlineType.Code:
191
+ return /* @__PURE__ */ jsxRuntime.jsx("code", __spreadProps(__spreadValues({}, attributes), {
192
+ children
193
+ }));
194
+ case slate.InlineType.SuperScript:
195
+ return /* @__PURE__ */ jsxRuntime.jsx("sup", __spreadProps(__spreadValues({}, attributes), {
196
+ children
197
+ }));
198
+ case slate.InlineType.SubScript:
199
+ return /* @__PURE__ */ jsxRuntime.jsx("sub", __spreadProps(__spreadValues({}, attributes), {
200
+ children
201
+ }));
202
+ case slate.InlineType.Link:
203
+ return /* @__PURE__ */ jsxRuntime.jsx(StyledLink, __spreadProps(__spreadValues({}, attributes), {
204
+ link: element.link,
205
+ children
206
+ }));
207
+ }
208
+ }
209
+ function Element(_c) {
210
+ var _d = _c, {
211
+ element
212
+ } = _d, props = __objRest(_d, [
213
+ "element"
214
+ ]);
215
+ switch (element.type) {
216
+ case slate.InlineType.Code:
217
+ case slate.InlineType.SuperScript:
218
+ case slate.InlineType.SubScript:
219
+ case slate.InlineType.Link:
220
+ return /* @__PURE__ */ jsxRuntime.jsx(InlineElement, __spreadValues({
221
+ element
222
+ }, props));
223
+ case slate.BlockType.Paragraph:
224
+ case slate.BlockType.Heading1:
225
+ case slate.BlockType.Heading2:
226
+ case slate.BlockType.Heading3:
227
+ case slate.BlockType.BlockQuote:
228
+ case slate.BlockType.OrderedList:
229
+ case slate.BlockType.UnorderedList:
230
+ case slate.BlockType.ListItem:
231
+ case slate.BlockType.ListItemChild:
232
+ return /* @__PURE__ */ jsxRuntime.jsx(BlockElement, __spreadValues({
233
+ element
234
+ }, props));
235
+ default:
236
+ return /* @__PURE__ */ jsxRuntime.jsx("span", __spreadProps(__spreadValues({}, props.attributes), {
237
+ children: props.children
238
+ }));
239
+ }
240
+ }
241
+ const COMMIT_DEBOUNCE_DELAY = 500;
242
+ function useSyncWithBuilder(editor, text) {
243
+ const [shouldCommit, setShouldCommit] = React.useState(true);
244
+ const isInBuilder = next.useIsInBuilder();
245
+ React.useEffect(() => {
246
+ if (shouldCommit && text && isInBuilder) {
247
+ const nextValue = descriptors.richTextDTOtoDAO(text);
248
+ const nextSelection = descriptors.richTextDTOtoSelection(text);
249
+ if (!next.deepEqual(editor.children, nextValue) || !next.deepEqual(editor.selection, nextSelection)) {
250
+ editor.children = nextValue;
251
+ editor.selection = nextSelection;
252
+ editor.onChange();
253
+ }
254
+ }
255
+ }, [editor, shouldCommit, text]);
256
+ React.useEffect(() => {
257
+ if (shouldCommit)
258
+ return;
259
+ const timeoutId = window.setTimeout(() => {
260
+ setShouldCommit(true);
261
+ }, COMMIT_DEBOUNCE_DELAY);
262
+ return () => {
263
+ window.clearTimeout(timeoutId);
264
+ };
265
+ }, [shouldCommit]);
266
+ return React.useCallback(() => setShouldCommit(false), []);
267
+ }
268
+ function useSyncDOMSelection(editor, isEnabled) {
269
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
270
+ if (!isEnabled || editor.selection == null || slateReact.ReactEditor.isFocused(editor))
271
+ return;
272
+ try {
273
+ const root = slateReact.ReactEditor.findDocumentOrShadowRoot(editor);
274
+ const domSelection = root.getSelection();
275
+ const newDomRange = slateReact.ReactEditor.toDOMRange(editor, editor.selection);
276
+ if (newDomRange) {
277
+ if (slate$1.Range.isBackward(editor.selection)) {
278
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);
279
+ } else {
280
+ domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);
281
+ }
282
+ } else {
283
+ domSelection == null ? void 0 : domSelection.removeAllRanges();
284
+ }
285
+ } catch (e) {
286
+ console.error(e);
287
+ }
288
+ });
289
+ }
290
+ const defaultText = [{
291
+ type: slate.BlockType.Paragraph,
292
+ children: [{
293
+ text: ""
294
+ }]
295
+ }];
296
+ const EditableText = React.forwardRef(function EditableText2({
297
+ id,
298
+ text,
299
+ width,
300
+ margin
301
+ }, ref) {
302
+ const [editor] = React.useState(() => index$1.withBlock(index$1.withTypography(index$1.withList(index$1.withBuilder(slateReact.withReact(slate$1.createEditor()))))));
303
+ const [isPreservingDOMSElection, setIsPreservingDOMSelection] = React.useState(false);
304
+ useSyncDOMSelection(editor, isPreservingDOMSElection);
305
+ const delaySync = useSyncWithBuilder(editor, text);
306
+ const editMode = next.useBuilderEditMode();
307
+ const [propControllers, setPropControllers] = React.useState(null);
308
+ const controller = propControllers == null ? void 0 : propControllers.text;
309
+ React.useEffect(() => {
310
+ if (controller == null)
311
+ return;
312
+ const element = slateReact.ReactEditor.toDOMNode(editor, editor);
313
+ return next.pollBoxModel({
314
+ element,
315
+ onBoxModelChange: (boxModel) => controller.changeBoxModel(boxModel)
316
+ });
317
+ }, [editor, controller]);
318
+ React.useImperativeHandle(ref, () => ({
319
+ getDomNode() {
320
+ return slateReact.ReactEditor.toDOMNode(editor, editor);
321
+ },
322
+ getBoxModel() {
323
+ return boxModels.getBox(slateReact.ReactEditor.toDOMNode(editor, editor));
324
+ },
325
+ setPropControllers
326
+ }), [editor, setPropControllers]);
327
+ const initialValue = React.useMemo(() => text ? descriptors.richTextDTOtoDAO(text) : defaultText, [text]);
328
+ React.useEffect(() => {
329
+ controller == null ? void 0 : controller.setSlateEditor(editor);
330
+ }, [controller, editor]);
331
+ const handleFocus = React.useCallback(() => {
332
+ controller == null ? void 0 : controller.focus();
333
+ setIsPreservingDOMSelection(true);
334
+ }, [controller]);
335
+ const handleKeyDown = React.useCallback((e) => {
336
+ if (isHotkey__default["default"]("mod+shift+z", e))
337
+ return controller == null ? void 0 : controller.redo();
338
+ if (isHotkey__default["default"]("mod+z", e))
339
+ return controller == null ? void 0 : controller.undo();
340
+ if (isHotkey__default["default"]("escape")(e))
341
+ return controller == null ? void 0 : controller.blur();
342
+ index$1.onKeyDown(e, editor);
343
+ }, [controller, editor]);
344
+ const handleBlur = React.useCallback((e) => {
345
+ if (e.relatedTarget == null)
346
+ return;
347
+ setIsPreservingDOMSelection(false);
348
+ slateReact.ReactEditor.deselect(editor);
349
+ }, []);
350
+ return /* @__PURE__ */ jsxRuntime.jsx(slateReact.Slate, {
351
+ editor,
352
+ value: initialValue,
353
+ onChange: delaySync,
354
+ children: /* @__PURE__ */ jsxRuntime.jsx(slateReact.Editable, {
355
+ id,
356
+ renderLeaf: leaf.Leaf,
357
+ renderElement: Element,
358
+ onFocus: handleFocus,
359
+ onKeyDown: handleKeyDown,
360
+ onBlur: handleBlur,
361
+ className: css.cx(width, margin),
362
+ readOnly: editMode !== descriptors.BuilderEditMode.CONTENT,
363
+ placeholder: "Write some text..."
364
+ })
365
+ });
366
+ });
367
+ var EditableText$1 = EditableText;
368
+ exports.EditableText = EditableText;
369
+ exports["default"] = EditableText$1;
370
+ //# sourceMappingURL=index.cjs9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs9.js","sources":["../src/components/builtin/Text/components/Element/block.tsx","../src/components/builtin/Text/components/Element/inline.tsx","../src/components/builtin/Text/components/Element/element.tsx","../src/components/builtin/Text/EditableText/useSyncWithBuilder.tsx","../src/components/builtin/Text/EditableText/useSyncDOMSelection.tsx","../src/components/builtin/Text/EditableText/editable-text.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { RenderElementProps } from 'slate-react'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { useResponsiveStyle } from '../../../../utils/responsive-style'\nimport { Block, BlockType } from '../../../../../../types/slate'\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 switch (element.type) {\n case BlockType.Text:\n return (\n <span {...attributes} className={cx(...blockStyles)}>\n {children}\n </span>\n )\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\n {...attributes}\n className={cx(\n ...blockStyles,\n 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 >\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 { useStyle } from '../../../../../runtimes/react/use-style'\nimport { Link } from '../../../../shared/Link'\nimport { Inline, InlineType } from '../../../../../../types/slate'\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}>\n {children}\n </StyledLink>\n )\n }\n}\n","import { RenderElementProps } from 'slate-react'\nimport { BlockElement } from './block'\nimport { InlineElement } from './inline'\nimport { InlineType, BlockType } from '../../../../../../types/slate'\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.Paragraph:\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\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 { useState, useEffect, useCallback } from 'react'\nimport { Editor } from 'slate'\nimport { richTextDTOtoDAO, richTextDTOtoSelection } from '../../../../controls'\nimport { RichTextValue } from '../../../../prop-controllers'\nimport deepEqual from '../../../../utils/deepEqual'\nimport { useIsInBuilder } from '../../../../runtimes/react'\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 { ReactEditor } from 'slate-react'\nimport { useIsomorphicLayoutEffect } from '../../../hooks/useIsomorphicLayoutEffect'\nimport { Editor, Range as SlateRange } from 'slate'\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 {\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'\n\nimport { ElementIDValue, RichTextValue } from '../../../../prop-controllers/descriptors'\nimport { cx } from '@emotion/css'\nimport { DescriptorsPropControllers } from '../../../../prop-controllers/instances'\nimport { Descriptors } from '../../../../runtimes/react/controls/rich-text'\nimport { getBox } from '../../../../box-model'\nimport { PropControllersHandle } from '../../../../state/modules/prop-controller-handles'\nimport { richTextDTOtoDAO } from '../../../../controls'\nimport { Leaf } from '../components/Leaf'\nimport { Element } from '../components/Element'\nimport { useSyncWithBuilder } from './useSyncWithBuilder'\nimport isHotkey from 'is-hotkey'\nimport { useBuilderEditMode } from '../../../../runtimes/react'\nimport { BuilderEditMode } from '../../../../state/modules/builder-edit-mode'\nimport { onKeyDown, withBlock, withList, withTypography, withBuilder } from '../../../../slate'\nimport { pollBoxModel } from '../../../../runtimes/react/poll-box-model'\nimport { useSyncDOMSelection } from './useSyncDOMSelection'\nimport { RichTextDAO, BlockType } from '../../../../../types/slate'\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(() =>\n withBlock(withTypography(withList(withBuilder(withReact(createEditor()))))),\n )\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","type","BlockType","Text","cx","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","padding","fontSize","fontWeight","borderLeft","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","className","restOfProps","Link","textDecoration","InlineType","Code","SuperScript","SubScript","link","props","COMMIT_DEBOUNCE_DELAY","editor","text","shouldCommit","setShouldCommit","useState","isInBuilder","useIsInBuilder","useEffect","nextValue","richTextDTOtoDAO","nextSelection","richTextDTOtoSelection","deepEqual","selection","onChange","timeoutId","window","setTimeout","clearTimeout","useCallback","isEnabled","useIsomorphicLayoutEffect","ReactEditor","isFocused","root","findDocumentOrShadowRoot","domSelection","getSelection","newDomRange","toDOMRange","SlateRange","isBackward","setBaseAndExtent","endContainer","endOffset","startContainer","startOffset","removeAllRanges","e","console","error","defaultText","EditableText","forwardRef","id","width","ref","withBlock","withTypography","withList","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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"}
package/dist/index.es.js CHANGED
@@ -36,7 +36,7 @@ var __publicField = (obj, key, value) => {
36
36
  };
37
37
  var _c;
38
38
  import * as React from "react";
39
- import { useEffect, createContext, useContext, useState, useMemo, useRef, Children, createElement, forwardRef, memo, useId, useCallback, useLayoutEffect, useImperativeHandle, Component, Suspense } from "react";
39
+ import { useEffect, createContext, useContext, useState, useMemo, useRef, Children, createElement, forwardRef, memo, useId, useCallback, useImperativeHandle, Component, Suspense } from "react";
40
40
  import { useSyncExternalStoreWithSelector } from "use-sync-external-store/shim/with-selector";
41
41
  import dynamic from "next/dynamic";
42
42
  import { a as createDocumentReference, g as getPropControllerDescriptors, i as isElementReference, M as MakeswiftComponentType, b as isPropControllersHandle, d as getComponentPropControllerDescriptors, e as getPropControllers, f as configureStore$1, h as copyElementTree, j as getBreakpoints, k as getDocument, l as getElementId, m as getIsPreview, n as getIsInBuilder, o as getReactComponent, p as getBuilderEditMode } from "./constants.es.js";
@@ -45,11 +45,9 @@ import { cache, cx } from "@emotion/css";
45
45
  import { serializeStyles } from "@emotion/serialize";
46
46
  import { registerStyles, insertStyles } from "@emotion/utils";
47
47
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
48
- import { S as ShapeControlType, L as ListControlType, T as Types, E as ElementID, B as Backgrounds, W as Width, f as ResponsiveIconRadioGroup, M as Margin, P as Padding, g as Border, h as BorderRadius, i as Shadows, G as GapY, j as GapX, k as ResponsiveSelect, l as ResponsiveNumber, m as Checkbox, n as Grid, o as TextInput, p as Link, q as ResponsiveColor, s as TextStyle, t as Images, N as Number$1, D as Date$1, F as Font, u as ResponsiveLength, v as TextArea, w as Table, x as TableFormFields, y as Image, z as ResponsiveOpacity, A as NavigationLinks, H as SocialLinks, J as RichText, V as Video, K as StyleControlProperty, O as ImageControlValueFormat, Q as BlockType, U as BuilderEditMode, X as StyleControlType, Y as RichTextV2ControlType, Z as RichTextControlType, b as SlotControlType, _ as LinkControlType, I as ImageControlType, C as ColorControlType, $ as BorderPropControllerFormat, a0 as ShadowsPropControllerFormat, a1 as BorderRadiusPropControllerFormat, a2 as MarginPropControllerFormat, a3 as PaddingPropControllerFormat, a4 as WidthPropControllerFormat } from "./descriptors.es.js";
49
- import { createEditor } from "slate";
48
+ import { S as ShapeControlType, L as ListControlType, T as Types, E as ElementID, B as Backgrounds, W as Width, f as ResponsiveIconRadioGroup, M as Margin, P as Padding, g as Border, h as BorderRadius, i as Shadows, G as GapY, j as GapX, k as ResponsiveSelect, l as ResponsiveNumber, m as Checkbox, n as Grid, o as TextInput, p as Link, q as ResponsiveColor, s as TextStyle, t as Images, N as Number$1, D as Date$1, F as Font, u as ResponsiveLength, v as TextArea, w as Table, x as TableFormFields, y as Image, z as ResponsiveOpacity, A as NavigationLinks, H as SocialLinks, J as RichText, V as Video, K as StyleControlProperty, O as ImageControlValueFormat, Q as StyleControlType, U as RichTextV2ControlType, X as RichTextControlType, b as SlotControlType, Y as LinkControlType, I as ImageControlType, C as ColorControlType, Z as BorderPropControllerFormat, _ as ShadowsPropControllerFormat, $ as BorderRadiusPropControllerFormat, a0 as MarginPropControllerFormat, a1 as PaddingPropControllerFormat, a2 as WidthPropControllerFormat } from "./descriptors.es.js";
50
49
  import { S as SelectControlType, T as TextAreaControlType, a as TextInputControlType, N as NumberControlType, C as CheckboxControlType } from "./text-input.es.js";
51
50
  import { C as ComboboxControlType } from "./combobox.es.js";
52
- import { withReact, ReactEditor, Slate, Editable } from "slate-react";
53
51
  import { useSyncExternalStore } from "use-sync-external-store/shim";
54
52
  import { createStore, applyMiddleware } from "redux";
55
53
  import thunk from "redux-thunk";
@@ -59,8 +57,6 @@ import { getBaseBreakpoint, findBreakpointOverride, DefaultBreakpointID, join, g
59
57
  import { g as getBox, i as isMeasurable, m as measure } from "./box-models.es.js";
60
58
  import ColorHelper from "color";
61
59
  import scrollIntoView from "scroll-into-view-if-needed";
62
- import isHotkey from "is-hotkey";
63
- import { withHistory, HistoryEditor } from "slate-history";
64
60
  import { findDOMNode } from "react-dom";
65
61
  import parse from "html-react-parser";
66
62
  import Head from "next/head";
@@ -1129,7 +1125,7 @@ async function fonts(_req, res, { getFonts } = {}) {
1129
1125
  const fonts2 = (_a = await (getFonts == null ? void 0 : getFonts())) != null ? _a : [];
1130
1126
  return res.json(fonts2);
1131
1127
  }
1132
- const version = "0.8.9";
1128
+ const version = "0.8.10";
1133
1129
  async function handler(req, res, { apiKey }) {
1134
1130
  if (req.query.secret !== apiKey) {
1135
1131
  return res.status(401).json({ message: "Unauthorized" });
@@ -3079,7 +3075,7 @@ function ListControlValue({
3079
3075
  function useNumber(numberControlData, controlDefinition) {
3080
3076
  return numberControlData != null ? numberControlData : controlDefinition.config.defaultValue;
3081
3077
  }
3082
- const Text = forwardNextDynamicRef((patch) => dynamic(() => patch(import("./index.es6.js"))));
3078
+ const Text = forwardNextDynamicRef((patch) => dynamic(() => patch(import("./index.es7.js"))));
3083
3079
  function useRichText(data, control) {
3084
3080
  const textCallbackRef = useCallback((handle) => {
3085
3081
  var _a;
@@ -3093,115 +3089,15 @@ function useRichText(data, control) {
3093
3089
  ref: textCallbackRef
3094
3090
  });
3095
3091
  }
3096
- function pollBoxModel({
3097
- element,
3098
- onBoxModelChange
3099
- }) {
3100
- let currentBoxModel = null;
3101
- const handleAnimationFrameRequest = () => {
3102
- const measuredBoxModel = getBox(element);
3103
- if (!deepEqual(currentBoxModel, measuredBoxModel)) {
3104
- currentBoxModel = measuredBoxModel;
3105
- onBoxModelChange(currentBoxModel);
3106
- }
3107
- animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
3108
- };
3109
- let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
3110
- return () => {
3111
- cancelAnimationFrame(animationFrameHandle);
3112
- onBoxModelChange(null);
3113
- };
3114
- }
3115
- const isSSR = typeof window === "undefined" || /ServerSideRendering/.test(window.navigator && window.navigator.userAgent);
3116
- const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;
3117
- const defaultText = [{
3118
- type: BlockType.Text,
3119
- children: [{
3120
- text: ""
3121
- }]
3122
- }];
3092
+ const EditableText = forwardNextDynamicRef((patch) => dynamic(() => patch(import("./index.es8.js"))));
3093
+ const ReadOnlyText = forwardNextDynamicRef((patch) => dynamic(() => patch(import("./ReadOnlyTextV2.es.js"))));
3123
3094
  function useRichTextV2(data, control) {
3124
- const [editor] = useState(() => withHistory(withReact(createEditor())));
3125
- const isPreservingFocus = useRef(false);
3126
- const editMode = useBuilderEditMode();
3127
- useEffect(() => {
3128
- if (control == null)
3129
- return;
3130
- const element = ReactEditor.toDOMNode(editor, editor);
3131
- return pollBoxModel({
3132
- element,
3133
- onBoxModelChange: (boxModel) => control.changeBoxModel(boxModel)
3134
- });
3135
- }, [editor, control]);
3136
- const renderElement = useCallback(({
3137
- attributes,
3138
- children,
3139
- element
3140
- }) => {
3141
- switch (element.type) {
3142
- default:
3143
- return /* @__PURE__ */ jsx("p", __spreadProps(__spreadValues({}, attributes), {
3144
- children
3145
- }));
3146
- }
3147
- }, []);
3148
- const renderLeaf = useCallback(({
3149
- attributes,
3150
- children
3151
- }) => {
3152
- return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, attributes), {
3153
- children
3154
- }));
3155
- }, []);
3156
- const initialValue = useMemo(() => data != null ? data : defaultText, [data]);
3157
- useEffect(() => {
3158
- if (editMode !== BuilderEditMode.CONTENT) {
3159
- isPreservingFocus.current = false;
3160
- ReactEditor.deselect(editor);
3161
- }
3162
- }, [editMode]);
3163
- useEffect(() => {
3164
- control == null ? void 0 : control.setEditor(editor);
3165
- control == null ? void 0 : control.setDefaultValue(defaultText);
3166
- }, [control, editor, defaultText]);
3167
- const handleFocus = useCallback(() => {
3168
- isPreservingFocus.current = true;
3169
- control == null ? void 0 : control.select();
3170
- }, [control]);
3171
- const handleKeyDown = useCallback((e) => {
3172
- if (isHotkey("mod+shift+z", e))
3173
- return HistoryEditor.redo(editor);
3174
- if (isHotkey("mod+z", e))
3175
- return HistoryEditor.undo(editor);
3176
- if (isHotkey("escape")(e)) {
3177
- isPreservingFocus.current = false;
3178
- ReactEditor.blur(editor);
3179
- control == null ? void 0 : control.switchToBuildMode();
3180
- }
3181
- }, [control, editor]);
3182
- const handleBlur = useCallback((e) => {
3183
- var _a;
3184
- if (e.relatedTarget == null)
3185
- return;
3186
- if (((_a = e.relatedTarget) == null ? void 0 : _a.getAttribute("contenteditable")) === "true")
3187
- isPreservingFocus.current = false;
3188
- }, []);
3189
- const handleOnChange = useCallback((value) => {
3190
- control == null ? void 0 : control.onChange(value);
3191
- }, [control]);
3192
- return /* @__PURE__ */ jsx(Slate, {
3193
- editor,
3194
- onChange: handleOnChange,
3195
- value: initialValue,
3196
- children: /* @__PURE__ */ jsx(Editable, {
3197
- renderLeaf,
3198
- renderElement,
3199
- onFocus: handleFocus,
3200
- onKeyDown: handleKeyDown,
3201
- onBlur: handleBlur,
3202
- readOnly: editMode !== BuilderEditMode.CONTENT,
3203
- placeholder: "Write some text..."
3204
- })
3095
+ const isPreview = useIsPreview();
3096
+ return isPreview ? /* @__PURE__ */ jsx(EditableText, {
3097
+ text: data,
3098
+ control
3099
+ }) : /* @__PURE__ */ jsx(ReadOnlyText, {
3100
+ text: data
3205
3101
  });
3206
3102
  }
3207
3103
  function useSelectControlValue(data, definition) {
@@ -3222,6 +3118,25 @@ function ShapeControlValue({
3222
3118
  }))
3223
3119
  }), children)({});
3224
3120
  }
3121
+ function pollBoxModel({
3122
+ element,
3123
+ onBoxModelChange
3124
+ }) {
3125
+ let currentBoxModel = null;
3126
+ const handleAnimationFrameRequest = () => {
3127
+ const measuredBoxModel = getBox(element);
3128
+ if (!deepEqual(currentBoxModel, measuredBoxModel)) {
3129
+ currentBoxModel = measuredBoxModel;
3130
+ onBoxModelChange(currentBoxModel);
3131
+ }
3132
+ animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
3133
+ };
3134
+ let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
3135
+ return () => {
3136
+ cancelAnimationFrame(animationFrameHandle);
3137
+ onBoxModelChange(null);
3138
+ };
3139
+ }
3225
3140
  function useSlot(data, control) {
3226
3141
  if (data == null || data.elements.length === 0) {
3227
3142
  return /* @__PURE__ */ jsx(Slot.Placeholder, {
@@ -4011,5 +3926,5 @@ const DocumentReference = memo(forwardRef(function DocumentReference2({
4011
3926
  document: document2
4012
3927
  });
4013
3928
  }));
4014
- export { PreviewModeScript as $, Provider as A, Alignments as B, Contrasts as C, DocumentReference as D, Element$1 as E, useFile as F, forwardNextDynamicRef as G, useIsPreview as H, useFiles as I, useSwatches as J, usePagePathnameSlice as K, useElementId as L, deepEqual as M, ElementImperativeHandle as N, StoreContext as O, PageProvider as P, MakeswiftProvider as Q, RuntimeProvider as R, Shapes as S, useBuilderEditMode as T, pollBoxModel as U, useTypography as V, getStaticPaths as W, getStaticProps as X, getServerSideProps as Y, Page as Z, Makeswift as _, ReactRuntime as a, Document$1 as a0, MakeswiftApiHandler as a1, usePageId as b, DEFAULT_BOX_ANIMATE_TYPE as c, DEFAULT_BOX_ANIMATE_DELAY as d, DEFAULT_BOX_ANIMATE_DURATION as e, DEFAULT_ITEM_ANIMATE_TYPE as f, DEFAULT_ITEM_ANIMATE_DELAY as g, DEFAULT_ITEM_ANIMATE_DURATION as h, DEFAULT_ITEM_STAGGER_DURATION as i, useBorder as j, useBoxShadow as k, useResponsiveColor as l, Page$1 as m, useStyle as n, useResponsiveStyle as o, useResponsiveWidth as p, useResponsiveTextStyle as q, colorToString as r, useBreakpoints as s, useIsomorphicLayoutEffect as t, useIsInBuilder as u, Sizes as v, useFormContext as w, useResponsiveGridItem as x, useTable as y, useMakeswiftClient as z };
3929
+ export { Document$1 as $, Alignments as A, useFile as B, Contrasts as C, DocumentReference as D, Element$1 as E, forwardNextDynamicRef as F, useIsPreview as G, useFiles as H, useSwatches as I, usePagePathnameSlice as J, useElementId as K, deepEqual as L, ElementImperativeHandle as M, StoreContext as N, MakeswiftProvider as O, PageProvider as P, useBuilderEditMode as Q, RuntimeProvider as R, Shapes as S, pollBoxModel as T, useTypography as U, getStaticPaths as V, getStaticProps as W, getServerSideProps as X, Page as Y, Makeswift as Z, PreviewModeScript as _, ReactRuntime as a, MakeswiftApiHandler as a0, usePageId as b, DEFAULT_BOX_ANIMATE_TYPE as c, DEFAULT_BOX_ANIMATE_DELAY as d, DEFAULT_BOX_ANIMATE_DURATION as e, DEFAULT_ITEM_ANIMATE_TYPE as f, DEFAULT_ITEM_ANIMATE_DELAY as g, DEFAULT_ITEM_ANIMATE_DURATION as h, DEFAULT_ITEM_STAGGER_DURATION as i, useBorder as j, useBoxShadow as k, useResponsiveColor as l, Page$1 as m, useStyle as n, useResponsiveStyle as o, useResponsiveWidth as p, useResponsiveTextStyle as q, colorToString as r, useBreakpoints as s, Sizes as t, useIsInBuilder as u, useFormContext as v, useResponsiveGridItem as w, useTable as x, useMakeswiftClient as y, Provider as z };
4015
3930
  //# sourceMappingURL=index.es.js.map