@makeswift/runtime 0.9.3 → 0.9.5

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 (168) hide show
  1. package/dist/Box.cjs.js +4 -4
  2. package/dist/Box.es.js +5 -5
  3. package/dist/Button.cjs.js +4 -4
  4. package/dist/Button.es.js +5 -5
  5. package/dist/Carousel.cjs.js +4 -4
  6. package/dist/Carousel.es.js +5 -5
  7. package/dist/Countdown.cjs.js +2 -2
  8. package/dist/Countdown.es.js +3 -3
  9. package/dist/Divider.cjs.js +4 -4
  10. package/dist/Divider.es.js +5 -5
  11. package/dist/Embed.cjs.js +1 -0
  12. package/dist/Embed.cjs.js.map +1 -1
  13. package/dist/Embed.es.js +2 -1
  14. package/dist/Embed.es.js.map +1 -1
  15. package/dist/Form.cjs.js +2 -2
  16. package/dist/Form.es.js +3 -3
  17. package/dist/Image.cjs.js +2 -2
  18. package/dist/Image.es.js +3 -3
  19. package/dist/LiveProvider.cjs.js +5 -5
  20. package/dist/LiveProvider.es.js +5 -5
  21. package/dist/Navigation.cjs.js +3 -3
  22. package/dist/Navigation.es.js +4 -4
  23. package/dist/PreviewProvider.cjs.js +9 -8
  24. package/dist/PreviewProvider.cjs.js.map +1 -1
  25. package/dist/PreviewProvider.es.js +11 -10
  26. package/dist/PreviewProvider.es.js.map +1 -1
  27. package/dist/ReadOnlyText.cjs.js +4 -5
  28. package/dist/ReadOnlyText.cjs.js.map +1 -1
  29. package/dist/ReadOnlyText.es.js +4 -5
  30. package/dist/ReadOnlyText.es.js.map +1 -1
  31. package/dist/ReadOnlyTextV2.cjs.js +17 -19
  32. package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
  33. package/dist/ReadOnlyTextV2.es.js +16 -18
  34. package/dist/ReadOnlyTextV2.es.js.map +1 -1
  35. package/dist/Root.cjs.js +2 -2
  36. package/dist/Root.es.js +3 -3
  37. package/dist/SocialLinks.cjs.js +4 -4
  38. package/dist/SocialLinks.es.js +5 -5
  39. package/dist/Text.cjs.js +2 -2
  40. package/dist/Text.es.js +2 -2
  41. package/dist/Video.cjs.js +1 -0
  42. package/dist/Video.cjs.js.map +1 -1
  43. package/dist/Video.es.js +2 -1
  44. package/dist/Video.es.js.map +1 -1
  45. package/dist/actions.cjs.js +467 -3
  46. package/dist/actions.cjs.js.map +1 -1
  47. package/dist/actions.es.js +467 -4
  48. package/dist/actions.es.js.map +1 -1
  49. package/dist/box-model.cjs.js +1 -0
  50. package/dist/box-model.cjs.js.map +1 -1
  51. package/dist/box-model.es.js +1 -0
  52. package/dist/box-model.es.js.map +1 -1
  53. package/dist/builder.cjs.js +1 -0
  54. package/dist/builder.cjs.js.map +1 -1
  55. package/dist/builder.es.js +1 -0
  56. package/dist/builder.es.js.map +1 -1
  57. package/dist/components.cjs.js +2 -2
  58. package/dist/components.es.js +2 -2
  59. package/dist/control-serialization.cjs.js +1 -0
  60. package/dist/control-serialization.cjs.js.map +1 -1
  61. package/dist/control-serialization.es.js +2 -1
  62. package/dist/control-serialization.es.js.map +1 -1
  63. package/dist/controls.cjs.js +19 -14
  64. package/dist/controls.cjs.js.map +1 -1
  65. package/dist/controls.es.js +3 -2
  66. package/dist/controls.es.js.map +1 -1
  67. package/dist/index.cjs.js +182 -60
  68. package/dist/index.cjs.js.map +1 -1
  69. package/dist/index.cjs10.js +25 -13
  70. package/dist/index.cjs10.js.map +1 -1
  71. package/dist/index.cjs2.js +1 -0
  72. package/dist/index.cjs2.js.map +1 -1
  73. package/dist/index.cjs5.js +96 -5
  74. package/dist/index.cjs5.js.map +1 -1
  75. package/dist/index.cjs8.js +2 -2
  76. package/dist/index.cjs9.js +5 -5
  77. package/dist/index.es.js +170 -49
  78. package/dist/index.es.js.map +1 -1
  79. package/dist/index.es10.js +26 -14
  80. package/dist/index.es10.js.map +1 -1
  81. package/dist/index.es2.js +2 -1
  82. package/dist/index.es2.js.map +1 -1
  83. package/dist/index.es4.js +1 -1
  84. package/dist/index.es5.js +88 -2
  85. package/dist/index.es5.js.map +1 -1
  86. package/dist/index.es6.js +1 -1
  87. package/dist/index.es8.js +2 -2
  88. package/dist/index.es9.js +6 -6
  89. package/dist/main.cjs.js +1 -0
  90. package/dist/main.cjs.js.map +1 -1
  91. package/dist/main.es.js +1 -0
  92. package/dist/main.es.js.map +1 -1
  93. package/dist/next.cjs.js +2 -2
  94. package/dist/next.es.js +3 -3
  95. package/dist/prop-controllers.cjs.js +1 -0
  96. package/dist/prop-controllers.cjs.js.map +1 -1
  97. package/dist/prop-controllers.es.js +1 -0
  98. package/dist/prop-controllers.es.js.map +1 -1
  99. package/dist/react-page.cjs.js +114 -31
  100. package/dist/react-page.cjs.js.map +1 -1
  101. package/dist/react-page.es.js +111 -12
  102. package/dist/react-page.es.js.map +1 -1
  103. package/dist/react.cjs.js +2 -2
  104. package/dist/react.es.js +2 -2
  105. package/dist/slate.cjs.js +22 -75
  106. package/dist/slate.cjs.js.map +1 -1
  107. package/dist/slate.es.js +25 -79
  108. package/dist/slate.es.js.map +1 -1
  109. package/dist/state/breakpoints.cjs.js +1 -0
  110. package/dist/state/breakpoints.cjs.js.map +1 -1
  111. package/dist/state/breakpoints.es.js +1 -0
  112. package/dist/state/breakpoints.es.js.map +1 -1
  113. package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
  114. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  115. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +1 -1
  116. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts +0 -17
  117. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +1 -1
  118. package/dist/types/src/components/page/Page.d.ts.map +1 -1
  119. package/dist/types/src/controls/control.d.ts +3 -2
  120. package/dist/types/src/controls/control.d.ts.map +1 -1
  121. package/dist/types/src/controls/index.d.ts +1 -0
  122. package/dist/types/src/controls/index.d.ts.map +1 -1
  123. package/dist/types/src/controls/list.d.ts +2 -0
  124. package/dist/types/src/controls/list.d.ts.map +1 -1
  125. package/dist/types/src/controls/shape.d.ts +2 -0
  126. package/dist/types/src/controls/shape.d.ts.map +1 -1
  127. package/dist/types/src/controls/typography.d.ts +31 -0
  128. package/dist/types/src/controls/typography.d.ts.map +1 -0
  129. package/dist/types/src/next/client.d.ts +9 -1
  130. package/dist/types/src/next/client.d.ts.map +1 -1
  131. package/dist/types/src/next/index.d.ts.map +1 -1
  132. package/dist/types/src/prop-controllers/descriptors.d.ts +6 -3
  133. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  134. package/dist/types/src/prop-controllers/introspection.d.ts +1 -1
  135. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
  136. package/dist/types/src/runtimes/react/controls/control.d.ts +3 -2
  137. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
  138. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  139. package/dist/types/src/runtimes/react/controls/typography.d.ts +21 -0
  140. package/dist/types/src/runtimes/react/controls/typography.d.ts.map +1 -0
  141. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
  142. package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
  143. package/dist/types/src/slate/TypographyPlugin/index.d.ts +9 -0
  144. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  145. package/dist/types/src/state/actions.d.ts +7 -7
  146. package/dist/types/src/state/actions.d.ts.map +1 -1
  147. package/dist/types/src/state/modules/locales.d.ts +6 -7
  148. package/dist/types/src/state/modules/locales.d.ts.map +1 -1
  149. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  150. package/dist/types/src/state/react-page.d.ts +3 -1
  151. package/dist/types/src/state/react-page.d.ts.map +1 -1
  152. package/dist/types/types/locale.d.ts +9 -0
  153. package/dist/types/types/locale.d.ts.map +1 -0
  154. package/dist/types.cjs2.js +13 -16
  155. package/dist/types.cjs2.js.map +1 -1
  156. package/dist/types.es2.js +10 -13
  157. package/dist/types.es2.js.map +1 -1
  158. package/dist/{text-input.cjs.js → typography.cjs.js} +9 -1
  159. package/dist/typography.cjs.js.map +1 -0
  160. package/dist/{text-input.es.js → typography.es.js} +8 -2
  161. package/dist/typography.es.js.map +1 -0
  162. package/package.json +1 -1
  163. package/dist/leaf.cjs.js +0 -182
  164. package/dist/leaf.cjs.js.map +0 -1
  165. package/dist/leaf.es.js +0 -179
  166. package/dist/leaf.es.js.map +0 -1
  167. package/dist/text-input.cjs.js.map +0 -1
  168. package/dist/text-input.es.js.map +0 -1
