@actuate-media/cms-admin 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/AdminRoot.d.ts.map +1 -1
  2. package/dist/AdminRoot.js +4 -0
  3. package/dist/AdminRoot.js.map +1 -1
  4. package/dist/__tests__/layout/sidebar-forms-submenu.render.test.d.ts +2 -0
  5. package/dist/__tests__/layout/sidebar-forms-submenu.render.test.d.ts.map +1 -0
  6. package/dist/__tests__/layout/sidebar-forms-submenu.render.test.js +28 -0
  7. package/dist/__tests__/layout/sidebar-forms-submenu.render.test.js.map +1 -0
  8. package/dist/__tests__/views/form-entries.render.test.d.ts +2 -0
  9. package/dist/__tests__/views/form-entries.render.test.d.ts.map +1 -0
  10. package/dist/__tests__/views/form-entries.render.test.js +112 -0
  11. package/dist/__tests__/views/form-entries.render.test.js.map +1 -0
  12. package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts +2 -0
  13. package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts.map +1 -0
  14. package/dist/__tests__/views/page-builder-block-renderer.render.test.js +48 -0
  15. package/dist/__tests__/views/page-builder-block-renderer.render.test.js.map +1 -0
  16. package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts +2 -0
  17. package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts.map +1 -0
  18. package/dist/__tests__/views/page-builder-form-picker.render.test.js +44 -0
  19. package/dist/__tests__/views/page-builder-form-picker.render.test.js.map +1 -0
  20. package/dist/actuate-admin.css +1 -1
  21. package/dist/components/forms/EntriesTable.d.ts +28 -0
  22. package/dist/components/forms/EntriesTable.d.ts.map +1 -0
  23. package/dist/components/forms/EntriesTable.js +26 -0
  24. package/dist/components/forms/EntriesTable.js.map +1 -0
  25. package/dist/layout/Sidebar.d.ts.map +1 -1
  26. package/dist/layout/Sidebar.js +44 -21
  27. package/dist/layout/Sidebar.js.map +1 -1
  28. package/dist/views/FormEntries.d.ts +5 -0
  29. package/dist/views/FormEntries.d.ts.map +1 -0
  30. package/dist/views/FormEntries.js +211 -0
  31. package/dist/views/FormEntries.js.map +1 -0
  32. package/dist/views/FormSubmissions.d.ts.map +1 -1
  33. package/dist/views/FormSubmissions.js +4 -24
  34. package/dist/views/FormSubmissions.js.map +1 -1
  35. package/dist/views/page-builder/BlockEditor.d.ts.map +1 -1
  36. package/dist/views/page-builder/BlockEditor.js +2 -1
  37. package/dist/views/page-builder/BlockEditor.js.map +1 -1
  38. package/dist/views/page-builder/RelationshipField.d.ts +15 -0
  39. package/dist/views/page-builder/RelationshipField.d.ts.map +1 -0
  40. package/dist/views/page-builder/RelationshipField.js +65 -0
  41. package/dist/views/page-builder/RelationshipField.js.map +1 -0
  42. package/dist/views/page-builder/block-renderers/FormPreview.d.ts +6 -0
  43. package/dist/views/page-builder/block-renderers/FormPreview.d.ts.map +1 -1
  44. package/dist/views/page-builder/block-renderers/FormPreview.js +44 -6
  45. package/dist/views/page-builder/block-renderers/FormPreview.js.map +1 -1
  46. package/dist/views/page-builder/canvas/BlockRenderer.d.ts.map +1 -1
  47. package/dist/views/page-builder/canvas/BlockRenderer.js +3 -9
  48. package/dist/views/page-builder/canvas/BlockRenderer.js.map +1 -1
  49. package/package.json +2 -2
  50. package/src/AdminRoot.tsx +4 -0
  51. package/src/__tests__/layout/sidebar-forms-submenu.render.test.tsx +38 -0
  52. package/src/__tests__/views/form-entries.render.test.tsx +133 -0
  53. package/src/__tests__/views/page-builder-block-renderer.render.test.tsx +66 -0
  54. package/src/__tests__/views/page-builder-form-picker.render.test.tsx +54 -0
  55. package/src/components/forms/EntriesTable.tsx +197 -0
  56. package/src/layout/Sidebar.tsx +75 -17
  57. package/src/views/FormEntries.tsx +449 -0
  58. package/src/views/FormSubmissions.tsx +4 -149
  59. package/src/views/page-builder/BlockEditor.tsx +7 -10
  60. package/src/views/page-builder/RelationshipField.tsx +113 -0
  61. package/src/views/page-builder/block-renderers/FormPreview.tsx +85 -33
  62. package/src/views/page-builder/canvas/BlockRenderer.tsx +10 -12
