@prenta/admin 0.92.0 → 0.93.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 +552 -0
- package/design-system/tokens.css +173 -71
- package/design-system/tokens.json +244 -63
- package/design-system/tokens.scss +203 -98
- package/design-system/tokens.tailwind.cjs +93 -38
- package/dist/AdminRoot.d.ts +27 -6
- package/dist/AdminRoot.d.ts.map +1 -1
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/components/breakpoint-controls.render.test.d.ts +2 -0
- package/dist/__tests__/components/breakpoint-controls.render.test.d.ts.map +1 -0
- package/dist/__tests__/components/breakpoint-controls.render.test.js +51 -0
- package/dist/__tests__/components/breakpoint-controls.render.test.js.map +1 -0
- package/dist/__tests__/components/canvas-edit-tip.render.test.d.ts +2 -0
- package/dist/__tests__/components/canvas-edit-tip.render.test.d.ts.map +1 -0
- package/dist/__tests__/components/canvas-edit-tip.render.test.js +37 -0
- package/dist/__tests__/components/canvas-edit-tip.render.test.js.map +1 -0
- package/dist/__tests__/components/editor-rail.render.test.d.ts +2 -0
- package/dist/__tests__/components/editor-rail.render.test.d.ts.map +1 -0
- package/dist/__tests__/components/editor-rail.render.test.js +138 -0
- package/dist/__tests__/components/editor-rail.render.test.js.map +1 -0
- package/dist/__tests__/components/media-block.render.test.d.ts +2 -0
- package/dist/__tests__/components/media-block.render.test.d.ts.map +1 -0
- package/dist/__tests__/components/media-block.render.test.js +108 -0
- package/dist/__tests__/components/media-block.render.test.js.map +1 -0
- package/dist/__tests__/components/page-audit-panel.render.test.d.ts +2 -0
- package/dist/__tests__/components/page-audit-panel.render.test.d.ts.map +1 -0
- package/dist/__tests__/components/page-audit-panel.render.test.js +59 -0
- package/dist/__tests__/components/page-audit-panel.render.test.js.map +1 -0
- package/dist/__tests__/components/reflow-meter.render.test.d.ts +2 -0
- package/dist/__tests__/components/reflow-meter.render.test.d.ts.map +1 -0
- package/dist/__tests__/components/reflow-meter.render.test.js +94 -0
- package/dist/__tests__/components/reflow-meter.render.test.js.map +1 -0
- package/dist/__tests__/components/seo-char-count.test.js +24 -6
- package/dist/__tests__/components/seo-char-count.test.js.map +1 -1
- package/dist/__tests__/components/serp-preview.render.test.d.ts +2 -0
- package/dist/__tests__/components/serp-preview.render.test.d.ts.map +1 -0
- package/dist/__tests__/components/serp-preview.render.test.js +25 -0
- package/dist/__tests__/components/serp-preview.render.test.js.map +1 -0
- package/dist/__tests__/lib/breakpoints.test.d.ts +2 -0
- package/dist/__tests__/lib/breakpoints.test.d.ts.map +1 -0
- package/dist/__tests__/lib/breakpoints.test.js +67 -0
- package/dist/__tests__/lib/breakpoints.test.js.map +1 -0
- package/dist/__tests__/lib/canvas-edit-chrome.test.d.ts +2 -0
- package/dist/__tests__/lib/canvas-edit-chrome.test.d.ts.map +1 -0
- package/dist/__tests__/lib/canvas-edit-chrome.test.js +44 -0
- package/dist/__tests__/lib/canvas-edit-chrome.test.js.map +1 -0
- package/dist/__tests__/lib/media-format.test.d.ts +2 -0
- package/dist/__tests__/lib/media-format.test.d.ts.map +1 -0
- package/dist/__tests__/lib/media-format.test.js +70 -0
- package/dist/__tests__/lib/media-format.test.js.map +1 -0
- package/dist/__tests__/lib/page-audit-input.test.d.ts +2 -0
- package/dist/__tests__/lib/page-audit-input.test.d.ts.map +1 -0
- package/dist/__tests__/lib/page-audit-input.test.js +122 -0
- package/dist/__tests__/lib/page-audit-input.test.js.map +1 -0
- package/dist/__tests__/lib/page-editor-service.test.js +2 -0
- package/dist/__tests__/lib/page-editor-service.test.js.map +1 -1
- package/dist/__tests__/lib/page-redirect.test.d.ts +2 -0
- package/dist/__tests__/lib/page-redirect.test.d.ts.map +1 -0
- package/dist/__tests__/lib/page-redirect.test.js +26 -0
- package/dist/__tests__/lib/page-redirect.test.js.map +1 -0
- package/dist/__tests__/lib/rail-width.test.d.ts +2 -0
- package/dist/__tests__/lib/rail-width.test.d.ts.map +1 -0
- package/dist/__tests__/lib/rail-width.test.js +69 -0
- package/dist/__tests__/lib/rail-width.test.js.map +1 -0
- package/dist/__tests__/lib/reflow-baseline.test.d.ts +2 -0
- package/dist/__tests__/lib/reflow-baseline.test.d.ts.map +1 -0
- package/dist/__tests__/lib/reflow-baseline.test.js +56 -0
- package/dist/__tests__/lib/reflow-baseline.test.js.map +1 -0
- package/dist/__tests__/lib/reflow-probe.test.d.ts +2 -0
- package/dist/__tests__/lib/reflow-probe.test.d.ts.map +1 -0
- package/dist/__tests__/lib/reflow-probe.test.js +73 -0
- package/dist/__tests__/lib/reflow-probe.test.js.map +1 -0
- package/dist/__tests__/styles/canvas-container-queries.test.d.ts +2 -0
- package/dist/__tests__/styles/canvas-container-queries.test.d.ts.map +1 -0
- package/dist/__tests__/styles/canvas-container-queries.test.js +87 -0
- package/dist/__tests__/styles/canvas-container-queries.test.js.map +1 -0
- package/dist/__tests__/styles/packaging.test.d.ts +2 -0
- package/dist/__tests__/styles/packaging.test.d.ts.map +1 -0
- package/dist/__tests__/styles/packaging.test.js +31 -0
- package/dist/__tests__/styles/packaging.test.js.map +1 -0
- package/dist/__tests__/styles/tokens-drift.test.d.ts +2 -0
- package/dist/__tests__/styles/tokens-drift.test.d.ts.map +1 -0
- package/dist/__tests__/styles/tokens-drift.test.js +92 -0
- package/dist/__tests__/styles/tokens-drift.test.js.map +1 -0
- package/dist/__tests__/views/admin-renderer-compat.test.d.ts +2 -0
- package/dist/__tests__/views/admin-renderer-compat.test.d.ts.map +1 -0
- package/dist/__tests__/views/admin-renderer-compat.test.js +43 -0
- package/dist/__tests__/views/admin-renderer-compat.test.js.map +1 -0
- package/dist/__tests__/views/admin-section-renderers.test.js +52 -4
- package/dist/__tests__/views/admin-section-renderers.test.js.map +1 -1
- package/dist/__tests__/views/editor-top-bar.render.test.js +1 -1
- package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
- package/dist/__tests__/views/page-tab.render.test.d.ts +2 -0
- package/dist/__tests__/views/page-tab.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/page-tab.render.test.js +151 -0
- package/dist/__tests__/views/page-tab.render.test.js.map +1 -0
- package/dist/__tests__/views/section-class-parity.test.d.ts +2 -0
- package/dist/__tests__/views/section-class-parity.test.d.ts.map +1 -0
- package/dist/__tests__/views/section-class-parity.test.js +81 -0
- package/dist/__tests__/views/section-class-parity.test.js.map +1 -0
- package/dist/__tests__/views/sections-panel-design-owned.render.test.d.ts +2 -0
- package/dist/__tests__/views/sections-panel-design-owned.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/sections-panel-design-owned.render.test.js +86 -0
- package/dist/__tests__/views/sections-panel-design-owned.render.test.js.map +1 -0
- package/dist/components/BreakpointPicker.d.ts +18 -0
- package/dist/components/BreakpointPicker.d.ts.map +1 -0
- package/dist/components/BreakpointPicker.js +31 -0
- package/dist/components/BreakpointPicker.js.map +1 -0
- package/dist/components/CanvasEditTip.d.ts +6 -0
- package/dist/components/CanvasEditTip.d.ts.map +1 -0
- package/dist/components/CanvasEditTip.js +22 -0
- package/dist/components/CanvasEditTip.js.map +1 -0
- package/dist/components/EditorRail.d.ts +36 -0
- package/dist/components/EditorRail.d.ts.map +1 -0
- package/dist/components/EditorRail.js +104 -0
- package/dist/components/EditorRail.js.map +1 -0
- package/dist/components/EditorRailTabs.d.ts +32 -0
- package/dist/components/EditorRailTabs.d.ts.map +1 -0
- package/dist/components/EditorRailTabs.js +45 -0
- package/dist/components/EditorRailTabs.js.map +1 -0
- package/dist/components/MediaBlock.d.ts +49 -0
- package/dist/components/MediaBlock.d.ts.map +1 -0
- package/dist/components/MediaBlock.js +50 -0
- package/dist/components/MediaBlock.js.map +1 -0
- package/dist/components/ReflowMeter.d.ts +28 -0
- package/dist/components/ReflowMeter.d.ts.map +1 -0
- package/dist/components/ReflowMeter.js +42 -0
- package/dist/components/ReflowMeter.js.map +1 -0
- package/dist/components/ZoomChip.d.ts +17 -0
- package/dist/components/ZoomChip.d.ts.map +1 -0
- package/dist/components/ZoomChip.js +17 -0
- package/dist/components/ZoomChip.js.map +1 -0
- package/dist/components/breakpoint-icons.d.ts +3 -0
- package/dist/components/breakpoint-icons.d.ts.map +1 -0
- package/dist/components/breakpoint-icons.js +16 -0
- package/dist/components/breakpoint-icons.js.map +1 -0
- package/dist/components/page-tab/AuthorPicker.d.ts +31 -0
- package/dist/components/page-tab/AuthorPicker.d.ts.map +1 -0
- package/dist/components/page-tab/AuthorPicker.js +95 -0
- package/dist/components/page-tab/AuthorPicker.js.map +1 -0
- package/dist/components/page-tab/DirectiveSwitch.d.ts +38 -0
- package/dist/components/page-tab/DirectiveSwitch.d.ts.map +1 -0
- package/dist/components/page-tab/DirectiveSwitch.js +29 -0
- package/dist/components/page-tab/DirectiveSwitch.js.map +1 -0
- package/dist/components/seo/EditorSeoScoreBadge.d.ts +8 -1
- package/dist/components/seo/EditorSeoScoreBadge.d.ts.map +1 -1
- package/dist/components/seo/EditorSeoScoreBadge.js +2 -2
- package/dist/components/seo/EditorSeoScoreBadge.js.map +1 -1
- package/dist/components/seo/PageAuditPanel.d.ts +14 -0
- package/dist/components/seo/PageAuditPanel.d.ts.map +1 -0
- package/dist/components/seo/PageAuditPanel.js +59 -0
- package/dist/components/seo/PageAuditPanel.js.map +1 -0
- package/dist/components/seo/SeoCharCount.d.ts +19 -7
- package/dist/components/seo/SeoCharCount.d.ts.map +1 -1
- package/dist/components/seo/SeoCharCount.js +30 -16
- package/dist/components/seo/SeoCharCount.js.map +1 -1
- package/dist/components/seo/SeoEditorPane.d.ts +15 -1
- package/dist/components/seo/SeoEditorPane.d.ts.map +1 -1
- package/dist/components/seo/SeoEditorPane.js +118 -21
- package/dist/components/seo/SeoEditorPane.js.map +1 -1
- package/dist/components/seo/SerpPreview.d.ts +20 -0
- package/dist/components/seo/SerpPreview.d.ts.map +1 -0
- package/dist/components/seo/SerpPreview.js +6 -0
- package/dist/components/seo/SerpPreview.js.map +1 -0
- package/dist/hooks/usePageAudit.d.ts +41 -0
- package/dist/hooks/usePageAudit.d.ts.map +1 -0
- package/dist/hooks/usePageAudit.js +68 -0
- package/dist/hooks/usePageAudit.js.map +1 -0
- package/dist/hooks/useReflowGuard.d.ts +47 -0
- package/dist/hooks/useReflowGuard.d.ts.map +1 -0
- package/dist/hooks/useReflowGuard.js +52 -0
- package/dist/hooks/useReflowGuard.js.map +1 -0
- package/dist/lib/breakpoints.d.ts +51 -0
- package/dist/lib/breakpoints.d.ts.map +1 -0
- package/dist/lib/breakpoints.js +84 -0
- package/dist/lib/breakpoints.js.map +1 -0
- package/dist/lib/canvas-edit-chrome.d.ts +22 -0
- package/dist/lib/canvas-edit-chrome.d.ts.map +1 -0
- package/dist/lib/canvas-edit-chrome.js +81 -0
- package/dist/lib/canvas-edit-chrome.js.map +1 -0
- package/dist/lib/media-format.d.ts +55 -0
- package/dist/lib/media-format.d.ts.map +1 -0
- package/dist/lib/media-format.js +93 -0
- package/dist/lib/media-format.js.map +1 -0
- package/dist/lib/page-audit-input.d.ts +45 -0
- package/dist/lib/page-audit-input.d.ts.map +1 -0
- package/dist/lib/page-audit-input.js +53 -0
- package/dist/lib/page-audit-input.js.map +1 -0
- package/dist/lib/page-editor-service.d.ts +12 -0
- package/dist/lib/page-editor-service.d.ts.map +1 -1
- package/dist/lib/page-editor-service.js +6 -0
- package/dist/lib/page-editor-service.js.map +1 -1
- package/dist/lib/page-redirect.d.ts +39 -0
- package/dist/lib/page-redirect.d.ts.map +1 -0
- package/dist/lib/page-redirect.js +38 -0
- package/dist/lib/page-redirect.js.map +1 -0
- package/dist/lib/rail-width.d.ts +23 -0
- package/dist/lib/rail-width.d.ts.map +1 -0
- package/dist/lib/rail-width.js +59 -0
- package/dist/lib/rail-width.js.map +1 -0
- package/dist/lib/reflow-baseline.d.ts +45 -0
- package/dist/lib/reflow-baseline.d.ts.map +1 -0
- package/dist/lib/reflow-baseline.js +38 -0
- package/dist/lib/reflow-baseline.js.map +1 -0
- package/dist/lib/reflow-probe.d.ts +159 -0
- package/dist/lib/reflow-probe.d.ts.map +1 -0
- package/dist/lib/reflow-probe.js +228 -0
- package/dist/lib/reflow-probe.js.map +1 -0
- package/dist/lib/seo-service.d.ts +10 -0
- package/dist/lib/seo-service.d.ts.map +1 -1
- package/dist/lib/seo-service.js.map +1 -1
- package/dist/prenta-admin.css +1 -1
- package/dist/views/page-editor/CanvasMetaLine.d.ts +19 -0
- package/dist/views/page-editor/CanvasMetaLine.d.ts.map +1 -0
- package/dist/views/page-editor/CanvasMetaLine.js +23 -0
- package/dist/views/page-editor/CanvasMetaLine.js.map +1 -0
- package/dist/views/page-editor/EditorCanvas.d.ts +34 -8
- package/dist/views/page-editor/EditorCanvas.d.ts.map +1 -1
- package/dist/views/page-editor/EditorCanvas.js +68 -34
- package/dist/views/page-editor/EditorCanvas.js.map +1 -1
- package/dist/views/page-editor/EditorTopBar.d.ts +14 -1
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +8 -17
- package/dist/views/page-editor/EditorTopBar.js.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.js +275 -53
- package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
- package/dist/views/page-editor/PageTab.d.ts +36 -0
- package/dist/views/page-editor/PageTab.d.ts.map +1 -0
- package/dist/views/page-editor/PageTab.js +65 -0
- package/dist/views/page-editor/PageTab.js.map +1 -0
- package/dist/views/page-editor/SectionInspector.d.ts.map +1 -1
- package/dist/views/page-editor/SectionInspector.js +63 -19
- package/dist/views/page-editor/SectionInspector.js.map +1 -1
- package/dist/views/page-editor/SectionsPanel.d.ts +30 -5
- package/dist/views/page-editor/SectionsPanel.d.ts.map +1 -1
- package/dist/views/page-editor/SectionsPanel.js +38 -7
- package/dist/views/page-editor/SectionsPanel.js.map +1 -1
- package/dist/views/page-editor/SitePreviewFrame.d.ts.map +1 -1
- package/dist/views/page-editor/SitePreviewFrame.js +3 -0
- package/dist/views/page-editor/SitePreviewFrame.js.map +1 -1
- package/dist/views/page-editor/reflow-context.d.ts +28 -0
- package/dist/views/page-editor/reflow-context.d.ts.map +1 -0
- package/dist/views/page-editor/reflow-context.js +14 -0
- package/dist/views/page-editor/reflow-context.js.map +1 -0
- package/dist/views/page-editor/sections/ByTheNumbersSection.d.ts.map +1 -1
- package/dist/views/page-editor/sections/ByTheNumbersSection.js +1 -1
- package/dist/views/page-editor/sections/ByTheNumbersSection.js.map +1 -1
- package/dist/views/page-editor/sections/CtaBannerSection.d.ts.map +1 -1
- package/dist/views/page-editor/sections/CtaBannerSection.js +1 -1
- package/dist/views/page-editor/sections/CtaBannerSection.js.map +1 -1
- package/dist/views/page-editor/sections/FeatureHighlightSection.d.ts.map +1 -1
- package/dist/views/page-editor/sections/FeatureHighlightSection.js +2 -2
- package/dist/views/page-editor/sections/FeatureHighlightSection.js.map +1 -1
- package/dist/views/page-editor/sections/GallerySection.d.ts.map +1 -1
- package/dist/views/page-editor/sections/GallerySection.js +7 -3
- package/dist/views/page-editor/sections/GallerySection.js.map +1 -1
- package/dist/views/page-editor/sections/HeroBannerSection.js +1 -1
- package/dist/views/page-editor/sections/HeroBannerSection.js.map +1 -1
- package/dist/views/page-editor/sections/MissionSection.d.ts.map +1 -1
- package/dist/views/page-editor/sections/MissionSection.js +1 -1
- package/dist/views/page-editor/sections/MissionSection.js.map +1 -1
- package/dist/views/page-editor/sections/PullQuoteSection.d.ts.map +1 -1
- package/dist/views/page-editor/sections/PullQuoteSection.js +1 -1
- package/dist/views/page-editor/sections/PullQuoteSection.js.map +1 -1
- package/dist/views/page-editor/sections/RelatedPostsSection.d.ts.map +1 -1
- package/dist/views/page-editor/sections/RelatedPostsSection.js +1 -1
- package/dist/views/page-editor/sections/RelatedPostsSection.js.map +1 -1
- package/dist/views/page-editor/sections/SectionRenderer.d.ts.map +1 -1
- package/dist/views/page-editor/sections/SectionRenderer.js +49 -24
- package/dist/views/page-editor/sections/SectionRenderer.js.map +1 -1
- package/dist/views/page-editor/sections/admin-renderers.d.ts +47 -15
- package/dist/views/page-editor/sections/admin-renderers.d.ts.map +1 -1
- package/dist/views/page-editor/sections/admin-renderers.js +27 -15
- package/dist/views/page-editor/sections/admin-renderers.js.map +1 -1
- package/dist/views/page-editor/sections/parts.d.ts +0 -1
- package/dist/views/page-editor/sections/parts.d.ts.map +1 -1
- package/dist/views/page-editor/sections/parts.js +41 -16
- package/dist/views/page-editor/sections/parts.js.map +1 -1
- package/dist/views/page-editor/viewports.d.ts +7 -14
- package/dist/views/page-editor/viewports.d.ts.map +1 -1
- package/dist/views/page-editor/viewports.js +7 -12
- package/dist/views/page-editor/viewports.js.map +1 -1
- package/dist/views/post-editor/PostEditorCanvas.d.ts +2 -1
- package/dist/views/post-editor/PostEditorCanvas.d.ts.map +1 -1
- package/dist/views/post-editor/PostEditorCanvas.js +5 -2
- package/dist/views/post-editor/PostEditorCanvas.js.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.js +2 -20
- package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
- package/dist/views/post-editor/PostTemplateEditor.d.ts.map +1 -1
- package/dist/views/post-editor/PostTemplateEditor.js +4 -1
- package/dist/views/post-editor/PostTemplateEditor.js.map +1 -1
- package/package.json +5 -3
- package/src/AdminRoot.tsx +27 -6
- package/src/__tests__/components/breakpoint-controls.render.test.tsx +57 -0
- package/src/__tests__/components/canvas-edit-tip.render.test.tsx +41 -0
- package/src/__tests__/components/editor-rail.render.test.tsx +192 -0
- package/src/__tests__/components/media-block.render.test.tsx +126 -0
- package/src/__tests__/components/page-audit-panel.render.test.tsx +64 -0
- package/src/__tests__/components/reflow-meter.render.test.tsx +144 -0
- package/src/__tests__/components/seo-char-count.test.tsx +26 -6
- package/src/__tests__/components/serp-preview.render.test.tsx +32 -0
- package/src/__tests__/lib/breakpoints.test.ts +84 -0
- package/src/__tests__/lib/canvas-edit-chrome.test.ts +56 -0
- package/src/__tests__/lib/media-format.test.ts +89 -0
- package/src/__tests__/lib/page-audit-input.test.ts +144 -0
- package/src/__tests__/lib/page-editor-service.test.ts +2 -0
- package/src/__tests__/lib/page-redirect.test.ts +29 -0
- package/src/__tests__/lib/rail-width.test.ts +86 -0
- package/src/__tests__/lib/reflow-baseline.test.ts +64 -0
- package/src/__tests__/lib/reflow-probe.test.ts +95 -0
- package/src/__tests__/styles/canvas-container-queries.test.ts +103 -0
- package/src/__tests__/styles/packaging.test.ts +38 -0
- package/src/__tests__/styles/tokens-drift.test.ts +110 -0
- package/src/__tests__/views/admin-renderer-compat.test.ts +48 -0
- package/src/__tests__/views/admin-section-renderers.test.tsx +70 -4
- package/src/__tests__/views/editor-top-bar.render.test.tsx +1 -1
- package/src/__tests__/views/page-tab.render.test.tsx +226 -0
- package/src/__tests__/views/section-class-parity.test.ts +98 -0
- package/src/__tests__/views/sections-panel-design-owned.render.test.tsx +104 -0
- package/src/components/BreakpointPicker.tsx +114 -0
- package/src/components/CanvasEditTip.tsx +46 -0
- package/src/components/EditorRail.tsx +219 -0
- package/src/components/EditorRailTabs.tsx +117 -0
- package/src/components/MediaBlock.tsx +223 -0
- package/src/components/ReflowMeter.tsx +125 -0
- package/src/components/ZoomChip.tsx +39 -0
- package/src/components/breakpoint-icons.ts +17 -0
- package/src/components/page-tab/AuthorPicker.tsx +240 -0
- package/src/components/page-tab/DirectiveSwitch.tsx +86 -0
- package/src/components/seo/EditorSeoScoreBadge.tsx +9 -1
- package/src/components/seo/PageAuditPanel.tsx +192 -0
- package/src/components/seo/SeoCharCount.tsx +55 -24
- package/src/components/seo/SeoEditorPane.tsx +213 -31
- package/src/components/seo/SerpPreview.tsx +41 -0
- package/src/hooks/usePageAudit.ts +98 -0
- package/src/hooks/useReflowGuard.ts +96 -0
- package/src/lib/breakpoints.ts +107 -0
- package/src/lib/canvas-edit-chrome.ts +82 -0
- package/src/lib/media-format.ts +99 -0
- package/src/lib/page-audit-input.ts +104 -0
- package/src/lib/page-editor-service.ts +18 -0
- package/src/lib/page-redirect.ts +60 -0
- package/src/lib/rail-width.ts +58 -0
- package/src/lib/reflow-baseline.ts +70 -0
- package/src/lib/reflow-probe.ts +299 -0
- package/src/lib/seo-service.ts +10 -0
- package/src/styles/prenta-tokens.css +120 -42
- package/src/styles/theme.css +130 -0
- package/src/views/page-editor/CanvasMetaLine.tsx +50 -0
- package/src/views/page-editor/EditorCanvas.tsx +109 -50
- package/src/views/page-editor/EditorTopBar.tsx +35 -43
- package/src/views/page-editor/PageSectionEditor.tsx +419 -148
- package/src/views/page-editor/PageTab.tsx +433 -0
- package/src/views/page-editor/SectionInspector.tsx +82 -41
- package/src/views/page-editor/SectionsPanel.tsx +281 -140
- package/src/views/page-editor/SitePreviewFrame.tsx +3 -0
- package/src/views/page-editor/reflow-context.ts +43 -0
- package/src/views/page-editor/sections/ByTheNumbersSection.tsx +3 -2
- package/src/views/page-editor/sections/CtaBannerSection.tsx +3 -1
- package/src/views/page-editor/sections/FeatureHighlightSection.tsx +3 -2
- package/src/views/page-editor/sections/GallerySection.tsx +7 -3
- package/src/views/page-editor/sections/HeroBannerSection.tsx +2 -2
- package/src/views/page-editor/sections/MissionSection.tsx +4 -2
- package/src/views/page-editor/sections/PullQuoteSection.tsx +3 -1
- package/src/views/page-editor/sections/RelatedPostsSection.tsx +2 -1
- package/src/views/page-editor/sections/SectionRenderer.tsx +69 -29
- package/src/views/page-editor/sections/admin-renderers.tsx +54 -15
- package/src/views/page-editor/sections/parts.tsx +46 -18
- package/src/views/page-editor/viewports.ts +13 -26
- package/src/views/post-editor/PostEditorCanvas.tsx +18 -11
- package/src/views/post-editor/PostSectionEditor.tsx +1 -56
- package/src/views/post-editor/PostTemplateEditor.tsx +3 -0
|
@@ -1,21 +1,47 @@
|
|
|
1
|
+
import { type BreakpointId, type Zoom } from '../../lib/breakpoints.js';
|
|
1
2
|
import type { PageSection } from '../../lib/page-editor-service.js';
|
|
2
|
-
import { type ViewportId } from './viewports.js';
|
|
3
3
|
interface EditorCanvasProps {
|
|
4
4
|
sections: PageSection[];
|
|
5
5
|
selectedId: string | null;
|
|
6
|
-
|
|
6
|
+
breakpoint: BreakpointId;
|
|
7
|
+
zoom?: Zoom;
|
|
7
8
|
onSelect: (id: string) => void;
|
|
8
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Reports the measured scale so the header's zoom chip can show a real
|
|
11
|
+
* percentage. Only the canvas knows the available width, so the number has
|
|
12
|
+
* to travel up rather than being recomputed by the header.
|
|
13
|
+
*/
|
|
14
|
+
onScaleChange?: (scale: number) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Reports the canvas surface element, so the reflow guard can clone it. The
|
|
17
|
+
* guard needs the real element rather than a `document.querySelector`, which
|
|
18
|
+
* would also match the site-preview frame's canvas when that is mounted.
|
|
19
|
+
*/
|
|
20
|
+
onCanvasElement?: (el: HTMLElement | null) => void;
|
|
9
21
|
/** Section types rendered as placeholders — shows the "Structure view" notice. */
|
|
10
22
|
structuralTypes?: string[];
|
|
11
23
|
sitePreviewAvailable?: boolean;
|
|
12
24
|
}
|
|
13
25
|
/**
|
|
14
|
-
* The preview canvas.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* a
|
|
26
|
+
* The preview canvas.
|
|
27
|
+
*
|
|
28
|
+
* The canvas renders at the breakpoint's **real CSS width** and is scaled down
|
|
29
|
+
* with a transform. Combined with `container-type: inline-size`, that makes the
|
|
30
|
+
* page reflow against its own width — the same container queries that style the
|
|
31
|
+
* live page decide the layout. A max-width clamp cannot do this: it yields a
|
|
32
|
+
* narrow desktop layout rather than the mobile one.
|
|
33
|
+
*
|
|
34
|
+
* Two measurement rules, both learned the hard way:
|
|
35
|
+
*
|
|
36
|
+
* 1. Available width comes from a **zero-height sentinel** rendered as the
|
|
37
|
+
* panel's first child, not from `panel.clientWidth - padding`. The two
|
|
38
|
+
* disagree once a scrollbar appears or the host scales the preview, and
|
|
39
|
+
* the padding arithmetic silently rots whenever the gutter changes.
|
|
40
|
+
* 2. Both measurements are re-taken on **every render**, not only from the
|
|
41
|
+
* ResizeObserver. Page height changes with every text edit, image swap and
|
|
42
|
+
* show/hide — none of which resize the observed elements. The observer
|
|
43
|
+
* exists for later window resizes; its first callback is not a substitute.
|
|
18
44
|
*/
|
|
19
|
-
export declare function EditorCanvas({ sections, selectedId,
|
|
45
|
+
export declare function EditorCanvas({ sections, selectedId, breakpoint, zoom, onSelect, onScaleChange, onCanvasElement, structuralTypes, sitePreviewAvailable, }: EditorCanvasProps): import("react/jsx-runtime").JSX.Element;
|
|
20
46
|
export {};
|
|
21
47
|
//# sourceMappingURL=EditorCanvas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorCanvas.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/EditorCanvas.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EditorCanvas.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/EditorCanvas.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA2B,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAChG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAInE,UAAU,iBAAiB;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,YAAY,CAAA;IACxB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;IAClD,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAY,EACZ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,eAAoB,EACpB,oBAA4B,GAC7B,EAAE,iBAAiB,2CAoHnB"}
|
|
@@ -1,50 +1,65 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
4
|
-
import { LayoutTemplate
|
|
4
|
+
import { LayoutTemplate } from 'lucide-react';
|
|
5
|
+
import { CanvasEditTip } from '../../components/CanvasEditTip.js';
|
|
6
|
+
import { CanvasMetaLine } from './CanvasMetaLine.js';
|
|
7
|
+
import { fitScale, getBreakpoint } from '../../lib/breakpoints.js';
|
|
5
8
|
import { SectionRenderer } from './sections/index.js';
|
|
6
9
|
import { StructureNotice } from './StructureNotice.js';
|
|
7
|
-
import { getViewport } from './viewports.js';
|
|
8
10
|
/**
|
|
9
|
-
* The preview canvas.
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* a
|
|
11
|
+
* The preview canvas.
|
|
12
|
+
*
|
|
13
|
+
* The canvas renders at the breakpoint's **real CSS width** and is scaled down
|
|
14
|
+
* with a transform. Combined with `container-type: inline-size`, that makes the
|
|
15
|
+
* page reflow against its own width — the same container queries that style the
|
|
16
|
+
* live page decide the layout. A max-width clamp cannot do this: it yields a
|
|
17
|
+
* narrow desktop layout rather than the mobile one.
|
|
18
|
+
*
|
|
19
|
+
* Two measurement rules, both learned the hard way:
|
|
20
|
+
*
|
|
21
|
+
* 1. Available width comes from a **zero-height sentinel** rendered as the
|
|
22
|
+
* panel's first child, not from `panel.clientWidth - padding`. The two
|
|
23
|
+
* disagree once a scrollbar appears or the host scales the preview, and
|
|
24
|
+
* the padding arithmetic silently rots whenever the gutter changes.
|
|
25
|
+
* 2. Both measurements are re-taken on **every render**, not only from the
|
|
26
|
+
* ResizeObserver. Page height changes with every text edit, image swap and
|
|
27
|
+
* show/hide — none of which resize the observed elements. The observer
|
|
28
|
+
* exists for later window resizes; its first callback is not a substitute.
|
|
13
29
|
*/
|
|
14
|
-
export function EditorCanvas({ sections, selectedId,
|
|
15
|
-
const
|
|
16
|
-
const
|
|
30
|
+
export function EditorCanvas({ sections, selectedId, breakpoint, zoom = 'fit', onSelect, onScaleChange, onCanvasElement, structuralTypes = [], sitePreviewAvailable = false, }) {
|
|
31
|
+
const bp = getBreakpoint(breakpoint);
|
|
32
|
+
const sentinelRef = useRef(null);
|
|
17
33
|
const surfaceRef = useRef(null);
|
|
18
34
|
const sectionRefs = useRef(new Map());
|
|
19
|
-
const [
|
|
20
|
-
const [
|
|
35
|
+
const [available, setAvailable] = useState(0);
|
|
36
|
+
const [pageHeight, setPageHeight] = useState(0);
|
|
21
37
|
const registerRef = useCallback((id, el) => {
|
|
22
38
|
if (el)
|
|
23
39
|
sectionRefs.current.set(id, el);
|
|
24
40
|
else
|
|
25
41
|
sectionRefs.current.delete(id);
|
|
26
42
|
}, []);
|
|
27
|
-
//
|
|
43
|
+
// No dependency array: page height changes on edits that resize nothing the
|
|
44
|
+
// observer watches. Both setters bail when the value is unchanged, so this
|
|
45
|
+
// settles after one extra pass instead of looping.
|
|
28
46
|
useLayoutEffect(() => {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
setScale(next > 0 ? next : 1);
|
|
37
|
-
if (surfaceRef.current) {
|
|
38
|
-
setSurfaceHeight(surfaceRef.current.offsetHeight * (next > 0 ? next : 1));
|
|
39
|
-
}
|
|
47
|
+
const measure = () => {
|
|
48
|
+
const sentinelWidth = sentinelRef.current?.offsetWidth ?? 0;
|
|
49
|
+
if (sentinelWidth > 0)
|
|
50
|
+
setAvailable((prev) => (prev === sentinelWidth ? prev : sentinelWidth));
|
|
51
|
+
const height = surfaceRef.current?.offsetHeight ?? 0;
|
|
52
|
+
if (height > 0)
|
|
53
|
+
setPageHeight((prev) => (prev === height ? prev : height));
|
|
40
54
|
};
|
|
41
|
-
|
|
42
|
-
const ro = new ResizeObserver(
|
|
43
|
-
|
|
55
|
+
measure();
|
|
56
|
+
const ro = new ResizeObserver(measure);
|
|
57
|
+
if (sentinelRef.current)
|
|
58
|
+
ro.observe(sentinelRef.current);
|
|
44
59
|
if (surfaceRef.current)
|
|
45
60
|
ro.observe(surfaceRef.current);
|
|
46
61
|
return () => ro.disconnect();
|
|
47
|
-
}
|
|
62
|
+
});
|
|
48
63
|
// Scroll the selected section into view within the canvas.
|
|
49
64
|
useEffect(() => {
|
|
50
65
|
if (!selectedId)
|
|
@@ -53,13 +68,32 @@ export function EditorCanvas({ sections, selectedId, viewport, onSelect, onAddSe
|
|
|
53
68
|
if (el)
|
|
54
69
|
el.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
55
70
|
}, [selectedId]);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
71
|
+
const scale = fitScale(available, bp.width, zoom);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
onScaleChange?.(scale);
|
|
74
|
+
}, [scale, onScaleChange]);
|
|
75
|
+
return (_jsxs("div", { className: "bg-muted h-full overflow-auto px-6 pt-4.5 pb-10 text-center", children: [_jsx("div", { ref: sentinelRef, "aria-hidden": true, className: "h-0" }), sections.length === 0 ? (_jsx(EmptyCanvas, {})) : (_jsxs(_Fragment, { children: [_jsx(CanvasEditTip, {}), _jsx(StructureNotice, { structuralTypes: structuralTypes, sitePreviewAvailable: sitePreviewAvailable }), _jsx(CanvasMetaLine, { breakpoint: bp, pageHeight: pageHeight, scale: scale }), _jsx("div", { className: "mx-auto block", style: {
|
|
76
|
+
width: Math.round(bp.width * scale),
|
|
77
|
+
height: pageHeight ? Math.round(pageHeight * scale) : undefined,
|
|
78
|
+
}, children: _jsx("div", { ref: (el) => {
|
|
79
|
+
surfaceRef.current = el;
|
|
80
|
+
onCanvasElement?.(el);
|
|
81
|
+
},
|
|
82
|
+
// `prenta-canvas` carries `container-type: inline-size` (theme.css)
|
|
83
|
+
// — that is what makes the `@pv-*` steps in the section renderers
|
|
84
|
+
// resolve against the simulated width instead of the viewport.
|
|
85
|
+
className: "prenta-canvas border-border bg-card origin-top-left overflow-hidden rounded-lg text-left shadow-[0_2px_20px_rgba(0,0,0,0.12)] motion-safe:transition-[width,transform] motion-safe:duration-(--mo-slow) motion-safe:ease-(--ease)", style: {
|
|
86
|
+
width: bp.width,
|
|
87
|
+
transform: `scale(${scale})`,
|
|
88
|
+
transformOrigin: 'top left',
|
|
89
|
+
}, children: sections.map((section) => (_jsx(SectionRenderer, { section: section, editable: true, selected: section.id === selectedId, onSelect: onSelect, registerRef: registerRef }, section.id))) }) })] }))] }));
|
|
61
90
|
}
|
|
62
|
-
|
|
63
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Design-owned pages always ship the template's sections, so an empty canvas
|
|
93
|
+
* means the template resolved to nothing — a configuration problem, not an
|
|
94
|
+
* invitation to add a section. There is deliberately no "Add section" button.
|
|
95
|
+
*/
|
|
96
|
+
function EmptyCanvas() {
|
|
97
|
+
return (_jsxs("div", { className: "mx-auto flex h-full max-w-md flex-col items-center justify-center text-center", children: [_jsx("div", { className: "bg-card border-border mb-4 flex h-14 w-14 items-center justify-center rounded-full border", children: _jsx(LayoutTemplate, { className: "text-muted-foreground h-6 w-6", "aria-hidden": true }) }), _jsx("h2", { className: "text-foreground text-lg font-medium", children: "This template renders no sections" }), _jsx("p", { className: "text-muted-foreground mt-1 text-sm", children: "Layout is design-owned \u2014 sections come from the page's template in code. Check that the page has a template assigned, or pick a different one in Page settings." })] }));
|
|
64
98
|
}
|
|
65
99
|
//# sourceMappingURL=EditorCanvas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorCanvas.js","sourceRoot":"","sources":["../../../src/views/page-editor/EditorCanvas.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"EditorCanvas.js","sourceRoot":"","sources":["../../../src/views/page-editor/EditorCanvas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PageStatus } from '../../lib/page-editor-service.js';
|
|
2
|
+
import type { Zoom } from '../../lib/breakpoints.js';
|
|
2
3
|
import { type ViewportId } from './viewports.js';
|
|
3
4
|
export type SaveState = 'idle' | 'saving' | 'saved' | 'error';
|
|
4
5
|
interface EditorTopBarProps {
|
|
@@ -14,6 +15,11 @@ interface EditorTopBarProps {
|
|
|
14
15
|
/** Shown on hover/focus when publish is blocked by validation (not role). */
|
|
15
16
|
publishDisabledReason?: string;
|
|
16
17
|
viewport: ViewportId;
|
|
18
|
+
/** Canvas zoom mode; omit to hide the zoom chip (e.g. the site-preview iframe). */
|
|
19
|
+
zoom?: Zoom;
|
|
20
|
+
/** Scale the canvas actually measured, 0–1 — displayed by the zoom chip. */
|
|
21
|
+
canvasScale?: number;
|
|
22
|
+
onZoom?: (zoom: Zoom) => void;
|
|
17
23
|
/** Breadcrumb root label + back-button text (e.g. "Pages" or "Posts"). */
|
|
18
24
|
backLabel?: string;
|
|
19
25
|
onViewport: (v: ViewportId) => void;
|
|
@@ -42,7 +48,14 @@ interface EditorTopBarProps {
|
|
|
42
48
|
onOpenSeo?: () => void;
|
|
43
49
|
seoOpen?: boolean;
|
|
44
50
|
/** Live 0–100 SEO score shown left of the SEO label. */
|
|
51
|
+
/**
|
|
52
|
+
* 0-100 for the header chip. `undefined` means not known yet — the chip
|
|
53
|
+
* renders without a number rather than defaulting to 0, which would read as
|
|
54
|
+
* a catastrophic score for a page nobody has audited.
|
|
55
|
+
*/
|
|
45
56
|
seoScore?: number;
|
|
57
|
+
/** Band for `seoScore`; omit to derive from the content-analysis scale. */
|
|
58
|
+
seoScoreBand?: 'good' | 'fair' | 'poor';
|
|
46
59
|
onSaveDraft: () => void;
|
|
47
60
|
onPublish: () => void;
|
|
48
61
|
/** Open the schedule-publish dialog. Omitted when the document is unsaved. */
|
|
@@ -59,6 +72,6 @@ interface EditorTopBarProps {
|
|
|
59
72
|
*/
|
|
60
73
|
structuralTypes?: string[];
|
|
61
74
|
}
|
|
62
|
-
export declare function EditorTopBar({ title, status, dirty, saveState, publishing, canEdit, canPublish, publishReady, publishDisabledReason, viewport, backLabel, onViewport, onBack, onPreview, onViewOnSite, onHistory, sitePreview, onToggleSitePreview, onOpenSettings, onOpenSeo, seoOpen, seoScore, onSaveDraft, onPublish, onSchedule, scheduleReady, scheduledAt, scheduledUnpublishAt, structuralTypes, }: EditorTopBarProps): import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
export declare function EditorTopBar({ title, status, dirty, saveState, publishing, canEdit, canPublish, publishReady, publishDisabledReason, viewport, zoom, canvasScale, onZoom, backLabel, onViewport, onBack, onPreview, onViewOnSite, onHistory, sitePreview, onToggleSitePreview, onOpenSettings, onOpenSeo, seoOpen, seoScore, seoScoreBand, onSaveDraft, onPublish, onSchedule, scheduleReady, scheduledAt, scheduledUnpublishAt, structuralTypes, }: EditorTopBarProps): import("react/jsx-runtime").JSX.Element;
|
|
63
76
|
export {};
|
|
64
77
|
//# sourceMappingURL=EditorTopBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorTopBar.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/EditorTopBar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EditorTopBar.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/EditorTopBar.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7D,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,UAAU,CAAA;IACpB,mFAAmF;IACnF,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC7B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wDAAwD;IACxD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IACvC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AASD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,MAAM,EACN,SAAmB,EACnB,UAAU,EACV,MAAM,EACN,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,OAAe,EACf,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAoB,EACpB,WAAkB,EAClB,oBAA2B,EAC3B,eAAoB,GACrB,EAAE,iBAAiB,2CAwOnB"}
|
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Calendar, Check, ExternalLink, Eye, Globe, History,
|
|
3
|
+
import { Calendar, Check, ExternalLink, Eye, Globe, History, Loader2, Settings2, TriangleAlert, } from 'lucide-react';
|
|
4
4
|
import { EditorSeoScoreBadge } from '../../components/seo/EditorSeoScoreBadge.js';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
monitor: Monitor,
|
|
8
|
-
laptop: Laptop,
|
|
9
|
-
tablet: Tablet,
|
|
10
|
-
smartphone: Smartphone,
|
|
11
|
-
};
|
|
5
|
+
import { BreakpointPicker } from '../../components/BreakpointPicker.js';
|
|
6
|
+
import { ZoomChip } from '../../components/ZoomChip.js';
|
|
12
7
|
const STATUS_TEXT = {
|
|
13
8
|
DRAFT: { label: 'Draft', className: 'text-warning dark:text-amber-400' },
|
|
14
9
|
PUBLISHED: { label: 'Published', className: 'text-emerald-600 dark:text-emerald-400' },
|
|
15
10
|
SCHEDULED: { label: 'Scheduled', className: 'text-warning dark:text-amber-400' },
|
|
16
11
|
ARCHIVED: { label: 'Archived', className: 'text-muted-foreground' },
|
|
17
12
|
};
|
|
18
|
-
export function EditorTopBar({ title, status, dirty, saveState, publishing, canEdit, canPublish, publishReady = true, publishDisabledReason, viewport, backLabel = 'Pages', onViewport, onBack, onPreview, onViewOnSite, onHistory, sitePreview = false, onToggleSitePreview, onOpenSettings, onOpenSeo, seoOpen = false, seoScore
|
|
13
|
+
export function EditorTopBar({ title, status, dirty, saveState, publishing, canEdit, canPublish, publishReady = true, publishDisabledReason, viewport, zoom, canvasScale, onZoom, backLabel = 'Pages', onViewport, onBack, onPreview, onViewOnSite, onHistory, sitePreview = false, onToggleSitePreview, onOpenSettings, onOpenSeo, seoOpen = false, seoScore, seoScoreBand, onSaveDraft, onPublish, onSchedule, scheduleReady = true, scheduledAt = null, scheduledUnpublishAt = null, structuralTypes = [], }) {
|
|
19
14
|
const statusInfo = STATUS_TEXT[status];
|
|
20
15
|
// With custom section types on the page the canvas (and the eye preview,
|
|
21
16
|
// which reuses the admin renderers) only shows structure — the real design
|
|
@@ -56,15 +51,11 @@ export function EditorTopBar({ title, status, dirty, saveState, publishing, canE
|
|
|
56
51
|
: 'Schedule a future publish date';
|
|
57
52
|
return (_jsxs("header", { className: "bg-card border-border flex h-14 shrink-0 items-center justify-between gap-4 border-b px-4", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsxs("nav", { "aria-label": "Breadcrumb", className: "flex min-w-0 items-center gap-1.5 text-sm", children: [_jsx("button", { type: "button", onClick: onBack, className: "text-muted-foreground hover:text-foreground shrink-0", children: backLabel }), _jsx("span", { className: "text-muted-foreground", "aria-hidden": true, children: "/" }), _jsx("span", { className: "text-foreground truncate font-medium", children: title || 'Untitled page' })] }), _jsx("span", { className: `ml-2 shrink-0 text-xs font-medium ${statusInfo.className}`, "aria-label": `Status: ${statusInfo.label}`, children: statusInfo.label }), scheduledAt && (_jsxs("span", { className: "text-muted-foreground ml-1 hidden shrink-0 text-xs sm:inline", title: scheduledUnpublishAt
|
|
58
53
|
? `Publishes ${formatScheduleLabel(scheduledAt)} · Unpublishes ${formatScheduleLabel(scheduledUnpublishAt)}`
|
|
59
|
-
: `Publishes ${formatScheduleLabel(scheduledAt)}`, children: ["\u00B7 ", formatScheduleLabel(scheduledAt)] })), _jsx(SaveStatus, { state: saveState, dirty: dirty })] }), _jsxs("div", { className: "flex items-center gap-2", children: [
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return (_jsxs("button", { type: "button", onClick: () => onViewport(v.id), "aria-pressed": active, title: `${v.label} (${v.width}px)`, className: `flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium transition-colors ${active
|
|
63
|
-
? 'bg-primary text-primary-foreground'
|
|
64
|
-
: 'text-muted-foreground hover:text-foreground hover:bg-accent'}`, children: [_jsx(Icon, { className: "h-3.5 w-3.5", "aria-hidden": true }), _jsx("span", { className: "hidden lg:inline", children: v.label })] }, v.id));
|
|
65
|
-
}) }), _jsx("button", { type: "button", onClick: onOpenSettings, "aria-label": "Page settings", title: "Page settings", className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(Settings2, { className: "h-4 w-4", "aria-hidden": true }) }), onOpenSeo && (_jsxs("button", { type: "button", onClick: onOpenSeo, "aria-pressed": seoOpen, "aria-label": `SEO, score ${seoScore} out of 100`, title: `SEO — score ${seoScore}/100. Meta tags, social preview, schema, and analysis.`, className: `inline-flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm font-medium transition-colors ${seoOpen
|
|
54
|
+
: `Publishes ${formatScheduleLabel(scheduledAt)}`, children: ["\u00B7 ", formatScheduleLabel(scheduledAt)] })), _jsx(SaveStatus, { state: saveState, dirty: dirty })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("div", { className: "hidden items-center gap-1.5 md:flex", children: [_jsx(BreakpointPicker, { value: viewport, onChange: onViewport }), zoom !== undefined && onZoom && (_jsx(ZoomChip, { zoom: zoom, scale: canvasScale ?? 1, onChange: onZoom }))] }), _jsx("button", { type: "button", onClick: onOpenSettings, "aria-label": "Page settings", title: "Page settings", className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(Settings2, { className: "h-4 w-4", "aria-hidden": true }) }), onOpenSeo && (_jsxs("button", { type: "button", onClick: onOpenSeo, "aria-pressed": seoOpen, "aria-label": seoScore === undefined ? 'SEO' : `SEO, score ${seoScore} out of 100`, title: seoScore === undefined
|
|
55
|
+
? 'SEO — meta tags, social preview, schema, and analysis.'
|
|
56
|
+
: `SEO — score ${seoScore}/100. Meta tags, social preview, schema, and analysis.`, className: `inline-flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm font-medium transition-colors ${seoOpen
|
|
66
57
|
? 'bg-primary text-primary-foreground'
|
|
67
|
-
: 'text-muted-foreground hover:text-foreground hover:bg-accent'}`, children: [_jsx(EditorSeoScoreBadge, { score: seoScore, inverted: seoOpen }), _jsx("span", { className: "hidden sm:inline", children: "SEO" })] })), onHistory && (_jsx("button", { type: "button", onClick: onHistory, "aria-label": "Version history", title: "Version history", className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(History, { className: "h-4 w-4", "aria-hidden": true }) })), _jsx("button", { type: "button", onClick: onPreview, "aria-label": previewLabel, title: previewLabel, className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(Eye, { className: "h-4 w-4", "aria-hidden": true }) }), onToggleSitePreview && (_jsx("button", { type: "button", onClick: onToggleSitePreview, "aria-pressed": sitePreview, "aria-label": sitePreview ? 'Back to editor canvas' : 'Inline site preview', title: sitePreview
|
|
58
|
+
: 'text-muted-foreground hover:text-foreground hover:bg-accent'}`, children: [seoScore !== undefined && (_jsx(EditorSeoScoreBadge, { score: seoScore, band: seoScoreBand, inverted: seoOpen })), _jsx("span", { className: "hidden sm:inline", children: "SEO" })] })), onHistory && (_jsx("button", { type: "button", onClick: onHistory, "aria-label": "Version history", title: "Version history", className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(History, { className: "h-4 w-4", "aria-hidden": true }) })), _jsx("button", { type: "button", onClick: onPreview, "aria-label": previewLabel, title: previewLabel, className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(Eye, { className: "h-4 w-4", "aria-hidden": true }) }), onToggleSitePreview && (_jsx("button", { type: "button", onClick: onToggleSitePreview, "aria-pressed": sitePreview, "aria-label": sitePreview ? 'Back to editor canvas' : 'Inline site preview', title: sitePreview
|
|
68
59
|
? 'Back to editor canvas'
|
|
69
60
|
: 'Inline site preview — render the draft through your public site, in place', className: `rounded-lg p-2 transition-colors ${sitePreview
|
|
70
61
|
? 'bg-primary text-primary-foreground'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorTopBar.js","sourceRoot":"","sources":["../../../src/views/page-editor/EditorTopBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,GAAG,EACH,KAAK,EACL,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"EditorTopBar.js","sourceRoot":"","sources":["../../../src/views/page-editor/EditorTopBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageSectionEditor.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/PageSectionEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PageSectionEditor.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/PageSectionEditor.tsx"],"names":[],"mappings":"AAiEA,UAAU,sBAAsB;IAC9B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACjG;AA6CD,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,eAAe,EACf,MAAM,EACN,OAAO,EACP,UAAU,EACV,aAAa,GACd,EAAE,sBAAsB,2CA29BxB"}
|