@nextsparkjs/core 0.1.0-beta.67 → 0.1.0-beta.68
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/components/dashboard/block-editor/block-picker.d.ts +7 -2
- package/dist/components/dashboard/block-editor/block-picker.d.ts.map +1 -1
- package/dist/components/dashboard/block-editor/block-picker.js +27 -20
- package/dist/components/dashboard/block-editor/block-preview-canvas.d.ts.map +1 -1
- package/dist/components/dashboard/block-editor/block-preview-canvas.js +37 -37
- package/dist/components/dashboard/block-editor/block-settings-panel.js +3 -3
- package/dist/components/dashboard/block-editor/builder-editor-view.d.ts.map +1 -1
- package/dist/components/dashboard/block-editor/builder-editor-view.js +124 -82
- package/dist/components/dashboard/block-editor/config-panel.d.ts +18 -0
- package/dist/components/dashboard/block-editor/config-panel.d.ts.map +1 -0
- package/dist/components/dashboard/block-editor/config-panel.js +413 -0
- package/dist/components/dashboard/block-editor/floating-block-toolbar.js +1 -1
- package/dist/components/dashboard/block-editor/pattern-card.js +1 -1
- package/dist/components/dashboard/block-editor/pattern-reference-preview.js +1 -1
- package/dist/components/dashboard/block-editor/sortable-block.js +1 -1
- package/dist/components/dashboard/block-editor/tree-view-node.d.ts +11 -0
- package/dist/components/dashboard/block-editor/tree-view-node.d.ts.map +1 -0
- package/dist/components/dashboard/block-editor/tree-view-node.js +91 -0
- package/dist/components/dashboard/block-editor/tree-view.d.ts +17 -0
- package/dist/components/dashboard/block-editor/tree-view.d.ts.map +1 -0
- package/dist/components/dashboard/block-editor/tree-view.js +125 -0
- package/dist/components/dashboard/block-editor/viewport-toggle.d.ts +10 -0
- package/dist/components/dashboard/block-editor/viewport-toggle.d.ts.map +1 -0
- package/dist/components/dashboard/block-editor/viewport-toggle.js +55 -0
- package/dist/components/public/pageBuilder/PageRenderer.d.ts.map +1 -1
- package/dist/components/public/pageBuilder/PageRenderer.js +10 -1
- package/dist/components/ui/dynamic-icon.d.ts +12 -0
- package/dist/components/ui/dynamic-icon.d.ts.map +1 -0
- package/dist/components/ui/dynamic-icon.js +11 -0
- package/dist/lib/selectors/core-selectors.d.ts +98 -44
- package/dist/lib/selectors/core-selectors.d.ts.map +1 -1
- package/dist/lib/selectors/domains/block-editor.selectors.d.ts +136 -71
- package/dist/lib/selectors/domains/block-editor.selectors.d.ts.map +1 -1
- package/dist/lib/selectors/domains/block-editor.selectors.js +130 -60
- package/dist/lib/selectors/selectors.d.ts +196 -88
- package/dist/lib/selectors/selectors.d.ts.map +1 -1
- package/dist/messages/en/admin.json +15 -1
- package/dist/messages/en/index.d.ts +14 -0
- package/dist/messages/en/index.d.ts.map +1 -1
- package/dist/messages/es/admin.json +16 -1
- package/dist/messages/es/index.d.ts +15 -0
- package/dist/messages/es/index.d.ts.map +1 -1
- package/dist/presets/blocks/cta-section/component.tsx +4 -4
- package/dist/presets/blocks/features-grid/component.tsx +5 -5
- package/dist/presets/blocks/hero/component.tsx +2 -2
- package/dist/presets/blocks/testimonials/component.tsx +4 -4
- package/dist/presets/blocks/text-content/component.tsx +2 -2
- package/dist/presets/theme/blocks/hero/component.tsx +2 -2
- package/dist/presets/theme/tests/cypress/src/core/BlockEditorBasePOM.ts +123 -24
- package/dist/styles/classes.json +9 -2
- package/dist/styles/ui.css +1 -1
- package/dist/templates/features/blog/blocks/post-content/component.tsx +2 -2
- package/dist/templates/features/pages/blocks/hero/component.tsx +2 -2
- package/dist/templates/next.config.mjs +5 -3
- package/package.json +5 -4
- package/templates/features/blog/blocks/post-content/component.tsx +2 -2
- package/templates/features/pages/blocks/hero/component.tsx +2 -2
- package/templates/next.config.mjs +5 -3
|
@@ -8,16 +8,16 @@ import { v4 as uuidv4 } from "uuid";
|
|
|
8
8
|
import { Button } from "../../ui/button.js";
|
|
9
9
|
import { Input } from "../../ui/input.js";
|
|
10
10
|
import { Separator } from "../../ui/separator.js";
|
|
11
|
-
import { ArrowLeft, Save, ExternalLink, Eye,
|
|
11
|
+
import { ArrowLeft, Save, ExternalLink, Eye, Settings } from "lucide-react";
|
|
12
12
|
import Link from "next/link";
|
|
13
13
|
import { toast } from "sonner";
|
|
14
14
|
import { sel } from "../../../lib/test/index.js";
|
|
15
15
|
import { BlockPicker } from "./block-picker.js";
|
|
16
|
-
import { BlockCanvas } from "./block-canvas.js";
|
|
17
16
|
import { BlockPreviewCanvas } from "./block-preview-canvas.js";
|
|
18
17
|
import { BlockSettingsPanel } from "./block-settings-panel.js";
|
|
19
|
-
import { PageSettingsPanel } from "./page-settings-panel.js";
|
|
20
18
|
import { BlockService } from "../../../lib/services/block.service.js";
|
|
19
|
+
import { ViewportToggle } from "./viewport-toggle.js";
|
|
20
|
+
import { ConfigPanel } from "./config-panel.js";
|
|
21
21
|
import { useSidebar } from "../../../contexts/sidebar-context.js";
|
|
22
22
|
import { cn } from "../../../lib/utils.js";
|
|
23
23
|
function getTeamId() {
|
|
@@ -42,7 +42,7 @@ function slugify(text) {
|
|
|
42
42
|
return text.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9\s-]/g, "").trim().replace(/\s+/g, "-").replace(/-+/g, "-");
|
|
43
43
|
}
|
|
44
44
|
function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
45
|
-
var _a
|
|
45
|
+
var _a;
|
|
46
46
|
const router = useRouter();
|
|
47
47
|
const t = useTranslations("admin.builder");
|
|
48
48
|
const queryClient = useQueryClient();
|
|
@@ -55,6 +55,7 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
55
55
|
const [status, setStatus] = useState("draft");
|
|
56
56
|
const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);
|
|
57
57
|
const [viewMode, setViewMode] = useState("preview");
|
|
58
|
+
const [viewportMode, setViewportMode] = useState("desktop");
|
|
58
59
|
const [leftSidebarMode, setLeftSidebarMode] = useState("blocks");
|
|
59
60
|
const [pageSettings, setPageSettings] = useState({
|
|
60
61
|
seo: {},
|
|
@@ -64,8 +65,8 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
64
65
|
const [validationErrors, setValidationErrors] = useState({});
|
|
65
66
|
const titleInputRef = useRef(null);
|
|
66
67
|
const showFieldsOption = useMemo(() => {
|
|
67
|
-
var _a2,
|
|
68
|
-
return (((
|
|
68
|
+
var _a2, _b, _c;
|
|
69
|
+
return (((_b = (_a2 = entityConfig.builder) == null ? void 0 : _a2.sidebarFields) == null ? void 0 : _b.length) ?? 0) > 0 || ((_c = entityConfig.taxonomies) == null ? void 0 : _c.enabled);
|
|
69
70
|
}, [entityConfig]);
|
|
70
71
|
const showPatternsTab = useMemo(() => {
|
|
71
72
|
return entitySlug !== "patterns";
|
|
@@ -94,7 +95,7 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
94
95
|
enabled: mode === "edit" && !!id
|
|
95
96
|
});
|
|
96
97
|
useEffect(() => {
|
|
97
|
-
var _a2,
|
|
98
|
+
var _a2, _b;
|
|
98
99
|
if (mode === "edit" && (entityData == null ? void 0 : entityData.data)) {
|
|
99
100
|
const entity = entityData.data;
|
|
100
101
|
setTitle(entity.title ?? "");
|
|
@@ -104,7 +105,7 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
104
105
|
setBlocks(entity.blocks || []);
|
|
105
106
|
setPageSettings(entity.settings || { seo: {}, customFields: [] });
|
|
106
107
|
const fields = {};
|
|
107
|
-
(
|
|
108
|
+
(_b = (_a2 = entityConfig.builder) == null ? void 0 : _a2.sidebarFields) == null ? void 0 : _b.forEach((field) => {
|
|
108
109
|
if (entity[field] !== void 0) {
|
|
109
110
|
fields[field] = entity[field];
|
|
110
111
|
}
|
|
@@ -113,7 +114,7 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
113
114
|
}
|
|
114
115
|
}, [entityData, entityConfig, mode]);
|
|
115
116
|
useEffect(() => {
|
|
116
|
-
var _a2,
|
|
117
|
+
var _a2, _b;
|
|
117
118
|
if (mode === "create") {
|
|
118
119
|
setHasUnsavedChanges(title.length > 0 || blocks.length > 0 || status !== "draft");
|
|
119
120
|
return;
|
|
@@ -121,7 +122,7 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
121
122
|
if (!(entityData == null ? void 0 : entityData.data)) return;
|
|
122
123
|
const entity = entityData.data;
|
|
123
124
|
const hasChanges = title !== entity.title || slug !== entity.slug || status !== (entity.status || "draft") || JSON.stringify(blocks) !== JSON.stringify(entity.blocks || []) || JSON.stringify(pageSettings) !== JSON.stringify(entity.settings || { seo: {}, customFields: [] }) || JSON.stringify(entityFields) !== JSON.stringify(
|
|
124
|
-
((
|
|
125
|
+
((_b = (_a2 = entityConfig.builder) == null ? void 0 : _a2.sidebarFields) == null ? void 0 : _b.reduce((acc, field) => {
|
|
125
126
|
if (entity[field] !== void 0) acc[field] = entity[field];
|
|
126
127
|
return acc;
|
|
127
128
|
}, {})) || {}
|
|
@@ -238,9 +239,19 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
238
239
|
blockSlug,
|
|
239
240
|
props: {}
|
|
240
241
|
};
|
|
242
|
+
if (selectedBlockId) {
|
|
243
|
+
const index = blocks.findIndex((b) => b.id === selectedBlockId);
|
|
244
|
+
if (index !== -1) {
|
|
245
|
+
const newBlocks = [...blocks];
|
|
246
|
+
newBlocks.splice(index + 1, 0, newBlock);
|
|
247
|
+
setBlocks(newBlocks);
|
|
248
|
+
setSelectedBlockId(newBlock.id);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
241
252
|
setBlocks((prev) => [...prev, newBlock]);
|
|
242
253
|
setSelectedBlockId(newBlock.id);
|
|
243
|
-
}, []);
|
|
254
|
+
}, [blocks, selectedBlockId]);
|
|
244
255
|
const handleAddPattern = useCallback((patternId) => {
|
|
245
256
|
const patternRef = {
|
|
246
257
|
type: "pattern",
|
|
@@ -278,7 +289,7 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
278
289
|
));
|
|
279
290
|
}, []);
|
|
280
291
|
const handleReorderBlocks = useCallback((newBlocks) => {
|
|
281
|
-
setBlocks(newBlocks);
|
|
292
|
+
setBlocks(newBlocks.filter((b) => !("ref" in b)));
|
|
282
293
|
}, []);
|
|
283
294
|
const handleMoveBlockUp = useCallback((blockId) => {
|
|
284
295
|
setBlocks((prev) => {
|
|
@@ -308,11 +319,17 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
308
319
|
setLeftSidebarMode(value);
|
|
309
320
|
}
|
|
310
321
|
}, [leftSidebarMode]);
|
|
322
|
+
const handleViewModeChange = useCallback((mode2) => {
|
|
323
|
+
setViewMode(mode2);
|
|
324
|
+
if (mode2 === "settings") {
|
|
325
|
+
setSelectedBlockId(null);
|
|
326
|
+
}
|
|
327
|
+
}, []);
|
|
311
328
|
const selectedBlock = selectedBlockId ? blocks.find((b) => b.id === selectedBlockId) : void 0;
|
|
312
329
|
const publicUrl = useMemo(() => {
|
|
313
|
-
var _a2,
|
|
330
|
+
var _a2, _b, _c;
|
|
314
331
|
if (status !== "published" || !slug) return null;
|
|
315
|
-
const basePath = ((_a2 = entityConfig.access) == null ? void 0 : _a2.basePath) ?? ((_c = (
|
|
332
|
+
const basePath = ((_a2 = entityConfig.access) == null ? void 0 : _a2.basePath) ?? ((_c = (_b = entityConfig.builder) == null ? void 0 : _b.public) == null ? void 0 : _c.basePath) ?? "";
|
|
316
333
|
return basePath === "/" ? `/${slug}` : `${basePath}/${slug}`;
|
|
317
334
|
}, [status, slug, entityConfig]);
|
|
318
335
|
const leftSidebarOptions = useMemo(() => {
|
|
@@ -344,7 +361,7 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
344
361
|
return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-screen", children: /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: t("loading") }) });
|
|
345
362
|
}
|
|
346
363
|
return /* @__PURE__ */ jsxs("div", { className: cn(
|
|
347
|
-
"fixed inset-0 pt-14 pb-20 lg:top-16 lg:pt-0 lg:pb-0 flex flex-col bg-background z-20 transition-
|
|
364
|
+
"fixed inset-0 pt-14 pb-20 lg:top-16 lg:pt-0 lg:pb-0 flex flex-col bg-background z-20 transition-[width,padding] duration-300",
|
|
348
365
|
isCollapsed ? "lg:left-16" : "lg:left-64"
|
|
349
366
|
), "data-cy": sel("blockEditor.container"), children: [
|
|
350
367
|
/* @__PURE__ */ jsx(
|
|
@@ -438,45 +455,54 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
438
455
|
)
|
|
439
456
|
] })
|
|
440
457
|
] }),
|
|
441
|
-
/* @__PURE__ */ jsxs(
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
458
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
459
|
+
/* @__PURE__ */ jsxs(
|
|
460
|
+
"div",
|
|
461
|
+
{
|
|
462
|
+
className: "bg-muted p-1 rounded-lg flex items-center text-sm font-medium",
|
|
463
|
+
"data-cy": sel("blockEditor.header.viewToggle"),
|
|
464
|
+
children: [
|
|
465
|
+
/* @__PURE__ */ jsxs(
|
|
466
|
+
"button",
|
|
467
|
+
{
|
|
468
|
+
className: cn(
|
|
469
|
+
"px-3 py-1.5 rounded-md transition-colors flex items-center gap-2",
|
|
470
|
+
viewMode === "preview" ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-muted-foreground/10"
|
|
471
|
+
),
|
|
472
|
+
onClick: () => handleViewModeChange("preview"),
|
|
473
|
+
"data-cy": sel("blockEditor.header.viewPreview"),
|
|
474
|
+
children: [
|
|
475
|
+
/* @__PURE__ */ jsx(Eye, { className: "h-3.5 w-3.5" }),
|
|
476
|
+
/* @__PURE__ */ jsx("span", { children: t("viewMode.preview") })
|
|
477
|
+
]
|
|
478
|
+
}
|
|
479
|
+
),
|
|
480
|
+
/* @__PURE__ */ jsxs(
|
|
481
|
+
"button",
|
|
482
|
+
{
|
|
483
|
+
className: cn(
|
|
484
|
+
"px-3 py-1.5 rounded-md transition-colors flex items-center gap-2",
|
|
485
|
+
viewMode === "settings" ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-muted-foreground/10"
|
|
486
|
+
),
|
|
487
|
+
onClick: () => handleViewModeChange("settings"),
|
|
488
|
+
"data-cy": sel("blockEditor.header.viewSettings"),
|
|
489
|
+
children: [
|
|
490
|
+
/* @__PURE__ */ jsx(Settings, { className: "h-3.5 w-3.5" }),
|
|
491
|
+
/* @__PURE__ */ jsx("span", { children: t("viewMode.settings") })
|
|
492
|
+
]
|
|
493
|
+
}
|
|
494
|
+
)
|
|
495
|
+
]
|
|
496
|
+
}
|
|
497
|
+
),
|
|
498
|
+
viewMode === "preview" && /* @__PURE__ */ jsx(
|
|
499
|
+
ViewportToggle,
|
|
500
|
+
{
|
|
501
|
+
value: viewportMode,
|
|
502
|
+
onChange: setViewportMode
|
|
503
|
+
}
|
|
504
|
+
)
|
|
505
|
+
] }),
|
|
480
506
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 flex-1 justify-end", children: [
|
|
481
507
|
/* @__PURE__ */ jsxs(
|
|
482
508
|
"div",
|
|
@@ -557,42 +583,58 @@ function BuilderEditorView({ entitySlug, entityConfig, id, mode }) {
|
|
|
557
583
|
entityFields,
|
|
558
584
|
onEntityFieldChange: handleEntityFieldChange,
|
|
559
585
|
showFieldsTab: !!showFieldsOption,
|
|
560
|
-
showPatternsTab
|
|
586
|
+
showPatternsTab,
|
|
587
|
+
pageBlocks: blocks,
|
|
588
|
+
selectedBlockId,
|
|
589
|
+
onSelectBlock: setSelectedBlockId,
|
|
590
|
+
onReorderBlocks: handleReorderBlocks
|
|
561
591
|
}
|
|
562
592
|
) }),
|
|
563
|
-
/* @__PURE__ */
|
|
593
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-hidden", children: [
|
|
564
594
|
/* @__PURE__ */ jsx(
|
|
565
|
-
|
|
595
|
+
"div",
|
|
566
596
|
{
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
597
|
+
className: cn(
|
|
598
|
+
"h-full overflow-y-auto bg-muted/30",
|
|
599
|
+
viewMode !== "preview" && "hidden"
|
|
600
|
+
),
|
|
601
|
+
"data-cy": sel("blockEditor.previewCanvas.container"),
|
|
602
|
+
children: /* @__PURE__ */ jsx(
|
|
603
|
+
"div",
|
|
604
|
+
{
|
|
605
|
+
className: "mx-auto transition-[width] duration-200 min-h-full",
|
|
606
|
+
style: {
|
|
607
|
+
width: viewportMode === "mobile" ? "375px" : "100%",
|
|
608
|
+
maxWidth: "100%"
|
|
609
|
+
},
|
|
610
|
+
"data-cy": sel("blockEditor.previewCanvas.viewport", { mode: viewportMode }),
|
|
611
|
+
children: /* @__PURE__ */ jsx("div", { className: "min-h-full bg-background", children: /* @__PURE__ */ jsx(
|
|
612
|
+
BlockPreviewCanvas,
|
|
613
|
+
{
|
|
614
|
+
blocks,
|
|
615
|
+
selectedBlockId,
|
|
616
|
+
onSelectBlock: setSelectedBlockId,
|
|
617
|
+
onMoveUp: handleMoveBlockUp,
|
|
618
|
+
onMoveDown: handleMoveBlockDown,
|
|
619
|
+
onDuplicate: handleDuplicateBlock,
|
|
620
|
+
onRemove: handleRemoveBlock
|
|
621
|
+
}
|
|
622
|
+
) })
|
|
623
|
+
}
|
|
624
|
+
)
|
|
575
625
|
}
|
|
576
626
|
),
|
|
577
|
-
|
|
578
|
-
|
|
627
|
+
/* @__PURE__ */ jsx("div", { className: cn(viewMode !== "settings" && "hidden"), children: /* @__PURE__ */ jsx(
|
|
628
|
+
ConfigPanel,
|
|
579
629
|
{
|
|
580
|
-
|
|
581
|
-
|
|
630
|
+
entityConfig,
|
|
631
|
+
entityFields,
|
|
632
|
+
onEntityFieldChange: handleEntityFieldChange,
|
|
633
|
+
pageSettings,
|
|
634
|
+
onPageSettingsChange: setPageSettings
|
|
582
635
|
}
|
|
583
|
-
)
|
|
584
|
-
] })
|
|
585
|
-
BlockPreviewCanvas,
|
|
586
|
-
{
|
|
587
|
-
blocks,
|
|
588
|
-
selectedBlockId,
|
|
589
|
-
onSelectBlock: setSelectedBlockId,
|
|
590
|
-
onMoveUp: handleMoveBlockUp,
|
|
591
|
-
onMoveDown: handleMoveBlockDown,
|
|
592
|
-
onDuplicate: handleDuplicateBlock,
|
|
593
|
-
onRemove: handleRemoveBlock
|
|
594
|
-
}
|
|
595
|
-
) }) }),
|
|
636
|
+
) })
|
|
637
|
+
] }),
|
|
596
638
|
/* @__PURE__ */ jsx("div", { className: "w-96 border-l overflow-hidden shadow-sm", children: /* @__PURE__ */ jsx(
|
|
597
639
|
BlockSettingsPanel,
|
|
598
640
|
{
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ClientEntityConfig } from '@nextsparkjs/registries/entity-registry.client';
|
|
2
|
+
import type { PageSettings } from './page-settings-panel';
|
|
3
|
+
interface ConfigPanelProps {
|
|
4
|
+
entityConfig: ClientEntityConfig;
|
|
5
|
+
entityFields: Record<string, unknown>;
|
|
6
|
+
onEntityFieldChange: (field: string, value: unknown) => void;
|
|
7
|
+
pageSettings: PageSettings;
|
|
8
|
+
onPageSettingsChange: (settings: PageSettings) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* ConfigPanel - Settings view for the center column
|
|
12
|
+
*
|
|
13
|
+
* Combines entity fields and SEO/meta settings in a single scrollable panel
|
|
14
|
+
* with two collapsible sections.
|
|
15
|
+
*/
|
|
16
|
+
export declare function ConfigPanel({ entityConfig, entityFields, onEntityFieldChange, pageSettings, onPageSettingsChange }: ConfigPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=config-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-panel.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/block-editor/config-panel.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAA;AACxF,OAAO,KAAK,EAAE,YAAY,EAAoC,MAAM,uBAAuB,CAAA;AAS3F,UAAU,gBAAgB;IACxB,YAAY,EAAE,kBAAkB,CAAA;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5D,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;CACvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACrB,EAAE,gBAAgB,2CAyZlB"}
|