@@ -1 +1 @@
1
- {"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,yBAAyB,CAAA;AAM9F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAA;IACf,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACzE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,MAAM,EAAE,GAAG,CAAA;CACZ;AAMD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE,gBAAgB,2CAuHlB"}
1
+ {"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,yBAAyB,CAAA;AAO9F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAA;IACf,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACzE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,MAAM,EAAE,GAAG,CAAA;CACZ;AAMD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE,gBAAgB,2CAuHlB"}
@@ -5,6 +5,7 @@ import { Star, Copy, Trash2 } from 'lucide-react';
5
5
  import * as SwitchPrimitive from '@radix-ui/react-switch';
6
6
  import { BlockCatalog } from '@actuate-media/cms-core';
7
7
  import { AIBlockAssist } from './AIBlockAssist.js';
8
+ import { RelationshipField } from './RelationshipField.js';
8
9
  import { TipTapEditor } from '../../components/TipTapEditor.js';
9
10
  import { MediaPickerModal } from '../../components/MediaPickerModal.js';
10
11
  const INPUT_CLASS = 'w-full px-3 py-2 text-sm bg-background border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring';
@@ -69,7 +70,7 @@ function FieldRenderer({ name, definition, value, onChange }) {
69
70
  onChange(slug);
70
71
  }, placeholder: definition.admin?.placeholder ?? 'page-slug', className: INPUT_CLASS })] }));
71
72
  case 'relationship':
72
- return (_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: label }), _jsx("input", { type: "text", value: value ?? '', onChange: (e) => onChange(e.target.value), placeholder: "Select relationship...", className: INPUT_CLASS })] }));
73
+ return (_jsx(RelationshipField, { definition: definition, value: value, onChange: onChange, label: label }));
73
74
  case 'email':
74
75
  return (_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: label }), _jsx("input", { type: "email", value: value ?? '', onChange: (e) => onChange(e.target.value), placeholder: definition.admin?.placeholder ?? 'email@example.com', className: INPUT_CLASS })] }));
75
76
  case 'color':
@@ -1 +1 @@
1
- {"version":3,"file":"BlockEditor.js","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockEditor.js","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { FieldDefinition } from '@actuate-media/cms-core';
2
+ export interface RelationshipFieldProps {
3
+ definition: FieldDefinition;
4
+ value: unknown;
5
+ onChange: (value: unknown) => void;
6
+ label: string;
7
+ }
8
+ /**
9
+ * Relationship picker for page-builder block fields (e.g. the form block's
10
+ * `formId`). Loads the target collection via the admin API and renders a
11
+ * labelled dropdown. If the collection can't be loaded it degrades to a plain
12
+ * id input so the field is never a dead end.
13
+ */
14
+ export declare function RelationshipField({ definition, value, onChange, label }: RelationshipFieldProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=RelationshipField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelationshipField.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/RelationshipField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAY9D,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,eAAe,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,sBAAsB,2CAoF/F"}
@@ -0,0 +1,65 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useMemo, useState } from 'react';
4
+ import { cmsApi } from '../../lib/api.js';
5
+ const INPUT_CLASS = 'w-full px-3 py-2 text-sm bg-background border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring';
6
+ const LABEL_CLASS = 'text-sm font-medium text-foreground mb-1 block';
7
+ /**
8
+ * Relationship picker for page-builder block fields (e.g. the form block's
9
+ * `formId`). Loads the target collection via the admin API and renders a
10
+ * labelled dropdown. If the collection can't be loaded it degrades to a plain
11
+ * id input so the field is never a dead end.
12
+ */
13
+ export function RelationshipField({ definition, value, onChange, label }) {
14
+ const relationTo = useMemo(() => {
15
+ if (definition.type !== 'relationship')
16
+ return '';
17
+ return Array.isArray(definition.relationTo)
18
+ ? (definition.relationTo[0] ?? '')
19
+ : definition.relationTo;
20
+ }, [definition]);
21
+ const [options, setOptions] = useState([]);
22
+ const [loading, setLoading] = useState(false);
23
+ const [failed, setFailed] = useState(false);
24
+ useEffect(() => {
25
+ if (!relationTo)
26
+ return;
27
+ let cancelled = false;
28
+ setLoading(true);
29
+ setFailed(false);
30
+ cmsApi(`/${relationTo}`)
31
+ .then((res) => {
32
+ if (cancelled)
33
+ return;
34
+ if (Array.isArray(res.data)) {
35
+ setOptions(res.data
36
+ .map((item) => ({
37
+ id: String(item.id ?? ''),
38
+ label: String(item.name ?? item.title ?? item.slug ?? item.id ?? 'Untitled'),
39
+ }))
40
+ .filter((option) => option.id));
41
+ }
42
+ else {
43
+ setFailed(true);
44
+ }
45
+ })
46
+ .catch(() => {
47
+ if (!cancelled)
48
+ setFailed(true);
49
+ })
50
+ .finally(() => {
51
+ if (!cancelled)
52
+ setLoading(false);
53
+ });
54
+ return () => {
55
+ cancelled = true;
56
+ };
57
+ }, [relationTo]);
58
+ const current = value ?? '';
59
+ const noun = relationTo === 'forms' ? 'a form' : 'an item';
60
+ if (failed) {
61
+ return (_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: label }), _jsx("input", { type: "text", value: current, onChange: (e) => onChange(e.target.value || undefined), placeholder: `Enter ${relationTo} id…`, className: INPUT_CLASS })] }));
62
+ }
63
+ return (_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: label }), _jsxs("select", { value: current, onChange: (e) => onChange(e.target.value || undefined), disabled: loading, "aria-label": label, className: INPUT_CLASS, children: [_jsx("option", { value: "", children: loading ? 'Loading…' : `Select ${noun}…` }), options.map((option) => (_jsx("option", { value: option.id, children: option.label }, option.id)))] }), !loading && options.length === 0 && (_jsxs("p", { className: "text-muted-foreground mt-1 text-xs", children: ["No ", relationTo, " found."] }))] }));
64
+ }
65
+ //# sourceMappingURL=RelationshipField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelationshipField.js","sourceRoot":"","sources":["../../../src/views/page-builder/RelationshipField.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
1
  import type { BlockPreviewProps } from './index.js';
