@brunoalz/smartgesti-site-editor 1.3.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/LandingPageEditor.d.ts.map +1 -1
- package/dist/editor/LandingPageEditor.js +183 -169
- 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/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.js +17 -17
- package/dist/engine/export/exporters/sections/AdminSectionExporters.js.map +1 -1
- 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/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.js +8 -8
- package/dist/engine/render/renderers/sections/AboutSectionRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/ContactSectionRenderer.js +52 -52
- package/dist/engine/render/renderers/sections/ContactSectionRenderer.js.map +1 -1
- 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.js +17 -17
- package/dist/engine/render/renderers/sections/ProductShowcaseRenderer.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/shared/templates/index.d.ts +4 -0
- package/dist/shared/templates/index.d.ts.map +1 -1
- package/dist/shared/templates/index.js +14 -7
- package/dist/shared/templates/index.js.map +1 -1
- package/dist/shared/templates/smartgesti-admin.d.ts.map +1 -1
- package/dist/shared/templates/smartgesti-admin.js +1 -4
- package/dist/shared/templates/smartgesti-admin.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/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { jsx as a, jsxs as
|
|
2
|
-
import { cn as
|
|
3
|
-
const
|
|
1
|
+
import { jsx as a, jsxs as f } from "react/jsx-runtime";
|
|
2
|
+
import { cn as i } from "../utils/cn.js";
|
|
3
|
+
const d = [
|
|
4
4
|
// Azuis
|
|
5
5
|
{
|
|
6
6
|
name: "Blue Serenity",
|
|
@@ -14,7 +14,9 @@ const i = [
|
|
|
14
14
|
// Links gerais - azul escuro
|
|
15
15
|
menuLinkColor: "#2563eb",
|
|
16
16
|
// Links do menu - tom do primary mais escuro
|
|
17
|
-
gradient: ["#3b82f6", "#60a5fa", "#93c5fd"]
|
|
17
|
+
gradient: ["#3b82f6", "#60a5fa", "#93c5fd"],
|
|
18
|
+
heroGradientStart: "#1e3a5f",
|
|
19
|
+
heroGradientEnd: "#2d5a8e"
|
|
18
20
|
},
|
|
19
21
|
{
|
|
20
22
|
name: "Ocean Deep",
|
|
@@ -28,7 +30,9 @@ const i = [
|
|
|
28
30
|
// Links gerais - azul claro
|
|
29
31
|
menuLinkColor: "#38bdf8",
|
|
30
32
|
// Links do menu - tom do primary mais claro
|
|
31
|
-
gradient: ["#0284c7", "#0369a1", "#38bdf8"]
|
|
33
|
+
gradient: ["#0284c7", "#0369a1", "#38bdf8"],
|
|
34
|
+
heroGradientStart: "#0a1628",
|
|
35
|
+
heroGradientEnd: "#0c2d4d"
|
|
32
36
|
},
|
|
33
37
|
// Verdes
|
|
34
38
|
{
|
|
@@ -43,7 +47,9 @@ const i = [
|
|
|
43
47
|
// Links gerais - verde escuro
|
|
44
48
|
menuLinkColor: "#059669",
|
|
45
49
|
// Links do menu - tom do primary mais escuro
|
|
46
|
-
gradient: ["#10b981", "#059669", "#34d399"]
|
|
50
|
+
gradient: ["#10b981", "#059669", "#34d399"],
|
|
51
|
+
heroGradientStart: "#0d3320",
|
|
52
|
+
heroGradientEnd: "#1a5c3a"
|
|
47
53
|
},
|
|
48
54
|
{
|
|
49
55
|
name: "Forest",
|
|
@@ -57,7 +63,9 @@ const i = [
|
|
|
57
63
|
// Links gerais - verde claro
|
|
58
64
|
menuLinkColor: "#4ade80",
|
|
59
65
|
// Links do menu - tom do primary mais claro
|
|
60
|
-
gradient: ["#22c55e", "#16a34a", "#4ade80"]
|
|
66
|
+
gradient: ["#22c55e", "#16a34a", "#4ade80"],
|
|
67
|
+
heroGradientStart: "#0a1f12",
|
|
68
|
+
heroGradientEnd: "#153d25"
|
|
61
69
|
},
|
|
62
70
|
// Roxos
|
|
63
71
|
{
|
|
@@ -72,7 +80,9 @@ const i = [
|
|
|
72
80
|
// Links gerais - roxo escuro
|
|
73
81
|
menuLinkColor: "#7c3aed",
|
|
74
82
|
// Links do menu - tom do primary mais escuro
|
|
75
|
-
gradient: ["#8b5cf6", "#7c3aed", "#a78bfa"]
|
|
83
|
+
gradient: ["#8b5cf6", "#7c3aed", "#a78bfa"],
|
|
84
|
+
heroGradientStart: "#2d1b69",
|
|
85
|
+
heroGradientEnd: "#4c2889"
|
|
76
86
|
},
|
|
77
87
|
{
|
|
78
88
|
name: "Midnight",
|
|
@@ -86,7 +96,9 @@ const i = [
|
|
|
86
96
|
// Links gerais - roxo claro
|
|
87
97
|
menuLinkColor: "#c084fc",
|
|
88
98
|
// Links do menu - tom do primary mais claro
|
|
89
|
-
gradient: ["#a855f7", "#9333ea", "#c084fc"]
|
|
99
|
+
gradient: ["#a855f7", "#9333ea", "#c084fc"],
|
|
100
|
+
heroGradientStart: "#1e1b4b",
|
|
101
|
+
heroGradientEnd: "#312e81"
|
|
90
102
|
},
|
|
91
103
|
// Laranjas/Amarelos
|
|
92
104
|
{
|
|
@@ -101,7 +113,9 @@ const i = [
|
|
|
101
113
|
// Links gerais - laranja escuro
|
|
102
114
|
menuLinkColor: "#ea580c",
|
|
103
115
|
// Links do menu - tom do primary mais escuro
|
|
104
|
-
gradient: ["#f97316", "#ea580c", "#fb923c"]
|
|
116
|
+
gradient: ["#f97316", "#ea580c", "#fb923c"],
|
|
117
|
+
heroGradientStart: "#4a1d0a",
|
|
118
|
+
heroGradientEnd: "#7a3012"
|
|
105
119
|
},
|
|
106
120
|
{
|
|
107
121
|
name: "Golden",
|
|
@@ -115,7 +129,9 @@ const i = [
|
|
|
115
129
|
// Links gerais - amarelo claro
|
|
116
130
|
menuLinkColor: "#fde047",
|
|
117
131
|
// Links do menu - amarelo bem claro para contraste
|
|
118
|
-
gradient: ["#eab308", "#ca8a04", "#facc15"]
|
|
132
|
+
gradient: ["#eab308", "#ca8a04", "#facc15"],
|
|
133
|
+
heroGradientStart: "#1a1500",
|
|
134
|
+
heroGradientEnd: "#3d3005"
|
|
119
135
|
},
|
|
120
136
|
// Vermelhos/Rosas
|
|
121
137
|
{
|
|
@@ -130,7 +146,9 @@ const i = [
|
|
|
130
146
|
// Links gerais - rosa escuro
|
|
131
147
|
menuLinkColor: "#e11d48",
|
|
132
148
|
// Links do menu - tom do primary mais escuro
|
|
133
|
-
gradient: ["#f43f5e", "#e11d48", "#fb7185"]
|
|
149
|
+
gradient: ["#f43f5e", "#e11d48", "#fb7185"],
|
|
150
|
+
heroGradientStart: "#4a0a1a",
|
|
151
|
+
heroGradientEnd: "#7a1230"
|
|
134
152
|
},
|
|
135
153
|
{
|
|
136
154
|
name: "Berry",
|
|
@@ -144,7 +162,9 @@ const i = [
|
|
|
144
162
|
// Links gerais - amarelo para contraste
|
|
145
163
|
menuLinkColor: "#fda4d0",
|
|
146
164
|
// Links do menu - rosa bem claro para contraste
|
|
147
|
-
gradient: ["#ec4899", "#db2777", "#f472b6"]
|
|
165
|
+
gradient: ["#ec4899", "#db2777", "#f472b6"],
|
|
166
|
+
heroGradientStart: "#3d0724",
|
|
167
|
+
heroGradientEnd: "#6b1040"
|
|
148
168
|
},
|
|
149
169
|
// Neutros
|
|
150
170
|
{
|
|
@@ -159,7 +179,9 @@ const i = [
|
|
|
159
179
|
// Links gerais - cinza escuro
|
|
160
180
|
menuLinkColor: "#334155",
|
|
161
181
|
// Links do menu - tom do primary mais escuro
|
|
162
|
-
gradient: ["#475569", "#334155", "#64748b"]
|
|
182
|
+
gradient: ["#475569", "#334155", "#64748b"],
|
|
183
|
+
heroGradientStart: "#1a1a2e",
|
|
184
|
+
heroGradientEnd: "#2d2d4a"
|
|
163
185
|
},
|
|
164
186
|
{
|
|
165
187
|
name: "Dark Mode",
|
|
@@ -173,29 +195,95 @@ const i = [
|
|
|
173
195
|
// Links gerais - índigo claro
|
|
174
196
|
menuLinkColor: "#818cf8",
|
|
175
197
|
// Links do menu - tom do primary mais claro
|
|
176
|
-
gradient: ["#6366f1", "#4f46e5", "#818cf8"]
|
|
198
|
+
gradient: ["#6366f1", "#4f46e5", "#818cf8"],
|
|
199
|
+
heroGradientStart: "#0f0a2e",
|
|
200
|
+
heroGradientEnd: "#1a1552"
|
|
201
|
+
},
|
|
202
|
+
// Template-specific palettes
|
|
203
|
+
{
|
|
204
|
+
name: "Indigo & Cyan",
|
|
205
|
+
primary: "#6366f1",
|
|
206
|
+
secondary: "#0ea5e9",
|
|
207
|
+
accent: "#f97316",
|
|
208
|
+
background: "#ffffff",
|
|
209
|
+
surface: "#f8fafc",
|
|
210
|
+
text: "#0f172a",
|
|
211
|
+
linkColor: "#4338ca",
|
|
212
|
+
menuLinkColor: "#6366f1",
|
|
213
|
+
gradient: ["#6366f1", "#0ea5e9", "#f97316"],
|
|
214
|
+
heroGradientStart: "#3730a3",
|
|
215
|
+
heroGradientEnd: "#0369a1"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: "Blue Academy",
|
|
219
|
+
primary: "#2563eb",
|
|
220
|
+
secondary: "#1d4ed8",
|
|
221
|
+
accent: "#3b82f6",
|
|
222
|
+
background: "#ffffff",
|
|
223
|
+
surface: "#f8fafc",
|
|
224
|
+
text: "#0f172a",
|
|
225
|
+
linkColor: "#1e40af",
|
|
226
|
+
menuLinkColor: "#2563eb",
|
|
227
|
+
gradient: ["#2563eb", "#1d4ed8", "#3b82f6"],
|
|
228
|
+
heroGradientStart: "#1e3a8a",
|
|
229
|
+
heroGradientEnd: "#1e40af"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: "Indigo Amber",
|
|
233
|
+
primary: "#4f46e5",
|
|
234
|
+
secondary: "#6366f1",
|
|
235
|
+
accent: "#f59e0b",
|
|
236
|
+
background: "#ffffff",
|
|
237
|
+
surface: "#f9fafb",
|
|
238
|
+
text: "#111827",
|
|
239
|
+
linkColor: "#4338ca",
|
|
240
|
+
menuLinkColor: "#4f46e5",
|
|
241
|
+
gradient: ["#4f46e5", "#6366f1", "#f59e0b"],
|
|
242
|
+
heroGradientStart: "#312e81",
|
|
243
|
+
heroGradientEnd: "#3730a3"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
name: "Indigo Pro",
|
|
247
|
+
primary: "#6366f1",
|
|
248
|
+
secondary: "#4f46e5",
|
|
249
|
+
accent: "#8b5cf6",
|
|
250
|
+
background: "#ffffff",
|
|
251
|
+
surface: "#f8fafc",
|
|
252
|
+
text: "#0f172a",
|
|
253
|
+
linkColor: "#4338ca",
|
|
254
|
+
menuLinkColor: "#6366f1",
|
|
255
|
+
gradient: ["#6366f1", "#4f46e5", "#8b5cf6"],
|
|
256
|
+
heroGradientStart: "#1e1b4b",
|
|
257
|
+
heroGradientEnd: "#312e81"
|
|
177
258
|
}
|
|
178
259
|
];
|
|
179
|
-
function m({
|
|
260
|
+
function m(r) {
|
|
261
|
+
return d.find((n) => n.name === r);
|
|
262
|
+
}
|
|
263
|
+
function s({
|
|
180
264
|
selectedPalette: r,
|
|
181
|
-
onPaletteChange:
|
|
265
|
+
onPaletteChange: n
|
|
182
266
|
}) {
|
|
183
|
-
const
|
|
184
|
-
return /* @__PURE__ */ a("div", { className: "grid grid-cols-2 gap-3", children:
|
|
267
|
+
const o = (e) => r?.name === e.name;
|
|
268
|
+
return /* @__PURE__ */ a("div", { className: "grid grid-cols-2 gap-3", children: d.map((e) => /* @__PURE__ */ f(
|
|
185
269
|
"button",
|
|
186
270
|
{
|
|
187
|
-
onClick: () =>
|
|
188
|
-
className:
|
|
271
|
+
onClick: () => n(e),
|
|
272
|
+
className: i(
|
|
189
273
|
"rounded-lg cursor-pointer transition-all p-2",
|
|
190
274
|
"flex flex-col items-center gap-1.5",
|
|
191
275
|
"border-2",
|
|
192
|
-
|
|
276
|
+
o(e) ? "border-blue-500 bg-blue-50 dark:bg-blue-950/30 shadow-sm" : "border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600",
|
|
193
277
|
"bg-white dark:bg-gray-800",
|
|
194
278
|
"hover:scale-[1.02] active:scale-[0.98]"
|
|
195
279
|
),
|
|
196
280
|
title: e.name,
|
|
197
281
|
children: [
|
|
198
|
-
/* @__PURE__ */
|
|
282
|
+
/* @__PURE__ */ f("div", { className: "w-full h-8 rounded-md flex overflow-hidden mb-1.5", children: [
|
|
283
|
+
e.gradient.map((c, t) => /* @__PURE__ */ a("span", { className: "flex-1", style: { background: c } }, t)),
|
|
284
|
+
e.heroGradientStart && /* @__PURE__ */ a("span", { className: "flex-1", style: { background: e.heroGradientStart } }),
|
|
285
|
+
e.heroGradientEnd && /* @__PURE__ */ a("span", { className: "flex-1", style: { background: e.heroGradientEnd } })
|
|
286
|
+
] }),
|
|
199
287
|
/* @__PURE__ */ a("span", { className: "text-xs font-medium text-gray-700 dark:text-gray-300 text-center leading-tight px-1", children: e.name })
|
|
200
288
|
]
|
|
201
289
|
},
|
|
@@ -203,7 +291,8 @@ function m({
|
|
|
203
291
|
)) });
|
|
204
292
|
}
|
|
205
293
|
export {
|
|
206
|
-
|
|
207
|
-
|
|
294
|
+
s as PaletteSelector,
|
|
295
|
+
d as colorPalettes,
|
|
296
|
+
m as findPaletteByName
|
|
208
297
|
};
|
|
209
298
|
//# sourceMappingURL=PaletteSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaletteSelector.js","sources":["../../src/editor/PaletteSelector.tsx"],"sourcesContent":["/**\r\n * Palette Selector\r\n * Seletor de paletas de cores para o editor\r\n */\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\n// ============================================================================\r\n// Types\r\n// ============================================================================\r\n\r\nexport interface ColorPalette {\r\n name: string;\r\n primary: string;\r\n secondary: string;\r\n accent: string;\r\n background: string;\r\n surface?: string;\r\n text: string;\r\n linkColor?: string; // Cor específica para links em geral (dropdowns, etc)\r\n menuLinkColor?: string; // Cor específica para links do menu navbar (derivada do primary)\r\n gradient: string[];\r\n}\r\n\r\n// ============================================================================\r\n// Palettes (text e background devem ter contraste adequado; evitar text === background)\r\n// ============================================================================\r\n\r\nexport const colorPalettes: ColorPalette[] = [\r\n // Azuis\r\n {\r\n name: \"Blue Serenity\",\r\n primary: \"#3b82f6\",\r\n secondary: \"#60a5fa\",\r\n accent: \"#93c5fd\",\r\n background: \"#ffffff\",\r\n surface: \"#f8fafc\",\r\n text: \"#1e293b\",\r\n linkColor: \"#1e40af\", // Links gerais - azul escuro\r\n menuLinkColor: \"#2563eb\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#3b82f6\", \"#60a5fa\", \"#93c5fd\"],\r\n },\r\n {\r\n name: \"Ocean Deep\",\r\n primary: \"#0284c7\",\r\n secondary: \"#0369a1\",\r\n accent: \"#38bdf8\",\r\n background: \"#0f172a\",\r\n surface: \"#1e293b\",\r\n text: \"#f8fafc\",\r\n linkColor: \"#7dd3fc\", // Links gerais - azul claro\r\n menuLinkColor: \"#38bdf8\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#0284c7\", \"#0369a1\", \"#38bdf8\"],\r\n },\r\n // Verdes\r\n {\r\n name: \"Emerald\",\r\n primary: \"#10b981\",\r\n secondary: \"#059669\",\r\n accent: \"#34d399\",\r\n background: \"#ffffff\",\r\n surface: \"#f0fdf4\",\r\n text: \"#166534\",\r\n linkColor: \"#047857\", // Links gerais - verde escuro\r\n menuLinkColor: \"#059669\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#10b981\", \"#059669\", \"#34d399\"],\r\n },\r\n {\r\n name: \"Forest\",\r\n primary: \"#22c55e\",\r\n secondary: \"#16a34a\",\r\n accent: \"#4ade80\",\r\n background: \"#052e16\",\r\n surface: \"#14532d\",\r\n text: \"#f0fdf4\",\r\n linkColor: \"#86efac\", // Links gerais - verde claro\r\n menuLinkColor: \"#4ade80\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#22c55e\", \"#16a34a\", \"#4ade80\"],\r\n },\r\n // Roxos\r\n {\r\n name: \"Purple Dream\",\r\n primary: \"#8b5cf6\",\r\n secondary: \"#7c3aed\",\r\n accent: \"#a78bfa\",\r\n background: \"#ffffff\",\r\n surface: \"#faf5ff\",\r\n text: \"#4c1d95\",\r\n linkColor: \"#6d28d9\", // Links gerais - roxo escuro\r\n menuLinkColor: \"#7c3aed\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#8b5cf6\", \"#7c3aed\", \"#a78bfa\"],\r\n },\r\n {\r\n name: \"Midnight\",\r\n primary: \"#a855f7\",\r\n secondary: \"#9333ea\",\r\n accent: \"#c084fc\",\r\n background: \"#1e1b4b\",\r\n surface: \"#312e81\",\r\n text: \"#f5f3ff\",\r\n linkColor: \"#d8b4fe\", // Links gerais - roxo claro\r\n menuLinkColor: \"#c084fc\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#a855f7\", \"#9333ea\", \"#c084fc\"],\r\n },\r\n // Laranjas/Amarelos\r\n {\r\n name: \"Sunset\",\r\n primary: \"#f97316\",\r\n secondary: \"#ea580c\",\r\n accent: \"#fb923c\",\r\n background: \"#ffffff\",\r\n surface: \"#fff7ed\",\r\n text: \"#7c2d12\",\r\n linkColor: \"#c2410c\", // Links gerais - laranja escuro\r\n menuLinkColor: \"#ea580c\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#f97316\", \"#ea580c\", \"#fb923c\"],\r\n },\r\n {\r\n name: \"Golden\",\r\n primary: \"#eab308\",\r\n secondary: \"#ca8a04\",\r\n accent: \"#facc15\",\r\n background: \"#1a1a1a\",\r\n surface: \"#262626\",\r\n text: \"#fefce8\",\r\n linkColor: \"#fde047\", // Links gerais - amarelo claro\r\n menuLinkColor: \"#fde047\", // Links do menu - amarelo bem claro para contraste\r\n gradient: [\"#eab308\", \"#ca8a04\", \"#facc15\"],\r\n },\r\n // Vermelhos/Rosas\r\n {\r\n name: \"Rose\",\r\n primary: \"#f43f5e\",\r\n secondary: \"#e11d48\",\r\n accent: \"#fb7185\",\r\n background: \"#ffffff\",\r\n surface: \"#fff1f2\",\r\n text: \"#881337\",\r\n linkColor: \"#be123c\", // Links gerais - rosa escuro\r\n menuLinkColor: \"#e11d48\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#f43f5e\", \"#e11d48\", \"#fb7185\"],\r\n },\r\n {\r\n name: \"Berry\",\r\n primary: \"#ec4899\",\r\n secondary: \"#db2777\",\r\n accent: \"#f472b6\",\r\n background: \"#500724\",\r\n surface: \"#831843\",\r\n text: \"#fdf2f8\",\r\n linkColor: \"#fbbf24\", // Links gerais - amarelo para contraste\r\n menuLinkColor: \"#fda4d0\", // Links do menu - rosa bem claro para contraste\r\n gradient: [\"#ec4899\", \"#db2777\", \"#f472b6\"],\r\n },\r\n // Neutros\r\n {\r\n name: \"Slate Modern\",\r\n primary: \"#475569\",\r\n secondary: \"#334155\",\r\n accent: \"#64748b\",\r\n background: \"#ffffff\",\r\n surface: \"#f8fafc\",\r\n text: \"#0f172a\",\r\n linkColor: \"#1e293b\", // Links gerais - cinza escuro\r\n menuLinkColor: \"#334155\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#475569\", \"#334155\", \"#64748b\"],\r\n },\r\n {\r\n name: \"Dark Mode\",\r\n primary: \"#6366f1\",\r\n secondary: \"#4f46e5\",\r\n accent: \"#818cf8\",\r\n background: \"#0f0f0f\",\r\n surface: \"#1a1a1a\",\r\n text: \"#fafafa\",\r\n linkColor: \"#a5b4fc\", // Links gerais - índigo claro\r\n menuLinkColor: \"#818cf8\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#6366f1\", \"#4f46e5\", \"#818cf8\"],\r\n },\r\n];\r\n\r\n// ============================================================================\r\n// Component\r\n// ============================================================================\r\n\r\ninterface PaletteSelectorProps {\r\n selectedPalette?: ColorPalette;\r\n onPaletteChange: (palette: ColorPalette) => void;\r\n}\r\n\r\nexport function PaletteSelector({\r\n selectedPalette,\r\n onPaletteChange,\r\n}: PaletteSelectorProps) {\r\n const isSelected = (palette: ColorPalette) => {\r\n return selectedPalette?.name === palette.name;\r\n };\r\n\r\n return (\r\n <div className=\"grid grid-cols-2 gap-3\">\r\n {colorPalettes.map((palette) => (\r\n <button\r\n key={palette.name}\r\n onClick={() => onPaletteChange(palette)}\r\n className={cn(\r\n \"rounded-lg cursor-pointer transition-all p-2\",\r\n \"flex flex-col items-center gap-1.5\",\r\n \"border-2\",\r\n isSelected(palette)\r\n ? \"border-blue-500 bg-blue-50 dark:bg-blue-950/30 shadow-sm\"\r\n : \"border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600\",\r\n \"bg-white dark:bg-gray-800\",\r\n \"hover:scale-[1.02] active:scale-[0.98]\",\r\n )}\r\n title={palette.name}\r\n >\r\n <div className=\"w-full h-8 rounded-md flex overflow-hidden mb-1.5\">\r\n {palette.gradient.map((color, i) => (\r\n <span key={i} className=\"flex-1\" style={{ background: color }} />\r\n ))}\r\n </div>\r\n <span className=\"text-xs font-medium text-gray-700 dark:text-gray-300 text-center leading-tight px-1\">\r\n {palette.name}\r\n </span>\r\n </button>\r\n ))}\r\n </div>\r\n );\r\n}\r\n"],"names":["colorPalettes","PaletteSelector","selectedPalette","onPaletteChange","isSelected","palette","jsxs","cn","jsx","color","i"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaletteSelector.js","sources":["../../src/editor/PaletteSelector.tsx"],"sourcesContent":["/**\r\n * Palette Selector\r\n * Seletor de paletas de cores para o editor\r\n */\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\n// ============================================================================\r\n// Types\r\n// ============================================================================\r\n\r\nexport interface ColorPalette {\r\n name: string;\r\n primary: string;\r\n secondary: string;\r\n accent: string;\r\n background: string;\r\n surface?: string;\r\n text: string;\r\n linkColor?: string; // Cor específica para links em geral (dropdowns, etc)\r\n menuLinkColor?: string; // Cor específica para links do menu navbar (derivada do primary)\r\n gradient: string[];\r\n\r\n // Hero gradient overrides (derivados automaticamente se ausentes)\r\n heroGradientStart?: string;\r\n heroGradientEnd?: string;\r\n}\r\n\r\n// ============================================================================\r\n// Palettes (text e background devem ter contraste adequado; evitar text === background)\r\n// ============================================================================\r\n\r\nexport const colorPalettes: ColorPalette[] = [\r\n // Azuis\r\n {\r\n name: \"Blue Serenity\",\r\n primary: \"#3b82f6\",\r\n secondary: \"#60a5fa\",\r\n accent: \"#93c5fd\",\r\n background: \"#ffffff\",\r\n surface: \"#f8fafc\",\r\n text: \"#1e293b\",\r\n linkColor: \"#1e40af\", // Links gerais - azul escuro\r\n menuLinkColor: \"#2563eb\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#3b82f6\", \"#60a5fa\", \"#93c5fd\"],\r\n heroGradientStart: \"#1e3a5f\",\r\n heroGradientEnd: \"#2d5a8e\",\r\n },\r\n {\r\n name: \"Ocean Deep\",\r\n primary: \"#0284c7\",\r\n secondary: \"#0369a1\",\r\n accent: \"#38bdf8\",\r\n background: \"#0f172a\",\r\n surface: \"#1e293b\",\r\n text: \"#f8fafc\",\r\n linkColor: \"#7dd3fc\", // Links gerais - azul claro\r\n menuLinkColor: \"#38bdf8\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#0284c7\", \"#0369a1\", \"#38bdf8\"],\r\n heroGradientStart: \"#0a1628\",\r\n heroGradientEnd: \"#0c2d4d\",\r\n },\r\n // Verdes\r\n {\r\n name: \"Emerald\",\r\n primary: \"#10b981\",\r\n secondary: \"#059669\",\r\n accent: \"#34d399\",\r\n background: \"#ffffff\",\r\n surface: \"#f0fdf4\",\r\n text: \"#166534\",\r\n linkColor: \"#047857\", // Links gerais - verde escuro\r\n menuLinkColor: \"#059669\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#10b981\", \"#059669\", \"#34d399\"],\r\n heroGradientStart: \"#0d3320\",\r\n heroGradientEnd: \"#1a5c3a\",\r\n },\r\n {\r\n name: \"Forest\",\r\n primary: \"#22c55e\",\r\n secondary: \"#16a34a\",\r\n accent: \"#4ade80\",\r\n background: \"#052e16\",\r\n surface: \"#14532d\",\r\n text: \"#f0fdf4\",\r\n linkColor: \"#86efac\", // Links gerais - verde claro\r\n menuLinkColor: \"#4ade80\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#22c55e\", \"#16a34a\", \"#4ade80\"],\r\n heroGradientStart: \"#0a1f12\",\r\n heroGradientEnd: \"#153d25\",\r\n },\r\n // Roxos\r\n {\r\n name: \"Purple Dream\",\r\n primary: \"#8b5cf6\",\r\n secondary: \"#7c3aed\",\r\n accent: \"#a78bfa\",\r\n background: \"#ffffff\",\r\n surface: \"#faf5ff\",\r\n text: \"#4c1d95\",\r\n linkColor: \"#6d28d9\", // Links gerais - roxo escuro\r\n menuLinkColor: \"#7c3aed\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#8b5cf6\", \"#7c3aed\", \"#a78bfa\"],\r\n heroGradientStart: \"#2d1b69\",\r\n heroGradientEnd: \"#4c2889\",\r\n },\r\n {\r\n name: \"Midnight\",\r\n primary: \"#a855f7\",\r\n secondary: \"#9333ea\",\r\n accent: \"#c084fc\",\r\n background: \"#1e1b4b\",\r\n surface: \"#312e81\",\r\n text: \"#f5f3ff\",\r\n linkColor: \"#d8b4fe\", // Links gerais - roxo claro\r\n menuLinkColor: \"#c084fc\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#a855f7\", \"#9333ea\", \"#c084fc\"],\r\n heroGradientStart: \"#1e1b4b\",\r\n heroGradientEnd: \"#312e81\",\r\n },\r\n // Laranjas/Amarelos\r\n {\r\n name: \"Sunset\",\r\n primary: \"#f97316\",\r\n secondary: \"#ea580c\",\r\n accent: \"#fb923c\",\r\n background: \"#ffffff\",\r\n surface: \"#fff7ed\",\r\n text: \"#7c2d12\",\r\n linkColor: \"#c2410c\", // Links gerais - laranja escuro\r\n menuLinkColor: \"#ea580c\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#f97316\", \"#ea580c\", \"#fb923c\"],\r\n heroGradientStart: \"#4a1d0a\",\r\n heroGradientEnd: \"#7a3012\",\r\n },\r\n {\r\n name: \"Golden\",\r\n primary: \"#eab308\",\r\n secondary: \"#ca8a04\",\r\n accent: \"#facc15\",\r\n background: \"#1a1a1a\",\r\n surface: \"#262626\",\r\n text: \"#fefce8\",\r\n linkColor: \"#fde047\", // Links gerais - amarelo claro\r\n menuLinkColor: \"#fde047\", // Links do menu - amarelo bem claro para contraste\r\n gradient: [\"#eab308\", \"#ca8a04\", \"#facc15\"],\r\n heroGradientStart: \"#1a1500\",\r\n heroGradientEnd: \"#3d3005\",\r\n },\r\n // Vermelhos/Rosas\r\n {\r\n name: \"Rose\",\r\n primary: \"#f43f5e\",\r\n secondary: \"#e11d48\",\r\n accent: \"#fb7185\",\r\n background: \"#ffffff\",\r\n surface: \"#fff1f2\",\r\n text: \"#881337\",\r\n linkColor: \"#be123c\", // Links gerais - rosa escuro\r\n menuLinkColor: \"#e11d48\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#f43f5e\", \"#e11d48\", \"#fb7185\"],\r\n heroGradientStart: \"#4a0a1a\",\r\n heroGradientEnd: \"#7a1230\",\r\n },\r\n {\r\n name: \"Berry\",\r\n primary: \"#ec4899\",\r\n secondary: \"#db2777\",\r\n accent: \"#f472b6\",\r\n background: \"#500724\",\r\n surface: \"#831843\",\r\n text: \"#fdf2f8\",\r\n linkColor: \"#fbbf24\", // Links gerais - amarelo para contraste\r\n menuLinkColor: \"#fda4d0\", // Links do menu - rosa bem claro para contraste\r\n gradient: [\"#ec4899\", \"#db2777\", \"#f472b6\"],\r\n heroGradientStart: \"#3d0724\",\r\n heroGradientEnd: \"#6b1040\",\r\n },\r\n // Neutros\r\n {\r\n name: \"Slate Modern\",\r\n primary: \"#475569\",\r\n secondary: \"#334155\",\r\n accent: \"#64748b\",\r\n background: \"#ffffff\",\r\n surface: \"#f8fafc\",\r\n text: \"#0f172a\",\r\n linkColor: \"#1e293b\", // Links gerais - cinza escuro\r\n menuLinkColor: \"#334155\", // Links do menu - tom do primary mais escuro\r\n gradient: [\"#475569\", \"#334155\", \"#64748b\"],\r\n heroGradientStart: \"#1a1a2e\",\r\n heroGradientEnd: \"#2d2d4a\",\r\n },\r\n {\r\n name: \"Dark Mode\",\r\n primary: \"#6366f1\",\r\n secondary: \"#4f46e5\",\r\n accent: \"#818cf8\",\r\n background: \"#0f0f0f\",\r\n surface: \"#1a1a1a\",\r\n text: \"#fafafa\",\r\n linkColor: \"#a5b4fc\", // Links gerais - índigo claro\r\n menuLinkColor: \"#818cf8\", // Links do menu - tom do primary mais claro\r\n gradient: [\"#6366f1\", \"#4f46e5\", \"#818cf8\"],\r\n heroGradientStart: \"#0f0a2e\",\r\n heroGradientEnd: \"#1a1552\",\r\n },\r\n // Template-specific palettes\r\n {\r\n name: \"Indigo & Cyan\",\r\n primary: \"#6366f1\",\r\n secondary: \"#0ea5e9\",\r\n accent: \"#f97316\",\r\n background: \"#ffffff\",\r\n surface: \"#f8fafc\",\r\n text: \"#0f172a\",\r\n linkColor: \"#4338ca\",\r\n menuLinkColor: \"#6366f1\",\r\n gradient: [\"#6366f1\", \"#0ea5e9\", \"#f97316\"],\r\n heroGradientStart: \"#3730a3\",\r\n heroGradientEnd: \"#0369a1\",\r\n },\r\n {\r\n name: \"Blue Academy\",\r\n primary: \"#2563eb\",\r\n secondary: \"#1d4ed8\",\r\n accent: \"#3b82f6\",\r\n background: \"#ffffff\",\r\n surface: \"#f8fafc\",\r\n text: \"#0f172a\",\r\n linkColor: \"#1e40af\",\r\n menuLinkColor: \"#2563eb\",\r\n gradient: [\"#2563eb\", \"#1d4ed8\", \"#3b82f6\"],\r\n heroGradientStart: \"#1e3a8a\",\r\n heroGradientEnd: \"#1e40af\",\r\n },\r\n {\r\n name: \"Indigo Amber\",\r\n primary: \"#4f46e5\",\r\n secondary: \"#6366f1\",\r\n accent: \"#f59e0b\",\r\n background: \"#ffffff\",\r\n surface: \"#f9fafb\",\r\n text: \"#111827\",\r\n linkColor: \"#4338ca\",\r\n menuLinkColor: \"#4f46e5\",\r\n gradient: [\"#4f46e5\", \"#6366f1\", \"#f59e0b\"],\r\n heroGradientStart: \"#312e81\",\r\n heroGradientEnd: \"#3730a3\",\r\n },\r\n {\r\n name: \"Indigo Pro\",\r\n primary: \"#6366f1\",\r\n secondary: \"#4f46e5\",\r\n accent: \"#8b5cf6\",\r\n background: \"#ffffff\",\r\n surface: \"#f8fafc\",\r\n text: \"#0f172a\",\r\n linkColor: \"#4338ca\",\r\n menuLinkColor: \"#6366f1\",\r\n gradient: [\"#6366f1\", \"#4f46e5\", \"#8b5cf6\"],\r\n heroGradientStart: \"#1e1b4b\",\r\n heroGradientEnd: \"#312e81\",\r\n },\r\n];\r\n\r\n// ============================================================================\r\n// Utilities\r\n// ============================================================================\r\n\r\nexport function findPaletteByName(name: string): ColorPalette | undefined {\r\n return colorPalettes.find(p => p.name === name);\r\n}\r\n\r\n// ============================================================================\r\n// Component\r\n// ============================================================================\r\n\r\ninterface PaletteSelectorProps {\r\n selectedPalette?: ColorPalette;\r\n onPaletteChange: (palette: ColorPalette) => void;\r\n}\r\n\r\nexport function PaletteSelector({\r\n selectedPalette,\r\n onPaletteChange,\r\n}: PaletteSelectorProps) {\r\n const isSelected = (palette: ColorPalette) => {\r\n return selectedPalette?.name === palette.name;\r\n };\r\n\r\n return (\r\n <div className=\"grid grid-cols-2 gap-3\">\r\n {colorPalettes.map((palette) => (\r\n <button\r\n key={palette.name}\r\n onClick={() => onPaletteChange(palette)}\r\n className={cn(\r\n \"rounded-lg cursor-pointer transition-all p-2\",\r\n \"flex flex-col items-center gap-1.5\",\r\n \"border-2\",\r\n isSelected(palette)\r\n ? \"border-blue-500 bg-blue-50 dark:bg-blue-950/30 shadow-sm\"\r\n : \"border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600\",\r\n \"bg-white dark:bg-gray-800\",\r\n \"hover:scale-[1.02] active:scale-[0.98]\",\r\n )}\r\n title={palette.name}\r\n >\r\n <div className=\"w-full h-8 rounded-md flex overflow-hidden mb-1.5\">\r\n {palette.gradient.map((color, i) => (\r\n <span key={i} className=\"flex-1\" style={{ background: color }} />\r\n ))}\r\n {palette.heroGradientStart && (\r\n <span className=\"flex-1\" style={{ background: palette.heroGradientStart }} />\r\n )}\r\n {palette.heroGradientEnd && (\r\n <span className=\"flex-1\" style={{ background: palette.heroGradientEnd }} />\r\n )}\r\n </div>\r\n <span className=\"text-xs font-medium text-gray-700 dark:text-gray-300 text-center leading-tight px-1\">\r\n {palette.name}\r\n </span>\r\n </button>\r\n ))}\r\n </div>\r\n );\r\n}\r\n"],"names":["colorPalettes","findPaletteByName","name","p","PaletteSelector","selectedPalette","onPaletteChange","isSelected","palette","jsxs","cn","color","i","jsx"],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { UploadConfig } from '../LandingPageEditor';
|
|
3
3
|
import { SiteDocument } from '../../engine';
|
|
4
|
+
import { ColorPalette } from '../PaletteSelector';
|
|
4
5
|
interface RightPanelProps {
|
|
5
6
|
isPaletteSelected: boolean;
|
|
6
7
|
selectedBlock: any;
|
|
8
|
+
selectedPalette?: ColorPalette;
|
|
7
9
|
onPaletteChange: (palette: any) => void;
|
|
8
10
|
onUpdateBlock: (updates: Record<string, any>) => void;
|
|
9
11
|
uploadConfig?: UploadConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/components/RightPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"RightPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/components/RightPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUvD,UAAU,eAAe;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,UAAU,6CA2CrB,CAAC"}
|
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import
|
|
3
|
-
import { LoadingSpinner as
|
|
4
|
-
const
|
|
1
|
+
import { jsx as e, jsxs as f } from "react/jsx-runtime";
|
|
2
|
+
import h, { Suspense as p, lazy as o } from "react";
|
|
3
|
+
import { LoadingSpinner as x } from "./LoadingSpinner.js";
|
|
4
|
+
const g = o(
|
|
5
5
|
() => import("../PropertyEditor/index.js").then((r) => ({ default: r.BlockPropertyEditor }))
|
|
6
|
-
),
|
|
6
|
+
), y = o(
|
|
7
7
|
() => import("../PaletteSelector.js").then((r) => ({ default: r.PaletteSelector }))
|
|
8
|
-
), v =
|
|
8
|
+
), v = h.memo(function({
|
|
9
9
|
isPaletteSelected: a,
|
|
10
10
|
selectedBlock: t,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
selectedPalette: l,
|
|
12
|
+
onPaletteChange: d,
|
|
13
|
+
onUpdateBlock: i,
|
|
14
|
+
uploadConfig: n,
|
|
15
|
+
document: c,
|
|
16
|
+
currentPageId: s,
|
|
17
|
+
focusedGroup: m
|
|
17
18
|
}) {
|
|
18
|
-
return /* @__PURE__ */ e("div", { className: "w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col", children: /* @__PURE__ */ e(
|
|
19
|
+
return /* @__PURE__ */ e("div", { className: "w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col", children: /* @__PURE__ */ e(p, { fallback: /* @__PURE__ */ e(x, {}), children: a ? /* @__PURE__ */ f("div", { className: "p-4 overflow-y-auto", children: [
|
|
19
20
|
/* @__PURE__ */ e("h2", { className: "text-sm font-semibold text-gray-800 dark:text-gray-100 mb-4", children: "Escolha uma Paleta de Cores" }),
|
|
20
21
|
/* @__PURE__ */ e(
|
|
21
|
-
|
|
22
|
+
y,
|
|
22
23
|
{
|
|
23
|
-
selectedPalette:
|
|
24
|
-
onPaletteChange:
|
|
24
|
+
selectedPalette: l,
|
|
25
|
+
onPaletteChange: d
|
|
25
26
|
}
|
|
26
27
|
)
|
|
27
28
|
] }) : t ? /* @__PURE__ */ e("div", { className: "overflow-y-auto overflow-x-hidden flex-1", children: /* @__PURE__ */ e(
|
|
28
|
-
|
|
29
|
+
g,
|
|
29
30
|
{
|
|
30
31
|
block: t,
|
|
31
|
-
document:
|
|
32
|
-
currentPageId:
|
|
33
|
-
onUpdate:
|
|
34
|
-
uploadConfig:
|
|
35
|
-
focusedGroup:
|
|
32
|
+
document: c,
|
|
33
|
+
currentPageId: s,
|
|
34
|
+
onUpdate: i,
|
|
35
|
+
uploadConfig: n,
|
|
36
|
+
focusedGroup: m
|
|
36
37
|
}
|
|
37
38
|
) }) : /* @__PURE__ */ e("div", { className: "p-4 text-center text-gray-500 dark:text-gray-400", children: "Selecione um bloco para editar" }) }) });
|
|
38
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.js","sources":["../../../src/editor/components/RightPanel.tsx"],"sourcesContent":["import React, { lazy, Suspense } from \"react\";\nimport { LoadingSpinner } from \"./LoadingSpinner\";\nimport type { UploadConfig } from \"../LandingPageEditor\";\nimport type { SiteDocument } from \"../../engine\";\n\n// Lazy load componentes pesados do editor\nconst BlockPropertyEditor = lazy(() =>\n import(\"../PropertyEditor\").then(module => ({ default: module.BlockPropertyEditor }))\n);\nconst PaletteSelector = lazy(() =>\n import(\"../PaletteSelector\").then(module => ({ default: module.PaletteSelector }))\n);\n\ninterface RightPanelProps {\n isPaletteSelected: boolean;\n selectedBlock: any;\n onPaletteChange: (palette: any) => void;\n onUpdateBlock: (updates: Record<string, any>) => void;\n uploadConfig?: UploadConfig;\n document?: SiteDocument;\n currentPageId?: string;\n /** When set, the matching property group opens and scrolls into view */\n focusedGroup?: string | null;\n}\n\nexport const RightPanel = React.memo(function RightPanel({\n isPaletteSelected,\n selectedBlock,\n onPaletteChange,\n onUpdateBlock,\n uploadConfig,\n document,\n currentPageId,\n focusedGroup,\n}: RightPanelProps) {\n return (\n <div className=\"w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col\">\n <Suspense fallback={<LoadingSpinner />}>\n {isPaletteSelected ? (\n <div className=\"p-4 overflow-y-auto\">\n <h2 className=\"text-sm font-semibold text-gray-800 dark:text-gray-100 mb-4\">\n Escolha uma Paleta de Cores\n </h2>\n <PaletteSelector\n selectedPalette={
|
|
1
|
+
{"version":3,"file":"RightPanel.js","sources":["../../../src/editor/components/RightPanel.tsx"],"sourcesContent":["import React, { lazy, Suspense } from \"react\";\nimport { LoadingSpinner } from \"./LoadingSpinner\";\nimport type { UploadConfig } from \"../LandingPageEditor\";\nimport type { SiteDocument } from \"../../engine\";\nimport type { ColorPalette } from \"../PaletteSelector\";\n\n// Lazy load componentes pesados do editor\nconst BlockPropertyEditor = lazy(() =>\n import(\"../PropertyEditor\").then(module => ({ default: module.BlockPropertyEditor }))\n);\nconst PaletteSelector = lazy(() =>\n import(\"../PaletteSelector\").then(module => ({ default: module.PaletteSelector }))\n);\n\ninterface RightPanelProps {\n isPaletteSelected: boolean;\n selectedBlock: any;\n selectedPalette?: ColorPalette;\n onPaletteChange: (palette: any) => void;\n onUpdateBlock: (updates: Record<string, any>) => void;\n uploadConfig?: UploadConfig;\n document?: SiteDocument;\n currentPageId?: string;\n /** When set, the matching property group opens and scrolls into view */\n focusedGroup?: string | null;\n}\n\nexport const RightPanel = React.memo(function RightPanel({\n isPaletteSelected,\n selectedBlock,\n selectedPalette,\n onPaletteChange,\n onUpdateBlock,\n uploadConfig,\n document,\n currentPageId,\n focusedGroup,\n}: RightPanelProps) {\n return (\n <div className=\"w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col\">\n <Suspense fallback={<LoadingSpinner />}>\n {isPaletteSelected ? (\n <div className=\"p-4 overflow-y-auto\">\n <h2 className=\"text-sm font-semibold text-gray-800 dark:text-gray-100 mb-4\">\n Escolha uma Paleta de Cores\n </h2>\n <PaletteSelector\n selectedPalette={selectedPalette}\n onPaletteChange={onPaletteChange}\n />\n </div>\n ) : selectedBlock ? (\n <div className=\"overflow-y-auto overflow-x-hidden flex-1\">\n <BlockPropertyEditor\n block={selectedBlock}\n document={document}\n currentPageId={currentPageId}\n onUpdate={onUpdateBlock}\n uploadConfig={uploadConfig}\n focusedGroup={focusedGroup}\n />\n </div>\n ) : (\n <div className=\"p-4 text-center text-gray-500 dark:text-gray-400\">\n Selecione um bloco para editar\n </div>\n )}\n </Suspense>\n </div>\n );\n});\n"],"names":["BlockPropertyEditor","lazy","module","PaletteSelector","RightPanel","React","isPaletteSelected","selectedBlock","selectedPalette","onPaletteChange","onUpdateBlock","uploadConfig","document","currentPageId","focusedGroup","jsx","Suspense","LoadingSpinner","jsxs"],"mappings":";;;AAOA,MAAMA,IAAsBC;AAAA,EAAK,MAC/B,OAAO,4BAAmB,EAAE,KAAK,QAAW,EAAE,SAASC,EAAO,sBAAsB;AACtF,GACMC,IAAkBF;AAAA,EAAK,MAC3B,OAAO,uBAAoB,EAAE,KAAK,QAAW,EAAE,SAASC,EAAO,kBAAkB;AACnF,GAeaE,IAAaC,EAAM,KAAK,SAAoB;AAAA,EACvD,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AACF,GAAoB;AAClB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,4HACb,4BAACC,GAAA,EAAS,UAAU,gBAAAD,EAACE,GAAA,CAAA,CAAe,GACjC,UAAAX,IACC,gBAAAY,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAA,gBAAAH,EAAC,MAAA,EAAG,WAAU,+DAA8D,UAAA,+BAE5E;AAAA,IACA,gBAAAA;AAAA,MAACZ;AAAA,MAAA;AAAA,QACC,iBAAAK;AAAA,QACA,iBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF,IACEF,IACF,gBAAAQ,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA,gBAAAA;AAAA,IAACf;AAAA,IAAA;AAAA,MACC,OAAOO;AAAA,MACP,UAAAK;AAAA,MACA,eAAAC;AAAA,MACA,UAAUH;AAAA,MACV,cAAAC;AAAA,MACA,cAAAG;AAAA,IAAA;AAAA,EAAA,EACF,CACF,IAEA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA,iCAAA,CAElE,GAEJ,GACF;AAEJ,CAAC;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { dataBlockIdAttr as s, escapeHtml as o } from "../../shared/htmlHelpers.js";
|
|
2
|
-
function h(e, m,
|
|
2
|
+
function h(e, m, p, l) {
|
|
3
3
|
const { src: i, name: r, size: n = "md" } = e.props, a = {
|
|
4
4
|
sm: "2rem",
|
|
5
5
|
md: "2.5rem",
|
|
6
6
|
lg: "3rem",
|
|
7
7
|
xl: "4rem"
|
|
8
8
|
}, t = a[n] || a.md, c = r ? r.split(" ").map((d) => d[0]).join("").toUpperCase().slice(0, 2) : "?";
|
|
9
|
-
return i ? `<img ${s(e.id)} src="${o(i)}" alt="${o(r || "Avatar")}" style="width: ${t}; height: ${t}; border-radius: 50%; object-fit: cover;" />` : `<div ${s(e.id)} style="width: ${t}; height: ${t}; border-radius: 50%; background-color: var(--sg-primary, #3b82f6); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: calc(${t} / 2.5);">${c}</div>`;
|
|
9
|
+
return i ? `<img ${s(e.id)} src="${o(i)}" alt="${o(r || "Avatar")}" style="width: ${t}; height: ${t}; border-radius: 50%; object-fit: cover;" />` : `<div ${s(e.id)} style="width: ${t}; height: ${t}; border-radius: 50%; background-color: var(--sg-primary, #3b82f6); color: var(--sg-primary-text, #fff); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: calc(${t} / 2.5);">${c}</div>`;
|
|
10
10
|
}
|
|
11
11
|
export {
|
|
12
12
|
h as exportAvatar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarExporter.js","sources":["../../../../../src/engine/export/exporters/content/AvatarExporter.ts"],"sourcesContent":["/**\n * Avatar Block Exporter\n */\n\nimport { Block } from \"../../../schema/siteDocument\";\nimport { ThemeTokens } from \"../../../schema/themeTokens\";\nimport { dataBlockIdAttr, escapeHtml } from \"../../shared/htmlHelpers\";\n\nexport function exportAvatar(\n block: Block,\n depth: number,\n basePath?: string,\n theme?: ThemeTokens,\n): string {\n const { src, name, size = \"md\" } = (block as any).props;\n\n const sizeMap: Record<string, string> = {\n sm: \"2rem\",\n md: \"2.5rem\",\n lg: \"3rem\",\n xl: \"4rem\",\n };\n\n const avatarSize = sizeMap[size] || sizeMap.md;\n\n const initials = name\n ? name\n .split(\" \")\n .map((n: string) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n : \"?\";\n\n if (src) {\n return `<img ${dataBlockIdAttr(block.id)} src=\"${escapeHtml(src)}\" alt=\"${escapeHtml(name || \"Avatar\")}\" style=\"width: ${avatarSize}; height: ${avatarSize}; border-radius: 50%; object-fit: cover;\" />`;\n }\n\n return `<div ${dataBlockIdAttr(block.id)} style=\"width: ${avatarSize}; height: ${avatarSize}; border-radius: 50%; background-color: var(--sg-primary, #3b82f6); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: calc(${avatarSize} / 2.5);\">${initials}</div>`;\n}\n"],"names":["exportAvatar","block","depth","basePath","theme","src","name","size","sizeMap","avatarSize","initials","n","dataBlockIdAttr","escapeHtml"],"mappings":";AAQO,SAASA,EACdC,GACAC,GACAC,GACAC,GACQ;AACR,QAAM,EAAE,KAAAC,GAAK,MAAAC,GAAM,MAAAC,IAAO,KAAA,IAAUN,EAAc,OAE5CO,IAAkC;AAAA,IACtC,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAGAC,IAAaD,EAAQD,CAAI,KAAKC,EAAQ,IAEtCE,IAAWJ,IACbA,EACG,MAAM,GAAG,EACT,IAAI,CAACK,MAAcA,EAAE,CAAC,CAAC,EACvB,KAAK,EAAE,EACP,cACA,MAAM,GAAG,CAAC,IACb;AAEJ,SAAIN,IACK,QAAQO,EAAgBX,EAAM,EAAE,CAAC,SAASY,EAAWR,CAAG,CAAC,UAAUQ,EAAWP,KAAQ,QAAQ,CAAC,mBAAmBG,CAAU,aAAaA,CAAU,iDAGrJ,QAAQG,EAAgBX,EAAM,EAAE,CAAC,kBAAkBQ,CAAU,aAAaA,CAAU,
|
|
1
|
+
{"version":3,"file":"AvatarExporter.js","sources":["../../../../../src/engine/export/exporters/content/AvatarExporter.ts"],"sourcesContent":["/**\n * Avatar Block Exporter\n */\n\nimport { Block } from \"../../../schema/siteDocument\";\nimport { ThemeTokens } from \"../../../schema/themeTokens\";\nimport { dataBlockIdAttr, escapeHtml } from \"../../shared/htmlHelpers\";\n\nexport function exportAvatar(\n block: Block,\n depth: number,\n basePath?: string,\n theme?: ThemeTokens,\n): string {\n const { src, name, size = \"md\" } = (block as any).props;\n\n const sizeMap: Record<string, string> = {\n sm: \"2rem\",\n md: \"2.5rem\",\n lg: \"3rem\",\n xl: \"4rem\",\n };\n\n const avatarSize = sizeMap[size] || sizeMap.md;\n\n const initials = name\n ? name\n .split(\" \")\n .map((n: string) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n : \"?\";\n\n if (src) {\n return `<img ${dataBlockIdAttr(block.id)} src=\"${escapeHtml(src)}\" alt=\"${escapeHtml(name || \"Avatar\")}\" style=\"width: ${avatarSize}; height: ${avatarSize}; border-radius: 50%; object-fit: cover;\" />`;\n }\n\n return `<div ${dataBlockIdAttr(block.id)} style=\"width: ${avatarSize}; height: ${avatarSize}; border-radius: 50%; background-color: var(--sg-primary, #3b82f6); color: var(--sg-primary-text, #fff); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: calc(${avatarSize} / 2.5);\">${initials}</div>`;\n}\n"],"names":["exportAvatar","block","depth","basePath","theme","src","name","size","sizeMap","avatarSize","initials","n","dataBlockIdAttr","escapeHtml"],"mappings":";AAQO,SAASA,EACdC,GACAC,GACAC,GACAC,GACQ;AACR,QAAM,EAAE,KAAAC,GAAK,MAAAC,GAAM,MAAAC,IAAO,KAAA,IAAUN,EAAc,OAE5CO,IAAkC;AAAA,IACtC,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAGAC,IAAaD,EAAQD,CAAI,KAAKC,EAAQ,IAEtCE,IAAWJ,IACbA,EACG,MAAM,GAAG,EACT,IAAI,CAACK,MAAcA,EAAE,CAAC,CAAC,EACvB,KAAK,EAAE,EACP,cACA,MAAM,GAAG,CAAC,IACb;AAEJ,SAAIN,IACK,QAAQO,EAAgBX,EAAM,EAAE,CAAC,SAASY,EAAWR,CAAG,CAAC,UAAUQ,EAAWP,KAAQ,QAAQ,CAAC,mBAAmBG,CAAU,aAAaA,CAAU,iDAGrJ,QAAQG,EAAgBX,EAAM,EAAE,CAAC,kBAAkBQ,CAAU,aAAaA,CAAU,2MAA2MA,CAAU,aAAaC,CAAQ;AACvU;"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { dataBlockIdAttr as
|
|
2
|
-
function
|
|
3
|
-
const { text: s, variant: f = "default", size:
|
|
1
|
+
import { dataBlockIdAttr as n, escapeHtml as i } from "../../shared/htmlHelpers.js";
|
|
2
|
+
function c(r, o, d, m) {
|
|
3
|
+
const { text: s, variant: f = "default", size: g = "md" } = r.props, t = {
|
|
4
4
|
default: {
|
|
5
5
|
bg: "var(--sg-surface2, #f3f4f6)",
|
|
6
6
|
text: "var(--sg-text, #1f2937)"
|
|
7
7
|
},
|
|
8
|
-
primary: { bg: "var(--sg-primary, #3b82f6)", text: "#fff" },
|
|
9
|
-
secondary: { bg: "var(--sg-secondary, #6b7280)", text: "#fff" },
|
|
10
|
-
success: { bg: "var(--sg-success, #10b981)", text: "#fff" },
|
|
11
|
-
warning: { bg: "var(--sg-warning, #f59e0b)", text: "#fff" },
|
|
12
|
-
danger: { bg: "var(--sg-danger, #ef4444)", text: "#fff" }
|
|
13
|
-
},
|
|
8
|
+
primary: { bg: "var(--sg-primary, #3b82f6)", text: "var(--sg-primary-text, #fff)" },
|
|
9
|
+
secondary: { bg: "var(--sg-secondary, #6b7280)", text: "var(--sg-primary-text, #fff)" },
|
|
10
|
+
success: { bg: "var(--sg-success, #10b981)", text: "var(--sg-primary-text, #fff)" },
|
|
11
|
+
warning: { bg: "var(--sg-warning, #f59e0b)", text: "var(--sg-primary-text, #fff)" },
|
|
12
|
+
danger: { bg: "var(--sg-danger, #ef4444)", text: "var(--sg-primary-text, #fff)" }
|
|
13
|
+
}, e = {
|
|
14
14
|
sm: "padding: 0.125rem 0.5rem; font-size: 0.625rem;",
|
|
15
15
|
md: "padding: 0.25rem 0.75rem; font-size: 0.75rem;",
|
|
16
16
|
lg: "padding: 0.375rem 1rem; font-size: 0.875rem;"
|
|
17
17
|
}, a = t[f] || t.default;
|
|
18
|
-
return `<span ${
|
|
18
|
+
return `<span ${n(r.id)} style="display: inline-block; background-color: ${a.bg}; color: ${a.text}; border-radius: 9999px; font-weight: 500; ${e[g] || e.md}">${i(s)}</span>`;
|
|
19
19
|
}
|
|
20
20
|
export {
|
|
21
|
-
|
|
21
|
+
c as exportBadge
|
|
22
22
|
};
|
|
23
23
|
//# sourceMappingURL=BadgeExporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BadgeExporter.js","sources":["../../../../../src/engine/export/exporters/content/BadgeExporter.ts"],"sourcesContent":["/**\n * Badge Block Exporter\n */\n\nimport { Block } from \"../../../schema/siteDocument\";\nimport { ThemeTokens } from \"../../../schema/themeTokens\";\nimport { dataBlockIdAttr, escapeHtml } from \"../../shared/htmlHelpers\";\n\nexport function exportBadge(\n block: Block,\n depth: number,\n basePath?: string,\n theme?: ThemeTokens,\n): string {\n const { text, variant = \"default\", size = \"md\" } = (block as any).props;\n\n const variantColors: Record<string, { bg: string; text: string }> = {\n default: {\n bg: \"var(--sg-surface2, #f3f4f6)\",\n text: \"var(--sg-text, #1f2937)\",\n },\n primary: { bg: \"var(--sg-primary, #3b82f6)\", text: \"#fff\" },\n secondary: { bg: \"var(--sg-secondary, #6b7280)\", text: \"#fff\" },\n success: { bg: \"var(--sg-success, #10b981)\", text: \"#fff\" },\n warning: { bg: \"var(--sg-warning, #f59e0b)\", text: \"#fff\" },\n danger: { bg: \"var(--sg-danger, #ef4444)\", text: \"#fff\" },\n };\n\n const sizeStyles: Record<string, string> = {\n sm: \"padding: 0.125rem 0.5rem; font-size: 0.625rem;\",\n md: \"padding: 0.25rem 0.75rem; font-size: 0.75rem;\",\n lg: \"padding: 0.375rem 1rem; font-size: 0.875rem;\",\n };\n\n const colors = variantColors[variant] || variantColors.default;\n\n return `<span ${dataBlockIdAttr(block.id)} style=\"display: inline-block; background-color: ${colors.bg}; color: ${colors.text}; border-radius: 9999px; font-weight: 500; ${sizeStyles[size] || sizeStyles.md}\">${escapeHtml(text)}</span>`;\n}\n"],"names":["exportBadge","block","depth","basePath","theme","text","variant","size","variantColors","sizeStyles","colors","dataBlockIdAttr","escapeHtml"],"mappings":";AAQO,SAASA,EACdC,GACAC,GACAC,GACAC,GACQ;AACR,QAAM,EAAE,MAAAC,GAAM,SAAAC,IAAU,WAAW,MAAAC,IAAO,KAAA,IAAUN,EAAc,OAE5DO,IAA8D;AAAA,IAClE,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,MAAM;AAAA,IAAA;AAAA,IAER,SAAS,EAAE,IAAI,8BAA8B,MAAM
|
|
1
|
+
{"version":3,"file":"BadgeExporter.js","sources":["../../../../../src/engine/export/exporters/content/BadgeExporter.ts"],"sourcesContent":["/**\n * Badge Block Exporter\n */\n\nimport { Block } from \"../../../schema/siteDocument\";\nimport { ThemeTokens } from \"../../../schema/themeTokens\";\nimport { dataBlockIdAttr, escapeHtml } from \"../../shared/htmlHelpers\";\n\nexport function exportBadge(\n block: Block,\n depth: number,\n basePath?: string,\n theme?: ThemeTokens,\n): string {\n const { text, variant = \"default\", size = \"md\" } = (block as any).props;\n\n const variantColors: Record<string, { bg: string; text: string }> = {\n default: {\n bg: \"var(--sg-surface2, #f3f4f6)\",\n text: \"var(--sg-text, #1f2937)\",\n },\n primary: { bg: \"var(--sg-primary, #3b82f6)\", text: \"var(--sg-primary-text, #fff)\" },\n secondary: { bg: \"var(--sg-secondary, #6b7280)\", text: \"var(--sg-primary-text, #fff)\" },\n success: { bg: \"var(--sg-success, #10b981)\", text: \"var(--sg-primary-text, #fff)\" },\n warning: { bg: \"var(--sg-warning, #f59e0b)\", text: \"var(--sg-primary-text, #fff)\" },\n danger: { bg: \"var(--sg-danger, #ef4444)\", text: \"var(--sg-primary-text, #fff)\" },\n };\n\n const sizeStyles: Record<string, string> = {\n sm: \"padding: 0.125rem 0.5rem; font-size: 0.625rem;\",\n md: \"padding: 0.25rem 0.75rem; font-size: 0.75rem;\",\n lg: \"padding: 0.375rem 1rem; font-size: 0.875rem;\",\n };\n\n const colors = variantColors[variant] || variantColors.default;\n\n return `<span ${dataBlockIdAttr(block.id)} style=\"display: inline-block; background-color: ${colors.bg}; color: ${colors.text}; border-radius: 9999px; font-weight: 500; ${sizeStyles[size] || sizeStyles.md}\">${escapeHtml(text)}</span>`;\n}\n"],"names":["exportBadge","block","depth","basePath","theme","text","variant","size","variantColors","sizeStyles","colors","dataBlockIdAttr","escapeHtml"],"mappings":";AAQO,SAASA,EACdC,GACAC,GACAC,GACAC,GACQ;AACR,QAAM,EAAE,MAAAC,GAAM,SAAAC,IAAU,WAAW,MAAAC,IAAO,KAAA,IAAUN,EAAc,OAE5DO,IAA8D;AAAA,IAClE,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,MAAM;AAAA,IAAA;AAAA,IAER,SAAS,EAAE,IAAI,8BAA8B,MAAM,+BAAA;AAAA,IACnD,WAAW,EAAE,IAAI,gCAAgC,MAAM,+BAAA;AAAA,IACvD,SAAS,EAAE,IAAI,8BAA8B,MAAM,+BAAA;AAAA,IACnD,SAAS,EAAE,IAAI,8BAA8B,MAAM,+BAAA;AAAA,IACnD,QAAQ,EAAE,IAAI,6BAA6B,MAAM,+BAAA;AAAA,EAA+B,GAG5EC,IAAqC;AAAA,IACzC,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAGAC,IAASF,EAAcF,CAAO,KAAKE,EAAc;AAEvD,SAAO,SAASG,EAAgBV,EAAM,EAAE,CAAC,oDAAoDS,EAAO,EAAE,YAAYA,EAAO,IAAI,8CAA8CD,EAAWF,CAAI,KAAKE,EAAW,EAAE,KAAKG,EAAWP,CAAI,CAAC;AACnO;"}
|