@brunoalz/smartgesti-site-editor 1.0.0 → 1.2.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.
Files changed (219) hide show
  1. package/dist/editor/BlockSelector.d.ts.map +1 -1
  2. package/dist/editor/BlockSelector.js +60 -57
  3. package/dist/editor/BlockSelector.js.map +1 -1
  4. package/dist/editor/LandingPageEditor.d.ts.map +1 -1
  5. package/dist/editor/LandingPageEditor.js +145 -128
  6. package/dist/editor/LandingPageEditor.js.map +1 -1
  7. package/dist/editor/PageTabBar.d.ts +4 -1
  8. package/dist/editor/PageTabBar.d.ts.map +1 -1
  9. package/dist/editor/PageTabBar.js +179 -41
  10. package/dist/editor/PageTabBar.js.map +1 -1
  11. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts +2 -0
  12. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts.map +1 -1
  13. package/dist/editor/PropertyEditor/BlockPropertyEditor.js +53 -45
  14. package/dist/editor/PropertyEditor/BlockPropertyEditor.js.map +1 -1
  15. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts +2 -0
  16. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts.map +1 -1
  17. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js +47 -33
  18. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js.map +1 -1
  19. package/dist/editor/PropertyEditor/VariationSelector.d.ts.map +1 -1
  20. package/dist/editor/PropertyEditor/VariationSelector.js +10 -6
  21. package/dist/editor/PropertyEditor/VariationSelector.js.map +1 -1
  22. package/dist/editor/PropertyEditor/index.js +20 -18
  23. package/dist/editor/PropertyEditor/index.js.map +1 -1
  24. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts +16 -0
  25. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts.map +1 -0
  26. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js +170 -0
  27. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js.map +1 -0
  28. package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts.map +1 -1
  29. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js +148 -121
  30. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js.map +1 -1
  31. package/dist/editor/PropertyEditor/inputs/index.d.ts +1 -0
  32. package/dist/editor/PropertyEditor/inputs/index.d.ts.map +1 -1
  33. package/dist/editor/PropertyEditor/renderPropertyInput.d.ts.map +1 -1
  34. package/dist/editor/PropertyEditor/renderPropertyInput.js +167 -139
  35. package/dist/editor/PropertyEditor/renderPropertyInput.js.map +1 -1
  36. package/dist/editor/components/CenterPanel.d.ts +9 -1
  37. package/dist/editor/components/CenterPanel.d.ts.map +1 -1
  38. package/dist/editor/components/CenterPanel.js +24 -14
  39. package/dist/editor/components/CenterPanel.js.map +1 -1
  40. package/dist/editor/components/RightPanel.d.ts +5 -0
  41. package/dist/editor/components/RightPanel.d.ts.map +1 -1
  42. package/dist/editor/components/RightPanel.js +18 -12
  43. package/dist/editor/components/RightPanel.js.map +1 -1
  44. package/dist/editor/components/Toolbar.d.ts +3 -0
  45. package/dist/editor/components/Toolbar.d.ts.map +1 -1
  46. package/dist/editor/components/Toolbar.js +54 -35
  47. package/dist/editor/components/Toolbar.js.map +1 -1
  48. package/dist/engine/export/exportHtml.d.ts.map +1 -1
  49. package/dist/engine/export/exportHtml.js +50 -50
  50. package/dist/engine/export/exportHtml.js.map +1 -1
  51. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +6 -0
  52. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -0
  53. package/dist/engine/export/exporters/sections/BlogPostExporters.js +101 -0
  54. package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -0
  55. package/dist/engine/export/exporters/sections/FooterExporter.js +22 -22
  56. package/dist/engine/export/exporters/sections/FooterExporter.js.map +1 -1
  57. package/dist/engine/export/exporters/sections/HeroExporter.d.ts.map +1 -1
  58. package/dist/engine/export/exporters/sections/HeroExporter.js +222 -205
  59. package/dist/engine/export/exporters/sections/HeroExporter.js.map +1 -1
  60. package/dist/engine/export/exporters/sections/MarketingExporters.js +88 -88
  61. package/dist/engine/export/exporters/sections/MarketingExporters.js.map +1 -1
  62. package/dist/engine/export/exporters/sections/NavbarExporter.js +34 -34
  63. package/dist/engine/export/exporters/sections/NavbarExporter.js.map +1 -1
  64. package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
  65. package/dist/engine/export/exporters/sections/index.js +29 -22
  66. package/dist/engine/export/exporters/sections/index.js.map +1 -1
  67. package/dist/engine/index.d.ts +3 -0
  68. package/dist/engine/index.d.ts.map +1 -1
  69. package/dist/engine/index.js +99 -87
  70. package/dist/engine/index.js.map +1 -1
  71. package/dist/engine/plugins/builtin/blog/index.d.ts +3 -0
  72. package/dist/engine/plugins/builtin/blog/index.d.ts.map +1 -0
  73. package/dist/engine/plugins/builtin/blog/manifest.d.ts +3 -0
  74. package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -0
  75. package/dist/engine/plugins/builtin/blog/manifest.js +273 -0
  76. package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -0
  77. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts +7 -0
  78. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts.map +1 -0
  79. package/dist/engine/plugins/builtin/blog/mockContentProvider.js +135 -0
  80. package/dist/engine/plugins/builtin/blog/mockContentProvider.js.map +1 -0
  81. package/dist/engine/plugins/contentHydration.d.ts +17 -0
  82. package/dist/engine/plugins/contentHydration.d.ts.map +1 -0
  83. package/dist/engine/plugins/contentHydration.js +121 -0
  84. package/dist/engine/plugins/contentHydration.js.map +1 -0
  85. package/dist/engine/plugins/dynamicPageResolver.d.ts +25 -0
  86. package/dist/engine/plugins/dynamicPageResolver.d.ts.map +1 -0
  87. package/dist/engine/plugins/dynamicPageResolver.js +32 -0
  88. package/dist/engine/plugins/dynamicPageResolver.js.map +1 -0
  89. package/dist/engine/plugins/index.d.ts +11 -0
  90. package/dist/engine/plugins/index.d.ts.map +1 -0
  91. package/dist/engine/plugins/pluginRegistry.d.ts +37 -0
  92. package/dist/engine/plugins/pluginRegistry.d.ts.map +1 -0
  93. package/dist/engine/plugins/pluginRegistry.js +134 -0
  94. package/dist/engine/plugins/pluginRegistry.js.map +1 -0
  95. package/dist/engine/plugins/types.d.ts +180 -0
  96. package/dist/engine/plugins/types.d.ts.map +1 -0
  97. package/dist/engine/presets/heroVariations.d.ts +5 -0
  98. package/dist/engine/presets/heroVariations.d.ts.map +1 -1
  99. package/dist/engine/presets/heroVariations.js +50 -6
  100. package/dist/engine/presets/heroVariations.js.map +1 -1
  101. package/dist/engine/preview/Preview.d.ts +6 -2
  102. package/dist/engine/preview/Preview.d.ts.map +1 -1
  103. package/dist/engine/preview/Preview.js +295 -125
  104. package/dist/engine/preview/Preview.js.map +1 -1
  105. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts +3 -0
  106. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts.map +1 -0
  107. package/dist/engine/registry/blocks/sections/blogPostCard.js +53 -0
  108. package/dist/engine/registry/blocks/sections/blogPostCard.js.map +1 -0
  109. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts +3 -0
  110. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -0
  111. package/dist/engine/registry/blocks/sections/blogPostDetail.js +49 -0
  112. package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -0
  113. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts +3 -0
  114. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts.map +1 -0
  115. package/dist/engine/registry/blocks/sections/blogPostGrid.js +89 -0
  116. package/dist/engine/registry/blocks/sections/blogPostGrid.js.map +1 -0
  117. package/dist/engine/registry/blocks/sections/hero.d.ts.map +1 -1
  118. package/dist/engine/registry/blocks/sections/hero.js +67 -14
  119. package/dist/engine/registry/blocks/sections/hero.js.map +1 -1
  120. package/dist/engine/registry/blocks/sections/index.d.ts +3 -0
  121. package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
  122. package/dist/engine/registry/blocks/sections/navbar.d.ts.map +1 -1
  123. package/dist/engine/registry/blocks/sections/navbar.js +2 -1
  124. package/dist/engine/registry/blocks/sections/navbar.js.map +1 -1
  125. package/dist/engine/registry/registry.d.ts.map +1 -1
  126. package/dist/engine/registry/registry.js +16 -12
  127. package/dist/engine/registry/registry.js.map +1 -1
  128. package/dist/engine/registry/types.d.ts +10 -6
  129. package/dist/engine/registry/types.d.ts.map +1 -1
  130. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts +3 -0
  131. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts.map +1 -0
  132. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js +199 -0
  133. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js.map +1 -0
  134. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts +3 -0
  135. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts.map +1 -0
  136. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +293 -0
  137. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -0
  138. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts +3 -0
  139. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts.map +1 -0
  140. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js +101 -0
  141. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js.map +1 -0
  142. package/dist/engine/render/renderers/sections/CtaRenderer.d.ts.map +1 -1
  143. package/dist/engine/render/renderers/sections/CtaRenderer.js +33 -31
  144. package/dist/engine/render/renderers/sections/CtaRenderer.js.map +1 -1
  145. package/dist/engine/render/renderers/sections/FaqItemRenderer.d.ts.map +1 -1
  146. package/dist/engine/render/renderers/sections/FaqItemRenderer.js +7 -6
  147. package/dist/engine/render/renderers/sections/FaqItemRenderer.js.map +1 -1
  148. package/dist/engine/render/renderers/sections/FaqRenderer.js +7 -7
  149. package/dist/engine/render/renderers/sections/FaqRenderer.js.map +1 -1
  150. package/dist/engine/render/renderers/sections/FeatureGridRenderer.d.ts.map +1 -1
  151. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js +19 -18
  152. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js.map +1 -1
  153. package/dist/engine/render/renderers/sections/FeatureRenderer.d.ts.map +1 -1
  154. package/dist/engine/render/renderers/sections/FeatureRenderer.js +5 -4
  155. package/dist/engine/render/renderers/sections/FeatureRenderer.js.map +1 -1
  156. package/dist/engine/render/renderers/sections/FooterRenderer.d.ts.map +1 -1
  157. package/dist/engine/render/renderers/sections/FooterRenderer.js +8 -7
  158. package/dist/engine/render/renderers/sections/FooterRenderer.js.map +1 -1
  159. package/dist/engine/render/renderers/sections/HeroRenderer.d.ts.map +1 -1
  160. package/dist/engine/render/renderers/sections/HeroRenderer.js +295 -218
  161. package/dist/engine/render/renderers/sections/HeroRenderer.js.map +1 -1
  162. package/dist/engine/render/renderers/sections/NavbarRenderer.d.ts.map +1 -1
  163. package/dist/engine/render/renderers/sections/NavbarRenderer.js +23 -22
  164. package/dist/engine/render/renderers/sections/NavbarRenderer.js.map +1 -1
  165. package/dist/engine/render/renderers/sections/PricingCardRenderer.d.ts.map +1 -1
  166. package/dist/engine/render/renderers/sections/PricingCardRenderer.js +7 -6
  167. package/dist/engine/render/renderers/sections/PricingCardRenderer.js.map +1 -1
  168. package/dist/engine/render/renderers/sections/PricingRenderer.js +9 -9
  169. package/dist/engine/render/renderers/sections/PricingRenderer.js.map +1 -1
  170. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.d.ts.map +1 -1
  171. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js +17 -16
  172. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js.map +1 -1
  173. package/dist/engine/render/renderers/sections/TestimonialRenderer.d.ts.map +1 -1
  174. package/dist/engine/render/renderers/sections/TestimonialRenderer.js +11 -10
  175. package/dist/engine/render/renderers/sections/TestimonialRenderer.js.map +1 -1
  176. package/dist/engine/render/renderers/sections/index.js +24 -18
  177. package/dist/engine/render/renderers/sections/index.js.map +1 -1
  178. package/dist/engine/schema/siteDocument.d.ts +104 -3
  179. package/dist/engine/schema/siteDocument.d.ts.map +1 -1
  180. package/dist/engine/schema/siteDocument.js.map +1 -1
  181. package/dist/engine/shared/carouselAnimation.d.ts +20 -0
  182. package/dist/engine/shared/carouselAnimation.d.ts.map +1 -0
  183. package/dist/engine/shared/carouselAnimation.js +62 -0
  184. package/dist/engine/shared/carouselAnimation.js.map +1 -0
  185. package/dist/engine/shared/imageGrid/types.d.ts +2 -0
  186. package/dist/engine/shared/imageGrid/types.d.ts.map +1 -1
  187. package/dist/engine/shared/showWhen.d.ts +44 -0
  188. package/dist/engine/shared/showWhen.d.ts.map +1 -0
  189. package/dist/engine/shared/showWhen.js +33 -0
  190. package/dist/engine/shared/showWhen.js.map +1 -0
  191. package/dist/hooks/useEditorState.d.ts +3 -0
  192. package/dist/hooks/useEditorState.d.ts.map +1 -1
  193. package/dist/hooks/useEditorState.js +106 -84
  194. package/dist/hooks/useEditorState.js.map +1 -1
  195. package/dist/index.d.ts +13 -2
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +109 -93
  198. package/dist/index.js.map +1 -1
  199. package/dist/shared/templates/escola-blog.d.ts +3 -0
  200. package/dist/shared/templates/escola-blog.d.ts.map +1 -0
  201. package/dist/shared/templates/escola-blog.js +160 -0
  202. package/dist/shared/templates/escola-blog.js.map +1 -0
  203. package/dist/shared/templates/index.d.ts +2 -0
  204. package/dist/shared/templates/index.d.ts.map +1 -1
  205. package/dist/shared/templates/index.js +30 -12
  206. package/dist/shared/templates/index.js.map +1 -1
  207. package/dist/utils/changeDetector.d.ts +2 -1
  208. package/dist/utils/changeDetector.d.ts.map +1 -1
  209. package/dist/utils/changeDetector.js +39 -39
  210. package/dist/utils/changeDetector.js.map +1 -1
  211. package/dist/utils/sharedTemplateToEngine.d.ts +4 -5
  212. package/dist/utils/sharedTemplateToEngine.d.ts.map +1 -1
  213. package/dist/utils/sharedTemplateToEngine.js +14 -87
  214. package/dist/utils/sharedTemplateToEngine.js.map +1 -1
  215. package/dist/viewer/LandingPageViewer.d.ts +13 -6
  216. package/dist/viewer/LandingPageViewer.d.ts.map +1 -1
  217. package/dist/viewer/LandingPageViewer.js +220 -122
  218. package/dist/viewer/LandingPageViewer.js.map +1 -1
  219. package/package.json +3 -2
