@measured/puck 0.21.0-canary.e491598a → 0.21.0-canary.eb8ea5ce

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.
package/dist/rsc.js CHANGED
@@ -34,6 +34,12 @@ var __objRest = (source, exclude) => {
34
34
  }
35
35
  return target;
36
36
  };
37
+ var __esm = (fn, res) => function __init() {
38
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
39
+ };
40
+ var __commonJS = (cb, mod) => function __require() {
41
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
42
+ };
37
43
  var __export = (target, all) => {
38
44
  for (var name in all)
39
45
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -76,6 +82,276 @@ var __async = (__this, __arguments, generator) => {
76
82
  });
77
83
  };
78
84
 
85
+ // ../tsup-config/react-import.js
86
+ var import_react;
87
+ var init_react_import = __esm({
88
+ "../tsup-config/react-import.js"() {
89
+ "use strict";
90
+ import_react = __toESM(require("react"));
91
+ }
92
+ });
93
+
94
+ // ../../node_modules/classnames/index.js
95
+ var require_classnames = __commonJS({
96
+ "../../node_modules/classnames/index.js"(exports2, module2) {
97
+ "use strict";
98
+ init_react_import();
99
+ (function() {
100
+ "use strict";
101
+ var hasOwn = {}.hasOwnProperty;
102
+ function classNames() {
103
+ var classes = "";
104
+ for (var i = 0; i < arguments.length; i++) {
105
+ var arg = arguments[i];
106
+ if (arg) {
107
+ classes = appendClass(classes, parseValue(arg));
108
+ }
109
+ }
110
+ return classes;
111
+ }
112
+ function parseValue(arg) {
113
+ if (typeof arg === "string" || typeof arg === "number") {
114
+ return arg;
115
+ }
116
+ if (typeof arg !== "object") {
117
+ return "";
118
+ }
119
+ if (Array.isArray(arg)) {
120
+ return classNames.apply(null, arg);
121
+ }
122
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
123
+ return arg.toString();
124
+ }
125
+ var classes = "";
126
+ for (var key in arg) {
127
+ if (hasOwn.call(arg, key) && arg[key]) {
128
+ classes = appendClass(classes, key);
129
+ }
130
+ }
131
+ return classes;
132
+ }
133
+ function appendClass(value, newClass) {
134
+ if (!newClass) {
135
+ return value;
136
+ }
137
+ if (value) {
138
+ return value + " " + newClass;
139
+ }
140
+ return value + newClass;
141
+ }
142
+ if (typeof module2 !== "undefined" && module2.exports) {
143
+ classNames.default = classNames;
144
+ module2.exports = classNames;
145
+ } else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
146
+ define("classnames", [], function() {
147
+ return classNames;
148
+ });
149
+ } else {
150
+ window.classNames = classNames;
151
+ }
152
+ })();
153
+ }
154
+ });
155
+
156
+ // lib/get-class-name-factory.ts
157
+ var import_classnames, getClassNameFactory, get_class_name_factory_default;
158
+ var init_get_class_name_factory = __esm({
159
+ "lib/get-class-name-factory.ts"() {
160
+ "use strict";
161
+ init_react_import();
162
+ import_classnames = __toESM(require_classnames());
163
+ getClassNameFactory = (rootClass, styles, config = { baseClass: "" }) => (options = {}) => {
164
+ if (typeof options === "string") {
165
+ const descendant = options;
166
+ const style = styles[`${rootClass}-${descendant}`];
167
+ if (style) {
168
+ return config.baseClass + styles[`${rootClass}-${descendant}`] || "";
169
+ }
170
+ return "";
171
+ } else if (typeof options === "object") {
172
+ const modifiers = options;
173
+ const prefixedModifiers = {};
174
+ for (let modifier in modifiers) {
175
+ prefixedModifiers[styles[`${rootClass}--${modifier}`]] = modifiers[modifier];
176
+ }
177
+ const c = styles[rootClass];
178
+ return config.baseClass + (0, import_classnames.default)(__spreadValues({
179
+ [c]: !!c
180
+ }, prefixedModifiers));
181
+ } else {
182
+ return config.baseClass + styles[rootClass] || "";
183
+ }
184
+ };
185
+ get_class_name_factory_default = getClassNameFactory;
186
+ }
187
+ });
188
+
189
+ // css-module:/home/runner/work/puck/puck/packages/core/components/RichTextEditor/styles.module.css/#css-module-data
190
+ var init_css_module_data = __esm({
191
+ "css-module:/home/runner/work/puck/puck/packages/core/components/RichTextEditor/styles.module.css/#css-module-data"() {
192
+ }
193
+ });
194
+
195
+ // css-module:/home/runner/work/puck/puck/packages/core/components/RichTextEditor/styles.module.css#css-module
196
+ var styles_module_default;
197
+ var init_styles_module = __esm({
198
+ "css-module:/home/runner/work/puck/puck/packages/core/components/RichTextEditor/styles.module.css#css-module"() {
199
+ "use strict";
200
+ init_react_import();
201
+ init_css_module_data();
202
+ styles_module_default = { "RichTextEditor": "_RichTextEditor_1elol_1", "RichTextEditor--editor": "_RichTextEditor--editor_1elol_50", "RichTextEditor--disabled": "_RichTextEditor--disabled_1elol_106", "RichTextEditor--isActive": "_RichTextEditor--isActive_1elol_110", "RichTextEditor-menu": "_RichTextEditor-menu_1elol_116" };
203
+ }
204
+ });
205
+
206
+ // components/RichTextEditor/extension.ts
207
+ var import_core, import_extension_blockquote, import_extension_bold, import_extension_code, import_extension_code_block, import_extension_document, import_extension_hard_break, import_extension_heading, import_extension_horizontal_rule, import_extension_italic, import_extension_link, import_extension_list, import_extension_paragraph, import_extension_strike, import_extension_text, import_extension_text_align, import_extension_underline, defaultPuckRichTextOptions, PuckRichText;
208
+ var init_extension = __esm({
209
+ "components/RichTextEditor/extension.ts"() {
210
+ "use strict";
211
+ init_react_import();
212
+ import_core = require("@tiptap/core");
213
+ import_extension_blockquote = require("@tiptap/extension-blockquote");
214
+ import_extension_bold = require("@tiptap/extension-bold");
215
+ import_extension_code = require("@tiptap/extension-code");
216
+ import_extension_code_block = require("@tiptap/extension-code-block");
217
+ import_extension_document = require("@tiptap/extension-document");
218
+ import_extension_hard_break = require("@tiptap/extension-hard-break");
219
+ import_extension_heading = require("@tiptap/extension-heading");
220
+ import_extension_horizontal_rule = require("@tiptap/extension-horizontal-rule");
221
+ import_extension_italic = require("@tiptap/extension-italic");
222
+ import_extension_link = require("@tiptap/extension-link");
223
+ import_extension_list = require("@tiptap/extension-list");
224
+ import_extension_paragraph = require("@tiptap/extension-paragraph");
225
+ import_extension_strike = require("@tiptap/extension-strike");
226
+ import_extension_text = require("@tiptap/extension-text");
227
+ import_extension_text_align = __toESM(require("@tiptap/extension-text-align"));
228
+ import_extension_underline = require("@tiptap/extension-underline");
229
+ defaultPuckRichTextOptions = {
230
+ textAlign: {
231
+ types: ["heading", "paragraph"]
232
+ }
233
+ };
234
+ PuckRichText = import_core.Extension.create({
235
+ name: "puckRichText",
236
+ addExtensions() {
237
+ const extensions = [];
238
+ const options = __spreadValues(__spreadValues({}, this.options), defaultPuckRichTextOptions);
239
+ if (options.bold !== false) {
240
+ extensions.push(import_extension_bold.Bold.configure(options.bold));
241
+ }
242
+ if (options.blockquote !== false) {
243
+ extensions.push(import_extension_blockquote.Blockquote.configure(options.blockquote));
244
+ }
245
+ if (options.bulletList !== false) {
246
+ extensions.push(import_extension_list.BulletList.configure(options.bulletList));
247
+ }
248
+ if (options.code !== false) {
249
+ extensions.push(import_extension_code.Code.configure(options.code));
250
+ }
251
+ if (options.codeBlock !== false) {
252
+ extensions.push(import_extension_code_block.CodeBlock.configure(options.codeBlock));
253
+ }
254
+ if (options.document !== false) {
255
+ extensions.push(import_extension_document.Document.configure(options.document));
256
+ }
257
+ if (options.hardBreak !== false) {
258
+ extensions.push(import_extension_hard_break.HardBreak.configure(options.hardBreak));
259
+ }
260
+ if (options.heading !== false) {
261
+ extensions.push(import_extension_heading.Heading.configure(options.heading));
262
+ }
263
+ if (options.horizontalRule !== false) {
264
+ extensions.push(import_extension_horizontal_rule.HorizontalRule.configure(options.horizontalRule));
265
+ }
266
+ if (options.italic !== false) {
267
+ extensions.push(import_extension_italic.Italic.configure(options.italic));
268
+ }
269
+ if (options.listItem !== false) {
270
+ extensions.push(import_extension_list.ListItem.configure(options.listItem));
271
+ }
272
+ if (options.listKeymap !== false) {
273
+ extensions.push(import_extension_list.ListKeymap.configure(options == null ? void 0 : options.listKeymap));
274
+ }
275
+ if (options.link !== false) {
276
+ extensions.push(import_extension_link.Link.configure(options == null ? void 0 : options.link));
277
+ }
278
+ if (options.orderedList !== false) {
279
+ extensions.push(import_extension_list.OrderedList.configure(options.orderedList));
280
+ }
281
+ if (options.paragraph !== false) {
282
+ extensions.push(import_extension_paragraph.Paragraph.configure(options.paragraph));
283
+ }
284
+ if (options.strike !== false) {
285
+ extensions.push(import_extension_strike.Strike.configure(options.strike));
286
+ }
287
+ if (options.text !== false) {
288
+ extensions.push(import_extension_text.Text.configure(options.text));
289
+ }
290
+ if (options.textAlign !== false) {
291
+ extensions.push(import_extension_text_align.default.configure(options.textAlign));
292
+ }
293
+ if (options.underline !== false) {
294
+ extensions.push(import_extension_underline.Underline.configure(options == null ? void 0 : options.underline));
295
+ }
296
+ return extensions;
297
+ }
298
+ });
299
+ }
300
+ });
301
+
302
+ // components/RichTextEditor/components/Render.tsx
303
+ var Render_exports = {};
304
+ __export(Render_exports, {
305
+ RichTextRender: () => RichTextRender
306
+ });
307
+ function RichTextRender({
308
+ content,
309
+ field
310
+ }) {
311
+ const { tiptap = {}, options } = field;
312
+ const { extensions = [] } = tiptap;
313
+ const loadedExtensions = (0, import_react3.useMemo)(
314
+ () => [PuckRichText.configure(options), ...extensions],
315
+ [field, extensions]
316
+ );
317
+ const normalized = (0, import_react3.useMemo)(() => {
318
+ if (typeof content === "object" && (content == null ? void 0 : content.type) === "doc") {
319
+ return content;
320
+ }
321
+ if (typeof content === "string") {
322
+ const isHtml = /<\/?[a-z][\s\S]*>/i.test(content);
323
+ if (isHtml) {
324
+ return (0, import_html.generateJSON)(content, loadedExtensions);
325
+ }
326
+ return {
327
+ type: "doc",
328
+ content: [
329
+ { type: "paragraph", content: [{ type: "text", text: content }] }
330
+ ]
331
+ };
332
+ }
333
+ return { type: "doc", content: [] };
334
+ }, [content, loadedExtensions]);
335
+ const html = (0, import_react3.useMemo)(() => {
336
+ return (0, import_html.generateHTML)(normalized, loadedExtensions);
337
+ }, [normalized, loadedExtensions]);
338
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: getClassName2(), children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "rich-text", dangerouslySetInnerHTML: { __html: html } }) });
339
+ }
340
+ var import_html, import_react3, import_jsx_runtime2, getClassName2;
341
+ var init_Render = __esm({
342
+ "components/RichTextEditor/components/Render.tsx"() {
343
+ "use strict";
344
+ init_react_import();
345
+ import_html = require("@tiptap/html");
346
+ import_react3 = require("react");
347
+ init_get_class_name_factory();
348
+ init_styles_module();
349
+ init_extension();
350
+ import_jsx_runtime2 = require("react/jsx-runtime");
351
+ getClassName2 = get_class_name_factory_default("RichTextEditor", styles_module_default);
352
+ }
353
+ });
354
+
79
355
  // bundle/rsc.tsx