2
+ /**
3
+ * Canvas preview for the form block. When a form is linked we fetch its real
4
+ * name + fields so the editor sees what will render; otherwise we fall back to
5
+ * a generic skeleton. Network failures degrade to the skeleton rather than
6
+ * breaking the canvas.
7
+ */
2
8
  export declare function FormPreview({ data, variant }: BlockPreviewProps): import("react/jsx-runtime").JSX.Element;
3
9
  //# sourceMappingURL=FormPreview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAmB,EAAE,EAAE,iBAAiB,2CA2D3E"}
1
+ {"version":3,"file":"FormPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAanD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAmB,EAAE,EAAE,iBAAiB,2CA4F3E"}
@@ -1,14 +1,52 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
3
4
  import { FileText, Mail, Send } from 'lucide-react';
5
+ import { cmsApi } from '../../../lib/api.js';
6
+ /**
7
+ * Canvas preview for the form block. When a form is linked we fetch its real
8
+ * name + fields so the editor sees what will render; otherwise we fall back to
9
+ * a generic skeleton. Network failures degrade to the skeleton rather than
10
+ * breaking the canvas.
11
+ */
4
12
  export function FormPreview({ data, variant = 'contact' }) {
5
13
  const formId = data.formId || '';
6
- if (variant === 'newsletter') {
7
- return (_jsxs("div", { className: "border-border rounded-md border p-6 text-center", children: [_jsx(Mail, { size: 24, className: "text-muted-foreground mx-auto" }), _jsx("p", { className: "text-foreground mt-3 text-sm font-medium", children: "Newsletter Signup" }), formId && _jsxs("p", { className: "text-muted-foreground mt-1 text-xs", children: ["Form: ", formId] }), _jsxs("div", { className: "mx-auto mt-4 flex max-w-xs gap-2", children: [_jsx("div", { className: "border-border bg-input-background h-9 flex-1 rounded-md border" }), _jsx("div", { className: "bg-primary flex h-9 items-center rounded-md px-3", children: _jsx(Send, { size: 14, className: "text-primary-foreground" }) })] })] }));
14
+ const [form, setForm] = useState(null);
15
+ const [loading, setLoading] = useState(false);
16
+ useEffect(() => {
17
+ if (!formId) {
18
+ setForm(null);
19
+ return;
20
+ }
21
+ let cancelled = false;
22
+ setLoading(true);
23
+ cmsApi(`/forms/${encodeURIComponent(formId)}`)
24
+ .then((res) => {
25
+ if (cancelled)
26
+ return;
27
+ if (res.data?.name) {
28
+ setForm({ name: res.data.name, fields: res.data.fields ?? [] });
29
+ }
30
+ else {
31
+ setForm(null);
32
+ }
33
+ })
34
+ .finally(() => {
35
+ if (!cancelled)
36
+ setLoading(false);
37
+ });
38
+ return () => {
39
+ cancelled = true;
40
+ };
41
+ }, [formId]);
42
+ if (!formId) {
43
+ return (_jsxs("div", { className: "border-border bg-muted/30 rounded-md border border-dashed p-6 text-center", children: [_jsx(FileText, { size: 20, className: "text-muted-foreground mx-auto" }), _jsx("p", { className: "text-muted-foreground mt-2 text-sm", children: "No form selected" }), _jsx("p", { className: "text-muted-foreground/70 text-xs", children: "Pick a form in the block settings" })] }));
8
44
  }
9
- if (variant === 'custom') {
10
- return (_jsxs("div", { className: "border-border rounded-md border p-5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileText, { size: 16, className: "text-muted-foreground" }), _jsx("p", { className: "text-foreground text-sm font-medium", children: formId ? `Form: ${formId}` : 'Custom Form' })] }), _jsxs("div", { className: "mt-3 flex flex-col gap-2", children: [_jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background h-20 rounded-md border" })] }), _jsx("div", { className: "mt-3", children: _jsx("span", { className: "bg-primary text-primary-foreground inline-block rounded-md px-4 py-2 text-sm", children: "Submit" }) })] }));
45
+ const heading = form?.name ?? (loading ? 'Loading form…' : 'Contact Form');
46
+ const fields = form?.fields ?? [];
47
+ if (variant === 'newsletter') {
48
+ return (_jsxs("div", { className: "border-border rounded-md border p-6 text-center", children: [_jsx(Mail, { size: 24, className: "text-muted-foreground mx-auto" }), _jsx("p", { className: "text-foreground mt-3 text-sm font-medium", children: form?.name ?? 'Newsletter Signup' }), _jsxs("div", { className: "mx-auto mt-4 flex max-w-xs gap-2", children: [_jsx("div", { className: "border-border bg-input-background h-9 flex-1 rounded-md border" }), _jsx("div", { className: "bg-primary flex h-9 items-center rounded-md px-3", children: _jsx(Send, { size: 14, className: "text-primary-foreground" }) })] })] }));
11
49
  }
