@prenta/admin 0.98.0 → 1.0.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 +12 -0
- package/dist/AdminRoot.d.ts.map +1 -1
- package/dist/AdminRoot.js +17 -28
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/components/seo-score-bands.test.js +0 -10
- package/dist/__tests__/components/seo-score-bands.test.js.map +1 -1
- package/dist/__tests__/layout/sidebar-posts.test.js +6 -11
- package/dist/__tests__/layout/sidebar-posts.test.js.map +1 -1
- package/dist/__tests__/layout/sidebar-submenu.render.test.js +3 -2
- package/dist/__tests__/layout/sidebar-submenu.render.test.js.map +1 -1
- package/dist/__tests__/lib/page-audit-input.test.js +77 -1
- package/dist/__tests__/lib/page-audit-input.test.js.map +1 -1
- package/dist/__tests__/lib/page-editor-service-api.test.js +26 -23
- package/dist/__tests__/lib/page-editor-service-api.test.js.map +1 -1
- package/dist/__tests__/views/page-section-editor.test.js +0 -1
- package/dist/__tests__/views/page-section-editor.test.js.map +1 -1
- package/dist/__tests__/views/page-tab.render.test.js +0 -1
- package/dist/__tests__/views/page-tab.render.test.js.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/layout/Sidebar.d.ts +3 -4
- package/dist/layout/Sidebar.d.ts.map +1 -1
- package/dist/layout/Sidebar.js +7 -38
- package/dist/layout/Sidebar.js.map +1 -1
- package/dist/lib/page-audit-input.d.ts +14 -1
- package/dist/lib/page-audit-input.d.ts.map +1 -1
- package/dist/lib/page-audit-input.js +19 -0
- package/dist/lib/page-audit-input.js.map +1 -1
- package/dist/lib/page-editor-service.d.ts +0 -7
- package/dist/lib/page-editor-service.d.ts.map +1 -1
- package/dist/lib/page-editor-service.js +9 -9
- package/dist/lib/page-editor-service.js.map +1 -1
- package/dist/prenta-admin.css +1 -1
- package/dist/views/PageEditor.d.ts +2 -2
- package/dist/views/PageEditor.js +2 -2
- package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.js +9 -15
- package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
- package/package.json +4 -4
- package/src/AdminRoot.tsx +18 -68
- package/src/__tests__/components/seo-score-bands.test.ts +0 -10
- package/src/__tests__/layout/sidebar-posts.test.ts +6 -11
- package/src/__tests__/layout/sidebar-submenu.render.test.tsx +3 -2
- package/src/__tests__/lib/page-audit-input.test.ts +91 -1
- package/src/__tests__/lib/page-editor-service-api.test.ts +27 -25
- package/src/__tests__/views/page-section-editor.test.tsx +0 -1
- package/src/__tests__/views/page-tab.render.test.tsx +0 -1
- package/src/index.ts +1 -11
- package/src/layout/Sidebar.tsx +6 -41
- package/src/lib/page-audit-input.ts +36 -1
- package/src/lib/page-editor-service.ts +9 -16
- package/src/views/PageEditor.tsx +2 -2
- package/src/views/page-editor/PageSectionEditor.tsx +8 -37
- package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts +0 -2
- package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts.map +0 -1
- package/dist/__tests__/views/page-builder-block-renderer.render.test.js +0 -48
- package/dist/__tests__/views/page-builder-block-renderer.render.test.js.map +0 -1
- package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts +0 -2
- package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts.map +0 -1
- package/dist/__tests__/views/page-builder-form-picker.render.test.js +0 -44
- package/dist/__tests__/views/page-builder-form-picker.render.test.js.map +0 -1
- package/dist/__tests__/views/page-builder-sections-panel.render.test.d.ts +0 -2
- package/dist/__tests__/views/page-builder-sections-panel.render.test.d.ts.map +0 -1
- package/dist/__tests__/views/page-builder-sections-panel.render.test.js +0 -121
- package/dist/__tests__/views/page-builder-sections-panel.render.test.js.map +0 -1
- package/dist/__tests__/views/page-builder-template-seed.render.test.d.ts +0 -2
- package/dist/__tests__/views/page-builder-template-seed.render.test.d.ts.map +0 -1
- package/dist/__tests__/views/page-builder-template-seed.render.test.js +0 -48
- package/dist/__tests__/views/page-builder-template-seed.render.test.js.map +0 -1
- package/dist/__tests__/views/page-templates.render.test.d.ts +0 -2
- package/dist/__tests__/views/page-templates.render.test.d.ts.map +0 -1
- package/dist/__tests__/views/page-templates.render.test.js +0 -126
- package/dist/__tests__/views/page-templates.render.test.js.map +0 -1
- package/dist/hooks/useBuilderState.d.ts +0 -49
- package/dist/hooks/useBuilderState.d.ts.map +0 -1
- package/dist/hooks/useBuilderState.js +0 -238
- package/dist/hooks/useBuilderState.js.map +0 -1
- package/dist/views/page-builder/AIBlockAssist.d.ts +0 -9
- package/dist/views/page-builder/AIBlockAssist.d.ts.map +0 -1
- package/dist/views/page-builder/AIBlockAssist.js +0 -40
- package/dist/views/page-builder/AIBlockAssist.js.map +0 -1
- package/dist/views/page-builder/AIGenerateDialog.d.ts +0 -8
- package/dist/views/page-builder/AIGenerateDialog.d.ts.map +0 -1
- package/dist/views/page-builder/AIGenerateDialog.js +0 -173
- package/dist/views/page-builder/AIGenerateDialog.js.map +0 -1
- package/dist/views/page-builder/BlockEditor.d.ts +0 -11
- package/dist/views/page-builder/BlockEditor.d.ts.map +0 -1
- package/dist/views/page-builder/BlockEditor.js +0 -159
- package/dist/views/page-builder/BlockEditor.js.map +0 -1
- package/dist/views/page-builder/BlockPicker.d.ts +0 -7
- package/dist/views/page-builder/BlockPicker.d.ts.map +0 -1
- package/dist/views/page-builder/BlockPicker.js +0 -103
- package/dist/views/page-builder/BlockPicker.js.map +0 -1
- package/dist/views/page-builder/BottomBar.d.ts +0 -9
- package/dist/views/page-builder/BottomBar.d.ts.map +0 -1
- package/dist/views/page-builder/BottomBar.js +0 -13
- package/dist/views/page-builder/BottomBar.js.map +0 -1
- package/dist/views/page-builder/BuilderSectionsPanel.d.ts +0 -20
- package/dist/views/page-builder/BuilderSectionsPanel.d.ts.map +0 -1
- package/dist/views/page-builder/BuilderSectionsPanel.js +0 -105
- package/dist/views/page-builder/BuilderSectionsPanel.js.map +0 -1
- package/dist/views/page-builder/BuilderToolbar.d.ts +0 -21
- package/dist/views/page-builder/BuilderToolbar.d.ts.map +0 -1
- package/dist/views/page-builder/BuilderToolbar.js +0 -18
- package/dist/views/page-builder/BuilderToolbar.js.map +0 -1
- package/dist/views/page-builder/ContextPanel.d.ts +0 -20
- package/dist/views/page-builder/ContextPanel.d.ts.map +0 -1
- package/dist/views/page-builder/ContextPanel.js +0 -43
- package/dist/views/page-builder/ContextPanel.js.map +0 -1
- package/dist/views/page-builder/DesignScore.d.ts +0 -6
- package/dist/views/page-builder/DesignScore.d.ts.map +0 -1
- package/dist/views/page-builder/DesignScore.js +0 -93
- package/dist/views/page-builder/DesignScore.js.map +0 -1
- package/dist/views/page-builder/NodeSettings.d.ts +0 -12
- package/dist/views/page-builder/NodeSettings.d.ts.map +0 -1
- package/dist/views/page-builder/NodeSettings.js +0 -80
- package/dist/views/page-builder/NodeSettings.js.map +0 -1
- package/dist/views/page-builder/PageBuilder.d.ts +0 -10
- package/dist/views/page-builder/PageBuilder.d.ts.map +0 -1
- package/dist/views/page-builder/PageBuilder.js +0 -222
- package/dist/views/page-builder/PageBuilder.js.map +0 -1
- package/dist/views/page-builder/PageSettings.d.ts +0 -7
- package/dist/views/page-builder/PageSettings.d.ts.map +0 -1
- package/dist/views/page-builder/PageSettings.js +0 -27
- package/dist/views/page-builder/PageSettings.js.map +0 -1
- package/dist/views/page-builder/PageTemplates.d.ts +0 -5
- package/dist/views/page-builder/PageTemplates.d.ts.map +0 -1
- package/dist/views/page-builder/PageTemplates.js +0 -146
- package/dist/views/page-builder/PageTemplates.js.map +0 -1
- package/dist/views/page-builder/RelationshipField.d.ts +0 -15
- package/dist/views/page-builder/RelationshipField.d.ts.map +0 -1
- package/dist/views/page-builder/RelationshipField.js +0 -65
- package/dist/views/page-builder/RelationshipField.js.map +0 -1
- package/dist/views/page-builder/SEOPanel.d.ts +0 -10
- package/dist/views/page-builder/SEOPanel.d.ts.map +0 -1
- package/dist/views/page-builder/SEOPanel.js +0 -103
- package/dist/views/page-builder/SEOPanel.js.map +0 -1
- package/dist/views/page-builder/SavedSections.d.ts +0 -6
- package/dist/views/page-builder/SavedSections.d.ts.map +0 -1
- package/dist/views/page-builder/SavedSections.js +0 -141
- package/dist/views/page-builder/SavedSections.js.map +0 -1
- package/dist/views/page-builder/TemplatePicker.d.ts +0 -7
- package/dist/views/page-builder/TemplatePicker.d.ts.map +0 -1
- package/dist/views/page-builder/TemplatePicker.js +0 -68
- package/dist/views/page-builder/TemplatePicker.js.map +0 -1
- package/dist/views/page-builder/Widgets.d.ts +0 -13
- package/dist/views/page-builder/Widgets.d.ts.map +0 -1
- package/dist/views/page-builder/Widgets.js +0 -15
- package/dist/views/page-builder/Widgets.js.map +0 -1
- package/dist/views/page-builder/block-renderers/CTAPreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/CTAPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/CTAPreview.js +0 -19
- package/dist/views/page-builder/block-renderers/CTAPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/CardsPreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/CardsPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/CardsPreview.js +0 -22
- package/dist/views/page-builder/block-renderers/CardsPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/CodePreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/CodePreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/CodePreview.js +0 -12
- package/dist/views/page-builder/block-renderers/CodePreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/FAQPreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/FAQPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/FAQPreview.js +0 -27
- package/dist/views/page-builder/block-renderers/FAQPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/FallbackPreview.d.ts +0 -6
- package/dist/views/page-builder/block-renderers/FallbackPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/FallbackPreview.js +0 -7
- package/dist/views/page-builder/block-renderers/FallbackPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/FormPreview.d.ts +0 -9
- package/dist/views/page-builder/block-renderers/FormPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/FormPreview.js +0 -52
- package/dist/views/page-builder/block-renderers/FormPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/GalleryPreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/GalleryPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/GalleryPreview.js +0 -19
- package/dist/views/page-builder/block-renderers/GalleryPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/HeroPreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/HeroPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/HeroPreview.js +0 -19
- package/dist/views/page-builder/block-renderers/HeroPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/ImagePreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/ImagePreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/ImagePreview.js +0 -17
- package/dist/views/page-builder/block-renderers/ImagePreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/TextPreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/TextPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/TextPreview.js +0 -22
- package/dist/views/page-builder/block-renderers/TextPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/VideoPreview.d.ts +0 -3
- package/dist/views/page-builder/block-renderers/VideoPreview.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/VideoPreview.js +0 -18
- package/dist/views/page-builder/block-renderers/VideoPreview.js.map +0 -1
- package/dist/views/page-builder/block-renderers/index.d.ts +0 -9
- package/dist/views/page-builder/block-renderers/index.d.ts.map +0 -1
- package/dist/views/page-builder/block-renderers/index.js +0 -25
- package/dist/views/page-builder/block-renderers/index.js.map +0 -1
- package/dist/views/page-builder/canvas/BlockRenderer.d.ts +0 -8
- package/dist/views/page-builder/canvas/BlockRenderer.d.ts.map +0 -1
- package/dist/views/page-builder/canvas/BlockRenderer.js +0 -20
- package/dist/views/page-builder/canvas/BlockRenderer.js.map +0 -1
- package/dist/views/page-builder/canvas/BuilderCanvas.d.ts +0 -10
- package/dist/views/page-builder/canvas/BuilderCanvas.d.ts.map +0 -1
- package/dist/views/page-builder/canvas/BuilderCanvas.js +0 -26
- package/dist/views/page-builder/canvas/BuilderCanvas.js.map +0 -1
- package/dist/views/page-builder/canvas/ColumnRenderer.d.ts +0 -8
- package/dist/views/page-builder/canvas/ColumnRenderer.d.ts.map +0 -1
- package/dist/views/page-builder/canvas/ColumnRenderer.js +0 -32
- package/dist/views/page-builder/canvas/ColumnRenderer.js.map +0 -1
- package/dist/views/page-builder/canvas/ContainerRenderer.d.ts +0 -8
- package/dist/views/page-builder/canvas/ContainerRenderer.d.ts.map +0 -1
- package/dist/views/page-builder/canvas/ContainerRenderer.js +0 -29
- package/dist/views/page-builder/canvas/ContainerRenderer.js.map +0 -1
- package/dist/views/page-builder/canvas/RowRenderer.d.ts +0 -8
- package/dist/views/page-builder/canvas/RowRenderer.d.ts.map +0 -1
- package/dist/views/page-builder/canvas/RowRenderer.js +0 -28
- package/dist/views/page-builder/canvas/RowRenderer.js.map +0 -1
- package/dist/views/page-builder/canvas/SectionRenderer.d.ts +0 -8
- package/dist/views/page-builder/canvas/SectionRenderer.d.ts.map +0 -1
- package/dist/views/page-builder/canvas/SectionRenderer.js +0 -50
- package/dist/views/page-builder/canvas/SectionRenderer.js.map +0 -1
- package/dist/views/page-builder/canvas/index.d.ts +0 -3
- package/dist/views/page-builder/canvas/index.d.ts.map +0 -1
- package/dist/views/page-builder/canvas/index.js +0 -2
- package/dist/views/page-builder/canvas/index.js.map +0 -1
- package/src/__tests__/views/page-builder-block-renderer.render.test.tsx +0 -66
- package/src/__tests__/views/page-builder-form-picker.render.test.tsx +0 -54
- package/src/__tests__/views/page-builder-sections-panel.render.test.tsx +0 -138
- package/src/__tests__/views/page-builder-template-seed.render.test.tsx +0 -59
- package/src/__tests__/views/page-templates.render.test.tsx +0 -182
- package/src/hooks/useBuilderState.ts +0 -361
- package/src/views/page-builder/AIBlockAssist.tsx +0 -64
- package/src/views/page-builder/AIGenerateDialog.tsx +0 -593
- package/src/views/page-builder/BlockEditor.tsx +0 -523
- package/src/views/page-builder/BlockPicker.tsx +0 -324
- package/src/views/page-builder/BottomBar.tsx +0 -65
- package/src/views/page-builder/BuilderSectionsPanel.tsx +0 -304
- package/src/views/page-builder/BuilderToolbar.tsx +0 -221
- package/src/views/page-builder/ContextPanel.tsx +0 -145
- package/src/views/page-builder/DesignScore.tsx +0 -251
- package/src/views/page-builder/NodeSettings.tsx +0 -500
- package/src/views/page-builder/PageBuilder.tsx +0 -405
- package/src/views/page-builder/PageSettings.tsx +0 -162
- package/src/views/page-builder/PageTemplates.tsx +0 -435
- package/src/views/page-builder/RelationshipField.tsx +0 -113
- package/src/views/page-builder/SEOPanel.tsx +0 -464
- package/src/views/page-builder/SavedSections.tsx +0 -480
- package/src/views/page-builder/TemplatePicker.tsx +0 -197
- package/src/views/page-builder/Widgets.tsx +0 -44
- package/src/views/page-builder/block-renderers/CTAPreview.tsx +0 -79
- package/src/views/page-builder/block-renderers/CardsPreview.tsx +0 -69
- package/src/views/page-builder/block-renderers/CodePreview.tsx +0 -46
- package/src/views/page-builder/block-renderers/FAQPreview.tsx +0 -87
- package/src/views/page-builder/block-renderers/FallbackPreview.tsx +0 -18
- package/src/views/page-builder/block-renderers/FormPreview.tsx +0 -117
- package/src/views/page-builder/block-renderers/GalleryPreview.tsx +0 -87
- package/src/views/page-builder/block-renderers/HeroPreview.tsx +0 -90
- package/src/views/page-builder/block-renderers/ImagePreview.tsx +0 -54
- package/src/views/page-builder/block-renderers/TextPreview.tsx +0 -81
- package/src/views/page-builder/block-renderers/VideoPreview.tsx +0 -73
- package/src/views/page-builder/block-renderers/index.ts +0 -34
- package/src/views/page-builder/canvas/BlockRenderer.tsx +0 -56
- package/src/views/page-builder/canvas/BuilderCanvas.tsx +0 -87
- package/src/views/page-builder/canvas/ColumnRenderer.tsx +0 -82
- package/src/views/page-builder/canvas/ContainerRenderer.tsx +0 -67
- package/src/views/page-builder/canvas/RowRenderer.tsx +0 -68
- package/src/views/page-builder/canvas/SectionRenderer.tsx +0 -93
- package/src/views/page-builder/canvas/index.ts +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FAQPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FAQPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAOnD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAqB,EAAE,EAAE,iBAAiB,2CA4E5E"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ChevronDown } from 'lucide-react';
|
|
4
|
-
export function FAQPreview({ data, variant = 'accordion' }) {
|
|
5
|
-
const items = data.items || [];
|
|
6
|
-
const placeholderItems = items.length > 0
|
|
7
|
-
? items
|
|
8
|
-
: [
|
|
9
|
-
{ question: 'What is this?', answer: 'Answer to the first question goes here.' },
|
|
10
|
-
{ question: 'How does it work?', answer: 'Answer to the second question goes here.' },
|
|
11
|
-
{
|
|
12
|
-
question: 'Where can I learn more?',
|
|
13
|
-
answer: 'Answer to the third question goes here.',
|
|
14
|
-
},
|
|
15
|
-
];
|
|
16
|
-
if (variant === 'two-column') {
|
|
17
|
-
const mid = Math.ceil(placeholderItems.length / 2);
|
|
18
|
-
const col1 = placeholderItems.slice(0, mid);
|
|
19
|
-
const col2 = placeholderItems.slice(mid);
|
|
20
|
-
return (_jsx("div", { className: "border-border rounded-md border p-4", children: _jsx("div", { className: "grid grid-cols-2 gap-4", children: [col1, col2].map((column, colIdx) => (_jsx("div", { className: "flex flex-col gap-3", children: column.map((item, i) => (_jsxs("div", { className: "border-border rounded-md border p-3", children: [_jsx("p", { className: "text-foreground text-sm font-medium", children: item.question || 'Question?' }), _jsx("p", { className: "text-muted-foreground mt-1 line-clamp-2 text-xs", children: item.answer || 'Answer text…' })] }, i))) }, colIdx))) }) }));
|
|
21
|
-
}
|
|
22
|
-
if (variant === 'list') {
|
|
23
|
-
return (_jsx("div", { className: "border-border rounded-md border p-4", children: _jsx("div", { className: "flex flex-col gap-3", children: placeholderItems.map((item, i) => (_jsxs("div", { className: "border-border border-b pb-3 last:border-b-0 last:pb-0", children: [_jsx("p", { className: "text-foreground text-sm font-medium", children: item.question || 'Question?' }), _jsx("p", { className: "text-muted-foreground mt-1 line-clamp-2 text-xs", children: item.answer || 'Answer text…' })] }, i))) }) }));
|
|
24
|
-
}
|
|
25
|
-
return (_jsx("div", { className: "border-border rounded-md border p-4", children: _jsx("div", { className: "flex flex-col gap-2", children: placeholderItems.map((item, i) => (_jsxs("div", { className: "border-border rounded-md border p-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("p", { className: "text-foreground text-sm font-medium", children: item.question || 'Question?' }), _jsx(ChevronDown, { size: 14, className: "text-muted-foreground shrink-0" })] }), i === 0 && (_jsx("p", { className: "text-muted-foreground mt-2 text-xs", children: item.answer || 'Answer text…' }))] }, i))) }) }));
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=FAQPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FAQPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FAQPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAQ1C,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,EAAqB;IAC3E,MAAM,KAAK,GAAI,IAAI,CAAC,KAAmB,IAAI,EAAE,CAAA;IAE7C,MAAM,gBAAgB,GACpB,KAAK,CAAC,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,KAAK;QACP,CAAC,CAAC;YACE,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,yCAAyC,EAAE;YAChF,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,0CAA0C,EAAE;YACrF;gBACE,QAAQ,EAAE,yBAAyB;gBACnC,MAAM,EAAE,yCAAyC;aAClD;SACF,CAAA;IAEP,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAExC,OAAO,CACL,cAAK,SAAS,EAAC,qCAAqC,YAClD,cAAK,SAAS,EAAC,wBAAwB,YACpC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CACpC,cAAkB,SAAS,EAAC,qBAAqB,YAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,eAAa,SAAS,EAAC,qCAAqC,aAC1D,YAAG,SAAS,EAAC,qCAAqC,YAC/C,IAAI,CAAC,QAAQ,IAAI,WAAW,GAC3B,EACJ,YAAG,SAAS,EAAC,iDAAiD,YAC3D,IAAI,CAAC,MAAM,IAAI,cAAc,GAC5B,KANI,CAAC,CAOL,CACP,CAAC,IAVM,MAAM,CAWV,CACP,CAAC,GACE,GACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CACL,cAAK,SAAS,EAAC,qCAAqC,YAClD,cAAK,SAAS,EAAC,qBAAqB,YACjC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,eAAa,SAAS,EAAC,uDAAuD,aAC5E,YAAG,SAAS,EAAC,qCAAqC,YAAE,IAAI,CAAC,QAAQ,IAAI,WAAW,GAAK,EACrF,YAAG,SAAS,EAAC,iDAAiD,YAC3D,IAAI,CAAC,MAAM,IAAI,cAAc,GAC5B,KAJI,CAAC,CAKL,CACP,CAAC,GACE,GACF,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,qCAAqC,YAClD,cAAK,SAAS,EAAC,qBAAqB,YACjC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,eAAa,SAAS,EAAC,qCAAqC,aAC1D,eAAK,SAAS,EAAC,mCAAmC,aAChD,YAAG,SAAS,EAAC,qCAAqC,YAAE,IAAI,CAAC,QAAQ,IAAI,WAAW,GAAK,EACrF,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,gCAAgC,GAAG,IAChE,EACL,CAAC,KAAK,CAAC,IAAI,CACV,YAAG,SAAS,EAAC,oCAAoC,YAAE,IAAI,CAAC,MAAM,IAAI,cAAc,GAAK,CACtF,KAPO,CAAC,CAQL,CACP,CAAC,GACE,GACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FallbackPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FallbackPreview.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAQlE"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Box } from 'lucide-react';
|
|
4
|
-
export function FallbackPreview({ blockType }) {
|
|
5
|
-
return (_jsxs("div", { className: "border-border bg-muted/50 flex flex-col items-center justify-center gap-2 rounded-md border border-dashed p-8", children: [_jsx(Box, { size: 24, className: "text-muted-foreground" }), _jsx("p", { className: "text-muted-foreground text-sm font-medium", children: blockType }), _jsx("p", { className: "text-muted-foreground text-xs", children: "No preview available" })] }));
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=FallbackPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FallbackPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FallbackPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAOlC,MAAM,UAAU,eAAe,CAAC,EAAE,SAAS,EAAwB;IACjE,OAAO,CACL,eAAK,SAAS,EAAC,+GAA+G,aAC5H,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,EACnD,YAAG,SAAS,EAAC,2CAA2C,YAAE,SAAS,GAAK,EACxE,YAAG,SAAS,EAAC,+BAA+B,qCAAyB,IACjE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
-
*/
|
|
8
|
-
export declare function FormPreview({ data, variant }: BlockPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
//# sourceMappingURL=FormPreview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,52 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
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
|
-
*/
|
|
12
|
-
export function FormPreview({ data, variant = 'contact' }) {
|
|
13
|
-
const formId = data.formId || '';
|
|
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" })] }));
|
|
44
|
-
}
|
|
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" }) })] })] }));
|
|
49
|
-
}
|
|
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' }) })] }));
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=FormPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GalleryPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/GalleryPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,iBAAiB,2CA2E3E"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Image } from 'lucide-react';
|
|
4
|
-
export function GalleryPreview({ data, variant = 'grid' }) {
|
|
5
|
-
const images = data.images || [];
|
|
6
|
-
const placeholders = images.length > 0 ? images : Array.from({ length: 6 }, (_, i) => ({ alt: `Image ${i + 1}` }));
|
|
7
|
-
const Thumbnail = ({ item, className = '' }) => (_jsx("div", { className: `bg-muted flex items-center justify-center overflow-hidden rounded-md ${className}`, children: item.src ? (_jsx("img", { src: item.src, alt: item.alt || '', className: "h-full w-full object-cover" })) : (_jsx(Image, { size: 20, className: "text-muted-foreground" })) }));
|
|
8
|
-
if (variant === 'masonry') {
|
|
9
|
-
return (_jsx("div", { className: "border-border rounded-md border p-4", children: _jsx("div", { className: "columns-3 gap-3 space-y-3", children: placeholders.map((item, i) => (_jsx(Thumbnail, { item: item, className: i % 3 === 0 ? 'aspect-square' : i % 3 === 1 ? 'aspect-[3/4]' : 'aspect-[4/3]' }, i))) }) }));
|
|
10
|
-
}
|
|
11
|
-
if (variant === 'carousel') {
|
|
12
|
-
return (_jsx("div", { className: "border-border overflow-hidden rounded-md border p-4", children: _jsxs("div", { className: "flex gap-3 overflow-hidden", children: [placeholders.slice(0, 4).map((item, i) => (_jsx(Thumbnail, { item: item, className: "aspect-square min-w-[120px] flex-1" }, i))), placeholders.length > 4 && (_jsx("div", { className: "bg-muted flex min-w-[120px] flex-1 items-center justify-center rounded-md", children: _jsxs("span", { className: "text-muted-foreground text-sm", children: ["+", placeholders.length - 4] }) }))] }) }));
|
|
13
|
-
}
|
|
14
|
-
if (variant === 'lightbox') {
|
|
15
|
-
return (_jsxs("div", { className: "border-border rounded-md border p-4", children: [_jsx("div", { className: "grid grid-cols-3 gap-3", children: placeholders.map((item, i) => (_jsx(Thumbnail, { item: item, className: "aspect-square" }, i))) }), _jsx("p", { className: "text-muted-foreground mt-2 text-center text-xs", children: "Click to open lightbox" })] }));
|
|
16
|
-
}
|
|
17
|
-
return (_jsx("div", { className: "border-border rounded-md border p-4", children: _jsx("div", { className: "grid grid-cols-3 gap-3", children: placeholders.map((item, i) => (_jsx(Thumbnail, { item: item, className: "aspect-square" }, i))) }) }));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=GalleryPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GalleryPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/GalleryPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HeroPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/HeroPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAoB,EAAE,EAAE,iBAAiB,2CAoF5E"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Image, Play } from 'lucide-react';
|
|
4
|
-
export function HeroPreview({ data, variant = 'centered' }) {
|
|
5
|
-
const title = data.title || '';
|
|
6
|
-
const subtitle = data.subtitle || '';
|
|
7
|
-
const image = data.image;
|
|
8
|
-
const ctaText = data.ctaText || '';
|
|
9
|
-
const overlayOpacity = data.overlayOpacity ?? 0.4;
|
|
10
|
-
if (variant === 'split-image') {
|
|
11
|
-
return (_jsxs("div", { className: "border-border flex min-h-[200px] overflow-hidden rounded-md border", children: [_jsxs("div", { className: "flex flex-1 flex-col justify-center gap-3 p-6", children: [_jsx("h2", { className: "text-foreground text-2xl font-medium", children: title || _jsx("span", { className: "text-muted-foreground", children: "Hero Title" }) }), (subtitle || !title) && (_jsx("p", { className: "text-muted-foreground text-sm", children: subtitle || 'Subtitle text goes here' })), ctaText && (_jsx("div", { className: "mt-2", children: _jsx("span", { className: "bg-primary text-primary-foreground inline-block rounded-md px-4 py-2 text-sm", children: ctaText }) }))] }), _jsx("div", { className: "bg-muted flex flex-1 items-center justify-center", children: image ? (_jsx("img", { src: image, alt: "", className: "h-full w-full object-cover" })) : (_jsx(Image, { size: 32, className: "text-muted-foreground" })) })] }));
|
|
12
|
-
}
|
|
13
|
-
if (variant === 'minimal') {
|
|
14
|
-
return (_jsxs("div", { className: "border-border flex flex-col items-center gap-3 rounded-md border p-8", children: [_jsx("h2", { className: "text-foreground text-2xl font-medium", children: title || _jsx("span", { className: "text-muted-foreground", children: "Hero Title" }) }), (subtitle || !title) && (_jsx("p", { className: "text-muted-foreground text-sm", children: subtitle || 'Subtitle text goes here' })), ctaText && (_jsx("span", { className: "bg-primary text-primary-foreground mt-2 inline-block rounded-md px-4 py-2 text-sm", children: ctaText }))] }));
|
|
15
|
-
}
|
|
16
|
-
const isVideo = variant === 'video-bg';
|
|
17
|
-
return (_jsxs("div", { className: "border-border relative flex min-h-[220px] flex-col items-center justify-center gap-3 overflow-hidden rounded-md border p-8", children: [image ? (_jsx("img", { src: image, alt: "", className: "absolute inset-0 h-full w-full object-cover" })) : (_jsx("div", { className: "bg-muted absolute inset-0" })), _jsx("div", { className: "bg-background absolute inset-0", style: { opacity: overlayOpacity } }), _jsxs("div", { className: "relative z-10 flex flex-col items-center gap-3 text-center", children: [isVideo && (_jsx("div", { className: "bg-primary/90 mb-2 flex h-12 w-12 items-center justify-center rounded-full", children: _jsx(Play, { size: 20, className: "text-primary-foreground" }) })), _jsx("h2", { className: "text-foreground text-2xl font-medium", children: title || _jsx("span", { className: "text-muted-foreground", children: "Hero Title" }) }), (subtitle || !title) && (_jsx("p", { className: "text-muted-foreground text-sm", children: subtitle || 'Subtitle text goes here' })), ctaText && (_jsx("span", { className: "bg-primary text-primary-foreground mt-2 inline-block rounded-md px-4 py-2 text-sm", children: ctaText }))] })] }));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=HeroPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HeroPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/HeroPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAG1C,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,UAAU,EAAqB;IAC3E,MAAM,KAAK,GAAI,IAAI,CAAC,KAAgB,IAAI,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAI,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAA2B,CAAA;IAC9C,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAA;IAC9C,MAAM,cAAc,GAAI,IAAI,CAAC,cAAyB,IAAI,GAAG,CAAA;IAE7D,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC9B,OAAO,CACL,eAAK,SAAS,EAAC,oEAAoE,aACjF,eAAK,SAAS,EAAC,+CAA+C,aAC5D,aAAI,SAAS,EAAC,sCAAsC,YACjD,KAAK,IAAI,eAAM,SAAS,EAAC,uBAAuB,2BAAkB,GAChE,EACJ,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CACvB,YAAG,SAAS,EAAC,+BAA+B,YAAE,QAAQ,IAAI,yBAAyB,GAAK,CACzF,EACA,OAAO,IAAI,CACV,cAAK,SAAS,EAAC,MAAM,YACnB,eAAM,SAAS,EAAC,8EAA8E,YAC3F,OAAO,GACH,GACH,CACP,IACG,EACN,cAAK,SAAS,EAAC,kDAAkD,YAC9D,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,4BAA4B,GAAG,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,CACtD,GACG,IACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,eAAK,SAAS,EAAC,sEAAsE,aACnF,aAAI,SAAS,EAAC,sCAAsC,YACjD,KAAK,IAAI,eAAM,SAAS,EAAC,uBAAuB,2BAAkB,GAChE,EACJ,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CACvB,YAAG,SAAS,EAAC,+BAA+B,YAAE,QAAQ,IAAI,yBAAyB,GAAK,CACzF,EACA,OAAO,IAAI,CACV,eAAM,SAAS,EAAC,mFAAmF,YAChG,OAAO,GACH,CACR,IACG,CACP,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,KAAK,UAAU,CAAA;IAEtC,OAAO,CACL,eAAK,SAAS,EAAC,4HAA4H,aACxI,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,6CAA6C,GAAG,CACnF,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,2BAA2B,GAAG,CAC9C,EACD,cAAK,SAAS,EAAC,gCAAgC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,GAAI,EACtF,eAAK,SAAS,EAAC,4DAA4D,aACxE,OAAO,IAAI,CACV,cAAK,SAAS,EAAC,4EAA4E,YACzF,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,GAAG,GAClD,CACP,EACD,aAAI,SAAS,EAAC,sCAAsC,YACjD,KAAK,IAAI,eAAM,SAAS,EAAC,uBAAuB,2BAAkB,GAChE,EACJ,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CACvB,YAAG,SAAS,EAAC,+BAA+B,YAAE,QAAQ,IAAI,yBAAyB,GAAK,CACzF,EACA,OAAO,IAAI,CACV,eAAM,SAAS,EAAC,mFAAmF,YAChG,OAAO,GACH,CACR,IACG,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/ImagePreview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,OAAsB,EAAE,EAAE,iBAAiB,2CAgD/E"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Image } from 'lucide-react';
|
|
4
|
-
export function ImagePreview({ data, variant = 'full-width' }) {
|
|
5
|
-
const src = data.src;
|
|
6
|
-
const alt = data.alt || '';
|
|
7
|
-
const caption = data.caption || '';
|
|
8
|
-
const aspectRatio = data.aspectRatio || '16/9';
|
|
9
|
-
const roundedClass = variant === 'rounded' ? 'rounded-xl' : 'rounded-md';
|
|
10
|
-
const ImagePlaceholder = ({ className = '' }) => (_jsx("div", { className: `bg-muted flex items-center justify-center ${roundedClass} ${className}`, style: { aspectRatio }, children: _jsx(Image, { size: 32, className: "text-muted-foreground" }) }));
|
|
11
|
-
const ImageElement = ({ className = '' }) => src ? (_jsx("img", { src: src, alt: alt, className: `h-auto w-full object-cover ${roundedClass} ${className}`, style: { aspectRatio } })) : (_jsx(ImagePlaceholder, { className: className }));
|
|
12
|
-
if (variant === 'side-by-side') {
|
|
13
|
-
return (_jsxs("div", { className: "border-border grid grid-cols-2 gap-3 rounded-md border p-4", children: [_jsx(ImageElement, {}), _jsx(ImagePlaceholder, {})] }));
|
|
14
|
-
}
|
|
15
|
-
return (_jsxs("figure", { className: "border-border overflow-hidden rounded-md border p-4", children: [_jsx(ImageElement, {}), (variant === 'captioned' || caption) && (_jsx("figcaption", { className: "text-muted-foreground mt-2 text-center text-sm", children: caption || 'Image caption' }))] }));
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=ImagePreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/ImagePreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAGpC,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,YAAY,EAAqB;IAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAyB,CAAA;IAC1C,MAAM,GAAG,GAAI,IAAI,CAAC,GAAc,IAAI,EAAE,CAAA;IACtC,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAA;IAC9C,MAAM,WAAW,GAAI,IAAI,CAAC,WAAsB,IAAI,MAAM,CAAA;IAE1D,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAA;IAExE,MAAM,gBAAgB,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAA0B,EAAE,EAAE,CAAC,CACvE,cACE,SAAS,EAAE,6CAA6C,YAAY,IAAI,SAAS,EAAE,EACnF,KAAK,EAAE,EAAE,WAAW,EAAE,YAEtB,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,GACjD,CACP,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAA0B,EAAE,EAAE,CAClE,GAAG,CAAC,CAAC,CAAC,CACJ,cACE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,8BAA8B,YAAY,IAAI,SAAS,EAAE,EACpE,KAAK,EAAE,EAAE,WAAW,EAAE,GACtB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,gBAAgB,IAAC,SAAS,EAAE,SAAS,GAAI,CAC3C,CAAA;IAEH,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,OAAO,CACL,eAAK,SAAS,EAAC,4DAA4D,aACzE,KAAC,YAAY,KAAG,EAChB,KAAC,gBAAgB,KAAG,IAChB,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,kBAAQ,SAAS,EAAC,qDAAqD,aACrE,KAAC,YAAY,KAAG,EACf,CAAC,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,CACvC,qBAAY,SAAS,EAAC,gDAAgD,YACnE,OAAO,IAAI,eAAe,GAChB,CACd,IACM,CACV,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/TextPreview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAiB,EAAE,EAAE,iBAAiB,2CA4EzE"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
export function TextPreview({ data, variant = 'prose' }) {
|
|
4
|
-
const body = data.body || '';
|
|
5
|
-
const heading = data.heading || '';
|
|
6
|
-
const headingLevel = data.headingLevel || 'h2';
|
|
7
|
-
const truncatedBody = body.length > 300 ? body.slice(0, 300) + '…' : body;
|
|
8
|
-
const validLevels = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
9
|
-
const HeadingTag = (validLevels.includes(headingLevel) ? headingLevel : 'h2');
|
|
10
|
-
const headingSizeClass = HeadingTag === 'h1' ? 'text-2xl' : HeadingTag === 'h2' ? 'text-xl' : 'text-lg';
|
|
11
|
-
if (variant === 'two-column') {
|
|
12
|
-
const midpoint = Math.ceil(truncatedBody.length / 2);
|
|
13
|
-
const col1 = truncatedBody.slice(0, midpoint);
|
|
14
|
-
const col2 = truncatedBody.slice(midpoint);
|
|
15
|
-
return (_jsxs("div", { className: "border-border rounded-md border p-5", children: [heading && (_jsx(HeadingTag, { className: `${headingSizeClass} text-foreground mb-3 font-medium`, children: heading })), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx("p", { className: "text-muted-foreground text-sm leading-relaxed", children: col1 || 'Column one text content…' }), _jsx("p", { className: "text-muted-foreground text-sm leading-relaxed", children: col2 || 'Column two text content…' })] })] }));
|
|
16
|
-
}
|
|
17
|
-
if (variant === 'with-sidebar') {
|
|
18
|
-
return (_jsxs("div", { className: "border-border grid grid-cols-[1fr_200px] gap-4 rounded-md border p-5", children: [_jsxs("div", { children: [heading && (_jsx(HeadingTag, { className: `${headingSizeClass} text-foreground mb-3 font-medium`, children: heading })), _jsx("p", { className: "text-muted-foreground text-sm leading-relaxed", children: truncatedBody || 'Body text content goes here…' })] }), _jsxs("aside", { className: "bg-muted rounded-md p-3", children: [_jsx("div", { className: "bg-border h-3 w-3/4 rounded" }), _jsx("div", { className: "bg-border mt-2 h-2 w-full rounded" }), _jsx("div", { className: "bg-border mt-1 h-2 w-2/3 rounded" })] })] }));
|
|
19
|
-
}
|
|
20
|
-
return (_jsxs("div", { className: "border-border rounded-md border p-5", children: [heading && (_jsx(HeadingTag, { className: `${headingSizeClass} text-foreground mb-3 font-medium`, children: heading })), _jsx("p", { className: "text-muted-foreground text-sm leading-relaxed", children: truncatedBody || _jsx("span", { className: "italic", children: "Body text content goes here\u2026" }) })] }));
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=TextPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/TextPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,EAAqB;IACxE,MAAM,IAAI,GAAI,IAAI,CAAC,IAAe,IAAI,EAAE,CAAA;IACxC,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAA;IAC9C,MAAM,YAAY,GAAI,IAAI,CAAC,YAAuB,IAAI,IAAI,CAAA;IAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzE,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;IACjE,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAM3E,CAAA;IACR,MAAM,gBAAgB,GACpB,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhF,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE1C,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aACjD,OAAO,IAAI,CACV,KAAC,UAAU,IAAC,SAAS,EAAE,GAAG,gBAAgB,mCAAmC,YAC1E,OAAO,GACG,CACd,EACD,eAAK,SAAS,EAAC,wBAAwB,aACrC,YAAG,SAAS,EAAC,+CAA+C,YACzD,IAAI,IAAI,0BAA0B,GACjC,EACJ,YAAG,SAAS,EAAC,+CAA+C,YACzD,IAAI,IAAI,0BAA0B,GACjC,IACA,IACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,OAAO,CACL,eAAK,SAAS,EAAC,sEAAsE,aACnF,0BACG,OAAO,IAAI,CACV,KAAC,UAAU,IAAC,SAAS,EAAE,GAAG,gBAAgB,mCAAmC,YAC1E,OAAO,GACG,CACd,EACD,YAAG,SAAS,EAAC,+CAA+C,YACzD,aAAa,IAAI,8BAA8B,GAC9C,IACA,EACN,iBAAO,SAAS,EAAC,yBAAyB,aACxC,cAAK,SAAS,EAAC,6BAA6B,GAAG,EAC/C,cAAK,SAAS,EAAC,mCAAmC,GAAG,EACrD,cAAK,SAAS,EAAC,kCAAkC,GAAG,IAC9C,IACJ,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aACjD,OAAO,IAAI,CACV,KAAC,UAAU,IAAC,SAAS,EAAE,GAAG,gBAAgB,mCAAmC,YAC1E,OAAO,GACG,CACd,EACD,YAAG,SAAS,EAAC,+CAA+C,YACzD,aAAa,IAAI,eAAM,SAAS,EAAC,QAAQ,kDAAoC,GAC5E,IACA,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/VideoPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,OAAkB,EAAE,EAAE,iBAAiB,2CAmE3E"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Play } from 'lucide-react';
|
|
4
|
-
export function VideoPreview({ data, variant = 'inline' }) {
|
|
5
|
-
const poster = data.poster;
|
|
6
|
-
const autoplay = data.autoplay;
|
|
7
|
-
const loop = data.loop;
|
|
8
|
-
const badges = [autoplay ? 'Autoplay' : '', loop ? 'Loop' : ''].filter((b) => b !== '');
|
|
9
|
-
const content = (_jsxs("div", { className: "bg-muted relative flex aspect-video items-center justify-center overflow-hidden rounded-md", children: [poster ? (_jsx("img", { src: poster, alt: "", className: "absolute inset-0 h-full w-full object-cover" })) : (_jsx("div", { className: "bg-card absolute inset-0" })), _jsx("div", { className: "bg-primary/90 relative z-10 flex h-12 w-12 items-center justify-center rounded-full shadow-sm", children: _jsx(Play, { size: 20, className: "text-primary-foreground" }) }), badges.length > 0 && (_jsx("div", { className: "absolute right-2 bottom-2 z-10 flex gap-1", children: badges.map((badge) => (_jsx("span", { className: "bg-background/80 text-muted-foreground rounded px-1.5 py-0.5 text-xs", children: badge }, badge))) }))] }));
|
|
10
|
-
if (variant === 'background') {
|
|
11
|
-
return (_jsx("div", { className: "border-border overflow-hidden rounded-md border", children: _jsxs("div", { className: "relative aspect-[21/9]", children: [poster ? (_jsx("img", { src: poster, alt: "", className: "absolute inset-0 h-full w-full object-cover" })) : (_jsx("div", { className: "bg-card absolute inset-0" })), _jsx("div", { className: "bg-background/30 absolute inset-0 flex items-center justify-center", children: _jsx("div", { className: "bg-primary/90 flex h-14 w-14 items-center justify-center rounded-full shadow-sm", children: _jsx(Play, { size: 24, className: "text-primary-foreground" }) }) })] }) }));
|
|
12
|
-
}
|
|
13
|
-
if (variant === 'lightbox') {
|
|
14
|
-
return (_jsx("div", { className: "border-border rounded-md border p-4", children: _jsxs("div", { className: "mx-auto max-w-sm", children: [content, _jsx("p", { className: "text-muted-foreground mt-2 text-center text-xs", children: "Click to play in lightbox" })] }) }));
|
|
15
|
-
}
|
|
16
|
-
return _jsx("div", { className: "border-border rounded-md border p-4", children: content });
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=VideoPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/VideoPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGnC,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAqB;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA+B,CAAA;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAA2B,CAAA;IAE7C,MAAM,MAAM,GAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAC9E,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,EAAE,CAC7B,CAAA;IAED,MAAM,OAAO,GAAG,CACd,eAAK,SAAS,EAAC,4FAA4F,aACxG,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,6CAA6C,GAAG,CACpF,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,0BAA0B,GAAG,CAC7C,EACD,cAAK,SAAS,EAAC,+FAA+F,YAC5G,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,GAAG,GAClD,EACL,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,cAAK,SAAS,EAAC,2CAA2C,YACvD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,eAEE,SAAS,EAAC,sEAAsE,YAE/E,KAAK,IAHD,KAAK,CAIL,CACR,CAAC,GACE,CACP,IACG,CACP,CAAA;IAED,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,CACL,cAAK,SAAS,EAAC,iDAAiD,YAC9D,eAAK,SAAS,EAAC,wBAAwB,aACpC,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,6CAA6C,GAAG,CACpF,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,0BAA0B,GAAG,CAC7C,EACD,cAAK,SAAS,EAAC,oEAAoE,YACjF,cAAK,SAAS,EAAC,iFAAiF,YAC9F,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,GAAG,GAClD,GACF,IACF,GACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,CACL,cAAK,SAAS,EAAC,qCAAqC,YAClD,eAAK,SAAS,EAAC,kBAAkB,aAC9B,OAAO,EACR,YAAG,SAAS,EAAC,gDAAgD,0CAEzD,IACA,GACF,CACP,CAAA;IACH,CAAC;IAED,OAAO,cAAK,SAAS,EAAC,qCAAqC,YAAE,OAAO,GAAO,CAAA;AAC7E,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ComponentType } from 'react';
|
|
2
|
-
export interface BlockPreviewProps {
|
|
3
|
-
data: Record<string, unknown>;
|
|
4
|
-
variant?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const blockRenderers: Record<string, ComponentType<BlockPreviewProps>>;
|
|
7
|
-
export { FallbackPreview } from './FallbackPreview.js';
|
|
8
|
-
export type { FallbackPreviewProps } from './FallbackPreview.js';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAY1C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAW3E,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { HeroPreview } from './HeroPreview.js';
|
|
3
|
-
import { TextPreview } from './TextPreview.js';
|
|
4
|
-
import { ImagePreview } from './ImagePreview.js';
|
|
5
|
-
import { CardsPreview } from './CardsPreview.js';
|
|
6
|
-
import { CTAPreview } from './CTAPreview.js';
|
|
7
|
-
import { VideoPreview } from './VideoPreview.js';
|
|
8
|
-
import { GalleryPreview } from './GalleryPreview.js';
|
|
9
|
-
import { FAQPreview } from './FAQPreview.js';
|
|
10
|
-
import { FormPreview } from './FormPreview.js';
|
|
11
|
-
import { CodePreview } from './CodePreview.js';
|
|
12
|
-
export const blockRenderers = {
|
|
13
|
-
hero: HeroPreview,
|
|
14
|
-
text: TextPreview,
|
|
15
|
-
image: ImagePreview,
|
|
16
|
-
cards: CardsPreview,
|
|
17
|
-
cta: CTAPreview,
|
|
18
|
-
video: VideoPreview,
|
|
19
|
-
gallery: GalleryPreview,
|
|
20
|
-
faq: FAQPreview,
|
|
21
|
-
form: FormPreview,
|
|
22
|
-
code: CodePreview,
|
|
23
|
-
};
|
|
24
|
-
export { FallbackPreview } from './FallbackPreview.js';
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAGZ,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAO9C,MAAM,CAAC,MAAM,cAAc,GAAqD;IAC9E,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,cAAc;IACvB,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;CAClB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { BlockNode } from '@prenta/core';
|
|
2
|
-
export interface BlockRendererProps {
|
|
3
|
-
node: BlockNode;
|
|
4
|
-
selectedNodeId: string | null;
|
|
5
|
-
onSelectNode: (id: string | null) => void;
|
|
6
|
-
}
|
|
7
|
-
export declare function BlockRenderer({ node, selectedNodeId, onSelectNode }: BlockRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
//# sourceMappingURL=BlockRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,cAAc,CAAA;AAG7C,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,20 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import { blockRenderers, FallbackPreview } from '../block-renderers/index.js';
|
|
5
|
-
function getBlockLabel(blockType) {
|
|
6
|
-
return blockType.charAt(0).toUpperCase() + blockType.slice(1);
|
|
7
|
-
}
|
|
8
|
-
export function BlockRenderer({ node, selectedNodeId, onSelectNode }) {
|
|
9
|
-
const [hovered, setHovered] = useState(false);
|
|
10
|
-
const isSelected = selectedNodeId === node.id;
|
|
11
|
-
const blockType = node.settings.blockType;
|
|
12
|
-
const label = getBlockLabel(blockType);
|
|
13
|
-
const Preview = blockRenderers[blockType];
|
|
14
|
-
const handleClick = (e) => {
|
|
15
|
-
e.stopPropagation();
|
|
16
|
-
onSelectNode(node.id);
|
|
17
|
-
};
|
|
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 })) })] }));
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=BlockRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { PageNode } from '@prenta/core';
|
|
2
|
-
export interface BuilderCanvasProps {
|
|
3
|
-
tree: PageNode;
|
|
4
|
-
selectedNodeId: string | null;
|
|
5
|
-
showGridOverlay: boolean;
|
|
6
|
-
deviceMode: 'desktop' | 'tablet' | 'mobile';
|
|
7
|
-
onSelectNode: (id: string | null) => void;
|
|
8
|
-
}
|
|
9
|
-
export declare function BuilderCanvas({ tree, selectedNodeId, showGridOverlay, deviceMode, onSelectNode, }: BuilderCanvasProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
//# sourceMappingURL=BuilderCanvas.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderCanvas.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BuilderCanvas.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1C;AAQD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,cAAc,EACd,eAAe,EACf,UAAU,EACV,YAAY,GACb,EAAE,kBAAkB,2CAyCpB"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { LayoutGrid } from 'lucide-react';
|
|
4
|
-
import { SectionRenderer } from './SectionRenderer.js';
|
|
5
|
-
const DEVICE_CLASSES = {
|
|
6
|
-
desktop: 'w-full',
|
|
7
|
-
tablet: 'max-w-[768px] mx-auto',
|
|
8
|
-
mobile: 'max-w-[375px] mx-auto',
|
|
9
|
-
};
|
|
10
|
-
export function BuilderCanvas({ tree, selectedNodeId, showGridOverlay, deviceMode, onSelectNode, }) {
|
|
11
|
-
const handleCanvasClick = (e) => {
|
|
12
|
-
if (e.target === e.currentTarget) {
|
|
13
|
-
onSelectNode(null);
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
return (_jsxs("div", { className: "bg-muted relative flex-1 overflow-auto p-6", onClick: handleCanvasClick, children: [showGridOverlay && _jsx(GridOverlay, { deviceMode: deviceMode }), _jsxs("div", { className: `bg-background relative min-h-full shadow-sm ${DEVICE_CLASSES[deviceMode]}`, onClick: handleCanvasClick, children: [tree.children.map((child) => {
|
|
17
|
-
if (child.type === 'section') {
|
|
18
|
-
return (_jsx(SectionRenderer, { node: child, selectedNodeId: selectedNodeId, onSelectNode: onSelectNode }, child.id));
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}), tree.children.length === 0 && (_jsxs("div", { className: "flex min-h-[400px] flex-col items-center justify-center text-center", children: [_jsx(LayoutGrid, { size: 32, className: "text-muted-foreground mb-3" }), _jsx("p", { className: "text-foreground mb-1 text-sm font-medium", children: "No sections yet" }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Click \"Add Section\" below to start building your page" })] }))] })] }));
|
|
22
|
-
}
|
|
23
|
-
function GridOverlay({ deviceMode }) {
|
|
24
|
-
return (_jsx("div", { className: `pointer-events-none absolute inset-0 z-50 p-6 ${deviceMode !== 'desktop' ? 'flex justify-center' : ''}`, "aria-hidden": "true", children: _jsx("div", { className: `grid h-full grid-cols-12 gap-4 opacity-[0.08] ${DEVICE_CLASSES[deviceMode]}`, children: Array.from({ length: 12 }).map((_, i) => (_jsx("div", { className: "bg-primary h-full rounded-sm" }, i))) }) }));
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=BuilderCanvas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderCanvas.js","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BuilderCanvas.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAUtD,MAAM,cAAc,GAAqD;IACvE,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,uBAAuB;CAChC,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,cAAc,EACd,eAAe,EACf,UAAU,EACV,YAAY,GACO;IACnB,MAAM,iBAAiB,GAAG,CAAC,CAAmB,EAAE,EAAE;QAChD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAC,4CAA4C,EAAC,OAAO,EAAE,iBAAiB,aACnF,eAAe,IAAI,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,EAE3D,eACE,SAAS,EAAE,+CAA+C,cAAc,CAAC,UAAU,CAAC,EAAE,EACtF,OAAO,EAAE,iBAAiB,aAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC7B,OAAO,CACL,KAAC,eAAe,IAEd,IAAI,EAAE,KAAK,EACX,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,IAHrB,KAAK,CAAC,EAAE,CAIb,CACH,CAAA;wBACH,CAAC;wBACD,OAAO,IAAI,CAAA;oBACb,CAAC,CAAC,EAED,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAC7B,eAAK,SAAS,EAAC,qEAAqE,aAClF,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,4BAA4B,GAAG,EAC/D,YAAG,SAAS,EAAC,0CAA0C,gCAAoB,EAC3E,YAAG,SAAS,EAAC,+BAA+B,wEAExC,IACA,CACP,IACG,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,UAAU,EAAoD;IACnF,OAAO,CACL,cACE,SAAS,EAAE,iDACT,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EACrD,EAAE,iBACU,MAAM,YAElB,cACE,SAAS,EAAE,iDAAiD,cAAc,CAAC,UAAU,CAAC,EAAE,YAEvF,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,cAAa,SAAS,EAAC,8BAA8B,IAA3C,CAAC,CAA6C,CACzD,CAAC,GACE,GACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ColumnNode } from '@prenta/core';
|
|
2
|
-
export interface ColumnRendererProps {
|
|
3
|
-
node: ColumnNode;
|
|
4
|
-
selectedNodeId: string | null;
|
|
5
|
-
onSelectNode: (id: string | null) => void;
|
|
6
|
-
}
|
|
7
|
-
export declare function ColumnRenderer({ node, selectedNodeId, onSelectNode }: ColumnRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
//# sourceMappingURL=ColumnRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnRenderer.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/ColumnRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1C;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,mBAAmB,2CAoEzF"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import { BlockRenderer } from './BlockRenderer.js';
|
|
5
|
-
import { ContainerRenderer } from './ContainerRenderer.js';
|
|
6
|
-
export function ColumnRenderer({ node, selectedNodeId, onSelectNode }) {
|
|
7
|
-
const [hovered, setHovered] = useState(false);
|
|
8
|
-
const isSelected = selectedNodeId === node.id;
|
|
9
|
-
const width = node.settings.width;
|
|
10
|
-
const isEmpty = node.children.length === 0;
|
|
11
|
-
const handleClick = (e) => {
|
|
12
|
-
e.stopPropagation();
|
|
13
|
-
onSelectNode(node.id);
|
|
14
|
-
};
|
|
15
|
-
return (_jsxs("div", { "data-node-id": node.id, className: `relative transition-shadow ${isSelected ? 'ring-primary ring-2 ring-offset-2' : hovered ? 'ring-primary/50 ring-1' : ''}`, style: {
|
|
16
|
-
gridColumn: `span ${width}`,
|
|
17
|
-
padding: node.settings.padding,
|
|
18
|
-
background: node.settings.background,
|
|
19
|
-
}, onClick: handleClick, onMouseEnter: (e) => {
|
|
20
|
-
e.stopPropagation();
|
|
21
|
-
setHovered(true);
|
|
22
|
-
}, onMouseLeave: () => setHovered(false), children: [(hovered || isSelected) && (_jsxs("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: ["Col ", width] })), isEmpty ? (_jsx("div", { className: "border-border text-muted-foreground flex min-h-[64px] items-center justify-center rounded-md border-2 border-dashed text-sm", children: "Empty column" })) : (_jsx("div", { className: "flex flex-col gap-2", children: node.children.map((child) => {
|
|
23
|
-
if (child.type === 'block') {
|
|
24
|
-
return (_jsx(BlockRenderer, { node: child, selectedNodeId: selectedNodeId, onSelectNode: onSelectNode }, child.id));
|
|
25
|
-
}
|
|
26
|
-
if (child.type === 'container') {
|
|
27
|
-
return (_jsx(ContainerRenderer, { node: child, selectedNodeId: selectedNodeId, onSelectNode: onSelectNode }, child.id));
|
|
28
|
-
}
|
|
29
|
-
return null;
|
|
30
|
-
}) }))] }));
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=ColumnRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnRenderer.js","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/ColumnRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAQ1D,MAAM,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAuB;IACxF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,cAAc,KAAK,IAAI,CAAC,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,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,8BACT,UAAU,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAC1F,EAAE,EACF,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ,KAAK,EAAE;YAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAC9B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;SACrC,EACD,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,UAAU,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC,EACD,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,aAEpC,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAC1B,gBAAM,SAAS,EAAC,2GAA2G,qBACpH,KAAK,IACL,CACR,EAEA,OAAO,CAAC,CAAC,CAAC,CACT,cAAK,SAAS,EAAC,6HAA6H,6BAEtI,CACP,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,qBAAqB,YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC3B,OAAO,CACL,KAAC,aAAa,IAEZ,IAAI,EAAE,KAAK,EACX,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,IAHrB,KAAK,CAAC,EAAE,CAIb,CACH,CAAA;oBACH,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC/B,OAAO,CACL,KAAC,iBAAiB,IAEhB,IAAI,EAAE,KAAK,EACX,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,IAHrB,KAAK,CAAC,EAAE,CAIb,CACH,CAAA;oBACH,CAAC;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,GACE,CACP,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ContainerNode } from '@prenta/core';
|
|
2
|
-
export interface ContainerRendererProps {
|
|
3
|
-
node: ContainerNode;
|
|
4
|
-
selectedNodeId: string | null;
|
|
5
|
-
onSelectNode: (id: string | null) => void;
|
|
6
|
-
}
|
|
7
|
-
export declare function ContainerRenderer({ node, selectedNodeId, onSelectNode }: ContainerRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
//# sourceMappingURL=ContainerRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerRenderer.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/ContainerRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAA;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1C;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,sBAAsB,2CAsD/F"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import { RowRenderer } from './RowRenderer.js';
|
|
5
|
-
export function ContainerRenderer({ node, selectedNodeId, onSelectNode }) {
|
|
6
|
-
const [hovered, setHovered] = useState(false);
|
|
7
|
-
const isSelected = selectedNodeId === node.id;
|
|
8
|
-
const maxWidth = node.settings.maxWidth ?? '1200px';
|
|
9
|
-
const alignment = node.settings.alignment ?? 'center';
|
|
10
|
-
const padding = node.settings.padding;
|
|
11
|
-
const marginMap = {
|
|
12
|
-
left: '0 auto 0 0',
|
|
13
|
-
center: '0 auto',
|
|
14
|
-
right: '0 0 0 auto',
|
|
15
|
-
};
|
|
16
|
-
const handleClick = (e) => {
|
|
17
|
-
e.stopPropagation();
|
|
18
|
-
onSelectNode(node.id);
|
|
19
|
-
};
|
|
20
|
-
return (_jsxs("div", { "data-node-id": node.id, className: `relative transition-shadow ${isSelected ? 'ring-primary ring-2 ring-offset-2' : hovered ? 'ring-primary/50 ring-1' : ''}`, style: {
|
|
21
|
-
maxWidth,
|
|
22
|
-
margin: marginMap[alignment] ?? '0 auto',
|
|
23
|
-
padding,
|
|
24
|
-
}, onClick: handleClick, onMouseEnter: (e) => {
|
|
25
|
-
e.stopPropagation();
|
|
26
|
-
setHovered(true);
|
|
27
|
-
}, 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: "Container" })), _jsx("div", { className: "flex flex-col gap-4", children: node.children.map((row) => (_jsx(RowRenderer, { node: row, selectedNodeId: selectedNodeId, onSelectNode: onSelectNode }, row.id))) })] }));
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=ContainerRenderer.js.map
|