@prenta/admin 0.98.1 → 1.1.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 +22 -84
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/components/breakpoint-controls.render.test.js +4 -4
- package/dist/__tests__/components/breakpoint-controls.render.test.js.map +1 -1
- package/dist/__tests__/components/seo-score-bands.test.js +0 -3
- 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/open-public-site-tab.test.d.ts +2 -0
- package/dist/__tests__/lib/open-public-site-tab.test.d.ts.map +1 -0
- package/dist/__tests__/lib/open-public-site-tab.test.js +64 -0
- package/dist/__tests__/lib/open-public-site-tab.test.js.map +1 -0
- 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__/lib/view-site-chrome.test.d.ts +2 -0
- package/dist/__tests__/lib/view-site-chrome.test.d.ts.map +1 -0
- package/dist/__tests__/lib/view-site-chrome.test.js +59 -0
- package/dist/__tests__/lib/view-site-chrome.test.js.map +1 -0
- package/dist/__tests__/router/admin-routes.test.js +4 -0
- package/dist/__tests__/router/admin-routes.test.js.map +1 -1
- package/dist/__tests__/views/canvas-surface-shared.test.js +0 -16
- package/dist/__tests__/views/canvas-surface-shared.test.js.map +1 -1
- package/dist/__tests__/views/editor-top-bar.render.test.js +44 -22
- package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
- package/dist/__tests__/views/page-section-editor.test.js +30 -10
- 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/__tests__/views/post-section-editor.test.js +23 -0
- package/dist/__tests__/views/post-section-editor.test.js.map +1 -1
- package/dist/components/BreakpointPicker.d.ts +3 -2
- package/dist/components/BreakpointPicker.d.ts.map +1 -1
- package/dist/components/BreakpointPicker.js +5 -3
- package/dist/components/BreakpointPicker.js.map +1 -1
- package/dist/components/CanvasEditTip.js +1 -1
- package/dist/components/CanvasEditTip.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/editor-preview.d.ts +4 -1
- package/dist/lib/editor-preview.d.ts.map +1 -1
- package/dist/lib/editor-preview.js +4 -1
- package/dist/lib/editor-preview.js.map +1 -1
- package/dist/lib/open-public-site-tab.d.ts +14 -0
- package/dist/lib/open-public-site-tab.d.ts.map +1 -0
- package/dist/lib/open-public-site-tab.js +46 -0
- package/dist/lib/open-public-site-tab.js.map +1 -0
- 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/lib/view-site-chrome.d.ts +16 -0
- package/dist/lib/view-site-chrome.d.ts.map +1 -0
- package/dist/lib/view-site-chrome.js +15 -0
- package/dist/lib/view-site-chrome.js.map +1 -0
- package/dist/prenta-admin.css +1 -1
- package/dist/router/admin-routes.d.ts.map +1 -1
- package/dist/router/admin-routes.js +0 -2
- package/dist/router/admin-routes.js.map +1 -1
- package/dist/views/PageEditor.d.ts +2 -2
- package/dist/views/PageEditor.js +2 -2
- package/dist/views/page-editor/EditorCanvas.d.ts +1 -2
- package/dist/views/page-editor/EditorCanvas.d.ts.map +1 -1
- package/dist/views/page-editor/EditorCanvas.js +2 -2
- package/dist/views/page-editor/EditorCanvas.js.map +1 -1
- package/dist/views/page-editor/EditorTopBar.d.ts +13 -17
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +19 -21
- package/dist/views/page-editor/EditorTopBar.js.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.d.ts +1 -7
- package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.js +38 -110
- package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
- package/dist/views/page-editor/StructureNotice.d.ts +2 -5
- package/dist/views/page-editor/StructureNotice.d.ts.map +1 -1
- package/dist/views/page-editor/StructureNotice.js +6 -10
- package/dist/views/page-editor/StructureNotice.js.map +1 -1
- package/dist/views/post-editor/PostEditorCanvas.d.ts +1 -3
- package/dist/views/post-editor/PostEditorCanvas.d.ts.map +1 -1
- package/dist/views/post-editor/PostEditorCanvas.js +3 -3
- package/dist/views/post-editor/PostEditorCanvas.js.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.d.ts +1 -15
- package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.js +30 -88
- package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
- package/package.json +3 -3
- package/src/AdminRoot.tsx +18 -138
- package/src/__tests__/components/breakpoint-controls.render.test.tsx +6 -4
- package/src/__tests__/components/seo-score-bands.test.ts +0 -3
- 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/open-public-site-tab.test.ts +74 -0
- package/src/__tests__/lib/page-editor-service-api.test.ts +27 -25
- package/src/__tests__/lib/view-site-chrome.test.ts +65 -0
- package/src/__tests__/router/admin-routes.test.ts +5 -0
- package/src/__tests__/views/canvas-surface-shared.test.ts +0 -19
- package/src/__tests__/views/editor-top-bar.render.test.tsx +85 -22
- package/src/__tests__/views/page-section-editor.test.tsx +42 -10
- package/src/__tests__/views/page-tab.render.test.tsx +0 -1
- package/src/__tests__/views/post-section-editor.test.tsx +35 -0
- package/src/components/BreakpointPicker.tsx +6 -3
- package/src/components/CanvasEditTip.tsx +2 -2
- package/src/index.ts +1 -11
- package/src/layout/Sidebar.tsx +6 -41
- package/src/lib/editor-preview.ts +4 -1
- package/src/lib/open-public-site-tab.ts +57 -0
- package/src/lib/page-editor-service.ts +9 -16
- package/src/lib/view-site-chrome.ts +34 -0
- package/src/router/admin-routes.ts +0 -2
- package/src/styles/theme.css +4 -4
- package/src/views/PageEditor.tsx +2 -2
- package/src/views/page-editor/EditorCanvas.tsx +1 -6
- package/src/views/page-editor/EditorTopBar.tsx +81 -82
- package/src/views/page-editor/PageSectionEditor.tsx +85 -194
- package/src/views/page-editor/StructureNotice.tsx +7 -42
- package/src/views/post-editor/PostEditorCanvas.tsx +2 -8
- package/src/views/post-editor/PostSectionEditor.tsx +66 -138
- 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-seo-panel.render.test.d.ts +0 -2
- package/dist/__tests__/views/page-builder-seo-panel.render.test.d.ts.map +0 -1
- package/dist/__tests__/views/page-builder-seo-panel.render.test.js +0 -65
- package/dist/__tests__/views/page-builder-seo-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/__tests__/views/use-site-preview.render.test.d.ts +0 -2
- package/dist/__tests__/views/use-site-preview.render.test.d.ts.map +0 -1
- package/dist/__tests__/views/use-site-preview.render.test.js +0 -120
- package/dist/__tests__/views/use-site-preview.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 -9
- package/dist/views/page-builder/SEOPanel.d.ts.map +0 -1
- package/dist/views/page-builder/SEOPanel.js +0 -38
- 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/dist/views/page-editor/PagePreview.d.ts +0 -13
- package/dist/views/page-editor/PagePreview.d.ts.map +0 -1
- package/dist/views/page-editor/PagePreview.js +0 -46
- package/dist/views/page-editor/PagePreview.js.map +0 -1
- package/dist/views/page-editor/SitePreviewFrame.d.ts +0 -43
- package/dist/views/page-editor/SitePreviewFrame.d.ts.map +0 -1
- package/dist/views/page-editor/SitePreviewFrame.js +0 -165
- package/dist/views/page-editor/SitePreviewFrame.js.map +0 -1
- package/dist/views/page-editor/useSitePreview.d.ts +0 -47
- package/dist/views/page-editor/useSitePreview.d.ts.map +0 -1
- package/dist/views/page-editor/useSitePreview.js +0 -96
- package/dist/views/page-editor/useSitePreview.js.map +0 -1
- package/dist/views/post-editor/PostPreview.d.ts +0 -14
- package/dist/views/post-editor/PostPreview.d.ts.map +0 -1
- package/dist/views/post-editor/PostPreview.js +0 -63
- package/dist/views/post-editor/PostPreview.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-seo-panel.render.test.tsx +0 -77
- 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/__tests__/views/use-site-preview.render.test.tsx +0 -164
- 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 -144
- 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 -222
- 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
- package/src/views/page-editor/PagePreview.tsx +0 -105
- package/src/views/page-editor/SitePreviewFrame.tsx +0 -250
- package/src/views/page-editor/useSitePreview.ts +0 -158
- package/src/views/post-editor/PostPreview.tsx +0 -125
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PageTemplates.js","sourceRoot":"","sources":["../../../src/views/page-builder/PageTemplates.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { FieldDefinition } from '@prenta/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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipField.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/RelationshipField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAYnD,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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipField.js","sourceRoot":"","sources":["../../../src/views/page-builder/RelationshipField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { PageNode } from '@prenta/core';
|
|
2
|
-
import type { PageSettings } from '../../hooks/useBuilderState.js';
|
|
3
|
-
export interface BuilderSEOPanelProps {
|
|
4
|
-
tree: PageNode;
|
|
5
|
-
pageSettings: PageSettings;
|
|
6
|
-
onPageSettingsChange: (settings: Partial<PageSettings>) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare function BuilderSEOPanel({ tree, pageSettings, onPageSettingsChange, }: BuilderSEOPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
//# sourceMappingURL=SEOPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SEOPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/SEOPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAK5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAA;CAChE;AAkJD,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,oBAAoB,GACrB,EAAE,oBAAoB,2CAyDtB"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useMemo, useState } from 'react';
|
|
4
|
-
import { auditPage } from '@prenta/core/seo/page-audit';
|
|
5
|
-
import { ChevronDown, ChevronUp, Eye, FileText, Globe, Search } from 'lucide-react';
|
|
6
|
-
import { PageAuditPanel } from '../../components/seo/PageAuditPanel.js';
|
|
7
|
-
import { buildPageAuditInputFromBuilder } from '../../lib/page-audit-input.js';
|
|
8
|
-
function CollapsibleSection({ title, icon: Icon, expanded, onToggle, children, }) {
|
|
9
|
-
return (_jsxs("div", { className: "border-border border-b last:border-b-0", children: [_jsxs("button", { type: "button", className: "hover:bg-muted/50 flex w-full items-center justify-between px-4 py-3 text-left transition-colors", onClick: onToggle, "aria-expanded": expanded, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Icon, { size: 14, className: "text-muted-foreground" }), _jsx("span", { className: "text-foreground text-xs font-medium", children: title })] }), expanded ? (_jsx(ChevronUp, { size: 14, className: "text-muted-foreground" })) : (_jsx(ChevronDown, { size: 14, className: "text-muted-foreground" }))] }), expanded && _jsx("div", { className: "px-4 pb-4", children: children })] }));
|
|
10
|
-
}
|
|
11
|
-
function BasicSEOFields({ pageSettings, onPageSettingsChange, }) {
|
|
12
|
-
const metaTitleLength = (pageSettings.metaTitle || '').length;
|
|
13
|
-
const metaDescLength = (pageSettings.metaDescription || '').length;
|
|
14
|
-
return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("label", { htmlFor: "builder-meta-title", className: "text-foreground text-xs font-medium", children: "Meta Title" }), _jsxs("span", { className: `text-xs ${metaTitleLength > 60 ? 'text-destructive' : metaTitleLength > 0 ? 'text-muted-foreground' : 'text-muted-foreground'}`, children: [metaTitleLength, "/60"] })] }), _jsx("input", { id: "builder-meta-title", type: "text", value: pageSettings.metaTitle || '', onChange: (e) => onPageSettingsChange({ metaTitle: e.target.value }), placeholder: "Page title for search engines", className: "bg-input-background border-border text-foreground placeholder:text-muted-foreground focus:ring-primary w-full rounded-md border px-3 py-2 text-sm focus:ring-1 focus:outline-none" })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("label", { className: "text-foreground text-xs font-medium", children: "Meta Description" }), _jsxs("span", { className: `text-xs ${metaDescLength > 160 ? 'text-destructive' : metaDescLength > 0 ? 'text-muted-foreground' : 'text-muted-foreground'}`, children: [metaDescLength, "/160"] })] }), _jsx("textarea", { value: pageSettings.metaDescription || '', onChange: (e) => onPageSettingsChange({ metaDescription: e.target.value }), placeholder: "Brief description of the page content", rows: 3, className: "bg-input-background border-border text-foreground placeholder:text-muted-foreground focus:ring-primary w-full resize-none rounded-md border px-3 py-2 text-sm focus:ring-1 focus:outline-none" })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("label", { className: "text-foreground text-xs font-medium", children: "Focus Keyphrase" }), _jsx("input", { type: "text", value: pageSettings.focusKeyphrase || '', onChange: (e) => onPageSettingsChange({ focusKeyphrase: e.target.value }), placeholder: "Primary keyword or phrase", className: "bg-input-background border-border text-foreground placeholder:text-muted-foreground focus:ring-primary w-full rounded-md border px-3 py-2 text-sm focus:ring-1 focus:outline-none" })] })] }));
|
|
15
|
-
}
|
|
16
|
-
function SearchPreview({ pageSettings }) {
|
|
17
|
-
const title = pageSettings.metaTitle || pageSettings.title || 'Untitled Page';
|
|
18
|
-
const description = pageSettings.metaDescription || 'No description set';
|
|
19
|
-
const slug = pageSettings.slug || 'page';
|
|
20
|
-
return (_jsxs("div", { className: "bg-background border-border rounded-md border p-4", children: [_jsx("p", { className: "text-muted-foreground mb-2 text-xs", children: "Google Search Preview" }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-primary truncate text-sm", children: title }), _jsxs("p", { className: "text-success truncate text-xs", children: ["example.com/", slug] }), _jsx("p", { className: "text-muted-foreground line-clamp-2 text-xs", children: description })] })] }));
|
|
21
|
-
}
|
|
22
|
-
function SocialPreview({ pageSettings }) {
|
|
23
|
-
const title = pageSettings.metaTitle || pageSettings.title || 'Untitled Page';
|
|
24
|
-
const description = pageSettings.metaDescription || 'No description set';
|
|
25
|
-
return (_jsxs("div", { className: "bg-background border-border overflow-hidden rounded-md border", children: [_jsx("p", { className: "text-muted-foreground px-4 pt-3 pb-2 text-xs", children: "Open Graph Preview" }), pageSettings.ogImage && (_jsx("div", { className: "bg-muted flex h-32 w-full items-center justify-center overflow-hidden", children: _jsx("img", { src: pageSettings.ogImage, alt: "OG preview", className: "h-full w-full object-cover" }) })), !pageSettings.ogImage && (_jsx("div", { className: "bg-muted flex h-32 w-full items-center justify-center", children: _jsx(Globe, { size: 24, className: "text-muted-foreground" }) })), _jsxs("div", { className: "flex flex-col gap-1 p-3", children: [_jsx("p", { className: "text-muted-foreground text-xs uppercase", children: "example.com" }), _jsx("p", { className: "text-foreground truncate text-sm font-medium", children: title }), _jsx("p", { className: "text-muted-foreground line-clamp-2 text-xs", children: description })] })] }));
|
|
26
|
-
}
|
|
27
|
-
export function BuilderSEOPanel({ tree, pageSettings, onPageSettingsChange, }) {
|
|
28
|
-
const audit = useMemo(() => auditPage(buildPageAuditInputFromBuilder({ tree, pageSettings })), [tree, pageSettings]);
|
|
29
|
-
const [expandedSections, setExpandedSections] = useState(['basicSeo']);
|
|
30
|
-
const toggleSection = (section) => {
|
|
31
|
-
setExpandedSections((prev) => prev.includes(section) ? prev.filter((s) => s !== section) : [...prev, section]);
|
|
32
|
-
};
|
|
33
|
-
if (!tree.children || tree.children.length === 0) {
|
|
34
|
-
return (_jsxs("div", { className: "flex min-h-[200px] flex-col items-center justify-center p-6 text-center", children: [_jsx(Search, { size: 32, className: "text-muted-foreground mb-3" }), _jsx("p", { className: "text-foreground mb-1 text-sm font-medium", children: "SEO Analysis" }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Add content to your page to see SEO analysis" })] }));
|
|
35
|
-
}
|
|
36
|
-
return (_jsxs("div", { className: "flex flex-col", children: [_jsx(PageAuditPanel, { audit: audit }), _jsx(CollapsibleSection, { title: "Basic SEO", icon: FileText, expanded: expandedSections.includes('basicSeo'), onToggle: () => toggleSection('basicSeo'), children: _jsx(BasicSEOFields, { pageSettings: pageSettings, onPageSettingsChange: onPageSettingsChange }) }), _jsx(CollapsibleSection, { title: "Search Preview", icon: Eye, expanded: expandedSections.includes('searchPreview'), onToggle: () => toggleSection('searchPreview'), children: _jsx(SearchPreview, { pageSettings: pageSettings }) }), _jsx(CollapsibleSection, { title: "Social Preview", icon: Globe, expanded: expandedSections.includes('socialPreview'), onToggle: () => toggleSection('socialPreview'), children: _jsx(SocialPreview, { pageSettings: pageSettings }) })] }));
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=SEOPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SEOPanel.js","sourceRoot":"","sources":["../../../src/views/page-builder/SEOPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SavedSections.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/SavedSections.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,GAAG,CAAA;CACZ;AA2CD,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,kBAAkB,2CA6QvE"}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
4
|
-
import { Plus, ArrowLeft, Edit, Trash2, Copy, Layers, Loader2, AlertTriangle, Calendar, Hash, } from 'lucide-react';
|
|
5
|
-
import { toast } from 'sonner';
|
|
6
|
-
import { cmsApi } from '../../lib/api.js';
|
|
7
|
-
import { createSection, createContainer, createRow, createColumn } from '@prenta/core/page-builder';
|
|
8
|
-
const CATEGORIES = ['header', 'footer', 'content', 'sidebar'];
|
|
9
|
-
const CATEGORY_COLORS = {
|
|
10
|
-
header: 'bg-primary/10 text-primary',
|
|
11
|
-
footer: 'bg-accent text-foreground',
|
|
12
|
-
content: 'bg-muted text-muted-foreground',
|
|
13
|
-
sidebar: 'bg-primary/10 text-primary',
|
|
14
|
-
};
|
|
15
|
-
function formatDate(dateStr) {
|
|
16
|
-
return new Date(dateStr).toLocaleDateString(undefined, {
|
|
17
|
-
month: 'short',
|
|
18
|
-
day: 'numeric',
|
|
19
|
-
year: 'numeric',
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
function createEmptySectionTree() {
|
|
23
|
-
const col = createColumn(100);
|
|
24
|
-
const row = createRow([col]);
|
|
25
|
-
const container = createContainer();
|
|
26
|
-
container.children = [row];
|
|
27
|
-
const section = createSection();
|
|
28
|
-
section.children = [container];
|
|
29
|
-
return section;
|
|
30
|
-
}
|
|
31
|
-
export function SavedSections({ onNavigate, config }) {
|
|
32
|
-
const [sections, setSections] = useState([]);
|
|
33
|
-
const [loading, setLoading] = useState(true);
|
|
34
|
-
const [error, setError] = useState(null);
|
|
35
|
-
const [viewState, setViewState] = useState({ mode: 'list' });
|
|
36
|
-
const [activeCategory, setActiveCategory] = useState('all');
|
|
37
|
-
const [deleteConfirmId, setDeleteConfirmId] = useState(null);
|
|
38
|
-
const [saving, setSaving] = useState(false);
|
|
39
|
-
const fetchSections = useCallback(async () => {
|
|
40
|
-
setLoading(true);
|
|
41
|
-
setError(null);
|
|
42
|
-
const res = await cmsApi('/saved-sections');
|
|
43
|
-
if (res.error) {
|
|
44
|
-
setError(res.error);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
setSections(res.data ?? []);
|
|
48
|
-
}
|
|
49
|
-
setLoading(false);
|
|
50
|
-
}, []);
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
fetchSections();
|
|
53
|
-
}, [fetchSections]);
|
|
54
|
-
const filteredSections = activeCategory === 'all' ? sections : sections.filter((s) => s.category === activeCategory);
|
|
55
|
-
async function handleDelete(id) {
|
|
56
|
-
const res = await cmsApi(`/saved-sections/${id}`, { method: 'DELETE' });
|
|
57
|
-
if (res.error) {
|
|
58
|
-
toast.error(res.error);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
toast.success('Section deleted');
|
|
62
|
-
setSections((prev) => prev.filter((s) => s.id !== id));
|
|
63
|
-
}
|
|
64
|
-
setDeleteConfirmId(null);
|
|
65
|
-
}
|
|
66
|
-
async function handleDuplicate(section) {
|
|
67
|
-
const res = await cmsApi('/saved-sections', {
|
|
68
|
-
method: 'POST',
|
|
69
|
-
body: JSON.stringify({
|
|
70
|
-
name: `${section.name} (Copy)`,
|
|
71
|
-
description: section.description,
|
|
72
|
-
category: section.category,
|
|
73
|
-
tree: section.tree,
|
|
74
|
-
}),
|
|
75
|
-
});
|
|
76
|
-
if (res.error) {
|
|
77
|
-
toast.error(res.error);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
toast.success('Section duplicated');
|
|
81
|
-
fetchSections();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
if (viewState.mode === 'create' || viewState.mode === 'edit') {
|
|
85
|
-
return (_jsx(SectionForm, { initial: viewState.mode === 'edit' ? viewState.section : undefined, saving: saving, onSave: async (data) => {
|
|
86
|
-
setSaving(true);
|
|
87
|
-
if (viewState.mode === 'create') {
|
|
88
|
-
const res = await cmsApi('/saved-sections', {
|
|
89
|
-
method: 'POST',
|
|
90
|
-
body: JSON.stringify({ ...data, tree: createEmptySectionTree() }),
|
|
91
|
-
});
|
|
92
|
-
setSaving(false);
|
|
93
|
-
if (res.error) {
|
|
94
|
-
toast.error(res.error);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
toast.success('Section created');
|
|
98
|
-
setViewState({ mode: 'list' });
|
|
99
|
-
fetchSections();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
const res = await cmsApi(`/saved-sections/${viewState.section.id}`, {
|
|
104
|
-
method: 'PUT',
|
|
105
|
-
body: JSON.stringify(data),
|
|
106
|
-
});
|
|
107
|
-
setSaving(false);
|
|
108
|
-
if (res.error) {
|
|
109
|
-
toast.error(res.error);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
toast.success('Section updated');
|
|
113
|
-
setViewState({ mode: 'list' });
|
|
114
|
-
fetchSections();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}, onCancel: () => setViewState({ mode: 'list' }) }));
|
|
118
|
-
}
|
|
119
|
-
return (_jsxs("div", { className: "p-4 pr-8", children: [_jsxs("div", { className: "mb-6 flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-foreground", children: "Saved Sections" }), _jsx("p", { className: "text-muted-foreground mt-1 text-sm", children: "Reusable sections for the page builder" })] }), _jsxs("button", { type: "button", onClick: () => setViewState({ mode: 'create' }), className: "bg-primary text-primary-foreground hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors", children: [_jsx(Plus, { size: 16 }), "Create Section"] })] }), _jsxs("div", { className: "border-border mb-4 flex items-center gap-1 border-b", children: [_jsx(CategoryTab, { label: "All", active: activeCategory === 'all', onClick: () => setActiveCategory('all') }), CATEGORIES.map((cat) => (_jsx(CategoryTab, { label: cat.charAt(0).toUpperCase() + cat.slice(1), active: activeCategory === cat, onClick: () => setActiveCategory(cat) }, cat)))] }), loading && (_jsx("div", { className: "flex items-center justify-center py-16", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })), error && !loading && (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [_jsx(AlertTriangle, { size: 24, className: "text-destructive mb-2" }), _jsx("p", { className: "text-muted-foreground mb-3 text-sm", children: error }), _jsx("button", { type: "button", onClick: fetchSections, className: "text-foreground border-border hover:bg-accent rounded-md border px-3 py-1.5 text-sm font-medium transition-colors", children: "Retry" })] })), !loading && !error && filteredSections.length === 0 && (_jsxs("div", { className: "flex flex-col items-center justify-center py-16 text-center", children: [_jsx(Layers, { size: 32, className: "text-muted-foreground mb-3" }), _jsx("p", { className: "text-foreground mb-1 text-sm font-medium", children: "No saved sections" }), _jsx("p", { className: "text-muted-foreground mb-4 text-xs", children: activeCategory === 'all'
|
|
120
|
-
? 'Create your first reusable section to get started.'
|
|
121
|
-
: `No sections in the "${activeCategory}" category.` }), activeCategory === 'all' && (_jsxs("button", { type: "button", onClick: () => setViewState({ mode: 'create' }), className: "bg-primary text-primary-foreground hover:bg-primary/90 flex items-center gap-2 rounded-md px-3 py-1.5 text-sm font-medium transition-colors", children: [_jsx(Plus, { size: 14 }), "Create Section"] }))] })), !loading && !error && filteredSections.length > 0 && (_jsx("div", { className: "grid grid-cols-1 gap-3 lg:grid-cols-2", children: filteredSections.map((section) => (_jsxs("div", { className: "border-border bg-card hover:border-primary/50 rounded-lg border p-4 transition-colors", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "text-foreground truncate text-sm font-medium", children: section.name }), section.description && (_jsx("p", { className: "text-muted-foreground mt-0.5 line-clamp-2 text-xs", children: section.description }))] }), _jsx("span", { className: `shrink-0 rounded-full px-2 py-0.5 text-xs ${CATEGORY_COLORS[section.category] ?? 'bg-muted text-muted-foreground'}`, children: section.category })] }), _jsxs("div", { className: "text-muted-foreground mt-3 flex items-center gap-4 text-xs", children: [_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(Hash, { size: 12 }), section.usageCount, " use", section.usageCount !== 1 ? 's' : ''] }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(Calendar, { size: 12 }), formatDate(section.createdAt)] }), section.tree && (_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(Layers, { size: 12 }), JSON.stringify(section.tree).length > 1000 ? 'Complex' : 'Simple'] }))] }), _jsxs("div", { className: "border-border mt-3 flex items-center gap-1 border-t pt-3", children: [_jsxs("button", { type: "button", onClick: () => setViewState({ mode: 'edit', section }), className: "text-foreground hover:bg-accent flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors", "aria-label": `Edit ${section.name}`, children: [_jsx(Edit, { size: 13 }), "Edit"] }), _jsxs("button", { type: "button", onClick: () => handleDuplicate(section), className: "text-foreground hover:bg-accent flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors", "aria-label": `Duplicate ${section.name}`, children: [_jsx(Copy, { size: 13 }), "Duplicate"] }), deleteConfirmId === section.id ? (_jsxs("div", { className: "ml-auto flex items-center gap-1", children: [_jsx("span", { className: "text-destructive mr-1 text-xs", children: "Delete?" }), _jsx("button", { type: "button", onClick: () => handleDelete(section.id), className: "text-destructive-foreground bg-destructive hover:bg-destructive/90 rounded-md px-2 py-1 text-xs font-medium transition-colors", children: "Yes" }), _jsx("button", { type: "button", onClick: () => setDeleteConfirmId(null), className: "text-foreground border-border hover:bg-accent rounded-md border px-2 py-1 text-xs font-medium transition-colors", children: "No" })] })) : (_jsxs("button", { type: "button", onClick: () => setDeleteConfirmId(section.id), className: "text-destructive hover:bg-destructive/10 ml-auto flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors", "aria-label": `Delete ${section.name}`, children: [_jsx(Trash2, { size: 13 }), "Delete"] }))] })] }, section.id))) }))] }));
|
|
122
|
-
}
|
|
123
|
-
function CategoryTab({ label, active, onClick }) {
|
|
124
|
-
return (_jsx("button", { type: "button", onClick: onClick, className: `-mb-px border-b-2 px-3 py-2 text-sm transition-colors ${active
|
|
125
|
-
? 'border-primary text-foreground font-medium'
|
|
126
|
-
: 'text-muted-foreground hover:text-foreground border-transparent'}`, children: label }));
|
|
127
|
-
}
|
|
128
|
-
function SectionForm({ initial, saving, onSave, onCancel }) {
|
|
129
|
-
const [name, setName] = useState(initial?.name ?? '');
|
|
130
|
-
const [description, setDescription] = useState(initial?.description ?? '');
|
|
131
|
-
const [category, setCategory] = useState(initial?.category ?? 'content');
|
|
132
|
-
function handleSubmit(e) {
|
|
133
|
-
e.preventDefault();
|
|
134
|
-
if (!name.trim())
|
|
135
|
-
return;
|
|
136
|
-
onSave({ name: name.trim(), description: description.trim(), category });
|
|
137
|
-
}
|
|
138
|
-
const treeSize = initial?.tree ? JSON.stringify(initial.tree).length : null;
|
|
139
|
-
return (_jsxs("div", { className: "p-4 pr-8", children: [_jsxs("div", { className: "mb-6", children: [_jsxs("button", { type: "button", onClick: onCancel, className: "text-muted-foreground hover:text-foreground mb-3 flex items-center gap-1.5 text-sm transition-colors", "aria-label": "Back to saved sections", children: [_jsx(ArrowLeft, { size: 16 }), "Back"] }), _jsx("h1", { className: "text-foreground", children: initial ? `Edit: ${initial.name}` : 'Create Saved Section' })] }), _jsxs("form", { onSubmit: handleSubmit, className: "max-w-lg space-y-4", children: [_jsxs("div", { children: [_jsxs("label", { htmlFor: "section-name", className: "text-foreground mb-1 block text-sm font-medium", children: ["Name ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx("input", { id: "section-name", type: "text", value: name, onChange: (e) => setName(e.target.value), required: true, placeholder: "e.g. Hero Banner", className: "bg-background border-input focus:ring-ring w-full rounded-md border px-3 py-2 text-sm focus:ring-2 focus:outline-none" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "section-description", className: "text-foreground mb-1 block text-sm font-medium", children: "Description" }), _jsx("textarea", { id: "section-description", value: description, onChange: (e) => setDescription(e.target.value), placeholder: "Optional description of this section...", rows: 3, className: "bg-background border-input focus:ring-ring w-full resize-none rounded-md border px-3 py-2 text-sm focus:ring-2 focus:outline-none" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "section-category", className: "text-foreground mb-1 block text-sm font-medium", children: "Category" }), _jsx("select", { id: "section-category", value: category, onChange: (e) => setCategory(e.target.value), className: "bg-background border-input focus:ring-ring w-full rounded-md border px-3 py-2 text-sm focus:ring-2 focus:outline-none", children: CATEGORIES.map((cat) => (_jsx("option", { value: cat, children: cat.charAt(0).toUpperCase() + cat.slice(1) }, cat))) })] }), treeSize !== null && (_jsx("div", { className: "border-border bg-muted rounded-md border p-3", children: _jsxs("p", { className: "text-muted-foreground text-xs", children: ["Section tree editing is available in the page builder. Current tree size:", ' ', (treeSize / 1024).toFixed(1), " KB"] }) })), _jsxs("div", { className: "flex items-center gap-3 pt-2", children: [_jsxs("button", { type: "submit", disabled: saving || !name.trim(), className: "bg-primary text-primary-foreground hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [saving && _jsx(Loader2, { size: 14, className: "animate-spin" }), initial ? 'Save Changes' : 'Create Section'] }), _jsx("button", { type: "button", onClick: onCancel, disabled: saving, className: "text-foreground border-border hover:bg-accent rounded-lg border px-4 py-2 text-sm font-medium transition-colors disabled:opacity-50", children: "Cancel" })] })] })] }));
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=SavedSections.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SavedSections.js","sourceRoot":"","sources":["../../../src/views/page-builder/SavedSections.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EACL,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,aAAa,EACb,QAAQ,EACR,IAAI,GACL,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAoBnG,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAU,CAAA;AAGtE,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,4BAA4B;IACpC,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,gCAAgC;IACzC,OAAO,EAAE,4BAA4B;CACtC,CAAA;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACrD,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;KAChB,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,MAAM,SAAS,GAAG,eAAe,EAAE,CAClC;IAAC,SAAgD,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,aAAa,EAAE,CAC9B;IAAC,OAA8C,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAA;IACvE,OAAO,OAA6C,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,EAAsB;IACtE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAA;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACvE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAmB,KAAK,CAAC,CAAA;IAC7E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC3E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE3C,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC3C,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAiB,iBAAiB,CAAC,CAAA;QAC3D,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC7B,CAAC;QACD,UAAU,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAA;IACjB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,MAAM,gBAAgB,GACpB,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAA;IAE7F,KAAK,UAAU,YAAY,CAAC,EAAU;QACpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAChC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QACxD,CAAC;QACD,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,OAAqB;QAClD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAe,iBAAiB,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,SAAS;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;SACH,CAAC,CAAA;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;YACnC,aAAa,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7D,OAAO,CACL,KAAC,WAAW,IACV,OAAO,EAAE,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAClE,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACrB,SAAS,CAAC,IAAI,CAAC,CAAA;gBACf,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAe,iBAAiB,EAAE;wBACxD,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,CAAC;qBAClE,CAAC,CAAA;oBACF,SAAS,CAAC,KAAK,CAAC,CAAA;oBAChB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACxB,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;wBAChC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;wBAC9B,aAAa,EAAE,CAAA;oBACjB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,MAAM,MAAM,CAAe,mBAAmB,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE;wBAChF,MAAM,EAAE,KAAK;wBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;qBAC3B,CAAC,CAAA;oBACF,SAAS,CAAC,KAAK,CAAC,CAAA;oBAChB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACxB,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;wBAChC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;wBAC9B,aAAa,EAAE,CAAA;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAC9C,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,eAAK,SAAS,EAAC,wCAAwC,aACrD,0BACE,aAAI,SAAS,EAAC,iBAAiB,+BAAoB,EACnD,YAAG,SAAS,EAAC,oCAAoC,uDAE7C,IACA,EACN,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAC/C,SAAS,EAAC,2IAA2I,aAErJ,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,sBAEX,IACL,EAEN,eAAK,SAAS,EAAC,qDAAqD,aAClE,KAAC,WAAW,IACV,KAAK,EAAC,KAAK,EACX,MAAM,EAAE,cAAc,KAAK,KAAK,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,GACvC,EACD,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB,KAAC,WAAW,IAEV,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EACjD,MAAM,EAAE,cAAc,KAAK,GAAG,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAHhC,GAAG,CAIR,CACH,CAAC,IACE,EAEL,OAAO,IAAI,CACV,cAAK,SAAS,EAAC,wCAAwC,YACrD,KAAC,OAAO,IAAC,SAAS,EAAC,4CAA4C,GAAG,GAC9D,CACP,EAEA,KAAK,IAAI,CAAC,OAAO,IAAI,CACpB,eAAK,SAAS,EAAC,6DAA6D,aAC1E,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,EAC7D,YAAG,SAAS,EAAC,oCAAoC,YAAE,KAAK,GAAK,EAC7D,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,aAAa,EACtB,SAAS,EAAC,mHAAmH,sBAGtH,IACL,CACP,EAEA,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CACtD,eAAK,SAAS,EAAC,6DAA6D,aAC1E,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,4BAA4B,GAAG,EAC3D,YAAG,SAAS,EAAC,0CAA0C,kCAAsB,EAC7E,YAAG,SAAS,EAAC,oCAAoC,YAC9C,cAAc,KAAK,KAAK;4BACvB,CAAC,CAAC,oDAAoD;4BACtD,CAAC,CAAC,uBAAuB,cAAc,aAAa,GACpD,EACH,cAAc,KAAK,KAAK,IAAI,CAC3B,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAC/C,SAAS,EAAC,6IAA6I,aAEvJ,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,sBAEX,CACV,IACG,CACP,EAEA,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpD,cAAK,SAAS,EAAC,uCAAuC,YACnD,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACjC,eAEE,SAAS,EAAC,uFAAuF,aAEjG,eAAK,SAAS,EAAC,wCAAwC,aACrD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,YAAG,SAAS,EAAC,8CAA8C,YAAE,OAAO,CAAC,IAAI,GAAK,EAC7E,OAAO,CAAC,WAAW,IAAI,CACtB,YAAG,SAAS,EAAC,mDAAmD,YAC7D,OAAO,CAAC,WAAW,GAClB,CACL,IACG,EACN,eACE,SAAS,EAAE,6CAA6C,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,gCAAgC,EAAE,YAE9H,OAAO,CAAC,QAAQ,GACZ,IACH,EAEN,eAAK,SAAS,EAAC,4DAA4D,aACzE,gBAAM,SAAS,EAAC,yBAAyB,aACvC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,EACjB,OAAO,CAAC,UAAU,UAAM,OAAO,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IACvD,EACP,gBAAM,SAAS,EAAC,yBAAyB,aACvC,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,EACrB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IACzB,EACN,OAAO,CAAC,IAAI,IAAI,CACf,gBAAM,SAAS,EAAC,yBAAyB,aACvC,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IAC7D,CACR,IACG,EAEN,eAAK,SAAS,EAAC,0DAA0D,aACvE,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EACtD,SAAS,EAAC,0HAA0H,gBACxH,QAAQ,OAAO,CAAC,IAAI,EAAE,aAElC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,YAEX,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EACvC,SAAS,EAAC,0HAA0H,gBACxH,aAAa,OAAO,CAAC,IAAI,EAAE,aAEvC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,iBAEX,EACR,eAAe,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAChC,eAAK,SAAS,EAAC,iCAAiC,aAC9C,eAAM,SAAS,EAAC,+BAA+B,wBAAe,EAC9D,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EACvC,SAAS,EAAC,+HAA+H,oBAGlI,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EACvC,SAAS,EAAC,iHAAiH,mBAGpH,IACL,CACP,CAAC,CAAC,CAAC,CACF,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,EAC7C,SAAS,EAAC,2IAA2I,gBACzI,UAAU,OAAO,CAAC,IAAI,EAAE,aAEpC,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,cAEb,CACV,IACG,KApFD,OAAO,CAAC,EAAE,CAqFX,CACP,CAAC,GACE,CACP,IACG,CACP,CAAA;AACH,CAAC;AAQD,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAoB;IAC/D,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,yDACT,MAAM;YACJ,CAAC,CAAC,4CAA4C;YAC9C,CAAC,CAAC,gEACN,EAAE,YAED,KAAK,GACC,CACV,CAAA;AACH,CAAC;AASD,SAAS,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAoB;IAC1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC,CAAA;IAC1E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAA;IAExE,SAAS,YAAY,CAAC,CAAkB;QACtC,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAM;QACxB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAE3E,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,eAAK,SAAS,EAAC,MAAM,aACnB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,sGAAsG,gBACrG,wBAAwB,aAEnC,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,YAEhB,EACT,aAAI,SAAS,EAAC,iBAAiB,YAC5B,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,sBAAsB,GACxD,IACD,EAEN,gBAAM,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,oBAAoB,aAC1D,0BACE,iBAAO,OAAO,EAAC,cAAc,EAAC,SAAS,EAAC,gDAAgD,sBACjF,eAAM,SAAS,EAAC,kBAAkB,kBAAS,IAC1C,EACR,gBACE,EAAE,EAAC,cAAc,EACjB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,QAAQ,QACR,WAAW,EAAC,kBAAkB,EAC9B,SAAS,EAAC,uHAAuH,GACjI,IACE,EAEN,0BACE,gBACE,OAAO,EAAC,qBAAqB,EAC7B,SAAS,EAAC,gDAAgD,4BAGpD,EACR,mBACE,EAAE,EAAC,qBAAqB,EACxB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAC,yCAAyC,EACrD,IAAI,EAAE,CAAC,EACP,SAAS,EAAC,mIAAmI,GAC7I,IACE,EAEN,0BACE,gBACE,OAAO,EAAC,kBAAkB,EAC1B,SAAS,EAAC,gDAAgD,yBAGpD,EACR,iBACE,EAAE,EAAC,kBAAkB,EACrB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,SAAS,EAAC,uHAAuH,YAEhI,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB,iBAAkB,KAAK,EAAE,GAAG,YACzB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IADhC,GAAG,CAEP,CACV,CAAC,GACK,IACL,EAEL,QAAQ,KAAK,IAAI,IAAI,CACpB,cAAK,SAAS,EAAC,8CAA8C,YAC3D,aAAG,SAAS,EAAC,+BAA+B,0FACgC,GAAG,EAC5E,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAC3B,GACA,CACP,EAED,eAAK,SAAS,EAAC,8BAA8B,aAC3C,kBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAChC,SAAS,EAAC,2LAA2L,aAEpM,MAAM,IAAI,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,cAAc,GAAG,EACxD,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,IACrC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAC,qIAAqI,uBAGxI,IACL,IACD,IACH,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { PageNode } from '@prenta/core';
|
|
2
|
-
export interface TemplatePickerProps {
|
|
3
|
-
onSelect: (templateTree: PageNode) => void;
|
|
4
|
-
onClose: () => void;
|
|
5
|
-
}
|
|
6
|
-
export declare function TemplatePicker({ onSelect, onClose }: TemplatePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
//# sourceMappingURL=TemplatePicker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplatePicker.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/TemplatePicker.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAkCD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,mBAAmB,2CA4IxE"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
4
|
-
import { X, Loader2, AlertTriangle, Layout, FileText, MapPin, Phone, BookOpen, File, } from 'lucide-react';
|
|
5
|
-
import { cmsApi } from '../../lib/api.js';
|
|
6
|
-
import { createEmptyPage } from '@prenta/core/page-builder';
|
|
7
|
-
const categoryIcons = {
|
|
8
|
-
landing: Layout,
|
|
9
|
-
blog: FileText,
|
|
10
|
-
contact: MapPin,
|
|
11
|
-
portfolio: BookOpen,
|
|
12
|
-
mobile: Phone,
|
|
13
|
-
};
|
|
14
|
-
const categoryColors = {
|
|
15
|
-
landing: 'bg-primary/10 text-primary',
|
|
16
|
-
blog: 'bg-accent text-foreground',
|
|
17
|
-
contact: 'bg-primary/10 text-primary',
|
|
18
|
-
portfolio: 'bg-accent text-foreground',
|
|
19
|
-
mobile: 'bg-primary/10 text-primary',
|
|
20
|
-
};
|
|
21
|
-
function resolveIcon(category) {
|
|
22
|
-
return categoryIcons[category] ?? File;
|
|
23
|
-
}
|
|
24
|
-
function resolveBadgeColor(category) {
|
|
25
|
-
return categoryColors[category] ?? 'bg-muted text-muted-foreground';
|
|
26
|
-
}
|
|
27
|
-
export function TemplatePicker({ onSelect, onClose }) {
|
|
28
|
-
const [templates, setTemplates] = useState([]);
|
|
29
|
-
const [loading, setLoading] = useState(true);
|
|
30
|
-
const [error, setError] = useState(null);
|
|
31
|
-
const fetchTemplates = useCallback(async () => {
|
|
32
|
-
setLoading(true);
|
|
33
|
-
setError(null);
|
|
34
|
-
const res = await cmsApi('/page-templates');
|
|
35
|
-
if (res.error) {
|
|
36
|
-
setError(res.error);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
setTemplates(res.data ?? []);
|
|
40
|
-
}
|
|
41
|
-
setLoading(false);
|
|
42
|
-
}, []);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
fetchTemplates();
|
|
45
|
-
}, [fetchTemplates]);
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
function handleKeyDown(e) {
|
|
48
|
-
if (e.key === 'Escape')
|
|
49
|
-
onClose();
|
|
50
|
-
}
|
|
51
|
-
document.addEventListener('keydown', handleKeyDown);
|
|
52
|
-
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
53
|
-
}, [onClose]);
|
|
54
|
-
function handleBlankPage() {
|
|
55
|
-
onSelect(createEmptyPage());
|
|
56
|
-
onClose();
|
|
57
|
-
}
|
|
58
|
-
function handleTemplateSelect(template) {
|
|
59
|
-
onSelect(template.tree);
|
|
60
|
-
onClose();
|
|
61
|
-
}
|
|
62
|
-
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", role: "dialog", "aria-modal": "true", "aria-label": "Choose a template", children: [_jsx("div", { className: "motion-safe:animate-in motion-safe:fade-in-0 absolute inset-0 bg-black/50", onClick: onClose, "aria-hidden": "true" }), _jsxs("div", { className: "bg-card border-border relative z-10 flex max-h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-xl border shadow-2xl", children: [_jsxs("div", { className: "flex items-center justify-between px-5 pt-5 pb-3", children: [_jsx("h2", { className: "text-foreground text-lg font-medium", children: "Choose a Template" }), _jsx("button", { type: "button", onClick: onClose, className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-md p-1.5 transition-colors", "aria-label": "Close", children: _jsx(X, { size: 18 }) })] }), _jsxs("div", { className: "flex-1 overflow-y-auto px-5 pb-5", children: [loading && (_jsx("div", { className: "flex items-center justify-center py-16", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })), error && !loading && (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [_jsx(AlertTriangle, { size: 24, className: "text-destructive mb-2" }), _jsx("p", { className: "text-muted-foreground mb-3 text-sm", children: error }), _jsx("button", { type: "button", onClick: fetchTemplates, className: "text-foreground border-border hover:bg-accent rounded-md border px-3 py-1.5 text-sm font-medium transition-colors", children: "Retry" })] })), !loading && !error && (_jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", role: "list", "aria-label": "Available templates", children: [_jsxs("button", { type: "button", role: "listitem", onClick: handleBlankPage, className: "border-border hover:border-primary bg-card group focus:ring-ring flex cursor-pointer flex-col items-center gap-2 rounded-lg border p-4 text-left transition-colors focus:ring-2 focus:outline-none", children: [_jsx("div", { className: "bg-muted text-muted-foreground group-hover:bg-primary/10 group-hover:text-primary flex h-10 w-10 items-center justify-center rounded-md transition-colors", children: _jsx(File, { size: 20 }) }), _jsx("p", { className: "text-foreground text-center text-sm font-medium", children: "Blank Page" }), _jsx("p", { className: "text-muted-foreground text-center text-xs", children: "Start from scratch" })] }), templates.map((template) => {
|
|
63
|
-
const Icon = resolveIcon(template.category);
|
|
64
|
-
const badgeColor = resolveBadgeColor(template.category);
|
|
65
|
-
return (_jsxs("button", { type: "button", role: "listitem", onClick: () => handleTemplateSelect(template), className: "border-border hover:border-primary bg-card group focus:ring-ring flex cursor-pointer flex-col items-center gap-2 rounded-lg border p-4 text-left transition-colors focus:ring-2 focus:outline-none", children: [_jsx("div", { className: "bg-accent text-foreground group-hover:bg-primary/10 group-hover:text-primary flex h-10 w-10 items-center justify-center rounded-md transition-colors", children: _jsx(Icon, { size: 20 }) }), _jsx("p", { className: "text-foreground w-full truncate text-center text-sm font-medium", children: template.name }), template.description && (_jsx("p", { className: "text-muted-foreground line-clamp-2 text-center text-xs", children: template.description })), _jsx("span", { className: `inline-block rounded-full px-2 py-0.5 text-xs ${badgeColor}`, children: template.category })] }, template.id));
|
|
66
|
-
})] }))] })] })] }));
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=TemplatePicker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplatePicker.js","sourceRoot":"","sources":["../../../src/views/page-builder/TemplatePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface WidgetsProps {
|
|
2
|
-
onNavigate?: (path: string) => void;
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* /widgets — placeholder for the embeddable Widgets library.
|
|
6
|
-
*
|
|
7
|
-
* Widgets are reusable, embeddable components (forms, CTAs, banners)
|
|
8
|
-
* that can be dropped into pages and saved sections. The management UI
|
|
9
|
-
* ships in a later release; this view establishes the route and nav
|
|
10
|
-
* entry with an honest empty state rather than a dead link.
|
|
11
|
-
*/
|
|
12
|
-
export declare function Widgets({ onNavigate }: WidgetsProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
//# sourceMappingURL=Widgets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Widgets.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/Widgets.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY,2CA2BnD"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { LayoutGrid } from 'lucide-react';
|
|
4
|
-
/**
|
|
5
|
-
* /widgets — placeholder for the embeddable Widgets library.
|
|
6
|
-
*
|
|
7
|
-
* Widgets are reusable, embeddable components (forms, CTAs, banners)
|
|
8
|
-
* that can be dropped into pages and saved sections. The management UI
|
|
9
|
-
* ships in a later release; this view establishes the route and nav
|
|
10
|
-
* entry with an honest empty state rather than a dead link.
|
|
11
|
-
*/
|
|
12
|
-
export function Widgets({ onNavigate }) {
|
|
13
|
-
return (_jsxs("div", { className: "p-4 pr-8", children: [_jsxs("div", { className: "mb-4", children: [_jsx("h1", { className: "text-foreground mb-1", children: "Widgets" }), _jsx("p", { className: "text-muted-foreground text-sm", children: "Reusable, embeddable components for pages and saved sections." })] }), _jsxs("div", { className: "border-border bg-card rounded-lg border p-8 text-center", children: [_jsx(LayoutGrid, { className: "text-muted-foreground mx-auto mb-3 h-8 w-8", "aria-hidden": true }), _jsx("h2", { className: "text-foreground mb-1 text-lg font-medium", children: "Widgets are coming soon" }), _jsx("p", { className: "text-muted-foreground mx-auto mb-4 max-w-md text-sm", children: "The widget library lets you build embeddable components once and reuse them across pages. In the meantime, use Saved Sections for reusable content blocks." }), _jsx("button", { type: "button", onClick: () => onNavigate?.('/saved-sections'), className: "bg-primary text-primary-foreground rounded-md px-4 py-2 text-sm font-medium hover:opacity-90", children: "View Saved Sections" })] })] }));
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=Widgets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Widgets.js","sourceRoot":"","sources":["../../../src/views/page-builder/Widgets.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAMzC;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,EAAE,UAAU,EAAgB;IAClD,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,sBAAsB,wBAAa,EACjD,YAAG,SAAS,EAAC,+BAA+B,8EAExC,IACA,EAEN,eAAK,SAAS,EAAC,yDAAyD,aACtE,KAAC,UAAU,IAAC,SAAS,EAAC,4CAA4C,wBAAe,EACjF,aAAI,SAAS,EAAC,0CAA0C,wCAA6B,EACrF,YAAG,SAAS,EAAC,qDAAqD,2KAG9D,EACJ,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,EAC9C,SAAS,EAAC,8FAA8F,oCAGjG,IACL,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CTAPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/CTAPreview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAkB,EAAE,EAAE,iBAAiB,2CA0EzE"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
export function CTAPreview({ data, variant = 'banner' }) {
|
|
4
|
-
const heading = data.heading || '';
|
|
5
|
-
const body = data.body || '';
|
|
6
|
-
const buttonText = data.buttonText || '';
|
|
7
|
-
const button = (_jsx("span", { className: "bg-primary text-primary-foreground inline-block rounded-md px-4 py-2 text-sm", children: buttonText || 'Click Here' }));
|
|
8
|
-
if (variant === 'inline') {
|
|
9
|
-
return (_jsxs("div", { className: "border-border flex items-center justify-between gap-4 rounded-md border p-4", children: [_jsxs("div", { className: "flex-1", children: [_jsx("p", { className: "text-foreground text-sm font-medium", children: heading || _jsx("span", { className: "text-muted-foreground", children: "CTA Heading" }) }), body && _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: body })] }), button] }));
|
|
10
|
-
}
|
|
11
|
-
if (variant === 'floating') {
|
|
12
|
-
return (_jsx("div", { className: "border-border bg-card mx-auto max-w-md rounded-lg border p-6 shadow-md", children: _jsxs("div", { className: "text-center", children: [_jsx("h3", { className: "text-foreground text-lg font-medium", children: heading || _jsx("span", { className: "text-muted-foreground", children: "CTA Heading" }) }), (body || !heading) && (_jsx("p", { className: "text-muted-foreground mt-2 text-sm", children: body || 'Supporting text for the call to action' })), _jsx("div", { className: "mt-4", children: button })] }) }));
|
|
13
|
-
}
|
|
14
|
-
if (variant === 'split') {
|
|
15
|
-
return (_jsxs("div", { className: "border-border flex items-center gap-6 rounded-md border p-6", children: [_jsxs("div", { className: "flex-1", children: [_jsx("h3", { className: "text-foreground text-lg font-medium", children: heading || _jsx("span", { className: "text-muted-foreground", children: "CTA Heading" }) }), (body || !heading) && (_jsx("p", { className: "text-muted-foreground mt-2 text-sm", children: body || 'Supporting text for the call to action' }))] }), _jsx("div", { className: "shrink-0", children: button })] }));
|
|
16
|
-
}
|
|
17
|
-
return (_jsxs("div", { className: "border-border bg-accent rounded-md border p-6 text-center", children: [_jsx("h3", { className: "text-foreground text-lg font-medium", children: heading || _jsx("span", { className: "text-muted-foreground", children: "CTA Heading" }) }), (body || !heading) && (_jsx("p", { className: "text-muted-foreground mt-2 text-sm", children: body || 'Supporting text for the call to action' })), _jsx("div", { className: "mt-4", children: button })] }));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=CTAPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CTAPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/CTAPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAqB;IACxE,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAA;IAC9C,MAAM,IAAI,GAAI,IAAI,CAAC,IAAe,IAAI,EAAE,CAAA;IACxC,MAAM,UAAU,GAAI,IAAI,CAAC,UAAqB,IAAI,EAAE,CAAA;IAEpD,MAAM,MAAM,GAAG,CACb,eAAM,SAAS,EAAC,8EAA8E,YAC3F,UAAU,IAAI,YAAY,GACtB,CACR,CAAA;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,eAAK,SAAS,EAAC,6EAA6E,aAC1F,eAAK,SAAS,EAAC,QAAQ,aACrB,YAAG,SAAS,EAAC,qCAAqC,YAC/C,OAAO,IAAI,eAAM,SAAS,EAAC,uBAAuB,4BAAmB,GACpE,EACH,IAAI,IAAI,YAAG,SAAS,EAAC,oCAAoC,YAAE,IAAI,GAAK,IACjE,EACL,MAAM,IACH,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,CACL,cAAK,SAAS,EAAC,wEAAwE,YACrF,eAAK,SAAS,EAAC,aAAa,aAC1B,aAAI,SAAS,EAAC,qCAAqC,YAChD,OAAO,IAAI,eAAM,SAAS,EAAC,uBAAuB,4BAAmB,GACnE,EACJ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACrB,YAAG,SAAS,EAAC,oCAAoC,YAC9C,IAAI,IAAI,wCAAwC,GAC/C,CACL,EACD,cAAK,SAAS,EAAC,MAAM,YAAE,MAAM,GAAO,IAChC,GACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CACL,eAAK,SAAS,EAAC,6DAA6D,aAC1E,eAAK,SAAS,EAAC,QAAQ,aACrB,aAAI,SAAS,EAAC,qCAAqC,YAChD,OAAO,IAAI,eAAM,SAAS,EAAC,uBAAuB,4BAAmB,GACnE,EACJ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACrB,YAAG,SAAS,EAAC,oCAAoC,YAC9C,IAAI,IAAI,wCAAwC,GAC/C,CACL,IACG,EACN,cAAK,SAAS,EAAC,UAAU,YAAE,MAAM,GAAO,IACpC,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,2DAA2D,aACxE,aAAI,SAAS,EAAC,qCAAqC,YAChD,OAAO,IAAI,eAAM,SAAS,EAAC,uBAAuB,4BAAmB,GACnE,EACJ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACrB,YAAG,SAAS,EAAC,oCAAoC,YAC9C,IAAI,IAAI,wCAAwC,GAC/C,CACL,EACD,cAAK,SAAS,EAAC,MAAM,YAAE,MAAM,GAAO,IAChC,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CardsPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/CardsPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAUnD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,OAAkB,EAAE,EAAE,iBAAiB,2CAuD3E"}
|