12
- return (_jsxs("div", { className: "border-border rounded-md border p-5", children: [_jsx("p", { className: "text-foreground text-sm font-medium", children: "Contact Form" }), formId && _jsxs("p", { className: "text-muted-foreground mt-1 text-xs", children: ["Form: ", formId] }), _jsxs("div", { className: "mt-3 grid grid-cols-2 gap-2", children: [_jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" })] }), _jsx("div", { className: "border-border bg-input-background mt-2 h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background mt-2 h-20 rounded-md border" }), _jsx("div", { className: "mt-3", children: _jsx("span", { className: "bg-primary text-primary-foreground inline-block rounded-md px-4 py-2 text-sm", children: "Send Message" }) })] }));
50
+ return (_jsxs("div", { className: "border-border rounded-md border p-5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileText, { size: 16, className: "text-muted-foreground" }), _jsx("p", { className: "text-foreground text-sm font-medium", children: heading })] }), _jsx("div", { className: "mt-3 flex flex-col gap-2", children: fields.length > 0 ? (fields.slice(0, 5).map((field) => (_jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground mb-1 text-xs", children: field.label || field.key }), _jsx("div", { className: `border-border bg-input-background rounded-md border ${field.type === 'textarea' ? 'h-16' : 'h-8'}` })] }, field.key)))) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background h-20 rounded-md border" })] })) }), _jsx("div", { className: "mt-3", children: _jsx("span", { className: "bg-primary text-primary-foreground inline-block rounded-md px-4 py-2 text-sm", children: variant === 'custom' ? 'Submit' : 'Send Message' }) })] }));
13
51
  }
14
52
  //# sourceMappingURL=FormPreview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGnD,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAqB;IAC1E,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,EAAE,CAAA;IAE5C,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,CACL,eAAK,SAAS,EAAC,iDAAiD,aAC9D,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,+BAA+B,GAAG,EAC5D,YAAG,SAAS,EAAC,0CAA0C,kCAAsB,EAC5E,MAAM,IAAI,aAAG,SAAS,EAAC,oCAAoC,uBAAQ,MAAM,IAAK,EAC/E,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,gEAAgE,GAAG,EAClF,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,GAAG,GAClD,IACF,IACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,EACxD,YAAG,SAAS,EAAC,qCAAqC,YAC/C,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,GACzC,IACA,EACN,eAAK,SAAS,EAAC,0BAA0B,aACvC,cAAK,SAAS,EAAC,yDAAyD,GAAG,EAC3E,cAAK,SAAS,EAAC,yDAAyD,GAAG,EAC3E,cAAK,SAAS,EAAC,0DAA0D,GAAG,IACxE,EACN,cAAK,SAAS,EAAC,MAAM,YACnB,eAAM,SAAS,EAAC,8EAA8E,uBAEvF,GACH,IACF,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aAClD,YAAG,SAAS,EAAC,qCAAqC,6BAAiB,EAClE,MAAM,IAAI,aAAG,SAAS,EAAC,oCAAoC,uBAAQ,MAAM,IAAK,EAC/E,eAAK,SAAS,EAAC,6BAA6B,aAC1C,cAAK,SAAS,EAAC,yDAAyD,GAAG,EAC3E,cAAK,SAAS,EAAC,yDAAyD,GAAG,IACvE,EACN,cAAK,SAAS,EAAC,8DAA8D,GAAG,EAChF,cAAK,SAAS,EAAC,+DAA+D,GAAG,EACjF,cAAK,SAAS,EAAC,MAAM,YACnB,eAAM,SAAS,EAAC,8EAA8E,6BAEvF,GACH,IACF,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"FormPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRenderer.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1C;AAaD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,kBAAkB,2CAkCvF"}
1
+ {"version":3,"file":"BlockRenderer.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1C;AAMD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,kBAAkB,2CAuCvF"}
@@ -1,13 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
- import { Box, Type, Image, Layout, Star } from 'lucide-react';
5
- const BLOCK_ICONS = {
6
- hero: Star,
7
- text: Type,
8
- image: Image,
9
- layout: Layout,
10
- };
4
+ import { blockRenderers, FallbackPreview } from '../block-renderers/index.js';
11
5
  function getBlockLabel(blockType) {
12
6
  return blockType.charAt(0).toUpperCase() + blockType.slice(1);
13
7
  }
@@ -16,11 +10,11 @@ export function BlockRenderer({ node, selectedNodeId, onSelectNode }) {
16
10
  const isSelected = selectedNodeId === node.id;
17
11
  const blockType = node.settings.blockType;
18
12
  const label = getBlockLabel(blockType);
19
- const Icon = BLOCK_ICONS[blockType] ?? Box;
13
+ const Preview = blockRenderers[blockType];
20
14
  const handleClick = (e) => {
21
15
  e.stopPropagation();
22
16
  onSelectNode(node.id);
23
17
  };
24
- return (_jsxs("div", { "data-node-id": node.id, className: `relative min-h-[48px] transition-shadow ${isSelected ? 'ring-primary ring-2 ring-offset-2' : hovered ? 'ring-primary/50 ring-1' : ''}`, onClick: handleClick, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), children: [(hovered || isSelected) && (_jsx("span", { className: "bg-primary text-primary-foreground absolute -top-2 -left-1 z-10 rounded px-1.5 py-0.5 text-xs font-medium", children: label })), _jsxs("div", { className: "bg-muted/30 border-border flex items-center justify-center gap-2 rounded-md border border-dashed p-4", children: [_jsx(Icon, { size: 16, className: "text-muted-foreground" }), _jsx("span", { className: "text-muted-foreground text-sm", children: label })] })] }));
18
+ return (_jsxs("div", { "data-node-id": node.id, "data-block-type": blockType, className: `relative min-h-[48px] transition-shadow ${isSelected ? 'ring-primary ring-2 ring-offset-2' : hovered ? 'ring-primary/50 ring-1' : ''}`, onClick: handleClick, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), children: [(hovered || isSelected) && (_jsx("span", { className: "bg-primary text-primary-foreground absolute -top-2 -left-1 z-10 rounded px-1.5 py-0.5 text-xs font-medium", children: label })), _jsx("div", { className: "pointer-events-none", children: Preview ? (_jsx(Preview, { data: node.data, variant: node.settings.variant })) : (_jsx(FallbackPreview, { blockType: blockType, data: node.data })) })] }));
25
19
  }