@@ -1,44 +1,45 @@
1
- import { useMemo as B, useState as P, useCallback as l } from "react";
2
- import { cleanDocumentStructure as G, findBlockInStructure as J } from "../utils/blockUtils.js";
3
- import { logger as d } from "../utils/logger.js";
4
- import { generateUniqueSlug as K, createDefaultPageStructure as L } from "../utils/pageTemplateFactory.js";
5
- import { useNavbarAutoSync as O } from "./useNavbarAutoSync.js";
6
- import { createHistoryManager as Q } from "../engine/patch/history.js";
7
- import { applyPatch as T } from "../engine/patch/applyPatch.js";
1
+ import { useMemo as P, useState as k, useCallback as o } from "react";
2
+ import { cleanDocumentStructure as O, findBlockInStructure as Q } from "../utils/blockUtils.js";
3
+ import { logger as f } from "../utils/logger.js";
4
+ import { generateUniqueSlug as T, createDefaultPageStructure as V } from "../utils/pageTemplateFactory.js";
5
+ import { useNavbarAutoSync as W } from "./useNavbarAutoSync.js";
6
+ import { createHistoryManager as X } from "../engine/patch/history.js";
7
+ import { applyPatch as Y } from "../engine/patch/applyPatch.js";
8
8
  import { PatchBuilder as p } from "../engine/patch/PatchBuilder.js";
