@prenta/admin 0.92.0 → 0.94.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 +663 -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__/lib/version-diff.test.d.ts +2 -0
- package/dist/__tests__/lib/version-diff.test.d.ts.map +1 -0
- package/dist/__tests__/lib/version-diff.test.js +230 -0
- package/dist/__tests__/lib/version-diff.test.js.map +1 -0
- package/dist/__tests__/lib/version-history.test.d.ts +2 -0
- package/dist/__tests__/lib/version-history.test.d.ts.map +1 -0
- package/dist/__tests__/lib/version-history.test.js +125 -0
- package/dist/__tests__/lib/version-history.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/responsive-layer.test.d.ts +2 -0
- package/dist/__tests__/styles/responsive-layer.test.d.ts.map +1 -0
- package/dist/__tests__/styles/responsive-layer.test.js +127 -0
- package/dist/__tests__/styles/responsive-layer.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/canvas-review-mode.render.test.d.ts +2 -0
- package/dist/__tests__/views/canvas-review-mode.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/canvas-review-mode.render.test.js +70 -0
- package/dist/__tests__/views/canvas-review-mode.render.test.js.map +1 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js +30 -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/__tests__/views/version-history-panel.render.test.d.ts +2 -0
- package/dist/__tests__/views/version-history-panel.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/version-history-panel.render.test.js +153 -0
- package/dist/__tests__/views/version-history-panel.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 +33 -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/layout/primitives/AdminShell.d.ts.map +1 -1
- package/dist/layout/primitives/AdminShell.js +2 -2
- package/dist/layout/primitives/AdminShell.js.map +1 -1
- 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/lib/version-diff.d.ts +50 -0
- package/dist/lib/version-diff.d.ts.map +1 -0
- package/dist/lib/version-diff.js +294 -0
- package/dist/lib/version-diff.js.map +1 -0
- package/dist/lib/version-history.d.ts +73 -0
- package/dist/lib/version-history.d.ts.map +1 -0
- package/dist/lib/version-history.js +126 -0
- package/dist/lib/version-history.js.map +1 -0
- 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 +47 -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 +21 -2
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +13 -20
- 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 +383 -78
- 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/ReviewBar.d.ts +21 -0
- package/dist/views/page-editor/ReviewBar.d.ts.map +1 -0
- package/dist/views/page-editor/ReviewBar.js +22 -0
- package/dist/views/page-editor/ReviewBar.js.map +1 -0
- package/dist/views/page-editor/SectionInspector.d.ts.map +1 -1
- package/dist/views/page-editor/SectionInspector.js +64 -20
- 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/VersionHistoryPanel.d.ts +29 -0
- package/dist/views/page-editor/VersionHistoryPanel.d.ts.map +1 -0
- package/dist/views/page-editor/VersionHistoryPanel.js +81 -0
- package/dist/views/page-editor/VersionHistoryPanel.js.map +1 -0
- 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 +13 -1
- package/dist/views/page-editor/sections/SectionRenderer.d.ts.map +1 -1
- package/dist/views/page-editor/sections/SectionRenderer.js +66 -26
- 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__/lib/version-diff.test.ts +278 -0
- package/src/__tests__/lib/version-history.test.ts +166 -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/responsive-layer.test.ts +152 -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/canvas-review-mode.render.test.tsx +94 -0
- package/src/__tests__/views/editor-top-bar.render.test.tsx +43 -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/__tests__/views/version-history-panel.render.test.tsx +195 -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 +89 -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/layout/primitives/AdminShell.tsx +13 -1
- 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/lib/version-diff.ts +376 -0
- package/src/lib/version-history.ts +192 -0
- package/src/styles/prenta-tokens.css +120 -42
- package/src/styles/responsive.css +281 -0
- package/src/styles/theme.css +138 -0
- package/src/views/page-editor/CanvasMetaLine.tsx +50 -0
- package/src/views/page-editor/EditorCanvas.tsx +140 -54
- package/src/views/page-editor/EditorTopBar.tsx +55 -51
- package/src/views/page-editor/PageSectionEditor.tsx +575 -185
- package/src/views/page-editor/PageTab.tsx +433 -0
- package/src/views/page-editor/ReviewBar.tsx +76 -0
- package/src/views/page-editor/SectionInspector.tsx +84 -42
- package/src/views/page-editor/SectionsPanel.tsx +282 -141
- package/src/views/page-editor/SitePreviewFrame.tsx +3 -0
- package/src/views/page-editor/VersionHistoryPanel.tsx +302 -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 +115 -34
- 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,60 @@
|
|
|
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;
|
|
24
|
+
/**
|
|
25
|
+
* Read-only render of a past version. Suppresses selection and the editing
|
|
26
|
+
* affordances, and turns on the changed-section outlines.
|
|
27
|
+
*/
|
|
28
|
+
reviewing?: boolean;
|
|
29
|
+
/** Sections that differ from the version before the one being reviewed. */
|
|
30
|
+
changedSectionIds?: ReadonlySet<string>;
|
|
31
|
+
/**
|
|
32
|
+
* Rendered in place of the editing tip / structure notice while reviewing.
|
|
33
|
+
* Passed in rather than built here because the review bar's actions belong
|
|
34
|
+
* to the editor's history state, which the canvas knows nothing about.
|
|
35
|
+
*/
|
|
36
|
+
reviewBar?: React.ReactNode;
|
|
12
37
|
}
|
|
13
38
|
/**
|
|
14
|
-
* The preview canvas.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* a
|
|
39
|
+
* The preview canvas.
|
|
40
|
+
*
|
|
41
|
+
* The canvas renders at the breakpoint's **real CSS width** and is scaled down
|
|
42
|
+
* with a transform. Combined with `container-type: inline-size`, that makes the
|
|
43
|
+
* page reflow against its own width — the same container queries that style the
|
|
44
|
+
* live page decide the layout. A max-width clamp cannot do this: it yields a
|
|
45
|
+
* narrow desktop layout rather than the mobile one.
|
|
46
|
+
*
|
|
47
|
+
* Two measurement rules, both learned the hard way:
|
|
48
|
+
*
|
|
49
|
+
* 1. Available width comes from a **zero-height sentinel** rendered as the
|
|
50
|
+
* panel's first child, not from `panel.clientWidth - padding`. The two
|
|
51
|
+
* disagree once a scrollbar appears or the host scales the preview, and
|
|
52
|
+
* the padding arithmetic silently rots whenever the gutter changes.
|
|
53
|
+
* 2. Both measurements are re-taken on **every render**, not only from the
|
|
54
|
+
* ResizeObserver. Page height changes with every text edit, image swap and
|
|
55
|
+
* show/hide — none of which resize the observed elements. The observer
|
|
56
|
+
* exists for later window resizes; its first callback is not a substitute.
|
|
18
57
|
*/
|
|
19
|
-
export declare function EditorCanvas({ sections, selectedId,
|
|
58
|
+
export declare function EditorCanvas({ sections, selectedId, breakpoint, zoom, onSelect, onScaleChange, onCanvasElement, structuralTypes, sitePreviewAvailable, reviewing, changedSectionIds, reviewBar, }: EditorCanvasProps): import("react/jsx-runtime").JSX.Element;
|
|
20
59
|
export {};
|
|
21
60
|
//# 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;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAY,EACZ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,eAAoB,EACpB,oBAA4B,EAC5B,SAAiB,EACjB,iBAAiB,EACjB,SAAS,GACV,EAAE,iBAAiB,2CA+HnB"}
|
|
@@ -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, reviewing = false, changedSectionIds, reviewBar, }) {
|
|
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: "prenta-canvas-scroll 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: [reviewing ? (reviewBar) : (_jsxs(_Fragment, { children: [_jsx(CanvasEditTip, {}), _jsx(StructureNotice, { structuralTypes: structuralTypes, sitePreviewAvailable: sitePreviewAvailable })] })), _jsx(CanvasMetaLine, { breakpoint: bp, pageHeight: pageHeight, scale: scale }), _jsx("div", { className: "prenta-canvas-fit 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, reviewing: reviewing, changed: changedSectionIds?.has(section.id) ?? false, 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":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAgC,MAAM,0BAA0B,CAAA;AAEhG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAsCtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,GAAG,KAAK,EACZ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,eAAe,GAAG,EAAE,EACpB,oBAAoB,GAAG,KAAK,EAC5B,SAAS,GAAG,KAAK,EACjB,iBAAiB,EACjB,SAAS,GACS;IAClB,MAAM,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IACpC,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC/C,MAAM,WAAW,GAAG,MAAM,CAA2B,IAAI,GAAG,EAAE,CAAC,CAAA;IAE/D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE/C,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAsB,EAAE,EAAE;QACrE,IAAI,EAAE;YAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;;YAClC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,4EAA4E;IAC5E,2EAA2E;IAC3E,mDAAmD;IACnD,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,CAAA;YAC3D,IAAI,aAAa,GAAG,CAAC;gBAAE,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;YAE9F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,CAAA;YACpD,IAAI,MAAM,GAAG,CAAC;gBAAE,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5E,CAAC,CAAA;QAED,OAAO,EAAE,CAAA;QAET,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,WAAW,CAAC,OAAO;YAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,UAAU,CAAC,OAAO;YAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACtD,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,2DAA2D;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU;YAAE,OAAM;QACvB,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC9C,IAAI,EAAE;YAAE,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACrE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAA;IAE1B,OAAO,CACL,eAAK,SAAS,EAAC,kFAAkF,aAO/F,cAAK,GAAG,EAAE,WAAW,uBAAc,SAAS,EAAC,KAAK,GAAG,EAEpD,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,KAAC,WAAW,KAAG,CAChB,CAAC,CAAC,CAAC,CACF,8BAIG,SAAS,CAAC,CAAC,CAAC,CACX,SAAS,CACV,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,aAAa,KAAG,EACjB,KAAC,eAAe,IACd,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,oBAAoB,GAC1C,IACD,CACJ,EACD,KAAC,cAAc,IAAC,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAI,EASxE,cACE,SAAS,EAAC,iCAAiC,EAC3C,KAAK,EAAE;4BACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;4BACnC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;yBAChE,YAKD,cACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;gCACV,UAAU,CAAC,OAAO,GAAG,EAAE,CAAA;gCACvB,eAAe,EAAE,CAAC,EAAE,CAAC,CAAA;4BACvB,CAAC;4BACD,oEAAoE;4BACpE,kEAAkE;4BAClE,+DAA+D;4BAC/D,SAAS,EAAC,mOAAmO,EAC7O,KAAK,EAAE;gCACL,KAAK,EAAE,EAAE,CAAC,KAAK;gCACf,SAAS,EAAE,SAAS,KAAK,GAAG;gCAC5B,eAAe,EAAE,UAAU;6BAC5B,YAEA,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,KAAC,eAAe,IAEd,OAAO,EAAE,OAAO,EAChB,QAAQ,QACR,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,EACpD,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,UAAU,EACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAPnB,OAAO,CAAC,EAAE,CAQf,CACH,CAAC,GACE,GACF,IACL,CACJ,IACG,CACP,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW;IAClB,OAAO,CACL,eAAK,SAAS,EAAC,+EAA+E,aAC5F,cAAK,SAAS,EAAC,2FAA2F,YACxG,KAAC,cAAc,IAAC,SAAS,EAAC,+BAA+B,wBAAe,GACpE,EACN,aAAI,SAAS,EAAC,qCAAqC,kDAAuC,EAC1F,YAAG,SAAS,EAAC,oCAAoC,qLAG7C,IACA,CACP,CAAA;AACH,CAAC"}
|
|
@@ -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;
|
|
@@ -26,10 +32,16 @@ interface EditorTopBarProps {
|
|
|
26
32
|
*/
|
|
27
33
|
onViewOnSite?: () => void;
|
|
28
34
|
/**
|
|
29
|
-
*
|
|
35
|
+
* Toggle the version history panel. When omitted the History button is
|
|
30
36
|
* hidden — e.g. for unsaved documents that have no versions yet.
|
|
31
37
|
*/
|
|
32
38
|
onHistory?: () => void;
|
|
39
|
+
/**
|
|
40
|
+
* Whether history is showing. History takes over the rail rather than
|
|
41
|
+
* opening a dialog, so the button needs a pressed state — without one there
|
|
42
|
+
* is nothing in the chrome saying which mode the editor is in.
|
|
43
|
+
*/
|
|
44
|
+
historyOpen?: boolean;
|
|
33
45
|
/** Whether the inline site preview (iframe of the public site) is showing. */
|
|
34
46
|
sitePreview?: boolean;
|
|
35
47
|
/**
|
|
@@ -42,7 +54,14 @@ interface EditorTopBarProps {
|
|
|
42
54
|
onOpenSeo?: () => void;
|
|
43
55
|
seoOpen?: boolean;
|
|
44
56
|
/** Live 0–100 SEO score shown left of the SEO label. */
|
|
57
|
+
/**
|
|
58
|
+
* 0-100 for the header chip. `undefined` means not known yet — the chip
|
|
59
|
+
* renders without a number rather than defaulting to 0, which would read as
|
|
60
|
+
* a catastrophic score for a page nobody has audited.
|
|
61
|
+
*/
|
|
45
62
|
seoScore?: number;
|
|
63
|
+
/** Band for `seoScore`; omit to derive from the content-analysis scale. */
|
|
64
|
+
seoScoreBand?: 'good' | 'fair' | 'poor';
|
|
46
65
|
onSaveDraft: () => void;
|
|
47
66
|
onPublish: () => void;
|
|
48
67
|
/** Open the schedule-publish dialog. Omitted when the document is unsaved. */
|
|
@@ -59,6 +78,6 @@ interface EditorTopBarProps {
|
|
|
59
78
|
*/
|
|
60
79
|
structuralTypes?: string[];
|
|
61
80
|
}
|
|
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;
|
|
81
|
+
export declare function EditorTopBar({ title, status, dirty, saveState, publishing, canEdit, canPublish, publishReady, publishDisabledReason, viewport, zoom, canvasScale, onZoom, backLabel, onViewport, onBack, onPreview, onViewOnSite, onHistory, historyOpen, sitePreview, onToggleSitePreview, onOpenSettings, onOpenSeo, seoOpen, seoScore, seoScoreBand, onSaveDraft, onPublish, onSchedule, scheduleReady, scheduledAt, scheduledUnpublishAt, structuralTypes, }: EditorTopBarProps): import("react/jsx-runtime").JSX.Element;
|
|
63
82
|
export {};
|
|
64
83
|
//# 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;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,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,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,2CA6OnB"}
|
|
@@ -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, historyOpen = false, 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
|
|
@@ -54,24 +49,22 @@ export function EditorTopBar({ title, status, dirty, saveState, publishing, canE
|
|
|
54
49
|
: scheduledAt
|
|
55
50
|
? `Reschedule — currently publishes ${formatScheduleLabel(scheduledAt)}`
|
|
56
51
|
: 'Schedule a future publish date';
|
|
57
|
-
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
|
|
52
|
+
return (_jsxs("header", { className: "prenta-editor-header 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
|
-
|
|
63
|
-
|
|
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: "prenta-touch-target 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
|
|
57
|
+
? 'bg-primary text-primary-foreground'
|
|
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-pressed": historyOpen, "aria-label": "Version history", title: historyOpen ? 'Close version history' : 'Version history', className: `prenta-touch-target rounded-lg p-2 transition-colors ${historyOpen
|
|
66
59
|
? 'bg-primary text-primary-foreground'
|
|
67
|
-
: 'text-muted-foreground hover:text-foreground hover:bg-accent'}`, children:
|
|
60
|
+
: 'text-muted-foreground hover:text-foreground hover:bg-accent'}`, children: _jsx(History, { className: "h-4 w-4", "aria-hidden": true }) })), _jsx("button", { type: "button", onClick: onPreview, "aria-label": previewLabel, title: previewLabel, className: "prenta-touch-target 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
61
|
? 'Back to editor canvas'
|
|
69
|
-
: 'Inline site preview — render the draft through your public site, in place', className: `rounded-lg p-2 transition-colors ${sitePreview
|
|
62
|
+
: 'Inline site preview — render the draft through your public site, in place', className: `prenta-touch-target rounded-lg p-2 transition-colors ${sitePreview
|
|
70
63
|
? 'bg-primary text-primary-foreground'
|
|
71
64
|
: 'text-muted-foreground hover:text-foreground hover:bg-accent'}`, children: _jsx(Globe, { className: "h-4 w-4", "aria-hidden": true }) })), onViewOnSite &&
|
|
72
65
|
(structural ? (_jsxs("button", { type: "button", onClick: onViewOnSite, title: isLive
|
|
73
66
|
? 'Open the live published page in a new tab'
|
|
74
|
-
: 'Open the draft on your public site — the real design preview', className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors", children: [_jsx(ExternalLink, { className: "h-3.5 w-3.5", "aria-hidden": true }), isLive ? 'View live' : 'View on site'] })) : (_jsx("button", { type: "button", onClick: onViewOnSite, "aria-label": isLive ? 'View live page' : 'View draft on site', title: isLive ? 'View live page' : 'View draft on site', className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(ExternalLink, { className: "h-4 w-4", "aria-hidden": true }) }))), _jsx("button", { type: "button", onClick: onSaveDraft, disabled: !canEdit || saveState === 'saving' || (!dirty && saveState !== 'error'), className: "border-border text-foreground hover:bg-accent rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: saveState === 'saving' ? 'Saving…' : 'Save Draft' }), onSchedule && (_jsxs("button", { type: "button", onClick: onSchedule, disabled: scheduleBlocked, title: scheduleTitle, "aria-label": scheduledAt ? 'Reschedule publish' : 'Schedule publish', className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx(Calendar, { className: "h-3.5 w-3.5", "aria-hidden": true }), _jsx("span", { className: "hidden sm:inline", children: scheduledAt ? 'Reschedule' : 'Schedule' })] })), _jsxs("button", { type: "button", onClick: onPublish, disabled: publishBlocked, title: publishTitle, "aria-disabled": publishBlocked, className: "bg-primary text-primary-foreground hover:bg-primary/90 inline-flex items-center gap-1.5 rounded-lg px-3.5 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [publishing && _jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", "aria-hidden": true }), "Publish"] })] })] }));
|
|
67
|
+
: 'Open the draft on your public site — the real design preview', className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors", children: [_jsx(ExternalLink, { className: "h-3.5 w-3.5", "aria-hidden": true }), isLive ? 'View live' : 'View on site'] })) : (_jsx("button", { type: "button", onClick: onViewOnSite, "aria-label": isLive ? 'View live page' : 'View draft on site', title: isLive ? 'View live page' : 'View draft on site', className: "prenta-touch-target text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(ExternalLink, { className: "h-4 w-4", "aria-hidden": true }) }))), _jsx("button", { type: "button", onClick: onSaveDraft, disabled: !canEdit || saveState === 'saving' || (!dirty && saveState !== 'error'), className: "border-border text-foreground hover:bg-accent rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: saveState === 'saving' ? 'Saving…' : 'Save Draft' }), onSchedule && (_jsxs("button", { type: "button", onClick: onSchedule, disabled: scheduleBlocked, title: scheduleTitle, "aria-label": scheduledAt ? 'Reschedule publish' : 'Schedule publish', className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx(Calendar, { className: "h-3.5 w-3.5", "aria-hidden": true }), _jsx("span", { className: "hidden sm:inline", children: scheduledAt ? 'Reschedule' : 'Schedule' })] })), _jsxs("button", { type: "button", onClick: onPublish, disabled: publishBlocked, title: publishTitle, "aria-disabled": publishBlocked, className: "bg-primary text-primary-foreground hover:bg-primary/90 inline-flex items-center gap-1.5 rounded-lg px-3.5 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [publishing && _jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", "aria-hidden": true }), "Publish"] })] })] }));
|
|
75
68
|
}
|
|
76
69
|
function SaveStatus({ state, dirty }) {
|
|
77
70
|
if (state === 'saving') {
|
|
@@ -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":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,GAAG,EACH,KAAK,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,aAAa,GACd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAoFvD,MAAM,WAAW,GAA6D;IAC5E,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,kCAAkC,EAAE;IACxE,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,wCAAwC,EAAE;IACtF,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kCAAkC,EAAE;IAChF,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,uBAAuB,EAAE;CACpE,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,GAAG,IAAI,EACnB,qBAAqB,EACrB,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,MAAM,EACN,SAAS,GAAG,OAAO,EACnB,UAAU,EACV,MAAM,EACN,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,KAAK,EACnB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,GAAG,IAAI,EACpB,WAAW,GAAG,IAAI,EAClB,oBAAoB,GAAG,IAAI,EAC3B,eAAe,GAAG,EAAE,GACF;IAClB,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,cAAc,CAAA;IAClB,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,MAAM,GAAG,MAAM,KAAK,WAAW,CAAA;IAErC,MAAM,cAAc,GAAG,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,UAAU,IAAI,SAAS,KAAK,QAAQ,CAAA;IAC3F,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,SAAS,KAAK,QAAQ;YACtB,CAAC,CAAC,qCAAqC;YACvC,CAAC,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,qBAAqB;gBACpD,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,CAAC,UAAU;oBACX,CAAC,CAAC,uCAAuC;oBACzC,CAAC,CAAC,SAAS,CAAA;IAEnB,MAAM,eAAe,GACnB,CAAC,UAAU;QACX,CAAC,UAAU;QACX,CAAC,YAAY;QACb,CAAC,aAAa;QACd,UAAU;QACV,SAAS,KAAK,QAAQ,CAAA;IACxB,MAAM,aAAa,GACjB,SAAS,KAAK,QAAQ;QACpB,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,CAAC,aAAa;YACd,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,qBAAqB;gBACpD,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,CAAC,UAAU;oBACX,CAAC,CAAC,wCAAwC;oBAC1C,CAAC,CAAC,WAAW;wBACX,CAAC,CAAC,oCAAoC,mBAAmB,CAAC,WAAW,CAAC,EAAE;wBACxE,CAAC,CAAC,gCAAgC,CAAA;IAE9C,OAAO,CACL,kBAAQ,SAAS,EAAC,gHAAgH,aAEhI,eAAK,SAAS,EAAC,iCAAiC,aAC9C,6BAAgB,YAAY,EAAC,SAAS,EAAC,2CAA2C,aAChF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,sDAAsD,YAE/D,SAAS,GACH,EACT,eAAM,SAAS,EAAC,uBAAuB,uCAEhC,EACP,eAAM,SAAS,EAAC,sCAAsC,YAAE,KAAK,IAAI,eAAe,GAAQ,IACpF,EACN,eACE,SAAS,EAAE,qCAAqC,UAAU,CAAC,SAAS,EAAE,gBAC1D,WAAW,UAAU,CAAC,KAAK,EAAE,YAExC,UAAU,CAAC,KAAK,GACZ,EACN,WAAW,IAAI,CACd,gBACE,SAAS,EAAC,8DAA8D,EACxE,KAAK,EACH,oBAAoB;4BAClB,CAAC,CAAC,aAAa,mBAAmB,CAAC,WAAW,CAAC,kBAAkB,mBAAmB,CAAC,oBAAoB,CAAC,EAAE;4BAC5G,CAAC,CAAC,aAAa,mBAAmB,CAAC,WAAW,CAAC,EAAE,wBAGlD,mBAAmB,CAAC,WAAW,CAAC,IAC9B,CACR,EACD,KAAC,UAAU,IAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAI,IAC1C,EAGN,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,qCAAqC,aAClD,KAAC,gBAAgB,IAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAI,EAC1D,IAAI,KAAK,SAAS,IAAI,MAAM,IAAI,CAC/B,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAI,CACpE,IACG,EAEN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,cAAc,gBACZ,eAAe,EAC1B,KAAK,EAAC,eAAe,EACrB,SAAS,EAAC,gGAAgG,YAE1G,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,wBAAe,GACtC,EAER,SAAS,IAAI,CACZ,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,kBACJ,OAAO,gBACT,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,QAAQ,aAAa,EAChF,KAAK,EACH,QAAQ,KAAK,SAAS;4BACpB,CAAC,CAAC,wDAAwD;4BAC1D,CAAC,CAAC,eAAe,QAAQ,wDAAwD,EAErF,SAAS,EAAE,iGACT,OAAO;4BACL,CAAC,CAAC,oCAAoC;4BACtC,CAAC,CAAC,6DACN,EAAE,aAED,QAAQ,KAAK,SAAS,IAAI,CACzB,KAAC,mBAAmB,IAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,GAAI,CAChF,EACD,eAAM,SAAS,EAAC,kBAAkB,oBAAW,IACtC,CACV,EAEA,SAAS,IAAI,CACZ,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,kBACJ,WAAW,gBACd,iBAAiB,EAC5B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,EAChE,SAAS,EAAE,wDACT,WAAW;4BACT,CAAC,CAAC,oCAAoC;4BACtC,CAAC,CAAC,6DACN,EAAE,YAEF,KAAC,OAAO,IAAC,SAAS,EAAC,SAAS,wBAAe,GACpC,CACV,EAED,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,gBACN,YAAY,EACxB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAC,gGAAgG,YAE1G,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,wBAAe,GAChC,EAER,mBAAmB,IAAI,CACtB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,mBAAmB,kBACd,WAAW,gBACb,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,qBAAqB,EACzE,KAAK,EACH,WAAW;4BACT,CAAC,CAAC,uBAAuB;4BACzB,CAAC,CAAC,2EAA2E,EAEjF,SAAS,EAAE,wDACT,WAAW;4BACT,CAAC,CAAC,oCAAoC;4BACtC,CAAC,CAAC,6DACN,EAAE,YAEF,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,wBAAe,GAClC,CACV,EAEA,YAAY;wBACX,CAAC,UAAU,CAAC,CAAC,CAAC,CACZ,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,EACrB,KAAK,EACH,MAAM;gCACJ,CAAC,CAAC,2CAA2C;gCAC7C,CAAC,CAAC,8DAA8D,EAEpE,SAAS,EAAC,oJAAoJ,aAE9J,KAAC,YAAY,IAAC,SAAS,EAAC,aAAa,wBAAe,EACnD,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,IAC/B,CACV,CAAC,CAAC,CAAC,CACF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,gBACT,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EAC5D,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,EACvD,SAAS,EAAC,gGAAgG,YAE1G,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,wBAAe,GACzC,CACV,CAAC,EAEJ,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,OAAO,IAAI,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,KAAK,OAAO,CAAC,EACjF,SAAS,EAAC,mKAAmK,YAE5K,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,GAC3C,EAER,UAAU,IAAI,CACb,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,aAAa,gBACR,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,EACnE,SAAS,EAAC,oMAAoM,aAE9M,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,wBAAe,EAChD,eAAM,SAAS,EAAC,kBAAkB,YAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,GAAQ,IAC5E,CACV,EAED,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,YAAY,mBACJ,cAAc,EAC7B,SAAS,EAAC,wMAAwM,aAEjN,UAAU,IAAI,KAAC,OAAO,IAAC,SAAS,EAAC,0BAA0B,wBAAe,eAEpE,IACL,IACC,CACV,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAwC;IACxE,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CACL,gBACE,SAAS,EAAC,mEAAmE,eACnE,QAAQ,aAElB,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,wBAAe,oBAEnD,CACR,CAAA;IACH,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,CACL,gBACE,SAAS,EAAC,8DAA8D,eAC9D,QAAQ,aAElB,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,wBAAe,sBAE5C,CACR,CAAA;IACH,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,eAAM,SAAS,EAAC,oCAAoC,eAAW,QAAQ,gCAEhE,CACR,CAAA;IACH,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,CACL,gBACE,SAAS,EAAC,mEAAmE,eACnE,QAAQ,aAElB,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,wBAAe,aAEpC,CACR,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,GAAG,CAAA;IACzC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE;QACjC,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KAClB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -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":"AAwEA,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,2CA2kCxB"}
|