@avocadostudio-ai/cli 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +128 -29
- package/editor-dist/assets/{Editor-EPSED64A-D2PoUbJj.js → Editor-EPSED64A-CJP-bVZN.js} +1 -1
- package/editor-dist/assets/{PuckPrototypeRoute-C4zGt4iA.js → PuckPrototypeRoute-B6iMNdku.js} +11 -11
- package/editor-dist/assets/{Render-CU35UAWV-BJ0HRDaZ.js → Render-CU35UAWV-DdPYEbLT.js} +1 -1
- package/editor-dist/assets/{chunk-2CNEFIQP-DfR5vtvK.js → chunk-2CNEFIQP-Brxm4NMf.js} +1 -1
- package/editor-dist/assets/{full-N67EAB2Q-BxmeVi4g.js → full-N67EAB2Q-BYHFXZSR.js} +1 -1
- package/editor-dist/assets/{index-B8UmizZ0.js → index-B4qUKNTV.js} +185 -185
- package/editor-dist/assets/index-BX_6GxCU.css +1 -0
- package/editor-dist/assets/{index-C6o8aifP.js → index-CTqfgO94.js} +1 -1
- package/editor-dist/assets/{index-DAQiYlVE.js → index-DY7tRaFQ.js} +1 -1
- package/editor-dist/assets/{loaded-F37CNCVG-dhpwEC7U.js → loaded-F37CNCVG-B422Pbfr.js} +1 -1
- package/editor-dist/assets/{loaded-H325ZSK5-Co5H4zvL.js → loaded-H325ZSK5-E6TdieQX.js} +1 -1
- package/editor-dist/assets/{loaded-MIY725CK-CVl2xoeg.js → loaded-MIY725CK-CCQfYjkF.js} +1 -1
- package/editor-dist/index.html +2 -2
- package/package.json +2 -2
- package/editor-dist/assets/index-CIjg0ai5.css +0 -1
package/dist/index.js
CHANGED
|
@@ -13796,6 +13796,42 @@ function unwrapZod(schema) {
|
|
|
13796
13796
|
}
|
|
13797
13797
|
return current;
|
|
13798
13798
|
}
|
|
13799
|
+
function listElementBranches(element) {
|
|
13800
|
+
const unwrapped = unwrapZod(element);
|
|
13801
|
+
if (!unwrapped) return void 0;
|
|
13802
|
+
const ownShape = unwrapped.shape;
|
|
13803
|
+
if (ownShape) return [{ discriminantValues: [], shape: ownShape }];
|
|
13804
|
+
const def = unwrapped.def ?? unwrapped._def;
|
|
13805
|
+
const options = def?.options;
|
|
13806
|
+
if (!Array.isArray(options) || options.length === 0) return void 0;
|
|
13807
|
+
const discriminator = def?.discriminator;
|
|
13808
|
+
const branches = [];
|
|
13809
|
+
for (const option of options) {
|
|
13810
|
+
const optionShape = unwrapZod(option)?.shape;
|
|
13811
|
+
if (!optionShape) continue;
|
|
13812
|
+
branches.push({
|
|
13813
|
+
discriminantValues: discriminator ? literalValuesOf(optionShape[discriminator]) : [],
|
|
13814
|
+
shape: optionShape
|
|
13815
|
+
});
|
|
13816
|
+
}
|
|
13817
|
+
return branches.length > 0 ? branches : void 0;
|
|
13818
|
+
}
|
|
13819
|
+
function literalValuesOf(schema) {
|
|
13820
|
+
const def = unwrapZod(schema)?.def ?? unwrapZod(schema)?._def;
|
|
13821
|
+
if (!def) return [];
|
|
13822
|
+
if (Array.isArray(def.values)) return def.values.map(String);
|
|
13823
|
+
if (def.value !== void 0) return [String(def.value)];
|
|
13824
|
+
if (def.entries) return Object.values(def.entries).map(String);
|
|
13825
|
+
return [];
|
|
13826
|
+
}
|
|
13827
|
+
function deriveRequired(fields, shapes) {
|
|
13828
|
+
for (const [key, field] of Object.entries(fields)) {
|
|
13829
|
+
if (field.required !== void 0) continue;
|
|
13830
|
+
const backing = shapes.filter((s) => s[key]);
|
|
13831
|
+
if (backing.length === 0) continue;
|
|
13832
|
+
field.required = backing.length === shapes.length && backing.every((s) => !s[key].isOptional());
|
|
13833
|
+
}
|
|
13834
|
+
}
|
|
13799
13835
|
var warnedListFields = /* @__PURE__ */ new Set();
|
|
13800
13836
|
function warnUnbackedListField(type, listKey, present) {
|
|
13801
13837
|
const key = `${type}.${listKey}`;
|
|
@@ -13809,8 +13845,14 @@ function warnUnbackedListField(type, listKey, present) {
|
|
|
13809
13845
|
} catch {
|
|
13810
13846
|
}
|
|
13811
13847
|
}
|
|
13848
|
+
var _builtinBlockTypes = G.__ase_builtinBlockTypes ?? (G.__ase_builtinBlockTypes = /* @__PURE__ */ new Set());
|
|
13849
|
+
function registerBuiltinBlock(type, config2) {
|
|
13850
|
+
registerBlock(type, config2);
|
|
13851
|
+
_builtinBlockTypes.add(type);
|
|
13852
|
+
}
|
|
13812
13853
|
function registerBlock(type, config2) {
|
|
13813
13854
|
_blockSchemas[type] = config2.schema;
|
|
13855
|
+
_builtinBlockTypes.delete(type);
|
|
13814
13856
|
const shape = config2.schema.shape;
|
|
13815
13857
|
if (shape) {
|
|
13816
13858
|
for (const [key, field] of Object.entries(config2.meta.fields)) {
|
|
@@ -13823,17 +13865,22 @@ function registerBlock(type, config2) {
|
|
|
13823
13865
|
if (config2.meta.listFields) {
|
|
13824
13866
|
for (const [listKey, listMeta] of Object.entries(config2.meta.listFields)) {
|
|
13825
13867
|
const listZod = shape[listKey];
|
|
13826
|
-
const
|
|
13827
|
-
if (!
|
|
13868
|
+
const branches = listElementBranches(unwrapZod(listZod)?.element);
|
|
13869
|
+
if (!branches) {
|
|
13828
13870
|
warnUnbackedListField(type, listKey, listZod !== void 0);
|
|
13829
13871
|
continue;
|
|
13830
13872
|
}
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
|
|
13834
|
-
|
|
13835
|
-
|
|
13836
|
-
|
|
13873
|
+
deriveRequired(
|
|
13874
|
+
listMeta.itemFields,
|
|
13875
|
+
branches.map((b) => b.shape)
|
|
13876
|
+
);
|
|
13877
|
+
for (const [value, branchFields] of Object.entries(listMeta.itemFieldsByType ?? {})) {
|
|
13878
|
+
const matching = branches.filter((b) => b.discriminantValues.includes(value));
|
|
13879
|
+
if (matching.length === 0) continue;
|
|
13880
|
+
deriveRequired(
|
|
13881
|
+
branchFields,
|
|
13882
|
+
matching.map((b) => b.shape)
|
|
13883
|
+
);
|
|
13837
13884
|
}
|
|
13838
13885
|
}
|
|
13839
13886
|
}
|
|
@@ -13886,7 +13933,7 @@ var f = {
|
|
|
13886
13933
|
};
|
|
13887
13934
|
|
|
13888
13935
|
// ../shared/src/blocks/hero.ts
|
|
13889
|
-
|
|
13936
|
+
registerBuiltinBlock("Hero", {
|
|
13890
13937
|
schema: external_exports.object({
|
|
13891
13938
|
heading: external_exports.string().min(1),
|
|
13892
13939
|
subheading: external_exports.string().min(1),
|
|
@@ -13926,7 +13973,7 @@ registerBlock("Hero", {
|
|
|
13926
13973
|
});
|
|
13927
13974
|
|
|
13928
13975
|
// ../shared/src/blocks/feature-grid.ts
|
|
13929
|
-
|
|
13976
|
+
registerBuiltinBlock("FeatureGrid", {
|
|
13930
13977
|
schema: external_exports.object({
|
|
13931
13978
|
title: external_exports.string().min(1),
|
|
13932
13979
|
columns: external_exports.enum(["2", "3", "4"]).default("3").catch("3"),
|
|
@@ -13960,7 +14007,7 @@ registerBlock("FeatureGrid", {
|
|
|
13960
14007
|
});
|
|
13961
14008
|
|
|
13962
14009
|
// ../shared/src/blocks/testimonials.ts
|
|
13963
|
-
|
|
14010
|
+
registerBuiltinBlock("Testimonials", {
|
|
13964
14011
|
schema: external_exports.object({
|
|
13965
14012
|
title: external_exports.string().min(1),
|
|
13966
14013
|
items: external_exports.array(external_exports.object({
|
|
@@ -13995,7 +14042,7 @@ registerBlock("Testimonials", {
|
|
|
13995
14042
|
});
|
|
13996
14043
|
|
|
13997
14044
|
// ../shared/src/blocks/faq-accordion.ts
|
|
13998
|
-
|
|
14045
|
+
registerBuiltinBlock("FAQAccordion", {
|
|
13999
14046
|
schema: external_exports.object({
|
|
14000
14047
|
title: external_exports.string().min(1),
|
|
14001
14048
|
items: external_exports.array(external_exports.object({ id: external_exports.string().optional(), q: external_exports.string().min(1), a: external_exports.string().min(1) })).min(1)
|
|
@@ -14015,7 +14062,7 @@ registerBlock("FAQAccordion", {
|
|
|
14015
14062
|
});
|
|
14016
14063
|
|
|
14017
14064
|
// ../shared/src/blocks/cta.ts
|
|
14018
|
-
|
|
14065
|
+
registerBuiltinBlock("CTA", {
|
|
14019
14066
|
schema: external_exports.object({
|
|
14020
14067
|
title: external_exports.string().min(1),
|
|
14021
14068
|
description: external_exports.string().min(1),
|
|
@@ -14045,7 +14092,7 @@ registerBlock("CTA", {
|
|
|
14045
14092
|
});
|
|
14046
14093
|
|
|
14047
14094
|
// ../shared/src/blocks/card.ts
|
|
14048
|
-
|
|
14095
|
+
registerBuiltinBlock("Card", {
|
|
14049
14096
|
schema: external_exports.object({
|
|
14050
14097
|
title: external_exports.string().min(1),
|
|
14051
14098
|
description: external_exports.string().min(1),
|
|
@@ -14075,7 +14122,7 @@ registerBlock("Card", {
|
|
|
14075
14122
|
});
|
|
14076
14123
|
|
|
14077
14124
|
// ../shared/src/blocks/card-grid.ts
|
|
14078
|
-
|
|
14125
|
+
registerBuiltinBlock("CardGrid", {
|
|
14079
14126
|
schema: external_exports.object({
|
|
14080
14127
|
title: external_exports.string().min(1),
|
|
14081
14128
|
subtitle: external_exports.string().optional(),
|
|
@@ -14123,7 +14170,7 @@ registerBlock("CardGrid", {
|
|
|
14123
14170
|
});
|
|
14124
14171
|
|
|
14125
14172
|
// ../shared/src/blocks/rich-text.ts
|
|
14126
|
-
|
|
14173
|
+
registerBuiltinBlock("RichText", {
|
|
14127
14174
|
schema: external_exports.object({
|
|
14128
14175
|
title: external_exports.string(),
|
|
14129
14176
|
body: external_exports.string().min(1)
|
|
@@ -14141,7 +14188,7 @@ registerBlock("RichText", {
|
|
|
14141
14188
|
});
|
|
14142
14189
|
|
|
14143
14190
|
// ../shared/src/blocks/stats.ts
|
|
14144
|
-
|
|
14191
|
+
registerBuiltinBlock("Stats", {
|
|
14145
14192
|
schema: external_exports.object({
|
|
14146
14193
|
title: external_exports.string().optional(),
|
|
14147
14194
|
stats: external_exports.array(external_exports.object({
|
|
@@ -14215,7 +14262,7 @@ var twoColumnItemFieldsByType = {
|
|
|
14215
14262
|
poster: f.image("Video poster image", { aspectRatio: "landscape", width: 768, height: 512 })
|
|
14216
14263
|
}
|
|
14217
14264
|
};
|
|
14218
|
-
|
|
14265
|
+
registerBuiltinBlock("TwoColumn", {
|
|
14219
14266
|
schema: external_exports.object({
|
|
14220
14267
|
variant: external_exports.enum(["default", "accent"]).default("default").catch("default"),
|
|
14221
14268
|
left: external_exports.array(twoColumnChild).min(1),
|
|
@@ -14247,7 +14294,7 @@ registerBlock("TwoColumn", {
|
|
|
14247
14294
|
});
|
|
14248
14295
|
|
|
14249
14296
|
// ../shared/src/blocks/footer.ts
|
|
14250
|
-
|
|
14297
|
+
registerBuiltinBlock("Footer", {
|
|
14251
14298
|
schema: external_exports.object({
|
|
14252
14299
|
copyright: external_exports.string().min(1),
|
|
14253
14300
|
columns: external_exports.array(external_exports.object({ id: external_exports.string().optional(), title: external_exports.string().min(1), links: external_exports.string().min(1) })).min(1)
|
|
@@ -14293,7 +14340,7 @@ var navLinkLeaf = external_exports.object({
|
|
|
14293
14340
|
href: external_exports.string().min(1),
|
|
14294
14341
|
newTab: external_exports.boolean().optional()
|
|
14295
14342
|
});
|
|
14296
|
-
|
|
14343
|
+
registerBuiltinBlock("SiteHeader", {
|
|
14297
14344
|
schema: external_exports.object({
|
|
14298
14345
|
siteName: external_exports.string().min(1),
|
|
14299
14346
|
logoUrl: external_exports.string().min(1),
|
|
@@ -14327,7 +14374,7 @@ registerBlock("SiteHeader", {
|
|
|
14327
14374
|
});
|
|
14328
14375
|
|
|
14329
14376
|
// ../shared/src/blocks/embed.ts
|
|
14330
|
-
|
|
14377
|
+
registerBuiltinBlock("Embed", {
|
|
14331
14378
|
schema: external_exports.object({
|
|
14332
14379
|
embedType: external_exports.enum(["map", "social", "custom"]).default("map").catch("map"),
|
|
14333
14380
|
url: external_exports.string().min(1),
|
|
@@ -14348,7 +14395,7 @@ registerBlock("Embed", {
|
|
|
14348
14395
|
});
|
|
14349
14396
|
|
|
14350
14397
|
// ../shared/src/blocks/banner.ts
|
|
14351
|
-
|
|
14398
|
+
registerBuiltinBlock("Banner", {
|
|
14352
14399
|
schema: external_exports.object({
|
|
14353
14400
|
text: external_exports.string().min(1),
|
|
14354
14401
|
variant: external_exports.enum(["info", "success", "warning"]).default("info").catch("info"),
|
|
@@ -14375,7 +14422,7 @@ registerBlock("Banner", {
|
|
|
14375
14422
|
});
|
|
14376
14423
|
|
|
14377
14424
|
// ../shared/src/blocks/carousel.ts
|
|
14378
|
-
|
|
14425
|
+
registerBuiltinBlock("Carousel", {
|
|
14379
14426
|
schema: external_exports.object({
|
|
14380
14427
|
items: external_exports.array(external_exports.object({
|
|
14381
14428
|
id: external_exports.string().optional(),
|
|
@@ -14416,7 +14463,7 @@ registerBlock("Carousel", {
|
|
|
14416
14463
|
});
|
|
14417
14464
|
|
|
14418
14465
|
// ../shared/src/blocks/gallery.ts
|
|
14419
|
-
|
|
14466
|
+
registerBuiltinBlock("Gallery", {
|
|
14420
14467
|
schema: external_exports.object({
|
|
14421
14468
|
title: external_exports.string().optional(),
|
|
14422
14469
|
headingLevel: external_exports.string().optional(),
|
|
@@ -14451,7 +14498,7 @@ registerBlock("Gallery", {
|
|
|
14451
14498
|
});
|
|
14452
14499
|
|
|
14453
14500
|
// ../shared/src/blocks/tabs.ts
|
|
14454
|
-
|
|
14501
|
+
registerBuiltinBlock("Tabs", {
|
|
14455
14502
|
schema: external_exports.object({
|
|
14456
14503
|
title: external_exports.string().optional(),
|
|
14457
14504
|
tabs: external_exports.array(external_exports.object({
|
|
@@ -14478,7 +14525,7 @@ registerBlock("Tabs", {
|
|
|
14478
14525
|
});
|
|
14479
14526
|
|
|
14480
14527
|
// ../shared/src/blocks/table.ts
|
|
14481
|
-
|
|
14528
|
+
registerBuiltinBlock("Table", {
|
|
14482
14529
|
schema: external_exports.object({
|
|
14483
14530
|
title: external_exports.string().optional(),
|
|
14484
14531
|
headingLevel: external_exports.string().optional(),
|
|
@@ -14504,7 +14551,7 @@ registerBlock("Table", {
|
|
|
14504
14551
|
});
|
|
14505
14552
|
|
|
14506
14553
|
// ../shared/src/blocks/quote.ts
|
|
14507
|
-
|
|
14554
|
+
registerBuiltinBlock("Quote", {
|
|
14508
14555
|
schema: external_exports.object({
|
|
14509
14556
|
quote: external_exports.string().min(1),
|
|
14510
14557
|
author: external_exports.string().optional(),
|
|
@@ -14527,7 +14574,7 @@ registerBlock("Quote", {
|
|
|
14527
14574
|
});
|
|
14528
14575
|
|
|
14529
14576
|
// ../shared/src/blocks/video.ts
|
|
14530
|
-
|
|
14577
|
+
registerBuiltinBlock("Video", {
|
|
14531
14578
|
schema: external_exports.object({
|
|
14532
14579
|
src: external_exports.string().min(1),
|
|
14533
14580
|
title: external_exports.string().optional(),
|
|
@@ -14576,7 +14623,8 @@ var FIELD_KINDS = [
|
|
|
14576
14623
|
"color",
|
|
14577
14624
|
"number",
|
|
14578
14625
|
"boolean",
|
|
14579
|
-
"headingLevel"
|
|
14626
|
+
"headingLevel",
|
|
14627
|
+
"reference"
|
|
14580
14628
|
];
|
|
14581
14629
|
var fieldMetaSchema = external_exports.object({
|
|
14582
14630
|
kind: external_exports.enum(FIELD_KINDS),
|
|
@@ -14590,6 +14638,22 @@ var fieldMetaSchema = external_exports.object({
|
|
|
14590
14638
|
format: external_exports.enum(["png", "webp", "jpeg"]).optional()
|
|
14591
14639
|
}).optional(),
|
|
14592
14640
|
multiline: external_exports.boolean().optional(),
|
|
14641
|
+
/*
|
|
14642
|
+
* Travels with the manifest because the panel is what reads it, and the panel
|
|
14643
|
+
* is in a different process. A key this schema omits is stripped here, not
|
|
14644
|
+
* rejected — so a reference would have arrived in the editor with nothing to
|
|
14645
|
+
* label it and no sign that anything had been declared.
|
|
14646
|
+
*/
|
|
14647
|
+
referenceLabelKey: external_exports.string().optional(),
|
|
14648
|
+
/*
|
|
14649
|
+
* Both of these decide whether a surface *mentions* a field, and every one
|
|
14650
|
+
* of those surfaces is on the far side of this boundary — the panel, the
|
|
14651
|
+
* planner's schema summary, the coverage checkers. A key this schema omits
|
|
14652
|
+
* is stripped rather than rejected, so an undeclared flag here means the
|
|
14653
|
+
* declaration silently does nothing where it was supposed to act.
|
|
14654
|
+
*/
|
|
14655
|
+
panelOnly: external_exports.boolean().optional(),
|
|
14656
|
+
internal: external_exports.boolean().optional(),
|
|
14593
14657
|
inline: external_exports.boolean().optional(),
|
|
14594
14658
|
decorators: external_exports.array(external_exports.object({ name: external_exports.string().min(1), title: external_exports.string().optional() })).optional(),
|
|
14595
14659
|
required: external_exports.boolean().optional()
|
|
@@ -14648,6 +14712,27 @@ var INLINE_PATTERN = new RegExp(
|
|
|
14648
14712
|
);
|
|
14649
14713
|
|
|
14650
14714
|
// ../richtext/src/doc.ts
|
|
14715
|
+
var NODE = {
|
|
14716
|
+
doc: "doc",
|
|
14717
|
+
paragraph: "paragraph",
|
|
14718
|
+
heading: "heading",
|
|
14719
|
+
bulletList: "bulletList",
|
|
14720
|
+
orderedList: "orderedList",
|
|
14721
|
+
listItem: "listItem",
|
|
14722
|
+
blockquote: "blockquote",
|
|
14723
|
+
codeBlock: "codeBlock",
|
|
14724
|
+
horizontalRule: "horizontalRule",
|
|
14725
|
+
hardBreak: "hardBreak",
|
|
14726
|
+
text: "text",
|
|
14727
|
+
/**
|
|
14728
|
+
* A block the pivot could not model — a Portable Text `_type` we do not know,
|
|
14729
|
+
* a Contentful embedded entry, a Strapi image. It carries the source object
|
|
14730
|
+
* untouched under `attrs.data` so the converter back out can re-emit it
|
|
14731
|
+
* unchanged. The editor registers a matching read-only node, so it also
|
|
14732
|
+
* survives a trip through the property panel in its original position.
|
|
14733
|
+
*/
|
|
14734
|
+
unknown: "avocadoUnknownBlock"
|
|
14735
|
+
};
|
|
14651
14736
|
var MARK = {
|
|
14652
14737
|
bold: "bold",
|
|
14653
14738
|
italic: "italic",
|
|
@@ -14696,6 +14781,20 @@ var MARK_TO_FLAG = Object.fromEntries(
|
|
|
14696
14781
|
Object.entries(FLAG_TO_MARK).map(([flag, mark]) => [mark, flag])
|
|
14697
14782
|
);
|
|
14698
14783
|
|
|
14784
|
+
// ../richtext/src/storyblok.ts
|
|
14785
|
+
var NODE_IN = {
|
|
14786
|
+
bullet_list: NODE.bulletList,
|
|
14787
|
+
ordered_list: NODE.orderedList,
|
|
14788
|
+
list_item: NODE.listItem,
|
|
14789
|
+
code_block: NODE.codeBlock,
|
|
14790
|
+
horizontal_rule: NODE.horizontalRule,
|
|
14791
|
+
hard_break: NODE.hardBreak,
|
|
14792
|
+
blok: NODE.unknown
|
|
14793
|
+
};
|
|
14794
|
+
var NODE_OUT = Object.fromEntries(
|
|
14795
|
+
Object.entries(NODE_IN).map(([storyblok, pivot]) => [pivot, storyblok])
|
|
14796
|
+
);
|
|
14797
|
+
|
|
14699
14798
|
// ../shared/src/ops/theme-tokens.ts
|
|
14700
14799
|
var THEME_TOKEN_TO_CSS_VARS = {
|
|
14701
14800
|
brandColor: ["--brand", "--brand-hover", "--link"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as b}from"./chunk-2CNEFIQP-
|
|
1
|
+
import{P as b}from"./chunk-2CNEFIQP-Brxm4NMf.js";import{u as y,a as j,E as L,_ as m,L as M,b as p,o as P,i as A}from"./PuckPrototypeRoute-B6iMNdku.js";import{r as s,j as g}from"./index-B4qUKNTV.js";import{E as N,u as U}from"./index-DY7tRaFQ.js";import"./index-CTqfgO94.js";A();A();function C({content:a,onChange:x,extensions:v,editable:d=!0,onFocusChange:o,name:c}){const[i,E]=P(null,50,{leading:!0,maxWait:200}),l=s.useRef(!1),S=s.useRef(""),f=s.useRef(null),R=!!f.current,_=j(t=>t.state.ui.field.focus===c),T=t=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{S.current===t&&(f.current=null)},200)},u=y(),e=U({extensions:v,content:a,editable:d,immediatelyRender:!1,parseOptions:{preserveWhitespace:"full"},onUpdate:({editor:t})=>{if(l.current||!_){u.getState().setUi({field:{focus:c}});return}const r=t.getHTML(),{from:n,to:h}=t.state.selection;E({from:n,to:h,html:r}),T(r),S.current=r}});return s.useEffect(()=>{if(!e)return;const t=()=>{o==null||o(e)};return e.on("focus",t),()=>{e.off("focus",t)}},[e,o]),s.useEffect(()=>{if(i){const{ui:t}=u.getState().state;x(i.html,{field:m(p({},t.field),{metadata:{from:i.from,to:i.to}})})}},[e,i,x,u,c]),s.useEffect(()=>{e==null||e.setEditable(d)},[e,d]),s.useEffect(()=>{var t;if(!e||R||e.getHTML()===a)return;l.current=!0,e.commands.setContent(a,{emitUpdate:!1});const{ui:n}=u.getState().state;typeof((t=n.field.metadata)==null?void 0:t.from)<"u"&&e.commands.setTextSelection({from:n.field.metadata.from,to:n.field.metadata.to}),l.current=!1},[a,e,u]),e}var F=s.memo(a=>{const{onChange:x,content:v,readOnly:d=!1,field:o,inline:c=!1,onFocus:i,id:E,name:l}=a,{tiptap:S={},options:f}=o,{extensions:R=[]}=S,_=s.useMemo(()=>[b.configure(f),...R],[o,R]),T=y(),u=`${l}${c?"::inline":""}`,e=C({content:v,onChange:x,extensions:_,editable:!d,name:u,onFocusChange:r=>{if(r){const n=T.getState();T.setState({currentRichText:{field:o,editor:r,id:E,inline:c},state:m(p({},n.state),{ui:m(p({},n.state.ui),{field:m(p({},n.state.ui.field),{focus:u})})})}),i==null||i(r)}}}),t=j(r=>{var n,h;return!c&&((n=r.currentRichText)==null?void 0:n.id)===E&&((h=r.currentRichText)!=null&&h.inlineComponentId)?r.currentRichText.editor:e});return e?g.jsx(L,m(p({},a),{editor:e,menu:g.jsx(M,{field:o,editor:t,readOnly:d}),children:g.jsx(N,{editor:e,className:"rich-text"})})):null});F.displayName="Editor";export{F as Editor};
|