26
20
  //# sourceMappingURL=BlockRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRenderer.js","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAS7D,MAAM,WAAW,GAA+B;IAC9C,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,MAAM;CACf,CAAA;AAED,SAAS,aAAa,CAAC,SAAiB;IACtC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAsB;IACtF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,cAAc,KAAK,IAAI,CAAC,EAAE,CAAA;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,GAAG,CAAA;IAE1C,MAAM,WAAW,GAAG,CAAC,CAAmB,EAAE,EAAE;QAC1C,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,OAAO,CACL,+BACgB,IAAI,CAAC,EAAE,EACrB,SAAS,EAAE,2CACT,UAAU,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAC1F,EAAE,EACF,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EACpC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,aAEpC,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAC1B,eAAM,SAAS,EAAC,2GAA2G,YACxH,KAAK,GACD,CACR,EAED,eAAK,SAAS,EAAC,sGAAsG,aACnH,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,EACpD,eAAM,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAQ,IAC1D,IACF,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"BlockRenderer.js","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAQ7E,SAAS,aAAa,CAAC,SAAiB;IACtC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAsB;IACtF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,cAAc,KAAK,IAAI,CAAC,EAAE,CAAA;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IAEzC,MAAM,WAAW,GAAG,CAAC,CAAmB,EAAE,EAAE;QAC1C,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,OAAO,CACL,+BACgB,IAAI,CAAC,EAAE,qBACJ,SAAS,EAC1B,SAAS,EAAE,2CACT,UAAU,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAC1F,EAAE,EACF,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EACpC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,aAEpC,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAC1B,eAAM,SAAS,EAAC,2GAA2G,YACxH,KAAK,GACD,CACR,EAGD,cAAK,SAAS,EAAC,qBAAqB,YACjC,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,OAAO,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAI,CAC7D,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,CAC3D,GACG,IACF,CACP,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actuate-media/cms-admin",
