@makeswift/runtime 0.8.5 → 0.8.7

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 (239) hide show
  1. package/dist/Box.cjs.js +11 -11
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +9 -9
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +36 -37
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +13 -14
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +38 -37
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +19 -18
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +55 -29
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +35 -9
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +36 -10
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +31 -5
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +31 -5
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +30 -4
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +72 -73
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +32 -33
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +22 -21
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +20 -19
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/LiveProvider.cjs.js +12 -12
  34. package/dist/LiveProvider.cjs.js.map +1 -1
  35. package/dist/LiveProvider.es.js +12 -12
  36. package/dist/LiveProvider.es.js.map +1 -1
  37. package/dist/Navigation.cjs.js +33 -34
  38. package/dist/Navigation.cjs.js.map +1 -1
  39. package/dist/Navigation.es.js +14 -15
  40. package/dist/Navigation.es.js.map +1 -1
  41. package/dist/PreviewProvider.cjs.js +16 -13
  42. package/dist/PreviewProvider.cjs.js.map +1 -1
  43. package/dist/PreviewProvider.es.js +16 -13
  44. package/dist/PreviewProvider.es.js.map +1 -1
  45. package/dist/ReadOnlyText.cjs.js +15 -16
  46. package/dist/ReadOnlyText.cjs.js.map +1 -1
  47. package/dist/ReadOnlyText.es.js +11 -12
  48. package/dist/ReadOnlyText.es.js.map +1 -1
  49. package/dist/Root.cjs.js +10 -10
  50. package/dist/Root.cjs.js.map +1 -1
  51. package/dist/Root.es.js +8 -8
  52. package/dist/SocialLinks.cjs.js +12 -13
  53. package/dist/SocialLinks.cjs.js.map +1 -1
  54. package/dist/SocialLinks.es.js +7 -8
  55. package/dist/SocialLinks.es.js.map +1 -1
  56. package/dist/Text.cjs.js +3 -4
  57. package/dist/Text.cjs.js.map +1 -1
  58. package/dist/Text.es.js +4 -5
  59. package/dist/Text.es.js.map +1 -1
  60. package/dist/Video.cjs.js +31 -5
  61. package/dist/Video.cjs.js.map +1 -1
  62. package/dist/Video.es.js +30 -4
  63. package/dist/Video.es.js.map +1 -1
  64. package/dist/actions.cjs.js +6 -1
  65. package/dist/actions.cjs.js.map +1 -1
  66. package/dist/actions.es.js +6 -2
  67. package/dist/actions.es.js.map +1 -1
  68. package/dist/components.cjs.js +10 -10
  69. package/dist/components.es.js +10 -10
  70. package/dist/constants.cjs.js +13 -3
  71. package/dist/constants.cjs.js.map +1 -1
  72. package/dist/constants.es.js +13 -4
  73. package/dist/constants.es.js.map +1 -1
  74. package/dist/descriptors.cjs.js.map +1 -1
  75. package/dist/descriptors.es.js.map +1 -1
  76. package/dist/index.cjs.js +1010 -163
  77. package/dist/index.cjs.js.map +1 -1
  78. package/dist/index.cjs2.js +29 -29
  79. package/dist/index.cjs2.js.map +1 -1
  80. package/dist/index.cjs3.js +1 -2
  81. package/dist/index.cjs3.js.map +1 -1
  82. package/dist/index.cjs4.js +2 -2
  83. package/dist/index.cjs4.js.map +1 -1
  84. package/dist/index.cjs5.js +262 -109
  85. package/dist/index.cjs5.js.map +1 -1
  86. package/dist/index.cjs6.js +3 -4
  87. package/dist/index.cjs6.js.map +1 -1
  88. package/dist/index.cjs7.js +16 -17
  89. package/dist/index.cjs7.js.map +1 -1
  90. package/dist/index.es.js +965 -133
  91. package/dist/index.es.js.map +1 -1
  92. package/dist/index.es2.js +6 -6
  93. package/dist/index.es2.js.map +1 -1
  94. package/dist/index.es3.js +1 -2
  95. package/dist/index.es3.js.map +1 -1
  96. package/dist/index.es4.js +2 -2
  97. package/dist/index.es4.js.map +1 -1
  98. package/dist/index.es5.js +262 -109
  99. package/dist/index.es5.js.map +1 -1
  100. package/dist/index.es6.js +3 -4
  101. package/dist/index.es6.js.map +1 -1
  102. package/dist/index.es7.js +12 -13
  103. package/dist/index.es7.js.map +1 -1
  104. package/dist/introspection.cjs.js +5 -2
  105. package/dist/introspection.cjs.js.map +1 -1
  106. package/dist/introspection.es.js +4 -2
  107. package/dist/introspection.es.js.map +1 -1
  108. package/dist/leaf.cjs.js +15 -17
  109. package/dist/leaf.cjs.js.map +1 -1
  110. package/dist/leaf.es.js +10 -11
  111. package/dist/leaf.es.js.map +1 -1
  112. package/dist/main.cjs.js +2 -1
  113. package/dist/main.cjs.js.map +1 -1
  114. package/dist/main.es.js +2 -2
  115. package/dist/next.cjs.js +5 -6
  116. package/dist/next.cjs.js.map +1 -1
  117. package/dist/next.es.js +6 -7
  118. package/dist/next.es.js.map +1 -1
  119. package/dist/prop-controllers.cjs.js +0 -1
  120. package/dist/prop-controllers.cjs.js.map +1 -1
  121. package/dist/prop-controllers.es.js +0 -1
  122. package/dist/prop-controllers.es.js.map +1 -1
  123. package/dist/react.cjs.js +3 -4
  124. package/dist/react.cjs.js.map +1 -1
  125. package/dist/react.es.js +3 -4
  126. package/dist/react.es.js.map +1 -1
  127. package/dist/slate.cjs.js +1 -12
  128. package/dist/slate.cjs.js.map +1 -1
  129. package/dist/slate.es.js +1 -12
  130. package/dist/slate.es.js.map +1 -1
  131. package/dist/state/breakpoints.cjs.js +175 -0
  132. package/dist/state/breakpoints.cjs.js.map +1 -0
  133. package/dist/state/breakpoints.es.js +160 -0
  134. package/dist/state/breakpoints.es.js.map +1 -0
  135. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  136. package/dist/types/src/components/builtin/Box/register.d.ts.map +1 -1
  137. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -1
  138. package/dist/types/src/components/builtin/Button/register.d.ts.map +1 -1
  139. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  140. package/dist/types/src/components/builtin/Carousel/register.d.ts.map +1 -1
  141. package/dist/types/src/components/builtin/Countdown/register.d.ts.map +1 -1
  142. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  143. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
  144. package/dist/types/src/components/builtin/Form/register.d.ts.map +1 -1
  145. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -1
  146. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
  147. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  148. package/dist/types/src/components/builtin/Navigation/register.d.ts.map +1 -1
  149. package/dist/types/src/components/builtin/SocialLinks/register.d.ts.map +1 -1
  150. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts +0 -4
  151. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +1 -1
  152. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
  153. package/dist/types/src/components/hooks/useMediaQuery.d.ts.map +1 -1
  154. package/dist/types/src/components/utils/drop-first.d.ts +2 -0
  155. package/dist/types/src/components/utils/drop-first.d.ts.map +1 -0
  156. package/dist/types/src/components/utils/responsive-style.d.ts +21 -10
  157. package/dist/types/src/components/utils/responsive-style.d.ts.map +1 -1
  158. package/dist/types/src/controls/types.d.ts +1 -1
  159. package/dist/types/src/controls/types.d.ts.map +1 -1
  160. package/dist/types/src/index.d.ts +2 -2
  161. package/dist/types/src/index.d.ts.map +1 -1
  162. package/dist/types/src/next/api-handler/handlers/manifest.d.ts +1 -0
  163. package/dist/types/src/next/api-handler/handlers/manifest.d.ts.map +1 -1
  164. package/dist/types/src/next/client.d.ts +4 -1
  165. package/dist/types/src/next/client.d.ts.map +1 -1
  166. package/dist/types/src/next/index.d.ts +3 -1
  167. package/dist/types/src/next/index.d.ts.map +1 -1
  168. package/dist/types/src/prop-controllers/descriptors.d.ts +1 -1
  169. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  170. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts +3 -1
  171. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts.map +1 -1
  172. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts +3 -1
  173. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
  174. package/dist/types/src/runtimes/react/index.d.ts +22 -4
  175. package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
  176. package/dist/types/src/slate/BlockPlugin/clearBlockKeyForDevice.d.ts +2 -2
  177. package/dist/types/src/slate/BlockPlugin/clearBlockKeyForDevice.d.ts.map +1 -1
  178. package/dist/types/src/slate/BlockPlugin/index.d.ts +4 -0
  179. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  180. package/dist/types/src/slate/BlockPlugin/setBlockKeyForDevice.d.ts +7 -3
  181. package/dist/types/src/slate/BlockPlugin/setBlockKeyForDevice.d.ts.map +1 -1
  182. package/dist/types/src/slate/BlockPlugin/types.d.ts +2 -2
  183. package/dist/types/src/slate/BlockPlugin/types.d.ts.map +1 -1
  184. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts +4 -0
  185. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts.map +1 -0
  186. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts +4 -0
  187. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts.map +1 -0
  188. package/dist/types/src/slate/ListPlugin/toggleList.d.ts +2 -1
  189. package/dist/types/src/slate/ListPlugin/toggleList.d.ts.map +1 -1
  190. package/dist/types/src/slate/ListPlugin/unwrapList.d.ts +6 -2
  191. package/dist/types/src/slate/ListPlugin/unwrapList.d.ts.map +1 -1
  192. package/dist/types/src/slate/ListPlugin/utils/getSelectedListItems.d.ts +0 -1
  193. package/dist/types/src/slate/ListPlugin/utils/getSelectedListItems.d.ts.map +1 -1
  194. package/dist/types/src/slate/ListPlugin/wrapList.d.ts +2 -1
  195. package/dist/types/src/slate/ListPlugin/wrapList.d.ts.map +1 -1
  196. package/dist/types/src/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts +6 -2
  197. package/dist/types/src/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts.map +1 -1
  198. package/dist/types/src/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts +6 -2
  199. package/dist/types/src/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts.map +1 -1
  200. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts +6 -2
  201. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts.map +1 -1
  202. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  203. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyId.d.ts +6 -2
  204. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyId.d.ts.map +1 -1
  205. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts +7 -2
  206. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +1 -1
  207. package/dist/types/src/slate/selectors.d.ts +19 -0
  208. package/dist/types/src/slate/selectors.d.ts.map +1 -0
  209. package/dist/types/src/slate/utils/editor.d.ts.map +1 -1
  210. package/dist/types/src/slate/utils/element.d.ts +2 -1
  211. package/dist/types/src/slate/utils/element.d.ts.map +1 -1
  212. package/dist/types/src/slate/utils/unhangRange.d.ts +10 -0
  213. package/dist/types/src/slate/utils/unhangRange.d.ts.map +1 -0
  214. package/dist/types/src/state/actions.d.ts +10 -1
  215. package/dist/types/src/state/actions.d.ts.map +1 -1
  216. package/dist/types/src/state/modules/breakpoints.d.ts +44 -0
  217. package/dist/types/src/state/modules/breakpoints.d.ts.map +1 -0
  218. package/dist/types/src/state/react-builder-preview.d.ts +2 -0
  219. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  220. package/dist/types/src/state/react-page.d.ts +5 -1
  221. package/dist/types/src/state/react-page.d.ts.map +1 -1
  222. package/dist/types/src/utils/isNonNullable.d.ts +2 -0
  223. package/dist/types/src/utils/isNonNullable.d.ts.map +1 -0
  224. package/dist/useMediaQuery.cjs.js +38 -0
  225. package/dist/useMediaQuery.cjs.js.map +1 -0
  226. package/dist/useMediaQuery.es.js +37 -0
  227. package/dist/useMediaQuery.es.js.map +1 -0
  228. package/package.json +10 -2
  229. package/state/breakpoints.js +1 -0
  230. package/dist/isNonNullable.cjs.js +0 -6
  231. package/dist/isNonNullable.cjs.js.map +0 -1
  232. package/dist/isNonNullable.es.js +0 -5
  233. package/dist/isNonNullable.es.js.map +0 -1
  234. package/dist/responsive-style.cjs.js +0 -917
  235. package/dist/responsive-style.cjs.js.map +0 -1
  236. package/dist/responsive-style.es.js +0 -853
  237. package/dist/responsive-style.es.js.map +0 -1
  238. package/dist/types/src/components/utils/devices.d.ts +0 -17
  239. package/dist/types/src/components/utils/devices.d.ts.map +0 -1