package/dist/react.cjs.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  var actions = require("./actions.cjs.js");
4
4
  var next = require("./index.cjs.js");
5
+ require("zod");
5
6
  require("react");
6
7
  require("use-sync-external-store/shim/with-selector");
7
8
  require("next/dynamic");
@@ -14,7 +15,7 @@ require("@emotion/serialize");
14
15
  require("@emotion/utils");
15
16
  require("slate");
16
17
  require("react/jsx-runtime");
17
- require("./text-input.cjs.js");
18
+ require("./typography.cjs.js");
18
19
  require("./combobox.cjs.js");
19
20
  require("use-sync-external-store/shim");
20
21
  require("./types.cjs.js");
@@ -25,7 +26,6 @@ require("scroll-into-view-if-needed");
25
26
  require("react-dom");
26
27
  require("html-react-parser");
27
28
  require("next/head");
28
- require("zod");
29
29
  require("@emotion/server/create-instance");
30
30
  require("next/document");
31
31
  require("cors");
package/dist/react.es.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { A as ActionTypes, c as changeDocument } from "./actions.es.js";
2
2
  export { D as DocumentReference, E as Element, P as PageProvider, a as ReactRuntime, R as RuntimeProvider, u as useIsInBuilder, b as usePageId } from "./index.es.js";
3
+ import "zod";
3
4
  import "react";
4
5
  import "use-sync-external-store/shim/with-selector";
5
6
  import "next/dynamic";
@@ -12,7 +13,7 @@ import "@emotion/serialize";
12
13
  import "@emotion/utils";
13
14
  import "slate";
14
15
  import "react/jsx-runtime";
15
- import "./text-input.es.js";
16
+ import "./typography.es.js";
16
17
  import "./combobox.es.js";
17
18
  import "use-sync-external-store/shim";
18
19
  import "./types.es.js";
@@ -23,7 +24,6 @@ import "scroll-into-view-if-needed";
23
24
  import "react-dom";
24
25
  import "html-react-parser";
25
26
  import "next/head";
26
- import "zod";
27
27
  import "@emotion/server/create-instance";
28
28
  import "next/document";
29
29
  import "cors";
package/dist/slate.cjs.js CHANGED
@@ -24,21 +24,22 @@ var types = require("./types.cjs2.js");
24
24
  var index$1 = require("./index.cjs6.js");
25
25
  var index$2 = require("./index.cjs7.js");
26
26
  var reactPage = require("./react-page.cjs.js");
27
- var textInput = require("./text-input.cjs.js");
27
+ require("./actions.cjs.js");
28
+ var typography = require("./typography.cjs.js");
28
29
  var slate = require("slate");
29
30
  var next = require("./index.cjs.js");
30
- require("react");
31
- var css = require("@emotion/css");
32
- require("@emotion/serialize");
33
- require("@emotion/utils");
34
31
  var jsxRuntime = require("react/jsx-runtime");
35
32
  var index$3 = require("./index.cjs3.js");
33
+ var css = require("@emotion/css");
36
34
  require("./state/breakpoints.cjs.js");
37
- require("./actions.cjs.js");
35
+ require("zod");
38
36
  require("is-hotkey");
39
37
  require("slate-react");
40
38
  require("redux");
41
39
  require("redux-thunk");
40
+ require("react");
41
+ require("@emotion/serialize");
42
+ require("@emotion/utils");
42
43
  require("use-sync-external-store/shim/with-selector");
43
44
  require("next/dynamic");
44
45
  require("./combobox.cjs.js");
@@ -51,7 +52,6 @@ require("scroll-into-view-if-needed");
51
52
  require("react-dom");
52
53
  require("html-react-parser");
53
54
  require("next/head");
54
- require("zod");
55
55
  require("@emotion/server/create-instance");
56
56
  require("next/document");
57
57
  require("cors");
@@ -63,68 +63,13 @@ require("./constants.cjs.js");
63
63
  require("uuid");
64
64
  require("corporate-ipsum");
65
65
  require("next/link");