3
- "version": "0.23.0",
3
+ "version": "0.25.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/actuate-media/actuatecms.git",
@@ -87,7 +87,7 @@
87
87
  "tailwindcss": "^4.0.0",
88
88
  "typescript": "^5.7.0",
89
89
  "vitest": "^3.0.0",
90
- "@actuate-media/cms-core": "0.31.0",
90
+ "@actuate-media/cms-core": "0.33.0",
91
91
  "@actuate-media/component-blocks": "0.2.0"
92
92
  },
93
93
  "scripts": {
package/src/AdminRoot.tsx CHANGED
@@ -13,6 +13,7 @@ import { Settings } from './views/Settings.js'
13
13
  import { Forms } from './views/Forms.js'
14
14
  import { FormEditor } from './views/FormEditor.js'
15
15
  import { FormSubmissions } from './views/FormSubmissions.js'
16
+ import { FormEntries } from './views/FormEntries.js'
16
17
  import { SEO } from './views/SEO.js'
17
18
  import { ScriptTags } from './views/ScriptTags.js'
18
19
  import { ScriptTagEditor } from './views/ScriptTagEditor.js'
@@ -365,6 +366,9 @@ function AdminShell({
365
366
  if (matchRoute('/forms/new')) {
366
367
  return <FormEditor onNavigate={navigate} />
367
368
  }
369
+ if (matchRoute('/forms/entries')) {
370
+ return <FormEntries onNavigate={navigate} />
371
+ }
368
372
  const formEdit = matchRoute('/forms/:id/edit')
369
373
  if (formEdit?.id) {
370
374
  return <FormEditor formId={formEdit.id} onNavigate={navigate} />
@@ -0,0 +1,38 @@
1
+ // @vitest-environment happy-dom
2
+ import { describe, expect, it, vi } from 'vitest'
3
+ import { render, screen, waitFor } from '@testing-library/react'
4
+
5
+ // The Forms nav item expands into a submenu: an "All Entries" child plus one
6
+ // child per active form carrying its own unread badge. Mock the sidebar-counts
7
+ // fetcher so the children are deterministic.
8
+ // Distinct per-form counts so a child badge can't collide with the parent
9
+ // total badge (8 + 5 = 13).
10
+ const fetchFormsSidebarCounts = vi.fn(async () => [
11
+ { formId: 'f1', name: 'Contact Us', slug: 'contact-us', status: 'active', unread: 8 },
12
+ { formId: 'f2', name: 'Project Inquiry', slug: 'project-inquiry', status: 'active', unread: 5 },
13
+ ])
14
+
15
+ vi.mock('../../lib/forms-service.js', () => ({
16
+ fetchFormsSidebarCounts: () => fetchFormsSidebarCounts(),
17
+ }))
18
+
19
+ const { Sidebar } = await import('../../layout/Sidebar.js')
20
+
21
+ describe('Sidebar Forms submenu', () => {
22
+ it('renders All Entries plus a child per active form', async () => {
23
+ render(
24
+ <Sidebar
25
+ collapsed={false}
26
+ onToggleCollapse={() => {}}
27
+ currentPath="/forms"
28
+ onNavigate={() => {}}
29
+ />,
30
+ )
31
+
32
+ await waitFor(() => expect(screen.getByText('All Entries')).toBeTruthy())
33
+ // Per-form children (the Contact Us label also appears; scope to nav links).
34
+ expect(screen.getByText('Project Inquiry')).toBeTruthy()
35
+ // The form with unread submissions shows its own badge.
36
+ expect(screen.getByLabelText('8 unread')).toBeTruthy()
37
+ })
38
+ })
@@ -0,0 +1,133 @@
1
+ // @vitest-environment happy-dom
2
+ import { beforeEach, describe, expect, it, vi } from 'vitest'
3
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react'
4
+
5
+ // Drive the global All Entries inbox through a mocked forms-service so the test
6
+ // owns the data and can assert the cross-form table (Form column + form
7
+ // filter), status-pill refetches, and opening the detail drawer.
8
+ function makeEntry(over: Record<string, unknown> = {}) {
9
+ return {
10
+ id: 'e1',
11
+ entryNumber: 1,
12
+ formId: 'f1',
13
+ formName: 'Contact Us',
14
+ formSlug: 'contact-us',
15
+ data: { name: 'Jordan Avery', email: 'jordan@example.com', message: 'Hello there' },
16
+ senderName: 'Jordan Avery',
17
+ senderEmail: 'jordan@example.com',
18
+ preview: 'Hello there',
19
+ unread: true,
20
+ starred: false,
21
+ archived: false,
22
+ spamStatus: 'clean',
23
+ submittedAt: new Date().toISOString(),
24
+ createdAt: new Date().toISOString(),
25
+ updatedAt: new Date().toISOString(),
26
+ ...over,
27
+ }
28
+ }
29
+
30
+ const ENTRIES = [
31
+ makeEntry(),
32
+ makeEntry({
33
+ id: 'e2',
34
+ entryNumber: 2,
35
+ formId: 'f2',
36
+ formName: 'Project Inquiry',
37
+ formSlug: 'project-inquiry',
38
+ senderName: 'Priya Nair',
39
+ senderEmail: 'priya@example.com',
40
+ preview: 'A question about pricing',
41
+ unread: false,
42
+ }),
43
+ ]
44
+
45
+ const fetchForms = vi.fn(async () => [
46
+ { id: 'f1', name: 'Contact Us', slug: 'contact-us', status: 'active', fields: [] },
47
+ { id: 'f2', name: 'Project Inquiry', slug: 'project-inquiry', status: 'active', fields: [] },
48
+ ])
49
+ const fetchEntries = vi.fn(async (_p?: unknown) => ({
50
+ entries: ENTRIES,
51
+ total: ENTRIES.length,
52
+ page: 1,
53
+ pageSize: 25,
54
+ }))
55
+ const fetchEntryCounts = vi.fn(async (_p?: unknown) => ({
56
+ total: 2,
57
+ unread: 1,
58
+ starred: 0,
59
+ thisWeek: 2,
60
+ byForm: { f1: 1 },
61
+ }))
62
+ const fetchEntry = vi.fn(async (_id?: string) => ({ entry: ENTRIES[0], fields: [] }))
63
+ const updateEntry = vi.fn(async (_id?: string, _patch?: unknown) => ({ data: ENTRIES[0] }))
64
+
65
+ vi.mock('../../lib/forms-service.js', () => ({
66
+ fetchForms: () => fetchForms(),
67
+ fetchEntries: (p?: unknown) => fetchEntries(p),
68
+ fetchEntryCounts: (p?: unknown) => fetchEntryCounts(p),
69
+ fetchEntry: (id?: string) => fetchEntry(id),
70
+ updateEntry: (id?: string, patch?: unknown) => updateEntry(id, patch),
71
+ deleteEntry: vi.fn(async () => ({})),
72
+ bulkUpdateEntries: vi.fn(async () => ({ data: { updated: 1 } })),
73
+ }))
74
+
75
+ vi.mock('../../lib/forms-events.js', () => ({
76
+ onFormsChanged: () => () => {},
77
+ emitFormsChanged: vi.fn(),
78
+ }))
79
+
80
+ vi.mock('sonner', () => ({ toast: { success: vi.fn(), error: vi.fn(), loading: vi.fn() } }))
81
+
82
+ const { FormEntries } = await import('../../views/FormEntries.js')
83
+
84
+ beforeEach(() => {
85
+ fetchForms.mockClear()
86
+ fetchEntries.mockClear()
87
+ fetchEntryCounts.mockClear()
88
+ fetchEntry.mockClear()
89
+ })
90
+
91
+ describe('FormEntries (All Entries)', () => {
92
+ it('renders cross-form entries with a Form column and filter', async () => {
93
+ render(<FormEntries onNavigate={() => {}} />)
94
+
95
+ expect(await screen.findByText('Jordan Avery')).toBeTruthy()
96
+ expect(screen.getByText('Priya Nair')).toBeTruthy()
97
+ expect(screen.getByRole('table', { name: 'All entries' })).toBeTruthy()
98
+ // Form names appear (column values) and the filter is populated from fetchForms.
99
+ expect(screen.getByLabelText('Filter by form')).toBeTruthy()
100
+ await waitFor(() => expect(fetchForms).toHaveBeenCalled())
101
+ })
102
+
103
+ it('refetches scoped to a form when the form filter changes', async () => {
104
+ render(<FormEntries onNavigate={() => {}} />)
105
+ await screen.findByText('Jordan Avery')
106
+
107
+ fireEvent.change(screen.getByLabelText('Filter by form'), { target: { value: 'f2' } })
108
+
109
+ await waitFor(() =>
110
+ expect(fetchEntries).toHaveBeenCalledWith(expect.objectContaining({ formId: 'f2' })),
111
+ )
112
+ })
113
+
114
+ it('refetches with the unread filter when the pill is clicked', async () => {
115
+ render(<FormEntries onNavigate={() => {}} />)
116
+ await screen.findByText('Jordan Avery')
117
+
118
+ fireEvent.click(screen.getByRole('button', { name: 'Unread', pressed: false }))
119
+
120
+ await waitFor(() =>
121
+ expect(fetchEntries).toHaveBeenCalledWith(expect.objectContaining({ unread: true })),
122
+ )
123
+ })
124
+
125
+ it('opens the detail drawer when a row is clicked', async () => {
126
+ render(<FormEntries onNavigate={() => {}} />)
127
+ const row = await screen.findByText('Jordan Avery')
128
+
129
+ fireEvent.click(row)
130
+
131
+ await waitFor(() => expect(fetchEntry).toHaveBeenCalledWith('e1'))
132
+ })
133
+ })
@@ -0,0 +1,66 @@
1
+ // @vitest-environment happy-dom
2
+ import { beforeEach, describe, expect, it, vi } from 'vitest'
3
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react'
4
+ import type { BlockNode } from '@actuate-media/cms-core'
5
+
6
+ const cmsApi = vi.fn()
7
+ vi.mock('../../lib/api.js', () => ({ cmsApi: (...args: unknown[]) => cmsApi(...args) }))
8
+
9
+ const { BlockRenderer } = await import('../../views/page-builder/canvas/BlockRenderer.js')
10
+
11
+ function formNode(over: Partial<BlockNode> = {}): BlockNode {
12
+ return {
13
+ id: 'node-1',
14
+ type: 'block',
15
+ settings: { blockType: 'form', variant: 'contact' },
16
+ data: { formId: 'f1' },
17
+ ...over,
18
+ } as BlockNode
19
+ }
20
+
21
+ beforeEach(() => {
22
+ cmsApi.mockReset()
23
+ cmsApi.mockResolvedValue({
24
+ data: {
25
+ name: 'Contact Us',
26
+ fields: [
27
+ { key: 'name', label: 'Full Name', type: 'text' },
28
+ { key: 'message', label: 'Message', type: 'textarea' },
29
+ ],
30
+ },
31
+ status: 200,
32
+ })
33
+ })
34
+
35
+ describe('canvas BlockRenderer', () => {
36
+ it('renders the live form preview with the linked form name and fields', async () => {
37
+ render(<BlockRenderer node={formNode()} selectedNodeId={null} onSelectNode={vi.fn()} />)
38
+ await waitFor(() => expect(screen.getByText('Contact Us')).toBeTruthy())
39
+ expect(cmsApi).toHaveBeenCalledWith('/forms/f1')
40
+ expect(screen.getByText('Full Name')).toBeTruthy()
41
+ })
42
+
43
+ it('selects the node on click', () => {
44
+ const onSelectNode = vi.fn()
45
+ const { container } = render(
46
+ <BlockRenderer
47
+ node={formNode({ data: {} })}
48
+ selectedNodeId={null}
49
+ onSelectNode={onSelectNode}
50
+ />,
51
+ )
52
+ fireEvent.click(container.querySelector('[data-node-id="node-1"]')!)
53
+ expect(onSelectNode).toHaveBeenCalledWith('node-1')
54
+ })
55
+
56
+ it('falls back to a placeholder for unknown block types', () => {
57
+ render(
58
+ <BlockRenderer
59
+ node={formNode({ settings: { blockType: 'widget' }, data: {} })}
60
+ selectedNodeId={null}
61
+ onSelectNode={vi.fn()}
62
+ />,
63
+ )
64
+ expect(screen.getByText('No preview available')).toBeTruthy()
65
+ })
66
+ })