80
356
  var rsc_exports = {};
81
357
  __export(rsc_exports, {
@@ -86,16 +362,19 @@ __export(rsc_exports, {
86
362
  walkTree: () => walkTree
87
363
  });
88
364
  module.exports = __toCommonJS(rsc_exports);
365
+ init_react_import();
89
366
 
90
- // ../tsup-config/react-import.js
91
- var import_react = __toESM(require("react"));
367
+ // components/ServerRender/index.tsx
368
+ init_react_import();
92
369
 
93
370
  // lib/root-droppable-id.ts
371
+ init_react_import();
94
372
  var rootAreaId = "root";
95
373
  var rootZone = "default-zone";
96
374
  var rootDroppableId = `${rootAreaId}:${rootZone}`;
97
375
 
98
376
  // lib/data/setup-zone.ts
377
+ init_react_import();
99
378
  var setupZone = (data, zoneKey) => {
100
379
  if (zoneKey === rootDroppableId) {
101
380
  return data;
@@ -107,10 +386,18 @@ var setupZone = (data, zoneKey) => {
107
386
  return newData;
108
387
  };
109
388
 
389
+ // lib/use-slots.tsx
390
+ init_react_import();
391
+
110
392
  // lib/field-transforms/use-field-transforms.tsx
393
+ init_react_import();
111
394
  var import_react2 = require("react");
112
395
 
396
+ // lib/data/map-fields.ts
397
+ init_react_import();
398
+
113
399
  // lib/data/default-slots.ts
400
+ init_react_import();
114
401
  var defaultSlots = (value, fields) => Object.keys(fields).reduce(
115
402
  (acc, fieldName) => fields[fieldName].type === "slot" ? __spreadValues({ [fieldName]: [] }, acc) : acc,
116
403
  value
@@ -300,6 +587,7 @@ function useFieldTransforms(config, item, transforms, readOnly, forceReadOnly) {
300
587
  }
301
588
 
302
589
  // lib/field-transforms/default-transforms/slot-transform.tsx
590
+ init_react_import();
303
591
  var getSlotTransform = (renderSlotEdit, renderSlotRender = renderSlotEdit) => ({
304
592
  slot: ({ value: content, propName, field, isReadOnly }) => {
305
593
  const render = isReadOnly ? renderSlotRender : renderSlotEdit;
@@ -326,32 +614,92 @@ function useSlots(config, item, renderSlotEdit, renderSlotRender = renderSlotEdi
326
614
  }
327
615
 
328
616
  // components/SlotRender/server.tsx
329
- var import_react3 = require("react");
617
+ init_react_import();
618
+ var import_react5 = require("react");
619
+
620
+ // components/RichTextEditor/lib/use-richtext-props.tsx
621
+ init_react_import();
622
+ var import_react4 = require("react");
623
+
624
+ // components/RichTextEditor/components/RenderFallback.tsx
625
+ init_react_import();
626
+ init_get_class_name_factory();
627
+ init_styles_module();
330
628
  var import_jsx_runtime = require("react/jsx-runtime");
331
- var SlotRenderPure = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SlotRender, __spreadValues({}, props));
629
+ var getClassName = get_class_name_factory_default("RichTextEditor", styles_module_default);
630
+ function RichTextRenderFallback({ content }) {
631
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: getClassName(), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
632
+ "div",
633
+ {
634
+ className: "rich-text",
635
+ dangerouslySetInnerHTML: { __html: content }
636
+ }
637
+ ) });
638
+ }
639
+
640
+ // components/RichTextEditor/lib/use-richtext-props.tsx
641
+ var import_jsx_runtime3 = require("react/jsx-runtime");
642
+ function useRichtextProps(fields, props) {
643
+ const findAllRichtextKeys = (fields2) => {
644
+ if (!fields2) return [];
645
+ const result = [];
646
+ for (const [key, field] of Object.entries(fields2)) {
647
+ if (field.type === "richtext") {
648
+ result.push(key);
649
+ }
650
+ }
651
+ return result;
652
+ };
653
+ const richtextKeys = (0, import_react4.useMemo)(() => findAllRichtextKeys(fields), [fields]);
654
+ const richtextProps = (0, import_react4.useMemo)(() => {
655
+ if (!(richtextKeys == null ? void 0 : richtextKeys.length)) return {};
656
+ const RichTextRender2 = (0, import_react4.lazy)(
657
+ () => Promise.resolve().then(() => (init_Render(), Render_exports)).then((m) => ({
658
+ default: m.RichTextRender
659
+ }))
660
+ );
661
+ return richtextKeys.reduce((acc, key) => {
662
+ acc[key] = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react4.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RichTextRenderFallback, { content: props[key] }), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
663
+ RichTextRender2,
664
+ {
665
+ content: props[key],
666
+ field: fields[key]
667
+ }
668
+ ) });
669
+ return acc;
670
+ }, {});
671
+ }, [richtextKeys, props, fields]);
672
+ return richtextProps;
673
+ }
674
+
675
+ // components/SlotRender/server.tsx
676
+ var import_jsx_runtime4 = require("react/jsx-runtime");
677
+ var SlotRenderPure = (props) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SlotRender, __spreadValues({}, props));
332
678
  var Item = ({
333
679
  config,
334
680
  item,
335
681
  metadata
336
682
  }) => {
337
683
  const Component = config.components[item.type];
338
- const props = useSlots(config, item, (slotProps) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SlotRenderPure, __spreadProps(__spreadValues({}, slotProps), { config, metadata })));
339
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
684
+ const props = useSlots(config, item, (slotProps) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SlotRenderPure, __spreadProps(__spreadValues({}, slotProps), { config, metadata })));
685
+ const richtextProps = useRichtextProps(Component.fields, props);
686
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
340
687
  Component.render,
