@riverbankcms/sdk 0.79.0 → 0.80.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/dist/PreviewEditorSidebar-QZG37QIF.mjs +2655 -0
- package/dist/{PreviewEditorUI-27KJVEET.mjs → PreviewEditorUI-AXIKSMZA.mjs} +27 -4
- package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +20 -0
- package/dist/_dts/api/src/endpoints.d.ts +24 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
- package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +10 -1
- package/dist/_dts/block-form/src/client/index.d.ts +2 -0
- package/dist/_dts/block-form/src/index.d.ts +2 -0
- package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
- package/dist/_dts/blocks/src/client/header.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +12 -12
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -1
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +21 -12
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -2
- package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +1 -0
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -0
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -7
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -6
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +2 -6
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -6
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +2 -6
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +6 -4
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -6
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
- package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +34 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +56 -0
- package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +6 -3
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
- package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
- package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
- package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
- package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +105 -0
- package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +156 -18
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +446 -52
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +110 -1
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +286 -6
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +2 -8
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -7
- package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
- package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +7 -29
- package/dist/{PreviewEditorSidebar-56NMJMIK.mjs → chunk-5NZGBSJF.mjs} +1423 -2451
- package/dist/{chunk-4HCW7FHJ.mjs → chunk-7PCYG6YV.mjs} +215 -137
- package/dist/{chunk-K2IIF34C.mjs → chunk-BBLZSQEY.mjs} +24 -0
- package/dist/{chunk-V47ZU33I.mjs → chunk-GYXKAUFV.mjs} +2785 -785
- package/dist/{chunk-GP555I66.mjs → chunk-HTB4BMKD.mjs} +94 -46
- package/dist/{chunk-A3HHFKVT.mjs → chunk-MPBNEVPB.mjs} +1 -1
- package/dist/cli/index.mjs +2100 -545
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +16 -4
- package/dist/client/{accordion-QLA7KBYO.mjs → accordion-QFZMNB7O.mjs} +1 -1
- package/dist/client/{bookingForm-PYZIPA5G.mjs → bookingForm-NCIXFWIG.mjs} +3 -3
- package/dist/client/bookings.mjs +1144 -329
- package/dist/client/{carousel-5EIULWBI.mjs → carousel-EO4BJMWD.mjs} +2 -2
- package/dist/client/{cart-DOP3FNI4.mjs → cart-FTYCLYUW.mjs} +5 -5
- package/dist/client/{checkout-BVMF6FBV.mjs → checkout-NFGLVCOX.mjs} +5 -5
- package/dist/client/{chunk-TYONZMST.mjs → chunk-4W66ALYT.mjs} +1 -1
- package/dist/client/{chunk-44K2U3QI.mjs → chunk-6GVVWSPU.mjs} +4 -4
- package/dist/client/{chunk-UDS3NTWA.mjs → chunk-IWFZSQNZ.mjs} +1 -1
- package/dist/client/{chunk-R5ESWNKX.mjs → chunk-PUOELU4O.mjs} +89 -5
- package/dist/client/{chunk-YLDYVRZL.mjs → chunk-PYRBIURC.mjs} +4 -4
- package/dist/client/{chunk-GG4M2NP6.mjs → chunk-T6UIP6UZ.mjs} +1 -1
- package/dist/client/{chunk-V6M5FCR5.mjs → chunk-VDS5YFLX.mjs} +1 -1
- package/dist/client/{chunk-CCNTDRCF.mjs → chunk-Y37KDO7P.mjs} +1 -1
- package/dist/client/client.mjs +4205 -2324
- package/dist/client/{courseRegistration-E6EAA6NL.mjs → courseRegistration-2EORROPS.mjs} +3 -3
- package/dist/client/{eventCalendar-HBG3HAK6.mjs → eventCalendar-WZI4VL6N.mjs} +5 -5
- package/dist/client/{eventCombined-6K5ZZWAK.mjs → eventCombined-QCB2TCNL.mjs} +5 -5
- package/dist/client/{eventDetails-Q75ICXLT.mjs → eventDetails-TFTATAPH.mjs} +5 -5
- package/dist/client/{eventListing-27P5F7DZ.mjs → eventListing-A2CQEHEQ.mjs} +5 -5
- package/dist/client/{eventRegistration-IQ7AMASR.mjs → eventRegistration-OELPVLUY.mjs} +5 -5
- package/dist/client/{form-JRTD65FN.mjs → form-NTIFD6WQ.mjs} +1 -1
- package/dist/client/{headerSection-7FPSSZHS.mjs → headerSection-7TBNKCLA.mjs} +65 -24
- package/dist/client/hooks.mjs +3354 -2006
- package/dist/client/{locationMap-7NGFNYBH.mjs → locationMap-LRLB5A3H.mjs} +1 -1
- package/dist/client/{newsletterForm-F3BADCI2.mjs → newsletterForm-XI52RZSN.mjs} +1 -1
- package/dist/client/{productDetail-V3HP7ITJ.mjs → productDetail-GSNKBFLY.mjs} +5 -5
- package/dist/client/{productList-L3EGJUF2.mjs → productList-BGCGT4KZ.mjs} +5 -5
- package/dist/client/rendering/client.mjs +2570 -1657
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +4275 -2394
- package/dist/client/{shop-DQUB5E2C.mjs → shop-RQHUCLNY.mjs} +5 -5
- package/dist/preview-next/before-render.mjs +24 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +24 -0
- package/dist/{sdk-runtime-AF6KXJU4.mjs → sdk-runtime-A4LHT2RS.mjs} +6 -6
- package/dist/server/components.mjs +4063 -2293
- package/dist/server/config-validation.mjs +3525 -2176
- package/dist/server/config.mjs +3525 -2176
- package/dist/server/data.mjs +3354 -2006
- package/dist/server/index.mjs +25 -1
- package/dist/server/next.mjs +4006 -2236
- package/dist/server/page-converter.mjs +2747 -1816
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4063 -2293
- package/dist/server/rendering.mjs +4063 -2293
- package/dist/server/routing.mjs +3508 -2111
- package/dist/server/server.mjs +3372 -2024
- package/dist/server/theme-bridge.mjs +1436 -310
- package/dist/server/theme.mjs +409 -219
- package/dist/styles/index.css +300 -33
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +0 -8
- package/dist/chunk-LCY32PXF.mjs +0 -1175
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useOptionalPreviewLayout, PreviewQueryProvider } from './chunk-
|
|
3
|
-
import { PreviewThemeOverlayProvider, PreviewDesignCoordinatorProvider, resolveSiteStyleAccess, usePreviewDesignCoordinator, createOptimisticActionRunner, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, syncStyleConfiguratorState, buildSiteChromeLookModels, planSiteStylePreviewChange, markApplyFailed, markApplySaved, markApplySaving, previewHeaderStyle, previewHeaderLayout, previewFooterLook, cycleSiteChromeLookId, usePreviewThemeOverlay, resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSetupBannerModel, planSiteChromeLookSelection, sanitizeDashboardPath } from './chunk-
|
|
4
|
-
import { resolvePreviewChromeSurface, getPreviewSidebarTab, onPreviewSidebarOpenRequest, getPreviewChromeSurfaceDataProps, PREVIEW_CHROME_THEME_CLASS_NAME, setPreviewSidebarTab, PreviewPageDesignEditorStateProvider, usePreviewPageDesignEditorState, PREVIEW_SURFACE_PARAM } from './chunk-
|
|
5
|
-
import { clientComponentRegistry, deriveLaunchReadiness, DEFAULT_LAUNCH_READINESS_INPUT, useEditorUiStore, ResizableSplitPane, BlockApiProvider, EditorProvider, MediaEditorProvider, getCuratedSiteStyle, useEditor, createRoutingHelpers, createSnapshotFromPageRecord, EntryControllerProvider, useEntryEditorController, useEditorUiStoreInstance, surfaceResolutionContextFromTheme, unsafeAsEditorBlockId, EditableBlockProvider, asDesignBlockId, PageRenderer, planSiteDocument, ThemeScope, FixedBottomSurface, Button, unwrapResponse, X, ChevronLeft, ChevronRight, RotateCcw, parseBackgroundOverrideFromContent, rankBackgroundImagePoolItems, imagePoolForOverride, resolveBackgroundCapability, enabledBackgroundModes, PreviewRichTextEditor, RichText, PreviewTextEditor, Text, buildThemeRuntime, renderBlock, siteHeaderManifest, siteFooterManifest, SiteDocumentLayout, SITE_CHROME_CLASS_NAMES, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, buildEditorModelRuntimeFieldsByBlockId, applyCompiledRuntimeFieldsToContent, assertNever2, getBlockDefinition, systemCustomizeFacetDefinitionsForBlock, systemCustomizeFacetAppliesToLayoutVariant, systemCustomizeFacetCurrentValue, systemCustomizeFacetLabelForValue, Image, useMediaEditorOptional, defaultBackgroundOverrideForMode, Upload, MediaEditor, visibleHeaderClearancePx, systemCustomizeFacetNextValue, GRADIENT_PRESETS,
|
|
6
|
-
import { API_ENDPOINTS, createBearerAPIClient, isPreviewRuntimeSessionEditable, DEFAULT_SURFACE_ID, initPreviewAuth, usePreviewAuth, usePreviewAuthFetch, markPreviewAuthExpired, usePreviewToken, parseSurfaceId } from './chunk-
|
|
2
|
+
import { useOptionalPreviewLayout, PreviewQueryProvider } from './chunk-MPBNEVPB.mjs';
|
|
3
|
+
import { PreviewThemeOverlayProvider, PreviewDesignCoordinatorProvider, PreviewBlockCustomizeSelectionProvider, resolveSiteStyleAccess, usePreviewDesignCoordinator, createOptimisticActionRunner, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, syncStyleConfiguratorState, buildSiteChromeLookModels, planSiteStylePreviewChange, markApplyFailed, markApplySaved, markApplySaving, previewHeaderStyle, previewHeaderLayout, previewFooterLook, cycleSiteChromeLookId, usePreviewThemeOverlay, resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSetupBannerModel, planSiteChromeLookSelection, usePreviewBlockCustomizeSelectionOptional, useBlockCustomizeControls, MAX_CUSTOMIZE_POPOVER_ROWS, MAX_QUICK_MANIFEST_FIELDS, sanitizeDashboardPath } from './chunk-5NZGBSJF.mjs';
|
|
4
|
+
import { resolvePreviewChromeSurface, getPreviewSidebarTab, onPreviewSidebarOpenRequest, getPreviewChromeSurfaceDataProps, PREVIEW_CHROME_THEME_CLASS_NAME, setPreviewSidebarTab, PreviewPageDesignEditorStateProvider, usePreviewPageDesignEditorState, PREVIEW_SURFACE_PARAM } from './chunk-HTB4BMKD.mjs';
|
|
5
|
+
import { clientComponentRegistry, deriveLaunchReadiness, DEFAULT_LAUNCH_READINESS_INPUT, useEditorUiStore, ResizableSplitPane, BlockApiProvider, EditorProvider, MediaEditorProvider, getCuratedSiteStyle, useEditor, createRoutingHelpers, createSnapshotFromPageRecord, EntryControllerProvider, useEntryEditorController, useEditorUiStoreInstance, surfaceResolutionContextFromTheme, unsafeAsEditorBlockId, EditableBlockProvider, asDesignBlockId, PageRenderer, planSiteDocument, ThemeScope, FixedBottomSurface, Button, unwrapResponse, X, ChevronLeft, ChevronRight, RotateCcw, parseBackgroundOverrideFromContent, rankBackgroundImagePoolItems, imagePoolForOverride, resolveBackgroundCapability, enabledBackgroundModes, FormRenderer, PreviewRichTextEditor, RichText, PreviewTextEditor, Text, buildThemeRuntime, renderBlock, siteHeaderManifest, siteFooterManifest, SiteDocumentLayout, SITE_CHROME_CLASS_NAMES, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, buildEditorModelRuntimeFieldsByBlockId, applyCompiledRuntimeFieldsToContent, assertNever2, getBlockDefinition, systemCustomizeFacetDefinitionsForBlock, systemCustomizeFacetAppliesToLayoutVariant, systemCustomizeFacetCurrentValue, systemCustomizeFacetLabelForValue, backgroundColorTokens, Image, useMediaEditorOptional, defaultBackgroundOverrideForMode, Upload, MediaEditor, visibleHeaderClearancePx, systemCustomizeFacetNextValue, planBackgroundTransition, GRADIENT_PRESETS, gradientToCss, parseMediaAssetId, planBackgroundOverride, EDITABLE_SURFACE_FORWARDING_PROP, assertNever, SITE_CHROME_VISIBLE_HEADER_SELECTOR } from './chunk-GYXKAUFV.mjs';
|
|
6
|
+
import { API_ENDPOINTS, createBearerAPIClient, isPreviewRuntimeSessionEditable, DEFAULT_SURFACE_ID, initPreviewAuth, usePreviewAuth, usePreviewAuthFetch, markPreviewAuthExpired, usePreviewToken, parseSurfaceId } from './chunk-BBLZSQEY.mjs';
|
|
7
7
|
import React9, { createContext, useMemo, useState, useEffect, useRef, useCallback, useId, useReducer, Children, isValidElement, Fragment as Fragment$1, cloneElement, useContext } from 'react';
|
|
8
8
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
9
|
|
|
@@ -613,17 +613,28 @@ function BlockToolbar({
|
|
|
613
613
|
blockId,
|
|
614
614
|
blockKind,
|
|
615
615
|
content,
|
|
616
|
+
theme = null,
|
|
616
617
|
headerClearancePx = 0
|
|
617
618
|
}) {
|
|
618
619
|
const uiStore = useEditorUiStoreInstance();
|
|
620
|
+
const editorBlockId = useMemo(() => unsafeAsEditorBlockId(blockId), [blockId]);
|
|
621
|
+
const draftContent = useEditorUiStore(
|
|
622
|
+
(state) => state.drafts.getCurrentValues(editorBlockId)
|
|
623
|
+
);
|
|
624
|
+
const customizeContent = useMemo(
|
|
625
|
+
() => isRecord3(draftContent) ? draftContent : content,
|
|
626
|
+
[content, draftContent]
|
|
627
|
+
);
|
|
628
|
+
const customizeSelection = usePreviewBlockCustomizeSelectionOptional();
|
|
619
629
|
const customizePanelId = useId();
|
|
620
630
|
const customizeDescriptionId = `${customizePanelId}-description`;
|
|
621
631
|
const focusTarget = useMemo(
|
|
622
|
-
() => computeDefaultFocus(blockKind,
|
|
623
|
-
[blockKind,
|
|
632
|
+
() => computeDefaultFocus(blockKind, customizeContent),
|
|
633
|
+
[blockKind, customizeContent]
|
|
624
634
|
);
|
|
625
635
|
const [customizeOpen, setCustomizeOpen] = useState(false);
|
|
626
636
|
const [backgroundChooserOpen, setBackgroundChooserOpen] = useState(false);
|
|
637
|
+
const [backgroundColorPalette, setBackgroundColorPalette] = useState(null);
|
|
627
638
|
const customizeButtonRef = useRef(null);
|
|
628
639
|
const {
|
|
629
640
|
state: pageDesignState,
|
|
@@ -662,13 +673,13 @@ function BlockToolbar({
|
|
|
662
673
|
designBlock && designBlock.availableLooks.length > 1
|
|
663
674
|
);
|
|
664
675
|
const facetControls = useMemo(
|
|
665
|
-
() => previewCustomizeFacetControlsFor(blockKind,
|
|
666
|
-
[blockKind,
|
|
676
|
+
() => previewCustomizeFacetControlsFor(blockKind, customizeContent, designBlock),
|
|
677
|
+
[blockKind, customizeContent, designBlock]
|
|
667
678
|
);
|
|
668
679
|
const hasFacetControls = facetControls.length > 0;
|
|
669
680
|
const currentBackground = useMemo(
|
|
670
|
-
() => parseBackgroundOverrideFromContent(
|
|
671
|
-
[
|
|
681
|
+
() => parseBackgroundOverrideFromContent(customizeContent),
|
|
682
|
+
[customizeContent]
|
|
672
683
|
);
|
|
673
684
|
const mergedBackgroundImagePool = useMemo(
|
|
674
685
|
() => rankBackgroundImagePoolItems(
|
|
@@ -682,16 +693,37 @@ function BlockToolbar({
|
|
|
682
693
|
const backgroundCapability = useMemo(
|
|
683
694
|
() => designBlock ? resolveBackgroundCapability({
|
|
684
695
|
block: designBlock,
|
|
685
|
-
imagePool: mergedBackgroundImagePool
|
|
696
|
+
imagePool: mergedBackgroundImagePool,
|
|
697
|
+
palette: backgroundColorPalette
|
|
686
698
|
}) : null,
|
|
687
|
-
[designBlock, mergedBackgroundImagePool]
|
|
699
|
+
[backgroundColorPalette, designBlock, mergedBackgroundImagePool]
|
|
688
700
|
);
|
|
689
701
|
const enabledBackgroundModeList = useMemo(
|
|
690
702
|
() => backgroundCapability ? enabledBackgroundModes(backgroundCapability) : [],
|
|
691
703
|
[backgroundCapability]
|
|
692
704
|
);
|
|
693
705
|
const hasBackgroundControls = currentBackground.kind === "supported" && enabledBackgroundModeList.length > 1;
|
|
694
|
-
const
|
|
706
|
+
const builtInCustomizeRowCount = (hasLayoutControls ? 1 : 0) + facetControls.length + (hasBackgroundControls ? 1 : 0) + (hasLookControls ? 1 : 0);
|
|
707
|
+
const manifestCustomize = useBlockCustomizeControls({
|
|
708
|
+
blockId,
|
|
709
|
+
blockKind,
|
|
710
|
+
content: customizeContent,
|
|
711
|
+
uiStore,
|
|
712
|
+
theme,
|
|
713
|
+
maxQuickFields: MAX_QUICK_MANIFEST_FIELDS,
|
|
714
|
+
maxPopoverRows: MAX_CUSTOMIZE_POPOVER_ROWS,
|
|
715
|
+
builtInPopoverRows: builtInCustomizeRowCount
|
|
716
|
+
});
|
|
717
|
+
const quickManifestFields = manifestCustomize.quickFields;
|
|
718
|
+
const hasSidebarCustomizeControls = manifestCustomize.hasControls;
|
|
719
|
+
const hasOverflowCustomizeControls = manifestCustomize.hasOverflowControls;
|
|
720
|
+
const quickManifestBackend = manifestCustomize.backend;
|
|
721
|
+
const canCycleBackgroundMode = enabledBackgroundModeList.length > 1;
|
|
722
|
+
const canCycleBackgroundValue = currentBackground.kind === "supported" && backgroundCapability ? canCycleBackgroundOverrideValue(
|
|
723
|
+
currentBackground.override,
|
|
724
|
+
backgroundCapability
|
|
725
|
+
) : false;
|
|
726
|
+
const hasCustomizeControls = hasLayoutControls || hasLookControls || hasFacetControls || hasBackgroundControls || quickManifestFields.length > 0 || hasSidebarCustomizeControls;
|
|
695
727
|
const isSavingCustomize = isHistoryPending;
|
|
696
728
|
useEffect(() => {
|
|
697
729
|
if (!hasCustomizeControls) {
|
|
@@ -699,6 +731,10 @@ function BlockToolbar({
|
|
|
699
731
|
setBackgroundChooserOpen(false);
|
|
700
732
|
}
|
|
701
733
|
}, [hasCustomizeControls]);
|
|
734
|
+
useEffect(() => {
|
|
735
|
+
if (!customizeOpen) return;
|
|
736
|
+
setBackgroundColorPalette(readBackgroundColorPaletteSnapshot());
|
|
737
|
+
}, [customizeOpen, pageDesignState]);
|
|
702
738
|
useEffect(() => {
|
|
703
739
|
if (!customizeOpen || !backgroundCapability?.modes.includes("image")) {
|
|
704
740
|
return;
|
|
@@ -719,11 +755,23 @@ function BlockToolbar({
|
|
|
719
755
|
state.setPreviewSidebarTab("editor");
|
|
720
756
|
state.setDrawerOpen(true);
|
|
721
757
|
state.requestFocus({
|
|
722
|
-
blockId:
|
|
758
|
+
blockId: editorBlockId,
|
|
723
759
|
fieldPath: focusTarget.fieldPath,
|
|
724
760
|
itemIndex: focusTarget.itemIndex
|
|
725
761
|
});
|
|
726
762
|
};
|
|
763
|
+
const inspectBlock = useCallback(() => {
|
|
764
|
+
customizeSelection?.inspectBlock(unsafeAsEditorBlockId(blockId));
|
|
765
|
+
}, [blockId, customizeSelection]);
|
|
766
|
+
const openCustomizeSettings = useCallback((e) => {
|
|
767
|
+
e.preventDefault();
|
|
768
|
+
e.stopPropagation();
|
|
769
|
+
inspectBlock();
|
|
770
|
+
const state = uiStore.getState();
|
|
771
|
+
setPreviewSidebarTab("editor");
|
|
772
|
+
state.setPreviewSidebarTab("editor");
|
|
773
|
+
state.setDrawerOpen(true);
|
|
774
|
+
}, [inspectBlock, uiStore]);
|
|
727
775
|
const cycleLayout = (direction) => (e) => {
|
|
728
776
|
e.preventDefault();
|
|
729
777
|
e.stopPropagation();
|
|
@@ -768,7 +816,7 @@ function BlockToolbar({
|
|
|
768
816
|
const action = setPageDesignBlockBackground({
|
|
769
817
|
block: designBlock,
|
|
770
818
|
override,
|
|
771
|
-
currentContent:
|
|
819
|
+
currentContent: customizeContent,
|
|
772
820
|
imagePool: mergedBackgroundImagePool
|
|
773
821
|
});
|
|
774
822
|
if (!action) return;
|
|
@@ -788,19 +836,20 @@ function BlockToolbar({
|
|
|
788
836
|
const action = setPageDesignBlockBackground({
|
|
789
837
|
block: designBlock,
|
|
790
838
|
override: plan.override,
|
|
791
|
-
currentContent:
|
|
839
|
+
currentContent: customizeContent,
|
|
792
840
|
imagePool: mergedBackgroundImagePool
|
|
793
841
|
});
|
|
794
842
|
if (!action) return;
|
|
795
843
|
saveBlockCustomizeAction(action);
|
|
796
844
|
};
|
|
797
845
|
const saveBlockCustomizeAction = (action) => {
|
|
798
|
-
void applyPageDesignAction(action);
|
|
846
|
+
void applyPageDesignAction(action, { runtimeContent: customizeContent });
|
|
799
847
|
};
|
|
800
848
|
const toggleCustomize = (e) => {
|
|
801
849
|
e.preventDefault();
|
|
802
850
|
e.stopPropagation();
|
|
803
851
|
if (!customizeOpen) {
|
|
852
|
+
inspectBlock();
|
|
804
853
|
setCustomizeReturnFocusTarget(
|
|
805
854
|
e.currentTarget instanceof HTMLElement ? e.currentTarget : customizeButtonRef.current
|
|
806
855
|
);
|
|
@@ -836,7 +885,7 @@ function BlockToolbar({
|
|
|
836
885
|
children: "Edit"
|
|
837
886
|
}
|
|
838
887
|
),
|
|
839
|
-
customizeOpen && designBlock ? /* @__PURE__ */ jsxs(
|
|
888
|
+
customizeOpen && (designBlock || hasSidebarCustomizeControls) ? /* @__PURE__ */ jsxs(
|
|
840
889
|
"div",
|
|
841
890
|
{
|
|
842
891
|
id: customizePanelId,
|
|
@@ -877,7 +926,7 @@ function BlockToolbar({
|
|
|
877
926
|
)
|
|
878
927
|
] }),
|
|
879
928
|
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
880
|
-
designBlock
|
|
929
|
+
designBlock?.layout && hasLayoutControls ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
881
930
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
882
931
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium", children: "Layout" }),
|
|
883
932
|
/* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground", children: layoutLabel(
|
|
@@ -908,7 +957,7 @@ function BlockToolbar({
|
|
|
908
957
|
)
|
|
909
958
|
] })
|
|
910
959
|
] }) : null,
|
|
911
|
-
designBlock
|
|
960
|
+
designBlock?.layout?.status === "unsupported" ? /* @__PURE__ */ jsx("p", { className: "text-xs text-amber-700", children: "This layout is no longer available. The preview is using the closest safe option." }) : null,
|
|
912
961
|
facetControls.map((control) => /* @__PURE__ */ jsxs(
|
|
913
962
|
"div",
|
|
914
963
|
{
|
|
@@ -948,14 +997,63 @@ function BlockToolbar({
|
|
|
948
997
|
},
|
|
949
998
|
control.facetId
|
|
950
999
|
)),
|
|
951
|
-
hasBackgroundControls && currentBackground.kind === "supported" && backgroundCapability ? /* @__PURE__ */ jsxs("div", { children: [
|
|
952
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-
|
|
1000
|
+
hasBackgroundControls && currentBackground.kind === "supported" && backgroundCapability ? /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
1001
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-stretch overflow-hidden rounded-full border bg-background", children: [
|
|
1002
|
+
/* @__PURE__ */ jsx(
|
|
1003
|
+
"button",
|
|
1004
|
+
{
|
|
1005
|
+
type: "button",
|
|
1006
|
+
onClick: handleBackgroundCycle({
|
|
1007
|
+
kind: "cycle-mode",
|
|
1008
|
+
direction: "prev"
|
|
1009
|
+
}),
|
|
1010
|
+
className: "grid h-8 w-8 place-items-center hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",
|
|
1011
|
+
"aria-label": "Previous background mode",
|
|
1012
|
+
disabled: !canCycleBackgroundMode,
|
|
1013
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { size: 14 })
|
|
1014
|
+
}
|
|
1015
|
+
),
|
|
1016
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 border-x px-2 py-1 text-center", children: [
|
|
1017
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs font-medium leading-3 text-muted-foreground", children: "Background:" }),
|
|
1018
|
+
/* @__PURE__ */ jsx("div", { className: "truncate text-xs font-semibold leading-4", children: backgroundModeLabel(currentBackground.override.kind) })
|
|
1019
|
+
] }),
|
|
1020
|
+
/* @__PURE__ */ jsx(
|
|
1021
|
+
"button",
|
|
1022
|
+
{
|
|
1023
|
+
type: "button",
|
|
1024
|
+
onClick: handleBackgroundCycle({
|
|
1025
|
+
kind: "cycle-mode",
|
|
1026
|
+
direction: "next"
|
|
1027
|
+
}),
|
|
1028
|
+
className: "grid h-8 w-8 place-items-center hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",
|
|
1029
|
+
"aria-label": "Next background mode",
|
|
1030
|
+
disabled: !canCycleBackgroundMode,
|
|
1031
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { size: 14 })
|
|
1032
|
+
}
|
|
1033
|
+
)
|
|
1034
|
+
] }),
|
|
1035
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-stretch overflow-hidden rounded-full border bg-background", children: [
|
|
1036
|
+
/* @__PURE__ */ jsx(
|
|
1037
|
+
"button",
|
|
1038
|
+
{
|
|
1039
|
+
type: "button",
|
|
1040
|
+
onClick: handleBackgroundCycle({
|
|
1041
|
+
kind: "cycle-value",
|
|
1042
|
+
direction: "prev"
|
|
1043
|
+
}),
|
|
1044
|
+
className: "grid h-8 w-8 place-items-center hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",
|
|
1045
|
+
"aria-label": "Previous background value",
|
|
1046
|
+
disabled: !canCycleBackgroundValue,
|
|
1047
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { size: 14 })
|
|
1048
|
+
}
|
|
1049
|
+
),
|
|
953
1050
|
/* @__PURE__ */ jsxs(
|
|
954
1051
|
"button",
|
|
955
1052
|
{
|
|
956
1053
|
type: "button",
|
|
957
|
-
className: "flex min-w-0 items-center gap-2 text-
|
|
1054
|
+
className: "flex min-w-0 flex-1 items-center justify-center gap-2 border-x px-2 py-1 text-center hover:bg-muted",
|
|
958
1055
|
"aria-expanded": backgroundChooserOpen,
|
|
1056
|
+
"aria-label": `Choose background ${backgroundOverrideLabel(currentBackground.override).toLowerCase()}`,
|
|
959
1057
|
onClick: (event) => {
|
|
960
1058
|
event.preventDefault();
|
|
961
1059
|
event.stopPropagation();
|
|
@@ -963,73 +1061,27 @@ function BlockToolbar({
|
|
|
963
1061
|
},
|
|
964
1062
|
children: [
|
|
965
1063
|
/* @__PURE__ */ jsx(BackgroundPreviewSwatch, { override: currentBackground.override }),
|
|
966
|
-
/* @__PURE__ */
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1064
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-xs font-medium", children: backgroundOverrideValueLabel(
|
|
1065
|
+
currentBackground.override,
|
|
1066
|
+
mergedBackgroundImagePool
|
|
1067
|
+
) })
|
|
970
1068
|
]
|
|
971
1069
|
}
|
|
972
1070
|
),
|
|
973
|
-
/* @__PURE__ */
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
),
|
|
988
|
-
/* @__PURE__ */ jsx(
|
|
989
|
-
"button",
|
|
990
|
-
{
|
|
991
|
-
type: "button",
|
|
992
|
-
onClick: handleBackgroundCycle({
|
|
993
|
-
kind: "cycle-mode",
|
|
994
|
-
direction: "next"
|
|
995
|
-
}),
|
|
996
|
-
className: "grid h-8 w-8 place-items-center border-l hover:bg-muted",
|
|
997
|
-
"aria-label": "Next background mode",
|
|
998
|
-
children: /* @__PURE__ */ jsx(ChevronRight, { size: 14 })
|
|
999
|
-
}
|
|
1000
|
-
)
|
|
1001
|
-
] }),
|
|
1002
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center overflow-hidden rounded-full border bg-background", children: [
|
|
1003
|
-
/* @__PURE__ */ jsx(
|
|
1004
|
-
"button",
|
|
1005
|
-
{
|
|
1006
|
-
type: "button",
|
|
1007
|
-
onClick: handleBackgroundCycle({
|
|
1008
|
-
kind: "cycle-value",
|
|
1009
|
-
direction: "prev"
|
|
1010
|
-
}),
|
|
1011
|
-
className: "grid h-8 w-8 place-items-center hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",
|
|
1012
|
-
"aria-label": "Previous background value",
|
|
1013
|
-
disabled: currentBackground.override.kind === "default",
|
|
1014
|
-
children: /* @__PURE__ */ jsx(ChevronLeft, { size: 14 })
|
|
1015
|
-
}
|
|
1016
|
-
),
|
|
1017
|
-
/* @__PURE__ */ jsx(
|
|
1018
|
-
"button",
|
|
1019
|
-
{
|
|
1020
|
-
type: "button",
|
|
1021
|
-
onClick: handleBackgroundCycle({
|
|
1022
|
-
kind: "cycle-value",
|
|
1023
|
-
direction: "next"
|
|
1024
|
-
}),
|
|
1025
|
-
className: "grid h-8 w-8 place-items-center border-l hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",
|
|
1026
|
-
"aria-label": "Next background value",
|
|
1027
|
-
disabled: currentBackground.override.kind === "default",
|
|
1028
|
-
children: /* @__PURE__ */ jsx(ChevronRight, { size: 14 })
|
|
1029
|
-
}
|
|
1030
|
-
)
|
|
1031
|
-
] })
|
|
1032
|
-
] })
|
|
1071
|
+
/* @__PURE__ */ jsx(
|
|
1072
|
+
"button",
|
|
1073
|
+
{
|
|
1074
|
+
type: "button",
|
|
1075
|
+
onClick: handleBackgroundCycle({
|
|
1076
|
+
kind: "cycle-value",
|
|
1077
|
+
direction: "next"
|
|
1078
|
+
}),
|
|
1079
|
+
className: "grid h-8 w-8 place-items-center hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",
|
|
1080
|
+
"aria-label": "Next background value",
|
|
1081
|
+
disabled: !canCycleBackgroundValue,
|
|
1082
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { size: 14 })
|
|
1083
|
+
}
|
|
1084
|
+
)
|
|
1033
1085
|
] }),
|
|
1034
1086
|
backgroundChooserOpen ? /* @__PURE__ */ jsx(
|
|
1035
1087
|
BackgroundChooser,
|
|
@@ -1042,7 +1094,17 @@ function BlockToolbar({
|
|
|
1042
1094
|
}
|
|
1043
1095
|
) : null
|
|
1044
1096
|
] }) : null,
|
|
1045
|
-
|
|
1097
|
+
quickManifestFields.length > 0 && quickManifestBackend ? /* @__PURE__ */ jsx("div", { className: "border-t pt-3", children: /* @__PURE__ */ jsx(
|
|
1098
|
+
FormRenderer,
|
|
1099
|
+
{
|
|
1100
|
+
fields: quickManifestFields,
|
|
1101
|
+
backend: quickManifestBackend,
|
|
1102
|
+
showSettingsTrigger: false,
|
|
1103
|
+
blockKind,
|
|
1104
|
+
className: "space-y-3"
|
|
1105
|
+
}
|
|
1106
|
+
) }) : null,
|
|
1107
|
+
hasLookControls && designBlock ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
1046
1108
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1047
1109
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium", children: "Look" }),
|
|
1048
1110
|
/* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground", children: lookLabel(designBlock) })
|
|
@@ -1072,7 +1134,16 @@ function BlockToolbar({
|
|
|
1072
1134
|
)
|
|
1073
1135
|
] })
|
|
1074
1136
|
] }) : null,
|
|
1075
|
-
historyFailure ? /* @__PURE__ */ jsx("p", { className: "text-xs text-red-700", children: historyFailure }) : null
|
|
1137
|
+
historyFailure ? /* @__PURE__ */ jsx("p", { className: "text-xs text-red-700", children: historyFailure }) : null,
|
|
1138
|
+
hasOverflowCustomizeControls ? /* @__PURE__ */ jsx("div", { className: "border-t pt-2", children: /* @__PURE__ */ jsx(
|
|
1139
|
+
"button",
|
|
1140
|
+
{
|
|
1141
|
+
type: "button",
|
|
1142
|
+
className: "w-full rounded-md border bg-background px-3 py-2 text-sm font-medium hover:bg-muted",
|
|
1143
|
+
onClick: openCustomizeSettings,
|
|
1144
|
+
children: "Settings"
|
|
1145
|
+
}
|
|
1146
|
+
) }) : null
|
|
1076
1147
|
] })
|
|
1077
1148
|
]
|
|
1078
1149
|
}
|
|
@@ -1319,8 +1390,32 @@ function backgroundOverrideLabel(override) {
|
|
|
1319
1390
|
return "Image";
|
|
1320
1391
|
}
|
|
1321
1392
|
}
|
|
1393
|
+
function backgroundOverrideValueLabel(override, imagePool) {
|
|
1394
|
+
switch (override.kind) {
|
|
1395
|
+
case "default":
|
|
1396
|
+
return "Default";
|
|
1397
|
+
case "color":
|
|
1398
|
+
return formatTokenLabel(override.token);
|
|
1399
|
+
case "gradient":
|
|
1400
|
+
return gradientLabel(override.gradientId);
|
|
1401
|
+
case "image":
|
|
1402
|
+
return imagePool.find((item) => item.mediaId === override.mediaId)?.label ?? "Image";
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
function canCycleBackgroundOverrideValue(override, capability) {
|
|
1406
|
+
switch (override.kind) {
|
|
1407
|
+
case "default":
|
|
1408
|
+
return false;
|
|
1409
|
+
case "color":
|
|
1410
|
+
return (capability.colorTokens?.length ?? 0) > 1;
|
|
1411
|
+
case "gradient":
|
|
1412
|
+
return (capability.gradientIds?.length ?? 0) > 1;
|
|
1413
|
+
case "image":
|
|
1414
|
+
return rankBackgroundImagePoolItems(capability.imagePool ?? []).length > 1;
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1322
1417
|
function BackgroundPreviewSwatch({ override }) {
|
|
1323
|
-
const baseClassName = "grid h-
|
|
1418
|
+
const baseClassName = "grid h-6 w-9 shrink-0 place-items-center overflow-hidden rounded-md border";
|
|
1324
1419
|
switch (override.kind) {
|
|
1325
1420
|
case "default":
|
|
1326
1421
|
return /* @__PURE__ */ jsx("span", { className: `${baseClassName} bg-background`, children: /* @__PURE__ */ jsx("span", { className: "h-3 w-3 rounded-full border bg-muted" }) });
|
|
@@ -1367,9 +1462,27 @@ function tokenSwatchCss(token) {
|
|
|
1367
1462
|
}
|
|
1368
1463
|
function gradientPreviewCss(gradientId) {
|
|
1369
1464
|
const preset = GRADIENT_PRESETS.find((candidate) => candidate.id === gradientId);
|
|
1370
|
-
if (!preset)
|
|
1371
|
-
|
|
1372
|
-
|
|
1465
|
+
if (!preset) {
|
|
1466
|
+
return "linear-gradient(135deg, rgb(var(--tb-primary)), rgb(var(--tb-secondary)))";
|
|
1467
|
+
}
|
|
1468
|
+
return gradientToCss(
|
|
1469
|
+
preset,
|
|
1470
|
+
Object.fromEntries(
|
|
1471
|
+
preset.stops.map((stop) => [stop.color, tokenSwatchCss(stop.color)])
|
|
1472
|
+
)
|
|
1473
|
+
);
|
|
1474
|
+
}
|
|
1475
|
+
function readBackgroundColorPaletteSnapshot() {
|
|
1476
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
1477
|
+
return null;
|
|
1478
|
+
}
|
|
1479
|
+
const rootStyle = window.getComputedStyle(document.documentElement);
|
|
1480
|
+
const bodyStyle = document.body ? window.getComputedStyle(document.body) : null;
|
|
1481
|
+
const entries = backgroundColorTokens.flatMap((token) => {
|
|
1482
|
+
const value = rootStyle.getPropertyValue(`--tb-${token}`).trim() || bodyStyle?.getPropertyValue(`--tb-${token}`).trim() || "";
|
|
1483
|
+
return value ? [[token, value]] : [];
|
|
1484
|
+
});
|
|
1485
|
+
return entries.length > 0 ? Object.fromEntries(entries) : null;
|
|
1373
1486
|
}
|
|
1374
1487
|
function formatTokenLabel(token) {
|
|
1375
1488
|
return formatVariantLabel(token.replace(/\//g, " "));
|
|
@@ -1726,6 +1839,7 @@ function EditablePageRenderer(props) {
|
|
|
1726
1839
|
blockId,
|
|
1727
1840
|
blockKind: block.kind,
|
|
1728
1841
|
content,
|
|
1842
|
+
theme: props.theme,
|
|
1729
1843
|
headerClearancePx: shouldClearHeaderForBlock(blockItemsForRender, blockIndex) ? headerClearancePx : 0
|
|
1730
1844
|
}
|
|
1731
1845
|
)
|
|
@@ -3519,11 +3633,11 @@ function renderPreviewDocument({
|
|
|
3519
3633
|
}
|
|
3520
3634
|
var previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
|
|
3521
3635
|
var PreviewEditorSidebar = React9.lazy(async () => {
|
|
3522
|
-
const mod = await import('./PreviewEditorSidebar-
|
|
3636
|
+
const mod = await import('./PreviewEditorSidebar-QZG37QIF.mjs');
|
|
3523
3637
|
return { default: mod.PreviewEditorSidebar };
|
|
3524
3638
|
});
|
|
3525
3639
|
var PreviewEditorUI = React9.lazy(async () => {
|
|
3526
|
-
const mod = await import('./PreviewEditorUI-
|
|
3640
|
+
const mod = await import('./PreviewEditorUI-AXIKSMZA.mjs');
|
|
3527
3641
|
return { default: mod.PreviewEditorUI };
|
|
3528
3642
|
});
|
|
3529
3643
|
var previewPaneContainmentStyle = {
|
|
@@ -3836,43 +3950,7 @@ function PreviewShellLayout({
|
|
|
3836
3950
|
surfaceId
|
|
3837
3951
|
}
|
|
3838
3952
|
);
|
|
3839
|
-
|
|
3840
|
-
return /* @__PURE__ */ jsx(PreviewThemeOverlayProvider, { baseTheme: theme, children: /* @__PURE__ */ jsx(PreviewDesignCoordinatorProvider, { children: /* @__PURE__ */ jsxs(
|
|
3841
|
-
SiteChromeCustomizeProvider,
|
|
3842
|
-
{
|
|
3843
|
-
siteId,
|
|
3844
|
-
apiClient,
|
|
3845
|
-
theme,
|
|
3846
|
-
themeId,
|
|
3847
|
-
selectionId: themeSelectionId,
|
|
3848
|
-
selectionVersion: themeSelectionVersion,
|
|
3849
|
-
selectionUpdatedAt: themeSelectionUpdatedAt,
|
|
3850
|
-
initialSelections: {
|
|
3851
|
-
selectionVersion: themeSelectionVersion,
|
|
3852
|
-
selectionUpdatedAt: themeSelectionUpdatedAt,
|
|
3853
|
-
buttonPersonalityId: themeSelectionButtonPersonalityId,
|
|
3854
|
-
paletteVariantId: themeSelectionPaletteVariantId,
|
|
3855
|
-
paletteOverrides: themeSelectionPaletteOverrides,
|
|
3856
|
-
headerLayoutId: themeSelectionHeaderLayoutId,
|
|
3857
|
-
headerStyleId: themeSelectionHeaderStyleId,
|
|
3858
|
-
typographyPresetId: themeSelectionTypographyPresetId,
|
|
3859
|
-
typographyBodyFontOverride: themeSelectionTypographyBodyFontOverride,
|
|
3860
|
-
typographyHeadingFontOverride: themeSelectionTypographyHeadingFontOverride,
|
|
3861
|
-
headerLookId: themeSelectionHeaderLookId,
|
|
3862
|
-
footerLookId: themeSelectionFooterLookId
|
|
3863
|
-
},
|
|
3864
|
-
headerSelectionContext: themeSelectionHeaderContext,
|
|
3865
|
-
footerSelectionContext: themeSelectionFooterContext,
|
|
3866
|
-
siteStyleAccess,
|
|
3867
|
-
children: [
|
|
3868
|
-
editorUI,
|
|
3869
|
-
previewBanner,
|
|
3870
|
-
/* @__PURE__ */ jsx("div", { className: "fixed inset-0 overflow-hidden bg-background", children: leftPane })
|
|
3871
|
-
]
|
|
3872
|
-
}
|
|
3873
|
-
) }) });
|
|
3874
|
-
}
|
|
3875
|
-
return /* @__PURE__ */ jsx(PreviewThemeOverlayProvider, { baseTheme: theme, children: /* @__PURE__ */ jsx(PreviewDesignCoordinatorProvider, { children: /* @__PURE__ */ jsxs(
|
|
3953
|
+
return /* @__PURE__ */ jsx(PreviewThemeOverlayProvider, { baseTheme: theme, children: /* @__PURE__ */ jsx(PreviewDesignCoordinatorProvider, { children: /* @__PURE__ */ jsx(
|
|
3876
3954
|
SiteChromeCustomizeProvider,
|
|
3877
3955
|
{
|
|
3878
3956
|
siteId,
|
|
@@ -3899,10 +3977,10 @@ function PreviewShellLayout({
|
|
|
3899
3977
|
headerSelectionContext: themeSelectionHeaderContext,
|
|
3900
3978
|
footerSelectionContext: themeSelectionFooterContext,
|
|
3901
3979
|
siteStyleAccess,
|
|
3902
|
-
children: [
|
|
3980
|
+
children: /* @__PURE__ */ jsxs(PreviewBlockCustomizeSelectionProvider, { children: [
|
|
3903
3981
|
editorUI,
|
|
3904
3982
|
previewBanner,
|
|
3905
|
-
/* @__PURE__ */ jsx("div", { className: "fixed inset-0 overflow-hidden bg-background", children: /* @__PURE__ */ jsx(
|
|
3983
|
+
/* @__PURE__ */ jsx("div", { className: "fixed inset-0 overflow-hidden bg-background", children: isOpen ? /* @__PURE__ */ jsx(
|
|
3906
3984
|
ResizableSplitPane,
|
|
3907
3985
|
{
|
|
3908
3986
|
left: leftPane,
|
|
@@ -3917,8 +3995,8 @@ function PreviewShellLayout({
|
|
|
3917
3995
|
onSplitChange: (split) => handleSidebarWidthChange(100 - split),
|
|
3918
3996
|
splitPercent: 100 - sidebarWidth
|
|
3919
3997
|
}
|
|
3920
|
-
) })
|
|
3921
|
-
]
|
|
3998
|
+
) : leftPane })
|
|
3999
|
+
] })
|
|
3922
4000
|
}
|
|
3923
4001
|
) }) });
|
|
3924
4002
|
}
|
|
@@ -656,6 +656,23 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
656
656
|
auth: "user",
|
|
657
657
|
responseKind: "json"
|
|
658
658
|
},
|
|
659
|
+
getSdkDeploymentHealth: {
|
|
660
|
+
path: "/sites/{siteId}/sdk-deployment/health",
|
|
661
|
+
method: "GET",
|
|
662
|
+
tags: ["site-{siteId}", "webhooks"],
|
|
663
|
+
auth: "user",
|
|
664
|
+
errors: [],
|
|
665
|
+
responseKind: "json"
|
|
666
|
+
},
|
|
667
|
+
setupSdkDeploymentRevalidationWebhook: {
|
|
668
|
+
path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
|
|
669
|
+
method: "POST",
|
|
670
|
+
tags: ["site-{siteId}", "webhooks"],
|
|
671
|
+
auth: "user",
|
|
672
|
+
errors: ["validation:invalid_input", "resource:conflict"],
|
|
673
|
+
responseKind: "json",
|
|
674
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
675
|
+
},
|
|
659
676
|
// API Keys (Site-scoped)
|
|
660
677
|
listSiteApiKeys: {
|
|
661
678
|
path: "/sites/{siteId}/api-keys",
|
|
@@ -6150,6 +6167,13 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
6150
6167
|
auth: "service",
|
|
6151
6168
|
responseKind: "json"
|
|
6152
6169
|
},
|
|
6170
|
+
sdkSetupRevalidationWebhook: {
|
|
6171
|
+
path: "/sdk/{siteId}/webhooks/revalidation/setup",
|
|
6172
|
+
method: "POST",
|
|
6173
|
+
auth: "service",
|
|
6174
|
+
responseKind: "json",
|
|
6175
|
+
errors: ["validation:invalid_input", "server:internal_error"]
|
|
6176
|
+
},
|
|
6153
6177
|
// Customer portal
|
|
6154
6178
|
portalGetProfile: {
|
|
6155
6179
|
path: "/portal/me",
|