@@ -22,8 +22,7 @@ var slate = require("slate");
22
22
  var isHotkey = require("is-hotkey");
23
23
  var descriptors = require("./descriptors.cjs.js");
24
24
  require("slate-react");
25
- var leaf = require("./leaf.cjs.js");
26
- var responsiveStyle = require("./responsive-style.cjs.js");
25
+ var state_breakpoints = require("./state/breakpoints.cjs.js");
27
26
  function _interopDefaultLegacy(e) {
28
27
  return e && typeof e === "object" && "default" in e ? e : { "default": e };
29
28
  }
@@ -31,11 +30,14 @@ var isHotkey__default = /* @__PURE__ */ _interopDefaultLegacy(isHotkey);
31
30
  const LIST_ITEM_CHILD_POSITION = 0;
32
31
  const LIST_ITEM_LIST_POSITION = 1;
33
32
  const ElementUtils = {
33
+ isRootBlock(node) {
34
+ return slate.Element.isElement(node) && (slate.Element.isElementType(node, descriptors.BlockType.Paragraph) || slate.Element.isElementType(node, descriptors.BlockType.Heading1) || slate.Element.isElementType(node, descriptors.BlockType.Heading2) || slate.Element.isElementType(node, descriptors.BlockType.Heading3) || slate.Element.isElementType(node, descriptors.BlockType.Heading3) || slate.Element.isElementType(node, descriptors.BlockType.Heading4) || slate.Element.isElementType(node, descriptors.BlockType.Heading5) || slate.Element.isElementType(node, descriptors.BlockType.Heading6) || slate.Element.isElementType(node, descriptors.BlockType.BlockQuote) || slate.Element.isElementType(node, descriptors.BlockType.UnorderedList) || slate.Element.isElementType(node, descriptors.BlockType.OrderedList));
35
+ },
34
36
  isBlock(node) {
35
- return slate.Element.isElement(node) && (slate.Element.isElementType(node, descriptors.BlockType.Paragraph) || slate.Element.isElementType(node, descriptors.BlockType.Heading1) || slate.Element.isElementType(node, descriptors.BlockType.Heading2) || slate.Element.isElementType(node, descriptors.BlockType.Heading3) || slate.Element.isElementType(node, descriptors.BlockType.Heading3) || slate.Element.isElementType(node, descriptors.BlockType.Heading4) || slate.Element.isElementType(node, descriptors.BlockType.Heading5) || slate.Element.isElementType(node, descriptors.BlockType.Heading6) || slate.Element.isElementType(node, descriptors.BlockType.BlockQuote) || slate.Element.isElementType(node, descriptors.BlockType.UnorderedList) || slate.Element.isElementType(node, descriptors.BlockType.OrderedList) || slate.Element.isElementType(node, descriptors.BlockType.ListItem) || slate.Element.isElementType(node, descriptors.BlockType.ListItemChild));
37
+ return slate.Element.isElement(node) && (this.isRootBlock(node) || slate.Element.isElementType(node, descriptors.BlockType.ListItem) || slate.Element.isElementType(node, descriptors.BlockType.ListItemChild));
36
38
  },
37
39
  isInline(node) {
38
- return slate.Element.isElement(node) && (slate.Element.isElementType(node, descriptors.InlineType.Link) || slate.Element.isElementType(node, descriptors.InlineType.Link) || slate.Element.isElementType(node, descriptors.InlineType.SubScript) || slate.Element.isElementType(node, descriptors.InlineType.SuperScript));
40
+ return slate.Element.isElementType(node, descriptors.InlineType.Code) || slate.Element.isElementType(node, descriptors.InlineType.Link) || slate.Element.isElementType(node, descriptors.InlineType.SubScript) || slate.Element.isElementType(node, descriptors.InlineType.SuperScript);
39
41
  },
40
42
  isConvertibleToListTextNode(node) {
41
43
  return !this.isList(node) && !this.isListItem(node) && !this.isListItemChild(node);
@@ -66,7 +68,7 @@ const ElementUtils = {
66
68
  },
67
69
  createListItem() {
68
70
  return {
69
- children: [this.createText()],
71
+ children: [this.createListItemChild()],
70
72
  type: descriptors.BlockType.ListItem
71
73
  };
72
74
  },
@@ -79,18 +81,26 @@ const ElementUtils = {
79
81
  };
80
82
  const EditorUtils = {
81
83
  getFirstAncestorList(editor, path) {
82
- const parentList = slate.Editor.above(editor, {
83
- at: path,
84
- match: (node) => ElementUtils.isList(node)
85
- });
86
- return parentList != null ? parentList : null;
84
+ try {
85
+ const parentList = slate.Editor.above(editor, {
86
+ at: path,
87
+ match: (node) => ElementUtils.isList(node)
88
+ });
89
+ return parentList != null ? parentList : null;
90
+ } catch (e) {
91
+ return null;
92
+ }
87
93
  },
88
94
  getFirstAncestorListItem(editor, path) {
89
- const parentListItem = slate.Editor.above(editor, {
90
- at: path,
91
- match: (node) => ElementUtils.isListItem(node)
92
- });
93
- return parentListItem != null ? parentListItem : null;
95
+ try {
96
+ const parentListItem = slate.Editor.above(editor, {
97
+ at: path,
98
+ match: (node) => ElementUtils.isListItem(node)
99
+ });
100
+ return parentListItem != null ? parentListItem : null;
101
+ } catch (e) {
102
+ return null;
103
+ }
94
104
  }
95
105
  };
96
106
  function filterForSubtreeRoots(entries) {
@@ -214,10 +224,17 @@ function unwrapPath(editor, listItemPath) {
214
224
  }
215
225
  });
216
226
  }