9
- import { componentRegistry as V } from "../engine/registry/registry.js";
10
- function ne(S = {}) {
11
- const { initialData: k } = S, D = B(() => k || null, [k]), [t, f] = P(
9
+ import { componentRegistry as Z } from "../engine/registry/registry.js";
10
+ import { pluginRegistry as v } from "../engine/plugins/pluginRegistry.js";
11
+ function le(S = {}) {
12
+ const { initialData: B } = S, D = P(() => B || null, [B]), [t, d] = k(
12
13
  D
13
- ), [m, g] = P("home"), [o] = P(() => Q(50)), [n, i] = P(null), s = l(
14
+ ), [g, m] = k("home"), [c] = k(() => X(50)), [n, i] = k(null), s = o(
14
15
  (e, r) => {
15
16
  if (!t || !e?.length) return;
16
- o.push(t, e, r || "User edit");
17
- const u = T(t, e);
18
- if (d.debug("[applyChange] Patch result:", u), u.success && u.document) {
19
- const a = G(u.document);
20
- f(a);
17
+ c.push(t, e, r || "User edit");
18
+ const l = Y(t, e);
19
+ if (f.debug("[applyChange] Patch result:", l), l.success && l.document) {
20
+ const a = O(l.document);
21
+ d(a);
21
22
  } else
22
- o.canUndo() && (o.undo(t).success || d.error("[applyChange] Failed to undo after patch error"));
23
+ c.canUndo() && (c.undo(t).success || f.error("[applyChange] Failed to undo after patch error"));
23
24
  },
24
- [t, o]
25
+ [t, c]
25
26
  );
26
- O(t, s);
27
- const c = B(() => {
27
+ W(t, s);
28
+ const u = P(() => {
28
29
  if (!t?.pages?.length) return null;
29
- const e = t.pages.find((r) => r?.id === m) ?? t.pages[0];
30
+ const e = t.pages.find((r) => r?.id === g) ?? t.pages[0];
30
31
  return e && !Array.isArray(e.structure) && (e.structure = []), e;
31
- }, [t, m]), A = B(() => !n || !c || n === "palette-selector" || n === "template-selector" ? null : J(c.structure, n), [n, c]), C = n === "palette-selector", v = n === "template-selector", R = l(() => {
32
+ }, [t, g]), A = P(() => !n || !u || n === "palette-selector" || n === "template-selector" ? null : Q(u.structure, n), [n, u]), C = n === "palette-selector", R = n === "template-selector", U = o(() => {
32
33
  if (!t) return;
33
- const e = o.undo(t);
34
- e.success && e.document && f(e.document);
35
- }, [t, o]), U = l(() => {
34
+ const e = c.undo(t);
35
+ e.success && e.document && d(e.document);
36
+ }, [t, c]), $ = o(() => {
36
37
  if (!t) return;
37
- const e = o.redo(t);
38
- e.success && e.document && f(e.document);
39
- }, [t, o]), y = l(
38
+ const e = c.redo(t);
39
+ e.success && e.document && d(e.document);
40
+ }, [t, c]), y = o(
40
41
  (e) => {
41
- const r = V.get(e);
42
+ const r = Z.get(e);
42
43
  return r ? {
43
44
  id: `${e}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
44
45
  type: e,
@@ -48,130 +49,151 @@ function ne(S = {}) {
48
49
  children: r.defaultChildren
49
50
  }
50
51
  }
51
- } : (d.error(
52
+ } : (f.error(
52
53
  `[createBlockFromType] Block type "${e}" not found in registry`
53
54
  ), null);
54
55
  },
55
56
  []
56
- ), $ = l(
57
- (e, r, u) => {
58
- if (!(!t || !c))
57
+ ), b = o(
58
+ (e, r, l) => {
59
+ if (!(!t || !u))
59
60
  try {
60
61
  const a = y(e);
61
62
  if (!a) {
62
- d.error("[handleAddBlock] Failed to create block:", e);
63
+ f.error("[handleAddBlock] Failed to create block:", e);
63
64
  return;
64
65
  }
65
66
  const h = p.addBlock(
66
67
  t,
67
- c.id,
68
+ u.id,
68
69
  a,
69
70
  r,
70
- u
71
+ l
71
72
  );
72
73
  s(h, `Add ${e} block`), i(a.id);
73
74
  } catch (a) {
74
- d.error("[handleAddBlock] Error adding block:", a);
75
+ f.error("[handleAddBlock] Error adding block:", a);
75
76
  }
76
77
  },
77
- [c, t, y, s]
78
- ), b = l(
78
+ [u, t, y, s]
79
+ ), E = o(
79
80
  (e) => {
80
- if (!(!t || !c))
81
+ if (!(!t || !u))
81
82
  try {
82
83
  n === e && i(null);
83
84
  const r = p.removeBlock(
84
85
  t,
85
- c.id,
86
+ u.id,
86
87
  e
87
88
  );
88
89
  s(r, "Delete block");
89
90
  } catch (r) {
90
- d.error("Error deleting block:", r), n === e && i(null);
91
+ f.error("Error deleting block:", r), n === e && i(null);
91
92
  }
92
93
  },
93
- [t, c, n, s]
94
- ), E = l(
94
+ [t, u, n, s]
95
+ ), F = o(
95
96
  (e) => {
96
- if (!(!t || !n || !c) && !(n === "palette-selector" || n === "template-selector"))
97
+ if (!(!t || !n || !u) && !(n === "palette-selector" || n === "template-selector"))
97
98
  try {
98
99
  const r = p.updateBlockProps(
99
100
  t,
100
- c.id,
101
+ u.id,
101
102
  n,
102
103
  e
103
104
  );
104
105
  r?.length && s(r, "Update block properties");
105
106
  } catch (r) {
106
- d.error("Error updating block:", r);
107
+ f.error("Error updating block:", r);
107
108
  }
108
109
  },
109
- [t, n, c, s]
110
- ), F = l(() => {
111
- f(null), g("home"), o.clear(), i(null);
112
- }, [o]), w = l(
110
+ [t, n, u, s]
111
+ ), w = o(() => {
112
+ d(null), m("home"), c.clear(), i(null);
113
+ }, [c]), x = o(
113
114
  (e) => {
114
- f(e), g(e.pages?.[0]?.id ?? "home"), o.clear(), i(null), e.pages?.[0]?.structure?.length > 0 && i(e.pages[0].structure[0].id);
115
+ 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);
115
116
  },
116
- [o]
117
- ), x = l((e) => {
118
- g(e), i(null);
119
- }, []), M = l(
120
- (e, r, u) => {
121
- if (!t || t.pages.find((z) => z.id === e)) return;
122
- const h = K(u, t.pages), N = L(
117
+ [c]
118
+ ), M = o((e) => {
119
+ m(e), i(null);
120
+ }, []), q = o(
121
+ (e, r, l) => {
122
+ if (!t || t.pages.find((L) => L.id === e)) return;
123
+ const h = T(l, t.pages), J = V(
123
124
  e,
124
125
  r,
125
126
  h,
126
127
  [...t.pages, { id: e, name: r, slug: h, structure: [] }]
127
- ), j = p.addPage(t, N);
128
- s(j, `Adicionar página ${r}`), g(e), i(null);
128
+ ), K = p.addPage(t, J);
129
+ s(K, `Adicionar página ${r}`), m(e), i(null);
129
130
  },
130
131
  [t, s]
131
- ), q = l(
132
+ ), H = o(
132
133
  (e) => {
133
134
  if (!t || e === "home" || t.pages.length <= 1) return;
134
135
  const r = p.removePage(t, e);
135
- if (s(r, "Remover página"), m === e) {
136
- const u = t.pages.filter((a) => a.id !== e);
137
- g(u[0]?.id ?? "home");
136
+ if (s(r, "Remover página"), g === e) {
137
+ const l = t.pages.filter((a) => a.id !== e);
138
+ m(l[0]?.id ?? "home");
138
139
  }
139
140
  i(null);
140
141
  },
141
- [t, m, s]
142
- ), H = l(
142
+ [t, g, s]
143
+ ), N = o(
143
144
  (e) => t ? e !== "home" && t.pages.length > 1 : !1,
144
145
  [t]
146
+ ), j = P(
147
+ () => t?.plugins?.active ?? [],
148
+ [t]
149
+ ), z = o(
150
+ (e) => {
151
+ if (!t) return;
152
+ const r = v.activate(t, e);
153
+ r !== t && d(r);
154
+ },
155
+ [t]
156
+ ), G = o(
157
+ (e) => {
158
+ if (!t) return;
159
+ const r = v.deactivate(t, e);
160
+ r !== t && d(r);
161
+ },
162
+ [t]
145
163
  );
146
164
  return {
147
165
  // Estado
148
166
  document: t,
149
- currentPageId: m,
150
- currentPage: c,
167
+ currentPageId: g,
168
+ currentPage: u,
151
169
  selectedBlockId: n,
152
170
  selectedBlock: A,
153
- history: o,
171
+ history: c,
154
172
  // Ações
155
- setDocument: f,
156
- loadDocument: w,
157
- setCurrentPageId: x,
158
- addPage: M,
159
- removePage: q,
173
+ setDocument: d,
174
+ loadDocument: x,
175
+ setCurrentPageId: M,
176
+ addPage: q,
177
+ removePage: H,
160
178
  setSelectedBlockId: i,
161
- handleUndo: R,
162
- handleRedo: U,
163
- handleAddBlock: $,
164
- handleDeleteBlock: b,
165
- handleUpdateBlock: E,
179
+ handleUndo: U,
180
+ handleRedo: $,
181
+ handleAddBlock: b,
182
+ handleDeleteBlock: E,
183
+ handleUpdateBlock: F,
166
184
  applyChange: s,
167
- resetToTemplate: F,
185
+ resetToTemplate: w,
168
186
  // Estado derivado
169
187
  isPaletteSelected: C,
170
- isTemplateSelected: v,
171
- canRemovePage: H
188
+ isTemplateSelected: R,
189
+ canRemovePage: N,
190
+ // Plugins
191
+ activePlugins: j,
192
+ activatePlugin: z,
193
+ deactivatePlugin: G
172
194
  };
173
195
  }
174
196
  export {
175
- ne as useEditorState
197
+ le as useEditorState
176
198
  };
177
199
  //# 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} 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\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 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}\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"],"mappings":"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"}
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":"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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, 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, 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';
@@ -32,11 +32,22 @@ export { siteDefaultTheme, siteDarkTheme, generateSiteCSSVariables, generateSite
32
32
  export type { ThemePreset, } from './engine/presets/themePresets';
33
33
  export { cleanPreset, neonPreset, pastelPreset, corporatePreset, playfulKidsPreset, glassPreset, minimalPreset, classicPreset, themePresets, getPreset, getAllPresets, applyOverrides, validateContrast, } from './engine/presets/themePresets';
34
34
  export type { HeroVariationPreset, } from './engine/presets/heroVariations';
35
- export { heroVariations, heroVariationIds, getHeroVariation, HERO_IMAGE_NAMES, PLACEHOLDER_IMAGE_URL, } from './engine/presets/heroVariations';
35
+ export { heroVariations, heroVariationIds, getHeroVariation, HERO_IMAGE_NAMES, PLACEHOLDER_IMAGE_URL, CAROUSEL_PLACEHOLDER_IMAGES, } from './engine/presets/heroVariations';
36
36
  export type { NavbarVariationPreset, } from './engine/presets/navbarVariations';
37
37
  export { navbarVariations, navbarVariationIds, getNavbarVariation, } from './engine/presets/navbarVariations';
38
38
  export { generateCompleteLandingPage, generatePatchesForLandingPage, generateModernLandingPage, } from './engine/generators/generateLandingPage';
39
39
  export type { ImageGridItem as EngineImageGridItem, ImageGridPreset as EngineImageGridPreset, } from './engine/shared/imageGrid';
40
+ export { evaluateShowWhen } from './engine/shared/showWhen';
41
+ export type { ShowWhenCondition, ShowWhenFieldCondition, ShowWhenAndCondition, ShowWhenOrCondition, ShowWhenContext, } from './engine/shared/showWhen';
42
+ export { pluginRegistry } from './engine/plugins/pluginRegistry';
43
+ export type { PluginRegistry } from './engine/plugins/pluginRegistry';
44
+ export type { DataSchemaField, DataSchema, ContentListParams, ContentItem, ContentListResult, ContentProvider, PageDataSource, PageEditRestrictions, PageTemplate, EditorRestriction, PluginManifest, PluginRegistration, SitePluginsConfig, } from './engine/plugins/types';
45
+ export { hydratePageWithContent } from './engine/plugins/contentHydration';
46
+ export type { ContentProviderMap } from './engine/plugins/contentHydration';
47
+ export { matchDynamicPage } from './engine/plugins/dynamicPageResolver';
48
+ export type { DynamicPageMatch } from './engine/plugins/dynamicPageResolver';
49
+ export { blogPlugin } from './engine/plugins/builtin/blog';
50
+ export { mockBlogContentProvider } from './engine/plugins/builtin/blog';
40
51
  /** @deprecated Use SiteDocument */
41
52
  export type { SiteDocument as SiteDocumentV2 } from './engine/schema/siteDocument';
42
53
  /** @deprecated Use createEmptySiteDocument */
@@ -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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"}