@brunoalz/smartgesti-site-editor 1.2.0 → 1.4.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/editor/BlockSelector.js +5 -2
- package/dist/editor/BlockSelector.js.map +1 -1
- package/dist/editor/LandingPageEditor.d.ts.map +1 -1
- package/dist/editor/LandingPageEditor.js +199 -173
- package/dist/editor/LandingPageEditor.js.map +1 -1
- package/dist/editor/PaletteSelector.d.ts +3 -0
- package/dist/editor/PaletteSelector.d.ts.map +1 -1
- package/dist/editor/PaletteSelector.js +114 -25
- package/dist/editor/PaletteSelector.js.map +1 -1
- package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/BlockPropertyEditor.js +86 -48
- package/dist/editor/PropertyEditor/BlockPropertyEditor.js.map +1 -1
- package/dist/editor/components/RightPanel.d.ts +2 -0
- package/dist/editor/components/RightPanel.d.ts.map +1 -1
- package/dist/editor/components/RightPanel.js +23 -22
- package/dist/editor/components/RightPanel.js.map +1 -1
- package/dist/engine/export/exporters/content/AvatarExporter.js +2 -2
- package/dist/engine/export/exporters/content/AvatarExporter.js.map +1 -1
- package/dist/engine/export/exporters/content/BadgeExporter.js +11 -11
- package/dist/engine/export/exporters/content/BadgeExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/AdminSectionExporters.d.ts +6 -0
- package/dist/engine/export/exporters/sections/AdminSectionExporters.d.ts.map +1 -0
- package/dist/engine/export/exporters/sections/AdminSectionExporters.js +157 -0
- package/dist/engine/export/exporters/sections/AdminSectionExporters.js.map +1 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.js +34 -34
- package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -1
- package/dist/engine/export/exporters/sections/ContentGridExporters.js +16 -16
- package/dist/engine/export/exporters/sections/ContentGridExporters.js.map +1 -1
- package/dist/engine/export/exporters/sections/MarketingExporters.js +4 -4
- package/dist/engine/export/exporters/sections/MarketingExporters.js.map +1 -1
- package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/index.js +37 -33
- package/dist/engine/export/exporters/sections/index.js.map +1 -1
- package/dist/engine/index.js +98 -95
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/preview/Preview.d.ts.map +1 -1
- package/dist/engine/preview/Preview.js +165 -160
- package/dist/engine/preview/Preview.js.map +1 -1
- package/dist/engine/registry/blocks/sections/aboutSection.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/aboutSection.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/aboutSection.js +117 -0
- package/dist/engine/registry/blocks/sections/aboutSection.js.map +1 -0
- package/dist/engine/registry/blocks/sections/contactSection.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/contactSection.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/contactSection.js +118 -0
- package/dist/engine/registry/blocks/sections/contactSection.js.map +1 -0
- package/dist/engine/registry/blocks/sections/index.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
- package/dist/engine/registry/blocks/sections/productShowcase.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/productShowcase.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/productShowcase.js +108 -0
- package/dist/engine/registry/blocks/sections/productShowcase.js.map +1 -0
- package/dist/engine/render/renderers/content/BadgeRenderer.js +12 -12
- package/dist/engine/render/renderers/content/BadgeRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/AboutSectionRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/AboutSectionRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/AboutSectionRenderer.js +246 -0
- package/dist/engine/render/renderers/sections/AboutSectionRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/ContactSectionRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/ContactSectionRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/ContactSectionRenderer.js +287 -0
- package/dist/engine/render/renderers/sections/ContactSectionRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.js +5 -5
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureRenderer.js +9 -9
- package/dist/engine/render/renderers/sections/FeatureRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/PricingCardRenderer.js +5 -5
- package/dist/engine/render/renderers/sections/PricingCardRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/ProductShowcaseRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/ProductShowcaseRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/ProductShowcaseRenderer.js +287 -0
- package/dist/engine/render/renderers/sections/ProductShowcaseRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/index.js +26 -20
- package/dist/engine/render/renderers/sections/index.js.map +1 -1
- package/dist/engine/schema/siteDocument.d.ts +96 -2
- package/dist/engine/schema/siteDocument.d.ts.map +1 -1
- package/dist/engine/schema/siteDocument.js.map +1 -1
- package/dist/hooks/useEditorState.d.ts +2 -0
- package/dist/hooks/useEditorState.d.ts.map +1 -1
- package/dist/hooks/useEditorState.js +82 -77
- package/dist/hooks/useEditorState.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +109 -106
- package/dist/index.js.map +1 -1
- package/dist/shared/schema.d.ts +1 -1
- package/dist/shared/schema.d.ts.map +1 -1
- package/dist/shared/schema.js +7 -4
- package/dist/shared/schema.js.map +1 -1
- package/dist/shared/templates/index.d.ts +6 -0
- package/dist/shared/templates/index.d.ts.map +1 -1
- package/dist/shared/templates/index.js +49 -23
- package/dist/shared/templates/index.js.map +1 -1
- package/dist/shared/templates/smartgesti-admin.d.ts +3 -0
- package/dist/shared/templates/smartgesti-admin.d.ts.map +1 -0
- package/dist/shared/templates/smartgesti-admin.js +423 -0
- package/dist/shared/templates/smartgesti-admin.js.map +1 -0
- package/dist/utils/blockIcons.d.ts.map +1 -1
- package/dist/utils/blockIcons.js +3 -0
- package/dist/utils/blockIcons.js.map +1 -1
- package/dist/utils/colorUtils.d.ts +73 -16
- package/dist/utils/colorUtils.d.ts.map +1 -1
- package/dist/utils/colorUtils.js +95 -9
- package/dist/utils/colorUtils.js.map +1 -1
- package/dist/viewer/LandingPageViewer.d.ts.map +1 -1
- package/dist/viewer/LandingPageViewer.js +66 -65
- package/dist/viewer/LandingPageViewer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { useMemo as
|
|
2
|
-
import { cleanDocumentStructure as
|
|
1
|
+
import { useMemo as k, useState as p, useCallback as o } from "react";
|
|
2
|
+
import { cleanDocumentStructure as V, findBlockInStructure as W } from "../utils/blockUtils.js";
|
|
3
3
|
import { logger as f } from "../utils/logger.js";
|
|
4
|
-
import { generateUniqueSlug as
|
|
5
|
-
import { useNavbarAutoSync as
|
|
6
|
-
import { createHistoryManager as
|
|
7
|
-
import { applyPatch as
|
|
8
|
-
import { PatchBuilder as
|
|
9
|
-
import { componentRegistry as
|
|
4
|
+
import { generateUniqueSlug as X, createDefaultPageStructure as Y } from "../utils/pageTemplateFactory.js";
|
|
5
|
+
import { useNavbarAutoSync as Z } from "./useNavbarAutoSync.js";
|
|
6
|
+
import { createHistoryManager as _ } from "../engine/patch/history.js";
|
|
7
|
+
import { applyPatch as I } from "../engine/patch/applyPatch.js";
|
|
8
|
+
import { PatchBuilder as h } from "../engine/patch/PatchBuilder.js";
|
|
9
|
+
import { componentRegistry as ee } from "../engine/registry/registry.js";
|
|
10
10
|
import { pluginRegistry as v } from "../engine/plugins/pluginRegistry.js";
|
|
11
|
-
function
|
|
12
|
-
const { initialData: B } =
|
|
13
|
-
|
|
14
|
-
), [g, m] =
|
|
11
|
+
function de(D = {}) {
|
|
12
|
+
const { initialData: B } = D, A = k(() => B || null, [B]), [t, d] = p(
|
|
13
|
+
A
|
|
14
|
+
), [g, m] = p("home"), [c] = p(() => _(50)), [n, i] = p(null), [C, S] = p(null), s = o(
|
|
15
15
|
(e, r) => {
|
|
16
16
|
if (!t || !e?.length) return;
|
|
17
17
|
c.push(t, e, r || "User edit");
|
|
18
|
-
const
|
|
19
|
-
if (f.debug("[applyChange] Patch result:",
|
|
20
|
-
const a =
|
|
18
|
+
const u = I(t, e);
|
|
19
|
+
if (f.debug("[applyChange] Patch result:", u), u.success && u.document) {
|
|
20
|
+
const a = V(u.document);
|
|
21
21
|
d(a);
|
|
22
22
|
} else
|
|
23
23
|
c.canUndo() && (c.undo(t).success || f.error("[applyChange] Failed to undo after patch error"));
|
|
24
24
|
},
|
|
25
25
|
[t, c]
|
|
26
26
|
);
|
|
27
|
-
|
|
28
|
-
const
|
|
27
|
+
Z(t, s);
|
|
28
|
+
const l = k(() => {
|
|
29
29
|
if (!t?.pages?.length) return null;
|
|
30
30
|
const e = t.pages.find((r) => r?.id === g) ?? t.pages[0];
|
|
31
31
|
return e && !Array.isArray(e.structure) && (e.structure = []), e;
|
|
32
|
-
}, [t, g]),
|
|
32
|
+
}, [t, g]), R = k(() => !n || !l || n === "palette-selector" || n === "template-selector" ? null : W(l.structure, n), [n, l]), U = n === "palette-selector", $ = n === "template-selector", b = o(() => {
|
|
33
33
|
if (!t) return;
|
|
34
34
|
const e = c.undo(t);
|
|
35
35
|
e.success && e.document && d(e.document);
|
|
36
|
-
}, [t, c]),
|
|
36
|
+
}, [t, c]), E = o(() => {
|
|
37
37
|
if (!t) return;
|
|
38
38
|
const e = c.redo(t);
|
|
39
39
|
e.success && e.document && d(e.document);
|
|
40
40
|
}, [t, c]), y = o(
|
|
41
41
|
(e) => {
|
|
42
|
-
const r =
|
|
42
|
+
const r = ee.get(e);
|
|
43
43
|
return r ? {
|
|
44
44
|
id: `${e}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
|
|
45
45
|
type: e,
|
|
@@ -54,36 +54,36 @@ function le(S = {}) {
|
|
|
54
54
|
), null);
|
|
55
55
|
},
|
|
56
56
|
[]
|
|
57
|
-
),
|
|
58
|
-
(e, r,
|
|
59
|
-
if (!(!t || !
|
|
57
|
+
), F = o(
|
|
58
|
+
(e, r, u) => {
|
|
59
|
+
if (!(!t || !l))
|
|
60
60
|
try {
|
|
61
61
|
const a = y(e);
|
|
62
62
|
if (!a) {
|
|
63
63
|
f.error("[handleAddBlock] Failed to create block:", e);
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
|
-
const
|
|
66
|
+
const P = h.addBlock(
|
|
67
67
|
t,
|
|
68
|
-
|
|
68
|
+
l.id,
|
|
69
69
|
a,
|
|
70
70
|
r,
|
|
71
|
-
|
|
71
|
+
u
|
|
72
72
|
);
|
|
73
|
-
s(
|
|
73
|
+
s(P, `Add ${e} block`), i(a.id);
|
|
74
74
|
} catch (a) {
|
|
75
75
|
f.error("[handleAddBlock] Error adding block:", a);
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
|
-
[
|
|
79
|
-
),
|
|
78
|
+
[l, t, y, s]
|
|
79
|
+
), w = o(
|
|
80
80
|
(e) => {
|
|
81
|
-
if (!(!t || !
|
|
81
|
+
if (!(!t || !l))
|
|
82
82
|
try {
|
|
83
83
|
n === e && i(null);
|
|
84
|
-
const r =
|
|
84
|
+
const r = h.removeBlock(
|
|
85
85
|
t,
|
|
86
|
-
|
|
86
|
+
l.id,
|
|
87
87
|
e
|
|
88
88
|
);
|
|
89
89
|
s(r, "Delete block");
|
|
@@ -91,14 +91,14 @@ function le(S = {}) {
|
|
|
91
91
|
f.error("Error deleting block:", r), n === e && i(null);
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
|
-
[t,
|
|
95
|
-
),
|
|
94
|
+
[t, l, n, s]
|
|
95
|
+
), x = o(
|
|
96
96
|
(e) => {
|
|
97
|
-
if (!(!t || !n || !
|
|
97
|
+
if (!(!t || !n || !l) && !(n === "palette-selector" || n === "template-selector"))
|
|
98
98
|
try {
|
|
99
|
-
const r =
|
|
99
|
+
const r = h.updateBlockProps(
|
|
100
100
|
t,
|
|
101
|
-
|
|
101
|
+
l.id,
|
|
102
102
|
n,
|
|
103
103
|
e
|
|
104
104
|
);
|
|
@@ -107,53 +107,55 @@ function le(S = {}) {
|
|
|
107
107
|
f.error("Error updating block:", r);
|
|
108
108
|
}
|
|
109
109
|
},
|
|
110
|
-
[t, n,
|
|
111
|
-
),
|
|
112
|
-
|
|
113
|
-
}, [
|
|
110
|
+
[t, n, l, s]
|
|
111
|
+
), M = o((e) => {
|
|
112
|
+
S(e);
|
|
113
|
+
}, []), q = o(() => {
|
|
114
|
+
d(null), m("home"), c.clear(), i(null), S(null);
|
|
115
|
+
}, [c]), H = o(
|
|
114
116
|
(e) => {
|
|
115
117
|
d(e), m(e.pages?.[0]?.id ?? "home"), c.clear(), i(null), e.pages?.[0]?.structure?.length > 0 && i(e.pages[0].structure[0].id);
|
|
116
118
|
},
|
|
117
119
|
[c]
|
|
118
|
-
),
|
|
120
|
+
), N = o((e) => {
|
|
119
121
|
m(e), i(null);
|
|
120
|
-
}, []),
|
|
121
|
-
(e, r,
|
|
122
|
-
if (!t || t.pages.find((
|
|
123
|
-
const
|
|
122
|
+
}, []), j = o(
|
|
123
|
+
(e, r, u) => {
|
|
124
|
+
if (!t || t.pages.find((T) => T.id === e)) return;
|
|
125
|
+
const P = X(u, t.pages), O = Y(
|
|
124
126
|
e,
|
|
125
127
|
r,
|
|
126
|
-
|
|
127
|
-
[...t.pages, { id: e, name: r, slug:
|
|
128
|
-
),
|
|
129
|
-
s(
|
|
128
|
+
P,
|
|
129
|
+
[...t.pages, { id: e, name: r, slug: P, structure: [] }]
|
|
130
|
+
), Q = h.addPage(t, O);
|
|
131
|
+
s(Q, `Adicionar página ${r}`), m(e), i(null);
|
|
130
132
|
},
|
|
131
133
|
[t, s]
|
|
132
|
-
),
|
|
134
|
+
), z = o(
|
|
133
135
|
(e) => {
|
|
134
136
|
if (!t || e === "home" || t.pages.length <= 1) return;
|
|
135
|
-
const r =
|
|
137
|
+
const r = h.removePage(t, e);
|
|
136
138
|
if (s(r, "Remover página"), g === e) {
|
|
137
|
-
const
|
|
138
|
-
m(
|
|
139
|
+
const u = t.pages.filter((a) => a.id !== e);
|
|
140
|
+
m(u[0]?.id ?? "home");
|
|
139
141
|
}
|
|
140
142
|
i(null);
|
|
141
143
|
},
|
|
142
144
|
[t, g, s]
|
|
143
|
-
),
|
|
145
|
+
), G = o(
|
|
144
146
|
(e) => t ? e !== "home" && t.pages.length > 1 : !1,
|
|
145
147
|
[t]
|
|
146
|
-
),
|
|
148
|
+
), J = k(
|
|
147
149
|
() => t?.plugins?.active ?? [],
|
|
148
150
|
[t]
|
|
149
|
-
),
|
|
151
|
+
), K = o(
|
|
150
152
|
(e) => {
|
|
151
153
|
if (!t) return;
|
|
152
154
|
const r = v.activate(t, e);
|
|
153
155
|
r !== t && d(r);
|
|
154
156
|
},
|
|
155
157
|
[t]
|
|
156
|
-
),
|
|
158
|
+
), L = o(
|
|
157
159
|
(e) => {
|
|
158
160
|
if (!t) return;
|
|
159
161
|
const r = v.deactivate(t, e);
|
|
@@ -165,35 +167,38 @@ function le(S = {}) {
|
|
|
165
167
|
// Estado
|
|
166
168
|
document: t,
|
|
167
169
|
currentPageId: g,
|
|
168
|
-
currentPage:
|
|
170
|
+
currentPage: l,
|
|
169
171
|
selectedBlockId: n,
|
|
170
|
-
selectedBlock:
|
|
172
|
+
selectedBlock: R,
|
|
171
173
|
history: c,
|
|
172
174
|
// Ações
|
|
173
175
|
setDocument: d,
|
|
174
|
-
loadDocument:
|
|
175
|
-
setCurrentPageId:
|
|
176
|
-
addPage:
|
|
177
|
-
removePage:
|
|
176
|
+
loadDocument: H,
|
|
177
|
+
setCurrentPageId: N,
|
|
178
|
+
addPage: j,
|
|
179
|
+
removePage: z,
|
|
178
180
|
setSelectedBlockId: i,
|
|
179
|
-
handleUndo:
|
|
180
|
-
handleRedo:
|
|
181
|
-
handleAddBlock:
|
|
182
|
-
handleDeleteBlock:
|
|
183
|
-
handleUpdateBlock:
|
|
181
|
+
handleUndo: b,
|
|
182
|
+
handleRedo: E,
|
|
183
|
+
handleAddBlock: F,
|
|
184
|
+
handleDeleteBlock: w,
|
|
185
|
+
handleUpdateBlock: x,
|
|
184
186
|
applyChange: s,
|
|
185
|
-
resetToTemplate:
|
|
187
|
+
resetToTemplate: q,
|
|
186
188
|
// Estado derivado
|
|
187
|
-
isPaletteSelected:
|
|
188
|
-
isTemplateSelected:
|
|
189
|
-
canRemovePage:
|
|
189
|
+
isPaletteSelected: U,
|
|
190
|
+
isTemplateSelected: $,
|
|
191
|
+
canRemovePage: G,
|
|
192
|
+
// Paleta
|
|
193
|
+
selectedPalette: C,
|
|
194
|
+
setSelectedPalette: M,
|
|
190
195
|
// Plugins
|
|
191
|
-
activePlugins:
|
|
192
|
-
activatePlugin:
|
|
193
|
-
deactivatePlugin:
|
|
196
|
+
activePlugins: J,
|
|
197
|
+
activatePlugin: K,
|
|
198
|
+
deactivatePlugin: L
|
|
194
199
|
};
|
|
195
200
|
}
|
|
196
201
|
export {
|
|
197
|
-
|
|
202
|
+
de as useEditorState
|
|
198
203
|
};
|
|
199
204
|
//# sourceMappingURL=useEditorState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorState.js","sources":["../../src/hooks/useEditorState.ts"],"sourcesContent":["/**\n * useEditorState Hook\n * Gerencia todo o estado do editor de landing pages\n */\n\nimport { useState, useMemo, useCallback } from \"react\";\nimport {\n SiteDocument,\n SitePage,\n Block,\n BlockType,\n HistoryManager,\n createHistoryManager,\n applyPatch,\n PatchBuilder,\n componentRegistry,\n pluginRegistry,\n} from \"../engine\";\nimport {\n findBlockInStructure,\n cleanDocumentStructure,\n} from \"../utils/blockUtils\";\nimport { logger } from \"../utils/logger\";\nimport {\n createDefaultPageStructure,\n generateUniqueSlug,\n} from \"../utils/pageTemplateFactory\";\nimport { useNavbarAutoSync } from \"./useNavbarAutoSync\";\n\ninterface UseEditorStateOptions {\n initialData?: SiteDocument | null;\n}\n\ninterface UseEditorStateReturn {\n // Estado\n document: SiteDocument | null;\n currentPageId: string;\n currentPage: ReturnType<typeof useMemo>;\n selectedBlockId: string | null;\n selectedBlock: Block | null;\n history: HistoryManager;\n\n // Ações\n setDocument: (doc: SiteDocument) => void;\n loadDocument: (doc: SiteDocument) => void;\n setCurrentPageId: (id: string) => void;\n addPage: (pageId: string, name: string, slug: string) => void;\n removePage: (pageId: string) => void;\n setSelectedBlockId: (id: string | null) => void;\n handleUndo: () => void;\n handleRedo: () => void;\n handleAddBlock: (\n blockType: BlockType,\n parentBlockId?: string,\n position?: number,\n ) => void;\n handleDeleteBlock: (blockId: string) => void;\n handleUpdateBlock: (updates: Record<string, any>) => void;\n applyChange: (patch: any[], description?: string) => void;\n resetToTemplate: () => void;\n\n // Estado derivado\n isPaletteSelected: boolean;\n isTemplateSelected: boolean;\n canRemovePage: (pageId: string) => boolean;\n\n // Plugins\n activePlugins: string[];\n activatePlugin: (pluginId: string) => void;\n deactivatePlugin: (pluginId: string) => void;\n}\n\n/**\n * Hook para gerenciar estado do editor\n */\nexport function useEditorState(\n options: UseEditorStateOptions = {},\n): UseEditorStateReturn {\n const { initialData } = options;\n\n // Sem initialData: documento null até o usuário escolher um template\n const initialDocument = useMemo(() => {\n if (initialData) {\n return initialData;\n }\n return null;\n }, [initialData]);\n\n // Estados\n const [document, setDocument] = useState<SiteDocument | null>(\n initialDocument,\n );\n const [currentPageId, setCurrentPageIdState] = useState<string>(\"home\");\n const [history] = useState<HistoryManager>(() => createHistoryManager(50));\n const [selectedBlockId, setSelectedBlockId] = useState<string | null>(null);\n\n // Aplicar mudanças via patches (precisa ser declarado antes de useNavbarAutoSync)\n const applyChange = useCallback(\n (patch: any[], description?: string) => {\n if (!document) return;\n if (!patch?.length) return;\n\n // IMPORTANTE: Capturar histórico ANTES de aplicar patch\n history.push(document, patch, description || \"User edit\");\n\n const result = applyPatch(document, patch);\n logger.debug(\"[applyChange] Patch result:\", result);\n\n if (result.success && result.document) {\n const cleanedDocument = cleanDocumentStructure(result.document);\n setDocument(cleanedDocument);\n } else {\n // Se falhar, reverter histórico\n if (history.canUndo()) {\n const undoResult = history.undo(document);\n if (!undoResult.success) {\n logger.error(\"[applyChange] Failed to undo after patch error\");\n }\n }\n }\n },\n [document, history],\n );\n\n // Hook de sincronização automática do navbar\n useNavbarAutoSync(document, applyChange);\n\n // Página atual (derivada de currentPageId; sem navegação, só edição)\n const currentPage = useMemo(() => {\n if (!document?.pages?.length) return null;\n const page =\n document.pages.find((p) => p?.id === currentPageId) ?? document.pages[0];\n if (page && !Array.isArray(page.structure)) {\n page.structure = [];\n }\n return page;\n }, [document, currentPageId]);\n\n // Bloco selecionado\n const selectedBlock = useMemo(() => {\n if (!selectedBlockId || !currentPage) return null;\n if (\n selectedBlockId === \"palette-selector\" ||\n selectedBlockId === \"template-selector\"\n ) {\n return null;\n }\n return findBlockInStructure(currentPage.structure, selectedBlockId);\n }, [selectedBlockId, currentPage]);\n\n // Estados derivados\n const isPaletteSelected = selectedBlockId === \"palette-selector\";\n const isTemplateSelected = selectedBlockId === \"template-selector\";\n\n // Undo/Redo\n const handleUndo = useCallback(() => {\n if (!document) return;\n const result = history.undo(document);\n if (result.success && result.document) {\n setDocument(result.document);\n }\n }, [document, history]);\n\n const handleRedo = useCallback(() => {\n if (!document) return;\n const result = history.redo(document);\n if (result.success && result.document) {\n setDocument(result.document);\n }\n }, [document, history]);\n\n // Criar bloco\n const createBlockFromType = useCallback(\n (blockType: BlockType): Block | null => {\n const definition = componentRegistry.get(blockType);\n if (!definition) {\n logger.error(\n `[createBlockFromType] Block type \"${blockType}\" not found in registry`,\n );\n return null;\n }\n\n const id = `${blockType}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n\n return {\n id,\n type: blockType,\n props: {\n ...definition.defaultProps,\n ...(definition.defaultChildren && {\n children: definition.defaultChildren,\n }),\n },\n } as Block;\n },\n [],\n );\n\n // Adicionar bloco (mantido para API; editor template-based não exibe paleta de blocos)\n const handleAddBlock = useCallback(\n (blockType: BlockType, parentBlockId?: string, position?: number) => {\n if (!document || !currentPage) return;\n\n try {\n const newBlock = createBlockFromType(blockType);\n if (!newBlock) {\n logger.error(\"[handleAddBlock] Failed to create block:\", blockType);\n return;\n }\n\n const patch = PatchBuilder.addBlock(\n document,\n currentPage.id,\n newBlock,\n parentBlockId,\n position,\n );\n\n applyChange(patch, `Add ${blockType} block`);\n setSelectedBlockId(newBlock.id);\n } catch (error) {\n logger.error(\"[handleAddBlock] Error adding block:\", error);\n }\n },\n [currentPage, document, createBlockFromType, applyChange],\n );\n\n // Deletar bloco\n const handleDeleteBlock = useCallback(\n (blockId: string) => {\n if (!document || !currentPage) return;\n\n try {\n if (selectedBlockId === blockId) {\n setSelectedBlockId(null);\n }\n const patch = PatchBuilder.removeBlock(\n document,\n currentPage.id,\n blockId,\n );\n applyChange(patch, \"Delete block\");\n } catch (error) {\n logger.error(\"Error deleting block:\", error);\n if (selectedBlockId === blockId) {\n setSelectedBlockId(null);\n }\n }\n },\n [document, currentPage, selectedBlockId, applyChange],\n );\n\n // Atualizar propriedades do bloco\n const handleUpdateBlock = useCallback(\n (updates: Record<string, any>) => {\n if (!document || !selectedBlockId || !currentPage) return;\n if (\n selectedBlockId === \"palette-selector\" ||\n selectedBlockId === \"template-selector\"\n )\n return;\n\n try {\n const patch = PatchBuilder.updateBlockProps(\n document,\n currentPage.id,\n selectedBlockId,\n updates,\n );\n if (patch?.length) {\n applyChange(patch, \"Update block properties\");\n }\n } catch (error) {\n logger.error(\"Error updating block:\", error);\n }\n },\n [document, selectedBlockId, currentPage, applyChange],\n );\n\n // Voltar ao seletor de templates (document = null)\n const resetToTemplate = useCallback(() => {\n setDocument(null);\n setCurrentPageIdState(\"home\");\n history.clear();\n setSelectedBlockId(null);\n }, [history]);\n\n // Carregar um documento completo (ex: gerado por IA)\n const loadDocument = useCallback(\n (doc: SiteDocument) => {\n setDocument(doc);\n setCurrentPageIdState(doc.pages?.[0]?.id ?? \"home\");\n history.clear();\n setSelectedBlockId(null);\n if (doc.pages?.[0]?.structure?.length > 0) {\n setSelectedBlockId(doc.pages[0].structure[0].id);\n }\n },\n [history],\n );\n\n const setCurrentPageId = useCallback((id: string) => {\n setCurrentPageIdState(id);\n setSelectedBlockId(null);\n }, []);\n\n // Adicionar página (ex.: Avisos) com estrutura mínima\n const addPage = useCallback(\n (pageId: string, name: string, slug: string) => {\n if (!document) return;\n const existing = document.pages.find((p) => p.id === pageId);\n if (existing) return;\n\n // Gera slug único se necessário\n const uniqueSlug = generateUniqueSlug(slug, document.pages);\n\n // Cria página com estrutura padrão (navbar + conteúdo + footer)\n const newPage: SitePage = createDefaultPageStructure(\n pageId,\n name,\n uniqueSlug,\n [...document.pages, { id: pageId, name, slug: uniqueSlug, structure: [] }]\n );\n\n // Patch para adicionar página\n const addPagePatch = PatchBuilder.addPage(document, newPage);\n\n // Aplicar mudança - o hook useNavbarAutoSync irá detectar e sincronizar automaticamente\n applyChange(addPagePatch, `Adicionar página ${name}`);\n setCurrentPageIdState(pageId);\n setSelectedBlockId(null);\n },\n [document, applyChange],\n );\n\n // Remover página (não permite remover home; exige pelo menos uma página)\n const removePage = useCallback(\n (pageId: string) => {\n if (!document) return;\n if (pageId === \"home\") return;\n if (document.pages.length <= 1) return;\n\n const removePagePatch = PatchBuilder.removePage(document, pageId);\n\n // Aplicar mudança - o hook useNavbarAutoSync irá detectar e sincronizar automaticamente\n applyChange(removePagePatch, \"Remover página\");\n\n if (currentPageId === pageId) {\n const updatedPages = document.pages.filter(p => p.id !== pageId);\n setCurrentPageIdState(updatedPages[0]?.id ?? \"home\");\n }\n setSelectedBlockId(null);\n },\n [document, currentPageId, applyChange],\n );\n\n const canRemovePage = useCallback(\n (pageId: string) => {\n if (!document) return false;\n return pageId !== \"home\" && document.pages.length > 1;\n },\n [document],\n );\n\n // Plugins: estado derivado\n const activePlugins = useMemo(\n () => document?.plugins?.active ?? [],\n [document],\n );\n\n // Ativar plugin\n const activatePlugin = useCallback(\n (pluginId: string) => {\n if (!document) return;\n const updatedDocument = pluginRegistry.activate(document, pluginId);\n if (updatedDocument !== document) {\n setDocument(updatedDocument);\n }\n },\n [document],\n );\n\n // Desativar plugin\n const deactivatePlugin = useCallback(\n (pluginId: string) => {\n if (!document) return;\n const updatedDocument = pluginRegistry.deactivate(document, pluginId);\n if (updatedDocument !== document) {\n setDocument(updatedDocument);\n }\n },\n [document],\n );\n\n return {\n // Estado\n document,\n currentPageId,\n currentPage,\n selectedBlockId,\n selectedBlock,\n history,\n\n // Ações\n setDocument,\n loadDocument,\n setCurrentPageId,\n addPage,\n removePage,\n setSelectedBlockId,\n handleUndo,\n handleRedo,\n handleAddBlock,\n handleDeleteBlock,\n handleUpdateBlock,\n applyChange,\n resetToTemplate,\n\n // Estado derivado\n isPaletteSelected,\n isTemplateSelected,\n canRemovePage,\n\n // Plugins\n activePlugins,\n activatePlugin,\n deactivatePlugin,\n };\n}\n"],"names":["useEditorState","options","initialData","initialDocument","useMemo","document","setDocument","useState","currentPageId","setCurrentPageIdState","history","createHistoryManager","selectedBlockId","setSelectedBlockId","applyChange","useCallback","patch","description","result","applyPatch","logger","cleanedDocument","cleanDocumentStructure","useNavbarAutoSync","currentPage","page","p","selectedBlock","findBlockInStructure","isPaletteSelected","isTemplateSelected","handleUndo","handleRedo","createBlockFromType","blockType","definition","componentRegistry","handleAddBlock","parentBlockId","position","newBlock","PatchBuilder","error","handleDeleteBlock","blockId","handleUpdateBlock","updates","resetToTemplate","loadDocument","doc","setCurrentPageId","id","addPage","pageId","name","slug","uniqueSlug","generateUniqueSlug","newPage","createDefaultPageStructure","addPagePatch","removePage","removePagePatch","updatedPages","canRemovePage","activePlugins","activatePlugin","pluginId","updatedDocument","pluginRegistry","deactivatePlugin"],"mappings":";;;;;;;;;;AA2EO,SAASA,GACdC,IAAiC,IACX;AACtB,QAAM,EAAE,aAAAC,MAAgBD,GAGlBE,IAAkBC,EAAQ,MAC1BF,KAGG,MACN,CAACA,CAAW,CAAC,GAGV,CAACG,GAAUC,CAAW,IAAIC;AAAA,IAC9BJ;AAAA,EAAA,GAEI,CAACK,GAAeC,CAAqB,IAAIF,EAAiB,MAAM,GAChE,CAACG,CAAO,IAAIH,EAAyB,MAAMI,EAAqB,EAAE,CAAC,GACnE,CAACC,GAAiBC,CAAkB,IAAIN,EAAwB,IAAI,GAGpEO,IAAcC;AAAA,IAClB,CAACC,GAAcC,MAAyB;AAEtC,UADI,CAACZ,KACD,CAACW,GAAO,OAAQ;AAGpB,MAAAN,EAAQ,KAAKL,GAAUW,GAAOC,KAAe,WAAW;AAExD,YAAMC,IAASC,EAAWd,GAAUW,CAAK;AAGzC,UAFAI,EAAO,MAAM,+BAA+BF,CAAM,GAE9CA,EAAO,WAAWA,EAAO,UAAU;AACrC,cAAMG,IAAkBC,EAAuBJ,EAAO,QAAQ;AAC9D,QAAAZ,EAAYe,CAAe;AAAA,MAC7B;AAEE,QAAIX,EAAQ,cACSA,EAAQ,KAAKL,CAAQ,EACxB,WACde,EAAO,MAAM,gDAAgD;AAAA,IAIrE;AAAA,IACA,CAACf,GAAUK,CAAO;AAAA,EAAA;AAIpB,EAAAa,EAAkBlB,GAAUS,CAAW;AAGvC,QAAMU,IAAcpB,EAAQ,MAAM;AAChC,QAAI,CAACC,GAAU,OAAO,OAAQ,QAAO;AACrC,UAAMoB,IACJpB,EAAS,MAAM,KAAK,CAACqB,MAAMA,GAAG,OAAOlB,CAAa,KAAKH,EAAS,MAAM,CAAC;AACzE,WAAIoB,KAAQ,CAAC,MAAM,QAAQA,EAAK,SAAS,MACvCA,EAAK,YAAY,CAAA,IAEZA;AAAA,EACT,GAAG,CAACpB,GAAUG,CAAa,CAAC,GAGtBmB,IAAgBvB,EAAQ,MACxB,CAACQ,KAAmB,CAACY,KAEvBZ,MAAoB,sBACpBA,MAAoB,sBAEb,OAEFgB,EAAqBJ,EAAY,WAAWZ,CAAe,GACjE,CAACA,GAAiBY,CAAW,CAAC,GAG3BK,IAAoBjB,MAAoB,oBACxCkB,IAAqBlB,MAAoB,qBAGzCmB,IAAahB,EAAY,MAAM;AACnC,QAAI,CAACV,EAAU;AACf,UAAMa,IAASR,EAAQ,KAAKL,CAAQ;AACpC,IAAIa,EAAO,WAAWA,EAAO,YAC3BZ,EAAYY,EAAO,QAAQ;AAAA,EAE/B,GAAG,CAACb,GAAUK,CAAO,CAAC,GAEhBsB,IAAajB,EAAY,MAAM;AACnC,QAAI,CAACV,EAAU;AACf,UAAMa,IAASR,EAAQ,KAAKL,CAAQ;AACpC,IAAIa,EAAO,WAAWA,EAAO,YAC3BZ,EAAYY,EAAO,QAAQ;AAAA,EAE/B,GAAG,CAACb,GAAUK,CAAO,CAAC,GAGhBuB,IAAsBlB;AAAA,IAC1B,CAACmB,MAAuC;AACtC,YAAMC,IAAaC,EAAkB,IAAIF,CAAS;AAClD,aAAKC,IASE;AAAA,QACL,IAHS,GAAGD,CAAS,IAAI,KAAK,KAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AAAA,QAI9E,MAAMA;AAAA,QACN,OAAO;AAAA,UACL,GAAGC,EAAW;AAAA,UACd,GAAIA,EAAW,mBAAmB;AAAA,YAChC,UAAUA,EAAW;AAAA,UAAA;AAAA,QACvB;AAAA,MACF,KAhBAf,EAAO;AAAA,QACL,qCAAqCc,CAAS;AAAA,MAAA,GAEzC;AAAA,IAeX;AAAA,IACA,CAAA;AAAA,EAAC,GAIGG,IAAiBtB;AAAA,IACrB,CAACmB,GAAsBI,GAAwBC,MAAsB;AACnE,UAAI,GAAClC,KAAY,CAACmB;AAElB,YAAI;AACF,gBAAMgB,IAAWP,EAAoBC,CAAS;AAC9C,cAAI,CAACM,GAAU;AACb,YAAApB,EAAO,MAAM,4CAA4Cc,CAAS;AAClE;AAAA,UACF;AAEA,gBAAMlB,IAAQyB,EAAa;AAAA,YACzBpC;AAAA,YACAmB,EAAY;AAAA,YACZgB;AAAA,YACAF;AAAA,YACAC;AAAA,UAAA;AAGF,UAAAzB,EAAYE,GAAO,OAAOkB,CAAS,QAAQ,GAC3CrB,EAAmB2B,EAAS,EAAE;AAAA,QAChC,SAASE,GAAO;AACd,UAAAtB,EAAO,MAAM,wCAAwCsB,CAAK;AAAA,QAC5D;AAAA,IACF;AAAA,IACA,CAAClB,GAAanB,GAAU4B,GAAqBnB,CAAW;AAAA,EAAA,GAIpD6B,IAAoB5B;AAAA,IACxB,CAAC6B,MAAoB;AACnB,UAAI,GAACvC,KAAY,CAACmB;AAElB,YAAI;AACF,UAAIZ,MAAoBgC,KACtB/B,EAAmB,IAAI;AAEzB,gBAAMG,IAAQyB,EAAa;AAAA,YACzBpC;AAAA,YACAmB,EAAY;AAAA,YACZoB;AAAA,UAAA;AAEF,UAAA9B,EAAYE,GAAO,cAAc;AAAA,QACnC,SAAS0B,GAAO;AACd,UAAAtB,EAAO,MAAM,yBAAyBsB,CAAK,GACvC9B,MAAoBgC,KACtB/B,EAAmB,IAAI;AAAA,QAE3B;AAAA,IACF;AAAA,IACA,CAACR,GAAUmB,GAAaZ,GAAiBE,CAAW;AAAA,EAAA,GAIhD+B,IAAoB9B;AAAA,IACxB,CAAC+B,MAAiC;AAChC,UAAI,GAACzC,KAAY,CAACO,KAAmB,CAACY,MAEpC,EAAAZ,MAAoB,sBACpBA,MAAoB;AAItB,YAAI;AACF,gBAAMI,IAAQyB,EAAa;AAAA,YACzBpC;AAAA,YACAmB,EAAY;AAAA,YACZZ;AAAA,YACAkC;AAAA,UAAA;AAEF,UAAI9B,GAAO,UACTF,EAAYE,GAAO,yBAAyB;AAAA,QAEhD,SAAS0B,GAAO;AACd,UAAAtB,EAAO,MAAM,yBAAyBsB,CAAK;AAAA,QAC7C;AAAA,IACF;AAAA,IACA,CAACrC,GAAUO,GAAiBY,GAAaV,CAAW;AAAA,EAAA,GAIhDiC,IAAkBhC,EAAY,MAAM;AACxC,IAAAT,EAAY,IAAI,GAChBG,EAAsB,MAAM,GAC5BC,EAAQ,MAAA,GACRG,EAAmB,IAAI;AAAA,EACzB,GAAG,CAACH,CAAO,CAAC,GAGNsC,IAAejC;AAAA,IACnB,CAACkC,MAAsB;AACrB,MAAA3C,EAAY2C,CAAG,GACfxC,EAAsBwC,EAAI,QAAQ,CAAC,GAAG,MAAM,MAAM,GAClDvC,EAAQ,MAAA,GACRG,EAAmB,IAAI,GACnBoC,EAAI,QAAQ,CAAC,GAAG,WAAW,SAAS,KACtCpC,EAAmBoC,EAAI,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE;AAAA,IAEnD;AAAA,IACA,CAACvC,CAAO;AAAA,EAAA,GAGJwC,IAAmBnC,EAAY,CAACoC,MAAe;AACnD,IAAA1C,EAAsB0C,CAAE,GACxBtC,EAAmB,IAAI;AAAA,EACzB,GAAG,CAAA,CAAE,GAGCuC,IAAUrC;AAAA,IACd,CAACsC,GAAgBC,GAAcC,MAAiB;AAG9C,UAFI,CAAClD,KACYA,EAAS,MAAM,KAAK,CAACqB,MAAMA,EAAE,OAAO2B,CAAM,EAC7C;AAGd,YAAMG,IAAaC,EAAmBF,GAAMlD,EAAS,KAAK,GAGpDqD,IAAoBC;AAAA,QACxBN;AAAA,QACAC;AAAA,QACAE;AAAA,QACA,CAAC,GAAGnD,EAAS,OAAO,EAAE,IAAIgD,GAAQ,MAAAC,GAAM,MAAME,GAAY,WAAW,IAAI;AAAA,MAAA,GAIrEI,IAAenB,EAAa,QAAQpC,GAAUqD,CAAO;AAG3D,MAAA5C,EAAY8C,GAAc,oBAAoBN,CAAI,EAAE,GACpD7C,EAAsB4C,CAAM,GAC5BxC,EAAmB,IAAI;AAAA,IACzB;AAAA,IACA,CAACR,GAAUS,CAAW;AAAA,EAAA,GAIlB+C,IAAa9C;AAAA,IACjB,CAACsC,MAAmB;AAGlB,UAFI,CAAChD,KACDgD,MAAW,UACXhD,EAAS,MAAM,UAAU,EAAG;AAEhC,YAAMyD,IAAkBrB,EAAa,WAAWpC,GAAUgD,CAAM;AAKhE,UAFAvC,EAAYgD,GAAiB,gBAAgB,GAEzCtD,MAAkB6C,GAAQ;AAC5B,cAAMU,IAAe1D,EAAS,MAAM,OAAO,CAAAqB,MAAKA,EAAE,OAAO2B,CAAM;AAC/D,QAAA5C,EAAsBsD,EAAa,CAAC,GAAG,MAAM,MAAM;AAAA,MACrD;AACA,MAAAlD,EAAmB,IAAI;AAAA,IACzB;AAAA,IACA,CAACR,GAAUG,GAAeM,CAAW;AAAA,EAAA,GAGjCkD,IAAgBjD;AAAA,IACpB,CAACsC,MACMhD,IACEgD,MAAW,UAAUhD,EAAS,MAAM,SAAS,IAD9B;AAAA,IAGxB,CAACA,CAAQ;AAAA,EAAA,GAIL4D,IAAgB7D;AAAA,IACpB,MAAMC,GAAU,SAAS,UAAU,CAAA;AAAA,IACnC,CAACA,CAAQ;AAAA,EAAA,GAIL6D,IAAiBnD;AAAA,IACrB,CAACoD,MAAqB;AACpB,UAAI,CAAC9D,EAAU;AACf,YAAM+D,IAAkBC,EAAe,SAAShE,GAAU8D,CAAQ;AAClE,MAAIC,MAAoB/D,KACtBC,EAAY8D,CAAe;AAAA,IAE/B;AAAA,IACA,CAAC/D,CAAQ;AAAA,EAAA,GAILiE,IAAmBvD;AAAA,IACvB,CAACoD,MAAqB;AACpB,UAAI,CAAC9D,EAAU;AACf,YAAM+D,IAAkBC,EAAe,WAAWhE,GAAU8D,CAAQ;AACpE,MAAIC,MAAoB/D,KACtBC,EAAY8D,CAAe;AAAA,IAE/B;AAAA,IACA,CAAC/D,CAAQ;AAAA,EAAA;AAGX,SAAO;AAAA;AAAA,IAEL,UAAAA;AAAA,IACA,eAAAG;AAAA,IACA,aAAAgB;AAAA,IACA,iBAAAZ;AAAA,IACA,eAAAe;AAAA,IACA,SAAAjB;AAAA;AAAA,IAGA,aAAAJ;AAAA,IACA,cAAA0C;AAAA,IACA,kBAAAE;AAAA,IACA,SAAAE;AAAA,IACA,YAAAS;AAAA,IACA,oBAAAhD;AAAA,IACA,YAAAkB;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAK;AAAA,IACA,mBAAAM;AAAA,IACA,mBAAAE;AAAA,IACA,aAAA/B;AAAA,IACA,iBAAAiC;AAAA;AAAA,IAGA,mBAAAlB;AAAA,IACA,oBAAAC;AAAA,IACA,eAAAkC;AAAA;AAAA,IAGA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAI;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"useEditorState.js","sources":["../../src/hooks/useEditorState.ts"],"sourcesContent":["/**\n * useEditorState Hook\n * Gerencia todo o estado do editor de landing pages\n */\n\nimport { useState, useMemo, useCallback } from \"react\";\nimport {\n SiteDocument,\n SitePage,\n Block,\n BlockType,\n HistoryManager,\n createHistoryManager,\n applyPatch,\n PatchBuilder,\n componentRegistry,\n pluginRegistry,\n} from \"../engine\";\nimport {\n findBlockInStructure,\n cleanDocumentStructure,\n} from \"../utils/blockUtils\";\nimport { logger } from \"../utils/logger\";\nimport {\n createDefaultPageStructure,\n generateUniqueSlug,\n} from \"../utils/pageTemplateFactory\";\nimport { useNavbarAutoSync } from \"./useNavbarAutoSync\";\n\ninterface UseEditorStateOptions {\n initialData?: SiteDocument | null;\n}\n\ninterface UseEditorStateReturn {\n // Estado\n document: SiteDocument | null;\n currentPageId: string;\n currentPage: ReturnType<typeof useMemo>;\n selectedBlockId: string | null;\n selectedBlock: Block | null;\n history: HistoryManager;\n\n // Ações\n setDocument: (doc: SiteDocument) => void;\n loadDocument: (doc: SiteDocument) => void;\n setCurrentPageId: (id: string) => void;\n addPage: (pageId: string, name: string, slug: string) => void;\n removePage: (pageId: string) => void;\n setSelectedBlockId: (id: string | null) => void;\n handleUndo: () => void;\n handleRedo: () => void;\n handleAddBlock: (\n blockType: BlockType,\n parentBlockId?: string,\n position?: number,\n ) => void;\n handleDeleteBlock: (blockId: string) => void;\n handleUpdateBlock: (updates: Record<string, any>) => void;\n applyChange: (patch: any[], description?: string) => void;\n resetToTemplate: () => void;\n\n // Estado derivado\n isPaletteSelected: boolean;\n isTemplateSelected: boolean;\n canRemovePage: (pageId: string) => boolean;\n\n // Paleta\n selectedPalette: string | null;\n setSelectedPalette: (name: string | null) => void;\n\n // Plugins\n activePlugins: string[];\n activatePlugin: (pluginId: string) => void;\n deactivatePlugin: (pluginId: string) => void;\n}\n\n/**\n * Hook para gerenciar estado do editor\n */\nexport function useEditorState(\n options: UseEditorStateOptions = {},\n): UseEditorStateReturn {\n const { initialData } = options;\n\n // Sem initialData: documento null até o usuário escolher um template\n const initialDocument = useMemo(() => {\n if (initialData) {\n return initialData;\n }\n return null;\n }, [initialData]);\n\n // Estados\n const [document, setDocument] = useState<SiteDocument | null>(\n initialDocument,\n );\n const [currentPageId, setCurrentPageIdState] = useState<string>(\"home\");\n const [history] = useState<HistoryManager>(() => createHistoryManager(50));\n const [selectedBlockId, setSelectedBlockId] = useState<string | null>(null);\n const [selectedPalette, setSelectedPaletteState] = useState<string | null>(null);\n\n // Aplicar mudanças via patches (precisa ser declarado antes de useNavbarAutoSync)\n const applyChange = useCallback(\n (patch: any[], description?: string) => {\n if (!document) return;\n if (!patch?.length) return;\n\n // IMPORTANTE: Capturar histórico ANTES de aplicar patch\n history.push(document, patch, description || \"User edit\");\n\n const result = applyPatch(document, patch);\n logger.debug(\"[applyChange] Patch result:\", result);\n\n if (result.success && result.document) {\n const cleanedDocument = cleanDocumentStructure(result.document);\n setDocument(cleanedDocument);\n } else {\n // Se falhar, reverter histórico\n if (history.canUndo()) {\n const undoResult = history.undo(document);\n if (!undoResult.success) {\n logger.error(\"[applyChange] Failed to undo after patch error\");\n }\n }\n }\n },\n [document, history],\n );\n\n // Hook de sincronização automática do navbar\n useNavbarAutoSync(document, applyChange);\n\n // Página atual (derivada de currentPageId; sem navegação, só edição)\n const currentPage = useMemo(() => {\n if (!document?.pages?.length) return null;\n const page =\n document.pages.find((p) => p?.id === currentPageId) ?? document.pages[0];\n if (page && !Array.isArray(page.structure)) {\n page.structure = [];\n }\n return page;\n }, [document, currentPageId]);\n\n // Bloco selecionado\n const selectedBlock = useMemo(() => {\n if (!selectedBlockId || !currentPage) return null;\n if (\n selectedBlockId === \"palette-selector\" ||\n selectedBlockId === \"template-selector\"\n ) {\n return null;\n }\n return findBlockInStructure(currentPage.structure, selectedBlockId);\n }, [selectedBlockId, currentPage]);\n\n // Estados derivados\n const isPaletteSelected = selectedBlockId === \"palette-selector\";\n const isTemplateSelected = selectedBlockId === \"template-selector\";\n\n // Undo/Redo\n const handleUndo = useCallback(() => {\n if (!document) return;\n const result = history.undo(document);\n if (result.success && result.document) {\n setDocument(result.document);\n }\n }, [document, history]);\n\n const handleRedo = useCallback(() => {\n if (!document) return;\n const result = history.redo(document);\n if (result.success && result.document) {\n setDocument(result.document);\n }\n }, [document, history]);\n\n // Criar bloco\n const createBlockFromType = useCallback(\n (blockType: BlockType): Block | null => {\n const definition = componentRegistry.get(blockType);\n if (!definition) {\n logger.error(\n `[createBlockFromType] Block type \"${blockType}\" not found in registry`,\n );\n return null;\n }\n\n const id = `${blockType}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n\n return {\n id,\n type: blockType,\n props: {\n ...definition.defaultProps,\n ...(definition.defaultChildren && {\n children: definition.defaultChildren,\n }),\n },\n } as Block;\n },\n [],\n );\n\n // Adicionar bloco (mantido para API; editor template-based não exibe paleta de blocos)\n const handleAddBlock = useCallback(\n (blockType: BlockType, parentBlockId?: string, position?: number) => {\n if (!document || !currentPage) return;\n\n try {\n const newBlock = createBlockFromType(blockType);\n if (!newBlock) {\n logger.error(\"[handleAddBlock] Failed to create block:\", blockType);\n return;\n }\n\n const patch = PatchBuilder.addBlock(\n document,\n currentPage.id,\n newBlock,\n parentBlockId,\n position,\n );\n\n applyChange(patch, `Add ${blockType} block`);\n setSelectedBlockId(newBlock.id);\n } catch (error) {\n logger.error(\"[handleAddBlock] Error adding block:\", error);\n }\n },\n [currentPage, document, createBlockFromType, applyChange],\n );\n\n // Deletar bloco\n const handleDeleteBlock = useCallback(\n (blockId: string) => {\n if (!document || !currentPage) return;\n\n try {\n if (selectedBlockId === blockId) {\n setSelectedBlockId(null);\n }\n const patch = PatchBuilder.removeBlock(\n document,\n currentPage.id,\n blockId,\n );\n applyChange(patch, \"Delete block\");\n } catch (error) {\n logger.error(\"Error deleting block:\", error);\n if (selectedBlockId === blockId) {\n setSelectedBlockId(null);\n }\n }\n },\n [document, currentPage, selectedBlockId, applyChange],\n );\n\n // Atualizar propriedades do bloco\n const handleUpdateBlock = useCallback(\n (updates: Record<string, any>) => {\n if (!document || !selectedBlockId || !currentPage) return;\n if (\n selectedBlockId === \"palette-selector\" ||\n selectedBlockId === \"template-selector\"\n )\n return;\n\n try {\n const patch = PatchBuilder.updateBlockProps(\n document,\n currentPage.id,\n selectedBlockId,\n updates,\n );\n if (patch?.length) {\n applyChange(patch, \"Update block properties\");\n }\n } catch (error) {\n logger.error(\"Error updating block:\", error);\n }\n },\n [document, selectedBlockId, currentPage, applyChange],\n );\n\n const setSelectedPalette = useCallback((name: string | null) => {\n setSelectedPaletteState(name);\n }, []);\n\n // Voltar ao seletor de templates (document = null)\n const resetToTemplate = useCallback(() => {\n setDocument(null);\n setCurrentPageIdState(\"home\");\n history.clear();\n setSelectedBlockId(null);\n setSelectedPaletteState(null);\n }, [history]);\n\n // Carregar um documento completo (ex: gerado por IA)\n const loadDocument = useCallback(\n (doc: SiteDocument) => {\n setDocument(doc);\n setCurrentPageIdState(doc.pages?.[0]?.id ?? \"home\");\n history.clear();\n setSelectedBlockId(null);\n if (doc.pages?.[0]?.structure?.length > 0) {\n setSelectedBlockId(doc.pages[0].structure[0].id);\n }\n },\n [history],\n );\n\n const setCurrentPageId = useCallback((id: string) => {\n setCurrentPageIdState(id);\n setSelectedBlockId(null);\n }, []);\n\n // Adicionar página (ex.: Avisos) com estrutura mínima\n const addPage = useCallback(\n (pageId: string, name: string, slug: string) => {\n if (!document) return;\n const existing = document.pages.find((p) => p.id === pageId);\n if (existing) return;\n\n // Gera slug único se necessário\n const uniqueSlug = generateUniqueSlug(slug, document.pages);\n\n // Cria página com estrutura padrão (navbar + conteúdo + footer)\n const newPage: SitePage = createDefaultPageStructure(\n pageId,\n name,\n uniqueSlug,\n [...document.pages, { id: pageId, name, slug: uniqueSlug, structure: [] }]\n );\n\n // Patch para adicionar página\n const addPagePatch = PatchBuilder.addPage(document, newPage);\n\n // Aplicar mudança - o hook useNavbarAutoSync irá detectar e sincronizar automaticamente\n applyChange(addPagePatch, `Adicionar página ${name}`);\n setCurrentPageIdState(pageId);\n setSelectedBlockId(null);\n },\n [document, applyChange],\n );\n\n // Remover página (não permite remover home; exige pelo menos uma página)\n const removePage = useCallback(\n (pageId: string) => {\n if (!document) return;\n if (pageId === \"home\") return;\n if (document.pages.length <= 1) return;\n\n const removePagePatch = PatchBuilder.removePage(document, pageId);\n\n // Aplicar mudança - o hook useNavbarAutoSync irá detectar e sincronizar automaticamente\n applyChange(removePagePatch, \"Remover página\");\n\n if (currentPageId === pageId) {\n const updatedPages = document.pages.filter(p => p.id !== pageId);\n setCurrentPageIdState(updatedPages[0]?.id ?? \"home\");\n }\n setSelectedBlockId(null);\n },\n [document, currentPageId, applyChange],\n );\n\n const canRemovePage = useCallback(\n (pageId: string) => {\n if (!document) return false;\n return pageId !== \"home\" && document.pages.length > 1;\n },\n [document],\n );\n\n // Plugins: estado derivado\n const activePlugins = useMemo(\n () => document?.plugins?.active ?? [],\n [document],\n );\n\n // Ativar plugin\n const activatePlugin = useCallback(\n (pluginId: string) => {\n if (!document) return;\n const updatedDocument = pluginRegistry.activate(document, pluginId);\n if (updatedDocument !== document) {\n setDocument(updatedDocument);\n }\n },\n [document],\n );\n\n // Desativar plugin\n const deactivatePlugin = useCallback(\n (pluginId: string) => {\n if (!document) return;\n const updatedDocument = pluginRegistry.deactivate(document, pluginId);\n if (updatedDocument !== document) {\n setDocument(updatedDocument);\n }\n },\n [document],\n );\n\n return {\n // Estado\n document,\n currentPageId,\n currentPage,\n selectedBlockId,\n selectedBlock,\n history,\n\n // Ações\n setDocument,\n loadDocument,\n setCurrentPageId,\n addPage,\n removePage,\n setSelectedBlockId,\n handleUndo,\n handleRedo,\n handleAddBlock,\n handleDeleteBlock,\n handleUpdateBlock,\n applyChange,\n resetToTemplate,\n\n // Estado derivado\n isPaletteSelected,\n isTemplateSelected,\n canRemovePage,\n\n // Paleta\n selectedPalette,\n setSelectedPalette,\n\n // Plugins\n activePlugins,\n activatePlugin,\n deactivatePlugin,\n };\n}\n"],"names":["useEditorState","options","initialData","initialDocument","useMemo","document","setDocument","useState","currentPageId","setCurrentPageIdState","history","createHistoryManager","selectedBlockId","setSelectedBlockId","selectedPalette","setSelectedPaletteState","applyChange","useCallback","patch","description","result","applyPatch","logger","cleanedDocument","cleanDocumentStructure","useNavbarAutoSync","currentPage","page","p","selectedBlock","findBlockInStructure","isPaletteSelected","isTemplateSelected","handleUndo","handleRedo","createBlockFromType","blockType","definition","componentRegistry","handleAddBlock","parentBlockId","position","newBlock","PatchBuilder","error","handleDeleteBlock","blockId","handleUpdateBlock","updates","setSelectedPalette","name","resetToTemplate","loadDocument","doc","setCurrentPageId","id","addPage","pageId","slug","uniqueSlug","generateUniqueSlug","newPage","createDefaultPageStructure","addPagePatch","removePage","removePagePatch","updatedPages","canRemovePage","activePlugins","activatePlugin","pluginId","updatedDocument","pluginRegistry","deactivatePlugin"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
export { LandingPageEditor } from './editor/LandingPageEditor';
|
|
6
6
|
export type { UploadConfig, LandingPageEditorProps } from './editor/LandingPageEditor';
|
|
7
7
|
export { LandingPageViewer } from './viewer/LandingPageViewer';
|
|
8
|
-
export type { BlockType, Block, BlockBase, ContainerBlock, StackBlock, GridBlock, BoxBlock, SpacerBlock, HeadingBlock, TextBlock, ImageBlock, ButtonBlock, LinkBlock, DividerBlock, BadgeBlock, IconBlock, AvatarBlock, VideoBlock, CardBlock, SectionBlock, HeroBlock, HeroVariationId, NavbarBlock, NavbarLink, NavbarVariationId, FooterBlock, FeatureBlock, FeatureGridBlock, PricingCardBlock, PricingBlock, TestimonialBlock, TestimonialGridBlock, FaqItemBlock, FaqBlock, CtaBlock, StatItemBlock, StatsBlock, LogoCloudBlock, CountdownBlock, CarouselBlock, BlogCardBlock, BlogCardGridBlock, TeamCardBlock, TeamGridBlock, CourseCardGridBlock, CategoryCardGridBlock, SocialLinksBlock, BlogPostCardBlock, BlogPostGridBlock, BlogPostDetailBlock, FormBlock, InputBlock, SiteDocument, SitePage, ImageGridItem, ImageGridPreset, TypographyConfig, } from './engine/schema/siteDocument';
|
|
8
|
+
export type { BlockType, Block, BlockBase, ContainerBlock, StackBlock, GridBlock, BoxBlock, SpacerBlock, HeadingBlock, TextBlock, ImageBlock, ButtonBlock, LinkBlock, DividerBlock, BadgeBlock, IconBlock, AvatarBlock, VideoBlock, CardBlock, SectionBlock, HeroBlock, HeroVariationId, NavbarBlock, NavbarLink, NavbarVariationId, FooterBlock, FeatureBlock, FeatureGridBlock, PricingCardBlock, PricingBlock, TestimonialBlock, TestimonialGridBlock, FaqItemBlock, FaqBlock, CtaBlock, StatItemBlock, StatsBlock, LogoCloudBlock, CountdownBlock, CarouselBlock, BlogCardBlock, BlogCardGridBlock, TeamCardBlock, TeamGridBlock, CourseCardGridBlock, CategoryCardGridBlock, SocialLinksBlock, BlogPostCardBlock, BlogPostGridBlock, BlogPostDetailBlock, ProductShowcaseBlock, AboutSectionBlock, ContactSectionBlock, FormBlock, InputBlock, SiteDocument, SitePage, ImageGridItem, ImageGridPreset, TypographyConfig, } from './engine/schema/siteDocument';
|
|
9
9
|
export { createEmptySiteDocument, } from './engine/schema/siteDocument';
|
|
10
10
|
export type { RadiusScale, ShadowScale, SpacingScale, MotionLevel, BackgroundStyle, GradientDirection, ColorTokens, TypographyTokens, EffectTokens, LayoutTokens, ComponentTokens, ThemeTokens, } from './engine/schema/themeTokens';
|
|
11
11
|
export { radiusScaleMap, shadowScaleMap, spacingScaleMap, gradientDirectionMap, defaultEffectTokens, defaultLayoutTokens, defaultComponentTokens, defaultThemeTokens, darkThemeTokens, gradientThemeTokens, corporateThemeTokens, playfulThemeTokens, generateThemeCSSVariables, } from './engine/schema/themeTokens';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|