@actuate-media/cms-admin 0.67.0 → 0.68.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/CHANGELOG.md +16 -0
- package/dist/AdminRoot.d.ts.map +1 -1
- package/dist/AdminRoot.js +29 -5
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/hooks/useIdleLogout.test.d.ts +2 -0
- package/dist/__tests__/hooks/useIdleLogout.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/useIdleLogout.test.js +64 -0
- package/dist/__tests__/hooks/useIdleLogout.test.js.map +1 -0
- package/dist/__tests__/lib/post-types-service.test.d.ts +2 -0
- package/dist/__tests__/lib/post-types-service.test.d.ts.map +1 -0
- package/dist/__tests__/lib/post-types-service.test.js +88 -0
- package/dist/__tests__/lib/post-types-service.test.js.map +1 -0
- package/dist/__tests__/views/collection-list-nav.render.test.js +43 -5
- package/dist/__tests__/views/collection-list-nav.render.test.js.map +1 -1
- package/dist/__tests__/views/forms-list.render.test.js +25 -6
- package/dist/__tests__/views/forms-list.render.test.js.map +1 -1
- package/dist/__tests__/views/page-builder-sections-panel.render.test.d.ts +2 -0
- package/dist/__tests__/views/page-builder-sections-panel.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/page-builder-sections-panel.render.test.js +121 -0
- package/dist/__tests__/views/page-builder-sections-panel.render.test.js.map +1 -0
- package/dist/__tests__/views/page-templates.render.test.d.ts +2 -0
- package/dist/__tests__/views/page-templates.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/page-templates.render.test.js +105 -0
- package/dist/__tests__/views/page-templates.render.test.js.map +1 -0
- package/dist/__tests__/views/post-type-editor.render.test.d.ts +2 -0
- package/dist/__tests__/views/post-type-editor.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/post-type-editor.render.test.js +102 -0
- package/dist/__tests__/views/post-type-editor.render.test.js.map +1 -0
- package/dist/__tests__/views/security-settings.render.test.js +85 -4
- package/dist/__tests__/views/security-settings.render.test.js.map +1 -1
- package/dist/__tests__/views/seo-content-pane.render.test.d.ts +2 -0
- package/dist/__tests__/views/seo-content-pane.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/seo-content-pane.render.test.js +117 -0
- package/dist/__tests__/views/seo-content-pane.render.test.js.map +1 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/components/collections/EntryDetailPane.d.ts +10 -0
- package/dist/components/collections/EntryDetailPane.d.ts.map +1 -0
- package/dist/components/collections/EntryDetailPane.js +92 -0
- package/dist/components/collections/EntryDetailPane.js.map +1 -0
- package/dist/components/forms/FieldsPanel.js +1 -1
- package/dist/components/forms/FieldsPanel.js.map +1 -1
- package/dist/components/forms/FormSchemaPane.d.ts +8 -0
- package/dist/components/forms/FormSchemaPane.d.ts.map +1 -0
- package/dist/components/forms/FormSchemaPane.js +95 -0
- package/dist/components/forms/FormSchemaPane.js.map +1 -0
- package/dist/components/seo/SeoEditorPane.d.ts +9 -0
- package/dist/components/seo/SeoEditorPane.d.ts.map +1 -0
- package/dist/components/seo/SeoEditorPane.js +175 -0
- package/dist/components/seo/SeoEditorPane.js.map +1 -0
- package/dist/components/ui/Badge.d.ts +1 -1
- package/dist/components/ui/Button.d.ts +1 -1
- package/dist/components/ui/StatusBadge.d.ts +1 -1
- package/dist/hooks/useIdleLogout.d.ts +18 -0
- package/dist/hooks/useIdleLogout.d.ts.map +1 -0
- package/dist/hooks/useIdleLogout.js +66 -0
- package/dist/hooks/useIdleLogout.js.map +1 -0
- package/dist/lib/api.d.ts +1 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +7 -1
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/post-types-service.d.ts +44 -0
- package/dist/lib/post-types-service.d.ts.map +1 -0
- package/dist/lib/post-types-service.js +83 -0
- package/dist/lib/post-types-service.js.map +1 -0
- package/dist/views/CollectionList.d.ts.map +1 -1
- package/dist/views/CollectionList.js +23 -4
- package/dist/views/CollectionList.js.map +1 -1
- package/dist/views/Forms.d.ts.map +1 -1
- package/dist/views/Forms.js +25 -21
- package/dist/views/Forms.js.map +1 -1
- package/dist/views/Posts/PostTypeEditor.d.ts +16 -0
- package/dist/views/Posts/PostTypeEditor.d.ts.map +1 -0
- package/dist/views/Posts/PostTypeEditor.js +159 -0
- package/dist/views/Posts/PostTypeEditor.js.map +1 -0
- package/dist/views/Posts/PostTypesView.d.ts +3 -2
- package/dist/views/Posts/PostTypesView.d.ts.map +1 -1
- package/dist/views/Posts/PostTypesView.js +1 -1
- package/dist/views/Posts/PostTypesView.js.map +1 -1
- package/dist/views/page-builder/BuilderSectionsPanel.d.ts +20 -0
- package/dist/views/page-builder/BuilderSectionsPanel.d.ts.map +1 -0
- package/dist/views/page-builder/BuilderSectionsPanel.js +105 -0
- package/dist/views/page-builder/BuilderSectionsPanel.js.map +1 -0
- package/dist/views/page-builder/PageBuilder.d.ts.map +1 -1
- package/dist/views/page-builder/PageBuilder.js +51 -2
- package/dist/views/page-builder/PageBuilder.js.map +1 -1
- package/dist/views/page-builder/PageTemplates.d.ts.map +1 -1
- package/dist/views/page-builder/PageTemplates.js +113 -6
- package/dist/views/page-builder/PageTemplates.js.map +1 -1
- package/dist/views/seo/ContentTab.d.ts.map +1 -1
- package/dist/views/seo/ContentTab.js +22 -6
- package/dist/views/seo/ContentTab.js.map +1 -1
- package/dist/views/settings/AccessProtectionCard.d.ts +5 -1
- package/dist/views/settings/AccessProtectionCard.d.ts.map +1 -1
- package/dist/views/settings/AccessProtectionCard.js +13 -10
- package/dist/views/settings/AccessProtectionCard.js.map +1 -1
- package/dist/views/settings/SecurityTab.d.ts.map +1 -1
- package/dist/views/settings/SecurityTab.js +3 -3
- package/dist/views/settings/SecurityTab.js.map +1 -1
- package/dist/views/settings/SessionPolicyCard.d.ts +1 -2
- package/dist/views/settings/SessionPolicyCard.d.ts.map +1 -1
- package/dist/views/settings/SessionPolicyCard.js +12 -5
- package/dist/views/settings/SessionPolicyCard.js.map +1 -1
- package/dist/views/settings/useSecuritySettings.d.ts +13 -1
- package/dist/views/settings/useSecuritySettings.d.ts.map +1 -1
- package/dist/views/settings/useSecuritySettings.js +47 -4
- package/dist/views/settings/useSecuritySettings.js.map +1 -1
- package/package.json +2 -2
- package/src/AdminRoot.tsx +36 -7
- package/src/__tests__/hooks/useIdleLogout.test.tsx +86 -0
- package/src/__tests__/lib/post-types-service.test.ts +112 -0
- package/src/__tests__/views/collection-list-nav.render.test.tsx +51 -5
- package/src/__tests__/views/forms-list.render.test.tsx +34 -6
- package/src/__tests__/views/page-builder-sections-panel.render.test.tsx +138 -0
- package/src/__tests__/views/page-templates.render.test.tsx +142 -0
- package/src/__tests__/views/post-type-editor.render.test.tsx +116 -0
- package/src/__tests__/views/security-settings.render.test.tsx +111 -4
- package/src/__tests__/views/seo-content-pane.render.test.tsx +142 -0
- package/src/components/collections/EntryDetailPane.tsx +182 -0
- package/src/components/forms/FieldsPanel.tsx +3 -1
- package/src/components/forms/FormSchemaPane.tsx +192 -0
- package/src/components/seo/SeoEditorPane.tsx +533 -0
- package/src/hooks/useIdleLogout.ts +77 -0
- package/src/lib/api.ts +8 -2
- package/src/lib/post-types-service.ts +129 -0
- package/src/views/CollectionList.tsx +158 -110
- package/src/views/Forms.tsx +154 -126
- package/src/views/Posts/PostTypeEditor.tsx +568 -0
- package/src/views/Posts/PostTypesView.tsx +5 -4
- package/src/views/page-builder/BuilderSectionsPanel.tsx +304 -0
- package/src/views/page-builder/PageBuilder.tsx +69 -2
- package/src/views/page-builder/PageTemplates.tsx +340 -57
- package/src/views/seo/ContentTab.tsx +113 -80
- package/src/views/settings/AccessProtectionCard.tsx +83 -53
- package/src/views/settings/SecurityTab.tsx +23 -2
- package/src/views/settings/SessionPolicyCard.tsx +45 -9
- package/src/views/settings/useSecuritySettings.ts +78 -22
- package/dist/components/forms/FormSchemaDrawer.d.ts +0 -9
- package/dist/components/forms/FormSchemaDrawer.d.ts.map +0 -1
- package/dist/components/forms/FormSchemaDrawer.js +0 -99
- package/dist/components/forms/FormSchemaDrawer.js.map +0 -1
- package/dist/components/seo/SeoEditorDrawer.d.ts +0 -8
- package/dist/components/seo/SeoEditorDrawer.d.ts.map +0 -1
- package/dist/components/seo/SeoEditorDrawer.js +0 -172
- package/dist/components/seo/SeoEditorDrawer.js.map +0 -1
- package/src/components/forms/FormSchemaDrawer.tsx +0 -192
- package/src/components/seo/SeoEditorDrawer.tsx +0 -529
package/dist/views/Forms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Forms.js","sourceRoot":"","sources":["../../src/views/Forms.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Forms.js","sourceRoot":"","sources":["../../src/views/Forms.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /posts/types/:slug/edit — Post Type editor (design `TypeEditor`).
|
|
3
|
+
*
|
|
4
|
+
* Layout matches the design split: toolbar, 340px identity panel, field
|
|
5
|
+
* builder. Collections are file-defined in `actuate.config.ts`, so identity
|
|
6
|
+
* and the field list are the *live schema* rendered read-only, and "Add
|
|
7
|
+
* Field" emits a paste-ready config snippet instead of mutating a schema
|
|
8
|
+
* the server can't persist (same model as the New Post Type flow).
|
|
9
|
+
*/
|
|
10
|
+
interface PostTypeEditorProps {
|
|
11
|
+
slug: string;
|
|
12
|
+
onNavigate: (path: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function PostTypeEditor({ slug, onNavigate }: PostTypeEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=PostTypeEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostTypeEditor.d.ts","sourceRoot":"","sources":["../../../src/views/Posts/PostTypeEditor.tsx"],"names":[],"mappings":"AA2BA;;;;;;;;GAQG;AAEH,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAgBD,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,mBAAmB,2CAmEvE"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { Check, ChevronRight, Copy, ExternalLink, FileQuestion, LayoutTemplate, Lock, Plus, } from 'lucide-react';
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
|
+
import { fetchPosts } from '../../lib/posts-service.js';
|
|
7
|
+
import { fetchPostTypeDetail, fieldKeyFromName, fieldTypeLabel, humanizeFieldName, renderFieldSnippet, } from '../../lib/post-types-service.js';
|
|
8
|
+
import { paletteFor } from '../../components/posts/badges.js';
|
|
9
|
+
import { resolvePostTypeIcon } from '../../components/posts/icons.js';
|
|
10
|
+
import { Toggle } from '../../components/ui/Toggle.js';
|
|
11
|
+
const ADDABLE_FIELD_TYPES = [
|
|
12
|
+
{ type: 'text', desc: 'Single line' },
|
|
13
|
+
{ type: 'richText', desc: 'WYSIWYG' },
|
|
14
|
+
{ type: 'number', desc: 'Int / decimal' },
|
|
15
|
+
{ type: 'date', desc: 'Date & time' },
|
|
16
|
+
{ type: 'boolean', desc: 'True / false' },
|
|
17
|
+
{ type: 'url', desc: 'Web address' },
|
|
18
|
+
{ type: 'email', desc: 'Email address' },
|
|
19
|
+
{ type: 'select', desc: 'Dropdown' },
|
|
20
|
+
{ type: 'media', desc: 'Image / file' },
|
|
21
|
+
{ type: 'relationship', desc: 'Link to type' },
|
|
22
|
+
{ type: 'json', desc: 'Raw data' },
|
|
23
|
+
];
|
|
24
|
+
export function PostTypeEditor({ slug, onNavigate }) {
|
|
25
|
+
const [detail, setDetail] = useState(null);
|
|
26
|
+
const [postCount, setPostCount] = useState(null);
|
|
27
|
+
const [loading, setLoading] = useState(true);
|
|
28
|
+
const [error, setError] = useState(null);
|
|
29
|
+
const [notFound, setNotFound] = useState(false);
|
|
30
|
+
const [refreshToken, setRefreshToken] = useState(0);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
let cancelled = false;
|
|
33
|
+
setLoading(true);
|
|
34
|
+
setError(null);
|
|
35
|
+
setNotFound(false);
|
|
36
|
+
Promise.all([fetchPostTypeDetail(slug), fetchPosts({ pageSize: 1 }).catch(() => null)])
|
|
37
|
+
.then(([d, postsRes]) => {
|
|
38
|
+
if (cancelled)
|
|
39
|
+
return;
|
|
40
|
+
if (!d) {
|
|
41
|
+
setNotFound(true);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
setDetail(d);
|
|
45
|
+
const typeRow = postsRes?.types.find((t) => t.slug === slug);
|
|
46
|
+
setPostCount(typeRow?.postCount ?? null);
|
|
47
|
+
}
|
|
48
|
+
setLoading(false);
|
|
49
|
+
})
|
|
50
|
+
.catch((err) => {
|
|
51
|
+
if (cancelled)
|
|
52
|
+
return;
|
|
53
|
+
setError(err instanceof Error ? err.message : 'Failed to load post type');
|
|
54
|
+
setLoading(false);
|
|
55
|
+
});
|
|
56
|
+
return () => {
|
|
57
|
+
cancelled = true;
|
|
58
|
+
};
|
|
59
|
+
}, [slug, refreshToken]);
|
|
60
|
+
if (loading)
|
|
61
|
+
return _jsx(EditorSkeleton, {});
|
|
62
|
+
if (notFound) {
|
|
63
|
+
return (_jsx(CenteredNotice, { title: `No post type named "${slug}"`, body: "It may have been removed from actuate.config.ts.", actionLabel: "Back to Post Types", onAction: () => onNavigate('/posts/types') }));
|
|
64
|
+
}
|
|
65
|
+
if (error || !detail) {
|
|
66
|
+
return (_jsx(CenteredNotice, { title: error ?? 'Failed to load post type', actionLabel: "Try again", onAction: () => setRefreshToken((t) => t + 1) }));
|
|
67
|
+
}
|
|
68
|
+
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsx(EditorToolbar, { detail: detail, postCount: postCount, onNavigate: onNavigate }), _jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto p-4 sm:p-6 lg:flex-row lg:items-start lg:overflow-hidden", children: [_jsx(IdentityPanel, { detail: detail }), _jsx(FieldBuilder, { detail: detail })] })] }));
|
|
69
|
+
}
|
|
70
|
+
// ─── Toolbar ─────────────────────────────────────────────────────────
|
|
71
|
+
function EditorToolbar({ detail, postCount, onNavigate, }) {
|
|
72
|
+
const palette = paletteFor(detail.color);
|
|
73
|
+
return (_jsxs("div", { className: "border-border bg-card flex flex-wrap items-center gap-3 border-b px-4 py-3 sm:px-6", children: [_jsxs("nav", { "aria-label": "Breadcrumb", className: "flex min-w-0 items-center gap-1.5 text-sm", children: [_jsx("button", { type: "button", onClick: () => onNavigate('/posts/types'), className: "text-muted-foreground hover:text-foreground transition-colors", children: "Post Types" }), _jsx(ChevronRight, { className: "text-muted-foreground h-3.5 w-3.5 shrink-0", "aria-hidden": true }), _jsx("span", { className: "text-foreground truncate font-medium", children: detail.plural })] }), postCount !== null && (_jsxs("span", { className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium tabular-nums ${palette.bg} ${palette.text}`, children: [postCount, " ", postCount === 1 ? 'post' : 'posts'] })), _jsxs("div", { className: "ml-auto flex items-center gap-2", children: [_jsxs("button", { type: "button", onClick: () => onNavigate(`/posts/types/${detail.slug}/template`), className: "border-border text-foreground hover:bg-accent focus-visible:ring-ring inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors focus:outline-none focus-visible:ring-2", children: [_jsx(LayoutTemplate, { className: "h-3.5 w-3.5", "aria-hidden": true }), "Edit template"] }), _jsxs("button", { type: "button", onClick: () => onNavigate('/posts'), className: "bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-ring inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-sm font-medium shadow-sm transition-colors focus:outline-none focus-visible:ring-2", children: [_jsx(ExternalLink, { className: "h-3.5 w-3.5", "aria-hidden": true }), "View posts"] })] })] }));
|
|
74
|
+
}
|
|
75
|
+
// ─── Identity panel (left, 340px) ────────────────────────────────────
|
|
76
|
+
function IdentityPanel({ detail }) {
|
|
77
|
+
const palette = paletteFor(detail.color);
|
|
78
|
+
const Icon = resolvePostTypeIcon(detail.icon);
|
|
79
|
+
return (_jsxs("aside", { "aria-label": "Post type identity", className: "flex w-full shrink-0 flex-col gap-5 lg:max-h-full lg:w-[340px] lg:overflow-y-auto", children: [_jsxs(IdentitySection, { title: "Identity", children: [_jsx(ReadOnlyField, { label: "Type Name", value: detail.plural }), _jsx(ReadOnlyField, { label: "API Slug", value: detail.slug, mono: true }), _jsx(ReadOnlyField, { label: "Description", value: detail.description ?? 'No description provided.' }), _jsxs("p", { className: "text-muted-foreground text-xs", children: ["Identity and fields are defined in ", _jsx("code", { className: "font-mono", children: "actuate.config.ts" }), ' ', "under ", _jsxs("code", { className: "font-mono", children: ["collections.", detail.slug] }), ". Edit the config and redeploy to change them."] })] }), _jsx(IdentitySection, { title: "Icon & color", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: `inline-flex h-10 w-10 items-center justify-center rounded-lg ${palette.bg} ${palette.text}`, children: _jsx(Icon, { className: "h-5 w-5", "aria-hidden": true }) }), _jsxs("div", { className: "flex flex-col gap-0.5 text-sm", children: [_jsx("span", { className: "text-foreground font-medium", children: detail.icon ?? 'file-text' }), _jsxs("span", { className: "text-muted-foreground text-xs", children: ["Accent: ", detail.color ?? 'default'] })] })] }) }), _jsx(IdentitySection, { title: "API preview", children: _jsxs("div", { className: "border-border bg-muted flex flex-col gap-1.5 overflow-x-auto rounded-lg border p-3 font-mono text-xs", children: [_jsx(ApiRow, { method: "GET", path: `/api/cms/collections/${detail.slug}` }), _jsx(ApiRow, { method: "GET", path: `/api/cms/collections/${detail.slug}/{id}` }), _jsx(ApiRow, { method: "POST", path: `/api/cms/collections/${detail.slug}` })] }) })] }));
|
|
80
|
+
}
|
|
81
|
+
function IdentitySection({ title, children }) {
|
|
82
|
+
return (_jsxs("section", { className: "bg-card border-border flex flex-col gap-3 rounded-xl border p-5 shadow-sm", children: [_jsx("h2", { className: "text-muted-foreground text-xs font-medium tracking-wide uppercase", children: title }), children] }));
|
|
83
|
+
}
|
|
84
|
+
function ReadOnlyField({ label, value, mono }) {
|
|
85
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-foreground text-sm font-medium", children: label }), _jsx("div", { className: `border-border bg-muted text-foreground rounded-lg border px-3 py-1.5 text-sm ${mono ? 'font-mono' : ''}`, children: value })] }));
|
|
86
|
+
}
|
|
87
|
+
function ApiRow({ method, path }) {
|
|
88
|
+
return (_jsxs("div", { className: "flex items-center gap-2 whitespace-nowrap", children: [_jsx("span", { className: `w-10 shrink-0 font-medium ${method === 'GET' ? 'text-success' : 'text-info'}`, children: method }), _jsx("span", { className: "text-muted-foreground", children: path })] }));
|
|
89
|
+
}
|
|
90
|
+
// ─── Field builder (right) ───────────────────────────────────────────
|
|
91
|
+
function FieldBuilder({ detail }) {
|
|
92
|
+
return (_jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-4 lg:max-h-full lg:overflow-y-auto", children: [_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("h2", { className: "text-foreground text-base font-medium", children: "Field Builder" }), _jsxs("p", { className: "text-muted-foreground text-sm", children: [detail.fields.length, " ", detail.fields.length === 1 ? 'field' : 'fields', " defined in", ' ', _jsx("code", { className: "font-mono", children: "actuate.config.ts" })] })] }), _jsx(FieldList, { detail: detail }), _jsx(AddFieldCard, { detail: detail })] }));
|
|
93
|
+
}
|
|
94
|
+
function FieldList({ detail }) {
|
|
95
|
+
return (_jsxs("div", { className: "bg-card border-border rounded-xl border shadow-sm", children: [_jsxs("div", { className: "border-border flex items-center gap-2 border-b px-4 py-3", children: [_jsx(Lock, { className: "text-muted-foreground h-3.5 w-3.5", "aria-hidden": true }), _jsx("span", { className: "text-foreground text-sm font-medium", children: "Fields" }), _jsxs("span", { className: "bg-muted text-muted-foreground ml-auto rounded-full px-2 py-0.5 text-xs font-medium", children: ["Defined in code \u00B7 ", detail.fields.length, " ", detail.fields.length === 1 ? 'field' : 'fields'] })] }), detail.fields.length === 0 ? (_jsx("p", { className: "text-muted-foreground px-4 py-6 text-center text-sm", children: "This type has no fields yet. Add one below." })) : (_jsx("ul", { className: "divide-border divide-y", children: detail.fields.map((f) => (_jsxs("li", { className: "flex items-center gap-3 px-4 py-2.5", children: [_jsx(Lock, { className: "text-muted-foreground h-3.5 w-3.5 shrink-0", "aria-hidden": true }), _jsxs("div", { className: "flex min-w-0 flex-col", children: [_jsx("span", { className: "text-foreground truncate text-sm font-medium", children: humanizeFieldName(f.name) }), _jsx("span", { className: "text-muted-foreground truncate font-mono text-xs", children: f.name })] }), _jsx("span", { className: "border-border text-muted-foreground ml-auto shrink-0 rounded-full border px-2 py-0.5 text-xs", children: fieldTypeLabel(f.type) }), _jsx("span", { className: `shrink-0 rounded-full px-2 py-0.5 text-xs font-medium ${f.required
|
|
96
|
+
? 'bg-destructive/10 text-destructive'
|
|
97
|
+
: 'bg-muted text-muted-foreground'}`, children: f.required ? 'Required' : 'Optional' })] }, f.name))) }))] }));
|
|
98
|
+
}
|
|
99
|
+
// ─── Add Field (snippet generator) ───────────────────────────────────
|
|
100
|
+
function AddFieldCard({ detail }) {
|
|
101
|
+
const [open, setOpen] = useState(false);
|
|
102
|
+
const [fieldType, setFieldType] = useState(null);
|
|
103
|
+
const [name, setName] = useState('');
|
|
104
|
+
const [helpText, setHelpText] = useState('');
|
|
105
|
+
const [required, setRequired] = useState(false);
|
|
106
|
+
const [copied, setCopied] = useState(false);
|
|
107
|
+
const key = useMemo(() => fieldKeyFromName(name), [name]);
|
|
108
|
+
const existingKeys = useMemo(() => new Set(detail.fields.map((f) => f.name)), [detail.fields]);
|
|
109
|
+
const duplicate = key !== '' && existingKeys.has(key);
|
|
110
|
+
const snippet = useMemo(() => {
|
|
111
|
+
if (!fieldType || !key)
|
|
112
|
+
return '';
|
|
113
|
+
return renderFieldSnippet({
|
|
114
|
+
key,
|
|
115
|
+
label: name.trim() || humanizeFieldName(key),
|
|
116
|
+
type: fieldType,
|
|
117
|
+
required,
|
|
118
|
+
helpText,
|
|
119
|
+
});
|
|
120
|
+
}, [fieldType, key, name, required, helpText]);
|
|
121
|
+
const reset = () => {
|
|
122
|
+
setFieldType(null);
|
|
123
|
+
setName('');
|
|
124
|
+
setHelpText('');
|
|
125
|
+
setRequired(false);
|
|
126
|
+
setCopied(false);
|
|
127
|
+
};
|
|
128
|
+
const copy = async () => {
|
|
129
|
+
try {
|
|
130
|
+
await navigator.clipboard.writeText(snippet);
|
|
131
|
+
setCopied(true);
|
|
132
|
+
toast.success('Field snippet copied — paste it into the fields map');
|
|
133
|
+
setTimeout(() => setCopied(false), 1800);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
toast.error('Copy failed — select the snippet manually');
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
if (!open) {
|
|
140
|
+
return (_jsxs("button", { type: "button", onClick: () => setOpen(true), className: "border-border text-muted-foreground hover:text-foreground hover:border-primary/50 hover:bg-primary/5 focus-visible:ring-ring flex items-center justify-center gap-2 rounded-xl border-2 border-dashed px-4 py-4 text-sm font-medium transition-colors focus:outline-none focus-visible:ring-2", children: [_jsx(Plus, { className: "h-4 w-4", "aria-hidden": true }), "Add Field"] }));
|
|
141
|
+
}
|
|
142
|
+
return (_jsxs("div", { className: "bg-card border-border flex flex-col gap-4 rounded-xl border p-5 shadow-sm", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { className: "text-foreground text-sm font-medium", children: "Add Field" }), _jsx("button", { type: "button", onClick: () => {
|
|
143
|
+
reset();
|
|
144
|
+
setOpen(false);
|
|
145
|
+
}, className: "text-muted-foreground hover:text-foreground text-sm transition-colors", children: "Cancel" })] }), _jsx("div", { role: "radiogroup", "aria-label": "Field type", className: "grid grid-cols-2 gap-2 sm:grid-cols-3 xl:grid-cols-4", children: ADDABLE_FIELD_TYPES.map((t) => {
|
|
146
|
+
const selected = fieldType === t.type;
|
|
147
|
+
return (_jsxs("button", { type: "button", role: "radio", "aria-checked": selected, onClick: () => setFieldType(t.type), className: `focus-visible:ring-ring flex flex-col items-start gap-0.5 rounded-lg border p-2.5 text-left transition-colors focus:outline-none focus-visible:ring-2 ${selected
|
|
148
|
+
? 'border-primary bg-primary/5'
|
|
149
|
+
: 'border-border hover:border-primary/40 hover:bg-accent'}`, children: [_jsx("span", { className: "text-foreground text-sm font-medium", children: fieldTypeLabel(t.type) }), _jsx("span", { className: "text-muted-foreground text-xs", children: t.desc })] }, t.type));
|
|
150
|
+
}) }), fieldType && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("label", { htmlFor: "af-name", className: "text-foreground text-sm font-medium", children: "Field Name" }), _jsx("input", { id: "af-name", value: name, onChange: (e) => setName(e.target.value), placeholder: "e.g. Client Name", className: "border-border bg-background text-foreground focus:border-primary focus:ring-primary/30 w-full rounded-lg border px-3 py-1.5 text-sm focus:ring-2 focus:outline-none" })] }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("label", { htmlFor: "af-key", className: "text-foreground text-sm font-medium", children: "Field Key" }), _jsx("input", { id: "af-key", value: key, readOnly: true, "aria-describedby": duplicate ? 'af-key-error' : undefined, className: "border-border bg-muted text-muted-foreground w-full rounded-lg border px-3 py-1.5 font-mono text-sm focus:outline-none" }), duplicate && (_jsxs("span", { id: "af-key-error", className: "text-destructive text-xs", children: ["A field named ", _jsx("code", { className: "font-mono", children: key }), " already exists on this type."] }))] })] }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("label", { htmlFor: "af-help", className: "text-foreground text-sm font-medium", children: "Help Text (optional)" }), _jsx("input", { id: "af-help", value: helpText, onChange: (e) => setHelpText(e.target.value), placeholder: "Shown to editors as a hint", className: "border-border bg-background text-foreground focus:border-primary focus:ring-primary/30 w-full rounded-lg border px-3 py-1.5 text-sm focus:ring-2 focus:outline-none" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Toggle, { id: "af-required", checked: required, onCheckedChange: setRequired, "aria-labelledby": "af-required-label" }), _jsx("label", { id: "af-required-label", htmlFor: "af-required", className: "text-foreground text-sm", children: "Required field" })] }), snippet && !duplicate && (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("span", { className: "text-foreground text-sm font-medium", children: ["Add to ", _jsxs("code", { className: "font-mono", children: ["collections.", detail.slug, ".fields"] })] }), _jsxs("button", { type: "button", onClick: copy, className: "border-border bg-background text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs font-medium transition-colors", children: [copied ? (_jsx(Check, { className: "h-3.5 w-3.5", "aria-hidden": true })) : (_jsx(Copy, { className: "h-3.5 w-3.5", "aria-hidden": true })), copied ? 'Copied' : 'Copy snippet'] })] }), _jsx("pre", { className: "border-border bg-muted text-foreground overflow-x-auto rounded-lg border p-3 text-xs leading-relaxed", children: _jsx("code", { children: snippet }) }), _jsxs("p", { className: "text-muted-foreground text-xs", children: ["Paste the line into the type's ", _jsx("code", { className: "font-mono", children: "fields" }), " map in", ' ', _jsx("code", { className: "font-mono", children: "actuate.config.ts" }), " and redeploy \u2014 the field appears in the editor automatically."] })] }))] }))] }));
|
|
151
|
+
}
|
|
152
|
+
// ─── Loading / notice states ─────────────────────────────────────────
|
|
153
|
+
function EditorSkeleton() {
|
|
154
|
+
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsx("div", { className: "border-border bg-card border-b px-4 py-3 sm:px-6", children: _jsx("div", { className: "bg-muted h-5 w-48 animate-pulse rounded" }) }), _jsxs("div", { className: "flex flex-col gap-6 p-4 sm:p-6 lg:flex-row", children: [_jsx("div", { className: "flex w-full flex-col gap-4 lg:w-[340px]", children: Array.from({ length: 3 }).map((_, i) => (_jsx("div", { className: "bg-card border-border h-32 animate-pulse rounded-xl border" }, i))) }), _jsx("div", { className: "bg-card border-border h-64 flex-1 animate-pulse rounded-xl border" })] })] }));
|
|
155
|
+
}
|
|
156
|
+
function CenteredNotice({ title, body, actionLabel, onAction, }) {
|
|
157
|
+
return (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-2 p-8 text-center", children: [_jsx(FileQuestion, { className: "text-muted-foreground h-6 w-6", "aria-hidden": true }), _jsx("div", { className: "text-foreground text-sm font-medium", children: title }), body && _jsx("p", { className: "text-muted-foreground text-sm", children: body }), _jsx("button", { type: "button", onClick: onAction, className: "text-primary mt-2 text-sm font-medium hover:underline", children: actionLabel })] }));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=PostTypeEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostTypeEditor.js","sourceRoot":"","sources":["../../../src/views/Posts/PostTypeEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
* - title + description
|
|
7
7
|
* - footer row: post count · field count · URL base
|
|
8
8
|
*
|
|
9
|
-
* Clicking a card opens
|
|
10
|
-
*
|
|
9
|
+
* Clicking a card opens the Post Type editor (`/posts/types/:slug/edit`) —
|
|
10
|
+
* identity, live field schema, and the Add Field snippet generator. Each
|
|
11
|
+
* card also has an "Edit Template" action (`/posts/types/:slug/template`)
|
|
11
12
|
* for the type's default layout. The dashed "+ New Post Type" card routes to
|
|
12
13
|
* `/posts/types/new`, where users get instructions for adding a new collection
|
|
13
14
|
* to the config file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostTypesView.d.ts","sourceRoot":"","sources":["../../../src/views/Posts/PostTypesView.tsx"],"names":[],"mappings":"AAQA
|
|
1
|
+
{"version":3,"file":"PostTypesView.d.ts","sourceRoot":"","sources":["../../../src/views/Posts/PostTypesView.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,UAAU,kBAAkB;IAC1B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAgE/D"}
|
|
@@ -41,7 +41,7 @@ function PostTypeCard({ type, onClick, onEditTemplate, }) {
|
|
|
41
41
|
// top-border color from the palette's `border` token directly so it
|
|
42
42
|
// stays in sync with the badge color.
|
|
43
43
|
const topBorderClass = palette.border;
|
|
44
|
-
return (_jsxs("div", { className: "bg-card border-border relative flex flex-col gap-3 overflow-hidden rounded-xl border p-5 shadow-sm transition-shadow hover:shadow-md", children: [_jsx("span", { "aria-hidden": true, className: `absolute inset-x-0 top-0 h-1 ${topBorderClass}` }), _jsxs("button", { type: "button", onClick: onClick, "aria-label": `
|
|
44
|
+
return (_jsxs("div", { className: "bg-card border-border relative flex flex-col gap-3 overflow-hidden rounded-xl border p-5 shadow-sm transition-shadow hover:shadow-md", children: [_jsx("span", { "aria-hidden": true, className: `absolute inset-x-0 top-0 h-1 ${topBorderClass}` }), _jsxs("button", { type: "button", onClick: onClick, "aria-label": `Edit ${type.name} post type`, className: "focus-visible:ring-ring -m-1 flex flex-col gap-3 rounded-lg p-1 text-left focus:outline-none focus-visible:ring-2", children: [_jsxs("div", { className: "flex items-center gap-3 pt-2", children: [_jsx("span", { className: `inline-flex h-9 w-9 items-center justify-center rounded-lg ${palette.bg} ${palette.text}`, children: _jsx(Icon, { className: "h-4 w-4", "aria-hidden": true }) }), _jsx("h2", { className: "text-foreground text-base leading-tight font-medium", children: type.name })] }), _jsx("p", { className: "text-muted-foreground line-clamp-2 text-sm", children: type.description ?? 'No description provided.' })] }), _jsxs("div", { className: "border-border mt-auto flex flex-wrap items-center gap-x-4 gap-y-1 border-t pt-3 text-xs", children: [_jsxs("span", { className: "text-foreground font-medium tabular-nums", children: [type.postCount, " ", _jsx("span", { className: "text-muted-foreground font-normal", children: "posts" })] }), _jsxs("span", { className: "text-foreground font-medium tabular-nums", children: [type.fieldCount, " ", _jsx("span", { className: "text-muted-foreground font-normal", children: "fields" })] }), _jsx("span", { className: "text-muted-foreground ml-auto truncate font-mono", children: type.urlBase })] }), _jsxs("button", { type: "button", onClick: onEditTemplate, className: "border-border text-foreground hover:bg-accent focus-visible:ring-ring inline-flex items-center justify-center gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs font-medium transition-colors focus:outline-none focus-visible:ring-2", children: [_jsx(LayoutTemplate, { className: "h-3.5 w-3.5", "aria-hidden": true }), "Edit template"] })] }));
|
|
45
45
|
}
|
|
46
46
|
function NewPostTypeCard({ onClick }) {
|
|
47
47
|
return (_jsxs("button", { type: "button", onClick: onClick, "aria-label": "New Post Type", className: "border-border text-muted-foreground hover:text-foreground hover:border-primary/50 hover:bg-primary/5 focus-visible:ring-ring flex min-h-[170px] flex-col items-center justify-center gap-2 rounded-xl border-2 border-dashed bg-transparent p-5 transition-colors focus:outline-none focus-visible:ring-2", children: [_jsx("span", { className: "bg-muted text-muted-foreground inline-flex h-9 w-9 items-center justify-center rounded-full", children: _jsx(Plus, { className: "h-4 w-4", "aria-hidden": true }) }), _jsx("span", { className: "text-sm font-medium", children: "New Post Type" })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostTypesView.js","sourceRoot":"","sources":["../../../src/views/Posts/PostTypesView.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,UAAU,EAAiB,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"PostTypesView.js","sourceRoot":"","sources":["../../../src/views/Posts/PostTypesView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PageNode } from '@actuate-media/cms-core';
|
|
2
|
+
export interface BuilderSectionsPanelProps {
|
|
3
|
+
tree: PageNode;
|
|
4
|
+
selectedNodeId: string | null;
|
|
5
|
+
/** Collapsed to a slim rail. State is owned by PageBuilder (persisted). */
|
|
6
|
+
collapsed: boolean;
|
|
7
|
+
onToggleCollapsed: () => void;
|
|
8
|
+
onSelect: (id: string) => void;
|
|
9
|
+
/** Move a top-level section to `toIndex` within the page. */
|
|
10
|
+
onReorder: (id: string, toIndex: number) => void;
|
|
11
|
+
onAddSection: () => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Design-parity left rail for the Page Builder (PageBuilder.html): the page's
|
|
15
|
+
* sections listed in order with drag-to-reorder, click-to-select (which
|
|
16
|
+
* highlights the section on the canvas and opens its settings in the existing
|
|
17
|
+
* right-hand context panel), and an "Add Section" affordance at the bottom.
|
|
18
|
+
*/
|
|
19
|
+
export declare function BuilderSectionsPanel({ tree, selectedNodeId, collapsed, onToggleCollapsed, onSelect, onReorder, onAddSection, }: BuilderSectionsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=BuilderSectionsPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuilderSectionsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/BuilderSectionsPanel.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEpE,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,QAAQ,CAAA;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,6DAA6D;IAC7D,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AA0ED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,YAAY,GACb,EAAE,yBAAyB,2CAsG3B"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { DndContext, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors, } from '@dnd-kit/core';
|
|
5
|
+
import { SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy, } from '@dnd-kit/sortable';
|
|
6
|
+
import { CSS } from '@dnd-kit/utilities';
|
|
7
|
+
import { Bookmark, Code, FileText, Grid, GripVertical, HelpCircle, Image, LayoutGrid, LayoutTemplate, MousePointer, PanelLeftClose, PanelLeftOpen, Play, Plus, Star, Type, } from 'lucide-react';
|
|
8
|
+
import { BlockCatalog } from '@actuate-media/cms-core/page-builder';
|
|
9
|
+
/** Same icon-name → component mapping the BlockPicker uses for the catalog. */
|
|
10
|
+
const BLOCK_ICONS = {
|
|
11
|
+
Star,
|
|
12
|
+
Type,
|
|
13
|
+
Image,
|
|
14
|
+
LayoutGrid,
|
|
15
|
+
MousePointer,
|
|
16
|
+
Play,
|
|
17
|
+
Grid,
|
|
18
|
+
HelpCircle,
|
|
19
|
+
FileText,
|
|
20
|
+
Code,
|
|
21
|
+
};
|
|
22
|
+
function collectBlockTypes(node, out) {
|
|
23
|
+
if (node.type === 'block') {
|
|
24
|
+
out.push(node.settings.blockType);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (node.type === 'savedSectionRef')
|
|
28
|
+
return;
|
|
29
|
+
for (const child of node.children)
|
|
30
|
+
collectBlockTypes(child, out);
|
|
31
|
+
}
|
|
32
|
+
function humanize(type) {
|
|
33
|
+
return type.charAt(0).toUpperCase() + type.slice(1);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Builder sections have no user-facing title, so each row derives its name
|
|
37
|
+
* from the section's first block (via the catalog label) and summarizes its
|
|
38
|
+
* contents as the kind label — enough for the editor to recognize and jump
|
|
39
|
+
* between sections without inventing data we don't store.
|
|
40
|
+
*/
|
|
41
|
+
function buildEntries(tree, catalog) {
|
|
42
|
+
return tree.children.map((node, index) => {
|
|
43
|
+
if (node.type === 'savedSectionRef') {
|
|
44
|
+
return {
|
|
45
|
+
id: node.id,
|
|
46
|
+
name: 'Saved section',
|
|
47
|
+
meta: 'From the section library',
|
|
48
|
+
icon: Bookmark,
|
|
49
|
+
hidden: false,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const blockTypes = [];
|
|
53
|
+
collectBlockTypes(node, blockTypes);
|
|
54
|
+
const firstType = blockTypes[0];
|
|
55
|
+
const def = firstType ? catalog.get(firstType) : undefined;
|
|
56
|
+
return {
|
|
57
|
+
id: node.id,
|
|
58
|
+
name: def?.label ?? (firstType ? humanize(firstType) : `Section ${index + 1}`),
|
|
59
|
+
meta: blockTypes.length === 0
|
|
60
|
+
? 'Empty section'
|
|
61
|
+
: `${blockTypes.length} block${blockTypes.length === 1 ? '' : 's'}`,
|
|
62
|
+
icon: (def && BLOCK_ICONS[def.icon]) ?? LayoutTemplate,
|
|
63
|
+
hidden: node.settings.visibility === 'hidden',
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const ICON_BUTTON_CLASS = 'flex h-8 w-8 items-center justify-center rounded-[7px] text-[var(--sub)] transition-colors duration-[var(--motion-fast)] hover:bg-[var(--acc-l)] hover:text-[var(--acc)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none';
|
|
68
|
+
/**
|
|
69
|
+
* Design-parity left rail for the Page Builder (PageBuilder.html): the page's
|
|
70
|
+
* sections listed in order with drag-to-reorder, click-to-select (which
|
|
71
|
+
* highlights the section on the canvas and opens its settings in the existing
|
|
72
|
+
* right-hand context panel), and an "Add Section" affordance at the bottom.
|
|
73
|
+
*/
|
|
74
|
+
export function BuilderSectionsPanel({ tree, selectedNodeId, collapsed, onToggleCollapsed, onSelect, onReorder, onAddSection, }) {
|
|
75
|
+
const catalog = useMemo(() => new BlockCatalog(), []);
|
|
76
|
+
const entries = useMemo(() => buildEntries(tree, catalog), [tree, catalog]);
|
|
77
|
+
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 4 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
|
|
78
|
+
function handleDragEnd(event) {
|
|
79
|
+
const { active, over } = event;
|
|
80
|
+
if (!over || active.id === over.id)
|
|
81
|
+
return;
|
|
82
|
+
const ids = entries.map((e) => e.id);
|
|
83
|
+
const to = ids.indexOf(String(over.id));
|
|
84
|
+
if (to === -1 || !ids.includes(String(active.id)))
|
|
85
|
+
return;
|
|
86
|
+
onReorder(String(active.id), to);
|
|
87
|
+
}
|
|
88
|
+
if (collapsed) {
|
|
89
|
+
return (_jsx("nav", { "aria-label": "Page sections", className: "flex w-11 shrink-0 flex-col items-center border-r border-[var(--bdr)] bg-[var(--sb)] py-2", children: _jsx("button", { type: "button", onClick: onToggleCollapsed, "aria-expanded": false, "aria-label": "Expand sections panel", className: ICON_BUTTON_CLASS, children: _jsx(PanelLeftOpen, { size: 16, "aria-hidden": true }) }) }));
|
|
90
|
+
}
|
|
91
|
+
return (_jsxs("nav", { "aria-label": "Page sections", className: "flex w-[280px] shrink-0 flex-col overflow-hidden border-r border-[var(--bdr)] bg-[var(--sb)]", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-[var(--bdr)] py-2 pr-2 pl-3.5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("h2", { className: "text-[13px] font-medium text-[var(--txt)]", children: "Sections" }), _jsx("span", { className: "rounded-[4px] bg-[var(--acc-l)] px-[7px] py-0.5 text-[11px] font-medium text-[var(--acc)] tabular-nums", children: entries.length })] }), _jsx("button", { type: "button", onClick: onToggleCollapsed, "aria-expanded": true, "aria-label": "Collapse sections panel", className: ICON_BUTTON_CLASS, children: _jsx(PanelLeftClose, { size: 16, "aria-hidden": true }) })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: entries.length === 0 ? (_jsx("p", { className: "px-4 py-6 text-center text-[12.5px] text-[var(--muted)]", children: "No sections yet. Add one below to start building." })) : (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: entries.map((e) => e.id), strategy: verticalListSortingStrategy, children: _jsx("ul", { "aria-label": "Sections in page order", children: entries.map((entry) => (_jsx(SortableSectionRow, { entry: entry, selected: entry.id === selectedNodeId, onSelect: onSelect }, entry.id))) }) }) })) }), _jsx("div", { className: "border-t border-[var(--bdr)]", children: _jsxs("button", { type: "button", onClick: onAddSection, className: "flex w-full items-center gap-2 px-3.5 py-3 text-[13px] font-medium text-[var(--acc)] transition-colors duration-[var(--motion-fast)] hover:bg-[var(--acc-l)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none focus-visible:ring-inset", children: [_jsx(Plus, { size: 14, "aria-hidden": true }), "Add Section"] }) })] }));
|
|
92
|
+
}
|
|
93
|
+
function SortableSectionRow({ entry, selected, onSelect }) {
|
|
94
|
+
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
|
|
95
|
+
id: entry.id,
|
|
96
|
+
});
|
|
97
|
+
const Icon = entry.icon;
|
|
98
|
+
const style = {
|
|
99
|
+
transform: CSS.Transform.toString(transform),
|
|
100
|
+
transition,
|
|
101
|
+
zIndex: isDragging ? 10 : undefined,
|
|
102
|
+
};
|
|
103
|
+
return (_jsx("li", { ref: setNodeRef, style: style, className: isDragging ? 'shadow-[var(--shd2)]' : undefined, children: _jsxs("div", { className: `flex items-center gap-1.5 border-b border-[var(--bdr)] py-2 pr-2.5 pl-1.5 transition-colors duration-[var(--motion-fast)] ${selected ? 'bg-[var(--acc-l)]' : 'hover:bg-[var(--acc-l)]'}`, children: [_jsx("button", { type: "button", "aria-label": `Drag to reorder ${entry.name}`, ...attributes, ...listeners, className: "shrink-0 cursor-grab touch-none rounded p-1 text-[var(--muted)] transition-colors duration-[var(--motion-fast)] hover:text-[var(--acc)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none active:cursor-grabbing", children: _jsx(GripVertical, { size: 15, "aria-hidden": true }) }), _jsxs("button", { type: "button", onClick: () => onSelect(entry.id), "aria-current": selected ? 'true' : undefined, className: "flex min-w-0 flex-1 items-center gap-2.5 rounded text-left focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none", children: [_jsx("span", { "aria-hidden": true, className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-[7px] bg-[var(--acc-l)] text-[var(--acc)]", children: _jsx(Icon, { size: 14 }) }), _jsxs("span", { className: "flex min-w-0 flex-col", children: [_jsx("span", { className: `truncate text-[13px] font-medium ${entry.hidden ? 'text-[var(--muted)] line-through' : 'text-[var(--txt)]'}`, children: entry.name }), _jsx("span", { className: "truncate text-[11px] text-[var(--muted)]", children: entry.meta })] })] })] }) }));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=BuilderSectionsPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuilderSectionsPanel.js","sourceRoot":"","sources":["../../../src/views/page-builder/BuilderSectionsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageBuilder.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/PageBuilder.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PageBuilder.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/PageBuilder.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AA+BD,wBAAgB,WAAW,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,gBAAgB,2CA2T/F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
3
|
+
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
4
4
|
import { Loader2, AlertTriangle } from 'lucide-react';
|
|
5
5
|
import { toast } from 'sonner';
|
|
6
6
|
import { cmsApi } from '../../lib/api.js';
|
|
@@ -9,6 +9,7 @@ import { useBuilderState, } from '../../hooks/useBuilderState.js';
|
|
|
9
9
|
import { BuilderToolbar } from './BuilderToolbar.js';
|
|
10
10
|
import { BottomBar } from './BottomBar.js';
|
|
11
11
|
import { BuilderCanvas } from './canvas/index.js';
|
|
12
|
+
import { BuilderSectionsPanel } from './BuilderSectionsPanel.js';
|
|
12
13
|
import { ContextPanel } from './ContextPanel.js';
|
|
13
14
|
import { AIGenerateDialog } from './AIGenerateDialog.js';
|
|
14
15
|
const DEVICE_WIDTHS = {
|
|
@@ -16,12 +17,36 @@ const DEVICE_WIDTHS = {
|
|
|
16
17
|
tablet: '768px',
|
|
17
18
|
mobile: '375px',
|
|
18
19
|
};
|
|
20
|
+
const SECTIONS_PANEL_KEY = 'actuate-builder-sections-panel';
|
|
21
|
+
/**
|
|
22
|
+
* Left sections panel default: open on wide viewports (≥1280px), collapsed
|
|
23
|
+
* below so the canvas keeps room. An explicit user choice, persisted in
|
|
24
|
+
* localStorage, always wins over the breakpoint default.
|
|
25
|
+
*/
|
|
26
|
+
function initialSectionsCollapsed() {
|
|
27
|
+
try {
|
|
28
|
+
const stored = localStorage.getItem(SECTIONS_PANEL_KEY);
|
|
29
|
+
if (stored === 'open')
|
|
30
|
+
return false;
|
|
31
|
+
if (stored === 'collapsed')
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
/* localStorage unavailable — fall through to the breakpoint default */
|
|
36
|
+
}
|
|
37
|
+
if (typeof window !== 'undefined') {
|
|
38
|
+
return window.innerWidth < 1280;
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
19
42
|
export function PageBuilder({ documentId, collectionSlug, config, onNavigate }) {
|
|
20
43
|
const [loading, setLoading] = useState(!!documentId);
|
|
21
44
|
const [loadError, setLoadError] = useState(null);
|
|
22
45
|
const [saving, setSaving] = useState(false);
|
|
23
46
|
const [status, setStatus] = useState('DRAFT');
|
|
24
47
|
const [aiDialogOpen, setAiDialogOpen] = useState(false);
|
|
48
|
+
const [sectionsCollapsed, setSectionsCollapsed] = useState(initialSectionsCollapsed);
|
|
49
|
+
const canvasRef = useRef(null);
|
|
25
50
|
const builder = useBuilderState();
|
|
26
51
|
const { tree, pageSettings, deviceMode, dirty, canUndo, canRedo, selectedNodeId, selectedNode, activeTab, showGridOverlay, selectNode, setDeviceMode, setActiveTab, setPageSettings, setShowGridOverlay, addSection, addRowToSection, addBlockToColumn, addNodeAtId, removeNodeById, moveNodeById, updateSettings, updateBlock, duplicateNode, moveNodeUp, moveNodeDown, undo, redo, markClean, replaceTree, } = builder;
|
|
27
52
|
useEffect(() => {
|
|
@@ -115,6 +140,30 @@ export function PageBuilder({ documentId, collectionSlug, config, onNavigate })
|
|
|
115
140
|
const handleAIAccept = useCallback((generatedTree) => {
|
|
116
141
|
replaceTree(generatedTree);
|
|
117
142
|
}, [replaceTree]);
|
|
143
|
+
const toggleSectionsPanel = useCallback(() => {
|
|
144
|
+
setSectionsCollapsed((prev) => {
|
|
145
|
+
const next = !prev;
|
|
146
|
+
try {
|
|
147
|
+
localStorage.setItem(SECTIONS_PANEL_KEY, next ? 'collapsed' : 'open');
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
/* localStorage unavailable — the choice just won't persist */
|
|
151
|
+
}
|
|
152
|
+
return next;
|
|
153
|
+
});
|
|
154
|
+
}, []);
|
|
155
|
+
// Selecting from the left panel highlights the section on the canvas (the
|
|
156
|
+
// canvas already outlines the selected node) and opens its settings in the
|
|
157
|
+
// right-hand context panel, then scrolls the section into view.
|
|
158
|
+
const handlePanelSelect = useCallback((id) => {
|
|
159
|
+
selectNode(id);
|
|
160
|
+
canvasRef.current
|
|
161
|
+
?.querySelector(`[data-node-id="${CSS.escape(id)}"]`)
|
|
162
|
+
?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
163
|
+
}, [selectNode]);
|
|
164
|
+
const handlePanelReorder = useCallback((id, toIndex) => {
|
|
165
|
+
moveNodeById(id, tree.id, toIndex);
|
|
166
|
+
}, [moveNodeById, tree.id]);
|
|
118
167
|
if (loading) {
|
|
119
168
|
return (_jsx("div", { className: "bg-background flex h-full items-center justify-center", children: _jsx(Loader2, { className: "text-muted-foreground animate-spin", size: 24 }) }));
|
|
120
169
|
}
|
|
@@ -143,6 +192,6 @@ export function PageBuilder({ documentId, collectionSlug, config, onNavigate })
|
|
|
143
192
|
...previewStyle,
|
|
144
193
|
fontFamily: previewTheme.fontFamily ?? undefined,
|
|
145
194
|
};
|
|
146
|
-
return (_jsxs(ErrorBoundary, { children: [_jsxs("div", { className: "bg-background flex h-full flex-col overflow-hidden", children: [_jsx(BuilderToolbar, { collectionSlug: collectionSlug, pageSettings: pageSettings, status: status, dirty: dirty, saving: saving, canUndo: canUndo, canRedo: canRedo, deviceMode: deviceMode, onNavigate: onNavigate, onTitleChange: (title) => setPageSettings({ title }), onUndo: undo, onRedo: redo, onDeviceMode: setDeviceMode, onSave: handleSave, onPublish: handlePublish, onOpenAI: () => setAiDialogOpen(true) }), _jsxs("div", { className: "flex flex-1 overflow-hidden", children: [_jsx("div", { className: "bg-muted flex-1 overflow-auto", children: _jsx("div", { className: "mx-auto h-full max-w-full transition-all duration-200", style: { width: canvasWidth }, children: _jsx("div", { className: `bg-background page-builder-canvas-shell h-full ${isConstrained ? 'border-border border-x shadow-lg' : ''}`, style: canvasShellStyle, children: _jsx(BuilderCanvas, { tree: tree, selectedNodeId: selectedNodeId, showGridOverlay: showGridOverlay, deviceMode: deviceMode, onSelectNode: selectNode }) }) }) }), _jsx("div", { className: "border-border bg-card w-[35%] max-w-[420px] min-w-[280px] overflow-y-auto border-l", children: _jsx(ContextPanel, { activeTab: activeTab, onTabChange: setActiveTab, selectedNode: selectedNode, tree: tree, pageSettings: pageSettings, onUpdateSettings: updateSettings, onUpdateBlock: updateBlock, onRemoveNode: removeNodeById, onDuplicateNode: duplicateNode, onMoveNodeUp: moveNodeUp, onMoveNodeDown: moveNodeDown, onPageSettingsChange: setPageSettings, onAddRow: addRowToSection, config: config }) })] }), _jsx(BottomBar, { deviceMode: deviceMode, showGridOverlay: showGridOverlay, onAddSection: addSection, onToggleGrid: setShowGridOverlay })] }), _jsx(AIGenerateDialog, { open: aiDialogOpen, onClose: () => setAiDialogOpen(false), onAccept: handleAIAccept })] }));
|
|
195
|
+
return (_jsxs(ErrorBoundary, { children: [_jsxs("div", { className: "bg-background flex h-full flex-col overflow-hidden", children: [_jsx(BuilderToolbar, { collectionSlug: collectionSlug, pageSettings: pageSettings, status: status, dirty: dirty, saving: saving, canUndo: canUndo, canRedo: canRedo, deviceMode: deviceMode, onNavigate: onNavigate, onTitleChange: (title) => setPageSettings({ title }), onUndo: undo, onRedo: redo, onDeviceMode: setDeviceMode, onSave: handleSave, onPublish: handlePublish, onOpenAI: () => setAiDialogOpen(true) }), _jsxs("div", { className: "flex flex-1 overflow-hidden", children: [_jsx(BuilderSectionsPanel, { tree: tree, selectedNodeId: selectedNodeId, collapsed: sectionsCollapsed, onToggleCollapsed: toggleSectionsPanel, onSelect: handlePanelSelect, onReorder: handlePanelReorder, onAddSection: addSection }), _jsx("div", { ref: canvasRef, className: "bg-muted flex-1 overflow-auto", children: _jsx("div", { className: "mx-auto h-full max-w-full transition-all duration-200", style: { width: canvasWidth }, children: _jsx("div", { className: `bg-background page-builder-canvas-shell h-full ${isConstrained ? 'border-border border-x shadow-lg' : ''}`, style: canvasShellStyle, children: _jsx(BuilderCanvas, { tree: tree, selectedNodeId: selectedNodeId, showGridOverlay: showGridOverlay, deviceMode: deviceMode, onSelectNode: selectNode }) }) }) }), _jsx("div", { className: "border-border bg-card w-[35%] max-w-[420px] min-w-[280px] overflow-y-auto border-l", children: _jsx(ContextPanel, { activeTab: activeTab, onTabChange: setActiveTab, selectedNode: selectedNode, tree: tree, pageSettings: pageSettings, onUpdateSettings: updateSettings, onUpdateBlock: updateBlock, onRemoveNode: removeNodeById, onDuplicateNode: duplicateNode, onMoveNodeUp: moveNodeUp, onMoveNodeDown: moveNodeDown, onPageSettingsChange: setPageSettings, onAddRow: addRowToSection, config: config }) })] }), _jsx(BottomBar, { deviceMode: deviceMode, showGridOverlay: showGridOverlay, onAddSection: addSection, onToggleGrid: setShowGridOverlay })] }), _jsx(AIGenerateDialog, { open: aiDialogOpen, onClose: () => setAiDialogOpen(false), onAccept: handleAIAccept })] }));
|
|
147
196
|
}
|
|
148
197
|
//# sourceMappingURL=PageBuilder.js.map
|