efficient-web-builder 1.0.0 → 2.1.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 +47 -0
- package/README.md +2 -1
- package/dist/components/AddBlockRow.d.ts +1 -7
- package/dist/components/AddBlockRow.js +1 -1
- package/dist/components/AddChildRow.d.ts +1 -6
- package/dist/components/AddChildRow.js +1 -1
- package/dist/components/AddSidePanel.d.ts +2 -39
- package/dist/components/AddSidePanel.js +1 -1
- package/dist/components/BlockGapField.js +1 -1
- package/dist/components/BlogPostSource.js +1 -1
- package/dist/components/Breadcrumb.js +1 -1
- package/dist/components/Btn.js +1 -1
- package/dist/components/CardShadowField.js +1 -1
- package/dist/components/CategoryBar.js +1 -1
- package/dist/components/ChartSection.js +1 -1
- package/dist/components/ChatSettingsPanel.js +1 -1
- package/dist/components/ClearColoursDialog.js +1 -1
- package/dist/components/ContactLocations.js +5 -5
- package/dist/components/CornersField.d.ts +0 -1
- package/dist/components/CornersField.js +1 -1
- package/dist/components/DocBody.js +1 -1
- package/dist/components/DuplicateToPageMenu.js +1 -1
- package/dist/components/EditorScreenMount.d.ts +1 -0
- package/dist/components/EditorScreenMount.js +1 -0
- package/dist/components/EditorStoreProvider.d.ts +1 -0
- package/dist/components/EditorStoreProvider.js +1 -0
- package/dist/components/FeaturedCover.js +1 -1
- package/dist/components/FieldGlyph.js +1 -1
- package/dist/components/Footprint.js +1 -1
- package/dist/components/HeadingAudit.js +1 -1
- package/dist/components/HeroImageField.js +1 -1
- package/dist/components/HeroSection.d.ts +2 -6
- package/dist/components/HeroSection.js +4 -4
- package/dist/components/HoverEffectField.js +1 -1
- package/dist/components/ImageBlock.js +1 -1
- package/dist/components/ImageFocusRow.js +1 -1
- package/dist/components/KeepHint.d.ts +5 -0
- package/dist/components/KeepHint.js +1 -0
- package/dist/components/LocationsGroupedField.js +1 -1
- package/dist/components/LongRead.js +1 -1
- package/dist/components/MediaSidePanel.d.ts +1 -6
- package/dist/components/MediaSidePanel.js +1 -1
- package/dist/components/MediaUploadField.js +1 -1
- package/dist/components/MockupSection.js +1 -1
- package/dist/components/MultiSelectField.d.ts +4 -1
- package/dist/components/MultiSelectField.js +1 -1
- package/dist/components/NodeContextMenu.d.ts +2 -96
- package/dist/components/NodeContextMenu.js +1 -1
- package/dist/components/PageEditGuardNotices.d.ts +1 -1
- package/dist/components/PageEditGuardNotices.js +1 -1
- package/dist/components/PagesPanel.js +1 -1
- package/dist/components/PanelToggleIcon.d.ts +1 -3
- package/dist/components/PanelToggleIcon.js +1 -1
- package/dist/components/PartResetDot.js +1 -1
- package/dist/components/PartSettingsPanel.d.ts +5 -0
- package/dist/components/PartSettingsPanel.js +1 -1
- package/dist/components/PhotographyField.js +1 -1
- package/dist/components/PostCard.js +1 -1
- package/dist/components/PreviewDeviceContext.d.ts +2 -4
- package/dist/components/PreviewDeviceContext.js +1 -1
- package/dist/components/PreviewPartsContext.d.ts +1 -3
- package/dist/components/PreviewPartsContext.js +1 -1
- package/dist/components/ProcessSteps.js +1 -1
- package/dist/components/RMark.js +1 -1
- package/dist/components/Reel.js +1 -1
- package/dist/components/SearchSelectField.d.ts +3 -1
- package/dist/components/SearchSelectField.js +1 -1
- package/dist/components/SectionEditor.d.ts +2 -5
- package/dist/components/SectionEditor.js +1 -1
- package/dist/components/SectionEditorShell.d.ts +1 -1
- package/dist/components/SectionEditorShell.js +1 -1
- package/dist/components/SectionHeader.js +1 -1
- package/dist/components/SectionThemePicker.d.ts +3 -1
- package/dist/components/SectionThemePicker.js +1 -1
- package/dist/components/SectionThumbnail.js +1 -1
- package/dist/components/ShadowColourField.js +1 -1
- package/dist/components/SidePanelHead.d.ts +1 -23
- package/dist/components/SidePanelHead.js +1 -1
- package/dist/components/SideSpaceField.d.ts +0 -1
- package/dist/components/SideSpaceField.js +1 -1
- package/dist/components/SiteEditorProvider.d.ts +3 -10
- package/dist/components/SiteEditorProvider.js +1 -1
- package/dist/components/SiteWidthField.d.ts +0 -1
- package/dist/components/SiteWidthField.js +1 -1
- package/dist/components/SlotChildActionsContext.d.ts +2 -13
- package/dist/components/SlotChildActionsContext.js +1 -1
- package/dist/components/SlotChildRows.js +1 -1
- package/dist/components/SocialLinksPanel.js +1 -1
- package/dist/components/SourceStatus.js +1 -1
- package/dist/components/Split.js +1 -1
- package/dist/components/StandaloneSectionEditor.d.ts +1 -0
- package/dist/components/StandaloneSectionEditor.js +1 -1
- package/dist/components/StorefrontDocumentContext.d.ts +2 -67
- package/dist/components/StorefrontDocumentContext.js +1 -1
- package/dist/components/StorefrontEditor.d.ts +1 -0
- package/dist/components/StorefrontEditor.js +1 -1
- package/dist/components/StorefrontEditorChrome.d.ts +1 -1
- package/dist/components/StorefrontEditorChrome.js +1 -1
- package/dist/components/StorefrontLinkField.d.ts +9 -0
- package/dist/components/StorefrontLinkField.js +1 -1
- package/dist/components/StylesPanel.js +1 -1
- package/dist/components/Testimonials.js +1 -1
- package/dist/components/TextStylesField.js +1 -1
- package/dist/components/ThemeCard.js +1 -1
- package/dist/components/ThemeColourField.js +1 -1
- package/dist/components/ThemeField.js +1 -1
- package/dist/components/TickerSettingsPanel.js +1 -1
- package/dist/components/Timeline.js +1 -1
- package/dist/components/TimelineTrack.js +1 -1
- package/dist/components/TitleWithButtons.js +1 -1
- package/dist/components/UiIcon.d.ts +2 -10
- package/dist/components/UiIcon.js +1 -1
- package/dist/components/WebsiteScreenParts.d.ts +2 -0
- package/dist/components/WebsiteScreenParts.js +1 -0
- package/dist/components/WebsiteSettingsPanel.js +1 -1
- package/dist/components/WidthFollowField.js +1 -1
- package/dist/components/goldPhrases.js +1 -1
- package/dist/components/panel-widths.d.ts +2 -12
- package/dist/components/panel-widths.js +1 -1
- package/dist/components/storefront-editor.css +147 -1195
- package/dist/components/useFooterFocus.d.ts +2 -0
- package/dist/components/useFooterFocus.js +1 -0
- package/dist/components/useLocationsTree.d.ts +6 -0
- package/dist/components/useLocationsTree.js +1 -0
- package/dist/components/usePartBridge.d.ts +1 -9
- package/dist/components/usePartBridge.js +1 -1
- package/dist/components/usePinnedChromeSeed.d.ts +2 -0
- package/dist/components/usePinnedChromeSeed.js +1 -0
- package/dist/components/useSocialSettings.js +1 -1
- package/dist/components/useStorefrontBlogPosts.js +1 -1
- package/dist/lib/client-only.d.ts +1 -0
- package/dist/lib/client-only.js +1 -0
- package/dist/lib/content/contact.js +3 -3
- package/dist/lib/content/subscribe.js +1 -1
- package/dist/lib/content/view-tiers.d.ts +2 -6
- package/dist/lib/content/view-tiers.js +1 -1
- package/dist/lib/editor-admin-bridge.d.ts +2 -29
- package/dist/lib/editor-admin-bridge.js +1 -1
- package/dist/lib/editor-backend-error.d.ts +2 -0
- package/dist/lib/editor-backend-error.js +1 -0
- package/dist/lib/editor-blocks.d.ts +2 -2
- package/dist/lib/editor-chrome.d.ts +2 -52
- package/dist/lib/editor-chrome.js +1 -1
- package/dist/lib/editor-document-adapter.d.ts +3 -51
- package/dist/lib/editor-document-adapter.js +1 -1
- package/dist/lib/editor-document-addressing.d.ts +2 -0
- package/dist/lib/editor-document-addressing.js +1 -0
- package/dist/lib/editor-document-contract.d.ts +1 -0
- package/dist/lib/editor-document-contract.js +0 -0
- package/dist/lib/editor-document-hooks.d.ts +1 -15
- package/dist/lib/editor-document-switch.d.ts +2 -0
- package/dist/lib/editor-document-switch.js +1 -0
- package/dist/lib/editor-failure.d.ts +1 -4
- package/dist/lib/editor-failure.js +1 -1
- package/dist/lib/editor-host-inbound.d.ts +1 -1
- package/dist/lib/editor-host-inbound.js +1 -1
- package/dist/lib/editor-host.d.ts +2 -135
- package/dist/lib/editor-host.js +1 -1
- package/dist/lib/editor-key-scope.d.ts +1 -3
- package/dist/lib/editor-key-scope.js +1 -1
- package/dist/lib/editor-load-error.d.ts +1 -4
- package/dist/lib/editor-load-error.js +1 -1
- package/dist/lib/editor-media-panel.d.ts +2 -23
- package/dist/lib/editor-media-panel.js +1 -1
- package/dist/lib/editor-media-picker.d.ts +2 -12
- package/dist/lib/editor-media-picker.js +1 -1
- package/dist/lib/editor-page-lock.d.ts +1 -1
- package/dist/lib/editor-page-lock.js +1 -1
- package/dist/lib/editor-screen.d.ts +2 -0
- package/dist/lib/editor-screen.js +1 -0
- package/dist/lib/editor-section-templates.d.ts +1 -2
- package/dist/lib/editor-section-templates.js +1 -1
- package/dist/lib/editor-session-context.d.ts +1 -7
- package/dist/lib/editor-session-context.js +1 -1
- package/dist/lib/editor-session.d.ts +2 -45
- package/dist/lib/editor-session.js +1 -1
- package/dist/lib/editor-site-slug.js +1 -1
- package/dist/lib/editor-theme.d.ts +1 -1
- package/dist/lib/editor-theme.js +1 -1
- package/dist/lib/hero-arrows.d.ts +1 -1
- package/dist/lib/links/link-filters.d.ts +1 -0
- package/dist/lib/links/link-filters.js +0 -0
- package/dist/lib/links/link-picker-setup.d.ts +29 -0
- package/dist/lib/links/link-picker-setup.js +1 -0
- package/dist/lib/puck/ColourControl.d.ts +4 -1
- package/dist/lib/puck/ColourControl.js +1 -1
- package/dist/lib/puck/MarkupToolbar.js +1 -1
- package/dist/lib/puck/add-palette.d.ts +3 -9
- package/dist/lib/puck/add-palette.js +1 -1
- package/dist/lib/puck/add-target-types.d.ts +1 -0
- package/dist/lib/puck/add-target-types.js +0 -0
- package/dist/lib/puck/add-target.d.ts +2 -9
- package/dist/lib/puck/block-choice.d.ts +2 -0
- package/dist/lib/puck/block-choice.js +1 -0
- package/dist/lib/puck/block-offer.js +1 -1
- package/dist/lib/puck/block-types-in.d.ts +1 -1
- package/dist/lib/puck/block-types-in.js +1 -1
- package/dist/lib/puck/blocks/general/CategoryBar/fields.js +1 -1
- package/dist/lib/puck/blocks/general/Chart/fields.js +1 -1
- package/dist/lib/puck/blocks/general/FAQ/render.js +1 -1
- package/dist/lib/puck/blocks/general/FeaturedCover/render.js +1 -1
- package/dist/lib/puck/blocks/general/Footprint/fields.js +1 -1
- package/dist/lib/puck/blocks/general/IntroBleed/render.js +1 -1
- package/dist/lib/puck/blocks/general/LogoBlock/fields.js +1 -1
- package/dist/lib/puck/blocks/general/LongRead/render.js +1 -1
- package/dist/lib/puck/blocks/general/Masthead/render.js +1 -1
- package/dist/lib/puck/blocks/general/Mockup/fields.js +1 -1
- package/dist/lib/puck/blocks/general/OrderSummary/render.js +1 -1
- package/dist/lib/puck/blocks/general/ParagraphsA/render.js +1 -1
- package/dist/lib/puck/blocks/general/PostCard/render.js +1 -1
- package/dist/lib/puck/blocks/general/ProcessSteps/render.js +1 -1
- package/dist/lib/puck/blocks/general/Series/render.js +1 -1
- package/dist/lib/puck/blocks/general/Split/render.js +1 -1
- package/dist/lib/puck/blocks/general/Testimonials/fields.js +1 -1
- package/dist/lib/puck/blocks/general/Testimonials/render.js +1 -1
- package/dist/lib/puck/blocks/general/TimelineTrack/render.js +1 -1
- package/dist/lib/puck/blocks/general/index.d.ts +2 -2
- package/dist/lib/puck/blocks/placeholders.js +1 -1
- package/dist/lib/puck/content-tree.d.ts +2 -43
- package/dist/lib/puck/content-tree.js +1 -1
- package/dist/lib/puck/controls.d.ts +11 -22
- package/dist/lib/puck/controls.js +1 -1
- package/dist/lib/puck/device-fields.d.ts +2 -24
- package/dist/lib/puck/device-fields.js +1 -1
- package/dist/lib/puck/field-buckets.d.ts +2 -0
- package/dist/lib/puck/field-buckets.js +1 -0
- package/dist/lib/puck/field-groups.d.ts +3 -3
- package/dist/lib/puck/field-groups.js +1 -1
- package/dist/lib/puck/field-markers.d.ts +2 -16
- package/dist/lib/puck/field-markers.js +1 -1
- package/dist/lib/puck/footer-block-row-name.d.ts +4 -0
- package/dist/lib/puck/footer-block-row-name.js +1 -0
- package/dist/lib/puck/footer-blocks.d.ts +2 -10
- package/dist/lib/puck/footer-blocks.js +1 -1
- package/dist/lib/puck/geocode-resolve.js +1 -1
- package/dist/lib/puck/hidable.d.ts +2 -9
- package/dist/lib/puck/hidable.js +1 -1
- package/dist/lib/puck/locations-tree.js +2 -2
- package/dist/lib/puck/neutralization-contracts.js +1 -1
- package/dist/lib/puck/palette-sections.d.ts +2 -0
- package/dist/lib/puck/palette-sections.js +1 -0
- package/dist/lib/puck/panel-fields.d.ts +2 -12
- package/dist/lib/puck/panel-fields.js +1 -1
- package/dist/lib/puck/panel-no-control-mark.d.ts +2 -7
- package/dist/lib/puck/panel-no-control-mark.js +1 -1
- package/dist/lib/puck/part-id.d.ts +1 -0
- package/dist/lib/puck/part-id.js +1 -0
- package/dist/lib/puck/part-rows.js +1 -1
- package/dist/lib/puck/pinned-seed-gate.d.ts +2 -12
- package/dist/lib/puck/pinned-seed-gate.js +1 -1
- package/dist/lib/puck/preview-click.d.ts +1 -2
- package/dist/lib/puck/preview-click.js +1 -1
- package/dist/lib/puck/preview-dom.d.ts +1 -6
- package/dist/lib/puck/preview-dom.js +1 -1
- package/dist/lib/puck/preview-events.d.ts +2 -0
- package/dist/lib/puck/preview-events.js +1 -0
- package/dist/lib/puck/preview-selection-context.d.ts +2 -19
- package/dist/lib/puck/preview-selection-context.js +1 -1
- package/dist/lib/puck/section-catalog.js +1 -1
- package/dist/lib/puck/section-descriptions.js +1 -1
- package/dist/lib/puck/section-doc.d.ts +1 -5
- package/dist/lib/puck/section-doc.js +1 -1
- package/dist/lib/puck/section-groups.d.ts +1 -1
- package/dist/lib/puck/slot-child-name.d.ts +2 -8
- package/dist/lib/puck/slot-child-name.js +1 -1
- package/dist/lib/puck/slot-heal.d.ts +1 -2
- package/dist/lib/puck/slot-heal.js +1 -1
- package/dist/lib/puck/slot-section-spec.d.ts +1 -0
- package/dist/lib/puck/slot-section-spec.js +0 -0
- package/dist/lib/puck/slot-specs.d.ts +2 -13
- package/dist/lib/puck/style-clipboard.d.ts +1 -19
- package/dist/lib/puck/style-clipboard.js +1 -1
- package/dist/lib/puck/text-control-kinds.d.ts +2 -13
- package/dist/lib/puck/text-control-kinds.js +1 -1
- package/dist/lib/puck/text-parts.d.ts +2 -5
- package/dist/lib/puck/text-parts.js +1 -1
- package/dist/lib/puck/tree-reveal.d.ts +1 -11
- package/dist/lib/puck/tree-reveal.js +1 -1
- package/dist/lib/puck/use-section-ops.d.ts +2 -25
- package/dist/lib/puck/use-section-ops.js +1 -1
- package/dist/lib/reel.d.ts +1 -1
- package/dist/lib/section-template-types.d.ts +1 -21
- package/dist/lib/sections/divider-style.js +1 -1
- package/dist/lib/sections/new-section-node.d.ts +2 -0
- package/dist/lib/sections/new-section-node.js +1 -0
- package/dist/lib/sections/product-card-style.js +1 -1
- package/dist/lib/sections/ticker-style.js +1 -1
- package/dist/lib/source-rules/accent-token-name.d.ts +20 -0
- package/dist/lib/source-rules/accent-token-name.js +4 -0
- package/dist/lib/source-rules/button-corners.d.ts +13 -0
- package/dist/lib/source-rules/button-corners.js +2 -0
- package/dist/lib/source-rules/editor-chrome-note.d.ts +16 -0
- package/dist/lib/source-rules/editor-chrome-note.js +13 -0
- package/dist/lib/source-rules/editor-context-menu.d.ts +5 -0
- package/dist/lib/source-rules/editor-context-menu.js +4 -0
- package/dist/lib/source-rules/editor-puck-drag-off.d.ts +8 -0
- package/dist/lib/source-rules/editor-puck-drag-off.js +4 -0
- package/dist/lib/source-rules/efficient-easel-version.d.ts +9 -0
- package/dist/lib/source-rules/efficient-easel-version.js +2 -0
- package/dist/lib/source-rules/every-button-follows-the-button-colour.d.ts +12 -0
- package/dist/lib/source-rules/every-button-follows-the-button-colour.js +7 -0
- package/dist/lib/source-rules/flat-theme-palette.d.ts +10 -0
- package/dist/lib/source-rules/flat-theme-palette.js +8 -0
- package/dist/lib/source-rules/full-width-means-full.d.ts +8 -0
- package/dist/lib/source-rules/full-width-means-full.js +2 -0
- package/dist/lib/source-rules/heading-ceiling-sweep.d.ts +11 -0
- package/dist/lib/source-rules/heading-ceiling-sweep.js +8 -0
- package/dist/lib/source-rules/label-hints.d.ts +7 -0
- package/dist/lib/source-rules/label-hints.js +5 -0
- package/dist/lib/source-rules/label-vocabulary.d.ts +14 -0
- package/dist/lib/source-rules/label-vocabulary.js +5 -0
- package/dist/lib/source-rules/mirrored-rows-agree.d.ts +19 -0
- package/dist/lib/source-rules/mirrored-rows-agree.js +10 -0
- package/dist/lib/source-rules/no-comment-in-jsx.d.ts +9 -0
- package/dist/lib/source-rules/no-comment-in-jsx.js +7 -0
- package/dist/lib/source-rules/no-glyph-rows.d.ts +15 -0
- package/dist/lib/source-rules/no-glyph-rows.js +4 -0
- package/dist/lib/source-rules/one-colour-control.d.ts +7 -0
- package/dist/lib/source-rules/one-colour-control.js +2 -0
- package/dist/lib/source-rules/one-dropdown.d.ts +10 -0
- package/dist/lib/source-rules/one-dropdown.js +4 -0
- package/dist/lib/source-rules/one-editable-list.d.ts +16 -0
- package/dist/lib/source-rules/one-editable-list.js +6 -0
- package/dist/lib/source-rules/one-editor-list.d.ts +7 -0
- package/dist/lib/source-rules/one-editor-list.js +3 -0
- package/dist/lib/source-rules/one-right-click.d.ts +10 -0
- package/dist/lib/source-rules/one-right-click.js +2 -0
- package/dist/lib/source-rules/one-switch.d.ts +9 -0
- package/dist/lib/source-rules/one-switch.js +7 -0
- package/dist/lib/source-rules/one-up-level-link.d.ts +16 -0
- package/dist/lib/source-rules/one-up-level-link.js +18 -0
- package/dist/lib/source-rules/panel-colour-tokens.d.ts +48 -0
- package/dist/lib/source-rules/panel-colour-tokens.js +20 -0
- package/dist/lib/source-rules/panel-no-divider-lines.d.ts +14 -0
- package/dist/lib/source-rules/panel-no-divider-lines.js +10 -0
- package/dist/lib/source-rules/panel-one-arrow.d.ts +21 -0
- package/dist/lib/source-rules/panel-one-arrow.js +1 -0
- package/dist/lib/source-rules/panel-one-hover.d.ts +8 -0
- package/dist/lib/source-rules/panel-one-hover.js +2 -0
- package/dist/lib/source-rules/panel-rows-use-the-shared-row.d.ts +23 -0
- package/dist/lib/source-rules/panel-rows-use-the-shared-row.js +22 -0
- package/dist/lib/source-rules/part-slider-fills-row.d.ts +11 -0
- package/dist/lib/source-rules/part-slider-fills-row.js +29 -0
- package/dist/lib/source-rules/part-style-naming.d.ts +10 -0
- package/dist/lib/source-rules/part-style-naming.js +2 -0
- package/dist/lib/source-rules/puck-document-surfaces.d.ts +16 -0
- package/dist/lib/source-rules/puck-document-surfaces.js +8 -0
- package/dist/lib/source-rules/reduced-motion.d.ts +26 -0
- package/dist/lib/source-rules/reduced-motion.js +9 -0
- package/dist/lib/source-rules/route-content-width.d.ts +22 -0
- package/dist/lib/source-rules/route-content-width.js +5 -0
- package/dist/lib/source-rules/rule.d.ts +21 -0
- package/dist/lib/source-rules/rule.js +1 -0
- package/dist/lib/source-rules/section-theme-preview.d.ts +9 -0
- package/dist/lib/source-rules/section-theme-preview.js +8 -0
- package/dist/lib/source-rules/site-gutter.d.ts +6 -0
- package/dist/lib/source-rules/site-gutter.js +4 -0
- package/dist/lib/source-rules/site-square-by-default.d.ts +17 -0
- package/dist/lib/source-rules/site-square-by-default.js +3 -0
- package/dist/lib/source-rules/site-width.d.ts +11 -0
- package/dist/lib/source-rules/site-width.js +7 -0
- package/dist/lib/source-rules/size-token-paints.d.ts +8 -0
- package/dist/lib/source-rules/size-token-paints.js +11 -0
- package/dist/lib/source-rules/social-icons-import.d.ts +6 -0
- package/dist/lib/source-rules/social-icons-import.js +6 -0
- package/dist/lib/source-rules/source-status-is-shared.d.ts +7 -0
- package/dist/lib/source-rules/source-status-is-shared.js +1 -0
- package/dist/lib/source-rules/style-face-matches-size.d.ts +10 -0
- package/dist/lib/source-rules/style-face-matches-size.js +4 -0
- package/dist/lib/source-rules/support/accent-rename-bytes.d.ts +5 -0
- package/dist/lib/source-rules/support/accent-rename-bytes.js +1 -0
- package/dist/lib/source-rules/support/css-box-model.d.ts +5 -0
- package/dist/lib/source-rules/support/css-box-model.js +1 -0
- package/dist/lib/source-rules/support/css-length.d.ts +2 -0
- package/dist/lib/source-rules/support/css-length.js +1 -0
- package/dist/lib/source-rules/support/css-rules.d.ts +12 -0
- package/dist/lib/source-rules/support/css-rules.js +1 -0
- package/dist/lib/source-rules/support/css-source.d.ts +2 -0
- package/dist/lib/source-rules/support/css-source.js +3 -0
- package/dist/lib/source-rules/support/label-extraction.d.ts +14 -0
- package/dist/lib/source-rules/support/label-extraction.js +5 -0
- package/dist/lib/source-rules/support/panel-select-cascade.d.ts +72 -0
- package/dist/lib/source-rules/support/panel-select-cascade.js +2 -0
- package/dist/lib/source-rules/support/part-slider-call-sites.d.ts +9 -0
- package/dist/lib/source-rules/support/part-slider-call-sites.js +17 -0
- package/dist/lib/source-rules/support/registry-source.d.ts +14 -0
- package/dist/lib/source-rules/support/registry-source.js +3 -0
- package/dist/lib/source-rules/support/ts-source.d.ts +2 -0
- package/dist/lib/source-rules/support/ts-source.js +3 -0
- package/dist/lib/source-rules/theme-mode-controls-gone.d.ts +10 -0
- package/dist/lib/source-rules/theme-mode-controls-gone.js +5 -0
- package/dist/lib/source-rules/upload-intake-guard.d.ts +11 -0
- package/dist/lib/source-rules/upload-intake-guard.js +6 -0
- package/dist/lib/source-rules/word-styles.d.ts +8 -0
- package/dist/lib/source-rules/word-styles.js +4 -0
- package/dist/lib/theme-row-persist.js +1 -1
- package/dist/lib/theme-save-message.js +1 -1
- package/dist/lib/web-backend.d.ts +4 -59
- package/dist/lib/web-backend.js +1 -1
- package/dist/lib/website-document-addressing.d.ts +2 -0
- package/dist/lib/website-document-addressing.js +1 -0
- package/dist/lib/website-host-inbound.d.ts +1 -0
- package/dist/lib/website-host-inbound.js +1 -0
- package/dist/lib/website-session.d.ts +5 -0
- package/dist/lib/website-session.js +1 -0
- package/package.json +18 -8
|
@@ -1,67 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { type EditorCapabilities, type EditorDocumentAdapter } from "../lib/editor-document-adapter.js";
|
|
4
|
-
import { type SaveStatus } from "../lib/puck/pinned-seed-gate.js";
|
|
5
|
-
import { type BridgedCapabilities } from "../lib/editor-admin-bridge.js";
|
|
6
|
-
import { type SendToHost } from "../lib/editor-host.js";
|
|
7
|
-
import { type EditAccess, type SaveConflict } from "efficient-easel/edit-lock";
|
|
8
|
-
import { type AutosaveSnapshot } from "efficient-easel/autosave";
|
|
9
|
-
export type EditorTarget = {
|
|
10
|
-
kind: "page";
|
|
11
|
-
slug: string;
|
|
12
|
-
siteId?: string;
|
|
13
|
-
originSlug?: string;
|
|
14
|
-
} | {
|
|
15
|
-
kind: "template";
|
|
16
|
-
id: string;
|
|
17
|
-
pageSlug?: string;
|
|
18
|
-
};
|
|
19
|
-
export type { SaveStatus };
|
|
20
|
-
export type StorefrontDocumentValue = {
|
|
21
|
-
target: EditorTarget;
|
|
22
|
-
adapter: EditorDocumentAdapter;
|
|
23
|
-
capabilities: EditorCapabilities;
|
|
24
|
-
templateId: string | null;
|
|
25
|
-
currentSlug: string;
|
|
26
|
-
currentKind: string | null;
|
|
27
|
-
siteId: string | null;
|
|
28
|
-
ready: boolean;
|
|
29
|
-
token: string | null;
|
|
30
|
-
tokenRef: RefObject<string | null>;
|
|
31
|
-
notifyParent: SendToHost;
|
|
32
|
-
bridgeCapabilities: BridgedCapabilities;
|
|
33
|
-
runAuthed: (op: (token: string) => Promise<unknown>) => Promise<boolean>;
|
|
34
|
-
docId: string | null;
|
|
35
|
-
data: Data | null;
|
|
36
|
-
getLiveData: () => Data | null;
|
|
37
|
-
footerOriginSlug: string | null;
|
|
38
|
-
error: string | null;
|
|
39
|
-
redirecting: boolean;
|
|
40
|
-
saveStatus: SaveStatus;
|
|
41
|
-
saveState: AutosaveSnapshot;
|
|
42
|
-
autoSaveEnabled: boolean;
|
|
43
|
-
autoSaveStoppedByConflict: boolean;
|
|
44
|
-
hasUnsavedEdits: boolean;
|
|
45
|
-
toggleAutoSave: () => void;
|
|
46
|
-
retrySave: () => void;
|
|
47
|
-
onChange: (next: Data) => void;
|
|
48
|
-
flushSave: () => Promise<boolean>;
|
|
49
|
-
onPublish: (next: Data) => Promise<void>;
|
|
50
|
-
access: EditAccess;
|
|
51
|
-
readOnly: boolean;
|
|
52
|
-
takeOverEditing: () => void;
|
|
53
|
-
viewReadOnly: () => void;
|
|
54
|
-
saveConflict: SaveConflict | null;
|
|
55
|
-
reloadFromServer: () => void;
|
|
56
|
-
navigate: (target: EditorTarget) => void;
|
|
57
|
-
pendingNav: EditorTarget | null;
|
|
58
|
-
cancelPendingNav: () => void;
|
|
59
|
-
discardAndNavigate: () => void;
|
|
60
|
-
saveAndNavigate: () => Promise<void>;
|
|
61
|
-
};
|
|
62
|
-
export declare const StorefrontDocumentContext: import("react").Context<StorefrontDocumentValue | null>;
|
|
63
|
-
export declare function useStorefrontDocument(): StorefrontDocumentValue;
|
|
64
|
-
export declare function StorefrontDocumentProvider({ target, children, }: {
|
|
65
|
-
target: EditorTarget;
|
|
66
|
-
children: ReactNode;
|
|
67
|
-
}): import("react").JSX.Element;
|
|
1
|
+
export { ScreenDocumentContext as StorefrontDocumentContext, ScreenDocumentProvider as StorefrontDocumentProvider, useScreenDocument as useStorefrontDocument } from "efficient-easel/screen/components/ScreenDocumentContext";
|
|
2
|
+
export type { ScreenTarget as EditorTarget, SaveStatus, ScreenDocumentValue as StorefrontDocumentValue } from "efficient-easel/screen/components/ScreenDocumentContext";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{
|
|
1
|
+
"use client";import{ScreenDocumentContext as t,ScreenDocumentProvider as n,useScreenDocument as r}from"efficient-easel/screen/components/ScreenDocumentContext";export{t as StorefrontDocumentContext,n as StorefrontDocumentProvider,r as useStorefrontDocument};
|
|
@@ -11,6 +11,7 @@ import "efficient-easel/menu.css";
|
|
|
11
11
|
import "efficient-easel/chrome.css";
|
|
12
12
|
import "efficient-easel/tree.css";
|
|
13
13
|
import "efficient-easel/drag.css";
|
|
14
|
+
import "efficient-easel/screen.css";
|
|
14
15
|
import "./storefront-editor.css";
|
|
15
16
|
import { type EditorTarget } from "./StorefrontDocumentContext.js";
|
|
16
17
|
export default function StorefrontEditor({ target }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as r,jsxs as k}from"react/jsx-runtime";import{useCallback as n,useEffect as f,useMemo as T,useRef as p,useState as o}from"react";import fe from"next/dynamic";import"efficient-easel/easel.css";import"efficient-easel/shell.css";import"efficient-easel/rail.css";import"efficient-easel/panel.css";import"efficient-easel/fields.css";import"efficient-easel/pick.css";import"efficient-easel/copy.css";import"efficient-easel/gold.css";import"efficient-easel/text-styles.css";import"efficient-easel/menu.css";import"efficient-easel/chrome.css";import"efficient-easel/tree.css";import"efficient-easel/drag.css";import"./storefront-editor.css";import{documentPermissions as _t}from"efficient-easel/edit-lock";import{buildConfig as vt}from"../lib/puck/build-config.js";import{ChromeWrap as Ct}from"../lib/editor-chrome.js";import{backendOf as z,sessionRegistry as yt}from"../lib/editor-session.js";import{useEditorSession as Tt}from"../lib/editor-session-context.js";import{withSiteBlockGapFields as Et}from"../lib/puck/site-gap-fields.js";import{withTemplateMediaPlaceholders as bt}from"../lib/puck/templateFields.js";import{setEditorPage as ge}from"../lib/puck/editor-page-context.js";import{resolveSiteName as xt}from"../lib/content/site-name.js";import{normalizeSiteGutter as Pt,normalizeSiteWidth as Nt}from"../lib/content/page-width.js";import{normalizeSiteBlockGap as Ft}from"../lib/content/container-gap.js";import{StorefrontDocumentProvider as Ht,useStorefrontDocument as It}from"./StorefrontDocumentContext.js";import{PreviewHeaderProvider as Rt}from"./PreviewHeaderContext.js";import{PreviewFooterProvider as kt}from"./PreviewFooterContext.js";import{PreviewChatProvider as zt,DEFAULT_CHAT_PREVIEW as Gt}from"./PreviewChatContext.js";import{PreviewSocialProvider as Mt}from"./PreviewSocialContext.js";import{useSocialSettings as Dt}from"./useSocialSettings.js";import{PreviewSurfaceProvider as At}from"./PreviewSurfaceContext.js";import{PreviewFocusProvider as Wt}from"./PreviewFocusContext.js";import{SITE_FOOTER_SLUG as Ot}from"../lib/content/footer.js";import{markFooterReturn as Lt}from"../lib/puck/footer-return.js";import{PreviewTickerProvider as Bt}from"./PreviewTickerContext.js";import{PreviewPartsProvider as Kt}from"./PreviewPartsContext.js";import{PreviewLocationPartProvider as Yt}from"./PreviewLocationPartContext.js";import{PreviewPartStyleProvider as Ut}from"./PreviewPartStyleContext.js";import{SiteMapsProvider as jt,readSiteMapsKey as Vt,writeSiteMapsKey as Se,readSiteMapId as Xt,writeSiteMapId as Zt}from"../lib/maps-config.js";import{CORNER_STYLE_TO_PX as qt,DEFAULT_HEADING_COMPRESSION as Jt,DEFAULT_HEADING_TYPOGRAPHY as Qt,DEFAULT_SWITCH_SHOWN as G,DEFAULT_SIZES as $t,DEFAULT_THEME_MODE as E,normalizeCornerRadius as er,normalizeCornerStyle as tr,normalizeCardShadow as rr,normalizeCardGap as or,normalizeHoverEffect as nr,normalizeShadowColor as ar,IDENTITY_CARD_GAP as we,IDENTITY_CARD_SHADOW as ir,IDENTITY_HOVER_EFFECT as dr,headingTypographyFromRow as cr,normalizeHeadingCompression as sr,normalizeSizes as lr,THEME_MODE_KEY as _e,THEME_STORAGE_KEY as ur,THEME_SWITCH_HIDE as ve,THEME_SWITCH_KEY as M}from"../lib/theme.js";import{DEFAULT_FONTS as mr,normalizeFonts as hr}from"../lib/fonts.js";const pr=fe(()=>import("./SiteEditorProvider.js"),{ssr:!1}),fr=fe(()=>import("./StorefrontEditorChrome.js"),{ssr:!1}),gr=()=>{if(typeof window>"u")return E;try{const a=window.localStorage.getItem(_e);return a==="light"||a==="dark"||a==="auto"?a:E}catch{return E}},Ce=a=>{if(!(typeof window>"u"))try{window.localStorage.setItem(_e,a)}catch{}},Sr=()=>{if(typeof window>"u")return G;try{return window.localStorage.getItem(M)!==ve}catch{return G}},wr=()=>{if(!(typeof window>"u"))try{window.localStorage.removeItem(ur)}catch{}},ye=a=>{if(!(typeof window>"u"))try{a?window.localStorage.removeItem(M):window.localStorage.setItem(M,ve)}catch{}};function _r({saving:a,onCancel:s,onDiscard:w,onSave:m}){return r("div",{className:"fixed inset-0 z-[200] flex items-center justify-center bg-black/30 p-4",role:"dialog","aria-modal":"true","aria-labelledby":"sf-leave-title",children:k("div",{className:"w-full max-w-sm rounded-lg bg-white p-5 shadow-xl",children:[r("h2",{id:"sf-leave-title",className:"text-[15px] font-semibold text-zinc-900",children:"Unsaved changes"}),r("p",{className:"mt-2 text-[13px] leading-relaxed text-zinc-600",children:"Your most recent edits haven\u2019t finished saving yet. Save them before switching, or leave and discard them."}),k("div",{className:"mt-4 flex justify-end gap-2",children:[r("button",{type:"button",onClick:s,className:"rounded-md border border-zinc-300 px-3 py-[7px] text-[13px] font-medium text-zinc-700 transition-colors hover:bg-zinc-100",children:"Cancel"}),r("button",{type:"button",onClick:w,className:"rounded-md border border-red-200 px-3 py-[7px] text-[13px] font-medium text-red-600 transition-colors hover:bg-red-50",children:"Discard & leave"}),r("button",{type:"button",onClick:m,disabled:a,className:"rounded-md bg-blue-600 px-3 py-[7px] text-[13px] font-medium text-white transition-colors hover:bg-blue-700 disabled:opacity-60",children:a?"Saving\u2026":"Save & leave"})]})]})})}function vr(){const{adapter:a,capabilities:s,templateId:w,ready:m,token:h,siteId:c,currentSlug:g,currentKind:D,data:_,getLiveData:A,footerOriginSlug:S,error:W,redirecting:Te,saveStatus:Ee,readOnly:O,navigate:v,onChange:be,pendingNav:xe,cancelPendingNav:Pe,discardAndNavigate:Ne,saveAndNavigate:Fe}=It();f(()=>(ge(g,D),()=>ge(null,null)),[g,D]);const b=s.placeholderFrames,[He,L]=o(null),[Ie,B]=o("");f(()=>{const e=a.templateName;if(!m||!w||!e){B("");return}let i=!1;return e().then(l=>!i&&B(l??"")).catch(()=>{}),()=>{i=!0}},[m,h,w,a]);const[Re,x]=o(E),[ke,P]=o(G),[ze,K]=o({selected:0,themes:[]}),[Ge,Y]=o(mr),[Me,U]=o($t),[De,j]=o(null),[Ae,V]=o(Jt),[We,X]=o(null),[Oe,Z]=o(null),[Le,q]=o(we),[Be,J]=o(null),[Ke,Q]=o(null),[Ye,$]=o(null),[N,ee]=o(null),u=Tt(),te=T(()=>vt(yt(u),u.blocks),[u]),Ue=T(()=>Et(bt(te,b),N),[te,b,N]),je=T(()=>_t(!O),[O]),[Ve,re]=o(Qt),[Xe,oe]=o(null),[Ze,ne]=o(null),ae=p(null),d=p(!1);f(()=>{x(gr()),P(Sr())},[]);const qe=n(e=>{d.current=!0,wr(),Ce(e),x(e)},[]),Je=n(e=>{d.current=!0,ye(e),P(e)},[]),Qe=n(e=>{d.current=!0,K(e)},[]),$e=n(e=>{d.current=!0,Y(e)},[]),et=n(e=>{d.current=!0,U(e)},[]),tt=n(e=>{d.current=!0,j(e)},[]),rt=n(e=>{d.current=!0,V(e)},[]),ot=n(e=>{d.current=!0,X(e)},[]),nt=n(e=>{d.current=!0,Z(e)},[]),at=n(e=>{d.current=!0,q(e)},[]),it=n(e=>{d.current=!0,J(e)},[]),dt=n(e=>{d.current=!0,re(e)},[]),ct=n(e=>{d.current=!0,Q(e)},[]),st=n(e=>{d.current=!0,$(e)},[]),lt=n(e=>{d.current=!0,ee(e)},[]),ut=n(e=>{d.current=!0,oe(e)},[]),mt=n(e=>{d.current=!0,ne(e)},[]);f(()=>{const e=z(u).theme;if(!h||!s.hasSiteTheme||!e)return;const i=c??"";ae.current!==i&&(ae.current=i,d.current=!1);let l=!1;return e.get(c?{siteId:c}:void 0).then(t=>{l||d.current||(Ce(t.default_mode),ye(t.show_theme_switch),x(t.default_mode),P(t.show_theme_switch),K({selected:t.selected_preset,themes:t.theme_presets}),Y(hr({heading:t.heading_font,body:t.body_font,accent:t.accent_font,label:t.label_font})),U(lr({headingLarge:t.heading_size_large_px,headingMedium:t.heading_size_medium_px,headingSmall:t.heading_size_small_px,body:t.body_size_px,label:t.label_size_px})),j(t.corner_radius_px===void 0?qt[tr(t.corner_style)]:er(t.corner_radius_px)),V(sr(t.heading_compression)),X(t.card_shadow==null?ir:rr(t.card_shadow)),q(t.card_gap==null?we:or(t.card_gap)),J(t.hover_effect==null?dr:nr(t.hover_effect)),Z(ar(t.shadow_color)),Q(Nt(t.site_width)),$(Pt(t.site_gutter)),ee(Ft(t.block_gap)),re(cr(t)),oe(t.hero_background_follows_width===!0),ne(t.photography_grayscale===!0))}).catch(()=>{}),()=>{l=!0}},[h,c,s.hasSiteTheme,u]);const ht=Dt({token:h,siteId:c,enabled:s.hasSiteSettings}),[pt,ie]=o(Gt),de=p(null),F=p(!1),H=p(null),C=p({}),ft=n(e=>{F.current=!0,ie(i=>({...i,...e})),!(!s.hasSiteSettings||!h)&&(C.current={...C.current,...e},H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{const i=C.current;C.current={},z(u).chat?.update(i,c?{siteId:c}:void 0).catch(()=>{})},500))},[s.hasSiteSettings,h,c,u]);f(()=>{if(!h||!s.hasSiteSettings)return;const e=c??"";de.current!==e&&(de.current=e,F.current=!1);let i=!1;const l=z(u).chat;if(l)return l.get(c?{siteId:c}:void 0).then(t=>{i||F.current||ie({enabled:t.enabled,title:t.title,subtitle:t.subtitle,greeting:t.greeting})}).catch(()=>{}),()=>{i=!0}},[h,c,s.hasSiteSettings,u]);const[y,I]=o(""),ce=p(null),R=p(!1);f(()=>I(Vt()),[]);const se=n(e=>{const i=e.trim();if(i===y)return;R.current=!0,Se(i),I(i);const l=a.updateSite;!s.canEditSiteRecord||!m||!l||l({mapsApiKey:i}).catch(()=>{})},[y,s.canEditSiteRecord,m,a]),[le,ue]=o("");f(()=>ue(Xt()),[]),f(()=>{const e=a.site;if(!m||!s.hasSiteRecord||!e){L(null);return}const i=c??"";ce.current!==i&&(ce.current=i,R.current=!1);let l=!1;return e().then(t=>{if(l||(L(xt(t.name)),R.current))return;const he=t.mapsApiKey??"";Se(he),I(he);const pe=t.mapsMapId??"";Zt(pe),ue(pe)}).catch(()=>{}),()=>{l=!0}},[m,h,s.hasSiteRecord,c,a]);const gt=T(()=>({apiKey:y,setApiKey:se,mapId:le}),[y,se,le]),me=p(null),St=n(()=>{me.current=A()??_??null,Lt(g),v({kind:"page",slug:Ot,siteId:c??void 0,originSlug:g})},[A,_,g,v,c]),wt=n(()=>{S&&v({kind:"page",slug:S,siteId:c??void 0})},[S,v,c]);return Te?r("div",{className:"sf-msg",children:"Loading\u2026"}):W?r("div",{className:"sf-msg sf-msg--error",children:W}):m?_?r(Rt,{websiteName:He,templateChrome:b,templateName:Ie||null,themeMode:Re,onThemeModeChange:qe,themeSwitchShown:ke,onThemeSwitchShownChange:Je,theme:ze,onThemeChange:Qe,fonts:Ge,onFontsChange:$e,cornerRadiusPx:De,onCornerRadiusPxChange:tt,cardShadow:We,onCardShadowChange:ot,shadowColor:Oe,onShadowColorChange:nt,cardGap:Le,onCardGapChange:at,hoverEffect:Be,onHoverEffectChange:it,headingCompression:Ae,onHeadingCompressionChange:rt,headingTypography:Ve,onHeadingTypographyChange:dt,sizes:Me,onSizesChange:et,siteWidth:Ke,onSiteWidthChange:ct,siteGutter:Ye,onSiteGutterChange:st,blockGap:N,onBlockGapChange:lt,heroBackgroundFollowsWidth:Xe,onHeroBackgroundFollowsWidthChange:ut,photographyGrayscale:Ze,onPhotographyGrayscaleChange:mt,themeFromDocument:!s.hasSiteTheme,children:r(Wt,{originData:S?me.current:null,originSlug:S,exitFocus:wt,children:r(kt,{editFooter:St,children:r(Ct,{wrap:u.chrome?.wrap,surface:"page",children:r(Bt,{children:r(Kt,{children:r(Yt,{children:r(Ut,{children:k(jt,{value:gt,children:[r(zt,{chat:pt,onChatChange:ft,children:r(Mt,{value:ht,children:r(At,{children:r(pr,{config:Ue,data:_,onChange:be,permissions:je,children:r(fr,{})})})})}),xe&&r(_r,{saving:Ee==="saving",onCancel:Pe,onDiscard:Ne,onSave:()=>{Fe()}})]})})})})})})})})}):r("div",{className:"sf-msg",children:"Loading\u2026"}):r("div",{className:"sf-msg",children:"Waiting for editor authorization\u2026"})}function Cr({target:a}){return r(Ht,{target:a,children:r(vr,{})})}export{Cr as default};
|
|
1
|
+
"use client";import{jsx as d,jsxs as ct}from"react/jsx-runtime";import{useCallback as n,useEffect as p,useMemo as F,useRef as m,useState as o}from"react";import"efficient-easel/easel.css";import"efficient-easel/shell.css";import"efficient-easel/rail.css";import"efficient-easel/panel.css";import"efficient-easel/fields.css";import"efficient-easel/pick.css";import"efficient-easel/copy.css";import"efficient-easel/gold.css";import"efficient-easel/text-styles.css";import"efficient-easel/menu.css";import"efficient-easel/chrome.css";import"efficient-easel/tree.css";import"efficient-easel/drag.css";import"efficient-easel/screen.css";import"./storefront-editor.css";import{buildConfig as dt}from"../lib/puck/build-config.js";import{ChromeWrap as st}from"../lib/editor-chrome.js";import{sessionRegistry as ut}from"../lib/editor-session.js";import{backendOf as G,blocksOf as lt}from"../lib/website-session.js";import{useEditorSession as ht}from"../lib/editor-session-context.js";import{withSiteBlockGapFields as mt}from"../lib/puck/site-gap-fields.js";import{withTemplateMediaPlaceholders as pt}from"../lib/puck/templateFields.js";import{setEditorPage as he}from"../lib/puck/editor-page-context.js";import{resolveSiteName as ft}from"../lib/content/site-name.js";import{normalizeSiteGutter as St,normalizeSiteWidth as gt}from"../lib/content/page-width.js";import{normalizeSiteBlockGap as wt}from"../lib/content/container-gap.js";import _t,{DocumentScreen as Ct}from"./EditorScreenMount.js";import{useStorefrontDocument as Et}from"./StorefrontDocumentContext.js";import{PreviewHeaderProvider as Tt}from"./PreviewHeaderContext.js";import{PreviewFooterProvider as yt}from"./PreviewFooterContext.js";import{PreviewChatProvider as Pt,DEFAULT_CHAT_PREVIEW as vt}from"./PreviewChatContext.js";import{PreviewSocialProvider as It}from"./PreviewSocialContext.js";import{useSocialSettings as Ht}from"./useSocialSettings.js";import{PreviewSurfaceProvider as Rt}from"./PreviewSurfaceContext.js";import{PreviewFocusProvider as Mt}from"./PreviewFocusContext.js";import{SITE_FOOTER_SLUG as Ft}from"../lib/content/footer.js";import{markFooterReturn as Gt}from"../lib/puck/footer-return.js";import{WEBSITE_ADDRESSING as bt}from"../lib/website-document-addressing.js";import{PreviewTickerProvider as kt}from"./PreviewTickerContext.js";import{PreviewPartsProvider as Dt}from"./PreviewPartsContext.js";import{PreviewLocationPartProvider as zt}from"./PreviewLocationPartContext.js";import{PreviewPartStyleProvider as At}from"./PreviewPartStyleContext.js";import{SiteMapsProvider as Wt,readSiteMapsKey as xt,writeSiteMapsKey as me,readSiteMapId as Nt,writeSiteMapId as Ot}from"../lib/maps-config.js";import{CORNER_STYLE_TO_PX as Bt,DEFAULT_HEADING_COMPRESSION as Kt,DEFAULT_HEADING_TYPOGRAPHY as Lt,DEFAULT_SWITCH_SHOWN as b,DEFAULT_SIZES as Yt,DEFAULT_THEME_MODE as E,normalizeCornerRadius as Ut,normalizeCornerStyle as jt,normalizeCardShadow as Vt,normalizeCardGap as Xt,normalizeHoverEffect as Zt,normalizeShadowColor as qt,IDENTITY_CARD_GAP as pe,IDENTITY_CARD_SHADOW as Jt,IDENTITY_HOVER_EFFECT as Qt,headingTypographyFromRow as $t,normalizeHeadingCompression as er,normalizeSizes as tr,THEME_MODE_KEY as fe,THEME_STORAGE_KEY as rr,THEME_SWITCH_HIDE as Se,THEME_SWITCH_KEY as k}from"../lib/theme.js";import{DEFAULT_FONTS as or,normalizeFonts as nr}from"../lib/fonts.js";import{WEBSITE_SCREEN as ar}from"./WebsiteScreenParts.js";import{routeWebsiteHostMessage as ir}from"../lib/website-host-inbound.js";const cr=()=>{if(typeof window>"u")return E;try{const c=window.localStorage.getItem(fe);return c==="light"||c==="dark"||c==="auto"?c:E}catch{return E}},ge=c=>{if(!(typeof window>"u"))try{window.localStorage.setItem(fe,c)}catch{}},dr=()=>{if(typeof window>"u")return b;try{return window.localStorage.getItem(k)!==Se}catch{return b}},sr=()=>{if(!(typeof window>"u"))try{window.localStorage.removeItem(rr)}catch{}},we=c=>{if(!(typeof window>"u"))try{c?window.localStorage.removeItem(k):window.localStorage.setItem(k,Se)}catch{}};function ur(){const{adapter:c,capabilities:s,templateId:D,ready:f,token:h,siteId:i,currentSlug:S,currentKind:z,data:A,getLiveData:W,footerOriginSlug:g,navigate:w}=Et();p(()=>(he(S,z),()=>he(null,null)),[S,z]);const T=s.placeholderFrames,[_e,x]=o(null),[Ce,N]=o("");p(()=>{const e=c.templateName;if(!f||!D||!e){N("");return}let r=!1;return e().then(u=>!r&&N(u??"")).catch(()=>{}),()=>{r=!0}},[f,h,D,c]);const[Ee,y]=o(E),[Te,P]=o(b),[ye,O]=o({selected:0,themes:[]}),[Pe,B]=o(or),[ve,K]=o(Yt),[Ie,L]=o(null),[He,Y]=o(Kt),[Re,U]=o(null),[Me,j]=o(null),[Fe,V]=o(pe),[Ge,X]=o(null),[be,Z]=o(null),[ke,q]=o(null),[v,J]=o(null),l=ht(),Q=F(()=>dt(ut(l),lt(l)),[l]),De=F(()=>mt(pt(Q,T),v),[Q,T,v]),[ze,$]=o(Lt),[Ae,ee]=o(null),[We,te]=o(null),re=m(null),a=m(!1);p(()=>{y(cr()),P(dr())},[]);const xe=n(e=>{a.current=!0,sr(),ge(e),y(e)},[]),Ne=n(e=>{a.current=!0,we(e),P(e)},[]),Oe=n(e=>{a.current=!0,O(e)},[]),Be=n(e=>{a.current=!0,B(e)},[]),Ke=n(e=>{a.current=!0,K(e)},[]),Le=n(e=>{a.current=!0,L(e)},[]),Ye=n(e=>{a.current=!0,Y(e)},[]),Ue=n(e=>{a.current=!0,U(e)},[]),je=n(e=>{a.current=!0,j(e)},[]),Ve=n(e=>{a.current=!0,V(e)},[]),Xe=n(e=>{a.current=!0,X(e)},[]),Ze=n(e=>{a.current=!0,$(e)},[]),qe=n(e=>{a.current=!0,Z(e)},[]),Je=n(e=>{a.current=!0,q(e)},[]),Qe=n(e=>{a.current=!0,J(e)},[]),$e=n(e=>{a.current=!0,ee(e)},[]),et=n(e=>{a.current=!0,te(e)},[]);p(()=>{const e=G(l).theme;if(!h||!s.hasSiteTheme||!e)return;const r=i??"";re.current!==r&&(re.current=r,a.current=!1);let u=!1;return e.get(i?{siteId:i}:void 0).then(t=>{u||a.current||(ge(t.default_mode),we(t.show_theme_switch),y(t.default_mode),P(t.show_theme_switch),O({selected:t.selected_preset,themes:t.theme_presets}),B(nr({heading:t.heading_font,body:t.body_font,accent:t.accent_font,label:t.label_font})),K(tr({headingLarge:t.heading_size_large_px,headingMedium:t.heading_size_medium_px,headingSmall:t.heading_size_small_px,body:t.body_size_px,label:t.label_size_px})),L(t.corner_radius_px===void 0?Bt[jt(t.corner_style)]:Ut(t.corner_radius_px)),Y(er(t.heading_compression)),U(t.card_shadow==null?Jt:Vt(t.card_shadow)),V(t.card_gap==null?pe:Xt(t.card_gap)),X(t.hover_effect==null?Qt:Zt(t.hover_effect)),j(qt(t.shadow_color)),Z(gt(t.site_width)),q(St(t.site_gutter)),J(wt(t.block_gap)),$($t(t)),ee(t.hero_background_follows_width===!0),te(t.photography_grayscale===!0))}).catch(()=>{}),()=>{u=!0}},[h,i,s.hasSiteTheme,l]);const tt=Ht({token:h,siteId:i,enabled:s.hasSiteSettings}),[rt,oe]=o(vt),ne=m(null),I=m(!1),H=m(null),_=m({}),ot=n(e=>{I.current=!0,oe(r=>({...r,...e})),!(!s.hasSiteSettings||!h)&&(_.current={..._.current,...e},H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{const r=_.current;_.current={},G(l).chat?.update(r,i?{siteId:i}:void 0).catch(()=>{})},500))},[s.hasSiteSettings,h,i,l]);p(()=>{if(!h||!s.hasSiteSettings)return;const e=i??"";ne.current!==e&&(ne.current=e,I.current=!1);let r=!1;const u=G(l).chat;if(u)return u.get(i?{siteId:i}:void 0).then(t=>{r||I.current||oe({enabled:t.enabled,title:t.title,subtitle:t.subtitle,greeting:t.greeting})}).catch(()=>{}),()=>{r=!0}},[h,i,s.hasSiteSettings,l]);const[C,R]=o(""),ae=m(null),M=m(!1);p(()=>R(xt()),[]);const ie=n(e=>{const r=e.trim();if(r===C)return;M.current=!0,me(r),R(r);const u=c.updateSite;!s.canEditSiteRecord||!f||!u||u({mapsApiKey:r}).catch(()=>{})},[C,s.canEditSiteRecord,f,c]),[ce,de]=o("");p(()=>de(Nt()),[]),p(()=>{const e=c.site;if(!f||!s.hasSiteRecord||!e){x(null);return}const r=i??"";ae.current!==r&&(ae.current=r,M.current=!1);let u=!1;return e().then(t=>{if(u||(x(ft(t.name)),M.current))return;const ue=t.mapsApiKey??"";me(ue),R(ue);const le=t.mapsMapId??"";Ot(le),de(le)}).catch(()=>{}),()=>{u=!0}},[f,h,s.hasSiteRecord,i,c]);const nt=F(()=>({apiKey:C,setApiKey:ie,mapId:ce}),[C,ie,ce]),se=m(null),at=n(()=>{se.current=W()??A??null,Gt(S),w({kind:"page",slug:Ft,siteId:i??void 0,originSlug:S})},[W,A,S,w,i]),it=n(()=>{g&&w({kind:"page",slug:g,siteId:i??void 0})},[g,w,i]);return d(Ct,{config:De,parts:ar,wrap:(e,r)=>d(Tt,{websiteName:_e,templateChrome:T,templateName:Ce||null,themeMode:Ee,onThemeModeChange:xe,themeSwitchShown:Te,onThemeSwitchShownChange:Ne,theme:ye,onThemeChange:Oe,fonts:Pe,onFontsChange:Be,cornerRadiusPx:Ie,onCornerRadiusPxChange:Le,cardShadow:Re,onCardShadowChange:Ue,shadowColor:Me,onShadowColorChange:je,cardGap:Fe,onCardGapChange:Ve,hoverEffect:Ge,onHoverEffectChange:Xe,headingCompression:He,onHeadingCompressionChange:Ye,headingTypography:ze,onHeadingTypographyChange:Ze,sizes:ve,onSizesChange:Ke,siteWidth:be,onSiteWidthChange:qe,siteGutter:ke,onSiteGutterChange:Je,blockGap:v,onBlockGapChange:Qe,heroBackgroundFollowsWidth:Ae,onHeroBackgroundFollowsWidthChange:$e,photographyGrayscale:We,onPhotographyGrayscaleChange:et,themeFromDocument:!s.hasSiteTheme,children:d(Mt,{originData:g?se.current:null,originSlug:g,exitFocus:it,children:d(yt,{editFooter:at,children:d(st,{wrap:l.chrome?.wrap,surface:"page",children:d(kt,{children:d(Dt,{children:d(zt,{children:d(At,{children:ct(Wt,{value:nt,children:[d(Pt,{chat:rt,onChatChange:ot,children:d(It,{value:tt,children:d(Rt,{children:e})})}),r]})})})})})})})})})})}function lr({target:c}){return d(_t,{target:c,addressing:bt,onHostMessage:ir,children:d(ur,{})})}export{lr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default
|
|
1
|
+
export { default } from "efficient-easel/screen/components/ScreenChrome";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as r,Fragment as E,jsxs as p}from"react/jsx-runtime";import{SECTION_HEAD_TYPE as rt,SPLITTABLE_SECTIONS as He,canSplitHead as Ts}from"../lib/sections/section-head-placement.js";import{eyebrowLookFor as vn}from"../lib/sections/section-eyebrow-look.js";import{presetFor as Is}from"../lib/sections/section-presets.js";import{blockIsOffered as Zo}from"../lib/puck/block-offer.js";import{Fragment as Ve,useCallback as z,useEffect as S,useLayoutEffect as Es,useMemo as wn,useRef as I,useState as L}from"react";import{PagesIcon as Ls,LayersIcon as Jo,StylesIcon as As,MediaIcon as Qo}from"efficient-easel/rail";import{LayersTree as Os,Subtree as ue,TreeGroupLabel as Bt,TreeRow as R,TreeRowAction as Dt,TreeSeam as bn}from"efficient-easel/tree";import{DeviceSwitch as Ns,EaselIconButton as er,EaselTopBar as Rs,InspectorIconButton as Bs,PanelResizeHandle as tr,SaveState as nr,SaveStateToggle as Ds,TopBarCluster as or,TopBarDivider as _s,TopBarRail as $s}from"efficient-easel/chrome";import{ExternalIcon as Ms,ImageIcon as zs,RedoIcon as Fs,TextLinesIcon as Hs,TrashIcon as xn,UndoIcon as Vs}from"efficient-easel/icons";import Ws,{PanelShowStrip as rr}from"./SidePanelHead.js";import{saveIndicator as Gs}from"efficient-easel/autosave";import{useStorefrontDocument as Us}from"./StorefrontDocumentContext.js";import Ks from"./PageEditGuardNotices.js";import{PREVIEW_DEVICES as Ys}from"./preview-devices.js";import{PreviewDeviceContext as js}from"./PreviewDeviceContext.js";import{LocationsTreeContext as qs}from"./LocationsTreeContext.js";import Xs from"./AddSidePanel.js";import{boxFooterFromFooter as Zs}from"../lib/puck/box-footer.js";import{isSectionGroupType as _t,sectionGroupZone as sr,siteFooterDocChrome as Js,SITE_FOOTER_TYPE as $t,SITE_HEADER_TYPE as Qs}from"../lib/puck/section-groups.js";import se from"./SectionIcon.js";import ir from"./UiIcon.js";import ei from"./PagesPanel.js";import{usePreviewSurface as ti}from"./PreviewSurfaceContext.js";import ni from"./StylesPanel.js";import{SITE_STYLES_TABS as oi,SITE_STYLES_TEXT_TAB as ri}from"./WebsiteSettingsPanel.js";import{requestMediaPick as si}from"../lib/editor-media-picker.js";import{useHostProducts as ii}from"../lib/use-host-products.js";import{cancelPanelPick as Mt,useMediaPanel as li,usePanelPick as ci}from"../lib/editor-media-panel.js";import lr from"./MediaSidePanel.js";import{useEditorHost as ai}from"../lib/editor-host.js";import di from"./HeadingAudit.js";import{DEFAULT_PANEL_W as Ne,MAX_PANEL_W as cr,MIN_PANEL_W as ar,PANEL_WIDTHS_KEY as dr,clampPanelWidth as pr,panelWidthVars as pi}from"./panel-widths.js";import ui,{CHAT_MODE as fi,SOCIAL_MODE as hi,HEADER_MODE as Pn,PUCK_MODE as Y,WEBSITE_MODE as gi}from"./SectionEditor.js";import{SlotChildActionsProvider as mi}from"./SlotChildActionsContext.js";import{usePreviewHeader as yi}from"./PreviewHeaderContext.js";import{usePreviewChat as Si}from"./PreviewChatContext.js";import{usePreviewSocial as ki}from"./PreviewSocialContext.js";import{TICKER_PART_LABEL as vi,usePreviewTicker as wi}from"./PreviewTickerContext.js";import{usePreviewFooter as bi}from"./PreviewFooterContext.js";import{decodeLocationPartId as xi,encodeLocationPartId as Pi,usePreviewLocationPart as Ci}from"./PreviewLocationPartContext.js";import{usePartBridge as Ti}from"./usePartBridge.js";import{ROOT_ZONE as u,newNodeId as st,TREE_MAX_DEPTH as Ii,childSlotsOf as ur,missingPinnedTypes as Ei,nestsInTree as Li,pinnedDuplicateIds as fr,slotFieldsOf as Ai}from"../lib/puck/content-tree.js";import{BOX_TYPE as zt}from"../lib/puck/container-blocks.js";import{isLockedBlock as Cn}from"../lib/puck/locked-blocks.js";import{sectionIdOfBoxZone as Oi,setBookingPreview as Ni}from"../lib/puck/booking-preview.js";import{canSeedPinnedChrome as Ri}from"../lib/puck/pinned-seed-gate.js";import{SLOT_SECTION_SPECS as Bi}from"../lib/puck/slot-specs.js";import{HERO_GROUP_TYPE as Ft,heroGroupNestDepth as Ht}from"../lib/hero-group-placement.js";import{canAddTo as ee}from"../lib/puck/add-target.js";import{EDITOR_NODE_CLIPBOARD as Di,useNodeContextMenu as _i}from"./NodeContextMenu.js";import{FOOTER_TYPE as A,HEADER_TYPE as xe,buildDefaultFooterBlocks as hr,buildDefaultHeaderNode as gr}from"../lib/puck/footer-blocks.js";import{SITE_FOOTER_SLUG as mr}from"../lib/content/footer.js";import{scrollPreviewToSection as it,pinPreviewToSection as Tn,pinPreviewToBottom as $i,gotoPreviewSlide as yr,scrollPreviewToTop as In}from"../lib/puck/preview-dom.js";import{readFooterReturn as Mi,clearFooterReturn as zi}from"../lib/puck/footer-return.js";import{dedupeSlotChildren as Fi}from"../lib/puck/slot-heal.js";import{rootRowName as Hi,slotChildRenameProp as Vi,slotChildRowName as Wi}from"../lib/puck/slot-child-name.js";import{cloneNodeWithFreshIds as En}from"../lib/puck/section-doc.js";import{labelAtLevel as Gi}from"../lib/puck/section-catalog.js";import Ui from"./AddChildRow.js";import{useSectionOps as Ki}from"../lib/puck/use-section-ops.js";import{markedTreeNodeId as Yi,revealSelectedTreeRow as ji,sameSelector as qi}from"../lib/puck/tree-reveal.js";import{useLocationsFocus as Xi,setLocationsFocus as ie}from"../lib/puck/locations-focus.js";import{bucketsOf as Sr,moveGroup as kr,moveCity as vr,addCity as Zi,addGroup as Ji,deleteGroup as Qi,deleteCity as el,absCityIndex as wr,groupLabelOf as tl,cardKey as br}from"../lib/puck/locations-tree.js";import{usePreviewHref as nl}from"./usePreviewHref.js";import{useEditorKeyTarget as ol,useEditorUndoKeys as rl}from"../lib/editor-key-scope.js";import{leftViewForSelection as sl,readLeftView as il,resolveLeftView as ll,writeLeftView as cl}from"../lib/puck/left-view.js";import al from"./TemplateGlyph.js";import{resolveSaveAsTemplateAction as dl,SAVE_AS_TEMPLATE_EVENT as pl}from"../lib/save-as-template-action.js";import{heldStyle as ul,styleShortcut as fl}from"efficient-easel/style-clipboard";import{BLOCK_SELECTOR as hl,useCanvasEvent as gl,useCanvasFrame as ml}from"efficient-easel/canvas";import{createNode as yl,DataError as Sl,newId as kl,parseZoneKey as Pe,ROOT_ID as vl,ROOT_SLOT as wl,zoneKey as le}from"efficient-easel/data";import{CanvasDragLayer as bl,createDragSession as xl,gapToMoveIndex as Pl,useTreeDrag as Ln}from"efficient-easel/drag";import{toItemSelector as Cl,useNodeOps as Tl}from"efficient-easel/node-ops";import{useEasel as Il,useEaselApi as El}from"efficient-easel/easel";import{copyNodeStyle as xr,nodeStyleRows as Ll,planNodePaste as Al,siteStyleScope as Ol}from"../lib/puck/style-clipboard.js";import{SiteCanvas as Nl}from"../lib/puck/overrides.js";function Rl({saveState:k,notSaving:ce,onToggle:j,onRetry:lt}){if(ce)return r(nr,{tone:k.pending?"off-unsaved":"off",label:"Not saving \u2014 see the notice above",role:"status"});const{tone:te,label:q}=Gs(k);return p(E,{children:[r(Ds,{pressed:k.paused,onToggle:j,title:k.paused?"Auto-save is off \u2014 click to turn it back on (saves your held edits)":"Auto-save is on \u2014 click to pause it",children:r(nr,{tone:te,label:q})}),k.failed&&!k.paused&&r("button",{type:"button",className:"es-btn-ghost",onClick:lt,children:"Retry now"})]})}function Bl(){return p("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round",children:[r("path",{d:"M12 3a9 9 0 0 0 0 18 2.3 2.3 0 0 0 2.3-2.3c0-.55-.22-1.05-.57-1.42-.34-.37-.56-.87-.56-1.43A2.35 2.35 0 0 1 15.6 13.5H18a3 3 0 0 0 3-3c0-4.14-4-7.5-9-7.5z"}),r("circle",{cx:"7.7",cy:"11.3",r:"1.05",fill:"currentColor",stroke:"none"}),r("circle",{cx:"12",cy:"8",r:"1.05",fill:"currentColor",stroke:"none"}),r("circle",{cx:"16",cy:"11",r:"1.05",fill:"currentColor",stroke:"none"})]})}function Dl({size:k=13}){return p("svg",{width:k,height:k,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r("circle",{cx:"12",cy:"12",r:"9"}),r("path",{d:"M3 12h18M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"})]})}function _l({size:k=13}){return p("svg",{width:k,height:k,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r("path",{d:"M12 21s6-5 6-10a6 6 0 10-12 0c0 5 6 10 6 10z"}),r("circle",{cx:"12",cy:"11",r:"2"})]})}function $l({size:k=13}){return p("svg",{width:k,height:k,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r("path",{d:"M9 4 3 6.5v13L9 17l6 3 6-2.5v-13L15 7z"}),r("path",{d:"M9 4v13M15 7v13"})]})}function Ml({expand:k}){return r("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.9,strokeLinecap:"round",strokeLinejoin:"round",children:k?p(E,{children:[r("path",{d:"M8 9l4-4 4 4"}),r("path",{d:"M8 15l4 4 4-4"})]}):p(E,{children:[r("path",{d:"M8 4l4 4 4-4"}),r("path",{d:"M8 20l4-4 4 4"}),r("path",{d:"M5 12h14"})]})})}const Vt=k=>({parentId:`locations-${k}`,slot:"groups"}),An=(k,ce)=>({parentId:`locations-${k}`,slot:`cities:${ce}`});function zl(k,ce){if(k.length!==ce.length)return!1;for(let j=0;j<k.length;j++)if(k[j].top!==ce[j].top||k[j].index!==ce[j].index)return!1;return!0}function Fl(){const k=ai(),{adapter:ce,capabilities:j,templateId:lt,currentSlug:te,siteId:q,tokenRef:Pr,onPublish:Cr,saveStatus:On,saveState:Tr,saveConflict:Ir,retrySave:Er,hasUnsavedEdits:Lr,bridgeCapabilities:Ar,notifyParent:Nn,token:Rn,toggleAutoSave:Or,navigate:Bn,docId:Wt,data:Dn,footerOriginSlug:_n,readOnly:D}=Us(),{canPublish:Nr,hasSiteSettings:Gt,hasSiteTheme:ct,mediaEditing:$n,hasEditGuard:Rr,hasPinnedChrome:We,explainsSiteSettings:Br,hasPreviewLink:Dr}=j,at=dl({hasTrustedConsole:!!Rn,canCreatePlatformTemplate:Ar.canCreatePlatformTemplate,capabilities:j,siteId:q,hasUnsavedEdits:Lr}),_r=z(()=>{!q||!te||Nn(pl,{siteId:q,slug:te})},[Nn,q,te]),{appState:F,dispatch:b,history:fe,selectedItem:x,getSelectorForId:dt,config:H}=Il(e=>e),V=te===mr,Ut=Ki({readOnly:D}),Kt=I(null),h=wn(()=>({...Ut,select:e=>{Kt.current=e,Ut.select(e)}}),[Ut]),Mn=F.ui,P=Mn.leftSideBarVisible,Ce=Mn.rightSideBarVisible,[Te,$r]=L("desktop"),Ge=li(),zn=$n&&Ge!==null,X=ci(),[Re,pt]=L(il),[Mr,Fn]=L(oi[0].id),Ie=ll(Re,ct,zn);S(()=>{cl(Re)},[Re]);const[Hn,zr]=L(0),{surface:Fr,setSurface:Vn}=ti(),Yt=I(null),Ue=I(null),ae=ml(Ue,{readySelector:hl}),W=ol(Ue);rl(Ue);const[_,Ke]=L(!1),he=I(!1),ge=I(!1),[w,de]=L(null),ut=w&&w.zone===u?w.index:null,Wn=e=>de(e===null?null:{zone:u,index:e}),[Gn,Un]=L([]),[Z,T]=L(Y),jt=Z.kind==="puck",qt=Z.kind==="ticker"?Z.heroId:null,Be=Yi(Z,x?.props.id),me=I(null),Xt=I(null),[Kn,Yn]=L(null);S(()=>{Kn&&(ji(),Yn(null))},[Kn]);const jn=I(dt);jn.current=dt;const ft=z((e,{scroll:t})=>{pt(s=>sl(e,s)),t&&Yn(e);const n=[];let o=e;for(let s=0;s<4;s++){const i=jn.current(o)?.zone;if(!i||!i.includes(":"))break;const c=i.split(":")[0];n.push(c),o=c}n.length!==0&&mt(s=>{if(n.every(c=>!s.has(c)))return s;const i=new Set(s);return n.forEach(c=>i.delete(c)),i})},[]);S(()=>{T(x?.type===xe?Pn:Y),Ni(x?.type==="BookingBox"&&x.props.region==="confirm"?Oi(dt(String(x.props.id))?.zone):null);const e=x?.type==="ContactLocations"?String(x.props.id):null;e&&e!==Xt.current&&ie({level:"groups"}),Xt.current=e;const t=x?.props.id;V&&typeof t=="string"&&(me.current?.(),me.current=Tn(t));const n=Kt.current;if(Kt.current=null,!t)return;const o=dt(t);ft(String(t),{scroll:!qi(n,o??null,u)})},[x?.props.id,V,ft]);const{setSelected:qn,setSelectHandler:Xn}=yi(),{chat:Hr,setChat:Vr,setSelected:Zn,setSelectHandler:Jn}=Si(),{setSelectedHeroId:Qn,setSelectHandler:eo}=wi(),{editFooter:to}=bi(),{selectedLocationPartId:Wr,setSelectedLocationPartId:no,setSelectHandler:oo}=Ci(),ro=Z.kind==="header";S(()=>{qn(ro)},[ro,qn]),S(()=>{Xn(()=>{T(Pn),b({type:"setUi",ui:{rightSideBarVisible:!0}})})},[Xn,b]);const Zt=z(()=>{T(e=>e.kind==="chat"?e:fi),b({type:"setUi",ui:{rightSideBarVisible:!0}})},[b]),so=Z.kind==="chat";S(()=>{Zn(so)},[so,Zn]),S(()=>{Jn(Zt)},[Jn,Zt]);const{setOpenHandler:io}=ki(),lo=z(()=>{T(e=>e.kind==="social"?e:hi),b({type:"setUi",ui:{rightSideBarVisible:!0}})},[b]);S(()=>{io(lo)},[io,lo]);const ht=z(e=>{e&&(T(t=>t.kind==="ticker"&&t.heroId===e?t:{kind:"ticker",heroId:e}),b({type:"setUi",ui:{rightSideBarVisible:!0}}),it(e))},[b]);S(()=>{Qn(qt)},[qt,Qn]),S(()=>{eo(ht)},[eo,ht]);const Gr=z(e=>{b({type:"setUi",ui:{rightSideBarVisible:!0}}),it(e),ft(e,{scroll:!0})},[b,ft]),{selectNode:Ur,openPartId:Hl}=Ti({mode:Z,setMode:T,onOpenPart:Gr}),[co,ao]=L(null),po="sf-editor-collapsed-sections",[gt,mt]=L(()=>{if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(po);return new Set(e?JSON.parse(e):[])}catch{return new Set}});S(()=>{try{window.localStorage.setItem(po,JSON.stringify([...gt]))}catch{}},[gt]);const[De,Kr]=L(()=>{if(typeof window>"u")return{...Ne};try{const e=window.localStorage.getItem(dr);if(!e)return{...Ne};const t=JSON.parse(e);return{left:pr(Number(t.left)||Ne.left),right:pr(Number(t.right)||Ne.right)}}catch{return{...Ne}}});S(()=>{const e=setTimeout(()=>{try{window.localStorage.setItem(dr,JSON.stringify(De))}catch{}},300);return()=>clearTimeout(e)},[De]);const yt=z((e,t)=>Kr(n=>{const o=typeof t=="function"?t(n[e]):t;return n[e]===o?n:{...n,[e]:o}}),[]),Yr=z(e=>yt("left",e),[yt]),jr=z(e=>yt("right",e),[yt]),Ee=e=>gt.has(e),ye=e=>mt(t=>{const n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),uo=I(!1),Jt=I(null);S(()=>{if(uo.current&&!_){const e=Jt.current;((e&&e.isConnected&&!e.closest('[aria-hidden="true"]')?e:null)??Ue.current?.querySelector('button[aria-label="Add"]'))?.focus(),Jt.current=null}uo.current=_},[_]),S(()=>{if(!_||!W)return;const e=t=>{t.key==="Escape"&&Tt()};return W.addEventListener("keydown",e),()=>W.removeEventListener("keydown",e)},[_,W]),S(()=>{P||!_||(Ke(!1),de(null),he.current=!1)},[P]),S(()=>{if(!X){ge.current&&b({type:"setUi",ui:{leftSideBarVisible:!1}}),ge.current=!1;return}_&&(Ke(!1),de(null),ge.current=he.current,he.current=!1),P||(ge.current=!0,b({type:"setUi",ui:{leftSideBarVisible:!0}}))},[X]),S(()=>{P||!X||(ge.current=!1,Mt())},[P]),S(()=>{if(!X||!W)return;const e=t=>{t.key==="Escape"&&Mt()};return W.addEventListener("keydown",e),()=>W.removeEventListener("keydown",e)},[X,W]);const[St,fo]=L(null),[qr,Xr]=L(0),Ye=I(null),Le=(e,t="success")=>{fo({msg:e,tone:t}),Xr(n=>n+1),Ye.current&&clearTimeout(Ye.current),Ye.current=setTimeout(()=>fo(null),t==="error"?3200:1900)};S(()=>()=>{Ye.current&&clearTimeout(Ye.current)},[]);const je=I(null),[_e,ho]=L(0),[Qt,go]=L(0),G=Xi();S(()=>{const e=je.current;if(!e)return;const t=()=>{ho(e.clientWidth),go(e.clientHeight)};t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]),Es(()=>{je.current&&(ho(je.current.clientWidth),go(je.current.clientHeight))},[De,P,Ce]);const mo={desktop:2e3,tablet:800,mobile:390},en=Te==="desktop"?_e>0?_e:mo.desktop:mo[Te],qe=_e>0?Math.min(_e/en,2):1,yo=en*qe,Zr=_e>0&&yo>_e+1,Jr={width:yo,height:Qt||"100%",flex:"none",position:"relative"},Qr={width:en,height:Qt?Qt/qe:"100%",maxHeight:"none",transform:qe!==1?`scale(${qe})`:void 0,transformOrigin:"top left"},es=nl({pageSlug:te,siteId:q,token:Rn}),ts=ce.previewHref?.(te)??es,Se=()=>b({type:"setUi",ui:{leftSideBarVisible:!P}}),So=()=>b({type:"setUi",ui:{rightSideBarVisible:!Ce}}),kt=e=>{if(!(_&&(Ke(!1),de(null),he.current=!1,P&&Re===e))&&!(X&&(ge.current=!1,Mt(),P&&Re===e))){if(P&&Re===e){Se();return}pt(e),P||b({type:"setUi",ui:{leftSideBarVisible:!0}})}},ns=()=>{si(k,{accept:"image/*",title:"Media library"})},ko=()=>{T(Y),h.select(null),In()},vo=()=>{T(Pn),Ce||b({type:"setUi",ui:{rightSideBarVisible:!0}})},wo=()=>{if(ct){pt("styles"),P||b({type:"setUi",ui:{leftSideBarVisible:!0}}),In();return}T(gi),Ce||b({type:"setUi",ui:{rightSideBarVisible:!0}}),In()},g=F.data.content??[],ke=()=>{const e=g.findIndex(n=>n.type===xe),t=g.findIndex(n=>n.type===A);return{floor:e>=0?e+1:0,cap:t>=0?t:g.length}},bo=H,tn=Tl({data:F.data,config:bo,readOnly:!!D,clipboard:Di,afterRemove:"none",stepBounds:(e,t)=>{if(e.parentId!==vl||e.slot!==wl)return{min:0,max:t-1};const{floor:n,cap:o}=ke();return{min:n,max:o-1}},commit:(e,{select:t})=>{if(t!==void 0){T(Y);const n=t?.kind==="node"?Cl(e,bo,t):null;h.select(n&&n.zone===u?{index:n.index}:n)}h.commitDocument(e)}}),os=(e,t)=>{const n=C(e)[t]?.props?.id;n!=null&&tn.remove(String(n))},J=e=>H.components[e]?.label??e,Ae=z(e=>H.components[e]?.defaultProps??{},[H]),$=e=>Gi(e,"section",J(e)),Xe=e=>Hi({type:e.type,props:e.props??{}},$(e.type)),{nodeAddresses:vt,zoneItems:xo}=wn(()=>{const e=new Map,t=new Map,n=(o,s,i)=>{t.set(s,o),o.forEach((c,a)=>{const l=String(c.props?.id??"");if(l&&e.set(l,{zone:s,index:a}),i>=Ii)return;const f=new Map;for(const{child:m,zone:d}of ur(H,c))f.set(d,[...f.get(d)??[],m]);for(const[m,d]of f)n(d,m,i+1)})};return n(g,u,0),{nodeAddresses:e,zoneItems:t}},[g,H]),C=z(e=>xo.get(e)??[],[xo]),Po=ii(),rs=wn(()=>{const e=new Map;for(const t of Po??[])e.set(t.slug,t.name);return e},[Po]),wt=e=>Wi(e,J,t=>rs.get(t)),Co=(e,t)=>t===u?null:Vi(H.components[e.type]?.fields),ss=(e,t,n)=>{const o=C(e)[t];if(!o)return;const s=Co(o,e);s&&h.replaceComponent(e,t,{...o,props:{...o.props,[s]:n.trim()}})},is=(e,t,n,o)=>{if(!(co?.zone===e&&co.index===t))return;const i=(c,a)=>{ao(null),a&&ss(e,t,c)};return r("input",{className:"es-tree-rename",defaultValue:o,autoFocus:!0,"aria-label":"Rename",onClick:c=>c.stopPropagation(),onBlur:c=>i(c.currentTarget.value,!0),onKeyDown:c=>{c.key==="Enter"?(c.preventDefault(),i(c.currentTarget.value,!0)):c.key==="Escape"&&(c.preventDefault(),i("",!1))}},n)},ls=()=>mt(new Set(C(u).map(e=>String(e.props.id)))),bt=Ol(q),xt=H,nn=(e,t)=>t===u?$(e):J(e),To=(e,t,n)=>{const o=Al(xt,bt,n,nn(n.type,e));o&&(o.changed&&h.replaceComponent(e,t,{...n,props:{...o.props,id:n.props.id}}),Le(o.message))},Io=_i({nodesIn:C,nodeAt:(e,t)=>C(e)[t]??null,labelOf:(e,t)=>t===u?$(e):J(e),renamePropOf:Co,beginRename:(e,t)=>ao({zone:e,index:t}),history:{hasPast:fe.hasPast,hasFuture:fe.hasFuture,back:()=>fe.back(),forward:()=>fe.forward()},openAddSection:()=>{h.select(null),Je(null)},openPageSettings:()=>{h.select(null),T(Y)},collapseAll:ls,onPasteRefused:()=>Le("Your browser won\u2019t let us read the clipboard \u2014 press \u2318V","error"),document:F.data,nodeOps:tn,isPinned:(e,t)=>t===u&&(e.type===xe||e.type===A),sectionBand:ke,openAddInside:(e,t)=>{e===u?ve(t):h.select({zone:e,index:t}),Je(null)},locate:e=>vt.get(e)??null,rowNameOf:(e,t)=>t===u?Xe(e):wt(e),selectAt:(e,t,n,o)=>{e===u?ve(t):Qe(e,t,n,o??"")},style:{held:()=>ul(bt),canCopy:e=>Ll(xt,e).some(t=>t.counted!==!1),copy:(e,t)=>xr(xt,bt,e,nn(e.type,t)),paste:(e,t,n)=>To(e,t,n)}},ae),Eo=I({copy:(e,t)=>{},paste:(e,t,n)=>{},at:()=>null,readOnly:!1});S(()=>{Eo.current={copy:(e,t)=>xr(xt,bt,e,nn(e.type,t)),paste:To,at:()=>{const e=F.ui.itemSelector;if(!e)return null;const t=e.zone??u,n=C(t)[e.index];return n?{zone:t,index:e.index,node:n}:null},readOnly:!!D}});const on=z(e=>{const t=fl(e);if(!t)return;const n=Eo.current,o=n.at();o&&(e.preventDefault(),t==="copy"?n.copy(o.node,o.zone):n.readOnly||n.paste(o.zone,o.index,o.node))},[]);S(()=>{if(!W)return;const e=t=>on(t);return W.addEventListener("keydown",e),()=>W.removeEventListener("keydown",e)},[on,W]),gl(ae,"keydown",on);const cs=g.map(e=>e.props.id).join("|");S(()=>{const e=ae?.document??null,t=ae?.window??null;let n=0;const o=[],s=()=>{if(!e){Un(d=>d.length?[]:d);return}const a=g.findIndex(d=>d.type===A),l=a>=0?a:g.length,f=d=>{const y=g[d]?.props?.id;if(y==null)return null;const v=e.querySelector(`[data-puck-component="${CSS.escape(String(y))}"]`);return v?v.getBoundingClientRect():null},m=[];for(let d=1;d<=l;d++){const y=f(d),v=f(d-1);!y&&!v||m.push({top:Math.round(y?y.top:v.bottom),index:d})}Un(d=>zl(d,m)?d:m)},i=()=>{cancelAnimationFrame(n),n=requestAnimationFrame(s)};if(!e||!t){s();return}t.addEventListener("scroll",i,{passive:!0});const c=new ResizeObserver(i);return c.observe(e.documentElement),s(),o.push(setTimeout(s,150),setTimeout(s,450)),()=>{cancelAnimationFrame(n),o.forEach(clearTimeout),t.removeEventListener("scroll",i),c.disconnect()}},[ae,cs,Te,qe,P,Ce,x?.props.id]);const as=()=>{const e=ae?.document;if(!e)return null;const t=4,n=g.findIndex(i=>i.type===A),o=n>=0?n:g.length;let s=null;for(let i=0;i<o;i++){const c=g[i]?.props?.id;if(c==null)continue;const a=e.querySelector(`[data-puck-component="${CSS.escape(String(c))}"]`);if(!a)continue;const l=a.getBoundingClientRect().top;l<=t&&(s===null||l>s.offset)&&(s={id:String(c),offset:l})}if(!s){const i=x?.props?.id??g[0]?.props?.id;i!=null&&(s={id:String(i),offset:0})}return s},ds=()=>{Yt.current=as(),zr(e=>e+1)},rn=ae?.document??null,Ze=ae?.window??null;S(()=>{const e=Yt.current;if(!e||!rn||!Ze)return;const t=[],n=()=>{const o=rn.querySelector(`[data-puck-component="${CSS.escape(e.id)}"]`);if(!o)return!1;const s=o.getBoundingClientRect().top-e.offset;return Math.abs(s)>1&&Ze.scrollTo({left:Ze.scrollX,top:Ze.scrollY+s,behavior:"instant"}),!0};return Yt.current=null,n()&&t.push(setTimeout(n,150),setTimeout(n,450)),()=>t.forEach(clearTimeout)},[rn,Ze]);const sn=e=>{if(!V){it(e);return}me.current?.(),me.current=Tn(e)};S(()=>{if(!V||!_n)return;const e=g.find(t=>t.type===A)?.props?.id;if(e)return me.current?.(),me.current=Tn(String(e)),()=>{me.current?.(),me.current=null}},[V,_n,Hn]),S(()=>{if(!(V||!Mi()))return $i(()=>zi())},[]);const ve=e=>{T(Y),h.select({index:e}),g[e]?.type==="ContactLocations"&&ie({level:"groups"});const t=g[e]?.props?.id;t&&sn(t)},Lo=e=>{const{floor:t,cap:n}=ke(),o=i=>Math.min(Math.max(t,i),n);if(typeof e=="number")return o(e);const s=x&&Z.kind!=="header"?g.findIndex(i=>i.props.id===x.props.id):-1;return o(s>=0?s+1:n)},Ao=(e,t)=>{const{floor:n,cap:o}=ke(),s=Math.min(Math.max(t,n),o),i=e<s?s-1:s;return i===e?{moved:!1,dest:e}:(h.reorderComponent(u,e,i),h.select({index:i}),{moved:!0,dest:i})},ps=(e,t)=>{const n=$(g[e]?.type??""),o=Ao(e,t<0?e-1:e+2);if(!o.moved){Le(`\u201C${n}\u201D is already ${t<0?"first":"last"}`);return}const{floor:s,cap:i}=ke();Le(`Moved \u201C${n}\u201D to position ${o.dest-s+1} of ${i-s}`)},Pt=(e,t,n)=>{T(Y),h.select({index:e}),it(t),Le(`Added \u201C${n}\u201D section`)},ln=(e,t)=>{const n=Lo(t),o=Is(e);if(o){const c=o(Ae,st),a=h.insertNode(u,n,c);return Pt(n,a,$(e)),n}if(Ts(e)&&Zo(zt)&&Zo(rt)){const c={type:zt,props:{...Ae(zt),id:st(zt),direction:"column",name:`${$(e)} section`,content:[{type:rt,props:{...Ae(rt),id:st(rt),...He[e]?.headStyle?{headStyle:He[e].headStyle}:{},...He[e]?.headRowGap?{rowGap:He[e].headRowGap}:{},...He[e]?.headDescriptionSize?{descriptionSize:He[e].headDescriptionSize}:{},...vn(e)!==vn(rt)?{eyebrowLook:vn(e)}:{}}},{type:e,props:{...Ae(e),id:st(e),headPlacement:"own-box"}}]}},a=h.insertNode(u,n,c);return Pt(n,a,$(e)),n}const i=Bi[e]?.fixed===!0?h.insertNode(u,n,{type:e,props:{...Ae(e),id:st(e),layout:"boxes"}}):h.insertSection(e,n);return Pt(n,i,$(e)),n},cn=(e,t,n)=>{const o=Lo(n),s=h.insertNode(u,o,t);return Pt(o,s,e),o},Je=e=>Ct(u,e),Ct=(e,t)=>{Jt.current=document.activeElement??null,X&&(he.current=ge.current,ge.current=!1,Mt()),de(t===null?null:{zone:e,index:t}),Ke(!0),P||(he.current=!0,b({type:"setUi",ui:{leftSideBarVisible:!0}}))},Tt=()=>{Ke(!1),de(null),he.current&&b({type:"setUi",ui:{leftSideBarVisible:!1}}),he.current=!1},us=e=>{if(ut===null){ln(e);return}const t=ln(e,ut);Wn(t+1)},fs=(e,t)=>{if(ut===null){cn(e,t);return}const n=cn(e,t,ut);Wn(n+1)},Oo=(e,t,n)=>{if(e.kind==="section")h.insertComponent(t,e.type,n);else if(e.kind==="template")h.insertNode(t,n,En(e.template.node));else return;T(Y),h.select({index:n,zone:t})},hs=e=>{const t=ne(e.zone);if(t)return`Adding to ${J(t.type)}`;if(e.zone===u){const o=g[e.index];return o&&o.type!==A?`Adding before ${$(o.type)}`:"Adding at the end of the page"}const n=ze(e.zone);return n?`Adding to ${n.parentName}`:"Adding here"},gs=e=>{if(w&&e.kind!=="block"&&ne(w.zone)){Oo(e,w.zone,w.index),de({zone:w.zone,index:w.index+1});return}if(e.kind==="section")return us(e.type);if(e.kind==="template")return fs(e.template.name,En(e.template.node));if(w&&w.zone!==u){const t=ze(w.zone);if(!t)return;t.target.spec?$e(t.parentId,t.target.slot,e.type,w.index,t.parent.type):un(w.zone,e.type,w.index),de({zone:w.zone,index:w.index+1});return}Xo?.onPick(e.type)},O=e=>t=>{t.target.closest(".es-tree-select")||e()},No=()=>to?to():Bn({kind:"page",slug:mr,siteId:q??void 0}),It=(e,t,n)=>r(Dt,{kind:"delete",label:`Delete ${n}`,onClick:()=>os(e,t),children:r(xn,{size:15})}),Et=(e,t,n,o)=>{const s=!!n.props._hidden;return r(Dt,{kind:"eye",label:s?`Show ${o}`:`Hide ${o}`,onClick:()=>ms(e,t,n),children:s?r(ir,{name:"eye-off",size:14}):r(ir,{name:"eye",size:14})})},Ro=e=>{const t=$(g[e]?.type??""),n=t?`Add section before ${t}`:"Add section here";return Ot(u,e,()=>Je(e),n)},ms=(e,t,n)=>{h.replaceComponent(e,t,{...n,props:{...n.props,_hidden:!n.props._hidden}})},an=e=>Ai(H,e),we=e=>ur(H,e),dn=(e,t,n)=>{const o=Li(H,e.type,t)&&(n||we(e).length>0);return{collapsible:o,folded:o&&Ee(String(e.props.id))}},pn=(e,t,n)=>we(e).flatMap(({child:o})=>dn(o,t,n(o.type)).collapsible?[String(o.props.id),...pn(o,t+1,n)]:[]),Lt=e=>we(e).length>0||!!ee(e.type),At=e=>!!ee(e),Qe=(e,t,n,o)=>{if(T(Y),ee(o)?.spec?.slider){const s=e.split(":")[0];yr(s,t),h.select({index:t,zone:e}),it(s)}else h.select({index:t,zone:e}),sn(n)},$e=(e,t,n,o,s)=>{const i=`${e}:${t}`;h.insertComponent(i,n,o),ee(s)?.spec?.slider?requestAnimationFrame(()=>{yr(e,o),h.select({index:o,zone:i})}):h.select({index:o,zone:i})},un=(e,t,n)=>{h.insertComponent(e,t,n),T(Y),h.select({index:n,zone:e})},Bo=I(new Set);S(()=>{g.forEach(e=>{const t=ee(e.type)?.spec;if(!t)return;const n=e.props.id;if(Bo.current.has(n)||(Bo.current.add(n),(Array.isArray(e.props[t.slot])?e.props[t.slot]:[]).length>0)||t.skipSeed?.(e.props))return;const s=`${n}:${t.slot}`,i=t.legacy?.(e.props)??[];(i.length?i:t.seeds(Ae)).forEach((a,l)=>h.seedChild(s,l,t.childType,a))})},[g,h,Ae]);const Do=I(new Set);S(()=>{g.forEach((e,t)=>{const n=e.props.id;if(Do.current.has(n))return;const o=Fi(e,an(e.type));Do.current.add(n),o&&h.replaceComponent(u,t,{...e,props:o})})},[g,h]);const _o=El().getState,$o=I(null);S(()=>{if(!Ri({docId:Wt,saveStatus:On,seededDocId:$o.current})||($o.current=Wt,!We))return;const e=_o().appState.data,t=e.content,n=Dn?.content??[],o=(a,l)=>a.some(f=>f?.type===l);if(!Gt){const a=new Set(fr(t)),l=a.size?t.filter(m=>!a.has(m.props.id)):t;a.size&&h.setDocument({...e,content:l});const f=Ei(l,n);if(f.includes(A)){const m=l.length,d=h.insertSection(A,m);h.replaceComponent(u,m,{type:A,props:{id:d,blocks:hr()}})}f.includes(xe)&&h.insertNode(u,0,gr());return}if(V){const a=Js(t);if(a!==t&&h.setDocument({...e,content:[...a]}),!a.find(f=>f.type===A)&&!o(n,A)&&!o(a,$t)&&!o(n,$t)){const f=(d,y)=>yl(H,d,y),m={type:A,props:{blocks:hr()}};h.insertNode(u,a.length,Zs(m,f,kl($t)))}return}const s=t.filter(a=>a.type!==A),i=new Set(fr(s)),c=i.size?s.filter(a=>!i.has(a.props.id)):s;c.length!==t.length&&h.setDocument({...e,content:c}),!o(c,xe)&&!o(n,xe)&&h.insertNode(u,0,gr())},[Wt,On,Dn,_o,h,Gt,We,V]);const Me=g.findIndex(e=>e.type===A),U=Me>=0?g[Me]:null,Mo=g.find(e=>e.type===Qs)??null,zo=g.find(e=>e.type===$t)??null,Fo=Me>=0?Me:g.length,pe=[];g.forEach(e=>{e.type!==A&&(Lt(e)&&pe.push(String(e.props.id)),pe.push(...pn(e,1,At)))}),U&&(pe.push(String(U.props.id)),pe.push(...pn(U,1,At)));const fn=pe.length>0&&pe.every(e=>gt.has(e)),ys=()=>mt(e=>{const t=new Set(pe);return fn?new Set([...e].filter(n=>!t.has(n))):new Set([...e,...pe])}),Ho=e=>{const t=e.props;if(e.type==="FooterMenu"){const n=t.menu;return t.heading||n?.name||"Menu"}if(e.type==="FooterText"){const n=typeof t.text=="string"?t.text.trim():"";return n?n.length>28?`${n.slice(0,28)}\u2026`:n:"Text"}return e.type==="FooterEmailSignup"?t.heading||"Email signup":J(e.type)},Vo=(e,t,n,o)=>{const s=C(e)[n];if(!s)return;const i={...Pe(e),index:n},c={...Pe(t),index:Math.min(Math.max(o,0),C(t).length)},a=Pl(i,c);if(!(e===t&&a===n))try{tn.move(String(s.props.id),{...c,index:a})}catch(l){if(!(l instanceof Sl))throw l}},Ss=(e,t,n)=>{if(e===t)return!0;const o=C(e)[n];if(!o)return!1;const s=t.split(":")[0],i=vt.get(s),c=i?C(i.zone)[i.index]:void 0;if(!c||ks(o).has(t))return!1;const a=ee(c.type,c.type===Ft?Ht(F?.data,s):0);return!(!a||!(a.choices?a.choices.some(f=>f.type===o.type):a.spec?.childType===o.type)||a.spec?.addBlocked?.(C(t),o))},ks=e=>{const t=new Set,n=o=>{for(const{child:s,zone:i}of we(o))t.add(i),n(s)};for(const o of an(e.type))t.add(`${e.props.id}:${o}`);return n(e),t},Wo=e=>{let t=e.slice(0,e.indexOf(":"));for(let n=0;n<64;n++){const o=vt.get(t);if(!o)return null;if(o.zone===u)return t;t=o.zone.slice(0,o.zone.indexOf(":"))}return null},ne=e=>{const t=e.slice(0,e.indexOf(":")),n=g.find(o=>_t(o.type)&&String(o.props.id)===t);return n&&sr(t)===e?n:null},hn=(e,t)=>{if(e.add)return vs(e.add,t);const n=le(t);if(_t(e.type))return!1;const o=ne(n),s=ne(e.zone);if(o||s)return!o||!s?!1:t.index>=0&&t.index<=C(n).length;if(e.zone===u||n===u){if(e.zone!==n)return!1;const{floor:c,cap:a}=ke();return t.index>=c&&t.index<=a}if(t.index<0||t.index>C(n).length)return!1;if(e.zone===n)return!0;const i=U?String(U.props.id):null;return i&&(Wo(e.zone)===i||Wo(n)===i)?!1:Ss(e.zone,n,e.index)},ze=e=>{const t=e.slice(0,e.indexOf(":")),n=vt.get(t),o=n?C(n.zone)[n.index]:void 0;if(!n||!o)return null;const s=ee(o.type,o.type===Ft?Ht(F?.data,t):0);if(!s||`${t}:${s.slot}`!==e||s.source==="footer")return null;const i=s.choices??(s.spec?[{type:s.spec.childType,label:J(s.spec.childType)}]:[]);return{parent:o,parentId:t,target:s,choices:i,parentName:n.zone===u?$(o.type):J(o.type)}},vs=(e,t)=>{const n=le(t);if(e.kind!=="block"){if(ne(n))return t.index>=0&&t.index<=C(n).length;if(n!==u)return!1;const{floor:s,cap:i}=ke();return t.index>=s&&t.index<=i}if(n===u)return!1;const o=ze(n);return!o||!o.choices.some(s=>s.type===e.type)?!1:!o.target.spec?.addBlocked?.(C(n))},ws=(e,t)=>{if(e.kind!=="block"&&ne(le(t))){Oo(e,le(t),t.index);return}if(e.kind==="section"){ln(e.type,t.index);return}if(e.kind==="template"){cn(e.template.name,En(e.template.node),t.index);return}const n=le(t),o=ze(n);o&&(o.target.spec?$e(o.parentId,o.target.slot,e.type,t.index,o.parent.type):un(n,e.type,t.index))},Go=(e,t)=>{if(e.add){ws(e.add,t);return}e.zone===u?Ao(e.index,t.index):Vo(e.zone,le(t),e.index,t.index)},[gn]=L(()=>xl()),Fe=Ln({keyOf:e=>e.id,readOnly:!!D,session:gn,canDrop:hn,onDrop:Go,onStep:(e,t)=>{e.zone===u?ps(e.index,t):Vo(e.zone,e.zone,e.index,t<0?e.index-1:e.index+2)}}),bs=z(e=>{const{floor:t,cap:n}=ke(),o=[];for(const i of e.nodes){const c=le(i.place),a=C(c)[i.place.index];if(!a||String(a.props.id)!==i.id||a.type===xe||a.type===A||Cn(a.type)||_t(a.type))continue;const l=!!ne(c),f=c===u||l;c===u&&n-t<2||o.push({key:i.id,item:{id:i.id,zone:c,index:i.place.index,type:a.type},box:i.box,label:f?$(a.type):wt(a),from:i.place})}const s=e.zones.filter(i=>i.children.length>0||!!ze(le(i.list))?.choices.length||!!ne(le(i.list)));return{sources:o,zones:s}},[F.data]),xs=e=>{T(Y),h.select(e.zone===u?{index:e.index}:{index:e.index,zone:e.zone})},Ot=(e,t,n,o)=>r(bn,{...D?{}:Fe.seam({place:{...Pe(e),index:t}}),onAdd:D?void 0:n,label:o},`seam:${e}:${t}`),be=(e,t)=>{const n=g[e];n&&h.replaceComponent(u,e,{type:n.type,props:{...n.props,locations:t}})},et=e=>{const t=g[e]?.props?.locations;return Array.isArray(t)?t:[]},Uo=Ln({keyOf:e=>`group:${e.si}:${e.index}`,readOnly:!!D,canDrop:(e,t)=>t.parentId===Vt(e.si).parentId&&t.slot==="groups",onDrop:(e,t)=>{be(e.si,kr(et(e.si),e.index,t.index)),G.level==="city"&&ie({level:"groups"})},onStep:(e,t)=>{be(e.si,kr(et(e.si),e.index,t<0?e.index-1:e.index+2)),G.level==="city"&&ie({level:"groups"})}}),mn=Ln({keyOf:e=>`city:${e.si}:${e.group}:${e.index}`,readOnly:!!D,canDrop:(e,t)=>t.parentId===Vt(e.si).parentId&&t.slot.startsWith("cities:"),onDrop:(e,t)=>{const n=t.slot.slice(7);be(e.si,vr(et(e.si),e.group,e.index,n,t.index)),ie({level:"group",key:n})},onStep:(e,t)=>{be(e.si,vr(et(e.si),e.group,e.index,e.group,t<0?e.index-1:e.index+2)),G.level==="city"&&ie({level:"group",key:e.group})}}),Ko=I(g);Ko.current=g;const Yo=I(()=>{});S(()=>{oo(e=>{const t=xi(e);if(!t)return;const n=Ko.current.findIndex(o=>o.props?.id===t.nodeId);n<0||Yo.current(n,{level:t.part,index:t.index})})},[oo]);const K=(e,t)=>{T(Y),Xt.current=g[e]?.props?.id??null,h.select({index:e}),ie(t),Ce||b({type:"setUi",ui:{rightSideBarVisible:!0}});const n=g[e]?.props?.id;typeof n=="string"&&(t.level==="image"||t.level==="map")?no(Pi(n,t.index,t.level)):no(null),typeof n=="string"&&sn(n)};Yo.current=K;const Ps=(e,t)=>{const n=et(t),o=Sr(n),s=String(e.props.id),i=jt&&x?.props.id===s,c=l=>r(bn,{...D?{}:Uo.seam({place:{...Vt(t),index:l}})},`seam:${s}:groups:${l}`),a=(l,f)=>r(bn,{...D?{}:mn.seam({place:{...An(t,l),index:f}})},`seam:${s}:cities:${l}:${f}`);return p(E,{children:[r(R,{icon:r(Hs,{size:13}),name:"Texts",onSelect:()=>K(t,{level:"texts"}),selected:i&&G.level==="texts",rowProps:{onClick:O(()=>K(t,{level:"texts"}))}}),o.map((l,f)=>{const m=`${s}::grp::${l.key}`,d=Ee(m),y=i&&G.level==="group"&&G.key===l.key,v=tl(l.key,l.name),oe={...An(t,l.key),index:l.cards.length},Q=mn.row({item:{si:t,group:l.key,index:-1},place:oe,into:oe,canDrag:!1},{onClick:O(()=>K(t,{level:"group",key:l.key}))}),N=Uo.row({item:{si:t,index:f},place:{...Vt(t),index:f}},Q.rowProps);return p(Ve,{children:[f===0&&c(0),r(R,{icon:r(Dl,{size:13}),name:v,onSelect:()=>K(t,{level:"group",key:l.key}),selected:y,draggable:N.draggable,dragging:N.dragging,drop:N.drop??Q.drop,fold:{open:!d,label:"group",onToggle:()=>ye(m)},actions:r(Dt,{kind:"delete",label:`Delete ${v} group (${l.cards.length} ${l.cards.length===1?"city":"cities"})`,onClick:()=>{be(t,Qi(n,l.key)),ie({level:"groups"})},children:r(xn,{size:15})}),rowProps:N.rowProps,children:r("span",{className:"es-group-count",children:l.cards.length})}),!d&&p(ue,{children:[l.cards.map((re,M)=>{const B=wr(n,l.key,M),nt=i&&G.level==="city"&&G.index===B,Oe=String(re?.name??"")||"City",ot=`${s}::city::${br(re)}`,Nt=Ee(ot),{rowProps:Rt,...kn}=mn.row({item:{si:t,group:l.key,index:M},place:{...An(t,l.key),index:M}},{onClick:O(()=>K(t,{level:"city",index:B}))});return p(Ve,{children:[M===0&&a(l.key,0),r(R,{icon:r(_l,{size:13}),name:Oe,onSelect:()=>K(t,{level:"city",index:B}),selected:nt,...kn,fold:{open:!Nt,label:Oe,onToggle:()=>ye(ot)},actions:r(Dt,{kind:"delete",label:`Delete ${Oe}`,onClick:()=>{be(t,el(n,l.key,M)),ie({level:"group",key:l.key})},children:r(xn,{size:15})}),rowProps:Rt}),!Nt&&p(ue,{children:[r(R,{icon:r(zs,{size:13}),name:"Image",onSelect:()=>K(t,{level:"image",index:B}),selected:i&&G.level==="image"&&G.index===B,rowProps:{onClick:O(()=>K(t,{level:"image",index:B}))}}),r(R,{icon:r($l,{size:13}),name:"Map",onSelect:()=>K(t,{level:"map",index:B}),selected:i&&G.level==="map"&&G.index===B,rowProps:{onClick:O(()=>K(t,{level:"map",index:B}))}})]}),a(l.key,M+1)]},br(re))}),p("button",{type:"button",className:"sf-add-card",onClick:()=>{const re=Zi(n,l.key);be(t,re);const M=Sr(re).find(B=>B.key===l.key);ie(M&&M.cards.length?{level:"city",index:wr(re,l.key,M.cards.length-1)}:{level:"group",key:l.key})},children:[r("span",{className:"sf-plus sf-plus--sm",children:"+"}),"Add city"]})]}),c(f+1)]},m)}),p("button",{type:"button",className:"sf-add-card",onClick:()=>{const{cards:l,key:f}=Ji(n);be(t,l),K(t,{level:"group",key:f})},children:[r("span",{className:"sf-plus sf-plus--sm",children:"+"}),"Add group"]})]})},jo=e=>{const t=String(e.props.id),n=g.findIndex(l=>String(l.props.id)===t),o=sr(t),s=C(o),i=Ee(t),c=J(e.type),a=l=>Ot(o,l,()=>Ct(o,l),"Add section here");return p(E,{children:[r(R,{icon:r(se,{type:e.type,size:13}),name:c,onSelect:()=>ve(n),selected:Be===t,rowProps:{"data-node-id":t,onClick:O(()=>ve(n))},fold:{open:!i,label:"section",onToggle:()=>ye(t)}}),!i&&p(ue,{children:[s.map((l,f)=>{const m=String(l.props.id),d=Xe(l),y=Lt(l),v=y&&Ee(m),oe=()=>Qe(o,f,m,e.type),{rowProps:Q,...N}=Fe.row({item:{id:m,zone:o,index:f,type:l.type},place:{...Pe(o),index:f}},{"data-node-id":m,onClick:O(oe)});return p(Ve,{children:[a(f),r(R,{icon:r(se,{type:l.type,size:13}),name:d,onSelect:oe,selected:Be===m,hidden:!!l.props._hidden,...N,fold:y?{open:!v,label:"section",onToggle:()=>ye(m)}:void 0,actions:p(E,{children:[It(o,f,d),Et(o,f,l,d)]}),rowProps:Q}),y&&!v&&r(ue,{children:yn(l,2)})]},m)}),a(s.length)]})]})},qo=(e,t)=>{const n=we(e),o=(c,a)=>Ot(c,a),s=ee(e.type),i=s?`${e.props.id}:${s.slot}`:null;return p(E,{children:[n.map(({child:c,zone:a,index:l})=>{const f=Be===String(c.props.id),{collapsible:m,folded:d}=dn(c,t,At(c.type)),y=String(c.props.id),v=Ho(c),oe=()=>Qe(a,l,y,e.type),{rowProps:Q,...N}=Fe.row({item:{id:y,zone:a,index:l,type:c.type},place:{...Pe(a),index:l}},{"data-node-id":y,onClick:O(oe)});return p(Ve,{children:[l===0&&o(a,0),r(R,{icon:r(se,{type:c.type,size:13}),name:v,onSelect:oe,selected:f,hidden:!!c.props._hidden,...N,fold:m?{open:!d,label:"group",onToggle:()=>ye(y)}:void 0,actions:p(E,{children:[It(a,l,v),Et(a,l,c,v)]}),rowProps:Q}),m&&!d&&r(ue,{children:qo(c,t+1)}),o(a,l+1)]},String(c.props.id??`${a}-${l}`))}),i&&!n.some(c=>c.zone===i)?o(i,0):null]})},yn=(e,t)=>{const n=we(e),o=ee(e.type,e.type===Ft?Ht(F?.data,String(e.props.id)):0),s=o?.spec??null,i=s&&Array.isArray(e.props[s.slot])?e.props[s.slot]:[],c=o&&o.choices?{slot:o.slot,choices:o.choices}:null,a=String(e.props.id),l=s&&!s.fixed?`${a}:${s.slot}`:null,f=c?`${a}:${c.slot}`:null,m=(d,y)=>{const v=d===l&&s&&!s.addBlocked?.(i)?()=>$e(e.props.id,s.slot,s.childType,y,e.type):d===f?()=>Ct(d,y):void 0;return Ot(d,y,v,d===l&&s?s.addLabel:"Add block here")};return p(E,{children:[n.map(({child:d,zone:y,index:v})=>{const oe=Be===String(d.props.id),Q=wt(d),N=String(d.props.id),{collapsible:re,folded:M}=dn(d,t,At(d.type)),B=an(d.type),nt=B.length===1?`${N}:${B[0]}`:null,Oe=nt?{...Pe(nt),index:C(nt).length}:void 0,ot=Fe.dragging,Nt=Oe&&ot&&hn(ot,Oe)?Oe:void 0,Rt=()=>Qe(y,v,N,e.type),{rowProps:kn,...Cs}=Fe.row({item:{id:N,zone:y,index:v,type:d.type},place:{...Pe(y),index:v},into:Nt,canDrag:!Cn(d.type)},{"data-node-id":N,onClick:O(Rt)});return p(Ve,{children:[v===0&&m(y,0),r(R,{icon:r(se,{type:d.type,size:13}),name:Q,onSelect:Rt,nameSlot:is(y,v,N,Q),selected:oe,hidden:!!d.props._hidden,...Cs,fold:re?{open:!M,label:"group",onToggle:()=>ye(N)}:void 0,actions:Cn(d.type)?void 0:p(E,{children:[It(y,v,Q),Et(y,v,d,Q)]}),rowProps:kn}),re&&!M&&r(ue,{children:yn(d,t+1)}),m(y,v+1)]},String(d.props.id??`${y}-${v}`))}),s&&!s.fixed&&r(Ui,{small:!0,label:s.addLabel,blocked:s.addBlocked?.(i)??null,onAdd:()=>$e(e.props.id,s.slot,s.childType,i.length,e.type)}),f&&!n.some(d=>d.zone===f)?m(f,0):null]})},Xo=(()=>{if(!x||!jt)return null;const e=String(x.type),t=String(x.props.id),n=ee(e,e===Ft?Ht(F?.data,t):0);if(!n||n.source==="footer")return null;const o=g.some(c=>String(c.props?.id)===t),s=Array.isArray(x.props[n.slot])?x.props[n.slot]:[];if(n.spec?.addBlocked?.(s))return null;const i=n.choices??(n.spec?[{type:n.spec.childType,label:J(n.spec.childType)}]:[]);return i.length===0?null:{parentName:o?$(e):J(e),choices:i,onPick:c=>{n.spec?$e(t,n.slot,c,s.length,e):un(`${t}:${n.slot}`,c,s.length)}}})(),Sn=_||X!==null,tt=[{id:"add",label:"Add",icon:r("span",{className:"sf-rail-plus","aria-hidden":"true",children:"+"}),active:_,onSelect:()=>_?Tt():Je(null)},{id:"pages",label:"Pages",icon:r(Ls,{}),active:P&&!Sn&&Ie==="pages",onSelect:()=>kt("pages")},{id:"sections",label:"Layers",icon:r(Jo,{}),active:P&&!Sn&&Ie==="sections",onSelect:()=>kt("sections")}];return!ct&&Br&&tt.push({id:"appearance",label:"Appearance",icon:r(Bl,{}),active:Z.kind==="website",onSelect:wo}),ct&&tt.push({id:"styles",label:"Site styles",icon:r(As,{}),active:P&&!Sn&&Ie==="styles",onSelect:()=>kt("styles")}),zn?tt.push({id:"media",label:"Media library",icon:r(Qo,{}),active:P&&!_&&(X!==null||Ie==="media"),onSelect:()=>kt("media")}):$n&&tt.push({id:"media",label:"Media library",icon:r(Qo,{}),onSelect:ns}),r(qs.Provider,{value:!0,children:r(js.Provider,{value:Te,children:p("div",{ref:Ue,className:"sf-editor es-editor",style:pi(De),onContextMenu:Io.onEditorContextMenu,children:[p(Rs,{children:[r($s,{items:tt,ariaLabel:"Left panel views"}),p(or,{children:[r(er,{label:"Undo",disabled:!fe.hasPast,onClick:()=>fe.back(),children:r(Vs,{})}),r(er,{label:"Redo",disabled:!fe.hasFuture,onClick:()=>fe.forward(),children:r(Fs,{})}),r(_s,{}),r(Ns,{devices:Ys,value:Te,onChange:$r})]}),p(or,{kind:"right",style:{minWidth:300},children:[r(Rl,{saveState:Tr,notSaving:!!D||Ir!=null,onToggle:Or,onRetry:Er}),at.visible&&p("button",{type:"button",className:"es-btn-ghost",disabled:!at.enabled,title:at.enabled?"Save this website as a platform template":at.disabledReason,onClick:_r,children:["Save as Template",r(al,{})]}),r("button",{type:"button",className:"es-btn-ghost",title:"Refresh the preview (reloads the canvas, keeps your place)",onClick:ds,children:"Refresh"}),Dr&&te&&p("a",{className:"es-btn-ghost",href:ts,target:"_blank",rel:"noopener noreferrer",title:"Preview the live site (opens in a new tab)","aria-label":"Preview the live site in a new tab",children:["Preview",r(Ms,{size:15})]}),r("button",{type:"button",className:"es-btn-primary",onClick:()=>{Cr(F.data)},children:Nr?"Publish":"Save"})]})]}),r(Ks,{}),p("div",{className:"sf-body",children:[P?p(E,{children:[r("div",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:_?r(Xs,{blocks:w&&w.zone!==u&&!ne(w.zone)?ze(w.zone):Xo,blocksOnly:!!(w&&w.zone!==u&&!ne(w.zone)),at:w?{label:hs(w),onClear:()=>de(null)}:void 0,onAdd:gs,itemFor:e=>({id:`new:${e.kind}:${e.kind==="template"?e.template.id:e.type}`,zone:"",index:-1,type:e.kind==="template"?e.template.node.type:e.type,add:e}),session:gn,siteWide:Gt?{chatEnabled:Hr.enabled,onToggleChat:e=>Vr({enabled:e}),onOpenChat:()=>{Tt(),Zt()}}:void 0,onClose:Tt,onHide:Se,readOnly:!!D}):X&&Ge?r(lr,{panel:Ge,pick:X,onHide:Se}):Ie==="pages"?r(ei,{activeSurface:Fr,onPreviewSurface:Vn,onNavigate:e=>{Vn(null),Bn(lt?{kind:"template",id:lt,pageSlug:e}:{kind:"page",slug:e,siteId:q??void 0})},onClose:Se}):Ie==="styles"?r(ni,{tokenRef:Pr,siteId:q??void 0,onClose:Se,onNotify:Le,tab:Mr,onTabChange:Fn}):Ie==="media"&&Ge?r(lr,{panel:Ge,pick:null,onHide:Se}):p(E,{children:[r(Ws,{icon:r(Jo,{}),title:"Layers",context:`/${te}`,actions:pe.length>0?r(Bs,{label:fn?"Expand all sections":"Collapse all sections",onClick:ys,children:r(Ml,{expand:fn})}):void 0,onHide:Se}),p(Os,{className:"sf-tree sf-scroll",children:[r(R,{icon:r(se,{type:"page",size:13}),name:"Page settings",onSelect:ko,selected:!x&&jt,rowProps:{onClick:O(ko)}}),Mo&&p(E,{children:[r(Bt,{children:"Header"}),jo(Mo)]}),!V&&We&&p(E,{children:[r(Bt,{children:"Header"}),r(R,{icon:r(se,{type:"header",size:13}),name:"Header",onSelect:vo,selected:Z.kind==="header",rowProps:{onClick:O(vo)}})]}),!V&&p(Bt,{children:["Template \xB7 ",Rr?"Home page":"Template"]}),g.map((e,t)=>{if(e.type===xe||e.type===A||_t(e.type))return null;const n=Be===String(e.props.id),o=!!e.props._hidden,s=we(e),i=String(e.props.id),c=e.type==="ContactLocations",a=Lt(e)||c,l=a&&Ee(i),{rowProps:f,...m}=Fe.row({item:{id:i,zone:u,index:t,type:e.type},place:{...Pe(u),index:t}},{"data-node-id":i,onClick:O(()=>ve(t))});return p(Ve,{children:[t>0&&Ro(t),r(R,{icon:r(se,{type:e.type,size:13}),name:Xe(e),onSelect:()=>ve(t),selected:n,hidden:o,...m,fold:a?{open:!l,label:"section",onToggle:()=>ye(i)}:void 0,actions:p(E,{children:[It(u,t,Xe(e)),Et(u,t,e,Xe(e))]}),rowProps:f}),Lt(e)&&!l&&p(ue,{children:[yn(e,1),e.type==="Hero"&&r(R,{icon:r(se,{type:"ticker",size:13}),name:vi,onSelect:()=>ht(i),selected:qt===i,rowProps:{onClick:O(()=>ht(i))}})]}),c&&!l&&r(ue,{children:Ps(e,t)})]},String(e.props.id??t))}),!V&&Fo>0&&Ro(Fo),We&&r(Bt,{children:"Footer"}),U&&(()=>{const e=String(U.props.id),t=we(U).length>0||!!ee(U.type),n=t&&Ee(e);return p(E,{children:[r(R,{icon:r(se,{type:"footer",size:13}),name:"Footer",onSelect:()=>ve(Me),selected:Be===String(U.props.id),fold:t?{open:!n,label:"section",onToggle:()=>ye(e)}:void 0,rowProps:{onClick:O(()=>ve(Me))}}),t&&!n&&r(ue,{children:qo(U,1)})]})})(),!V&&!U&&We&&r(R,{icon:r(se,{type:"footer",size:13}),name:"Footer",onSelect:No,rowProps:{onClick:O(No),title:"Edit the site footer"}}),zo&&jo(zo),r("div",{className:"sf-tree-tool",children:r(di,{})})]})]})}),r(tr,{side:"left",width:De.left,min:ar,max:cr,defaultWidth:Ne.left,label:"Resize Sections panel",onResize:Yr})]}):r(rr,{side:"left",onShow:Se}),r("div",{ref:je,className:"sf-center sf-scroll",style:{overflowX:Zr?"auto":"hidden",overflowY:"hidden"},children:r("div",{className:"sf-frame-scaler",style:Jr,children:r("div",{className:`sf-frame ${Te==="desktop"?"":`sf-frame--${Te}`}`,style:Qr,children:p("div",{className:"sf-preview-host",children:[r(Nl,{},Hn),r(bl,{canvas:ae,session:gn,model:bs,canDrop:hn,onDrop:Go,onPick:xs,onZoneAdd:e=>Ct(le(e),0),readOnly:!!D,revision:F.data}),Gn.length>0&&r("div",{className:"sf-preview-gaps","aria-hidden":"true",children:Gn.map(e=>p("button",{type:"button",tabIndex:-1,className:"sf-preview-gap",style:{top:e.top},title:"Add section here",onClick:()=>Je(e.index),children:[r("span",{className:"sf-preview-gap-line"}),p("span",{className:"sf-preview-gap-pill",children:[r("span",{className:"sf-preview-gap-plus",children:"+"}),r("span",{className:"sf-preview-gap-label",children:"Add section"})]})]},e.index))})]})})})}),Ce?p(E,{children:[r(mi,{value:{selectChild:Qe,addChild:$e,childRowName:wt,blockRowName:Ho},children:r(ui,{mode:Z,onOpenWebsiteSettings:wo,onOpenSiteStyles:()=>{Fn(ri),pt("styles")},onSelectNode:Ur,onNotify:Le,onHidePanel:So})}),r(tr,{side:"right",width:De.right,min:ar,max:cr,defaultWidth:Ne.right,label:"Resize settings panel",onResize:jr})]}):r(rr,{side:"right",onShow:So})]}),St&&p("div",{className:`sf-toast ${St.tone==="error"?"sf-toast--error":""}`,role:"status",children:[r("span",{className:"sf-toast-check","aria-hidden":"true",children:St.tone==="error"?"!":"\u2713"}),St.msg]},qr),Io.menu]})})})}export{Fl as default};
|
|
1
|
+
"use client";import{default as f}from"efficient-easel/screen/components/ScreenChrome";export{f as default};
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import type { BlogPostRow, LinkTargetPage } from "../lib/web-backend.js";
|
|
2
|
+
import { type LinkFilters, type LinkPickerSetupInput } from "../lib/links/link-picker-setup.js";
|
|
2
3
|
export declare const loadPages: (key?: string) => Promise<LinkTargetPage[]>;
|
|
3
4
|
export declare const loadPosts: (key?: string) => Promise<BlogPostRow[]>;
|
|
5
|
+
interface PickerProps {
|
|
6
|
+
value: string;
|
|
7
|
+
onChange: (value: string) => void;
|
|
8
|
+
label?: string;
|
|
9
|
+
data: LinkPickerSetupInput;
|
|
10
|
+
filters?: LinkFilters | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function StorefrontLinkPicker({ value, onChange, label, data, filters }: PickerProps): import("react").JSX.Element;
|
|
4
13
|
interface Props {
|
|
5
14
|
value?: string;
|
|
6
15
|
onChange: (value: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as f,jsxs as C}from"react/jsx-runtime";import{LinkPicker as M}from"efficient-easel/fields";import{SettingsField as D}from"efficient-easel/panel";import{LinkIcon as H}from"efficient-easel/icons";import{useEffect as R,useMemo as P,useRef as O,useState as p}from"react";import{getEditorToken as q}from"../lib/editor-auth.js";import{currentEditorSession as z}from"../lib/editor-session.js";import{backendOf as T}from"../lib/website-session.js";import{useStorefrontDocument as A}from"./StorefrontDocumentContext.js";import{pagePath as G}from"../lib/links/page-link-rules.js";import{linkPickerSetup as I}from"../lib/links/link-picker-setup.js";import{useEditorSession as J}from"../lib/editor-session-context.js";import{isSystemPageSlug as K}from"../lib/content/subscribe.js";function j(i){const o=new Map;return(n="")=>{const t=q(),s=o.get(n);if(!s||s.token===null&&t!==null){const l=t||!z().usesBridgedToken?i(t??"",n).catch(()=>[]):Promise.resolve([]);return o.set(n,{promise:l,token:t}),l}return s.promise}}const N=j(async(i,o)=>{const n=o?{siteId:o}:void 0,{pages:t}=T();return t.linkTargets?t.linkTargets(n):(await t.list(n)).map(s=>({id:s.id,slug:s.slug,label:s.label,layout:null}))}),Q=j(async(i,o)=>await T().blog?.posts(o?{siteId:o}:void 0)??[]);function U({value:i,onChange:o,label:n="Link",data:t,filters:s}){const l=P(()=>I(t,s),[t,s]);return f(D,{label:n,icon:f(H,{}),children:f(M,{value:i,onChange:r=>o(r),kinds:l.kinds,rules:l.rules,filtersFor:l.filtersFor,label:n})})}function V({value:i,onChange:o,label:n="Link"}){const t=typeof i=="string"?i:"",{siteId:s,capabilities:l}=A(),{offersCommerce:r,hasBlog:a}=l,[g,y]=p([]),[S,E]=p([]),[L,_]=p([]),[k,b]=p(null),h=J().chrome,v=h?.products?.list,m=h?.linkFilters,x=m?void 0:h?.linkRow,c=O(!0);R(()=>(c.current=!0,()=>{c.current=!1}),[]),R(()=>{let e=!0;return N(s??void 0).then(u=>e&&c.current&&y(u)),a&&Q(s??void 0).then(u=>e&&c.current&&E(u)),r&&v?.().then(u=>e&&c.current&&_(u)),r&&m?m.load(s).catch(()=>null).then(u=>e&&c.current&&b(()=>u)):b(null),()=>{e=!1}},[s,r,a,v,m]);const d=P(()=>({pages:g.filter(e=>!K(e.slug)).map(e=>({slug:e.slug,title:e.label,docs:[e.layout]})),posts:a?S.map(e=>({slug:e.slug,title:e.title})):[],products:r?L.map(e=>({href:e.href,name:e.name})):[],offers:{offersCommerce:r,offersService:a}}),[g,S,L,r,a]),w=P(()=>k?k(d.pages):null,[k,d]),B=d.pages.map(e=>G(e.slug)),F=r&&x&&(t==="/"||B.includes(t))?x:void 0;return C("div",{children:[f(U,{value:t,onChange:o,label:n,data:d,filters:w}),F&&f(F,{value:t,onChange:o,pages:g})]})}export{U as StorefrontLinkPicker,V as default,N as loadPages,Q as loadPosts};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as r}from"react/jsx-runtime";import m,{useWebsiteName as c}from"./WebsiteSettingsPanel.js";import d from"./SidePanelHead.js";import{StylesIcon as f}from"efficient-easel/rail";function S({tokenRef:s,siteId:i,onClose:n,onNotify:o,tab:l,onTabChange:a}){const t=c();return r("div",{className:"sf-styles",children:[e(d,{icon:e(f,{}),title:"Site styles",context:e("span",{title:`${t}
|
|
1
|
+
"use client";import{jsx as e,jsxs as r}from"react/jsx-runtime";import m,{useWebsiteName as c}from"./WebsiteSettingsPanel.js";import d from"./SidePanelHead.js";import{StylesIcon as f}from"efficient-easel/rail";function S({tokenRef:s,siteId:i,onClose:n,onNotify:o,tab:l,onTabChange:a}){const t=c();return r("div",{className:"sf-styles",children:[e(d,{icon:e(f,{}),title:"Site styles",context:e("span",{title:`${t} — renamed in the Console: Storefront ▸ Sites ▸ Settings.`,children:t}),onHide:n}),e("div",{className:"sf-insp-body sf-scroll",children:e(m,{tokenRef:s,siteId:i,onNotify:o,tab:l,onTabChange:a})})]})}export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,Fragment as f,jsxs as a}from"react/jsx-runtime";import u from"./SectionEyebrow.js";import{renderGold as v,renderHeadline as b,splitParagraphs as N}from"./goldPhrases.js";const z="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",M="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-0 pb-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]";function _({look:x,eyebrow:r,title:i,items:p,columns:d,omitHead:n=!1,editing:m=!1}={}){const o=Math.min(3,Math.max(1,d??3)),s=(p??[]).filter(t=>m||(t.quote??"").trim()),c=!!(r??"").trim()||!!(i??"").trim();return!m&&!c&&s.length===0?null:e("section",{className:"relative z-[2] border-t border-line bg-surface",children:a("div",{className:n?M:z,children:[n?null:a(f,{children:[(r??"").trim()&&e(u,{text:r??"",look:x,className:"mb-4 block"}),(i??"").trim()&&e("h2",{className:"mb-11 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-8 max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:b(i??"",!1)})]}),s.length>0&&e("div",{className:"sf-card grid grid-cols-1 gap-px border border-line bg-line min-[700px]:[grid-template-columns:repeat(var(--tm-cols),minmax(0,1fr))]",style:{"--tm-cols":String(o)},children:s.map((t,g)=>a("figure",{className:"flex flex-col gap-5 bg-bg p-9 max-[800px]:p-7",children:[e("span",{"aria-hidden":!0,className:"font-heading2 text-[length:var(--size-headingMedium,46px)] leading-none text-accent",children:"
|
|
1
|
+
import{jsx as e,Fragment as f,jsxs as a}from"react/jsx-runtime";import u from"./SectionEyebrow.js";import{renderGold as v,renderHeadline as b,splitParagraphs as N}from"./goldPhrases.js";const z="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",M="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-0 pb-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]";function _({look:x,eyebrow:r,title:i,items:p,columns:d,omitHead:n=!1,editing:m=!1}={}){const o=Math.min(3,Math.max(1,d??3)),s=(p??[]).filter(t=>m||(t.quote??"").trim()),c=!!(r??"").trim()||!!(i??"").trim();return!m&&!c&&s.length===0?null:e("section",{className:"relative z-[2] border-t border-line bg-surface",children:a("div",{className:n?M:z,children:[n?null:a(f,{children:[(r??"").trim()&&e(u,{text:r??"",look:x,className:"mb-4 block"}),(i??"").trim()&&e("h2",{className:"mb-11 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-8 max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:b(i??"",!1)})]}),s.length>0&&e("div",{className:"sf-card grid grid-cols-1 gap-px border border-line bg-line min-[700px]:[grid-template-columns:repeat(var(--tm-cols),minmax(0,1fr))]",style:{"--tm-cols":String(o)},children:s.map((t,g)=>a("figure",{className:"flex flex-col gap-5 bg-bg p-9 max-[800px]:p-7",children:[e("span",{"aria-hidden":!0,className:"font-heading2 text-[length:var(--size-headingMedium,46px)] leading-none text-accent",children:"“"}),e("blockquote",{className:"flex-1 text-[length:var(--size-body,16px)] leading-[1.6] text-fg-dim",children:N((t.quote??"").trim()||"A short customer quote goes here.").map((h,l)=>e("p",{className:l?"mt-3":"",children:v(h)},l))}),a("figcaption",{className:"border-t border-line pt-[18px]",children:[e("div",{className:"font-display text-[length:var(--size-body,15px)] font-medium uppercase tracking-[0.04em] text-fg",children:(t.name??"").trim()||"Customer name"}),(t.role??"").trim()&&e("div",{className:"mt-1 text-[length:var(--size-body,12px)] text-fg-dim",children:t.role})]})]},g))})]})})}export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,jsxs as I,Fragment as T}from"react/jsx-runtime";import{SettingsField as v}from"efficient-easel/panel";import{AccentIcon as G,CaseIcon as
|
|
1
|
+
"use client";import{jsx as t,jsxs as I,Fragment as T}from"react/jsx-runtime";import{FieldSelect as M}from"efficient-easel/fields";import{SettingsField as v}from"efficient-easel/panel";import{AccentIcon as G,CaseIcon as D,StylesIcon as X,TextLinesIcon as C,TextSizeIcon as p,TextSmallIcon as B,TypeIcon as $,WeightIcon as W}from"efficient-easel/icons";import{PartResetDot as x}from"./PartSettingsPanel.js";import k from"./TextStyleRow.js";import{DEFAULT_FONTS as L,FONT_CATEGORY_LABELS as R,fontItalicIsUsable as z,fontOption as E,fontsByCategory as K,isHeadingRole as m}from"../lib/fonts.js";import{compressionMetrics as j,DEFAULT_HEADING_COMPRESSION as O,HEADING_MAX_PX_MAX as Z,HEADING_MAX_PX_MIN as U,HEADING_WEIGHT_MAX as V,HEADING_WEIGHT_MIN as Y,TEXT_SIZE_MAX as q,TEXT_SIZE_MIN as J,SIZE_STEPS as F,TEXT_SIZE_STEP as Q}from"../lib/theme.js";const w=[{role:"heading",title:"Heading 1",group:"heading",step:"headingLarge",base:17,icon:t(p,{})},{role:"heading2",title:"Heading 2",group:"heading",step:"headingMedium",base:15,icon:t(p,{})},{role:"heading3",title:"Heading 3",group:"heading",step:"headingSmall",base:13,icon:t(p,{})},{role:"accent",title:"Accent",step:"accent",base:15,icon:t(G,{})},{role:"body",title:"Body",group:"body",step:"body",base:14,icon:t(C,{})},{role:"label",title:"Labels",group:"label",step:"label",base:11,icon:t(B,{})}];function xe(n){return n==="heading"?F.filter(i=>i.startsWith("heading")):F.filter(i=>i===n)}const ee=9,f=500,te=100,le=80,ne=4,ae=600,ie=700,se=400,oe="0.18em";function ce({id:n,value:i,onChange:a}){const o=K().flatMap(([l,c])=>c.map(s=>({label:s.label,value:s.key,group:R[l]}))),r=(l,c)=>t("span",{style:{fontFamily:`var(${E(l)?.cssVar??"--font-body"})`},children:c});return t(M,{id:n,value:i,onChange:a,options:o,renderOption:l=>r(l.value,l.label),renderValue:l=>l?r(l.value,l.label):null})}function re({label:n,icon:i,readout:a,min:o,max:r,step:l,value:c,onChange:s,action:h,hint:d}){return t(v,{label:n,icon:i,value:a,action:h,hint:d,children:t("input",{type:"range",min:o,max:r,step:l,value:c,onChange:g=>s(Number(g.target.value)),className:"h-1 w-full cursor-pointer","aria-label":n})})}function y({label:n,icon:i,value:a,fallback:o,min:r,max:l,step:c,suffix:s="",hint:h,onChange:d}){const g=a===null;return t(re,{label:n,icon:i,readout:g?"Auto":`${a}${s}`,min:r,max:l,step:c,value:g?o:a,onChange:d,action:g?null:t(x,{label:n,what:"change",onClear:()=>d(null)}),hint:h})}function H({label:n,icon:i,options:a,value:o,onChange:r,hint:l,action:c}){return t(v,{label:n,icon:i,value:a.find(s=>s.value===o)?.label,hint:l,action:c,children:t("div",{className:"sf-rungs",children:a.map(s=>t("button",{type:"button","aria-pressed":s.value===o,onClick:()=>r(s.value),className:`sf-rung${s.value===o?" is-active":""}`,children:s.label},s.value))})})}const ue=[{value:"authored",label:"As designed"},{value:"sentence",label:"As typed"}],he=[{value:"normal",label:"Normal"},{value:"tight",label:"Tight"},{value:"compressed",label:"Compressed"}];function de({fontKey:n,weight:i,fallbackWeight:a,onWeight:o}){const l=(i??a)>=ae,c=z(n),s=E(n)?.label??"This face";return t(v,{label:"Style",icon:t(X,{}),value:l?"Bold":"Normal",hint:"Bold is the weight above — one value, two ways to set it.",children:I("div",{className:"sf-rungs",children:[t("button",{type:"button","aria-pressed":l,"aria-label":"Bold",title:"Bold",onClick:()=>o(l?se:ie),className:`sf-rung sf-rung--glyph${l?" is-active":""}`,style:{fontWeight:700},children:"B"}),t("button",{type:"button","aria-pressed":!1,"aria-label":"Italic",disabled:!0,title:c?"Italic is not saved yet — the theme row has no column for it (card 66162.b).":`${s} is loaded without an italic, so it cannot be set in italic. Slanting it would deform the letters rather than style them.`,className:"sf-rung sf-rung--glyph",style:{fontStyle:"italic"},children:"I"})]})})}function ge({fonts:n,compression:i,headingTypography:a,openRole:o,onOpenRole:r,onFontChange:l,sizes:c,onSizeChange:s,onCompressionChange:h,onHeadingTypographyChange:d,livePx:g,savedRole:P=null}){const b=e=>d({...a,...e}),S=e=>e==="accent"?"weightStrong":e==="heading2"?"weight2":e==="heading3"?"weight3":"weight",_=e=>e==="heading2"?"case2":e==="heading3"?"case3":"case",A=j(i);return t("div",{className:"sf-style-list",children:w.map(e=>{const N=o===e.role;return t(k,{styleKey:e.role,label:e.title,icon:e.icon,value:E(n[e.role])?.label??n[e.role],sampleStyle:fe(e,n,a,A),open:N,onToggle:()=>r(N?null:e.role),saved:P===e.role,children:N&&I(T,{children:[t(v,{label:"Font",icon:t($,{}),htmlFor:`sf-font-${e.role}`,action:n[e.role]===L[e.role]?null:t(x,{label:"Font",what:"change",onClear:()=>l(e.role,L[e.role])}),children:t(ce,{id:`sf-font-${e.role}`,value:n[e.role],onChange:u=>l(e.role,u)})}),e.step&&s&&t(y,{label:"Size",icon:t(p,{}),value:c[e.step],fallback:e.base*2,min:J,max:q,step:Q,suffix:"px",hint:c[e.step]===null?"Auto = this style states no size, and text following it keeps the size its section drew.":"The size a text takes when you set it to follow this style. Sections keep their own sizes.",onChange:u=>s(e.step,u)}),(m(e.role)||e.role==="accent")&&I(T,{children:[t(y,{label:"Weight",icon:t(W,{}),value:a[S(e.role)],fallback:m(e.role)?f:a.weight??f,min:Y,max:V,step:te,hint:e.role==="accent"?"Auto = the accent phrase takes the heading's own weight.":void 0,onChange:u=>b({[S(e.role)]:u})}),t(de,{fontKey:n[e.role],weight:a[S(e.role)],fallbackWeight:m(e.role)?f:a.weight??f,onWeight:u=>b({[S(e.role)]:u})})]}),m(e.role)&&I(T,{children:[t(H,{label:"Line & text gap",icon:t(C,{}),options:he,value:i,onChange:h,hint:A.lineHeight===void 0?"The built-in spacing.":`Line gap ${A.lineHeight} · text gap ${A.letterSpacing}em.`,action:i===O?null:t(x,{label:"Line & text gap",what:"change",onClear:()=>h(O)})}),t(H,{label:"Capitals",icon:t(D,{}),options:ue,value:a[_(e.role)],onChange:u=>b({[_(e.role)]:u}),hint:"The only setting that changes a heading's capitals.",action:a[_(e.role)]==="authored"?null:t(x,{label:"Capitals",what:"change",onClear:()=>b({[_(e.role)]:"authored"})})}),t(y,{label:"Largest size",icon:t(p,{}),value:a.maxPx,fallback:le,min:U,max:Z,step:ne,suffix:"px",hint:"Caps the biggest heading on the site. Auto = each section's own.",onChange:u=>b({maxPx:u})})]})]})},e.role)})})}function fe(n,i,a,o){const r=Math.max(ee,n.base),l={fontFamily:`var(${E(i[n.role])?.cssVar??"--font-body"})`,fontSize:`${r.toFixed(1)}px`,lineHeight:1.15};return m(n.role)?(l.fontWeight=a.weight??f,l.textTransform=a.case==="sentence"?"none":"uppercase",o.letterSpacing!==void 0&&(l.letterSpacing=`${o.letterSpacing}em`)):n.role==="accent"?(l.fontWeight=a.weightStrong??a.weight??f,o.letterSpacing!==void 0&&(l.letterSpacing=`${o.letterSpacing}em`)):n.role==="label"&&(l.textTransform="uppercase",l.letterSpacing=oe),l}export{ge as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as l,Fragment as
|
|
1
|
+
"use client";import{jsx as e,jsxs as l,Fragment as F}from"react/jsx-runtime";import{SettingsField as f,SettingsGroupSub as _}from"efficient-easel/panel";import{Button as b}from"efficient-shell/ui";import L from"./ThemeColourField.js";import{ColourControl as p}from"../lib/puck/ColourControl.js";import{ButtonIcon as O,GroundIcon as A,LayoutIcon as D,SquareIcon as j,TextSmallIcon as z,TypeIcon as x}from"efficient-easel/icons";import{DEFAULT_THEMES as B,GRADE_LABEL as v,contrastRatio as I,gradeContrast as T,normalizeThemeColors as k,resolvedButtonInk as $,themeButtonColour as E,themeButtonInk as P}from"../lib/theme.js";const w=t=>`Theme ${t+1}`;function R({colors:t}){const n=k(t),a=E(t)??n.accent;return l("span",{className:"sf-theme-page",style:{background:n.background,color:n.text},"aria-hidden":!0,children:[e("span",{className:"sf-theme-eyebrow",style:{color:n.muted},children:"label"}),l("span",{className:"sf-theme-headline",children:["Heading ",e("span",{style:{color:n.accent},children:"accent"})]}),e("span",{className:"sf-theme-body",children:"body text"}),l("span",{className:"sf-theme-row",children:[e("span",{className:"sf-theme-btn",style:{background:a,color:$(t,n.accent)},children:"button"}),e("span",{className:"sf-theme-mini",style:{background:n.surface,borderColor:n.line},children:"card"})]})]})}const g={"Text color":e(x,{}),"Label color":e(z,{}),Background:e(A,{}),"Panels & cards":e(D,{}),Borders:e(j,{}),"Button color":e(O,{}),"Button text color":e(x,{})};function G({label:t,colorKey:n,value:a,onChange:r,idPrefix:o="sf-theme-ink"}){const s=`${o}-${n}`;return e(f,{label:t,icon:g[t],htmlFor:s,action:e(p,{id:s,label:t,value:a,onChange:c=>r(n,c)})})}function H({value:t,accent:n,onChange:a,idPrefix:r="sf-theme-ink"}){const o=`${r}-button`,s=/^#[0-9a-fA-F]{6}$/.test(t??""),c=s?t:n;return e(f,{label:"Button color",icon:g["Button color"],htmlFor:o,action:e(p,{id:o,label:"Button color",value:c,caption:s?c:"Main",onChange:a})})}function M({colors:t,accent:n,onChange:a,idPrefix:r="sf-theme-ink"}){const o=`${r}-button-ink`,s=P(t),c=$(t,n),i=E(t)??n,u=T(I(c,i)??0);return e(f,{label:"Button text color",icon:g["Button text color"],hint:s&&u!=="good"?`${v[u]} on the button`:void 0,htmlFor:o,action:e(p,{id:o,label:"Button text color",value:c,caption:s?c:"Auto",onChange:a})})}const J=[{colour:!0},{label:"Text color",key:"text"},{label:"Label color",key:"muted"},{button:!0},{buttonInk:!0},{group:"Surfaces"},{label:"Background",key:"background"},{label:"Panels & cards",key:"surface"},{label:"Borders",key:"line"}];function U({colors:t,onChange:n,idPrefix:a}){const r=k(t);return e(F,{children:J.map(o=>"colour"in o?e(L,{value:t,onChange:n},"colour"):"group"in o?e(_,{title:o.group},o.group):"button"in o?e(H,{value:t.button,accent:r.accent,onChange:s=>n({...t,button:s}),idPrefix:a},"button"):"buttonInk"in o?e(M,{colors:t,accent:r.accent,onChange:s=>n({...t,buttonInk:s}),idPrefix:a},"buttonInk"):e(G,{label:o.label,colorKey:o.key,value:r[o.key],onChange:(s,c)=>n({...t,[s]:c}),idPrefix:a},o.key))})}function Z({index:t,colors:n,selected:a,role:r="radio",open:o,editable:s=!0,onPick:c,onEdit:i,onChangeColors:u}){const d=k(n),m=w(t),h=t<B.length&&!n.brandInk?B[t]:null,y=T(I(d.text,d.background)??0),N=h?JSON.stringify(n)!==JSON.stringify(h):!1,C=o!==void 0;return l("div",{className:`sf-theme-card${a?" is-selected":""}`,children:[e("button",{type:"button",role:r,"aria-checked":r==="radio"?a:void 0,"aria-selected":r==="option"?a:void 0,"aria-label":m,className:"sf-theme-pick",onClick:c,children:e(R,{colors:n})}),l("div",{className:"sf-theme-foot",children:[e("span",{className:"sf-theme-name",children:m}),y!=="good"&&e("span",{className:"sf-theme-warn",children:v[y]}),s&&i&&e(b,{variant:o?"primary":"secondary",size:"sm",className:"sf-theme-edit","aria-expanded":C?o:void 0,"aria-controls":C?`sf-theme-colours-${t}`:void 0,"aria-label":`${o?"Done":"Edit"} ${m}`,onClick:i,children:o?"Done":"Edit"})]}),o&&l("div",{id:`sf-theme-colours-${t}`,className:"sf-theme-colours",children:[e(U,{colors:n,onChange:S=>u?.(S)}),h&&e(b,{variant:"link",size:"sm",className:"sf-theme-reset",disabled:!N,onClick:()=>u?.({...h}),children:N?`Reset ${m} to the preset`:"Not changed"})]})]})}function ee({colors:t,name:n,nameId:a,open:r,menuId:o,labelId:s,buttonRef:c,onClick:i,onKeyDown:u,onEdit:d}){return l("div",{className:"sf-secttheme-btn",children:[e("button",{ref:c,type:"button",className:"sf-theme-pick","aria-expanded":r,"aria-controls":o,"aria-labelledby":`${s} ${a}`,onClick:i,onKeyDown:u,children:t?e(R,{colors:t}):e("span",{className:"sf-secttheme-nopreview","aria-hidden":"true"})}),l("div",{className:"sf-theme-foot",children:[e("span",{id:a,className:"sf-theme-name",children:n}),d&&e(b,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":`Edit ${n}`,onClick:d,children:"Edit"}),e("button",{type:"button",className:"sf-secttheme-caret","aria-hidden":"true",tabIndex:-1,onClick:i,children:e("span",{className:"sf-multi-caret",children:"▾"})})]})]})}export{Z as ThemeCard,ee as ThemeCardTrigger,G as ThemeColourRow,U as ThemeColourRows,R as ThemePreview,w as themeName};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as n,jsxs as d}from"react/jsx-runtime";import{SettingsField as f}from"efficient-easel/panel";import{AccentIcon as m}from"efficient-easel/icons";import{Tooltip as h}from"efficient-shell/ui";import{GRADE_LABEL as u,contrastRatio as i,darkerAccents as p,gradeContrast as g,normalizeThemeColors as b}from"../lib/theme.js";import{ColourControl as y}from"../lib/puck/ColourControl.js";function s(e){return b(e).background}function k(e){const r=i(e.accent,s(e));return r===null?null:{ratio:r,grade:g(r)}}function A(e){const r=s(e),t=i(e.accent,r);return t===null?[]:p(e.accent).filter(c=>{const a=i(c,r);return a!==null&&a>t&&g(a)==="good"})}const C={good:"Easy to read","large-only":u["large-only"],hard:u.hard};function T({value:e,onChange:r}){const t=k(e),c=t?.grade,a=t&&t.grade!=="good"?A(e):[];return n(f,{label:"Main color",icon:n(m,{}),hint:t?C[t.grade]:void 0,action:n(y,{value:e.accent,onChange:o=>r({...e,accent:o}),label:"Main color"}),children:a.length>0?n("div",{className:"w-full min-w-0",children:d("div",{className:"sf-readability",children:[n("p",{className:"sf-readability-advice",children:E(c,!0)}),n("div",{className:"sf-readability-suggestions",children:a.map(o=>{const l=i(o,s(e));return n(h,{content:`Use ${o.toUpperCase()}`,children:d("button",{type:"button",className:"sf-readability-suggestion",onClick:()=>r({...e,accent:o}),children:[n("span",{className:"sf-readability-chip",style:{background:o},"aria-hidden":!0}),l?`${l.toFixed(1)}:1`:o.toUpperCase()]})},o)})})]})}):null})}function E(e,r){return e?e==="good"?"This color reads clearly on your pages.":r?"This color is hard to read on this theme's page. The buttons below are the same hue, darkened.":"This color is hard to read on your page background. Pick one further from it — lighter if your pages are dark, deeper if they are light.":"Pick a color to see how it reads."}export{T as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as s,jsxs as i,Fragment as _}from"react/jsx-runtime";import{useState as d}from"react";import{SettingsDefaultReset as k,SettingsField as w}from"efficient-easel/panel";import{iconOf as S,noGlyph as L}from"../lib/puck/controls.js";import{ThemeCard as j}from"./ThemeCard.js";import{ClearColoursDialog as v}from"./ClearColoursDialog.js";import{BRAND_INKS as A,brandTheme as B,normalizeTheme as D,normalizeThemeColors as F,selectedThemeColors as G}from"../lib/theme.js";const I=L("the row's whole content is an action; the gutter names a subject and this row has none — the button's label is the name GG, 2026-09-23");function N(){return s("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",children:s("path",{d:"M12 5v14M5 12h14"})})}const O="Reset color",P={selected:0,themes:[]};function M(r){r(P)}function y({value:r,onChange:o}){const c=r?.themes??[],f=c.length===0,t=D(r),[u,m]=d(!1),[p,h]=d(null),g=(e,n)=>{o({...t,themes:t.themes.map((l,R)=>R===e?n:l)})},b=G(t).accent,T=new Set(t.themes.map(e=>e.brandInk).filter(Boolean)),x=A.filter(e=>!T.has(e)).map(e=>B(b,e)),a=[...t.themes,...x],C=e=>{if(e<t.themes.length)return o({...t,selected:e});const n=[...t.themes,a[e]];o({...t,themes:n,selected:n.length-1})},E=()=>{const e=[...t.themes,{...F(t.themes[t.selected])}];o({...t,themes:e,selected:e.length-1}),h(e.length-1)};return i(_,{children:[f?null:s(w,{label:O,icon:S(I),labelId:"sf-theme-reset",action:s(k,{label:"all theme colors",changed:!0,onReset:()=>m(!0)})}),u&&s(v,{count:c.length,onCancel:()=>m(!1),onConfirm:()=>{m(!1),M(o)}}),s("div",{className:"sf-theme-list",role:"radiogroup","aria-label":"Theme",children:a.map((e,n)=>s(j,{index:n,colors:e,selected:n===t.selected,open:p===n&&n<t.themes.length,editable:n<t.themes.length,onPick:()=>C(n),onEdit:()=>h(l=>l===n?null:n),onChangeColors:l=>g(n,l)},n))}),i("button",{type:"button",onClick:E,className:"sf-theme-add",children:[s(N,{}),"Add new theme"]})]})}export{P as CLEARED_THEME,O as RESET_COLOUR_LABEL,M as commitClearedTheme,y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as o,jsxs as h}from"react/jsx-runtime";import{useId as f,useMemo as T}from"react";import{useEasel as I}from"efficient-easel/easel";import{SettingsField as k,SettingsSwitch as x}from"efficient-easel/panel";import{EyeIcon as b}from"efficient-easel/icons";import{DEFAULT_TICKER_ITEMS as E}from"./HeroSection.js";import{GroupLabel as S,TextListField as g,TICKER_ITEMS_ROW as a}from"../lib/puck/controls.js";const w="root:default-zone";function _({heroId:c}){const{appState:l,dispatch:p}=I(e=>e),n=l.data.content??[],r=n.findIndex(e=>e.props.id===c),t=r>=0?n[r]:null,d=t?t.props.showTicker??!0:!0,m=T(()=>{const e=t?.props.tickerItems;return Array.isArray(e)?e:E.map(u=>({text:u}))},[t]),s=f();if(!t)return o("p",{className:"sf-note",children:"This ticker’s hero is no longer on the page."});const i=e=>p({type:"replace",destinationZone:w,destinationIndex:r,data:{...t,props:{...t.props,...e}}});return h("div",{children:[o(S,{label:"Ticker"}),o(k,{label:"Show ticker",labelId:s,icon:o(b,{}),action:o(x,{checked:d,onChange:e=>i({showTicker:e}),ariaLabelledBy:s})}),o(g,{label:a.label,icon:a.icon,items:m,placeholder:"item",onChange:e=>i({tickerItems:e}),markup:!0})]})}export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,Fragment as v,jsxs as n}from"react/jsx-runtime";import{SiteLink as T}from"../lib/site-runtime.js";import{stripMarkup as C}from"../lib/markup.js";import F from"./Placeholder.js";import H from"./SectionEyebrow.js";import{renderGold as s,renderHeadline as N,splitParagraphs as L}from"./goldPhrases.js";function w({eyebrow:t,title:a,intro:i,center:r=!1}){return n(v,{children:[t&&e(H,{text:t,size:12}),a&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,76px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.94] tracking-[-0.03em] text-fg",children:N(a)}),i&&e("p",{className:["font-display text-[length:var(--size-body,14px)] leading-[1.6] text-fg-dim",r?"max-w-[520px]":"max-w-[360px]"].join(" "),children:s(i,!0)})]})}function z({cta:t,className:a=""}){return t?.text?n(T,{href:t.href,className:["group inline-flex items-center gap-3.5 border border-line px-5 py-4","font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg","transition-colors hover:border-accent hover:text-accent",a].join(" "),children:[s(t.text),e("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"
|
|
1
|
+
import{jsx as e,Fragment as v,jsxs as n}from"react/jsx-runtime";import{SiteLink as T}from"../lib/site-runtime.js";import{stripMarkup as C}from"../lib/markup.js";import F from"./Placeholder.js";import H from"./SectionEyebrow.js";import{renderGold as s,renderHeadline as N,splitParagraphs as L}from"./goldPhrases.js";function w({eyebrow:t,title:a,intro:i,center:r=!1}){return n(v,{children:[t&&e(H,{text:t,size:12}),a&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,76px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.94] tracking-[-0.03em] text-fg",children:N(a)}),i&&e("p",{className:["font-display text-[length:var(--size-body,14px)] leading-[1.6] text-fg-dim",r?"max-w-[520px]":"max-w-[360px]"].join(" "),children:s(i,!0)})]})}function z({cta:t,className:a=""}){return t?.text?n(T,{href:t.href,className:["group inline-flex items-center gap-3.5 border border-line px-5 py-4","font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg","transition-colors hover:border-accent hover:text-accent",a].join(" "),children:[s(t.text),e("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"→"})]}):null}function y({src:t,caption:a,meta:i,aspectClass:r,editing:p,sizes:m="100vw",className:c=""}){return!t&&!p?null:n("figure",{className:["relative overflow-hidden border border-line bg-surface",r,c].join(" "),children:[e(F,{label:a||"Image",src:t,alt:C(a??""),sizes:m}),e("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{background:"linear-gradient(180deg, transparent 55%, rgba(10,10,10,0.75) 100%)"}}),(a||i)&&n("figcaption",{className:"absolute inset-x-0 bottom-0 z-[1] flex items-center justify-between gap-3 px-4 py-3 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] text-overlay-fg/85",children:[e("span",{children:a?s(a):""}),i&&e("span",{className:"text-accent",children:s(i)})]})]})}function d({entry:t}){const a=L(t.body??"");return n(v,{children:[t.title&&e("h3",{className:"mb-3.5 font-heading3 text-[length:var(--size-headingSmall,24px)] font-medium uppercase tracking-[-0.02em] text-fg max-[800px]:text-[length:var(--size-headingSmall,20px)]",children:N(t.title)}),a.length>0&&e("div",{className:"space-y-3.5 font-display text-[length:var(--size-body,17px)] leading-[1.6] max-[800px]:text-[length:var(--size-body,16px)]",children:a.map((i,r)=>e("p",{className:r===0?"text-fg":"text-fg-dim",children:s(i,!0)},r))})]})}const k={boxShadow:"0 0 0 4px var(--bg)"};function E({layout:t="split",eyebrow:a,title:i,intro:r,imageSrc:p,imageCaption:m,imageMeta:c,cta:g,entries:j,padTop:f,padBottom:h,editing:u}={}){const _=typeof f=="number"?f:120,S=typeof h=="number"?h:120,o=(j??[]).filter(l=>(l.date??"").trim()||(l.title??"").trim()||(l.body??"").trim());return e("section",{className:"relative z-[2] bg-bg",children:e("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:{paddingTop:_,paddingBottom:S},children:t==="split"?n("div",{className:"grid grid-cols-[1fr_1.4fr] gap-20 max-[1100px]:grid-cols-1 max-[1100px]:gap-12",children:[n("aside",{className:"sticky top-[120px] flex flex-col gap-6 self-start max-[1100px]:static",children:[e(w,{eyebrow:a,title:i,intro:r}),e(y,{src:p,caption:m,meta:c,aspectClass:"mt-1 aspect-[4/5]",sizes:"(max-width: 1100px) 100vw, 420px",editing:u}),e(z,{cta:g,className:"mt-2 self-start"})]}),e("ol",{className:"flex flex-col gap-12",children:o.map((l,x)=>n("li",{className:"grid grid-cols-[80px_1fr] items-start gap-6 max-[700px]:grid-cols-1 max-[700px]:gap-2",children:[e("span",{className:"pt-1.5 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:"max-w-[640px]",children:e(d,{entry:l})})]},x))})]}):n("div",{children:[n("header",{className:"mx-auto flex max-w-[760px] flex-col items-center gap-6 text-center",children:[e(w,{eyebrow:a,title:i,intro:r,center:!0}),e(z,{cta:g})]}),e(y,{src:p,caption:m,meta:c,aspectClass:"mx-auto mt-12 aspect-[16/9] w-full max-w-[900px]",sizes:"(max-width: 900px) 100vw, 900px",editing:u}),t==="spine"?e("ol",{className:"relative mx-auto mt-16 max-w-[760px]",children:o.map((l,x)=>n("li",{className:"relative border-l border-line pb-12 pl-10 last:pb-0 max-[700px]:pl-8",children:[e("span",{className:"absolute left-[-5px] top-1.5 h-2.5 w-2.5 rounded-full bg-accent",style:k}),e("div",{className:"mb-2 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:"max-w-[640px]",children:e(d,{entry:l})})]},x))}):n("ol",{className:"relative mx-auto mt-16 max-w-[1000px]",children:[e("span",{"aria-hidden":!0,className:"pointer-events-none absolute top-0 h-full w-px bg-line left-[7px] min-[801px]:left-1/2 min-[801px]:-translate-x-1/2"}),o.map((l,x)=>{const b=x%2===0;return n("li",{className:"relative mb-14 pl-8 last:mb-0 min-[801px]:grid min-[801px]:grid-cols-2 min-[801px]:gap-16 min-[801px]:pl-0",children:[e("span",{className:"absolute top-1.5 h-2.5 w-2.5 rounded-full bg-accent left-[2px] min-[801px]:left-1/2 min-[801px]:-translate-x-1/2",style:k}),n("div",{className:b?"min-[801px]:col-start-1 min-[801px]:pr-8 min-[801px]:text-right":"min-[801px]:col-start-2 min-[801px]:pl-8",children:[e("div",{className:"mb-2 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:["max-w-[520px] max-[800px]:max-w-none",b?"min-[801px]:ml-auto":""].join(" "),children:e(d,{entry:l})})]})]},x)})]})]})})})}export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t,jsxs as a}from"react/jsx-runtime";import{SiteLink as w}from"../lib/site-runtime.js";import z from"./EditorialSectionHead.js";import c from"./PartStyledText.js";import{withRMark as l}from"./RMark.js";import{renderGold as f,renderHeadline as S}from"./goldPhrases.js";function B({eyebrow:g,title:o,intro:p,entries:u,cta:n,padTop:x,padBottom:s,background:b,editing:h,omitHead:d=!1}={}){const v=typeof x=="number"?x:120,N=typeof s=="number"?s:120,m=b??"var(--section-bg)",y=m!=="transparent",r=(u??[]).filter(e=>(e.date??"").trim()||(e.title??"").trim()||(e.blurb??"").trim());if(r.length===0&&!h)return null;const j=r.filter(e=>!e.future).length,k=r.length?j/r.length*100:0;return t("section",{className:"relative z-[2]",children:a("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:{paddingTop:v,paddingBottom:N,...y?{backgroundColor:m}:{}},children:[d?null:t(z,{num:g,title:o?S(o):void 0,desc:p?f(p,!0):void 0,spaceBelow:"",className:"text-fg"}),a("div",{className:d?"relative mt-0 grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-0 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0":"relative mt-[60px] grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-9 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0",style:{"--cols":r.length},children:[t("div",{className:"pointer-events-none absolute inset-x-0 top-0 h-px bg-line max-[1100px]:hidden",children:t("div",{className:"absolute -top-px left-0 h-[3px] bg-gradient-to-r from-accent to-transparent",style:{width:`${k}%`}})}),r.map((e,i)=>a("div",{className:["relative flex min-h-[280px] flex-col gap-3.5 px-3.5","border-l",e.future?"border-line":"max-[1100px]:border-accent border-line",i===0?"min-[1101px]:border-l-0":"","max-[1100px]:min-h-0 max-[1100px]:border-t-0 max-[1100px]:py-6 max-[1100px]:pl-7 max-[1100px]:ml-1.5"].join(" "),children:[t("span",{className:["pointer-events-none absolute h-2.5 w-2.5 rounded-full border-2 border-bg",e.future?"border-line bg-surface-2":"bg-accent",i===0?"-top-[66px] left-[-1px]":"-top-[66px] left-[-5px]","max-[1100px]:left-[-5px] max-[1100px]:top-7"].join(" ")}),t("span",{className:["font-mono text-[length:var(--size-label,13px)] tracking-[0.22em]",e.future?"text-fg-dim":"text-accent"].join(" "),children:e.date?t(c,{value:e.date,children:l(e.date)}):""}),e.title&&t("h3",{className:"whitespace-pre-line font-heading3 text-[length:var(--size-headingSmall,20px)] font-medium uppercase leading-[1.1] tracking-[-0.02em] text-fg",children:t(c,{value:e.title,children:l(e.title)})}),e.blurb&&t("p",{className:"mt-auto font-display text-[length:var(--size-body,13px)] leading-[1.55] text-fg-dim",children:f(e.blurb,!0)})]},i))]}),n?.text&&t("div",{className:"mt-12 flex justify-end border-t border-line pt-8",children:a(w,{href:n.href,className:"group inline-flex items-center gap-3.5 border border-line px-6 py-4 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[l(n.text),t("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"
|
|
1
|
+
import{jsx as t,jsxs as a}from"react/jsx-runtime";import{SiteLink as w}from"../lib/site-runtime.js";import z from"./EditorialSectionHead.js";import c from"./PartStyledText.js";import{withRMark as l}from"./RMark.js";import{renderGold as f,renderHeadline as S}from"./goldPhrases.js";function B({eyebrow:g,title:o,intro:p,entries:u,cta:n,padTop:x,padBottom:s,background:b,editing:h,omitHead:d=!1}={}){const v=typeof x=="number"?x:120,N=typeof s=="number"?s:120,m=b??"var(--section-bg)",y=m!=="transparent",r=(u??[]).filter(e=>(e.date??"").trim()||(e.title??"").trim()||(e.blurb??"").trim());if(r.length===0&&!h)return null;const j=r.filter(e=>!e.future).length,k=r.length?j/r.length*100:0;return t("section",{className:"relative z-[2]",children:a("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:{paddingTop:v,paddingBottom:N,...y?{backgroundColor:m}:{}},children:[d?null:t(z,{num:g,title:o?S(o):void 0,desc:p?f(p,!0):void 0,spaceBelow:"",className:"text-fg"}),a("div",{className:d?"relative mt-0 grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-0 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0":"relative mt-[60px] grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-9 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0",style:{"--cols":r.length},children:[t("div",{className:"pointer-events-none absolute inset-x-0 top-0 h-px bg-line max-[1100px]:hidden",children:t("div",{className:"absolute -top-px left-0 h-[3px] bg-gradient-to-r from-accent to-transparent",style:{width:`${k}%`}})}),r.map((e,i)=>a("div",{className:["relative flex min-h-[280px] flex-col gap-3.5 px-3.5","border-l",e.future?"border-line":"max-[1100px]:border-accent border-line",i===0?"min-[1101px]:border-l-0":"","max-[1100px]:min-h-0 max-[1100px]:border-t-0 max-[1100px]:py-6 max-[1100px]:pl-7 max-[1100px]:ml-1.5"].join(" "),children:[t("span",{className:["pointer-events-none absolute h-2.5 w-2.5 rounded-full border-2 border-bg",e.future?"border-line bg-surface-2":"bg-accent",i===0?"-top-[66px] left-[-1px]":"-top-[66px] left-[-5px]","max-[1100px]:left-[-5px] max-[1100px]:top-7"].join(" ")}),t("span",{className:["font-mono text-[length:var(--size-label,13px)] tracking-[0.22em]",e.future?"text-fg-dim":"text-accent"].join(" "),children:e.date?t(c,{value:e.date,children:l(e.date)}):""}),e.title&&t("h3",{className:"whitespace-pre-line font-heading3 text-[length:var(--size-headingSmall,20px)] font-medium uppercase leading-[1.1] tracking-[-0.02em] text-fg",children:t(c,{value:e.title,children:l(e.title)})}),e.blurb&&t("p",{className:"mt-auto font-display text-[length:var(--size-body,13px)] leading-[1.55] text-fg-dim",children:f(e.blurb,!0)})]},i))]}),n?.text&&t("div",{className:"mt-12 flex justify-end border-t border-line pt-8",children:a(w,{href:n.href,className:"group inline-flex items-center gap-3.5 border border-line px-6 py-4 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[l(n.text),t("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"→"})]})})]})})}export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t,jsxs as l}from"react/jsx-runtime";import{SiteLink as b}from"../lib/site-runtime.js";import{renderHeadline as v}from"./goldPhrases.js";function w({title:s,buttons:m,padTop:x,padBottom:o,buttonsAlign:a,editing:p=!1}={}){const d=typeof x=="number"?x:140,c=typeof o=="number"?o:140,r=(m??[]).filter(e=>p||(e.label??"").trim()),i=!!(s??"").trim(),n=!i&&(a==="center"||a==="left")?a:null;return!p&&!i&&r.length===0?null:t("section",{className:"relative z-[2] bg-bg",children:l("div",{className:n==="center"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":n==="left"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-start gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[1fr_auto] items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:grid-cols-1 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",style:{paddingTop:d,paddingBottom:c},children:[n===null&&!i&&r.length>0&&t("div",{"aria-hidden":!0,className:"max-[1100px]:hidden"}),i&&t("h2",{className:"max-w-[1000px] font-display text-[length:min(var(--size-headingLarge,clamp(48px,7vw,108px)),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-[0.94] tracking-[-0.035em] text-fg",children:v(s??"")}),r.length>0&&t("div",{className:"flex min-w-[280px] flex-col gap-3.5 max-[1100px]:min-w-0",children:r.map((e,f)=>{const g=(e.label??"").trim()||"Button label",h=e.href||"#",u=e.variant==="primary";return l(b,{href:h,className:["flex items-center justify-between gap-6 px-7 py-5","font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.3em] transition-colors",u?"border border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg":"border border-line text-fg hover:border-accent hover:text-accent"].join(" "),children:[g," ",t("span",{"aria-hidden":!0,children:"
|
|
1
|
+
import{jsx as t,jsxs as l}from"react/jsx-runtime";import{SiteLink as b}from"../lib/site-runtime.js";import{renderHeadline as v}from"./goldPhrases.js";function w({title:s,buttons:m,padTop:x,padBottom:o,buttonsAlign:a,editing:p=!1}={}){const d=typeof x=="number"?x:140,c=typeof o=="number"?o:140,r=(m??[]).filter(e=>p||(e.label??"").trim()),i=!!(s??"").trim(),n=!i&&(a==="center"||a==="left")?a:null;return!p&&!i&&r.length===0?null:t("section",{className:"relative z-[2] bg-bg",children:l("div",{className:n==="center"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":n==="left"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-start gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[1fr_auto] items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:grid-cols-1 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",style:{paddingTop:d,paddingBottom:c},children:[n===null&&!i&&r.length>0&&t("div",{"aria-hidden":!0,className:"max-[1100px]:hidden"}),i&&t("h2",{className:"max-w-[1000px] font-display text-[length:min(var(--size-headingLarge,clamp(48px,7vw,108px)),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-[0.94] tracking-[-0.035em] text-fg",children:v(s??"")}),r.length>0&&t("div",{className:"flex min-w-[280px] flex-col gap-3.5 max-[1100px]:min-w-0",children:r.map((e,f)=>{const g=(e.label??"").trim()||"Button label",h=e.href||"#",u=e.variant==="primary";return l(b,{href:h,className:["flex items-center justify-between gap-6 px-7 py-5","font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.3em] transition-colors",u?"border border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg":"border border-line text-fg hover:border-accent hover:text-accent"].join(" "),children:[g," ",t("span",{"aria-hidden":!0,children:"→"})]},f)})})]})})}export{w as default};
|