@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,15 +1,27 @@
|
|
|
1
1
|
export interface SeoCharCountProps {
|
|
2
2
|
value: string;
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Recommended minimum length (inclusive). Omit for cap-only fields, where
|
|
5
|
+
* short is not a fault — there is then no "too short" state and no "good",
|
|
6
|
+
* because there is no target to hit, only a ceiling not to cross.
|
|
7
|
+
*/
|
|
8
|
+
min?: number;
|
|
5
9
|
/** Recommended/hard maximum length (inclusive). */
|
|
6
10
|
max: number;
|
|
11
|
+
/** Hide the meter bar where vertical space is tight. */
|
|
12
|
+
bar?: boolean;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
15
|
+
* Length readout for an SEO field: a meter bar plus a stated count.
|
|
16
|
+
*
|
|
17
|
+
* Under and over are different problems and are named as such. "Too short"
|
|
18
|
+
* means search engines have less to match on; "will be truncated" means the
|
|
19
|
+
* tail is written but nobody will read it. The previous wording collapsed the
|
|
20
|
+
* short case into "aim for 30–60", which describes the target without saying
|
|
21
|
+
* which way to edit.
|
|
22
|
+
*
|
|
23
|
+
* Colour never carries meaning alone — the band is always spelled out in text,
|
|
24
|
+
* with an icon at the two decisive states.
|
|
13
25
|
*/
|
|
14
|
-
export declare function SeoCharCount({ value, min, max }: SeoCharCountProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function SeoCharCount({ value, min, max, bar }: SeoCharCountProps): import("react/jsx-runtime").JSX.Element;
|
|
15
27
|
//# sourceMappingURL=SeoCharCount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeoCharCount.d.ts","sourceRoot":"","sources":["../../../src/components/seo/SeoCharCount.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb
|
|
1
|
+
{"version":3,"file":"SeoCharCount.d.ts","sourceRoot":"","sources":["../../../src/components/seo/SeoCharCount.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAU,EAAE,EAAE,iBAAiB,2CA4C9E"}
|
|
@@ -1,25 +1,39 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { AlertTriangle, Check } from 'lucide-react';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Length readout for an SEO field: a meter bar plus a stated count.
|
|
6
|
+
*
|
|
7
|
+
* Under and over are different problems and are named as such. "Too short"
|
|
8
|
+
* means search engines have less to match on; "will be truncated" means the
|
|
9
|
+
* tail is written but nobody will read it. The previous wording collapsed the
|
|
10
|
+
* short case into "aim for 30–60", which describes the target without saying
|
|
11
|
+
* which way to edit.
|
|
12
|
+
*
|
|
13
|
+
* Colour never carries meaning alone — the band is always spelled out in text,
|
|
14
|
+
* with an icon at the two decisive states.
|
|
9
15
|
*/
|
|
10
|
-
export function SeoCharCount({ value, min, max }) {
|
|
16
|
+
export function SeoCharCount({ value, min, max, bar = true }) {
|
|
11
17
|
const len = value.trim().length;
|
|
12
18
|
const empty = len === 0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
?
|
|
18
|
-
:
|
|
19
|
-
?
|
|
19
|
+
const over = len > max;
|
|
20
|
+
const under = min !== undefined && !empty && len < min;
|
|
21
|
+
const good = min !== undefined && !empty && !over && !under;
|
|
22
|
+
const tone = over
|
|
23
|
+
? 'text-destructive'
|
|
24
|
+
: under
|
|
25
|
+
? 'text-warning'
|
|
20
26
|
: good
|
|
21
|
-
?
|
|
22
|
-
:
|
|
23
|
-
|
|
27
|
+
? 'text-success'
|
|
28
|
+
: 'text-muted-foreground';
|
|
29
|
+
const fill = over ? 'bg-destructive' : under ? 'bg-warning' : good ? 'bg-success' : 'bg-border';
|
|
30
|
+
// Derived from `good`, not from "everything else": a cap-only field has no
|
|
31
|
+
// good state, and an unconditional else branch was labelling five characters
|
|
32
|
+
// in a 200-character field as "good".
|
|
33
|
+
const suffix = over ? ' · will be truncated' : under ? ' · too short' : good ? ' · good' : '';
|
|
34
|
+
return (_jsxs("span", { className: "inline-flex min-w-0 flex-col items-end gap-1", children: [bar && (_jsx("span", { className: "bg-border h-0.75 w-20 overflow-hidden rounded-full", "aria-hidden": true, children: _jsx("span", { className: `block h-full rounded-full transition-[width] ${fill}`,
|
|
35
|
+
// Past the maximum the bar stays full and the overflow is reported
|
|
36
|
+
// in words. A bar that kept growing would imply more is better.
|
|
37
|
+
style: { width: `${Math.min(100, (len / max) * 100)}%` } }) })), _jsxs("span", { className: `inline-flex items-center gap-1 text-[11px] whitespace-nowrap ${tone}`, children: [over ? (_jsx(AlertTriangle, { size: 11, "aria-hidden": true })) : good ? (_jsx(Check, { size: 11, "aria-hidden": true })) : null, len, " / ", max, " characters", suffix] })] }));
|
|
24
38
|
}
|
|
25
39
|
//# sourceMappingURL=SeoCharCount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeoCharCount.js","sourceRoot":"","sources":["../../../src/components/seo/SeoCharCount.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SeoCharCount.js","sourceRoot":"","sources":["../../../src/components/seo/SeoCharCount.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAgBnD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,EAAqB;IAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAA;IAC/B,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,CAAA;IACvB,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;IACtB,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,GAAG,CAAA;IACtD,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAA;IAE3D,MAAM,IAAI,GAAG,IAAI;QACf,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,IAAI;gBACJ,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,uBAAuB,CAAA;IAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;IAE/F,2EAA2E;IAC3E,6EAA6E;IAC7E,sCAAsC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IAE7F,OAAO,CACL,gBAAM,SAAS,EAAC,8CAA8C,aAC3D,GAAG,IAAI,CACN,eAAM,SAAS,EAAC,oDAAoD,iCAClE,eACE,SAAS,EAAE,gDAAgD,IAAI,EAAE;oBACjE,mEAAmE;oBACnE,gEAAgE;oBAChE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,GACxD,GACG,CACR,EACD,gBAAM,SAAS,EAAE,gEAAgE,IAAI,EAAE,aACpF,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,wBAAgB,CACxC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACT,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,wBAAgB,CAChC,CAAC,CAAC,CAAC,IAAI,EACP,GAAG,SAAK,GAAG,iBAAa,MAAM,IAC1B,IACF,CACR,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
|
+
import { type PageAuditResult } from '@prenta/core/seo/page-audit';
|
|
2
|
+
import type { PageSection } from '@prenta/core/page-sections';
|
|
1
3
|
export interface SeoEditorPaneProps {
|
|
2
4
|
entityType: 'page' | 'post';
|
|
5
|
+
/**
|
|
6
|
+
* Sections for the page-level SEO/GEO audit. Omit to hide the twin rings —
|
|
7
|
+
* the audit reads structure (stats, quotes, image slots), which a post body
|
|
8
|
+
* alone cannot supply.
|
|
9
|
+
*/
|
|
10
|
+
auditSections?: PageSection[];
|
|
11
|
+
/**
|
|
12
|
+
* Reports the audit upward so the rail's tab dot can show the same number
|
|
13
|
+
* this panel shows. Without it the dot and the panel compute independently
|
|
14
|
+
* and disagree — which is exactly what they did before the audit existed.
|
|
15
|
+
*/
|
|
16
|
+
onAuditChange?: (audit: PageAuditResult | null) => void;
|
|
3
17
|
/** When absent, draft-only mode — meta fields sync via `onDraftChange`. */
|
|
4
18
|
entityId: string | null;
|
|
5
19
|
onClose: () => void;
|
|
@@ -16,5 +30,5 @@ export interface SeoEditorPaneProps {
|
|
|
16
30
|
seoDescription?: string;
|
|
17
31
|
}) => void;
|
|
18
32
|
}
|
|
19
|
-
export declare function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentHtml, slug, draftMeta, onDraftChange, }: SeoEditorPaneProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export declare function SeoEditorPane({ entityType, entityId, auditSections, onAuditChange, onClose, onSaved, contentHtml, slug, draftMeta, onDraftChange, }: SeoEditorPaneProps): import("react/jsx-runtime").JSX.Element;
|
|
20
34
|
//# sourceMappingURL=SeoEditorPane.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeoEditorPane.d.ts","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SeoEditorPane.d.ts","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"AA2BA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAwG7D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,WAAW,EAAE,CAAA;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAA;IACvD,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAChF;AAED,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAgB,EAChB,IAAS,EACT,SAAS,EACT,aAAa,GACd,EAAE,kBAAkB,2CAq0BpB"}
|
|
@@ -1,26 +1,36 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
/**
|
|
4
4
|
* Inline SEO editor pane for the post/page section editors and the Content SEO
|
|
5
5
|
* list. Accordion sections mirror Yoast-style workflow: Focus Keyword → Search
|
|
6
6
|
* Appearance → Social → Analysis → Advanced → Insights → Linking.
|
|
7
7
|
*/
|
|
8
8
|
import { cloneElement, isValidElement, useEffect, useId, useMemo, useState, } from 'react';
|
|
9
|
-
import { Loader2, Monitor, Smartphone, Sparkles, Wand2 } from 'lucide-react';
|
|
9
|
+
import { ImagePlus, Loader2, Monitor, Smartphone, Sparkles, Trash2, Wand2 } from 'lucide-react';
|
|
10
10
|
import { toast } from 'sonner';
|
|
11
11
|
import { resolveRenderedMetaTitle } from '@prenta/core/client';
|
|
12
12
|
import { analyzeContent, calculateReadability, stripHtmlTags, } from '@prenta/core/seo/analysis';
|
|
13
|
+
import { auditPage } from '@prenta/core/seo/page-audit';
|
|
14
|
+
import { buildPageAuditInput } from '../../lib/page-audit-input.js';
|
|
13
15
|
import { fetchSeoContentRecord, updateSeoFields, generateSeoField, fetchDocumentSeoAnalysis, SEO_SCHEMA_TYPES, } from '../../lib/seo-service.js';
|
|
14
16
|
import { fixBrandVoiceContent } from '../../lib/brand-voice-client.js';
|
|
15
17
|
import { BrandVoiceAlignmentBadge } from '../BrandVoiceAlignmentBadge.js';
|
|
16
18
|
import { InspectorPaneBody, InspectorPaneFooter, InspectorPaneHeader } from '../ui/InspectorPane.js';
|
|
17
19
|
import { Toggle } from '../ui/Toggle.js';
|
|
20
|
+
import { MediaPickerModal } from '../MediaPickerModal.js';
|
|
21
|
+
import { PageAuditPanel } from './PageAuditPanel.js';
|
|
22
|
+
import { SeoCharCount } from './SeoCharCount.js';
|
|
23
|
+
import { SerpPreview } from './SerpPreview.js';
|
|
18
24
|
import { SeoLoading, SeoErrorState, gradeMeta } from './primitives.js';
|
|
19
25
|
import { SeoAccordion, SeoAccordionBadge, SeoAccordionItem } from './SeoAccordion.js';
|
|
20
26
|
import { SeoAnalysisList } from './SeoAnalysisList.js';
|
|
21
27
|
import { SeoInsightsMetrics } from './SeoInsightsMetrics.js';
|
|
22
28
|
import { SeoLinkingSection } from './SeoLinkingSection.js';
|
|
29
|
+
// Ranges the audit's title/description checks score against — one definition,
|
|
30
|
+
// so the meter cannot tell an editor they are in range while the check fails.
|
|
31
|
+
const META_TITLE_MIN = 30;
|
|
23
32
|
const META_TITLE_MAX = 60;
|
|
33
|
+
const META_DESC_MIN = 70;
|
|
24
34
|
const META_DESC_MAX = 160;
|
|
25
35
|
const KEY_TAKEAWAY_MAX = 240;
|
|
26
36
|
const LLMS_DESC_MAX = 160;
|
|
@@ -30,10 +40,6 @@ function seoBrandChannel(field) {
|
|
|
30
40
|
return undefined;
|
|
31
41
|
}
|
|
32
42
|
const inputCls = 'w-full rounded-[7px] border border-[var(--bdr)] bg-[var(--card)] px-2.5 py-1.5 text-[12.5px] text-[var(--txt)] placeholder:text-[var(--muted)] focus:border-[var(--acc)] focus:outline-none';
|
|
33
|
-
function CharCount({ value, max }) {
|
|
34
|
-
const over = value.length > max;
|
|
35
|
-
return (_jsxs("span", { className: `text-[11px] ${over ? 'text-[var(--err)]' : 'text-[var(--muted)]'}`, children: [value.length, "/", max] }));
|
|
36
|
-
}
|
|
37
43
|
function PaneField({ label, children, hint, help, }) {
|
|
38
44
|
const generatedId = useId();
|
|
39
45
|
let control = children;
|
|
@@ -46,7 +52,7 @@ function PaneField({ label, children, hint, help, }) {
|
|
|
46
52
|
function PaneToggleRow({ label, hint, checked, onCheckedChange, }) {
|
|
47
53
|
return (_jsxs("div", { className: "flex items-center justify-between gap-3 py-1.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[12.5px] font-medium text-[var(--txt)]", children: label }), _jsx("div", { className: "text-[11px] text-[var(--muted)]", children: hint })] }), _jsx(Toggle, { checked: checked, onCheckedChange: onCheckedChange, "aria-label": label })] }));
|
|
48
54
|
}
|
|
49
|
-
export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentHtml = '', slug = '', draftMeta, onDraftChange, }) {
|
|
55
|
+
export function SeoEditorPane({ entityType, entityId, auditSections, onAuditChange, onClose, onSaved, contentHtml = '', slug = '', draftMeta, onDraftChange, }) {
|
|
50
56
|
const isDraft = !entityId;
|
|
51
57
|
const [record, setRecord] = useState(null);
|
|
52
58
|
const [loading, setLoading] = useState(!isDraft);
|
|
@@ -58,6 +64,7 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
|
|
|
58
64
|
const [form, setForm] = useState({});
|
|
59
65
|
const [previewDevice, setPreviewDevice] = useState('mobile');
|
|
60
66
|
const [socialPlatform, setSocialPlatform] = useState('facebook');
|
|
67
|
+
const [imagePickerOpen, setImagePickerOpen] = useState(false);
|
|
61
68
|
const [remoteAnalysis, setRemoteAnalysis] = useState(null);
|
|
62
69
|
useEffect(() => {
|
|
63
70
|
if (isDraft) {
|
|
@@ -90,7 +97,24 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
|
|
|
90
97
|
if (!alive)
|
|
91
98
|
return;
|
|
92
99
|
if (!rec) {
|
|
93
|
-
|
|
100
|
+
// Same situation as the catch below, reached without a throw.
|
|
101
|
+
setRecord(null);
|
|
102
|
+
setForm({
|
|
103
|
+
metaTitle: draftMeta?.seoTitle ?? '',
|
|
104
|
+
metaDescription: draftMeta?.seoDescription ?? '',
|
|
105
|
+
focusKeyword: '',
|
|
106
|
+
keyTakeaway: '',
|
|
107
|
+
ogTitle: '',
|
|
108
|
+
ogDescription: '',
|
|
109
|
+
canonicalUrl: '',
|
|
110
|
+
structuredDataType: 'WebPage',
|
|
111
|
+
noindex: false,
|
|
112
|
+
nofollow: false,
|
|
113
|
+
llmsInclude: 'AUTO',
|
|
114
|
+
llmsDescription: '',
|
|
115
|
+
llmsSection: '',
|
|
116
|
+
llmsOptional: false,
|
|
117
|
+
});
|
|
94
118
|
return;
|
|
95
119
|
}
|
|
96
120
|
setRecord(rec);
|
|
@@ -102,6 +126,7 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
|
|
|
102
126
|
keyTakeaway: rec.keyTakeaway ?? '',
|
|
103
127
|
ogTitle: rec.ogTitle ?? '',
|
|
104
128
|
ogDescription: rec.ogDescription ?? '',
|
|
129
|
+
ogImage: rec.ogImage ?? '',
|
|
105
130
|
twitterTitle: rec.twitterTitle ?? '',
|
|
106
131
|
twitterDescription: rec.twitterDescription ?? '',
|
|
107
132
|
structuredDataType: rec.structuredDataType ?? 'WebPage',
|
|
@@ -113,12 +138,37 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
|
|
|
113
138
|
llmsOptional: rec.llmsOptional ?? false,
|
|
114
139
|
});
|
|
115
140
|
})
|
|
116
|
-
.catch((
|
|
141
|
+
.catch(() => {
|
|
142
|
+
if (!alive)
|
|
143
|
+
return;
|
|
144
|
+
// No record is not a failure. Older cms-core resolves this endpoint
|
|
145
|
+
// through a PUBLISHED-only pipeline, so a saved draft 404s here even
|
|
146
|
+
// though the matching PUT accepts one — showing an error where the form
|
|
147
|
+
// belongs made a draft's SEO uneditable. Seed from the document's own
|
|
148
|
+
// meta instead; saving creates the record.
|
|
149
|
+
setRecord(null);
|
|
150
|
+
setForm({
|
|
151
|
+
metaTitle: draftMeta?.seoTitle ?? '',
|
|
152
|
+
metaDescription: draftMeta?.seoDescription ?? '',
|
|
153
|
+
focusKeyword: '',
|
|
154
|
+
keyTakeaway: '',
|
|
155
|
+
ogTitle: '',
|
|
156
|
+
ogDescription: '',
|
|
157
|
+
canonicalUrl: '',
|
|
158
|
+
structuredDataType: 'WebPage',
|
|
159
|
+
noindex: false,
|
|
160
|
+
nofollow: false,
|
|
161
|
+
llmsInclude: 'AUTO',
|
|
162
|
+
llmsDescription: '',
|
|
163
|
+
llmsSection: '',
|
|
164
|
+
llmsOptional: false,
|
|
165
|
+
});
|
|
166
|
+
})
|
|
117
167
|
.finally(() => alive && setLoading(false));
|
|
118
168
|
return () => {
|
|
119
169
|
alive = false;
|
|
120
170
|
};
|
|
121
|
-
}, [entityType, entityId, isDraft]);
|
|
171
|
+
}, [entityType, entityId, isDraft, draftMeta?.seoTitle, draftMeta?.seoDescription]);
|
|
122
172
|
useEffect(() => {
|
|
123
173
|
if (isDraft || contentHtml.trim() || !entityId)
|
|
124
174
|
return;
|
|
@@ -246,6 +296,49 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
|
|
|
246
296
|
'Please provide a meta description. Search engines may generate one from your content.';
|
|
247
297
|
const url = record?.url ?? (slug ? `/${slug.replace(/^\//, '')}` : '');
|
|
248
298
|
const displayUrl = record?.url ?? url;
|
|
299
|
+
/**
|
|
300
|
+
* Page-level audit, distinct from `analyzeContent` below: binary checks over
|
|
301
|
+
* page structure and metadata, spanning a true 0-100. `analyzeContent` stays
|
|
302
|
+
* as the prose analysis (readability, density) it is good at.
|
|
303
|
+
*
|
|
304
|
+
* Built from LIVE form state so the score moves as the editor types. See
|
|
305
|
+
* `buildPageAuditInput` for which fields feed which check, and for why the
|
|
306
|
+
* OG image and author are reported as unknown rather than missing.
|
|
307
|
+
*/
|
|
308
|
+
const audit = useMemo(() => {
|
|
309
|
+
if (!auditSections)
|
|
310
|
+
return null;
|
|
311
|
+
return auditPage(buildPageAuditInput({
|
|
312
|
+
sections: auditSections,
|
|
313
|
+
// LIVE form state, not the saved record — the score has to move as the
|
|
314
|
+
// editor types. The page editor builds the same input from the saved
|
|
315
|
+
// record for its first-paint score; routing both through one builder is
|
|
316
|
+
// what keeps the two numbers from drifting apart.
|
|
317
|
+
meta: {
|
|
318
|
+
metaTitle: form.metaTitle ?? '',
|
|
319
|
+
metaDescription: form.metaDescription ?? '',
|
|
320
|
+
focusKeyword: form.focusKeyword ?? '',
|
|
321
|
+
structuredDataType: form.structuredDataType ?? '',
|
|
322
|
+
noindex: Boolean(form.noindex),
|
|
323
|
+
// Directives are edited in the Page tab, so this pane has no live
|
|
324
|
+
// value to offer — it reads the saved one. Defaulting to `false`
|
|
325
|
+
// instead would tell the GEO gate that snippets are allowed on a page
|
|
326
|
+
// that has turned them off.
|
|
327
|
+
nosnippet: Boolean(record?.nosnippet),
|
|
328
|
+
llmsInclude: form.llmsInclude ?? 'AUTO',
|
|
329
|
+
// Live value, so the check flips the moment an image is chosen or
|
|
330
|
+
// cleared rather than waiting for a save round-trip. `??` and not
|
|
331
|
+
// `||`: an empty string is a deliberate removal, not "unset".
|
|
332
|
+
hasOgImage: Boolean(form.ogImage ?? record?.ogImage),
|
|
333
|
+
},
|
|
334
|
+
slug,
|
|
335
|
+
record,
|
|
336
|
+
fallbackTitle: draftMeta?.seoTitle,
|
|
337
|
+
}));
|
|
338
|
+
}, [auditSections, form, slug, record, draftMeta?.seoTitle]);
|
|
339
|
+
useEffect(() => {
|
|
340
|
+
onAuditChange?.(audit);
|
|
341
|
+
}, [audit, onAuditChange]);
|
|
249
342
|
const analysisInput = useMemo(() => ({
|
|
250
343
|
title: record?.title ?? draftMeta?.seoTitle ?? '',
|
|
251
344
|
slug: slug || record?.url?.split('/').filter(Boolean).pop() || '',
|
|
@@ -260,7 +353,7 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
|
|
|
260
353
|
canonical: form.canonicalUrl,
|
|
261
354
|
ogTitle: form.ogTitle,
|
|
262
355
|
ogDescription: form.ogDescription,
|
|
263
|
-
ogImage: record?.ogImage
|
|
356
|
+
ogImage: (form.ogImage ?? record?.ogImage) || undefined,
|
|
264
357
|
}), [record, draftMeta, slug, contentHtml, form, renderedTitle]);
|
|
265
358
|
const liveAnalysis = useMemo(() => {
|
|
266
359
|
if (contentHtml.trim())
|
|
@@ -278,21 +371,25 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
|
|
|
278
371
|
function aiButton(field, label) {
|
|
279
372
|
return (_jsxs("button", { type: "button", onClick: () => void handleAiGenerate(field), disabled: aiBusy !== null || isDraft, title: isDraft ? 'Save a draft first' : label, className: "inline-flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[11px] font-medium text-[var(--acc)] transition-colors duration-[var(--motion-fast)] hover:bg-[var(--acc-l)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none disabled:opacity-60", children: [_jsx(Sparkles, { className: `h-3 w-3 ${aiBusy === field ? 'animate-pulse' : ''}`, "aria-hidden": true }), aiBusy === field ? 'Generating…' : 'AI Generate'] }));
|
|
280
373
|
}
|
|
374
|
+
const shareImage = form.ogImage ?? record?.ogImage ?? '';
|
|
281
375
|
const socialTitle = socialPlatform === 'twitter'
|
|
282
376
|
? form.twitterTitle || form.ogTitle || renderedTitle
|
|
283
377
|
: form.ogTitle || renderedTitle;
|
|
284
378
|
const socialDesc = socialPlatform === 'twitter'
|
|
285
379
|
? form.twitterDescription || form.ogDescription || form.metaDescription || desc
|
|
286
380
|
: form.ogDescription || form.metaDescription || desc;
|
|
287
|
-
return (_jsxs(_Fragment, { children: [_jsxs(InspectorPaneHeader, { onClose: onClose, closeLabel: "Close SEO editor", children: [_jsx("div", { className: "truncate text-[13.5px] font-semibold text-[var(--txt)]", children: record?.title ?? draftMeta?.seoTitle ?? 'SEO' }), displayUrl && (_jsx("div", { className: "mt-0.5 truncate text-[11.5px] text-[var(--muted)]", children: displayUrl }))] }),
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
381
|
+
return (_jsxs(_Fragment, { children: [_jsxs(InspectorPaneHeader, { onClose: onClose, closeLabel: "Close SEO editor", children: [_jsx("div", { className: "truncate text-[13.5px] font-semibold text-[var(--txt)]", children: record?.title ?? draftMeta?.seoTitle ?? 'SEO' }), displayUrl && (_jsx("div", { className: "mt-0.5 truncate text-[11.5px] text-[var(--muted)]", children: displayUrl }))] }), _jsxs(InspectorPaneBody, { children: [audit && !loading && _jsx(PageAuditPanel, { audit: audit }), loading ? (_jsx("div", { className: "px-5 py-4", children: _jsx(SeoLoading, {}) })) : error ? (_jsx("div", { className: "px-5 py-4", children: _jsx(SeoErrorState, { message: error }) })) : (_jsxs(_Fragment, { children: [isDraft && (_jsx("div", { className: "border-b border-[var(--bdr)] px-5 py-3", children: _jsx("p", { className: "text-[11.5px] text-[var(--sub)]", children: "Save a draft to unlock AI assists trained on your site knowledge and tone. You can still set focus keyword, search appearance, and review live analysis below." }) })), !isDraft && record && (_jsx("div", { className: "border-b border-[var(--bdr)] px-5 py-3", children: (() => {
|
|
382
|
+
const meta = gradeMeta(record.seoGrade);
|
|
383
|
+
return (_jsx("div", { className: `flex items-center gap-2 rounded-[7px] px-3 py-2 text-[12px] ${meta.bg} ${meta.text}`, children: _jsxs("span", { children: ["SEO score: ", _jsx("span", { className: "font-medium", children: record.seoScore }), " (", meta.label, ")", analysis && (_jsxs(_Fragment, { children: [' · ', _jsxs("span", { title: "Content quality from the analysis checklist below (readability, keyphrase, links). Separate from the meta-weighted SEO score used to rank this list.", children: ["Content analysis ", analysis.score, "/100"] })] }))] }) }));
|
|
384
|
+
})() })), _jsxs(SeoAccordion, { children: [_jsxs(SeoAccordionItem, { value: "focus-keyword", title: "Focus keyword", badge: form.focusKeyword ? (_jsx(SeoAccordionBadge, { tone: "neutral", children: form.focusKeyword })) : (_jsx(SeoAccordionBadge, { tone: "warn", children: "Not set" })), children: [_jsx(PaneField, { label: "Focus keyphrase", hint: aiButton('focusKeyword', 'Suggest focus keyphrase'), help: "The main phrase you want this content found for in search and AI answers.", children: _jsx("input", { className: inputCls, value: form.focusKeyword ?? '', onChange: (e) => update({ focusKeyword: e.target.value }), placeholder: "e.g. modern headless cms" }) }), _jsx(PaneField, { label: "Key takeaway", hint: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(SeoCharCount, { value: form.keyTakeaway ?? '', max: KEY_TAKEAWAY_MAX, bar: false }), aiButton('keyTakeaway')] }), help: "One or two sentences AI answer engines can quote \u2014 what is this page about?", children: _jsx("textarea", { className: `${inputCls} min-h-16 resize-y`, value: form.keyTakeaway ?? '', onChange: (e) => update({ keyTakeaway: e.target.value }), placeholder: "Summarize the page's core value proposition" }) })] }), _jsxs(SeoAccordionItem, { value: "search-appearance", title: "Search appearance", children: [_jsx("p", { className: "text-[11.5px] text-[var(--sub)]", children: "Determine how this content should look in search results." }), _jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("span", { className: "text-[11.5px] font-medium text-[var(--sub)]", children: "Google preview" }), _jsxs("div", { className: "flex rounded-[7px] border border-[var(--bdr)] p-0.5", children: [_jsxs("button", { type: "button", "aria-pressed": previewDevice === 'mobile', onClick: () => setPreviewDevice('mobile'), className: `inline-flex items-center gap-1 rounded-[5px] px-2 py-1 text-[11px] ${previewDevice === 'mobile' ? 'bg-[var(--acc-l)] text-[var(--acc)]' : 'text-[var(--muted)]'}`, children: [_jsx(Smartphone, { size: 14, "aria-hidden": true }), "Mobile"] }), _jsxs("button", { type: "button", "aria-pressed": previewDevice === 'desktop', onClick: () => setPreviewDevice('desktop'), className: `inline-flex items-center gap-1 rounded-[5px] px-2 py-1 text-[11px] ${previewDevice === 'desktop' ? 'bg-[var(--acc-l)] text-[var(--acc)]' : 'text-[var(--muted)]'}`, children: [_jsx(Monitor, { size: 14, "aria-hidden": true }), "Desktop"] })] })] }), _jsx("div", { className: previewDevice === 'mobile' ? 'max-w-[320px]' : '', children: _jsx(SerpPreview, { title: renderedTitle, url: displayUrl, description: desc }) }), _jsx(PaneField, { label: "SEO title", hint: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(SeoCharCount, { value: form.metaTitle ?? '', min: META_TITLE_MIN, max: META_TITLE_MAX }), aiButton('metaTitle')] }), children: _jsx("input", { className: inputCls, value: form.metaTitle ?? '', onChange: (e) => update({ metaTitle: e.target.value }), placeholder: "Page-specific title (%page% in your site template)" }) }), alignmentRow('metaTitle'), _jsx(PaneField, { label: "Slug", help: "URL slug for this content \u2014 edit in page/post settings.", children: _jsx("input", { className: `${inputCls} opacity-80`, value: slug, readOnly: true, disabled: true }) }), _jsx(PaneField, { label: "Meta description", hint: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(SeoCharCount, { value: form.metaDescription ?? '', min: META_DESC_MIN, max: META_DESC_MAX }), aiButton('metaDescription')] }), children: _jsx("textarea", { className: `${inputCls} min-h-20 resize-y`, value: form.metaDescription ?? '', onChange: (e) => update({ metaDescription: e.target.value }), placeholder: "Short summary shown under the title in search results" }) }), alignmentRow('metaDescription')] }), _jsxs(SeoAccordionItem, { value: "social-appearance", title: "Social appearance", badge: shareImage ? (_jsx(SeoAccordionBadge, { tone: "good", children: "Image set" })) : (
|
|
385
|
+
// A shared link with no image is the single biggest drop in
|
|
386
|
+
// engagement, so it is worth stating while collapsed.
|
|
387
|
+
_jsx(SeoAccordionBadge, { tone: "warn", children: "No image" })), children: [_jsx("p", { className: "text-[11.5px] text-[var(--sub)]", children: "Customize title, description, and image used when sharing on social platforms." }), _jsx("div", { className: "flex rounded-[7px] border border-[var(--bdr)] p-0.5", children: ['facebook', 'twitter'].map((platform) => (_jsx("button", { type: "button", "aria-pressed": socialPlatform === platform, onClick: () => setSocialPlatform(platform), className: `flex-1 rounded-[5px] px-2 py-1.5 text-[11.5px] font-medium capitalize ${socialPlatform === platform ? 'bg-[var(--acc-l)] text-[var(--acc)]' : 'text-[var(--sub)]'}`, children: platform === 'twitter' ? 'X / Twitter' : 'Facebook' }, platform))) }), _jsxs("div", { className: "overflow-hidden rounded-[7px] border border-[var(--bdr)]", children: [shareImage ? (
|
|
388
|
+
// eslint-disable-next-line @next/next/no-img-element
|
|
389
|
+
_jsx("img", { src: shareImage, alt: "", className: "aspect-1200/630 w-full bg-[var(--bg)] object-cover" })) : (_jsxs("button", { type: "button", onClick: () => setImagePickerOpen(true), className: "flex aspect-1200/630 w-full flex-col items-center justify-center gap-1 bg-[var(--bg)] text-[12px] text-[var(--muted)] transition-colors hover:bg-[var(--acc-l)] hover:text-[var(--acc)]", children: [_jsx(ImagePlus, { className: "h-5 w-5", "aria-hidden": true }), "Choose a share image", _jsx("span", { className: "text-[10.5px]", children: "1200\u00D7630 or wider, about 1.91:1" })] })), _jsxs("div", { className: "p-2.5", children: [_jsx("p", { className: "truncate text-[10.5px] text-[var(--muted)] uppercase", children: displayUrl.replace(/^https?:\/\//, '').split('/')[0] || 'yoursite.com' }), _jsx("p", { className: "truncate text-[12.5px] font-medium text-[var(--txt)]", children: socialTitle }), _jsx("p", { className: "line-clamp-2 text-[12px] text-[var(--sub)]", children: socialDesc })] }), _jsxs("div", { className: "flex items-center gap-2 border-t border-[var(--bdr)] bg-[var(--bg)] px-2.5 py-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-[11.5px] text-[var(--sub)]", children: shareImage ? shareImage.split('/').pop() : 'No image selected' }), _jsx("button", { type: "button", onClick: () => setImagePickerOpen(true), className: "shrink-0 rounded-[5px] px-2 py-1 text-[11.5px] font-medium text-[var(--acc)] transition-colors hover:bg-[var(--acc-l)]", children: shareImage ? 'Replace' : 'Choose' }), shareImage && (_jsx("button", { type: "button", onClick: () => update({ ogImage: '' }), "aria-label": "Remove share image", className: "shrink-0 rounded-[5px] p-1 text-[var(--muted)] transition-colors hover:bg-[var(--err-l)] hover:text-[var(--err)]", children: _jsx(Trash2, { className: "h-3.5 w-3.5", "aria-hidden": true }) }))] })] }), socialPlatform === 'facebook' ? (_jsxs(_Fragment, { children: [_jsx(PaneField, { label: "OG title", hint: aiButton('ogTitle'), children: _jsx("input", { className: inputCls, value: form.ogTitle ?? '', onChange: (e) => update({ ogTitle: e.target.value }), placeholder: form.metaTitle || 'Inherits meta title when empty' }) }), _jsx(PaneField, { label: "OG description", hint: aiButton('ogDescription'), children: _jsx("textarea", { className: `${inputCls} min-h-16 resize-y`, value: form.ogDescription ?? '', onChange: (e) => update({ ogDescription: e.target.value }), placeholder: form.metaDescription || 'Inherits meta description when empty' }) })] })) : (_jsxs(_Fragment, { children: [_jsx(PaneField, { label: "Twitter title", children: _jsx("input", { className: inputCls, value: form.twitterTitle ?? '', onChange: (e) => update({ twitterTitle: e.target.value }), placeholder: form.ogTitle || form.metaTitle || 'Inherits OG/meta title' }) }), _jsx(PaneField, { label: "Twitter description", children: _jsx("textarea", { className: `${inputCls} min-h-16 resize-y`, value: form.twitterDescription ?? '', onChange: (e) => update({ twitterDescription: e.target.value }), placeholder: form.ogDescription ||
|
|
390
|
+
form.metaDescription ||
|
|
391
|
+
'Inherits OG/meta description' }) })] })), alignmentRow('ogDescription')] }), _jsx(SeoAccordionItem, { value: "seo-analysis", title: "SEO analysis", badge: analysis ? (_jsx(SeoAccordionBadge, { tone: problemCount > 0 ? 'bad' : 'good', children: problemCount > 0 ? `${problemCount} issues` : 'Looking good' })) : undefined, children: _jsx(SeoAnalysisList, { checks: analysis?.checks ?? [], onAiFixField: isDraft ? undefined : (field) => void handleAiGenerate(field), aiFixField: aiBusy }) }), _jsxs(SeoAccordionItem, { value: "advanced", title: "Advanced", children: [_jsx(PaneField, { label: "Canonical URL", children: _jsx("input", { className: inputCls, value: form.canonicalUrl ?? '', onChange: (e) => update({ canonicalUrl: e.target.value }), placeholder: displayUrl || 'https://example.com/page' }) }), !form.canonicalUrl?.trim() && displayUrl && !isDraft && (_jsxs("p", { className: "mb-3 text-[11px] text-[var(--muted)]", children: ["Auto-canonical: ", record?.canonicalUrl ?? displayUrl] })), _jsx(PaneField, { label: "Schema type", children: _jsx("select", { className: inputCls, value: form.structuredDataType ?? 'WebPage', onChange: (e) => update({ structuredDataType: e.target.value }), children: SEO_SCHEMA_TYPES.map((t) => (_jsx("option", { value: t, children: t }, t))) }) }), _jsx(PaneToggleRow, { label: "Allow search engines to show this content?", hint: "When off, adds a noindex directive", checked: !form.noindex, onCheckedChange: (v) => update({ noindex: !v }) }), _jsx(PaneToggleRow, { label: "Should search engines follow links?", hint: "When off, adds a nofollow directive", checked: !form.nofollow, onCheckedChange: (v) => update({ nofollow: !v }) }), _jsxs("div", { className: "mt-2 border-t border-[var(--bdr)] pt-3", children: [_jsx("p", { className: "mb-2 text-[11px] font-medium text-[var(--sub)]", children: "AI discovery (llms.txt)" }), _jsx(PaneField, { label: "Include in llms.txt", children: _jsxs("select", { className: inputCls, value: form.llmsInclude ?? 'AUTO', onChange: (e) => update({ llmsInclude: e.target.value }), children: [_jsx("option", { value: "AUTO", children: "Auto \u2014 include when eligible" }), _jsx("option", { value: "ALWAYS", children: "Always \u2014 pin it in" }), _jsx("option", { value: "NEVER", children: "Never \u2014 exclude" })] }) }), _jsx(PaneField, { label: "Agent description", hint: _jsx(SeoCharCount, { value: form.llmsDescription ?? '', max: LLMS_DESC_MAX, bar: false }), children: _jsx("textarea", { className: `${inputCls} min-h-16 resize-y`, value: form.llmsDescription ?? '', onChange: (e) => update({ llmsDescription: e.target.value }), placeholder: form.keyTakeaway ||
|
|
392
|
+
form.metaDescription ||
|
|
393
|
+
'One line for an AI agent — what this page covers' }) })] })] }), _jsx(SeoAccordionItem, { value: "insights", title: "Insights", children: _jsx(SeoInsightsMetrics, { readability: readability, plainText: plainText }) }), _jsx(SeoAccordionItem, { value: "linking-data", title: "Linking data", children: _jsx(SeoLinkingSection, { entityType: entityType, entityId: entityId, internalLinks: Number(internalLinks), externalLinks: Number(externalLinks), internalLinkOk: internalOk, externalLinkOk: externalOk }) })] })] })), _jsx(MediaPickerModal, { open: imagePickerOpen, onClose: () => setImagePickerOpen(false), accept: "image/*", onSelect: (url) => update({ ogImage: url }) })] }), _jsx(InspectorPaneFooter, { children: _jsx("button", { type: "button", onClick: () => void handleSave(), disabled: saving || loading || !!error, className: "bg-primary text-primary-foreground w-full rounded-[7px] px-3 py-2 text-[13px] font-semibold transition-colors duration-[var(--motion-fast)] hover:opacity-90 focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50", children: saving ? 'Saving…' : isDraft ? 'Done' : 'Save Changes' }) })] }));
|
|
297
394
|
}
|
|
298
395
|
//# sourceMappingURL=SeoEditorPane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeoEditorPane.js","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SeoEditorPane.js","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A search-result preview for the SEO editor.
|
|
3
|
+
*
|
|
4
|
+
* Renders the three things a searcher actually sees, in the order and weight
|
|
5
|
+
* they see them, so an editor can judge a title and description as a result
|
|
6
|
+
* rather than as two form fields.
|
|
7
|
+
*
|
|
8
|
+
* The link blue is a literal, not a token: it is Google's result colour, and
|
|
9
|
+
* the point of the card is to look like the thing being previewed. Tokenising
|
|
10
|
+
* it would let a brand accent repaint it and quietly stop it being a preview.
|
|
11
|
+
* `#8ab4f8` is the dark-scheme equivalent.
|
|
12
|
+
*/
|
|
13
|
+
export interface SerpPreviewProps {
|
|
14
|
+
title: string;
|
|
15
|
+
/** Full resolved URL, shown above the title as search engines display it. */
|
|
16
|
+
url: string;
|
|
17
|
+
description: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function SerpPreview({ title, url, description }: SerpPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=SerpPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerpPreview.d.ts","sourceRoot":"","sources":["../../../src/components/seo/SerpPreview.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,gBAAgB,2CAmBxE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function SerpPreview({ title, url, description }) {
|
|
4
|
+
return (_jsxs("div", { className: "border-border bg-card rounded-lg border px-3 py-[11px]", role: "group", "aria-label": "Search result preview", children: [_jsx("p", { className: "truncate text-[11px] text-emerald-700 dark:text-emerald-400", children: url || 'https://example.com/page' }), _jsx("p", { className: "truncate text-[14px] leading-snug text-[#1a0dab] dark:text-[#8ab4f8]", children: title || 'Untitled page' }), _jsx("p", { className: "text-muted-foreground line-clamp-2 text-[11.5px] leading-snug", children: description || 'No meta description set. Search engines will improvise one.' })] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=SerpPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerpPreview.js","sourceRoot":"","sources":["../../../src/components/seo/SerpPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAqBZ,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAoB;IACvE,OAAO,CACL,eACE,SAAS,EAAC,wDAAwD,EAClE,IAAI,EAAC,OAAO,gBACD,uBAAuB,aAElC,YAAG,SAAS,EAAC,6DAA6D,YACvE,GAAG,IAAI,0BAA0B,GAChC,EACJ,YAAG,SAAS,EAAC,sEAAsE,YAChF,KAAK,IAAI,eAAe,GACvB,EAEJ,YAAG,SAAS,EAAC,+DAA+D,YACzE,WAAW,IAAI,6DAA6D,GAC3E,IACA,CACP,CAAA;AACH,CAAC"}
|