217
- function unwrapList(editor) {
218
- if (!editor.selection)
227
+ function unwrapList(editor, options) {
228
+ var _a;
229
+ const at = (_a = options == null ? void 0 : options.at) != null ? _a : editor.selection;
230
+ if (!at)
219
231
  return;
220
- const listItems = getSelectedListItems(editor);
232
+ const listItems = Array.from(slate.Editor.nodes(editor, {
233
+ at,
234
+ match: (node) => {
235
+ return slate.Element.isElement(node) && ElementUtils.isListItem(node);
236
+ }
237
+ }));
221
238
  const subRoots = filterForSubtreeRoots(listItems);
222
239
  const refs = subRoots.map(([_, path]) => slate.Editor.pathRef(editor, path));
223
240
  refs.forEach((ref) => {
@@ -228,10 +245,12 @@ function unwrapList(editor) {
228
245
  });
229
246
  }
230
247
  function wrapList(editor, options = { type: descriptors.BlockType.UnorderedList }) {
231
- if (!editor.selection)
248
+ var _a;
249
+ const at = (_a = options.at) != null ? _a : editor.selection;
250
+ if (!at)
232
251
  return;
233
252
  const nonListEntries = Array.from(slate.Editor.nodes(editor, {
234
- at: editor.selection,
253
+ at,
235
254
  match: (node) => {
236
255
  return slate.Element.isElement(node) && ElementUtils.isConvertibleToListTextNode(node);
237
256
  }
@@ -245,6 +264,7 @@ function wrapList(editor, options = { type: descriptors.BlockType.UnorderedList
245
264
  at: path
246
265
  });
247
266
  slate.Transforms.wrapNodes(editor, ElementUtils.createListItem(), {
267
+ match: (node) => ElementUtils.isListItemChild(node),
248
268
  at: path
249
269
  });
250
270
  slate.Transforms.wrapNodes(editor, ElementUtils.createList(options.type), {
@@ -256,18 +276,20 @@ function wrapList(editor, options = { type: descriptors.BlockType.UnorderedList
256
276
  });
257
277
  }
258
278
  function toggleList(editor, options = { type: descriptors.BlockType.UnorderedList }) {
259
- if (!editor.selection)
279
+ var _a;
280
+ const at = (_a = options.at) != null ? _a : editor.selection;
281
+ if (at == null)
260
282
  return;
261
- const start = LocationUtils.getStartPath(editor.selection);
283
+ const start = LocationUtils.getStartPath(at);
262
284
  const ancestorPath = slate.Path.ancestors(start).at(1);
263
285
  if (!ancestorPath || !slate.Node.has(editor, ancestorPath))
264
286
  return;
265
287
  const ancestor = slate.Node.get(editor, ancestorPath);
266
288
  if (!ElementUtils.isList(ancestor)) {
267
- return wrapList(editor, { type: options.type });
289
+ return wrapList(editor, { type: options.type, at });
268
290
  }
269
291
  if (ancestor.type === options.type) {
270
- unwrapList(editor);
292
+ unwrapList(editor, { at });
271
293
  } else {
272
294
  slate.Transforms.setNodes(editor, { type: options.type }, { at: ancestorPath });
273
295
  }
@@ -378,10 +400,10 @@ function withList(editor) {
378
400
  const nodeChildren = Array.from(slate.Node.children(editor, nodePath));
379
401
  const childrenToBeMerged = Array.from(slate.Node.children(editor, nodeToBeMergedPath));
380
402
  slate.Editor.withoutNormalizing(editor, () => {
381
- childrenToBeMerged.forEach(([_, childPath], index) => {
403
+ childrenToBeMerged.reverse().forEach(([_, childPath]) => {
382
404
  slate.Transforms.moveNodes(editor, {
383
405
  at: childPath,
384
- to: [...nodePath, nodeChildren.length + index]
406
+ to: [...nodePath, nodeChildren.length]
385
407
  });
386
408
  });
387
409
  slate.Transforms.removeNodes(editor, { at: nodeToBeMergedPath });
@@ -396,94 +418,168 @@ function withList(editor) {
396
418
  };
397
419
  return editor;
398
420
  }
399
- function clearActiveTypographyStyle(editor) {
400
- if (!editor.selection)
401
- return;
402
- const textNodes = slate.Editor.nodes(editor, {
403
- at: editor.selection,
404
- match: (node) => slate.Text.isText(node)
405
- });
406
- for (const [node, path] of textNodes) {
407
- if (slate.Text.isText(node)) {
408
- const typography = __spreadProps(__spreadValues({}, node.typography), {
409
- style: []
410
- });
421
+ function clearActiveTypographyStyle(editor, options) {
422
+ slate.Editor.withoutNormalizing(editor, () => {
423
+ var _a;
424
+ const at = (_a = options == null ? void 0 : options.at) != null ? _a : editor.selection;
425
+ if (!at)
426
+ return;
427
+ const atRef = slate.Editor.rangeRef(editor, at);
428
+ if (atRef.current) {
411
429
  slate.Transforms.setNodes(editor, {
412
- typography
413
- }, { at: path });
430
+ slice: true
431
+ }, {
432
+ at: atRef.current,
433
+ match: (node) => slate.Text.isText(node),
434
+ split: slate.Range.isExpanded(atRef.current)
435
+ });
414
436
  }
415
- }
416
- }
417
- function clearDeviceActiveTypography(editor, currentDeviceId) {
418
- var _a, _b;
419
- if (!editor.selection)
420
- return;
421
- const textNodes = slate.Editor.nodes(editor, {
422
- at: editor.selection,
423
- match: (node) => slate.Text.isText(node)
437
+ if (atRef.current) {
438
+ const textNodes = Array.from(slate.Editor.nodes(editor, {
439
+ at: atRef.current,
440
+ match: (node) => slate.Text.isText(node) && node.slice === true
441
+ }));
442
+ for (const [node, path] of textNodes) {
443
+ if (slate.Text.isText(node)) {
444
+ const typography = __spreadProps(__spreadValues({}, node.typography), {
445
+ style: []
446
+ });
447
+ slate.Transforms.setNodes(editor, {
448
+ typography
449
+ }, { at: path });
450
+ }
451
+ }
452
+ }
453
+ atRef.unref();
424
454
  });
425
- for (const [node, path] of textNodes) {
426
- if (slate.Text.isText(node)) {
427
- const typography = __spreadProps(__spreadValues({}, node.typography), {
428
- style: (_b = (_a = node == null ? void 0 : node.typography) == null ? void 0 : _a.style.filter(({ deviceId }) => deviceId !== currentDeviceId)) != null ? _b : []
429
- });
455
+ }
456
+ function clearDeviceActiveTypography(editor, currentDeviceId, options) {
457
+ slate.Editor.withoutNormalizing(editor, () => {
458
+ var _a, _b, _c;
459
+ const at = (_a = options == null ? void 0 : options.at) != null ? _a : editor.selection;
460
+ if (!at)
461
+ return;
462
+ const atRef = slate.Editor.rangeRef(editor, at);
463
+ if (atRef.current) {
430
464
  slate.Transforms.setNodes(editor, {
431
- typography
432
- }, { at: path });
465
+ slice: true
466
+ }, {
467
+ at: atRef.current,
468
+ match: (node) => slate.Text.isText(node),
469
+ split: slate.Range.isExpanded(atRef.current)
470
+ });
433
471
  }
434
- }
472
+ if (atRef.current) {
473
+ const textNodes = Array.from(slate.Editor.nodes(editor, {
474
+ at: atRef.current,
475
+ match: (node) => slate.Text.isText(node) && node.slice === true
476
+ }));
477
+ for (const [node, path] of textNodes) {
478
+ if (slate.Text.isText(node)) {
479
+ const typography = __spreadProps(__spreadValues({}, node.typography), {
480
+ style: (_c = (_b = node == null ? void 0 : node.typography) == null ? void 0 : _b.style.filter(({ deviceId }) => deviceId !== currentDeviceId)) != null ? _c : []
481
+ });
482
+ slate.Transforms.setNodes(editor, {
483
+ typography
484
+ }, { at: path });
485
+ }
486
+ }
487
+ }
488
+ atRef.unref();
489
+ });
435
490
  }
436
- function detachActiveTypography(editor, value) {
437
- if (!editor.selection)
438
- return;
439
- const textNodes = Array.from(slate.Editor.nodes(editor, {
440
- at: editor.selection,
441
- match: (node) => slate.Text.isText(node)
442
- }));
443
- textNodes.forEach(([node, path]) => {
444
- if (slate.Text.isText(node)) {
491
+ function detachActiveTypography(editor, value, options) {
492
+ slate.Editor.withoutNormalizing(editor, () => {
493
+ var _a;
494
+ const at = (_a = options == null ? void 0 : options.at) != null ? _a : editor.selection;
495
+ if (!at)
496
+ return;
497
+ const atRef = slate.Editor.rangeRef(editor, at);
498
+ if (atRef.current) {
445
499
  slate.Transforms.setNodes(editor, {
446
- typography: {
447
- style: value
500
+ slice: true
501
+ }, {
502
+ at: atRef.current,
503
+ match: (node) => slate.Text.isText(node),
504
+ split: slate.Range.isExpanded(atRef.current)
505
+ });
506
+ }
507
+ if (atRef.current) {
508
+ const textNodes = Array.from(slate.Editor.nodes(editor, {
509
+ at: atRef.current,
510
+ match: (node) => slate.Text.isText(node) && node.slice === true
511
+ }));
512
+ for (const [node, path] of textNodes) {
513
+ if (slate.Text.isText(node)) {
514
+ slate.Transforms.setNodes(editor, {
515
+ typography: {
516
+ style: value
517
+ }
518
+ }, { at: path });
448
519
  }
449
- }, { at: path });
520
+ }
450
521
  }
522
+ atRef.unref();
451
523
  });
452
524
  }
453
- function setActiveTypographyId(editor, id) {
525
+ function setActiveTypographyId(editor, id, options) {
526
+ var _a;
527
+ const at = (_a = options == null ? void 0 : options.at) != null ? _a : editor.selection;
528
+ if (!at)
529
+ return;
454
530
  slate.Transforms.setNodes(editor, {
455
531
  typography: {
456
532
  id,
457
533
  style: []
458
534
  }
459
535
  }, {
460
- match: (node) => slate.Text.isText(node)
536
+ at,
537
+ match: (node) => slate.Text.isText(node),
538
+ split: slate.Range.isExpanded(at)
461
539
  });
462
540
  }
463
- function setActiveTypographyStyle(editor, deviceId, prop, value) {
464
- var _a, _b;
465
- if (!editor.selection)
466
- return;
467
- const textNodes = slate.Editor.nodes(editor, {
468
- at: editor.selection,
469
- match: (node) => slate.Text.isText(node)
470
- });
471
- for (const [node, path] of textNodes) {
472
- if (slate.Text.isText(node)) {
473
- const deviceOverrides = (_b = (_a = node == null ? void 0 : node.typography) == null ? void 0 : _a.style.filter(leaf.isDeviceOverride)) != null ? _b : [];
474
- const deviceStyle = responsiveStyle.findDeviceOverride(deviceOverrides, deviceId, (v) => v) || { value: {} };
475
- const nextDeviceStyle = {
476
- deviceId,
477
- value: __spreadProps(__spreadValues({}, deviceStyle.value), { [prop]: value })
478
- };
479
- const nextTypography = __spreadProps(__spreadValues({}, node.typography), {
480
- style: [...deviceOverrides.filter((v) => v.deviceId !== deviceId), nextDeviceStyle]
481
- });
541
+ function setActiveTypographyStyle(editor, breakpoints, deviceId, prop, value, options) {
542
+ slate.Editor.withoutNormalizing(editor, () => {
543
+ var _a, _b, _c;
544
+ const at = (_a = options == null ? void 0 : options.at) != null ? _a : editor.selection;
545
+ if (!at)
546
+ return;
547
+ const atRef = slate.Editor.rangeRef(editor, at);
548
+ if (atRef.current) {
482
549
  slate.Transforms.setNodes(editor, {
483
- typography: nextTypography
484
- }, { at: path });
550
+ slice: true
551
+ }, {
552
+ at: atRef.current,
553
+ match: (node) => slate.Text.isText(node),
554
+ split: slate.Range.isExpanded(atRef.current)
555
+ });
485
556
  }
486
- }
557
+ if (atRef.current) {
558
+ const textNodes = Array.from(slate.Editor.nodes(editor, {
559
+ at: atRef.current,
560
+ match: (node) => slate.Text.isText(node) && node.slice === true
561
+ }));
562
+ for (const [node, path] of textNodes) {
563
+ if (slate.Text.isText(node)) {
564
+ const deviceOverrides = (_c = (_b = node == null ? void 0 : node.typography) == null ? void 0 : _b.style) != null ? _c : [];
565
+ const deviceStyle = state_breakpoints.findBreakpointOverride(breakpoints, deviceOverrides, deviceId, (v) => v) || {
566
+ value: {}
567
+ };
568
+ const nextDeviceStyle = {
569
+ deviceId,
570
+ value: __spreadProps(__spreadValues({}, deviceStyle.value), { [prop]: value })
571
+ };
572
+ const nextTypography = __spreadProps(__spreadValues({}, node.typography), {
573
+ style: [...deviceOverrides.filter((v) => v.deviceId !== deviceId), nextDeviceStyle]
574
+ });
575
+ slate.Transforms.setNodes(editor, {
576
+ typography: nextTypography
577
+ }, { at: path });
578
+ }
579
+ }
580
+ }
581
+ atRef.unref();
582
+ });
487
583
  }
488
584
  const Typography = {
489
585
  setActiveTypographyId,
@@ -501,22 +597,67 @@ function withTypography(editor) {
501
597
  slate.Transforms.unsetNodes(editor, "typography", { at: normalizationPath });
502
598
  return;
503
599
  }
600
+ if (slate.Text.isText(normalizationNode) && (normalizationNode == null ? void 0 : normalizationNode.slice) != null) {
601
+ slate.Transforms.unsetNodes(editor, "slice", { at: normalizationPath });
602
+ return;
603
+ }
504
604
  normalizeNode(entry);
505
605
  };
506
606
  return editor;
507
607
  }
508
- function setBlockKeyForDevice(editor, deviceId, key, value) {
509
- var _a;
510
- if (!editor.selection)
511
- return;
512
- const rootElements = slate.Editor.nodes(editor, {
513
- match: (_, path) => path.length === 1,
514
- at: slate.Editor.unhangRange(editor, editor.selection)
608
+ function unhangRange(editor, range) {
609
+ let [start, end] = slate.Range.edges(range);
610
+ if (start.offset !== 0 || end.offset !== 0 || slate.Range.isCollapsed(range)) {
611
+ return range;
612
+ }
613
+ const endBlock = slate.Editor.above(editor, {
614
+ at: end,
615
+ match: (n) => slate.Element.isElement(n) && slate.Editor.isBlock(editor, n)
515
616
  });
617
+ const blockPath = endBlock ? endBlock[1] : [];
618
+ const first = slate.Editor.start(editor, start);
619
+ const before = { anchor: first, focus: end };
620
+ let skip = true;
621
+ for (const [node, path] of slate.Editor.nodes(editor, {
622
+ at: before,
623
+ match: slate.Text.isText,
624
+ reverse: true
625
+ })) {
626
+ if (skip) {
627
+ skip = false;
628
+ continue;
629
+ }
630
+ if (node.text !== "" || slate.Path.isBefore(path, blockPath)) {
631
+ end = { path, offset: node.text.length };
632
+ break;
633
+ }
634
+ }
635
+ return { anchor: start, focus: end };
636
+ }
637
+ function getSelection(editor) {
638
+ if (editor.selection)
639
+ return unhangRange(editor, editor.selection);
640
+ return {
641
+ anchor: slate.Editor.start(editor, []),
642
+ focus: slate.Editor.end(editor, [])
643
+ };
644
+ }
645
+ function getBlocksInSelection(editor) {
646
+ return Array.from(slate.Editor.nodes(editor, {
647
+ at: getSelection(editor),
648
+ match: (node) => ElementUtils.isRootBlock(node)
649
+ })).filter((entry) => ElementUtils.isRootBlock(entry[0]));
650
+ }
651
+ function setBlockKeyForDevice(editor, breakpoints, deviceId, key, value, options) {
652
+ var _a, _b;
653
+ const at = (_a = options == null ? void 0 : options.at) != null ? _a : editor.selection;
654
+ if (!at)
655
+ return;
656
+ const rootElements = getBlocksInSelection(editor);
516
657
  for (const [node, path] of rootElements) {
517
658
  if (ElementUtils.isBlock(node)) {
518
- const deviceValues = (_a = node[key]) != null ? _a : [];
519
- const currentDeviceValue = responsiveStyle.findDeviceOverride(deviceValues, deviceId, (v) => v);
659
+ const deviceValues = (_b = node[key]) != null ? _b : [];
660
+ const currentDeviceValue = state_breakpoints.findBreakpointOverride(breakpoints, deviceValues, deviceId, (v) => v);
520
661
  const nextDeviceValue = __spreadProps(__spreadValues({}, currentDeviceValue), {
521
662
  deviceId,
522
663
  value
@@ -529,12 +670,7 @@ function setBlockKeyForDevice(editor, deviceId, key, value) {
529
670
  }
530
671
  function clearBlockKeyForDevice(editor, deviceId, key) {
531
672
  var _a;
532
- if (!editor.selection)
533
- return;
534
- const rootElements = slate.Editor.nodes(editor, {
535
- match: (_, path) => path.length === 1,
536
- at: slate.Editor.unhangRange(editor, editor.selection)
537
- });
673
+ const rootElements = getBlocksInSelection(editor);
538
674
  for (const [node, path] of rootElements) {
539
675
  if (ElementUtils.isBlock(node)) {
540
676
  const deviceOverrides = (_a = node[key]) != null ? _a : [];
@@ -544,12 +680,29 @@ function clearBlockKeyForDevice(editor, deviceId, key) {
544
680
  }
545
681
  }
546
682
  }
683
+ function wrapInline(editor, inline) {
684
+ slate.Transforms.wrapNodes(editor, inline, {
685
+ at: getSelection(editor),
686
+ split: true
687
+ });
688
+ }
689
+ function unwrapInline(editor, type) {
690
+ slate.Transforms.unwrapNodes(editor, {
691
+ match: (node) => ElementUtils.isInline(node) && node.type === type,
692
+ at: getSelection(editor)
693
+ });
694
+ }
547
695
  const Block = {
548
696
  setBlockKeyForDevice,
549
- clearBlockKeyForDevice
697
+ clearBlockKeyForDevice,
698
+ wrapInline,
699
+ unwrapInline
550
700
  };
551
701
  function withBlock(editor) {
552
702
  const { normalizeNode } = editor;
703
+ editor.isInline = (entry) => {
704
+ return ElementUtils.isInline(entry);
705
+ };
553
706
  editor.normalizeNode = (entry) => {
554
707
  var _a;
555
708
  const [normalizationNode, normalizationPath] = entry;