66
- function setResponsiveValue(editor, key, value, options) {
67
- slate.Editor.withoutNormalizing(editor, () => {
68
- const at = types.getSelection(editor);
69
- if (!at)
70
- return;
71
- const atRef = slate.Editor.rangeRef(editor, at);
72
- if (atRef.current) {
73
- slate.Transforms.setNodes(editor, {
74
- slice: true
75
- }, {
76
- at: atRef.current,
77
- match: options.match,
78
- split: options.split
79
- });
80
- }
81
- if (atRef.current) {
82
- const nodesToUpdate = Array.from(slate.Editor.nodes(editor, {
83
- at: atRef.current,
84
- match: (node, path) => options.match(node, path) && node.slice === true
85
- }));
86
- for (const [, path] of nodesToUpdate) {
87
- slate.Transforms.setNodes(editor, {
88
- [key]: value
89
- }, { at: path });
90
- }
91
- }
92
- atRef.unref();
93
- });
94
- }
95
- function getResponsiveValue(editor, key, options) {
96
- const matchingValues = Array.from(slate.Editor.nodes(editor, {
97
- at: types.getSelection(editor),
98
- match: options == null ? void 0 : options.match
99
- })).filter(([node, path]) => options.match(node, path)).map(([node]) => node[key]);
100
- const value = matchingValues.length === 0 ? void 0 : matchingValues.reduce((a, b) => next.deepEqual(a, b) ? b : void 0);
101
- return value;
102
- }
103
- function normalizeResponsiveValue(editor, key, options) {
104
- return (entry) => {
105
- const [node, path] = entry;
106
- if (!options.match(node, path)) {
107
- return false;
108
- }
109
- const responsiveValue = node == null ? void 0 : node[key];
110
- if (Array.isArray(responsiveValue) && responsiveValue.length === 0) {
111
- slate.Transforms.unsetNodes(editor, key, { at: path });
112
- return true;
113
- }
114
- if ((node == null ? void 0 : node.slice) != null) {
115
- slate.Transforms.unsetNodes(editor, "slice", { at: path });
116
- return true;
117
- }
118
- return false;
119
- };
120
- }
121
66
  const TEXT_ALIGN_KEY = "textAlign";
