@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
|
@@ -4,12 +4,37 @@ interface SectionsPanelProps {
|
|
|
4
4
|
selectedId: string | null;
|
|
5
5
|
canEdit: boolean;
|
|
6
6
|
onSelect: (id: string) => void;
|
|
7
|
-
onReorder: (orderedIds: string[]) => void;
|
|
8
7
|
onToggleVisibility: (id: string) => void;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Permit structural editing — add, reorder, duplicate, delete.
|
|
10
|
+
*
|
|
11
|
+
* Defaults to FALSE. Pages and posts are design-owned: their section list
|
|
12
|
+
* comes from the template in code, and an editor changes copy, CTAs and
|
|
13
|
+
* imagery, never layout or order. Only the template editor — the surface
|
|
14
|
+
* that authors the template itself — opts in.
|
|
15
|
+
*
|
|
16
|
+
* The default is the restrictive one on purpose: a new consumer of this
|
|
17
|
+
* panel that forgets the flag gets the safe behaviour, not an editor that
|
|
18
|
+
* can quietly restructure a design-owned page.
|
|
19
|
+
*/
|
|
20
|
+
structural?: boolean;
|
|
21
|
+
/** Required when `structural`. */
|
|
22
|
+
onReorder?: (orderedIds: string[]) => void;
|
|
23
|
+
onDuplicate?: (id: string) => void;
|
|
24
|
+
onRequestDelete?: (id: string) => void;
|
|
25
|
+
onAdd?: () => void;
|
|
12
26
|
}
|
|
13
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Standalone panel — its own aside, header, and width. Used by the post
|
|
29
|
+
* TEMPLATE editor, which has no rail. The page and post editors render
|
|
30
|
+
* `SectionsList` inside `EditorRail` instead, so the rail owns the chrome.
|
|
31
|
+
*/
|
|
32
|
+
export declare function SectionsPanel(props: SectionsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* The section outline itself — list plus footer. Fills whatever container it
|
|
35
|
+
* is given, so it works both inside the standalone panel above and inside the
|
|
36
|
+
* editor rail's Sections tab.
|
|
37
|
+
*/
|
|
38
|
+
export declare function SectionsList({ sections, selectedId, canEdit, onSelect, onToggleVisibility, structural, onReorder, onDuplicate, onRequestDelete, onAdd, }: SectionsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
14
39
|
export {};
|
|
15
40
|
//# sourceMappingURL=SectionsPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAGnE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,
|
|
1
|
+
{"version":3,"file":"SectionsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAGnE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC1C,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAiBtD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,UAAkB,EAClB,SAAS,EACT,WAAW,EACX,eAAe,EACf,KAAK,GACN,EAAE,kBAAkB,2CAuDpB"}
|
|
@@ -7,7 +7,33 @@ import { CSS } from '@dnd-kit/utilities';
|
|
|
7
7
|
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
8
8
|
import { adminPortalContainer } from '../../lib/portal-container.js';
|
|
9
9
|
import { sectionIconFor } from './section-icons.js';
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Standalone panel — its own aside, header, and width. Used by the post
|
|
12
|
+
* TEMPLATE editor, which has no rail. The page and post editors render
|
|
13
|
+
* `SectionsList` inside `EditorRail` instead, so the rail owns the chrome.
|
|
14
|
+
*/
|
|
15
|
+
export function SectionsPanel(props) {
|
|
16
|
+
return (_jsxs("aside", { className: "bg-card border-border flex h-full w-72 shrink-0 flex-col border-r", "aria-label": "Page sections", children: [_jsx("div", { className: "border-border flex items-center justify-between border-b px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("h2", { className: "text-foreground text-sm font-medium", children: "Sections" }), _jsx("span", { className: "bg-muted text-muted-foreground rounded-full px-2 py-0.5 text-xs font-medium tabular-nums", children: props.sections.length })] }) }), _jsx(SectionsList, { ...props })] }));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The section outline itself — list plus footer. Fills whatever container it
|
|
20
|
+
* is given, so it works both inside the standalone panel above and inside the
|
|
21
|
+
* editor rail's Sections tab.
|
|
22
|
+
*/
|
|
23
|
+
export function SectionsList({ sections, selectedId, canEdit, onSelect, onToggleVisibility, structural = false, onReorder, onDuplicate, onRequestDelete, onAdd, }) {
|
|
24
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: sections.length === 0 ? (_jsx("p", { className: "text-muted-foreground px-2 py-6 text-center text-sm", children: structural
|
|
25
|
+
? 'No sections yet. Add one below to get started.'
|
|
26
|
+
: 'This template renders no sections.' })) : structural ? (_jsx(StructuralList, { sections: sections, selectedId: selectedId, canEdit: canEdit, onSelect: onSelect, onReorder: onReorder, onToggleVisibility: onToggleVisibility, onDuplicate: onDuplicate, onRequestDelete: onRequestDelete })) : (_jsx("ul", { className: "space-y-1", children: sections.map((section) => (_jsx(SectionRow, { section: section, selected: section.id === selectedId, canEdit: canEdit, structural: false, onSelect: onSelect, onToggleVisibility: onToggleVisibility }, section.id))) })) }), structural ? (_jsx("div", { className: "border-border border-t p-3", children: _jsxs("button", { type: "button", onClick: onAdd, disabled: !canEdit, className: "border-border text-foreground hover:bg-accent flex w-full items-center justify-center gap-2 rounded-lg border border-dashed px-3 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx(Plus, { className: "h-4 w-4", "aria-hidden": true }), "Add Section"] }) })) : (_jsx(DesignOwnedNote, {}))] }));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Explains the absence of add / reorder / delete. Without it the panel reads
|
|
30
|
+
* as broken rather than deliberate — "where did Add Section go" is the first
|
|
31
|
+
* question a returning editor asks.
|
|
32
|
+
*/
|
|
33
|
+
function DesignOwnedNote() {
|
|
34
|
+
return (_jsxs("div", { className: "border-border bg-background text-muted-foreground flex gap-2 border-t px-3 py-3 text-[11.5px] leading-normal", children: [_jsx(Lock, { className: "mt-0.5 h-3.5 w-3.5 shrink-0", "aria-hidden": true }), _jsxs("p", { children: [_jsx("strong", { className: "text-foreground font-semibold", children: "Layout is design-owned." }), " Sections and styling are built in code \u2014 here you edit headings, body copy, CTAs, and imagery. Hide a section to drop it from the live page."] })] }));
|
|
35
|
+
}
|
|
36
|
+
function StructuralList({ sections, selectedId, canEdit, onSelect, onReorder, onToggleVisibility, onDuplicate, onRequestDelete, }) {
|
|
11
37
|
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 4 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
|
|
12
38
|
function handleDragEnd(event) {
|
|
13
39
|
const { active, over } = event;
|
|
@@ -21,25 +47,30 @@ export function SectionsPanel({ sections, selectedId, canEdit, onSelect, onReord
|
|
|
21
47
|
const next = ids.slice();
|
|
22
48
|
const [moved] = next.splice(from, 1);
|
|
23
49
|
next.splice(to, 0, moved);
|
|
24
|
-
onReorder(next);
|
|
50
|
+
onReorder?.(next);
|
|
25
51
|
}
|
|
26
|
-
return (
|
|
52
|
+
return (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: sections.map((s) => s.id), strategy: verticalListSortingStrategy, children: _jsx("ul", { className: "space-y-1", children: sections.map((section) => (_jsx(SortableSectionItem, { section: section, selected: section.id === selectedId, canEdit: canEdit, onSelect: onSelect, onToggleVisibility: onToggleVisibility, onDuplicate: onDuplicate, onRequestDelete: onRequestDelete }, section.id))) }) }) }));
|
|
53
|
+
}
|
|
54
|
+
function SectionRow({ section, selected, canEdit, structural, onSelect, onToggleVisibility, onDuplicate, onRequestDelete, dragHandle, dragging, }) {
|
|
55
|
+
// Unmanaged (externally-managed) sections are read-only even in a structural
|
|
56
|
+
// panel: no drag, duplicate, delete, or visibility toggle — only selectable
|
|
57
|
+
// to view the read-only notice.
|
|
58
|
+
const locked = section.unmanaged === true;
|
|
59
|
+
const Icon = sectionIconFor(section.sectionType);
|
|
60
|
+
return (_jsxs("div", { className: `group flex items-center gap-2 rounded-lg border px-2 py-2 ${selected ? 'border-primary bg-accent' : 'hover:bg-accent/60 border-transparent'} ${dragging ? 'shadow-md' : ''}`, children: [dragHandle, _jsxs("button", { type: "button", onClick: () => onSelect(section.id), className: "flex min-w-0 flex-1 items-center gap-2 text-left", children: [_jsx("span", { className: "bg-muted text-muted-foreground flex h-7 w-7 shrink-0 items-center justify-center rounded-md", children: _jsx(Icon, { className: "h-4 w-4", "aria-hidden": true }) }), _jsx("span", { className: `truncate text-sm ${section.visible ? 'text-foreground' : 'text-muted-foreground line-through'}`, children: section.name })] }), locked ? (_jsx("span", { className: "text-muted-foreground shrink-0 p-1", title: "Managed outside the editor \u2014 read-only", "aria-label": `${section.name} is managed outside the editor and is read-only`, children: _jsx(Lock, { className: "h-4 w-4", "aria-hidden": true }) })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => onToggleVisibility(section.id), disabled: !canEdit, "aria-pressed": !section.visible, "aria-label": section.visible ? `Hide ${section.name}` : `Show ${section.name}`, className: "prenta-touch-target text-muted-foreground hover:text-foreground shrink-0 rounded p-1 disabled:opacity-40", children: section.visible ? (_jsx(Eye, { className: "h-4 w-4", "aria-hidden": true })) : (_jsx(EyeOff, { className: "h-4 w-4", "aria-hidden": true })) }), structural && (_jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { asChild: true, children: _jsx("button", { type: "button", disabled: !canEdit, "aria-label": `More actions for ${section.name}`, className: "prenta-touch-target text-muted-foreground hover:text-foreground shrink-0 rounded p-1 disabled:opacity-40", children: _jsx(MoreVertical, { className: "h-4 w-4", "aria-hidden": true }) }) }), _jsx(DropdownMenu.Portal, { container: adminPortalContainer(), children: _jsxs(DropdownMenu.Content, { align: "end", sideOffset: 4, className: "border-border bg-popover z-70 min-w-44 rounded-lg border p-1 shadow-md", children: [_jsx(MenuItem, { onSelect: () => onDuplicate?.(section.id), icon: Copy, children: "Duplicate" }), _jsx(DropdownMenu.Separator, { className: "bg-border my-1 h-px" }), _jsx(MenuItem, { onSelect: () => onRequestDelete?.(section.id), icon: Trash2, destructive: true, children: "Delete" })] }) })] }))] }))] }));
|
|
27
61
|
}
|
|
28
62
|
function SortableSectionItem({ section, selected, canEdit, onSelect, onToggleVisibility, onDuplicate, onRequestDelete, }) {
|
|
29
|
-
// Unmanaged (externally-managed) sections are read-only: no drag, duplicate,
|
|
30
|
-
// delete, or visibility toggle — only selectable to view the read-only notice.
|
|
31
63
|
const locked = section.unmanaged === true;
|
|
32
64
|
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
|
|
33
65
|
id: section.id,
|
|
34
66
|
disabled: !canEdit || locked,
|
|
35
67
|
});
|
|
36
|
-
const Icon = sectionIconFor(section.sectionType);
|
|
37
68
|
const style = {
|
|
38
69
|
transform: CSS.Transform.toString(transform),
|
|
39
70
|
transition,
|
|
40
71
|
zIndex: isDragging ? 10 : undefined,
|
|
41
72
|
};
|
|
42
|
-
return (_jsx("li", { ref: setNodeRef, style: style, children:
|
|
73
|
+
return (_jsx("li", { ref: setNodeRef, style: style, children: _jsx(SectionRow, { section: section, selected: selected, canEdit: canEdit, structural: true, onSelect: onSelect, onToggleVisibility: onToggleVisibility, onDuplicate: onDuplicate, onRequestDelete: onRequestDelete, dragging: isDragging, dragHandle: _jsx("button", { type: "button", className: "text-muted-foreground hover:text-foreground shrink-0 cursor-grab touch-none disabled:cursor-not-allowed disabled:opacity-40", "aria-label": `Drag to reorder ${section.name}`, disabled: !canEdit || locked, ...attributes, ...listeners, children: _jsx(GripVertical, { className: "h-4 w-4", "aria-hidden": true }) }) }) }));
|
|
43
74
|
}
|
|
44
75
|
function MenuItem({ children, icon: Icon, onSelect, destructive, }) {
|
|
45
76
|
return (_jsxs(DropdownMenu.Item, { onSelect: onSelect, className: `flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none ${destructive ? 'text-destructive focus:bg-destructive/10' : 'text-foreground focus:bg-accent'}`, children: [_jsx(Icon, { className: "h-4 w-4", "aria-hidden": true }), children] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsPanel.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,YAAY,EACZ,IAAI,EAEJ,YAAY,EACZ,IAAI,EACJ,MAAM,GACP,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,GAEX,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,WAAW,EACX,2BAA2B,GAC5B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"SectionsPanel.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SitePreviewFrame.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/SitePreviewFrame.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SitePreviewFrame.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/SitePreviewFrame.tsx"],"names":[],"mappings":"AAKA,OAAO,EAUL,KAAK,qBAAqB,EAE3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE7D,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,qBAAqB;IAC7B,uEAAuE;IACvE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,QAAQ,EAAE,UAAU,CAAA;IACpB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAClC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACxE,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAChD,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAA;CACpE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,QAAQ,EACR,SAAS,EACT,KAAsB,EACtB,UAAiB,EACjB,QAAQ,EACR,oBAAwB,EACxB,eAAe,EACf,YAAY,EACZ,oBAAoB,GACrB,EAAE,qBAAqB,2CAiJvB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
4
4
|
import { Loader2 } from 'lucide-react';
|
|
5
|
+
import { injectPreviewEditChrome } from '../../lib/canvas-edit-chrome.js';
|
|
5
6
|
import { canvasOriginFromSrc, isPreviewBridgeMessage, isPreviewEditMessage, isPreviewRequestMediaMessage, PREVIEW_BRIDGE_VERSION, PREVIEW_SECTIONS_DEBOUNCE_MS, toPreviewSectionPayload, } from '../../lib/preview-bridge.js';
|
|
6
7
|
import { getViewport } from './viewports.js';
|
|
7
8
|
/**
|
|
@@ -88,6 +89,8 @@ export function SitePreviewFrame({ src, viewport, reloadKey, title = 'Site previ
|
|
|
88
89
|
editing: true,
|
|
89
90
|
};
|
|
90
91
|
win.postMessage(msg, canvasOrigin);
|
|
92
|
+
// Same-origin only — cross-origin previews skip silently.
|
|
93
|
+
injectPreviewEditChrome(iframeRef.current);
|
|
91
94
|
}, [canvasOrigin, loaded, canvasReady, reloadKey]);
|
|
92
95
|
// Admin → canvas: highlight the selected section.
|
|
93
96
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SitePreviewFrame.js","sourceRoot":"","sources":["../../../src/views/page-editor/SitePreviewFrame.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SitePreviewFrame.js","sourceRoot":"","sources":["../../../src/views/page-editor/SitePreviewFrame.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type PageVersion } from '../../lib/version-history.js';
|
|
2
|
+
export interface VersionHistoryPanelProps {
|
|
3
|
+
versions: PageVersion[];
|
|
4
|
+
loading: boolean;
|
|
5
|
+
error: string | null;
|
|
6
|
+
/** Index into `versions`; 0 is the newest, which is "current". */
|
|
7
|
+
selectedIndex: number;
|
|
8
|
+
onSelect: (index: number) => void;
|
|
9
|
+
onClose: () => void;
|
|
10
|
+
onRestore: (version: PageVersion) => void;
|
|
11
|
+
restoring: boolean;
|
|
12
|
+
canRestore: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Version history, as a takeover of the editing rail.
|
|
16
|
+
*
|
|
17
|
+
* It is deliberately NOT a dialog. History here is about comparing *renders*:
|
|
18
|
+
* picking a version puts it on the canvas, and the changed sections light up
|
|
19
|
+
* there. A modal would cover the very thing it exists to let you look at, and
|
|
20
|
+
* a right-hand drawer would push the canvas around while you compare against
|
|
21
|
+
* it. Overlaying the rail leaves the canvas exactly where it was, at exactly
|
|
22
|
+
* the size it was, so the only thing that changes between two versions is the
|
|
23
|
+
* page itself.
|
|
24
|
+
*
|
|
25
|
+
* Absolutely positioned over the rail's own box (the rail is `relative`) so it
|
|
26
|
+
* inherits the user's chosen rail width and needs no width of its own.
|
|
27
|
+
*/
|
|
28
|
+
export declare function VersionHistoryPanel({ versions, loading, error, selectedIndex, onSelect, onClose, onRestore, restoring, canRestore, }: VersionHistoryPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=VersionHistoryPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionHistoryPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/VersionHistoryPanel.tsx"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAA;AAErC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACzC,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,OAAO,EACP,KAAK,EACL,aAAa,EACb,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,GACX,EAAE,wBAAwB,2CAsG1B"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { History, Loader2, RotateCcw, X } from 'lucide-react';
|
|
5
|
+
import { diffVersions, groupChangesBySection, } from '../../lib/version-diff.js';
|
|
6
|
+
import { groupVersionsByDay, initials, timeLabel, versionKind, } from '../../lib/version-history.js';
|
|
7
|
+
/**
|
|
8
|
+
* Version history, as a takeover of the editing rail.
|
|
9
|
+
*
|
|
10
|
+
* It is deliberately NOT a dialog. History here is about comparing *renders*:
|
|
11
|
+
* picking a version puts it on the canvas, and the changed sections light up
|
|
12
|
+
* there. A modal would cover the very thing it exists to let you look at, and
|
|
13
|
+
* a right-hand drawer would push the canvas around while you compare against
|
|
14
|
+
* it. Overlaying the rail leaves the canvas exactly where it was, at exactly
|
|
15
|
+
* the size it was, so the only thing that changes between two versions is the
|
|
16
|
+
* page itself.
|
|
17
|
+
*
|
|
18
|
+
* Absolutely positioned over the rail's own box (the rail is `relative`) so it
|
|
19
|
+
* inherits the user's chosen rail width and needs no width of its own.
|
|
20
|
+
*/
|
|
21
|
+
export function VersionHistoryPanel({ versions, loading, error, selectedIndex, onSelect, onClose, onRestore, restoring, canRestore, }) {
|
|
22
|
+
/**
|
|
23
|
+
* Disclosure FOLLOWS selection rather than being tracked separately.
|
|
24
|
+
*
|
|
25
|
+
* They are the same act: the selected version is what the canvas renders,
|
|
26
|
+
* and the expanded diff is the list of what to look for on it. Held apart,
|
|
27
|
+
* the two drift — the parent can move the selection (the review bar's "Back
|
|
28
|
+
* to current" does exactly that), and the diff then describes one version
|
|
29
|
+
* while the canvas shows another, with Restore stranded on a row nobody can
|
|
30
|
+
* see. Only "did the user collapse the row they are on" needs remembering.
|
|
31
|
+
*/
|
|
32
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
33
|
+
const expandedId = collapsed ? null : (versions[selectedIndex]?.id ?? null);
|
|
34
|
+
const days = useMemo(() => groupVersionsByDay(versions), [versions]);
|
|
35
|
+
// Diff each version against the one before it, so a row reports what that
|
|
36
|
+
// save DID rather than how it differs from the present.
|
|
37
|
+
const changesByVersion = useMemo(() => {
|
|
38
|
+
const map = new Map();
|
|
39
|
+
versions.forEach((version, index) => {
|
|
40
|
+
map.set(version.id, diffVersions(version.sections, versions[index + 1]?.sections));
|
|
41
|
+
});
|
|
42
|
+
return map;
|
|
43
|
+
}, [versions]);
|
|
44
|
+
return (_jsxs("div", { className: "bg-card absolute inset-0 z-45 flex flex-col", role: "region", "aria-label": "Version history", children: [_jsxs("div", { className: "border-border flex shrink-0 items-center gap-2 border-b py-2.5 pr-2.5 pl-3.5", children: [_jsx(History, { className: "text-brand h-3.5 w-3.5", "aria-hidden": true }), _jsx("h2", { className: "text-foreground flex-1 text-[12.5px] font-semibold", children: "Version history" }), _jsxs("span", { className: "text-muted-foreground text-[11px] tabular-nums", children: [versions.length, " version", versions.length === 1 ? '' : 's'] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close version history", title: "Close version history", className: "prenta-touch-target text-muted-foreground hover:bg-accent hover:text-accent-foreground flex h-6.5 w-6.5 items-center justify-center rounded-md transition-colors", children: _jsx(X, { className: "h-3.5 w-3.5", "aria-hidden": true }) })] }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: loading ? (_jsxs("div", { className: "flex items-center justify-center py-16", children: [_jsx(Loader2, { className: "text-muted-foreground h-5 w-5 animate-spin", "aria-hidden": true }), _jsx("span", { className: "sr-only", children: "Loading version history" })] })) : error ? (_jsx("p", { className: "text-destructive px-3.5 py-10 text-center text-sm", children: error })) : versions.length === 0 ? (_jsx("p", { className: "text-muted-foreground px-3.5 py-10 text-center text-sm", children: "No versions yet. Every save adds one." })) : (days.map((day) => (
|
|
45
|
+
// Keyed on the group's first version, NOT on its label. Grouping
|
|
46
|
+
// walks consecutive runs, so an out-of-order page yields two
|
|
47
|
+
// non-adjacent groups both labelled "Today" — `groupVersionsByDay`
|
|
48
|
+
// has a test asserting exactly that — and a label key would collide.
|
|
49
|
+
_jsxs("section", { children: [_jsx("h3", { className: "text-muted-foreground bg-muted border-border sticky top-0 z-2 border-b px-3.5 pt-2.5 pb-1.5 text-[10px] font-bold tracking-[0.7px] uppercase", children: day.label }), day.versions.map((version) => {
|
|
50
|
+
const index = versions.indexOf(version);
|
|
51
|
+
return (_jsx(VersionRow, { version: version, index: index, changes: changesByVersion.get(version.id) ?? [], selected: index === selectedIndex, expanded: expandedId === version.id, onToggle: () => {
|
|
52
|
+
// Re-clicking the row you are on collapses it; clicking
|
|
53
|
+
// any other selects it, which is also what opens it.
|
|
54
|
+
if (index === selectedIndex)
|
|
55
|
+
setCollapsed((prev) => !prev);
|
|
56
|
+
else {
|
|
57
|
+
setCollapsed(false);
|
|
58
|
+
onSelect(index);
|
|
59
|
+
}
|
|
60
|
+
}, onRestore: () => onRestore(version), restoring: restoring, canRestore: canRestore }, version.id));
|
|
61
|
+
})] }, day.versions[0]?.id ?? day.label)))) })] }));
|
|
62
|
+
}
|
|
63
|
+
const TONE_CLASS = {
|
|
64
|
+
live: 'bg-success/15 text-success',
|
|
65
|
+
draft: 'bg-warning/15 text-warning',
|
|
66
|
+
neutral: 'bg-muted text-muted-foreground',
|
|
67
|
+
danger: 'bg-destructive/15 text-destructive',
|
|
68
|
+
};
|
|
69
|
+
function VersionRow({ version, index, changes, selected, expanded, onToggle, onRestore, restoring, canRestore, }) {
|
|
70
|
+
const kind = versionKind(version.changeType);
|
|
71
|
+
const isCurrent = index === 0;
|
|
72
|
+
const groups = groupChangesBySection(changes);
|
|
73
|
+
const time = timeLabel(version.createdAt);
|
|
74
|
+
return (_jsxs("div", { className: "border-border border-b", children: [_jsxs("button", { type: "button", onClick: onToggle, "aria-expanded": expanded, className: `flex w-full items-center gap-2.5 py-2.5 pr-2.5 pl-3 text-left transition-colors ${selected ? 'bg-accent shadow-[inset_2px_0_0_var(--acc)]' : 'hover:bg-accent/60'}`, children: [_jsx("span", { className: "bg-muted text-muted-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-[9.5px] font-semibold", "aria-hidden": true, children: initials(version.author.name) }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsxs("span", { className: "text-foreground flex items-center gap-1.5 text-xs font-semibold", children: [time, isCurrent && (_jsx("span", { className: "bg-accent text-accent-foreground rounded px-1.5 py-px text-[8.5px] font-bold tracking-[0.4px] uppercase", children: "Current" }))] }), _jsxs("span", { className: "text-muted-foreground mt-px block truncate text-[10.5px]", children: [version.author.name, " \u00B7", ' ', changes.length
|
|
75
|
+
? `${changes.length} change${changes.length === 1 ? '' : 's'}`
|
|
76
|
+
: 'no content changes'] })] }), _jsx("span", { className: `shrink-0 rounded px-1.5 py-px text-[8.5px] font-bold tracking-[0.4px] uppercase ${TONE_CLASS[kind.tone] ?? TONE_CLASS.neutral}`, children: kind.label })] }), expanded && (_jsxs("div", { className: "flex flex-col gap-2.5 pt-0 pr-3 pb-3 pl-[38px]", children: [groups.length > 0 ? (groups.map((group) => _jsx(ChangeGroup, { group: group }, group.sectionId))) : (_jsx("p", { className: "text-muted-foreground text-[11px] leading-[1.45]", children: "No section changes to show against the version before it." })), selected && !isCurrent && canRestore && (_jsxs("button", { type: "button", onClick: onRestore, disabled: restoring, className: "border-border text-foreground hover:bg-accent inline-flex items-center justify-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [restoring ? (_jsx(Loader2, { className: "h-3 w-3 animate-spin", "aria-hidden": true })) : (_jsx(RotateCcw, { className: "h-3 w-3", "aria-hidden": true })), "Restore this version"] }))] }))] }));
|
|
77
|
+
}
|
|
78
|
+
function ChangeGroup({ group }) {
|
|
79
|
+
return (_jsxs("div", { children: [_jsx("h4", { className: "text-foreground/80 mb-1 text-[9.5px] font-bold tracking-[0.4px] uppercase", children: group.sectionName }), group.changes.map((change, i) => (_jsxs("div", { className: i > 0 ? 'mt-1.5' : undefined, children: [_jsx("div", { className: "text-muted-foreground text-[9.5px] font-bold tracking-[0.3px]", children: change.field }), _jsx("div", { className: "text-destructive text-[11px] leading-[1.45] line-through decoration-1", children: change.from }), _jsx("div", { className: "text-success text-[11px] leading-[1.45]", children: change.to })] }, `${change.field}-${i}`)))] }));
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=VersionHistoryPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionHistoryPanel.js","sourceRoot":"","sources":["../../../src/views/page-editor/VersionHistoryPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BreakpointId } from '../../lib/breakpoints.js';
|
|
2
|
+
import type { ReflowBaseline } from '../../lib/reflow-baseline.js';
|
|
3
|
+
/**
|
|
4
|
+
* What the reflow guard needs that a field editor cannot know by itself.
|
|
5
|
+
*
|
|
6
|
+
* A context rather than props because the guard hangs off individual fields
|
|
7
|
+
* several levels down (inspector → field → repeater row → field), and threading
|
|
8
|
+
* five props through every renderer for a feature that only some field types
|
|
9
|
+
* use makes every one of them harder to read.
|
|
10
|
+
*
|
|
11
|
+
* The default is inert — no canvas, no baseline — so a field rendered outside a
|
|
12
|
+
* page editor (a repeater in a modal, a test) simply shows no guard rather than
|
|
13
|
+
* needing a provider to exist.
|
|
14
|
+
*/
|
|
15
|
+
export interface ReflowContextValue {
|
|
16
|
+
/** The live `.prenta-canvas` element the probe clones. */
|
|
17
|
+
canvas: HTMLElement | null;
|
|
18
|
+
/** Section the inspector is editing — scopes field lookup. */
|
|
19
|
+
sectionId: string | null;
|
|
20
|
+
baseline: ReflowBaseline | null;
|
|
21
|
+
/** Breakpoint the canvas is showing. */
|
|
22
|
+
device: BreakpointId;
|
|
23
|
+
/** Take the canvas to a breakpoint so the editor can look at it. */
|
|
24
|
+
onProof: (id: BreakpointId) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare const ReflowContext: import("react").Context<ReflowContextValue>;
|
|
27
|
+
export declare function useReflowContext(): ReflowContextValue;
|
|
28
|
+
//# sourceMappingURL=reflow-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflow-context.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/reflow-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,8DAA8D;IAC9D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;IAC/B,wCAAwC;IACxC,MAAM,EAAE,YAAY,CAAA;IACpB,oEAAoE;IACpE,OAAO,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAA;CACpC;AAUD,eAAO,MAAM,aAAa,6CAA2C,CAAA;AAErE,wBAAgB,gBAAgB,IAAI,kBAAkB,CAErD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
const INERT = {
|
|
4
|
+
canvas: null,
|
|
5
|
+
sectionId: null,
|
|
6
|
+
baseline: null,
|
|
7
|
+
device: 'wide',
|
|
8
|
+
onProof: () => { },
|
|
9
|
+
};
|
|
10
|
+
export const ReflowContext = createContext(INERT);
|
|
11
|
+
export function useReflowContext() {
|
|
12
|
+
return useContext(ReflowContext);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=reflow-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflow-context.js","sourceRoot":"","sources":["../../../src/views/page-editor/reflow-context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AA4BjD,MAAM,KAAK,GAAuB;IAChC,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAqB,KAAK,CAAC,CAAA;AAErE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ByTheNumbersSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/ByTheNumbersSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAStE,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"ByTheNumbersSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/ByTheNumbersSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAStE,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,2CAgCxE"}
|
|
@@ -5,6 +5,6 @@ export function ByTheNumbersSection({ section }) {
|
|
|
5
5
|
const heading = str(c, 'heading');
|
|
6
6
|
const body = str(c, 'body');
|
|
7
7
|
const stats = Array.isArray(c.stats) ? c.stats : [];
|
|
8
|
-
return (_jsxs("div", { className: "mx-auto max-w-5xl px-6 text-center", children: [heading && (_jsx("h2", { className: "text-foreground text-2xl font-semibold tracking-tight
|
|
8
|
+
return (_jsxs("div", { className: "mx-auto max-w-5xl px-6 text-center", children: [heading && (_jsx("h2", { className: "text-foreground @pv-md:text-3xl @pv-2xl:text-4xl text-2xl font-semibold tracking-tight", children: heading })), body && _jsx("p", { className: "text-muted-foreground mx-auto mt-4 max-w-2xl text-base", children: body }), stats.length > 0 && (_jsx("dl", { className: "@pv-sm:grid-cols-2 @pv-lg:grid-cols-3 mt-10 grid grid-cols-1 gap-8", children: stats.map((s, i) => (_jsxs("div", { children: [_jsx("dt", { className: "text-brand text-4xl font-semibold tracking-tight", children: String(s.value ?? '') }), _jsx("dd", { className: "text-foreground mt-2 text-sm font-medium", children: String(s.label ?? '') }), s.description ? (_jsx("dd", { className: "text-muted-foreground mt-1 text-xs", children: String(s.description) })) : null] }, i))) }))] }));
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=ByTheNumbersSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ByTheNumbersSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/ByTheNumbersSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAQhC,MAAM,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAA4B;IACvE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/D,OAAO,CACL,eAAK,SAAS,EAAC,oCAAoC,aAChD,OAAO,IAAI,CACV,aAAI,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"ByTheNumbersSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/ByTheNumbersSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAQhC,MAAM,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAA4B;IACvE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/D,OAAO,CACL,eAAK,SAAS,EAAC,oCAAoC,aAChD,OAAO,IAAI,CACV,aAAI,SAAS,EAAC,wFAAwF,YACnG,OAAO,GACL,CACN,EACA,IAAI,IAAI,YAAG,SAAS,EAAC,wDAAwD,YAAE,IAAI,GAAK,EAExF,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,aAAI,SAAS,EAAC,oEAAoE,YAC/E,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnB,0BACE,aAAI,SAAS,EAAC,kDAAkD,YAC7D,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GACnB,EACL,aAAI,SAAS,EAAC,0CAA0C,YAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAM,EACpF,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CACf,aAAI,SAAS,EAAC,oCAAoC,YAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAM,CAChF,CAAC,CAAC,CAAC,IAAI,KAPA,CAAC,CAQL,CACP,CAAC,GACC,CACN,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CtaBannerSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/CtaBannerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAGtE,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"CtaBannerSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/CtaBannerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAGtE,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,2CA2BrE"}
|
|
@@ -5,6 +5,6 @@ export function CtaBannerSection({ section }) {
|
|
|
5
5
|
const dark = isDarkBackground(section.settings);
|
|
6
6
|
const heading = str(c, 'heading');
|
|
7
7
|
const body = str(c, 'body');
|
|
8
|
-
return (_jsxs("div", { className: "mx-auto max-w-3xl px-6 text-center", children: [_jsx("h2", { className: "text-2xl font-semibold tracking-tight
|
|
8
|
+
return (_jsxs("div", { className: "mx-auto max-w-3xl px-6 text-center", children: [_jsx("h2", { className: "@pv-md:text-3xl @pv-2xl:text-4xl text-2xl font-semibold tracking-tight", children: heading }), body && (_jsx("p", { className: `mx-auto mt-3 max-w-xl text-base ${dark ? 'text-brand-foreground/80' : 'text-muted-foreground'}`, children: body })), _jsx("div", { className: "mt-6 flex justify-center", children: _jsx(PreviewButton, { label: str(c, 'buttonLabel'), href: str(c, 'buttonUrl'), tone: dark ? 'onDark' : 'primary' }) })] }));
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=CtaBannerSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CtaBannerSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/CtaBannerSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAA4B;IACpE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,CACL,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"CtaBannerSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/CtaBannerSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAA4B;IACpE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,CACL,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,wEAAwE,YACnF,OAAO,GACL,EACJ,IAAI,IAAI,CACP,YACE,SAAS,EAAE,mCAAmC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB,EAAE,YAE1G,IAAI,GACH,CACL,EACD,cAAK,SAAS,EAAC,0BAA0B,YACvC,KAAC,aAAa,IACZ,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,EAC5B,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,EACzB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GACjC,GACE,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureHighlightSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/FeatureHighlightSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAGtE,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"FeatureHighlightSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/FeatureHighlightSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAGtE,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,2CA6D5E"}
|
|
@@ -9,10 +9,10 @@ export function FeatureHighlightSection({ section }) {
|
|
|
9
9
|
const imageUrl = str(c, 'imageUrl');
|
|
10
10
|
const imageAlt = str(c, 'imageAlt');
|
|
11
11
|
const imageLeft = str(c, 'imagePosition', 'right') === 'left';
|
|
12
|
-
const text = (_jsxs("div", { className: "flex-1", children: [label && (_jsx("span", { className: "bg-brand mb-3 inline-block rounded px-2 py-0.5 text-xs font-medium text-white", children: label })), _jsx("h2", { className: "text-foreground text-2xl font-semibold tracking-tight
|
|
12
|
+
const text = (_jsxs("div", { className: "flex-1", children: [label && (_jsx("span", { className: "bg-brand mb-3 inline-block rounded px-2 py-0.5 text-xs font-medium text-white", children: label })), _jsx("h2", { className: "text-foreground @pv-md:text-3xl @pv-2xl:text-4xl text-2xl font-semibold tracking-tight", children: heading }), body && _jsx("p", { className: "text-muted-foreground mt-4 text-base leading-relaxed", children: body }), _jsx("div", { className: "mt-6", children: _jsx(PreviewButton, { label: str(c, 'buttonLabel'), href: str(c, 'buttonUrl'), tone: "primary" }) })] }));
|
|
13
13
|
const media = (_jsx("div", { className: "flex-1", children: imageUrl ? (
|
|
14
14
|
// Admin-only preview; next/image isn't in scope here.
|
|
15
15
|
_jsx("img", { src: imageUrl, alt: imageAlt, className: "aspect-[4/3] w-full rounded-xl object-cover" })) : (_jsx("div", { className: "bg-brand/10 flex aspect-[4/3] w-full items-center justify-center rounded-xl", children: _jsx(ImageIcon, { className: "text-brand h-10 w-10", "aria-hidden": true }) })) }));
|
|
16
|
-
return (_jsx("div", { className: "mx-auto max-w-5xl px-6", children: _jsx("div", { className: "flex flex-col items-center gap-10
|
|
16
|
+
return (_jsx("div", { className: "mx-auto max-w-5xl px-6", children: _jsx("div", { className: "@pv-md:flex-row flex flex-col items-center gap-10", children: imageLeft ? (_jsxs(_Fragment, { children: [media, text] })) : (_jsxs(_Fragment, { children: [text, media] })) }) }));
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=FeatureHighlightSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureHighlightSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/FeatureHighlightSection.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,UAAU,uBAAuB,CAAC,EAAE,OAAO,EAA4B;IAC3E,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;IAE7D,MAAM,IAAI,GAAG,CACX,eAAK,SAAS,EAAC,QAAQ,aACpB,KAAK,IAAI,CACR,eAAM,SAAS,EAAC,+EAA+E,YAC5F,KAAK,GACD,CACR,EACD,aAAI,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"FeatureHighlightSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/FeatureHighlightSection.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,UAAU,uBAAuB,CAAC,EAAE,OAAO,EAA4B;IAC3E,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;IAE7D,MAAM,IAAI,GAAG,CACX,eAAK,SAAS,EAAC,QAAQ,aACpB,KAAK,IAAI,CACR,eAAM,SAAS,EAAC,+EAA+E,YAC5F,KAAK,GACD,CACR,EACD,aAAI,SAAS,EAAC,wFAAwF,YACnG,OAAO,GACL,EACJ,IAAI,IAAI,YAAG,SAAS,EAAC,sDAAsD,YAAE,IAAI,GAAK,EACvF,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,aAAa,IAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,EAAC,SAAS,GAAG,GACrF,IACF,CACP,CAAA;IAED,MAAM,KAAK,GAAG,CACZ,cAAK,SAAS,EAAC,QAAQ,YACpB,QAAQ,CAAC,CAAC,CAAC;QACV,sDAAsD;QACtD,cACE,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,QAAQ,EACb,SAAS,EAAC,6CAA6C,GACvD,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,6EAA6E,YAC1F,KAAC,SAAS,IAAC,SAAS,EAAC,sBAAsB,wBAAe,GACtD,CACP,GACG,CACP,CAAA;IAED,OAAO,CACL,cAAK,SAAS,EAAC,wBAAwB,YAErC,cAAK,SAAS,EAAC,mDAAmD,YAC/D,SAAS,CAAC,CAAC,CAAC,CACX,8BACG,KAAK,EACL,IAAI,IACJ,CACJ,CAAC,CAAC,CAAC,CACF,8BACG,IAAI,EACJ,KAAK,IACL,CACJ,GACG,GACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GallerySection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/GallerySection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAStE,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"GallerySection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/GallerySection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAStE,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,2CAiDnE"}
|
|
@@ -7,11 +7,15 @@ export function GallerySection({ section }) {
|
|
|
7
7
|
const columns = Number.parseInt(str(c, 'columns', '3'), 10) || 3;
|
|
8
8
|
const images = Array.isArray(c.images) ? c.images : [];
|
|
9
9
|
const withUrl = images.filter((img) => img && typeof img.url === 'string' && img.url);
|
|
10
|
+
// Ascending min-width container queries only: the column count is chosen
|
|
11
|
+
// from content, so mixing min- and max-width variants here would depend on
|
|
12
|
+
// Tailwind's variant sort order to resolve — the exact ambiguity the handoff
|
|
13
|
+
// warns about for data-driven grids.
|
|
10
14
|
const cols = columns === 2
|
|
11
|
-
? 'sm:grid-cols-2'
|
|
15
|
+
? '@pv-sm:grid-cols-2'
|
|
12
16
|
: columns === 4
|
|
13
|
-
? 'sm:grid-cols-2
|
|
14
|
-
: 'sm:grid-cols-3';
|
|
17
|
+
? '@pv-sm:grid-cols-2 @pv-xl:grid-cols-4'
|
|
18
|
+
: '@pv-sm:grid-cols-2 @pv-lg:grid-cols-3';
|
|
15
19
|
return (_jsxs("div", { className: "mx-auto max-w-5xl px-6", children: [heading && (_jsx("h2", { className: "text-foreground mb-6 text-2xl font-semibold tracking-tight", children: heading })), withUrl.length > 0 ? (_jsx("div", { className: `grid grid-cols-1 gap-3 ${cols}`, children: withUrl.map((img, i) => (_jsxs("figure", { className: "border-border overflow-hidden rounded-lg border", children: [_jsx("img", { src: img.url, alt: img.alt ?? '', className: "aspect-square w-full object-cover" }), img.caption && (_jsx("figcaption", { className: "text-muted-foreground px-2 py-1.5 text-xs", children: img.caption }))] }, i))) })) : (_jsx("div", { className: `grid grid-cols-1 gap-3 ${cols}`, children: Array.from({ length: columns }, (_, i) => (_jsx("div", { className: "bg-muted aspect-square rounded-lg", "aria-hidden": true }, i))) }))] }));
|
|
16
20
|
}
|
|
17
21
|
//# sourceMappingURL=GallerySection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GallerySection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/GallerySection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAQhC,6CAA6C;AAC7C,MAAM,UAAU,cAAc,CAAC,EAAE,OAAO,EAA4B;IAClE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IAChE,MAAM,MAAM,GAAmB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,MAAyB,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAErF,MAAM,IAAI,GACR,OAAO,KAAK,CAAC;QACX,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"GallerySection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/GallerySection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAQhC,6CAA6C;AAC7C,MAAM,UAAU,cAAc,CAAC,EAAE,OAAO,EAA4B;IAClE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IAChE,MAAM,MAAM,GAAmB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,MAAyB,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAErF,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,IAAI,GACR,OAAO,KAAK,CAAC;QACX,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,OAAO,KAAK,CAAC;YACb,CAAC,CAAC,uCAAuC;YACzC,CAAC,CAAC,uCAAuC,CAAA;IAE/C,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACpC,OAAO,IAAI,CACV,aAAI,SAAS,EAAC,4DAA4D,YAAE,OAAO,GAAM,CAC1F,EACA,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACpB,cAAK,SAAS,EAAE,0BAA0B,IAAI,EAAE,YAC7C,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,kBAAgB,SAAS,EAAC,iDAAiD,aACzE,cACE,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAClB,SAAS,EAAC,mCAAmC,GAC7C,EACD,GAAG,CAAC,OAAO,IAAI,CACd,qBAAY,SAAS,EAAC,2CAA2C,YAC9D,GAAG,CAAC,OAAO,GACD,CACd,KAVU,CAAC,CAWL,CACV,CAAC,GACE,CACP,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAE,0BAA0B,IAAI,EAAE,YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACzC,cAAa,SAAS,EAAC,mCAAmC,yBAAhD,CAAC,CAA8D,CAC1E,CAAC,GACE,CACP,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -6,6 +6,6 @@ export function HeroBannerSection({ section }) {
|
|
|
6
6
|
const eyebrow = str(c, 'eyebrow');
|
|
7
7
|
const heading = str(c, 'heading');
|
|
8
8
|
const body = str(c, 'body');
|
|
9
|
-
return (_jsxs("div", { className: "mx-auto max-w-3xl px-6 text-center", children: [eyebrow && (_jsx("p", { className: `mb-3 text-sm font-medium tracking-wide uppercase ${dark ? 'text-brand-foreground/80' : 'text-brand'}`, children: eyebrow })), _jsx("h1", { className: "text-3xl leading-tight font-semibold tracking-tight
|
|
9
|
+
return (_jsxs("div", { className: "mx-auto max-w-3xl px-6 text-center", children: [eyebrow && (_jsx("p", { className: `mb-3 text-sm font-medium tracking-wide uppercase ${dark ? 'text-brand-foreground/80' : 'text-brand'}`, children: eyebrow })), _jsx("h1", { className: "@pv-md:text-5xl @pv-2xl:text-6xl text-3xl leading-tight font-semibold tracking-tight", children: heading || 'Your headline goes here' }), body && (_jsx("p", { className: `@pv-md:text-lg mx-auto mt-5 max-w-2xl text-base ${dark ? 'text-brand-foreground/80' : 'text-muted-foreground'}`, children: body })), _jsxs("div", { className: "mt-8 flex flex-wrap items-center justify-center gap-3", children: [_jsx(PreviewButton, { label: str(c, 'primaryButtonLabel'), href: str(c, 'primaryButtonUrl'), tone: dark ? 'onDark' : 'primary' }), _jsx(PreviewButton, { label: str(c, 'secondaryButtonLabel'), href: str(c, 'secondaryButtonUrl'), tone: "ghost" })] })] }));
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=HeroBannerSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeroBannerSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/HeroBannerSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAA4B;IACrE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,CACL,eAAK,SAAS,EAAC,oCAAoC,aAChD,OAAO,IAAI,CACV,YACE,SAAS,EAAE,oDAAoD,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,YAAY,EAAE,YAEhH,OAAO,GACN,CACL,EACD,aAAI,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"HeroBannerSection.js","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/HeroBannerSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAA4B;IACrE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,CACL,eAAK,SAAS,EAAC,oCAAoC,aAChD,OAAO,IAAI,CACV,YACE,SAAS,EAAE,oDAAoD,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,YAAY,EAAE,YAEhH,OAAO,GACN,CACL,EACD,aAAI,SAAS,EAAC,sFAAsF,YACjG,OAAO,IAAI,yBAAyB,GAClC,EACJ,IAAI,IAAI,CACP,YACE,SAAS,EAAE,mDAAmD,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB,EAAE,YAE1H,IAAI,GACH,CACL,EACD,eAAK,SAAS,EAAC,uDAAuD,aACpE,KAAC,aAAa,IACZ,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,EACnC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAChC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GACjC,EACF,KAAC,aAAa,IACZ,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,EACrC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,EAClC,IAAI,EAAC,OAAO,GACZ,IACE,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MissionSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/MissionSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAGtE,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"MissionSection.d.ts","sourceRoot":"","sources":["../../../../src/views/page-editor/sections/MissionSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAGtE,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,2CAqBnE"}
|