@prenta/admin 0.98.1 → 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 +6 -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 -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/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-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 -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/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-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-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/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/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/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
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { PageNode } from '@prenta/core';
|
|
2
|
-
export interface BuilderSectionsPanelProps {
|
|
3
|
-
tree: PageNode;
|
|
4
|
-
selectedNodeId: string | null;
|
|
5
|
-
/** Collapsed to a slim rail. State is owned by PageBuilder (persisted). */
|
|
6
|
-
collapsed: boolean;
|
|
7
|
-
onToggleCollapsed: () => void;
|
|
8
|
-
onSelect: (id: string) => void;
|
|
9
|
-
/** Move a top-level section to `toIndex` within the page. */
|
|
10
|
-
onReorder: (id: string, toIndex: number) => void;
|
|
11
|
-
onAddSection: () => void;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Design-parity left rail for the Page Builder (PageBuilder.html): the page's
|
|
15
|
-
* sections listed in order with drag-to-reorder, click-to-select (which
|
|
16
|
-
* highlights the section on the canvas and opens its settings in the existing
|
|
17
|
-
* right-hand context panel), and an "Add Section" affordance at the bottom.
|
|
18
|
-
*/
|
|
19
|
-
export declare function BuilderSectionsPanel({ tree, selectedNodeId, collapsed, onToggleCollapsed, onSelect, onReorder, onAddSection, }: BuilderSectionsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=BuilderSectionsPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderSectionsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/BuilderSectionsPanel.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEzD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,QAAQ,CAAA;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,6DAA6D;IAC7D,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AA0ED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,YAAY,GACb,EAAE,yBAAyB,2CAsG3B"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
import { DndContext, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors, } from '@dnd-kit/core';
|
|
5
|
-
import { SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy, } from '@dnd-kit/sortable';
|
|
6
|
-
import { CSS } from '@dnd-kit/utilities';
|
|
7
|
-
import { Bookmark, Code, FileText, Grid, GripVertical, HelpCircle, Image, LayoutGrid, LayoutTemplate, MousePointer, PanelLeftClose, PanelLeftOpen, Play, Plus, Star, Type, } from 'lucide-react';
|
|
8
|
-
import { BlockCatalog } from '@prenta/core/page-builder';
|
|
9
|
-
/** Same icon-name → component mapping the BlockPicker uses for the catalog. */
|
|
10
|
-
const BLOCK_ICONS = {
|
|
11
|
-
Star,
|
|
12
|
-
Type,
|
|
13
|
-
Image,
|
|
14
|
-
LayoutGrid,
|
|
15
|
-
MousePointer,
|
|
16
|
-
Play,
|
|
17
|
-
Grid,
|
|
18
|
-
HelpCircle,
|
|
19
|
-
FileText,
|
|
20
|
-
Code,
|
|
21
|
-
};
|
|
22
|
-
function collectBlockTypes(node, out) {
|
|
23
|
-
if (node.type === 'block') {
|
|
24
|
-
out.push(node.settings.blockType);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (node.type === 'savedSectionRef')
|
|
28
|
-
return;
|
|
29
|
-
for (const child of node.children)
|
|
30
|
-
collectBlockTypes(child, out);
|
|
31
|
-
}
|
|
32
|
-
function humanize(type) {
|
|
33
|
-
return type.charAt(0).toUpperCase() + type.slice(1);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Builder sections have no user-facing title, so each row derives its name
|
|
37
|
-
* from the section's first block (via the catalog label) and summarizes its
|
|
38
|
-
* contents as the kind label — enough for the editor to recognize and jump
|
|
39
|
-
* between sections without inventing data we don't store.
|
|
40
|
-
*/
|
|
41
|
-
function buildEntries(tree, catalog) {
|
|
42
|
-
return tree.children.map((node, index) => {
|
|
43
|
-
if (node.type === 'savedSectionRef') {
|
|
44
|
-
return {
|
|
45
|
-
id: node.id,
|
|
46
|
-
name: 'Saved section',
|
|
47
|
-
meta: 'From the section library',
|
|
48
|
-
icon: Bookmark,
|
|
49
|
-
hidden: false,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
const blockTypes = [];
|
|
53
|
-
collectBlockTypes(node, blockTypes);
|
|
54
|
-
const firstType = blockTypes[0];
|
|
55
|
-
const def = firstType ? catalog.get(firstType) : undefined;
|
|
56
|
-
return {
|
|
57
|
-
id: node.id,
|
|
58
|
-
name: def?.label ?? (firstType ? humanize(firstType) : `Section ${index + 1}`),
|
|
59
|
-
meta: blockTypes.length === 0
|
|
60
|
-
? 'Empty section'
|
|
61
|
-
: `${blockTypes.length} block${blockTypes.length === 1 ? '' : 's'}`,
|
|
62
|
-
icon: (def && BLOCK_ICONS[def.icon]) ?? LayoutTemplate,
|
|
63
|
-
hidden: node.settings.visibility === 'hidden',
|
|
64
|
-
};
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
const ICON_BUTTON_CLASS = 'flex h-8 w-8 items-center justify-center rounded-[7px] text-[var(--sub)] transition-colors duration-[var(--motion-fast)] hover:bg-[var(--acc-l)] hover:text-[var(--acc)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none';
|
|
68
|
-
/**
|
|
69
|
-
* Design-parity left rail for the Page Builder (PageBuilder.html): the page's
|
|
70
|
-
* sections listed in order with drag-to-reorder, click-to-select (which
|
|
71
|
-
* highlights the section on the canvas and opens its settings in the existing
|
|
72
|
-
* right-hand context panel), and an "Add Section" affordance at the bottom.
|
|
73
|
-
*/
|
|
74
|
-
export function BuilderSectionsPanel({ tree, selectedNodeId, collapsed, onToggleCollapsed, onSelect, onReorder, onAddSection, }) {
|
|
75
|
-
const catalog = useMemo(() => new BlockCatalog(), []);
|
|
76
|
-
const entries = useMemo(() => buildEntries(tree, catalog), [tree, catalog]);
|
|
77
|
-
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 4 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
|
|
78
|
-
function handleDragEnd(event) {
|
|
79
|
-
const { active, over } = event;
|
|
80
|
-
if (!over || active.id === over.id)
|
|
81
|
-
return;
|
|
82
|
-
const ids = entries.map((e) => e.id);
|
|
83
|
-
const to = ids.indexOf(String(over.id));
|
|
84
|
-
if (to === -1 || !ids.includes(String(active.id)))
|
|
85
|
-
return;
|
|
86
|
-
onReorder(String(active.id), to);
|
|
87
|
-
}
|
|
88
|
-
if (collapsed) {
|
|
89
|
-
return (_jsx("nav", { "aria-label": "Page sections", className: "flex w-11 shrink-0 flex-col items-center border-r border-[var(--bdr)] bg-[var(--sb)] py-2", children: _jsx("button", { type: "button", onClick: onToggleCollapsed, "aria-expanded": false, "aria-label": "Expand sections panel", className: ICON_BUTTON_CLASS, children: _jsx(PanelLeftOpen, { size: 16, "aria-hidden": true }) }) }));
|
|
90
|
-
}
|
|
91
|
-
return (_jsxs("nav", { "aria-label": "Page sections", className: "flex w-[280px] shrink-0 flex-col overflow-hidden border-r border-[var(--bdr)] bg-[var(--sb)]", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-[var(--bdr)] py-2 pr-2 pl-3.5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("h2", { className: "text-[13px] font-medium text-[var(--txt)]", children: "Sections" }), _jsx("span", { className: "rounded-[4px] bg-[var(--acc-l)] px-[7px] py-0.5 text-[11px] font-medium text-[var(--acc)] tabular-nums", children: entries.length })] }), _jsx("button", { type: "button", onClick: onToggleCollapsed, "aria-expanded": true, "aria-label": "Collapse sections panel", className: ICON_BUTTON_CLASS, children: _jsx(PanelLeftClose, { size: 16, "aria-hidden": true }) })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: entries.length === 0 ? (_jsx("p", { className: "px-4 py-6 text-center text-[12.5px] text-[var(--muted)]", children: "No sections yet. Add one below to start building." })) : (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: entries.map((e) => e.id), strategy: verticalListSortingStrategy, children: _jsx("ul", { "aria-label": "Sections in page order", children: entries.map((entry) => (_jsx(SortableSectionRow, { entry: entry, selected: entry.id === selectedNodeId, onSelect: onSelect }, entry.id))) }) }) })) }), _jsx("div", { className: "border-t border-[var(--bdr)]", children: _jsxs("button", { type: "button", onClick: onAddSection, className: "flex w-full items-center gap-2 px-3.5 py-3 text-[13px] font-medium text-[var(--acc)] transition-colors duration-[var(--motion-fast)] hover:bg-[var(--acc-l)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none focus-visible:ring-inset", children: [_jsx(Plus, { size: 14, "aria-hidden": true }), "Add Section"] }) })] }));
|
|
92
|
-
}
|
|
93
|
-
function SortableSectionRow({ entry, selected, onSelect }) {
|
|
94
|
-
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
|
|
95
|
-
id: entry.id,
|
|
96
|
-
});
|
|
97
|
-
const Icon = entry.icon;
|
|
98
|
-
const style = {
|
|
99
|
-
transform: CSS.Transform.toString(transform),
|
|
100
|
-
transition,
|
|
101
|
-
zIndex: isDragging ? 10 : undefined,
|
|
102
|
-
};
|
|
103
|
-
return (_jsx("li", { ref: setNodeRef, style: style, className: isDragging ? 'shadow-[var(--shd2)]' : undefined, children: _jsxs("div", { className: `flex items-center gap-1.5 border-b border-[var(--bdr)] py-2 pr-2.5 pl-1.5 transition-colors duration-[var(--motion-fast)] ${selected ? 'bg-[var(--acc-l)]' : 'hover:bg-[var(--acc-l)]'}`, children: [_jsx("button", { type: "button", "aria-label": `Drag to reorder ${entry.name}`, ...attributes, ...listeners, className: "shrink-0 cursor-grab touch-none rounded p-1 text-[var(--muted)] transition-colors duration-[var(--motion-fast)] hover:text-[var(--acc)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none active:cursor-grabbing", children: _jsx(GripVertical, { size: 15, "aria-hidden": true }) }), _jsxs("button", { type: "button", onClick: () => onSelect(entry.id), "aria-current": selected ? 'true' : undefined, className: "flex min-w-0 flex-1 items-center gap-2.5 rounded text-left focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none", children: [_jsx("span", { "aria-hidden": true, className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-[7px] bg-[var(--acc-l)] text-[var(--acc)]", children: _jsx(Icon, { size: 14 }) }), _jsxs("span", { className: "flex min-w-0 flex-col", children: [_jsx("span", { className: `truncate text-[13px] font-medium ${entry.hidden ? 'text-[var(--muted)] line-through' : 'text-[var(--txt)]'}`, children: entry.name }), _jsx("span", { className: "truncate text-[11px] text-[var(--muted)]", children: entry.meta })] })] })] }) }));
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=BuilderSectionsPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderSectionsPanel.js","sourceRoot":"","sources":["../../../src/views/page-builder/BuilderSectionsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { DeviceMode, PageSettings } from '../../hooks/useBuilderState.js';
|
|
2
|
-
export interface BuilderToolbarProps {
|
|
3
|
-
collectionSlug: string;
|
|
4
|
-
pageSettings: PageSettings;
|
|
5
|
-
status: 'DRAFT' | 'PUBLISHED' | 'SCHEDULED';
|
|
6
|
-
dirty: boolean;
|
|
7
|
-
saving: boolean;
|
|
8
|
-
canUndo: boolean;
|
|
9
|
-
canRedo: boolean;
|
|
10
|
-
deviceMode: DeviceMode;
|
|
11
|
-
onNavigate: (path: string) => void;
|
|
12
|
-
onTitleChange: (title: string) => void;
|
|
13
|
-
onUndo: () => void;
|
|
14
|
-
onRedo: () => void;
|
|
15
|
-
onDeviceMode: (mode: DeviceMode) => void;
|
|
16
|
-
onSave: () => void;
|
|
17
|
-
onPublish: () => void;
|
|
18
|
-
onOpenAI?: () => void;
|
|
19
|
-
}
|
|
20
|
-
export declare function BuilderToolbar({ collectionSlug, pageSettings, status, dirty, saving, canUndo, canRedo, deviceMode, onNavigate, onTitleChange, onUndo, onRedo, onDeviceMode, onSave, onPublish, onOpenAI, }: BuilderToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
-
//# sourceMappingURL=BuilderToolbar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderToolbar.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/BuilderToolbar.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAE9E,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,CAAA;IAC3C,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IACxC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAQD,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,YAAY,EACZ,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,aAAa,EACb,MAAM,EACN,MAAM,EACN,YAAY,EACZ,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,mBAAmB,2CAyIrB"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { ChevronLeft, Undo2, Redo2, Monitor, Tablet, Smartphone, Loader2, Sparkles, } from 'lucide-react';
|
|
4
|
-
const STATUS_STYLES = {
|
|
5
|
-
DRAFT: 'bg-muted text-muted-foreground',
|
|
6
|
-
PUBLISHED: 'bg-primary/10 text-primary',
|
|
7
|
-
SCHEDULED: 'bg-accent text-accent-foreground',
|
|
8
|
-
};
|
|
9
|
-
export function BuilderToolbar({ collectionSlug, pageSettings, status, dirty, saving, canUndo, canRedo, deviceMode, onNavigate, onTitleChange, onUndo, onRedo, onDeviceMode, onSave, onPublish, onOpenAI, }) {
|
|
10
|
-
const collectionLabel = collectionSlug.charAt(0).toUpperCase() + collectionSlug.slice(1);
|
|
11
|
-
return (_jsxs("div", { className: "bg-card border-border flex h-14 shrink-0 items-center gap-3 border-b px-4", role: "toolbar", "aria-label": "Page builder toolbar", children: [_jsxs("button", { onClick: () => onNavigate(`/collections/${collectionSlug}`), className: "text-muted-foreground hover:text-foreground flex items-center gap-1 text-sm transition-colors", "aria-label": `Back to ${collectionLabel}`, children: [_jsx(ChevronLeft, { size: 16 }), _jsx("span", { className: "hidden sm:inline", children: collectionLabel })] }), _jsx("div", { className: "bg-border h-6 w-px" }), _jsx("input", { type: "text", value: pageSettings.title, onChange: (e) => onTitleChange(e.target.value), placeholder: "Untitled Page", className: "text-foreground focus-visible:ring-ring placeholder:text-muted-foreground min-w-0 flex-1 rounded-sm border-none bg-transparent text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-offset-2", "aria-label": "Page title" }), _jsx("span", { className: `rounded-md px-2 py-0.5 text-xs font-medium whitespace-nowrap ${STATUS_STYLES[status] ?? STATUS_STYLES.DRAFT}`, children: status }), dirty && !saving && (_jsx("span", { className: "bg-destructive h-2 w-2 shrink-0 rounded-full", title: "Unsaved changes", "aria-label": "Unsaved changes" })), _jsx("div", { className: "bg-border h-6 w-px" }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("button", { onClick: onUndo, disabled: !canUndo, className: "text-muted-foreground hover:text-foreground hover:bg-muted rounded-md p-1.5 transition-colors disabled:pointer-events-none disabled:opacity-30", "aria-label": "Undo", children: _jsx(Undo2, { size: 16 }) }), _jsx("button", { onClick: onRedo, disabled: !canRedo, className: "text-muted-foreground hover:text-foreground hover:bg-muted rounded-md p-1.5 transition-colors disabled:pointer-events-none disabled:opacity-30", "aria-label": "Redo", children: _jsx(Redo2, { size: 16 }) })] }), _jsx("div", { className: "bg-border h-6 w-px" }), _jsxs("div", { className: "bg-muted flex items-center gap-0.5 rounded-md p-0.5", children: [_jsx(DeviceButton, { active: deviceMode === 'desktop', onClick: () => onDeviceMode('desktop'), label: "Desktop view", children: _jsx(Monitor, { size: 16 }) }), _jsx(DeviceButton, { active: deviceMode === 'tablet', onClick: () => onDeviceMode('tablet'), label: "Tablet view", children: _jsx(Tablet, { size: 16 }) }), _jsx(DeviceButton, { active: deviceMode === 'mobile', onClick: () => onDeviceMode('mobile'), label: "Mobile view", children: _jsx(Smartphone, { size: 16 }) })] }), _jsx("div", { className: "bg-border h-6 w-px" }), onOpenAI && (_jsxs(_Fragment, { children: [_jsxs("button", { onClick: onOpenAI, className: "text-primary bg-primary/10 hover:bg-primary/20 flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-sm font-medium transition-colors", "aria-label": "Generate page with AI", children: [_jsx(Sparkles, { size: 14 }), _jsx("span", { className: "hidden sm:inline", children: "AI" })] }), _jsx("div", { className: "bg-border h-6 w-px" })] })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { onClick: onSave, disabled: saving || !dirty, className: "bg-muted text-muted-foreground hover:bg-muted/80 flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50", children: [saving && _jsx(Loader2, { size: 14, className: "animate-spin" }), saving ? 'Saving...' : 'Save'] }), _jsx("button", { onClick: onPublish, disabled: saving, className: "bg-primary text-primary-foreground hover:bg-primary/90 rounded-md px-3 py-1.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50", children: "Publish" })] })] }));
|
|
12
|
-
}
|
|
13
|
-
function DeviceButton({ active, onClick, label, children, }) {
|
|
14
|
-
return (_jsx("button", { onClick: onClick, className: `rounded-md p-1.5 transition-colors ${active
|
|
15
|
-
? 'bg-background text-foreground shadow-sm'
|
|
16
|
-
: 'text-muted-foreground hover:text-foreground'}`, "aria-label": label, "aria-pressed": active, children: children }));
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=BuilderToolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderToolbar.js","sourceRoot":"","sources":["../../../src/views/page-builder/BuilderToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { BuilderNode, PageNode } from '@prenta/core';
|
|
2
|
-
import type { PageSettings } from '../../hooks/useBuilderState.js';
|
|
3
|
-
export interface ContextPanelProps {
|
|
4
|
-
activeTab: 'block' | 'node' | 'page' | 'seo' | 'design';
|
|
5
|
-
onTabChange: (tab: 'block' | 'node' | 'page' | 'seo' | 'design') => void;
|
|
6
|
-
selectedNode: BuilderNode | null;
|
|
7
|
-
tree: PageNode;
|
|
8
|
-
pageSettings: PageSettings;
|
|
9
|
-
onUpdateSettings: (id: string, settings: Record<string, unknown>) => void;
|
|
10
|
-
onUpdateBlock: (id: string, data: Record<string, unknown>) => void;
|
|
11
|
-
onRemoveNode: (id: string) => void;
|
|
12
|
-
onDuplicateNode: (id: string) => void;
|
|
13
|
-
onMoveNodeUp: (id: string) => void;
|
|
14
|
-
onMoveNodeDown: (id: string) => void;
|
|
15
|
-
onPageSettingsChange: (settings: Partial<PageSettings>) => void;
|
|
16
|
-
onAddRow: (sectionId: string) => void;
|
|
17
|
-
config: any;
|
|
18
|
-
}
|
|
19
|
-
export declare function ContextPanel({ activeTab, onTabChange, selectedNode, tree, pageSettings, onUpdateSettings, onUpdateBlock, onRemoveNode, onDuplicateNode, onMoveNodeUp, onMoveNodeDown, onPageSettingsChange, onAddRow, config, }: ContextPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=ContextPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContextPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/ContextPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAMzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACvD,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAA;IACxE,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACzE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAA;IAC/D,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,MAAM,EAAE,GAAG,CAAA;CACZ;AAgBD,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACR,MAAM,GACP,EAAE,iBAAiB,2CAoFnB"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
import * as Tabs from '@radix-ui/react-tabs';
|
|
5
|
-
import { Blocks, Settings2, FileText, Search, Palette } from 'lucide-react';
|
|
6
|
-
import { BlockEditor } from './BlockEditor.js';
|
|
7
|
-
import { NodeSettings } from './NodeSettings.js';
|
|
8
|
-
import { PageSettingsEditor } from './PageSettings.js';
|
|
9
|
-
import { BuilderSEOPanel } from './SEOPanel.js';
|
|
10
|
-
import { DesignScorePanel } from './DesignScore.js';
|
|
11
|
-
const TABS = [
|
|
12
|
-
{ value: 'block', label: 'Block', icon: Blocks },
|
|
13
|
-
{ value: 'node', label: 'Node', icon: Settings2 },
|
|
14
|
-
{ value: 'page', label: 'Page', icon: FileText },
|
|
15
|
-
{ value: 'seo', label: 'SEO', icon: Search },
|
|
16
|
-
{ value: 'design', label: 'Design', icon: Palette },
|
|
17
|
-
];
|
|
18
|
-
export function ContextPanel({ activeTab, onTabChange, selectedNode, tree, pageSettings, onUpdateSettings, onUpdateBlock, onRemoveNode, onDuplicateNode, onMoveNodeUp, onMoveNodeDown, onPageSettingsChange, onAddRow, config, }) {
|
|
19
|
-
const availableTabs = useMemo(() => {
|
|
20
|
-
if (!selectedNode)
|
|
21
|
-
return TABS.filter((t) => t.value !== 'block' && t.value !== 'node');
|
|
22
|
-
if (selectedNode.type === 'block')
|
|
23
|
-
return TABS.filter((t) => t.value !== 'node');
|
|
24
|
-
return TABS.filter((t) => t.value !== 'block');
|
|
25
|
-
}, [selectedNode]);
|
|
26
|
-
const effectiveTab = useMemo(() => {
|
|
27
|
-
if (availableTabs.some((t) => t.value === activeTab))
|
|
28
|
-
return activeTab;
|
|
29
|
-
if (selectedNode?.type === 'block')
|
|
30
|
-
return 'block';
|
|
31
|
-
if (selectedNode)
|
|
32
|
-
return 'node';
|
|
33
|
-
return 'page';
|
|
34
|
-
}, [activeTab, availableTabs, selectedNode]);
|
|
35
|
-
return (_jsx("div", { className: "bg-card h-full w-full overflow-y-auto", children: _jsxs(Tabs.Root, { value: effectiveTab, onValueChange: (value) => onTabChange(value), children: [_jsx(Tabs.List, { className: "border-border bg-muted/30 flex border-b", children: availableTabs.map((tab) => {
|
|
36
|
-
const Icon = tab.icon;
|
|
37
|
-
return (_jsxs(Tabs.Trigger, { value: tab.value, className: "text-muted-foreground hover:text-foreground data-[state=active]:text-foreground data-[state=active]:border-primary data-[state=active]:bg-background flex flex-1 items-center justify-center gap-1.5 px-2 py-2.5 text-xs font-medium transition-colors data-[state=active]:border-b-2", children: [_jsx(Icon, { size: 14 }), _jsx("span", { children: tab.label })] }, tab.value));
|
|
38
|
-
}) }), _jsx(Tabs.Content, { value: "block", children: selectedNode?.type === 'block' && (_jsx(BlockEditor, { node: selectedNode, onUpdateBlock: onUpdateBlock, onUpdateSettings: onUpdateSettings, onRemoveNode: onRemoveNode, onDuplicateNode: onDuplicateNode, config: config })) }), _jsx(Tabs.Content, { value: "node", children: selectedNode &&
|
|
39
|
-
selectedNode.type !== 'block' &&
|
|
40
|
-
selectedNode.type !== 'page' &&
|
|
41
|
-
selectedNode.type !== 'savedSectionRef' && (_jsx(NodeSettings, { node: selectedNode, onUpdateSettings: onUpdateSettings, onRemoveNode: onRemoveNode, onDuplicateNode: onDuplicateNode, onMoveNodeUp: onMoveNodeUp, onMoveNodeDown: onMoveNodeDown, onAddRow: selectedNode.type === 'section' ? onAddRow : undefined })) }), _jsx(Tabs.Content, { value: "page", children: _jsx(PageSettingsEditor, { settings: pageSettings, onChange: onPageSettingsChange }) }), _jsx(Tabs.Content, { value: "seo", children: _jsx(BuilderSEOPanel, { tree: tree, pageSettings: pageSettings, onPageSettingsChange: onPageSettingsChange }) }), _jsx(Tabs.Content, { value: "design", children: _jsx(DesignScorePanel, { tree: tree }) })] }) }));
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=ContextPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContextPanel.js","sourceRoot":"","sources":["../../../src/views/page-builder/ContextPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { PageNode } from '@prenta/core';
|
|
2
|
-
export interface DesignScorePanelProps {
|
|
3
|
-
tree: PageNode;
|
|
4
|
-
}
|
|
5
|
-
export declare function DesignScorePanel({ tree }: DesignScorePanelProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
//# sourceMappingURL=DesignScore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DesignScore.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/DesignScore.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,cAAc,CAAA;AAWrB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,CAAA;CACf;AAyLD,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,qBAAqB,2CA0C/D"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useMemo } from 'react';
|
|
4
|
-
import { analyzeDesign } from '@prenta/core/page-builder';
|
|
5
|
-
import { CheckCircle2, AlertCircle, XCircle, ChevronDown, ChevronUp, Lightbulb, Palette, } from 'lucide-react';
|
|
6
|
-
function getScoreColor(score, max) {
|
|
7
|
-
const ratio = max > 0 ? score / max : 0;
|
|
8
|
-
if (ratio >= 0.8)
|
|
9
|
-
return 'text-success';
|
|
10
|
-
if (ratio >= 0.5)
|
|
11
|
-
return 'text-warning';
|
|
12
|
-
return 'text-destructive';
|
|
13
|
-
}
|
|
14
|
-
function getBarColor(score, max) {
|
|
15
|
-
const ratio = max > 0 ? score / max : 0;
|
|
16
|
-
if (ratio >= 0.8)
|
|
17
|
-
return 'bg-success';
|
|
18
|
-
if (ratio >= 0.5)
|
|
19
|
-
return 'bg-warning';
|
|
20
|
-
return 'bg-destructive';
|
|
21
|
-
}
|
|
22
|
-
function getScoreLabel(score) {
|
|
23
|
-
if (score >= 80)
|
|
24
|
-
return 'Excellent';
|
|
25
|
-
if (score >= 65)
|
|
26
|
-
return 'Good';
|
|
27
|
-
if (score >= 50)
|
|
28
|
-
return 'Needs Work';
|
|
29
|
-
return 'Poor';
|
|
30
|
-
}
|
|
31
|
-
function getRingStrokeColor(score) {
|
|
32
|
-
if (score >= 80)
|
|
33
|
-
return 'rgb(34, 197, 94)';
|
|
34
|
-
if (score >= 50)
|
|
35
|
-
return 'rgb(245, 158, 11)';
|
|
36
|
-
return 'rgb(239, 68, 68)';
|
|
37
|
-
}
|
|
38
|
-
function StatusIcon({ status }) {
|
|
39
|
-
switch (status) {
|
|
40
|
-
case 'good':
|
|
41
|
-
return _jsx(CheckCircle2, { size: 14, className: "text-success shrink-0" });
|
|
42
|
-
case 'warning':
|
|
43
|
-
return _jsx(AlertCircle, { size: 14, className: "text-warning shrink-0" });
|
|
44
|
-
case 'error':
|
|
45
|
-
return _jsx(XCircle, { size: 14, className: "text-destructive shrink-0" });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function SeverityBadge({ severity }) {
|
|
49
|
-
const classes = {
|
|
50
|
-
important: 'bg-destructive/10 text-destructive',
|
|
51
|
-
suggestion: 'bg-warning/10 text-warning',
|
|
52
|
-
info: 'bg-info/10 text-info',
|
|
53
|
-
};
|
|
54
|
-
return (_jsx("span", { className: `inline-block rounded px-1.5 py-0.5 text-xs font-medium ${classes[severity]}`, children: severity }));
|
|
55
|
-
}
|
|
56
|
-
function ScoreRing({ score }) {
|
|
57
|
-
const radius = 32;
|
|
58
|
-
const strokeWidth = 6;
|
|
59
|
-
const circumference = 2 * Math.PI * radius;
|
|
60
|
-
const progress = Math.min(score, 100) / 100;
|
|
61
|
-
const dashOffset = circumference * (1 - progress);
|
|
62
|
-
const size = (radius + strokeWidth) * 2;
|
|
63
|
-
return (_jsxs("div", { className: "flex flex-col items-center gap-2", children: [_jsxs("div", { className: "relative", children: [_jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, className: "-rotate-90", children: [_jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: "var(--border)", strokeWidth: strokeWidth }), _jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: getRingStrokeColor(score), strokeWidth: strokeWidth, strokeDasharray: circumference, strokeDashoffset: dashOffset, strokeLinecap: "round", className: "transition-all duration-700 ease-out" })] }), _jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: _jsx("span", { className: `text-lg font-medium ${getScoreColor(score, 100)}`, children: score }) })] }), _jsx("span", { className: "text-muted-foreground text-xs", children: getScoreLabel(score) })] }));
|
|
64
|
-
}
|
|
65
|
-
function CategoryRow({ category, expanded, onToggle, }) {
|
|
66
|
-
const percentage = category.maxScore > 0 ? (category.score / category.maxScore) * 100 : 0;
|
|
67
|
-
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 flex-col gap-2 px-4 py-3 text-left transition-colors", onClick: onToggle, "aria-expanded": expanded, children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-foreground text-xs font-medium", children: category.label }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("span", { className: "text-muted-foreground text-xs", children: [category.score, "/", category.maxScore] }), expanded ? (_jsx(ChevronUp, { size: 14, className: "text-muted-foreground" })) : (_jsx(ChevronDown, { size: 14, className: "text-muted-foreground" }))] })] }), _jsx("div", { className: "bg-muted h-1.5 w-full overflow-hidden rounded-full", children: _jsx("div", { className: `h-full rounded-full transition-all duration-500 ease-out ${getBarColor(category.score, category.maxScore)}`, style: { width: `${percentage}%` } }) })] }), expanded && category.checks.length > 0 && (_jsx("div", { className: "flex flex-col gap-2 px-4 pb-3", children: category.checks.map((check) => (_jsxs("div", { className: "flex items-start gap-2 pl-1", children: [_jsx(StatusIcon, { status: check.status }), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-foreground text-xs font-medium", children: check.label }), _jsx("span", { className: "text-muted-foreground text-xs", children: check.detail })] })] }, check.id))) }))] }));
|
|
68
|
-
}
|
|
69
|
-
function SuggestionsList({ suggestions }) {
|
|
70
|
-
const sorted = useMemo(() => {
|
|
71
|
-
const order = {
|
|
72
|
-
important: 0,
|
|
73
|
-
suggestion: 1,
|
|
74
|
-
info: 2,
|
|
75
|
-
};
|
|
76
|
-
return [...suggestions].sort((a, b) => order[a.severity] - order[b.severity]);
|
|
77
|
-
}, [suggestions]);
|
|
78
|
-
if (sorted.length === 0)
|
|
79
|
-
return null;
|
|
80
|
-
return (_jsxs("div", { className: "border-border border-t px-4 py-3", children: [_jsxs("div", { className: "mb-3 flex items-center gap-2", children: [_jsx(Lightbulb, { size: 14, className: "text-muted-foreground" }), _jsx("span", { className: "text-foreground text-xs font-medium", children: "Suggestions" })] }), _jsx("div", { className: "flex flex-col gap-2.5", children: sorted.map((suggestion) => (_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(SeverityBadge, { severity: suggestion.severity }), _jsx("span", { className: "text-muted-foreground text-xs leading-relaxed", children: suggestion.message })] }, suggestion.id))) })] }));
|
|
81
|
-
}
|
|
82
|
-
export function DesignScorePanel({ tree }) {
|
|
83
|
-
const analysis = useMemo(() => analyzeDesign(tree), [tree]);
|
|
84
|
-
const [expandedCategories, setExpandedCategories] = useState([]);
|
|
85
|
-
const toggleCategory = (name) => {
|
|
86
|
-
setExpandedCategories((prev) => prev.includes(name) ? prev.filter((n) => n !== name) : [...prev, name]);
|
|
87
|
-
};
|
|
88
|
-
if (!tree.children || tree.children.length === 0) {
|
|
89
|
-
return (_jsxs("div", { className: "flex min-h-[200px] flex-col items-center justify-center p-6 text-center", children: [_jsx(Palette, { size: 32, className: "text-muted-foreground mb-3" }), _jsx("p", { className: "text-foreground mb-1 text-sm font-medium", children: "Design Score" }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Add sections to your page to see the design analysis" })] }));
|
|
90
|
-
}
|
|
91
|
-
return (_jsxs("div", { className: "flex flex-col", children: [_jsx("div", { className: "border-border flex flex-col items-center border-b py-5", children: _jsx(ScoreRing, { score: analysis.score }) }), _jsx("div", { className: "flex flex-col", children: analysis.categories.map((category) => (_jsx(CategoryRow, { category: category, expanded: expandedCategories.includes(category.name), onToggle: () => toggleCategory(category.name) }, category.name))) }), _jsx(SuggestionsList, { suggestions: analysis.suggestions })] }));
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=DesignScore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DesignScore.js","sourceRoot":"","sources":["../../../src/views/page-builder/DesignScore.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { SectionNode, ContainerNode, RowNode, ColumnNode } from '@prenta/core';
|
|
2
|
-
export interface NodeSettingsProps {
|
|
3
|
-
node: SectionNode | ContainerNode | RowNode | ColumnNode;
|
|
4
|
-
onUpdateSettings: (id: string, settings: Record<string, unknown>) => void;
|
|
5
|
-
onRemoveNode: (id: string) => void;
|
|
6
|
-
onDuplicateNode: (id: string) => void;
|
|
7
|
-
onMoveNodeUp: (id: string) => void;
|
|
8
|
-
onMoveNodeDown: (id: string) => void;
|
|
9
|
-
onAddRow?: (sectionId: string) => void;
|
|
10
|
-
}
|
|
11
|
-
export declare function NodeSettings({ node, onUpdateSettings, onRemoveNode, onDuplicateNode, onMoveNodeUp, onMoveNodeDown, onAddRow, }: NodeSettingsProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
//# sourceMappingURL=NodeSettings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSettings.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/NodeSettings.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAe,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEhG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,CAAA;IACxD,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACzE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAkBD,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,cAAc,EACd,QAAQ,GACT,EAAE,iBAAiB,2CA6FnB"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useCallback } from 'react';
|
|
4
|
-
import { ArrowUp, ArrowDown, Copy, Trash2, Plus, AlignLeft, AlignCenter, AlignRight, ArrowUpFromLine, ArrowDownToLine, Minus, } from 'lucide-react';
|
|
5
|
-
import { Toggle } from '../../components/ui/Toggle.js';
|
|
6
|
-
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';
|
|
7
|
-
const LABEL_CLASS = 'text-sm font-medium text-foreground mb-1 block';
|
|
8
|
-
const SECTION_HEADING_CLASS = 'text-xs font-medium uppercase tracking-wider text-muted-foreground mb-2';
|
|
9
|
-
const COLUMN_PRESETS = [
|
|
10
|
-
{ label: '12', widths: [12] },
|
|
11
|
-
{ label: '6 | 6', widths: [6, 6] },
|
|
12
|
-
{ label: '4 | 4 | 4', widths: [4, 4, 4] },
|
|
13
|
-
{ label: '3 | 3 | 3 | 3', widths: [3, 3, 3, 3] },
|
|
14
|
-
{ label: '8 | 4', widths: [8, 4] },
|
|
15
|
-
{ label: '4 | 8', widths: [4, 8] },
|
|
16
|
-
{ label: '3 | 6 | 3', widths: [3, 6, 3] },
|
|
17
|
-
];
|
|
18
|
-
export function NodeSettings({ node, onUpdateSettings, onRemoveNode, onDuplicateNode, onMoveNodeUp, onMoveNodeDown, onAddRow, }) {
|
|
19
|
-
const [confirmDelete, setConfirmDelete] = useState(false);
|
|
20
|
-
const updateSetting = useCallback((key, value) => {
|
|
21
|
-
onUpdateSettings(node.id, { [key]: value });
|
|
22
|
-
}, [node.id, onUpdateSettings]);
|
|
23
|
-
const handleDelete = useCallback(() => {
|
|
24
|
-
if (confirmDelete) {
|
|
25
|
-
onRemoveNode(node.id);
|
|
26
|
-
setConfirmDelete(false);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
setConfirmDelete(true);
|
|
30
|
-
}
|
|
31
|
-
}, [confirmDelete, node.id, onRemoveNode]);
|
|
32
|
-
const nodeLabel = node.type === 'section'
|
|
33
|
-
? 'Section'
|
|
34
|
-
: node.type === 'container'
|
|
35
|
-
? 'Container'
|
|
36
|
-
: node.type === 'row'
|
|
37
|
-
? 'Row'
|
|
38
|
-
: 'Column';
|
|
39
|
-
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsx("div", { className: "border-border border-b p-4", children: _jsxs("p", { className: "text-foreground text-sm font-medium", children: [nodeLabel, " Settings"] }) }), _jsx("div", { className: "flex-1 overflow-y-auto", children: _jsxs("div", { className: "space-y-4 p-4", children: [node.type === 'section' && (_jsx(SectionFields, { node: node, updateSetting: updateSetting, onAddRow: onAddRow })), node.type === 'container' && (_jsx(ContainerFields, { node: node, updateSetting: updateSetting })), node.type === 'row' && _jsx(RowFields, { node: node, updateSetting: updateSetting }), node.type === 'column' && _jsx(ColumnFields, { node: node, updateSetting: updateSetting })] }) }), _jsxs("div", { className: "border-border space-y-2 border-t p-4", children: [_jsx("p", { className: SECTION_HEADING_CLASS, children: "Actions" }), _jsxs("div", { className: "flex gap-2", children: [_jsxs("button", { type: "button", onClick: () => onMoveNodeUp(node.id), "aria-label": "Move up", className: "bg-background border-input hover:bg-accent flex flex-1 items-center justify-center gap-1.5 rounded-md border px-3 py-2 text-sm transition-colors", children: [_jsx(ArrowUp, { size: 14 }), "Up"] }), _jsxs("button", { type: "button", onClick: () => onMoveNodeDown(node.id), "aria-label": "Move down", className: "bg-background border-input hover:bg-accent flex flex-1 items-center justify-center gap-1.5 rounded-md border px-3 py-2 text-sm transition-colors", children: [_jsx(ArrowDown, { size: 14 }), "Down"] })] }), _jsxs("button", { type: "button", onClick: () => onDuplicateNode(node.id), className: "bg-background border-input hover:bg-accent flex w-full items-center justify-center gap-2 rounded-md border px-3 py-2 text-sm font-medium transition-colors", children: [_jsx(Copy, { size: 14 }), "Duplicate"] }), _jsxs("button", { type: "button", onClick: handleDelete, onBlur: () => setConfirmDelete(false), className: `flex w-full items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition-colors ${confirmDelete
|
|
40
|
-
? 'bg-destructive text-destructive-foreground'
|
|
41
|
-
: 'bg-background border-destructive text-destructive hover:bg-destructive/10 border'}`, children: [_jsx(Trash2, { size: 14 }), confirmDelete ? 'Click again to confirm' : 'Delete'] })] })] }));
|
|
42
|
-
}
|
|
43
|
-
function SectionFields({ node, updateSetting, onAddRow, }) {
|
|
44
|
-
const s = node.settings;
|
|
45
|
-
return (_jsxs(_Fragment, { children: [_jsx("p", { className: SECTION_HEADING_CLASS, children: "Background" }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Background Color" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { type: "color", value: s.background ?? '#ffffff', onChange: (e) => updateSetting('background', e.target.value), className: "border-input h-9 w-9 cursor-pointer rounded-md border" }), _jsx("input", { type: "text", value: s.background ?? '', onChange: (e) => updateSetting('background', e.target.value), placeholder: "transparent", className: `${INPUT_CLASS} flex-1` })] })] }), _jsx("p", { className: SECTION_HEADING_CLASS, children: "Spacing" }), _jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Padding Top" }), _jsx("input", { type: "text", value: s.paddingTop ?? '', onChange: (e) => updateSetting('paddingTop', e.target.value), placeholder: "0px", className: INPUT_CLASS })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Padding Bottom" }), _jsx("input", { type: "text", value: s.paddingBottom ?? '', onChange: (e) => updateSetting('paddingBottom', e.target.value), placeholder: "0px", className: INPUT_CLASS })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Margin Top" }), _jsx("input", { type: "text", value: s.marginTop ?? '', onChange: (e) => updateSetting('marginTop', e.target.value), placeholder: "0px", className: INPUT_CLASS })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Margin Bottom" }), _jsx("input", { type: "text", value: s.marginBottom ?? '', onChange: (e) => updateSetting('marginBottom', e.target.value), placeholder: "0px", className: INPUT_CLASS })] })] }), _jsx("p", { className: SECTION_HEADING_CLASS, children: "Attributes" }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("label", { className: "text-foreground text-sm font-medium", children: "Visibility" }), _jsx(Toggle, { checked: s.visibility !== 'hidden', onCheckedChange: (checked) => updateSetting('visibility', checked ? 'visible' : 'hidden'), "aria-label": "Section visibility" })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "HTML ID" }), _jsx("input", { type: "text", value: s.htmlId ?? '', onChange: (e) => updateSetting('htmlId', e.target.value), placeholder: "section-id", className: INPUT_CLASS })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "HTML Class" }), _jsx("input", { type: "text", value: s.htmlClass ?? '', onChange: (e) => updateSetting('htmlClass', e.target.value), placeholder: "my-class", className: INPUT_CLASS })] }), onAddRow && (_jsxs("button", { type: "button", onClick: () => onAddRow(node.id), className: "bg-primary text-primary-foreground hover:bg-primary/90 flex w-full items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition-colors", children: [_jsx(Plus, { size: 14 }), "Add Row"] }))] }));
|
|
46
|
-
}
|
|
47
|
-
function ContainerFields({ node, updateSetting, }) {
|
|
48
|
-
const s = node.settings;
|
|
49
|
-
return (_jsxs(_Fragment, { children: [_jsx("p", { className: SECTION_HEADING_CLASS, children: "Layout" }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Max Width" }), _jsx("input", { type: "text", value: s.maxWidth ?? '', onChange: (e) => updateSetting('maxWidth', e.target.value), placeholder: "1200px", className: INPUT_CLASS })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Alignment" }), _jsx("div", { className: "flex gap-1", children: ['left', 'center', 'right'].map((align) => {
|
|
50
|
-
const Icon = align === 'left' ? AlignLeft : align === 'center' ? AlignCenter : AlignRight;
|
|
51
|
-
return (_jsx("button", { type: "button", onClick: () => updateSetting('alignment', align), "aria-label": `Align ${align}`, className: `flex flex-1 items-center justify-center rounded-md border py-2 transition-colors ${s.alignment === align
|
|
52
|
-
? 'bg-primary text-primary-foreground border-primary'
|
|
53
|
-
: 'bg-background border-input hover:bg-accent'}`, children: _jsx(Icon, { size: 14 }) }, align));
|
|
54
|
-
}) })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Padding" }), _jsx("input", { type: "text", value: s.padding ?? '', onChange: (e) => updateSetting('padding', e.target.value), placeholder: "0px", className: INPUT_CLASS })] })] }));
|
|
55
|
-
}
|
|
56
|
-
function RowFields({ node, updateSetting, }) {
|
|
57
|
-
const s = node.settings;
|
|
58
|
-
return (_jsxs(_Fragment, { children: [_jsx("p", { className: SECTION_HEADING_CLASS, children: "Layout" }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Gap" }), _jsx("input", { type: "text", value: s.gap ?? '', onChange: (e) => updateSetting('gap', e.target.value), placeholder: "16px", className: INPUT_CLASS })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Vertical Align" }), _jsx("div", { className: "flex gap-1", children: ['top', 'center', 'bottom', 'stretch'].map((align) => {
|
|
59
|
-
const Icon = align === 'top'
|
|
60
|
-
? ArrowUpFromLine
|
|
61
|
-
: align === 'bottom'
|
|
62
|
-
? ArrowDownToLine
|
|
63
|
-
: align === 'center'
|
|
64
|
-
? Minus
|
|
65
|
-
: AlignCenter;
|
|
66
|
-
return (_jsx("button", { type: "button", onClick: () => updateSetting('verticalAlign', align), "aria-label": `Align ${align}`, className: `flex flex-1 items-center justify-center rounded-md border py-2 text-xs transition-colors ${s.verticalAlign === align
|
|
67
|
-
? 'bg-primary text-primary-foreground border-primary'
|
|
68
|
-
: 'bg-background border-input hover:bg-accent'}`, children: _jsx(Icon, { size: 14 }) }, align));
|
|
69
|
-
}) })] }), _jsx("p", { className: SECTION_HEADING_CLASS, children: "Mobile" }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("label", { className: "text-foreground text-sm font-medium", children: "Reverse on Mobile" }), _jsx(Toggle, { checked: !!s.reverseOnMobile, onCheckedChange: (checked) => updateSetting('reverseOnMobile', checked), "aria-label": "Reverse column order on mobile" })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("label", { className: "text-foreground text-sm font-medium", children: "Wrap on Mobile" }), _jsx(Toggle, { checked: !!s.wrapOnMobile, onCheckedChange: (checked) => updateSetting('wrapOnMobile', checked), "aria-label": "Wrap columns on mobile" })] }), _jsx("p", { className: SECTION_HEADING_CLASS, children: "Column Presets" }), _jsx("div", { className: "grid grid-cols-2 gap-1.5", children: COLUMN_PRESETS.map((preset) => (_jsxs("button", { type: "button", onClick: () => updateSetting('__columnPreset', preset.widths), className: "border-input bg-background hover:bg-accent rounded-md border px-2 py-2 transition-colors", children: [_jsx("div", { className: "flex h-4 gap-0.5", children: preset.widths.map((w, i) => (_jsx("div", { className: "bg-muted-foreground/30 rounded-sm", style: { flex: w } }, i))) }), _jsx("p", { className: "text-muted-foreground mt-1 text-center text-xs", children: preset.widths.join(' | ') })] }, preset.label))) })] }));
|
|
70
|
-
}
|
|
71
|
-
function ColumnFields({ node, updateSetting, }) {
|
|
72
|
-
const s = node.settings;
|
|
73
|
-
return (_jsxs(_Fragment, { children: [_jsx("p", { className: SECTION_HEADING_CLASS, children: "Size" }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Width (1-12)" }), _jsx("input", { type: "number", min: 1, max: 12, value: s.width, onChange: (e) => updateSetting('width', Number(e.target.value)), className: INPUT_CLASS })] }), _jsx("p", { className: SECTION_HEADING_CLASS, children: "Layout" }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Vertical Align" }), _jsx("div", { className: "flex gap-1", children: ['top', 'center', 'bottom'].map((align) => {
|
|
74
|
-
const Icon = align === 'top' ? ArrowUpFromLine : align === 'bottom' ? ArrowDownToLine : Minus;
|
|
75
|
-
return (_jsx("button", { type: "button", onClick: () => updateSetting('verticalAlign', align), "aria-label": `Align ${align}`, className: `flex flex-1 items-center justify-center rounded-md border py-2 transition-colors ${s.verticalAlign === align
|
|
76
|
-
? 'bg-primary text-primary-foreground border-primary'
|
|
77
|
-
: 'bg-background border-input hover:bg-accent'}`, children: _jsx(Icon, { size: 14 }) }, align));
|
|
78
|
-
}) })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Padding" }), _jsx("input", { type: "text", value: s.padding ?? '', onChange: (e) => updateSetting('padding', e.target.value), placeholder: "0px", className: INPUT_CLASS })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: "Background Color" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { type: "color", value: s.background ?? '#ffffff', onChange: (e) => updateSetting('background', e.target.value), className: "border-input h-9 w-9 cursor-pointer rounded-md border" }), _jsx("input", { type: "text", value: s.background ?? '', onChange: (e) => updateSetting('background', e.target.value), placeholder: "transparent", className: `${INPUT_CLASS} flex-1` })] })] })] }));
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=NodeSettings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSettings.js","sourceRoot":"","sources":["../../../src/views/page-builder/NodeSettings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface PageBuilderProps {
|
|
2
|
-
documentId?: string;
|
|
3
|
-
/** Seed a NEW page from a saved template (`/page-builder/new?template=<id>`). */
|
|
4
|
-
templateId?: string;
|
|
5
|
-
collectionSlug: string;
|
|
6
|
-
config: any;
|
|
7
|
-
onNavigate: (path: string) => void;
|
|
8
|
-
}
|
|
9
|
-
export declare function PageBuilder({ documentId, templateId, collectionSlug, config, onNavigate, }: PageBuilderProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
//# sourceMappingURL=PageBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PageBuilder.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/PageBuilder.tsx"],"names":[],"mappings":"AAsBA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AA+BD,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,UAAU,EACV,cAAc,EACd,MAAM,EACN,UAAU,GACX,EAAE,gBAAgB,2CAkVlB"}
|