122
67
  const withTextAlign = (editor) => {
123
68
  const {
124
69
  normalizeNode
125
70
  } = editor;
126
71
  editor.normalizeNode = (entry) => {
127
- if (normalizeResponsiveValue(editor, TEXT_ALIGN_KEY, {
72
+ if (index.normalizeResponsiveValue(editor, TEXT_ALIGN_KEY, {
128
73
  match: types.ElementUtils.isRootBlock
129
74
  })(entry)) {
130
75
  return;
@@ -137,22 +82,22 @@ function TextAlignPlugin() {
137
82
  return reactPage.createRichTextV2Plugin({
138
83
  control: {
139
84
  definition: reactPage.unstable_StyleV2({
140
- type: textInput.unstable_IconRadioGroup({
85
+ type: typography.unstable_IconRadioGroup({
141
86
  label: "Alignment",
142
87
  options: [{
143
- icon: textInput.unstable_IconRadioGroupIcon.TextAlignLeft,
88
+ icon: typography.unstable_IconRadioGroupIcon.TextAlignLeft,
144
89
  label: "Left Align",
145
90
  value: "left"
146
91
  }, {
147
- icon: textInput.unstable_IconRadioGroupIcon.TextAlignCenter,
92
+ icon: typography.unstable_IconRadioGroupIcon.TextAlignCenter,
148
93
  label: "Center Align",
149
94
  value: "center"
150
95
  }, {
151
- icon: textInput.unstable_IconRadioGroupIcon.TextAlignRight,
96
+ icon: typography.unstable_IconRadioGroupIcon.TextAlignRight,
152
97
  label: "Right Align",
153
98
  value: "right"
154
99
  }, {
155
- icon: textInput.unstable_IconRadioGroupIcon.TextAlignJustify,
100
+ icon: typography.unstable_IconRadioGroupIcon.TextAlignJustify,
156
101
  label: "Justify",
157
102
  value: "justify"
158
103
  }],
@@ -164,11 +109,11 @@ function TextAlignPlugin() {
164
109
  };
165
110
  }
166
111
  }),
167
- onChange: (editor, value) => setResponsiveValue(editor, TEXT_ALIGN_KEY, value, {
112
+ onChange: (editor, value) => index.setResponsiveValue(editor, TEXT_ALIGN_KEY, value, {
168
113
  match: types.ElementUtils.isRootBlock,
169
114
  split: false
170
115
  }),
171
- getValue: (editor) => getResponsiveValue(editor, TEXT_ALIGN_KEY, {
116
+ getValue: (editor) => index.getResponsiveValue(editor, TEXT_ALIGN_KEY, {
172
117
  match: types.ElementUtils.isRootBlock
173
118
  }),
174
119
  getElementValue: (element) => {
@@ -200,12 +145,12 @@ function ColorPlugin() {
200
145
  }
201
146
  }),
202
147
  onChange: (editor, value) => {
203
- setResponsiveValue(editor, COLOR_KEY, value, {
148
+ index.setResponsiveValue(editor, COLOR_KEY, value, {
204
149
  match: slate.Text.isText,
205
150
  split: true
206
151
  });
207
152
  },
208
- getValue: (editor) => getResponsiveValue(editor, COLOR_KEY, {
153
+ getValue: (editor) => index.getResponsiveValue(editor, COLOR_KEY, {
209
154
  match: slate.Text.isText
210
155
  }),
211
156
  getLeafValue: (text) => {
@@ -217,7 +162,7 @@ function ColorPlugin() {
217
162
  normalizeNode
218
163
  } = editor;
219
164
  editor.normalizeNode = (entry) => {
220
- if (normalizeResponsiveValue(editor, COLOR_KEY, {
165
+ if (index.normalizeResponsiveValue(editor, COLOR_KEY, {
221
166
  match: slate.Text.isText
222
167
  })(entry)) {
223
168
  return;
@@ -229,7 +174,7 @@ function ColorPlugin() {
229
174
  renderLeaf: (renderLeaf, className) => (props) => {
230
175
  return renderLeaf(__spreadProps(__spreadValues({}, props), {
231
176
  leaf: __spreadProps(__spreadValues({}, props.leaf), {
232
- className
177
+ className: `${props.leaf.className} ${className}`
233
178
  })
234
179
  }));
235
180
  }
@@ -285,7 +230,7 @@ const withInline = (editor) => {
285
230
  function InlinePlugin() {
286
231
  return reactPage.createRichTextV2Plugin({
287
232
  control: {
288
- definition: textInput.unstable_IconRadioGroup({
233
+ definition: typography.unstable_IconRadioGroup({
289
234
  label: "Inline",
290
235
  options: types.supportedInlineOptions
291
236
  }),
@@ -420,7 +365,9 @@ function LinkPlugin() {
420
365
  }
421
366
  });
422
367
  }
368
+ exports.TYPOGRAPHY_KEY = index.TYPOGRAPHY_KEY;
423
369
  exports.TypographyActions = index.TypographyActions;
370
+ exports.TypographyPlugin = index.TypographyPlugin;
424
371
  exports.withTypography = index.withTypography;
425
372
  exports.BlockActions = types.BlockActions;
426
373
  exports.BlockPlugin = types.BlockPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"slate.cjs.js","sources":["../src/slate/utils/responsive.ts","../src/slate/TextAlignPlugin/index.tsx","../src/slate/ColorPlugin/index.tsx","../src/slate/InlinePlugin/getValue.ts","../src/slate/InlinePlugin/onChange.ts","../src/slate/InlinePlugin/index.tsx","../src/slate/LinkPlugin/types.ts","../src/slate/LinkPlugin/getValue.ts","../src/slate/LinkPlugin/onChange.ts","../src/slate/LinkPlugin/index.tsx"],"sourcesContent":["import { Editor, Transforms, NodeMatch, Descendant, NodeEntry } from 'slate'\nimport { getSelection } from '../selectors'\nimport deepEqual from '../../utils/deepEqual'\n\ntype SetResponsiveValueOptions<T extends Descendant> = {\n match: NodeMatch<T>\n split: boolean\n}\n\nexport function setResponsiveValue<T extends Descendant, K extends keyof T>(\n editor: Editor,\n key: K,\n value: T[K] | undefined,\n options: SetResponsiveValueOptions<T>,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = getSelection(editor)\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes<Descendant>(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: options.match,\n split: options.split,\n },\n )\n }\n\n if (atRef.current) {\n const nodesToUpdate = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: (node, path) => options.match(node, path) && node.slice === true,\n }),\n )\n\n for (const [, path] of nodesToUpdate) {\n Transforms.setNodes(\n editor,\n {\n [key]: value,\n },\n { at: path },\n )\n }\n }\n\n atRef.unref()\n })\n}\n\ntype GetResponsiveValueOptions<T extends Descendant> = {\n match: NodeMatch<T>\n}\n\nexport function getResponsiveValue<T extends Descendant, K extends keyof T>(\n editor: Editor,\n key: K,\n options: GetResponsiveValueOptions<T>,\n): T[K] | undefined {\n const matchingValues = Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: options?.match,\n }),\n )\n .filter(([node, path]) => options.match(node, path))\n .map(([node]) => node[key]) as (T[K] | undefined)[]\n\n const value =\n matchingValues.length === 0\n ? undefined\n : matchingValues.reduce((a, b) => (deepEqual(a, b) ? b : undefined))\n\n return value\n}\n\ntype NormalizeResponsiveValueOptions<T extends Descendant> = {\n match: NodeMatch<T>\n}\n\nexport function normalizeResponsiveValue<T extends Descendant, K extends keyof T & string>(\n editor: Editor,\n key: K,\n options: NormalizeResponsiveValueOptions<T>,\n) {\n return (entry: NodeEntry) => {\n const [node, path] = entry\n\n if (!options.match(node, path)) {\n return false\n }\n\n const responsiveValue = node?.[key]\n\n if (Array.isArray(responsiveValue) && responsiveValue.length === 0) {\n Transforms.unsetNodes(editor, key, { at: path })\n return true\n }\n\n if (node?.slice != null) {\n Transforms.unsetNodes(editor, 'slice', { at: path })\n return true\n }\n\n return false\n }\n}\n","import { Editor, Element } from 'slate'\nimport {\n createRichTextV2Plugin,\n unstable_IconRadioGroup,\n unstable_IconRadioGroupIcon,\n unstable_StyleV2,\n} from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { TextAlignProperty } from 'csstype'\nimport {\n getResponsiveValue,\n normalizeResponsiveValue,\n setResponsiveValue,\n} from '../utils/responsive'\n\nconst TEXT_ALIGN_KEY = 'textAlign'\n\nexport const withTextAlign = (editor: Editor) => {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n if (\n normalizeResponsiveValue(editor, TEXT_ALIGN_KEY, { match: ElementUtils.isRootBlock })(entry)\n ) {\n return\n }\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport function TextAlignPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_StyleV2({\n type: unstable_IconRadioGroup({\n label: 'Alignment',\n options: [\n {\n icon: unstable_IconRadioGroupIcon.TextAlignLeft,\n label: 'Left Align',\n value: 'left',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignCenter,\n label: 'Center Align',\n value: 'center',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignRight,\n label: 'Right Align',\n value: 'right',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignJustify,\n label: 'Justify',\n value: 'justify',\n },\n ],\n defaultValue: 'left',\n }),\n getStyle(textAlign: TextAlignProperty) {\n return { textAlign }\n },\n }),\n onChange: (editor, value) =>\n setResponsiveValue(editor, TEXT_ALIGN_KEY, value, {\n match: ElementUtils.isRootBlock,\n split: false,\n }),\n getValue: editor =>\n getResponsiveValue(editor, TEXT_ALIGN_KEY, { match: ElementUtils.isRootBlock }),\n getElementValue: (element: Element) => {\n return ElementUtils.isRootBlock(element) ? element.textAlign : undefined\n },\n },\n withPlugin: withTextAlign,\n renderElement: (renderElement, className) => props => {\n return renderElement({\n ...props,\n element: {\n ...props.element,\n className,\n },\n })\n },\n })\n}\n","import { Editor, Text } from 'slate'\nimport {\n Color,\n createRichTextV2Plugin,\n unstable_StyleV2,\n ColorControlDefinition,\n} from '../../controls'\nimport { ControlDefinitionValue } from '../../runtimes/react/controls/control'\nimport {\n getResponsiveValue,\n normalizeResponsiveValue,\n setResponsiveValue,\n} from '../utils/responsive'\n\nexport const COLOR_KEY = 'color'\n\nexport function ColorPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_StyleV2({\n type: Color({\n label: 'Color',\n }),\n getStyle(color: ControlDefinitionValue<ColorControlDefinition>) {\n return { color }\n },\n }),\n onChange: (editor, value) => {\n setResponsiveValue(editor, COLOR_KEY, value, {\n match: Text.isText,\n split: true,\n })\n },\n getValue: editor => getResponsiveValue(editor, COLOR_KEY, { match: Text.isText }),\n getLeafValue: (text: Text) => {\n return Text.isText(text) ? text?.color : undefined\n },\n },\n withPlugin: (editor: Editor) => {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n if (normalizeResponsiveValue(editor, COLOR_KEY, { match: Text.isText })(entry)) {\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n },\n renderLeaf: (renderLeaf, className) => props => {\n return renderLeaf({\n ...props,\n leaf: {\n ...props.leaf,\n className,\n },\n })\n },\n })\n}\n","import { Editor, NodeEntry, Text } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport deepEqual from '../../utils/deepEqual'\nimport { SupportedInline, isSupportedInlineType, isSupportedInlineEntry } from './types'\n\nexport function getSupportedInlinesAndTextInSelection(\n editor: Editor,\n): NodeEntry<SupportedInline | Text>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node =>\n (ElementUtils.isInline(node) && isSupportedInlineType(node.type)) || Text.isText(node),\n }),\n ) as NodeEntry<Text | SupportedInline>[]\n}\n\nexport const getValue = (editor: Editor) => {\n const roots = filterForSubtreeRoots(getSupportedInlinesAndTextInSelection(editor))\n\n const areAllRootsSupportedInlineTypesOrText = roots.every(\n entry => isSupportedInlineEntry(entry) || Text.isText(entry[0]),\n )\n\n if (!areAllRootsSupportedInlineTypesOrText) return undefined\n\n const matchingValues = roots.filter(isSupportedInlineEntry).map(([node]) => node)\n\n return matchingValues.reduce((a, b) => (deepEqual(a, b) ? b : undefined), matchingValues.at(0))\n ?.type\n}\n","import { getSupportedInlinesAndTextInSelection } from './getValue'\nimport { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { unwrapInline } from '../BlockPlugin/unwrapInline'\nimport { wrapInline } from '../BlockPlugin/wrapInline'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport {\n SupportedInlineType,\n isSupportedInlineEntry,\n isSupportedInlineType,\n supportedInlineOptions,\n} from './types'\n\nexport const onChange = (editor: Editor, value: SupportedInlineType) => {\n function unwrapAllSupportedTypes() {\n supportedInlineOptions.forEach(({ value: optionValue }) => unwrapInline(editor, optionValue))\n }\n\n function unwrapAllInlines() {\n Transforms.unwrapNodes(editor, {\n match: node => ElementUtils.isInline(node),\n at: getSelection(editor),\n })\n }\n\n if (value == null) return unwrapAllSupportedTypes()\n\n if (!isSupportedInlineType(value)) return\n\n const roots = filterForSubtreeRoots(getSupportedInlinesAndTextInSelection(editor))\n const root = roots.at(0)\n\n if (\n roots.length === 1 &&\n root != null &&\n isSupportedInlineEntry(root) &&\n root[0].type === value\n ) {\n unwrapInline(editor, value)\n } else {\n unwrapAllInlines()\n wrapInline(editor, { type: value, children: [] })\n }\n}\n","import { Editor, Element } from 'slate'\nimport { RenderElement, createRichTextV2Plugin, unstable_IconRadioGroup } from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType } from '../types'\nimport { RenderElementProps } from 'slate-react'\nimport { supportedInlineOptions } from './types'\nimport { onChange } from './onChange'\nimport { getValue } from './getValue'\n\nexport const withInline = (editor: Editor) => {\n const { isInline } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry) && isInline(entry)\n }\n\n return editor\n}\n\nexport function InlinePlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_IconRadioGroup({\n label: 'Inline',\n options: supportedInlineOptions,\n }),\n onChange,\n getValue,\n getElementValue: (element: Element) => {\n return ElementUtils.isInline(element) ? element.type : undefined\n },\n },\n withPlugin: withInline,\n renderElement: renderElement => props => {\n return <InlinePluginComponent {...props} renderElement={renderElement} />\n },\n })\n}\n\nfunction InlinePluginComponent({\n element,\n attributes,\n children,\n renderElement,\n}: RenderElementProps & { renderElement: RenderElement }) {\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\n default:\n return (\n <>\n {renderElement({\n element,\n attributes,\n children,\n })}\n </>\n )\n }\n}\n","import { Node, NodeEntry } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType, LinkElement } from '../types'\n\nexport function isLinkElement(node: Node): node is LinkElement {\n return ElementUtils.isInline(node) && node.type === InlineType.Link\n}\n\nexport function isLinkEntry(inline: NodeEntry<Node>): inline is NodeEntry<LinkElement> {\n return ElementUtils.isInline(inline[0]) && inline[0].type === InlineType.Link\n}\n","import { Editor, NodeEntry, Text } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { LinkElement } from '../types'\nimport deepEqual from '../../utils/deepEqual'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport { isLinkElement } from './types'\n\nexport function getLinksAndTextInSelection(editor: Editor): NodeEntry<LinkElement | Text>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => (ElementUtils.isInline(node) && isLinkElement(node)) || Text.isText(node),\n }),\n ) as NodeEntry<Text | LinkElement>[]\n}\n\nexport const getValue = (editor: Editor) => {\n const roots = filterForSubtreeRoots(getLinksAndTextInSelection(editor))\n\n const areAllRootsLinks = roots.every(([root]) => isLinkElement(root) || Text.isText(root))\n\n if (!areAllRootsLinks) return undefined\n\n const matchingValues = roots.map(([node]) => node).filter(isLinkElement)\n\n return matchingValues.reduce((a, b) => (deepEqual(a, b) ? b : undefined), matchingValues.at(0))\n ?.link\n}\n","import { Editor, Transforms } from 'slate'\nimport { LinkControlData } from '../../controls'\nimport { unwrapInline } from '../BlockPlugin/unwrapInline'\nimport { wrapInline } from '../BlockPlugin/wrapInline'\nimport { InlineType } from '../types'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport { isLinkEntry } from './types'\nimport { getLinksAndTextInSelection } from './getValue'\n\nexport const onChange = (editor: Editor, value: LinkControlData) => {\n if (value == null) return unwrapInline(editor, InlineType.Link)\n\n const roots = filterForSubtreeRoots(getLinksAndTextInSelection(editor))\n const root = roots.at(0)\n\n // If the root of our selection is a link we just want to modify it\n if (roots.length === 1 && root != null && isLinkEntry(root)) {\n Transforms.setNodes(\n editor,\n {\n link: value,\n },\n { at: root[1] },\n )\n }\n // In all other cases we want to remove all existing links and wrap the current selection in a new link\n else {\n unwrapInline(editor, InlineType.Link)\n wrapInline(editor, { type: InlineType.Link, link: value, children: [] })\n }\n}\n","import { Editor, Element } from 'slate'\nimport { Link, RenderElement, createRichTextV2Plugin } from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType } from '../types'\nimport { RenderElementProps } from 'slate-react'\nimport { useStyle } from '../../runtimes/react/use-style'\nimport { Link as LinkComponent } from '../../components/shared/Link'\nimport { cx } from '@emotion/css'\nimport { isLinkElement } from './types'\nimport { onChange } from './onChange'\nimport { getValue } from './getValue'\n\nexport const withLink = (editor: Editor) => {\n const { isInline } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry) && isInline(entry)\n }\n\n return editor\n}\n\nfunction InlinePluginComponent({\n element,\n attributes,\n children,\n renderElement,\n}: RenderElementProps & { renderElement: RenderElement }) {\n const linkStyle = useStyle({ textDecoration: 'none' })\n switch (element.type) {\n case InlineType.Link:\n return (\n <LinkComponent\n {...attributes}\n link={element.link}\n className={cx(linkStyle, element.className)}\n >\n {children}\n </LinkComponent>\n )\n\n default:\n return renderElement({\n element,\n attributes,\n children,\n })\n }\n}\n\nexport function LinkPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: Link({\n label: 'On Click',\n }),\n onChange,\n getValue,\n getElementValue: (element: Element) => {\n return ElementUtils.isInline(element) && isLinkElement(element) ? element.link : undefined\n },\n },\n withPlugin: withLink,\n renderElement: renderElement => props => {\n return <InlinePluginComponent {...props} renderElement={renderElement} />\n },\n })\n}\n"],"names":["Editor","getSelection","Transforms","deepEqual","TEXT_ALIGN_KEY","withTextAlign","editor","normalizeNode","entry","normalizeResponsiveValue","match","ElementUtils","isRootBlock","createRichTextV2Plugin","control","definition","unstable_StyleV2","type","unstable_IconRadioGroup","label","options","icon","unstable_IconRadioGroupIcon","TextAlignLeft","value","TextAlignCenter","TextAlignRight","TextAlignJustify","defaultValue","getStyle","textAlign","onChange","setResponsiveValue","split","getValue","getResponsiveValue","getElementValue","element","undefined","withPlugin","renderElement","className","props","COLOR_KEY","Color","color","Text","isText","getLeafValue","text","renderLeaf","leaf","isSupportedInlineType","filterForSubtreeRoots","isSupportedInlineEntry","supportedInlineOptions","unwrapInline","wrapInline","withInline","isInline","InlinePluginComponent","attributes","children","InlineType","Code","SuperScript","SubScript","_Fragment","withLink","linkStyle","useStyle","textDecoration","Link","LinkComponent","link","cx","isLinkElement"],"mappings":"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"}
1
+ {"version":3,"file":"slate.cjs.js","sources":["../src/slate/TextAlignPlugin/index.tsx","../src/slate/ColorPlugin/index.tsx","../src/slate/InlinePlugin/getValue.ts","../src/slate/InlinePlugin/onChange.ts","../src/slate/InlinePlugin/index.tsx","../src/slate/LinkPlugin/types.ts","../src/slate/LinkPlugin/getValue.ts","../src/slate/LinkPlugin/onChange.ts","../src/slate/LinkPlugin/index.tsx"],"sourcesContent":["import { Editor, Element } from 'slate'\nimport {\n createRichTextV2Plugin,\n unstable_IconRadioGroup,\n unstable_IconRadioGroupIcon,\n unstable_StyleV2,\n} from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { TextAlignProperty } from 'csstype'\nimport {\n getResponsiveValue,\n normalizeResponsiveValue,\n setResponsiveValue,\n} from '../utils/responsive'\n\nconst TEXT_ALIGN_KEY = 'textAlign'\n\nexport const withTextAlign = (editor: Editor) => {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n if (\n normalizeResponsiveValue(editor, TEXT_ALIGN_KEY, { match: ElementUtils.isRootBlock })(entry)\n ) {\n return\n }\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport function TextAlignPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_StyleV2({\n type: unstable_IconRadioGroup({\n label: 'Alignment',\n options: [\n {\n icon: unstable_IconRadioGroupIcon.TextAlignLeft,\n label: 'Left Align',\n value: 'left',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignCenter,\n label: 'Center Align',\n value: 'center',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignRight,\n label: 'Right Align',\n value: 'right',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignJustify,\n label: 'Justify',\n value: 'justify',\n },\n ],\n defaultValue: 'left',\n }),\n getStyle(textAlign: TextAlignProperty) {\n return { textAlign }\n },\n }),\n onChange: (editor, value) =>\n setResponsiveValue(editor, TEXT_ALIGN_KEY, value, {\n match: ElementUtils.isRootBlock,\n split: false,\n }),\n getValue: editor =>\n getResponsiveValue(editor, TEXT_ALIGN_KEY, { match: ElementUtils.isRootBlock }),\n getElementValue: (element: Element) => {\n return ElementUtils.isRootBlock(element) ? element.textAlign : undefined\n },\n },\n withPlugin: withTextAlign,\n renderElement: (renderElement, className) => props => {\n return renderElement({\n ...props,\n element: {\n ...props.element,\n className,\n },\n })\n },\n })\n}\n","import { Editor, Text } from 'slate'\nimport {\n Color,\n createRichTextV2Plugin,\n unstable_StyleV2,\n ColorControlDefinition,\n} from '../../controls'\nimport { ControlDefinitionValue } from '../../runtimes/react/controls/control'\nimport {\n getResponsiveValue,\n normalizeResponsiveValue,\n setResponsiveValue,\n} from '../utils/responsive'\n\nexport const COLOR_KEY = 'color'\n\nexport function ColorPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_StyleV2({\n type: Color({\n label: 'Color',\n }),\n getStyle(color: ControlDefinitionValue<ColorControlDefinition>) {\n return { color }\n },\n }),\n onChange: (editor, value) => {\n setResponsiveValue(editor, COLOR_KEY, value, {\n match: Text.isText,\n split: true,\n })\n },\n getValue: editor => getResponsiveValue(editor, COLOR_KEY, { match: Text.isText }),\n getLeafValue: (text: Text) => {\n return Text.isText(text) ? text?.color : undefined\n },\n },\n withPlugin: (editor: Editor) => {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n if (normalizeResponsiveValue(editor, COLOR_KEY, { match: Text.isText })(entry)) {\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n },\n renderLeaf: (renderLeaf, className) => props => {\n return renderLeaf({\n ...props,\n leaf: {\n ...props.leaf,\n className: `${props.leaf.className} ${className}`,\n },\n })\n },\n })\n}\n","import { Editor, NodeEntry, Text } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport deepEqual from '../../utils/deepEqual'\nimport { SupportedInline, isSupportedInlineType, isSupportedInlineEntry } from './types'\n\nexport function getSupportedInlinesAndTextInSelection(\n editor: Editor,\n): NodeEntry<SupportedInline | Text>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node =>\n (ElementUtils.isInline(node) && isSupportedInlineType(node.type)) || Text.isText(node),\n }),\n ) as NodeEntry<Text | SupportedInline>[]\n}\n\nexport const getValue = (editor: Editor) => {\n const roots = filterForSubtreeRoots(getSupportedInlinesAndTextInSelection(editor))\n\n const areAllRootsSupportedInlineTypesOrText = roots.every(\n entry => isSupportedInlineEntry(entry) || Text.isText(entry[0]),\n )\n\n if (!areAllRootsSupportedInlineTypesOrText) return undefined\n\n const matchingValues = roots.filter(isSupportedInlineEntry).map(([node]) => node)\n\n return matchingValues.reduce((a, b) => (deepEqual(a, b) ? b : undefined), matchingValues.at(0))\n ?.type\n}\n","import { getSupportedInlinesAndTextInSelection } from './getValue'\nimport { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { unwrapInline } from '../BlockPlugin/unwrapInline'\nimport { wrapInline } from '../BlockPlugin/wrapInline'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport {\n SupportedInlineType,\n isSupportedInlineEntry,\n isSupportedInlineType,\n supportedInlineOptions,\n} from './types'\n\nexport const onChange = (editor: Editor, value: SupportedInlineType) => {\n function unwrapAllSupportedTypes() {\n supportedInlineOptions.forEach(({ value: optionValue }) => unwrapInline(editor, optionValue))\n }\n\n function unwrapAllInlines() {\n Transforms.unwrapNodes(editor, {\n match: node => ElementUtils.isInline(node),\n at: getSelection(editor),\n })\n }\n\n if (value == null) return unwrapAllSupportedTypes()\n\n if (!isSupportedInlineType(value)) return\n\n const roots = filterForSubtreeRoots(getSupportedInlinesAndTextInSelection(editor))\n const root = roots.at(0)\n\n if (\n roots.length === 1 &&\n root != null &&\n isSupportedInlineEntry(root) &&\n root[0].type === value\n ) {\n unwrapInline(editor, value)\n } else {\n unwrapAllInlines()\n wrapInline(editor, { type: value, children: [] })\n }\n}\n","import { Editor, Element } from 'slate'\nimport { RenderElement, createRichTextV2Plugin, unstable_IconRadioGroup } from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType } from '../types'\nimport { RenderElementProps } from 'slate-react'\nimport { supportedInlineOptions } from './types'\nimport { onChange } from './onChange'\nimport { getValue } from './getValue'\n\nexport const withInline = (editor: Editor) => {\n const { isInline } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry) && isInline(entry)\n }\n\n return editor\n}\n\nexport function InlinePlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_IconRadioGroup({\n label: 'Inline',\n options: supportedInlineOptions,\n }),\n onChange,\n getValue,\n getElementValue: (element: Element) => {\n return ElementUtils.isInline(element) ? element.type : undefined\n },\n },\n withPlugin: withInline,\n renderElement: renderElement => props => {\n return <InlinePluginComponent {...props} renderElement={renderElement} />\n },\n })\n}\n\nfunction InlinePluginComponent({\n element,\n attributes,\n children,\n renderElement,\n}: RenderElementProps & { renderElement: RenderElement }) {\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\n default:\n return (\n <>\n {renderElement({\n element,\n attributes,\n children,\n })}\n </>\n )\n }\n}\n","import { Node, NodeEntry } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType, LinkElement } from '../types'\n\nexport function isLinkElement(node: Node): node is LinkElement {\n return ElementUtils.isInline(node) && node.type === InlineType.Link\n}\n\nexport function isLinkEntry(inline: NodeEntry<Node>): inline is NodeEntry<LinkElement> {\n return ElementUtils.isInline(inline[0]) && inline[0].type === InlineType.Link\n}\n","import { Editor, NodeEntry, Text } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { LinkElement } from '../types'\nimport deepEqual from '../../utils/deepEqual'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport { isLinkElement } from './types'\n\nexport function getLinksAndTextInSelection(editor: Editor): NodeEntry<LinkElement | Text>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => (ElementUtils.isInline(node) && isLinkElement(node)) || Text.isText(node),\n }),\n ) as NodeEntry<Text | LinkElement>[]\n}\n\nexport const getValue = (editor: Editor) => {\n const roots = filterForSubtreeRoots(getLinksAndTextInSelection(editor))\n\n const areAllRootsLinks = roots.every(([root]) => isLinkElement(root) || Text.isText(root))\n\n if (!areAllRootsLinks) return undefined\n\n const matchingValues = roots.map(([node]) => node).filter(isLinkElement)\n\n return matchingValues.reduce((a, b) => (deepEqual(a, b) ? b : undefined), matchingValues.at(0))\n ?.link\n}\n","import { Editor, Transforms } from 'slate'\nimport { LinkControlData } from '../../controls'\nimport { unwrapInline } from '../BlockPlugin/unwrapInline'\nimport { wrapInline } from '../BlockPlugin/wrapInline'\nimport { InlineType } from '../types'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport { isLinkEntry } from './types'\nimport { getLinksAndTextInSelection } from './getValue'\n\nexport const onChange = (editor: Editor, value: LinkControlData) => {\n if (value == null) return unwrapInline(editor, InlineType.Link)\n\n const roots = filterForSubtreeRoots(getLinksAndTextInSelection(editor))\n const root = roots.at(0)\n\n // If the root of our selection is a link we just want to modify it\n if (roots.length === 1 && root != null && isLinkEntry(root)) {\n Transforms.setNodes(\n editor,\n {\n link: value,\n },\n { at: root[1] },\n )\n }\n // In all other cases we want to remove all existing links and wrap the current selection in a new link\n else {\n unwrapInline(editor, InlineType.Link)\n wrapInline(editor, { type: InlineType.Link, link: value, children: [] })\n }\n}\n","import { Editor, Element } from 'slate'\nimport { Link, RenderElement, createRichTextV2Plugin } from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType } from '../types'\nimport { RenderElementProps } from 'slate-react'\nimport { useStyle } from '../../runtimes/react/use-style'\nimport { Link as LinkComponent } from '../../components/shared/Link'\nimport { cx } from '@emotion/css'\nimport { isLinkElement } from './types'\nimport { onChange } from './onChange'\nimport { getValue } from './getValue'\n\nexport const withLink = (editor: Editor) => {\n const { isInline } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry) && isInline(entry)\n }\n\n return editor\n}\n\nfunction InlinePluginComponent({\n element,\n attributes,\n children,\n renderElement,\n}: RenderElementProps & { renderElement: RenderElement }) {\n const linkStyle = useStyle({ textDecoration: 'none' })\n switch (element.type) {\n case InlineType.Link:\n return (\n <LinkComponent\n {...attributes}\n link={element.link}\n className={cx(linkStyle, element.className)}\n >\n {children}\n </LinkComponent>\n )\n\n default:\n return renderElement({\n element,\n attributes,\n children,\n })\n }\n}\n\nexport function LinkPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: Link({\n label: 'On Click',\n }),\n onChange,\n getValue,\n getElementValue: (element: Element) => {\n return ElementUtils.isInline(element) && isLinkElement(element) ? element.link : undefined\n },\n },\n withPlugin: withLink,\n renderElement: renderElement => props => {\n return <InlinePluginComponent {...props} renderElement={renderElement} />\n },\n })\n}\n"],"names":["TEXT_ALIGN_KEY","withTextAlign","editor","normalizeNode","entry","normalizeResponsiveValue","match","ElementUtils","isRootBlock","createRichTextV2Plugin","control","definition","unstable_StyleV2","type","unstable_IconRadioGroup","label","options","icon","unstable_IconRadioGroupIcon","TextAlignLeft","value","TextAlignCenter","TextAlignRight","TextAlignJustify","defaultValue","getStyle","textAlign","onChange","setResponsiveValue","split","getValue","getResponsiveValue","getElementValue","element","undefined","withPlugin","renderElement","className","props","COLOR_KEY","Color","color","Text","isText","getLeafValue","text","renderLeaf","leaf","Editor","getSelection","isSupportedInlineType","filterForSubtreeRoots","isSupportedInlineEntry","deepEqual","supportedInlineOptions","unwrapInline","Transforms","wrapInline","withInline","isInline","InlinePluginComponent","attributes","children","InlineType","Code","SuperScript","SubScript","_Fragment","withLink","linkStyle","useStyle","textDecoration","Link","LinkComponent","link","cx","isLinkElement"],"mappings":"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"}
package/dist/slate.es.js CHANGED
@@ -5,40 +5,42 @@ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
6
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
7
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b2) => {
9
- for (var prop in b2 || (b2 = {}))
10
- if (__hasOwnProp.call(b2, prop))
11
- __defNormalProp(a, prop, b2[prop]);
8
+ var __spreadValues = (a2, b3) => {
9
+ for (var prop in b3 || (b3 = {}))
10
+ if (__hasOwnProp.call(b3, prop))
11
+ __defNormalProp(a2, prop, b3[prop]);
12
12
  if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b2)) {
14
- if (__propIsEnum.call(b2, prop))
15
- __defNormalProp(a, prop, b2[prop]);
13
+ for (var prop of __getOwnPropSymbols(b3)) {
14
+ if (__propIsEnum.call(b3, prop))
15
+ __defNormalProp(a2, prop, b3[prop]);
16
16
  }
17
- return a;
17
+ return a2;
18
18
  };
19
- var __spreadProps = (a, b2) => __defProps(a, __getOwnPropDescs(b2));
20
- export { T as TypographyActions, w as withTypography } from "./index.es5.js";
21
- import { g as getSelection, E as ElementUtils, f as filterForSubtreeRoots, i as isSupportedInlineType, a as isSupportedInlineEntry, u as unwrapInline, w as wrapInline, s as supportedInlineOptions } from "./types.es2.js";
19
+ var __spreadProps = (a2, b3) => __defProps(a2, __getOwnPropDescs(b3));
20
+ import { n as normalizeResponsiveValue, s as setResponsiveValue, g as getResponsiveValue } from "./index.es5.js";
21
+ export { a as TYPOGRAPHY_KEY, T as TypographyActions, b as TypographyPlugin, w as withTypography } from "./index.es5.js";
22
+ import { E as ElementUtils, f as filterForSubtreeRoots, g as getSelection, i as isSupportedInlineType, a as isSupportedInlineEntry, u as unwrapInline, w as wrapInline, s as supportedInlineOptions } from "./types.es2.js";
22
23
  export { B as BlockActions, c as BlockPlugin, L as ListActions, o as onKeyDown, b as withBlock } from "./types.es2.js";
23
24
  export { I as InlineModePlugin, w as withInlineMode } from "./index.es6.js";
24
25
  export { w as withBuilder } from "./index.es7.js";
25
- import { b6 as createRichTextV2Plugin, aW as unstable_StyleV2, aw as Color, ba as InlineType, aC as Link, Z as useStyle } from "./react-page.es.js";
26
- export { bd as BlockTextAlignment, bc as BlockType, ba as InlineType, bb as RootBlockType } from "./react-page.es.js";
27
- import { c as unstable_IconRadioGroup, u as unstable_IconRadioGroupIcon } from "./text-input.es.js";
28
- import { Transforms, Editor, Text } from "slate";
26
+ import { b9 as createRichTextV2Plugin, aZ as unstable_StyleV2, ax as Color, bd as InlineType, aD as Link, U as useStyle } from "./react-page.es.js";
27
+ export { bg as BlockTextAlignment, bf as BlockType, bd as InlineType, be as RootBlockType } from "./react-page.es.js";
28
+ import "./actions.es.js";
29
+ import { d as unstable_IconRadioGroup, u as unstable_IconRadioGroupIcon } from "./typography.es.js";
30
+ import { Text, Editor, Transforms } from "slate";
29
31
  import { K as deepEqual } from "./index.es.js";
30
- import "react";
31
- import { cx } from "@emotion/css";
32
- import "@emotion/serialize";
33
- import "@emotion/utils";
34
32
  import { jsx, Fragment } from "react/jsx-runtime";
35
33
  import { L as Link$1 } from "./index.es3.js";
34
+ import { cx } from "@emotion/css";
36
35
  import "./state/breakpoints.es.js";
37
- import "./actions.es.js";
36
+ import "zod";
38
37
  import "is-hotkey";
39
38
  import "slate-react";
40
39
  import "redux";
41
40
  import "redux-thunk";
41
+ import "react";
42
+ import "@emotion/serialize";
43
+ import "@emotion/utils";
42
44
  import "use-sync-external-store/shim/with-selector";
43
45
  import "next/dynamic";
44
46
  import "./combobox.es.js";
@@ -51,7 +53,6 @@ import "scroll-into-view-if-needed";
51
53
  import "react-dom";
52
54
  import "html-react-parser";
53
55
  import "next/head";
54
- import "zod";
55
56
  import "@emotion/server/create-instance";
56
57
  import "next/document";
57
58
  import "cors";
@@ -63,61 +64,6 @@ import "./constants.es.js";
63
64
  import "uuid";
64
65
  import "corporate-ipsum";
65
66
  import "next/link";
66
- function setResponsiveValue(editor, key, value, options) {
67
- Editor.withoutNormalizing(editor, () => {
68
- const at = getSelection(editor);
69
- if (!at)
70
- return;
71
- const atRef = Editor.rangeRef(editor, at);
72
- if (atRef.current) {
73
- Transforms.setNodes(editor, {
74
- slice: true
75
- }, {
76
- at: atRef.current,
77
- match: options.match,
78
- split: options.split
79
- });
80
- }
81
- if (atRef.current) {
82
- const nodesToUpdate = Array.from(Editor.nodes(editor, {
83
- at: atRef.current,
84
- match: (node, path) => options.match(node, path) && node.slice === true
85
- }));
86
- for (const [, path] of nodesToUpdate) {
87
- Transforms.setNodes(editor, {
88
- [key]: value
89
- }, { at: path });
90
- }
91
- }
92
- atRef.unref();
93
- });
94
- }
95
- function getResponsiveValue(editor, key, options) {
96
- const matchingValues = Array.from(Editor.nodes(editor, {
97
- at: getSelection(editor),
98
- match: options == null ? void 0 : options.match
99
- })).filter(([node, path]) => options.match(node, path)).map(([node]) => node[key]);
100
- const value = matchingValues.length === 0 ? void 0 : matchingValues.reduce((a, b2) => deepEqual(a, b2) ? b2 : void 0);
101
- return value;
102
- }
103
- function normalizeResponsiveValue(editor, key, options) {
104
- return (entry) => {
105
- const [node, path] = entry;
106
- if (!options.match(node, path)) {
107
- return false;
108
- }
109
- const responsiveValue = node == null ? void 0 : node[key];
110
- if (Array.isArray(responsiveValue) && responsiveValue.length === 0) {
111
- Transforms.unsetNodes(editor, key, { at: path });
112
- return true;
113
- }
114
- if ((node == null ? void 0 : node.slice) != null) {
115
- Transforms.unsetNodes(editor, "slice", { at: path });
116
- return true;
117
- }
118
- return false;
119
- };
120
- }
121
67
  const TEXT_ALIGN_KEY = "textAlign";
122
68
  const withTextAlign = (editor) => {
123
69
  const {
@@ -229,7 +175,7 @@ function ColorPlugin() {
229
175
  renderLeaf: (renderLeaf, className) => (props) => {
230
176
  return renderLeaf(__spreadProps(__spreadValues({}, props), {
231
177
  leaf: __spreadProps(__spreadValues({}, props.leaf), {
232
- className
178
+ className: `${props.leaf.className} ${className}`
233
179
  })
234
180
  }));
235
181
  }
@@ -248,7 +194,7 @@ const getValue$1 = (editor) => {
248
194
  if (!areAllRootsSupportedInlineTypesOrText)
249
195
  return void 0;
250
196
  const matchingValues = roots.filter(isSupportedInlineEntry).map(([node]) => node);
251
- return (_a = matchingValues.reduce((a, b2) => deepEqual(a, b2) ? b2 : void 0, matchingValues.at(0))) == null ? void 0 : _a.type;
197
+ return (_a = matchingValues.reduce((a2, b3) => deepEqual(a2, b3) ? b3 : void 0, matchingValues.at(0))) == null ? void 0 : _a.type;
252
198
  };
253
199
  const onChange$1 = (editor, value) => {
254
200
  function unwrapAllSupportedTypes() {
@@ -351,7 +297,7 @@ const getValue = (editor) => {
351
297
  if (!areAllRootsLinks)
352
298
  return void 0;
353
299
  const matchingValues = roots.map(([node]) => node).filter(isLinkElement);
354
- return (_a = matchingValues.reduce((a, b2) => deepEqual(a, b2) ? b2 : void 0, matchingValues.at(0))) == null ? void 0 : _a.link;
300
+ return (_a = matchingValues.reduce((a2, b3) => deepEqual(a2, b3) ? b3 : void 0, matchingValues.at(0))) == null ? void 0 : _a.link;
355
301
  };
356
302
  const onChange = (editor, value) => {
357
303
  if (value == null)