341
- __spreadProps(__spreadValues({}, props), {
688
+ __spreadProps(__spreadValues(__spreadValues({}, props), richtextProps), {
342
689
  puck: __spreadProps(__spreadValues({}, props.puck), {
343
690
  metadata: metadata || {}
344
691
  })
345
692
  })
346
693
  );
347
694
  };
348
- var SlotRender = (0, import_react3.forwardRef)(
349
- function SlotRenderInternal({ className, style, content, config, metadata }, ref) {
350
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className, style, ref, children: content.map((item) => {
695
+ var SlotRender = (0, import_react5.forwardRef)(
696
+ function SlotRenderInternal({ className, style, content, config, metadata, as }, ref) {
697
+ const El = as != null ? as : "div";
698
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(El, { className, style, ref, children: content.map((item) => {
351
699
  if (!config.components[item.type]) {
352
700
  return null;
353
701
  }
354
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
702
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
355
703
  Item,
356
704
  {
357
705
  config,
@@ -365,7 +713,7 @@ var SlotRender = (0, import_react3.forwardRef)(
365
713
  );
366
714
 
367
715
  // components/ServerRender/index.tsx
368
- var import_jsx_runtime2 = require("react/jsx-runtime");
716
+ var import_jsx_runtime5 = require("react/jsx-runtime");
369
717
  function DropZoneRender({
370
718
  zone,
371
719
  data,
@@ -382,11 +730,11 @@ function DropZoneRender({
382
730
  zoneCompound = `${areaId}:${zone}`;
383
731
  content = setupZone(data, zoneCompound).zones[zoneCompound];
384
732
  }
385
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: content.map((item) => {
733
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children: content.map((item) => {
386
734
  const Component = config.components[item.type];
387
735
  const props = __spreadProps(__spreadValues({}, item.props), {
388
736
  puck: {
389
- renderDropZone: ({ zone: zone2 }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
737
+ renderDropZone: ({ zone: zone2 }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
390
738
  DropZoneRender,
391
739
  {
392
740
  zone: zone2,
@@ -402,9 +750,9 @@ function DropZoneRender({
402
750
  }
403
751
  });
404
752
  const renderItem = __spreadProps(__spreadValues({}, item), { props });
405
- const propsWithSlots = useSlots(config, renderItem, (props2) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SlotRenderPure, __spreadProps(__spreadValues({}, props2), { config, metadata })));
753
+ const propsWithSlots = useSlots(config, renderItem, (props2) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SlotRenderPure, __spreadProps(__spreadValues({}, props2), { config, metadata })));
406
754
  if (Component) {
407
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component.render, __spreadValues({}, propsWithSlots), renderItem.props.id);
755
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Component.render, __spreadValues({}, propsWithSlots), renderItem.props.id);
408
756
  }
409
757
  return null;
410
758
  }) });
@@ -414,12 +762,12 @@ function Render({
414
762
  data,
415
763
  metadata = {}
416
764
  }) {
417
- var _a;
765
+ var _a, _b;
418
766
  const rootProps = "props" in data.root ? data.root.props : data.root;
419
767
  const title = rootProps.title || "";
420
768
  const props = __spreadProps(__spreadValues({}, rootProps), {
421
769
  puck: {
422
- renderDropZone: ({ zone }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
770
+ renderDropZone: ({ zone }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
423
771
  DropZoneRender,
424
772
  {
425
773
  zone,
@@ -436,9 +784,10 @@ function Render({
436
784
  editMode: false,
437
785
  id: "puck-root"
438
786
  });
439
- const propsWithSlots = useSlots(config, { type: "root", props }, (props2) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SlotRenderPure, __spreadProps(__spreadValues({}, props2), { config, metadata })));
440
- if ((_a = config.root) == null ? void 0 : _a.render) {
441
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(config.root.render, __spreadProps(__spreadValues({}, propsWithSlots), { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
787
+ const propsWithSlots = useSlots(config, { type: "root", props }, (props2) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SlotRenderPure, __spreadProps(__spreadValues({}, props2), { config, metadata })));
788
+ const richtextProps = useRichtextProps((_a = config.root) == null ? void 0 : _a.fields, props);
789
+ if ((_b = config.root) == null ? void 0 : _b.render) {
790
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(config.root.render, __spreadProps(__spreadValues(__spreadValues({}, propsWithSlots), richtextProps), { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
442
791
  DropZoneRender,
443
792
  {
444
793
  config,
@@ -448,7 +797,7 @@ function Render({
448
797
  }
449
798
  ) }));
450
799
  }
451
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
800
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
452
801
  DropZoneRender,
453
802
  {
454
803
  config,
@@ -459,7 +808,14 @@ function Render({
459
808
  );
460
809
  }
461
810
 
811
+ // lib/resolve-all-data.ts
812
+ init_react_import();
813
+
814
+ // lib/resolve-component-data.ts
815
+ init_react_import();
816
+
462
817
  // lib/get-changed.ts
818
+ init_react_import();
463
819
  var import_fast_equals = require("fast-equals");
464
820
  var getChanged = (newItem, oldItem) => {
465
821
  return newItem ? Object.keys(newItem.props || {}).reduce((acc, item) => {
@@ -536,12 +892,14 @@ var resolveComponentData = (_0, _1, ..._2) => __async(null, [_0, _1, ..._2], fun
536
892
  });
537
893
 
538
894
  // lib/data/default-data.ts
895
+ init_react_import();
539
896
  var defaultData = (data) => __spreadProps(__spreadValues({}, data), {
540
897
  root: data.root || {},
541
898
  content: data.content || []
542
899
  });
543
900
 
544
901
  // lib/data/to-component.ts
902
+ init_react_import();
545
903
  var toComponent = (item) => {
546
904
  return "type" in item ? item : __spreadProps(__spreadValues({}, item), {
547
905
  props: __spreadProps(__spreadValues({}, item.props), { id: "root" }),
@@ -599,7 +957,11 @@ function resolveAllData(_0, _1) {
599
957
  });
600
958
  }
601
959
 
960
+ // lib/transform-props.ts
961
+ init_react_import();
962
+
602
963
  // lib/data/walk-tree.ts
964
+ init_react_import();
603
965
  function walkTree(data, config, callbackFn) {
604
966
  var _a, _b;
605
967
  const walkItem = (item) => {
@@ -667,12 +1029,18 @@ function transformProps(data, propTransforms, config = { components: {} }) {
667
1029
  return updatedData;
668
1030
  }
669
1031
 
1032
+ // lib/migrate.ts
1033
+ init_react_import();
1034
+
1035
+ // store/default-app-state.ts
1036
+ init_react_import();
1037
+
670
1038
  // components/ViewportControls/default-viewports.ts
1039
+ init_react_import();
671
1040
  var defaultViewports = [
672
1041
  { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
673
1042
  { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
674
- { width: 1280, height: "auto", icon: "Monitor", label: "Large" },
675
- { width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
1043
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
676
1044
  ];
677
1045
 
678
1046
  // store/default-app-state.ts
@@ -694,8 +1062,7 @@ var defaultAppState = {
694
1062
  options: [],
695
1063
  controlsVisible: true
696
1064
  },
697
- field: { focus: null },
698
- plugin: { current: null }
1065
+ field: { focus: null }
699
1066
  },
700
1067
  indexes: {
701
1068
  nodes: {},
@@ -703,7 +1070,14 @@ var defaultAppState = {
703
1070
  }
704
1071
  };
705
1072
 
1073
+ // lib/data/walk-app-state.ts
1074
+ init_react_import();
1075
+
1076
+ // lib/data/for-related-zones.ts
1077
+ init_react_import();
1078
+
706
1079
  // lib/get-zone-id.ts
1080
+ init_react_import();
707
1081
  var getZoneId = (zoneCompound) => {
708
1082
  if (!zoneCompound) {
709
1083
  return [];
@@ -725,9 +1099,11 @@ function forRelatedZones(item, data, cb, path = []) {
725
1099
  }
726
1100
 
727
1101
  // lib/data/flatten-node.ts
1102
+ init_react_import();
728
1103
  var import_flat = __toESM(require("flat"));
729
1104
 
730
1105
  // lib/data/strip-slots.ts
1106
+ init_react_import();
731
1107
  var stripSlots = (data, config) => {
732
1108
  return mapFields(data, { slot: () => null }, config);
733
1109
  };
@@ -995,3 +1371,12 @@ function migrate(data, config, migrationOptions) {
995
1371
  transformProps,
996
1372
  walkTree
997
1373
  });
1374
+ /*! Bundled license information:
1375
+
1376
+ classnames/index.js:
1377
+ (*!
1378
+ Copyright (c) 2018 Jed Watson.
1379
+ Licensed under the MIT License (MIT), see
1380
+ http://jedwatson.github.io/classnames
1381
+ *)
1382
+ */
package/dist/rsc.mjs CHANGED
@@ -1,18 +1,23 @@
1
1
  import {
2
2
  SlotRenderPure,
3
- __spreadProps,
4
- __spreadValues,
5
- init_react_import,
6
3
  migrate,
7
4
  resolveAllData,
5
+ transformProps,
6
+ useRichtextProps,
7
+ useSlots
8
+ } from "./chunk-A7EMVTSK.mjs";
9
+ import {
8
10
  rootAreaId,
9
11
  rootDroppableId,
10
12
  rootZone,
11
13
  setupZone,
12
- transformProps,
13
- useSlots,
14
14
  walkTree
15
- } from "./chunk-FY5AZKYD.mjs";
15
+ } from "./chunk-YZQENDBP.mjs";
16
+ import {
17
+ __spreadProps,
18
+ __spreadValues,
19
+ init_react_import
20
+ } from "./chunk-GQ457KMA.mjs";
16
21
 
17
22
  // bundle/rsc.tsx
18
23
  init_react_import();
@@ -68,7 +73,7 @@ function Render({
68
73
  data,
69
74
  metadata = {}
70
75
  }) {
71
- var _a;
76
+ var _a, _b;
72
77
  const rootProps = "props" in data.root ? data.root.props : data.root;
73
78
  const title = rootProps.title || "";
74
79
  const props = __spreadProps(__spreadValues({}, rootProps), {
@@ -91,8 +96,9 @@ function Render({
91
96
  id: "puck-root"
92
97
  });
93
98
  const propsWithSlots = useSlots(config, { type: "root", props }, (props2) => /* @__PURE__ */ jsx(SlotRenderPure, __spreadProps(__spreadValues({}, props2), { config, metadata })));
94
- if ((_a = config.root) == null ? void 0 : _a.render) {
95
- return /* @__PURE__ */ jsx(config.root.render, __spreadProps(__spreadValues({}, propsWithSlots), { children: /* @__PURE__ */ jsx(
99
+ const richtextProps = useRichtextProps((_a = config.root) == null ? void 0 : _a.fields, props);
100
+ if ((_b = config.root) == null ? void 0 : _b.render) {
101
+ return /* @__PURE__ */ jsx(config.root.render, __spreadProps(__spreadValues(__spreadValues({}, propsWithSlots), richtextProps), { children: /* @__PURE__ */ jsx(
96
102
  DropZoneRender,
97
103
  {
98
104
  config,